00):
A design pattern consists of objects that function together and share information with one another to solve a specific problem within a specific contextual situation. Design patterns, thus, are developed especially to provide solutions to quite specific problems (Monroe, Kompanek, Melton, and Garlan, 1997).
Patterns for creating software developed initially in object-oriented programming where they began as collections of objects organized to solve a problem. The principal pattern families for software creation are as follows (Monroe, Kompanek, Melton, and Garlan, 1997):
Architectural Patterns: These patterns provide a structural schema for software systems. The patterns
Consist of a set of predefined subsystems
Specify the responsibilities of each subsystem
Provide rules and guidelines governing relationships between the sub systems
Design Patterns: These patterns provide a process for refining the subsystems or components of a software system and the relationships between the subsystems
The patterns describe commonly recurring structures of communicating components
The patterns solve a general design problem within a specific context
Idioms: These patterns are specific to a programming language
Idioms describe how to implement particular aspects of components
Idioms describe the relationships between the components within the context of the relevant programming language
Software components are binary units that interact to form a functioning program. A component is a physical and replaceable part of a system. A software component conforms to and provides the realization of a set of interfaces (Larsen, 2000).
Each component in a software system must be compatible with every other component included in the system. Interoperability among components in a software system is crucial (Larsen, 2000).
Software architecture is the integrated structure of the components included in a soft...