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步骤:
- 问题理解和框架选择(问题的领域,场景,约束。可用的框架?)
- 根据应用确定框架和可用构件(哪些是可用的?需要哪些辅助的构件?)
- 确定需要扩展的、未完成的部分 (框架通常只定义高层对象的协作关系。有哪些扩展点?)
- 如果必须,对框架结构改进(框架和问题的需求不是完全符合的。软件的复用能力问题)
- 验证和确认
- 集成构件,构造程序。