FOA ( framework oriented analysis ) is an extension of OOA, but it explores the reuse of software architecture, design, code and test case of framworks.
Features: comparison-based analysis, feature comparison , hierarchical framework.
架構是一個部分實現的程式,為特定的應用或領域提供完整的軟體架構。【garvae 96, Bothrer 97, Ebner 98a】
架構通常提供了一個在特定領域中一系列應用程式(程式族)的軟體架構。
典型的架構套件括:JavaBean, CORBA, IBM San Francisco.Websphere. OpenStep and WebObjects.
Difference between Developing with Framework and that without Framework:
|
Without Framework |
With Framework |
Architecture, Design and Implementation |
architecture designing which library functions to call what data need to pass to library functions how to implement parts coding for implementing blocks; |
architecture deriving which function will get called what data the system will pass to application how to reuse the existing components coding for connection blocks |
FOA , 在分析階段需要考慮一些約束:架構的架構,程式設計語言,對象匯流排,機器平台等。
OOA把系統分解為基本對象。不需要考慮以上約束。FOA需要在早期比較應用程式架構和架構架構,以判斷或選擇架構,保證架構的可複用性。這種方法鼓勵架構中高層對象的複用。
OOA,設計者自己使用設計模式或他們自己的模式等來構造系統。
FOA, 模式已經內嵌到架構中,設計者必須符合這些模式的規則來實現系統。
FOA步驟:
- 問題理解和架構選擇(問題的領域,情境,約束。可用的架構?)
- 根據應用確定架構和可用構件(哪些是可用的?需要哪些輔助的構件?)
- 確定需要擴充的、未完成的部分 (架構通常只定義高層對象的協作關係。有哪些擴充點?)
- 如果必須,對架構結構改進(架構和問題的需求不是完全符合的。軟體的複用能力問題)
- 驗證和確認
- 整合構件,構造程式。