FOA (framework oriented analysis) is an extension of OOA, but it depends es the reuse of software architecture, design, code and test case of framworks.
Features: comparison-based analysis, feature comparison, hierarchical framework.
A framework is a partially implemented program that provides a complete software architecture for specific applications or fields. [Garvae 96, Bothrer 97, Ebner 98a]
A framework generally provides a software architecture for a series of applications (Program families) in a specific field.
Typical frameworks include: 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 Design 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 needs to consider some constraints in the analysis stage: framework architecture, programming language, object bus, and machine platform.
OOA splits the system into basic objects. You do not need to consider the preceding constraints. FOA needs to compare the application architecture and framework architecture at an early stage to determine or select a framework to ensure the reusability of the framework. This method encourages the reuse of high-level objects in the framework.
OOA, designers use design patterns or their own patterns to construct systems.
FOA: the mode has been embedded into the framework. Designers must comply with the rules of these modes to implement the system.
FOA steps:
- Problem understanding and framework selection (problem fields, scenarios, and constraints. Available frameworks ?)
- Determine the framework and available components based on the application (which components are available? What auxiliary components are needed ?)
- Determine the extended and unfinished parts (the Framework usually only defines the collaboration relationship of high-level objects. What are the extensions ?)
- If necessary, improvements to the framework structure (the requirements for the framework and issues are not fully met. Software reuse capability issues)
- Verification and validation
- Integrate components and construct programs.