Component Frameworks and
Development
• Framework provides a basic system model for a particular application domain within which specialized applications can be developed
• Consists of already coded pieces of software that can be reused and flexible elements which allow the user to adjust the framework to the needs of the application.
• It provides a skeletal support which serves as the basis for construction of an application.
• Set of classes that embodies an abstract design for solutions to problem.
• OOFW is a library (piece of code)
• Readymade functionality that can be used repeatedly.
• Provides the way to choose a design suitable for the application.
• For Example, Microsoft Foundation Classes
(MFC)
• Provides the basic framework to decide on the structure and the behaviour of the windows application.
• Win32 APIs (class lib) which provides the essential windows functionality.
• Modification/Additions – deriving subclass of
MFC classes and overriding their virtual functions.
• Frameworks can be categorized based on the design:
Black-Box Framework:
Black Box
Classes
Composition
Mechanism
Application
White-Box Framework
White box classes
Inheritance
Mechanism
Application
The issues to be considered while designing an
OOFW
1. Application Domain
2. Scoping
3. Software Architecture
4. User
5. Encapsulation
6. Control Flow
7. Interaction between OOFWs
8. Development Process
Based on the different aspects of framework, component and application development, developers and users
1. Framework developer who builds the framework
2. Component developer who uses the framework and adds components to the framework
3. Application developers who uses the component to build the application
4. End user who uses the application
• Frameworks can be built to represent fully compiled application system at one end and fully interpreted application system.
• Components in framework approach fall into three categories:
1. Frame work Backbone
2. Basic Component (BC)
3. Additional Components (AC)
Framework Components
Customize
AC
Uses
Customize
BC
AC
BC
Customize
Backbone
Application
Domain
Identification
Backbone
Development
Basic
Component
Development
Additional
Component
Development
1. Carrier-Rider- Mapper Pattern
• Carriers:
– Data carrying objects that can be accessed by position.
– Direct interfaces (implementation interface) for reuse and extension
• Riders:
– Encapsulate access paths to data in carriers
– Client can access the interface with riders
• Mapper:
– Data formatting filters which directs to the specific client
2. Directory Objects
– New objects are created using factory objects
– Eg File abstraction
3.Hierarchial Model View Separation (HMVC)
– View – visual representation of data that can be
Context-sensitive
– Model – represents and manage data presented by views
– Controllers- Interact with the user and interpret the user input.
• Container Model
– Separate the design of the component and its usage.
– Containers can be set in any mode:
• Edit Mode
• Layout mode
• Browser Mode
• Mask Mode
• Frozen Model
• Palette
• Cascade Message Multicasting Services
– Message objects are used to decouple to MVC