Information Technology Reference
In-Depth Information
7.6.2 Architecture
Large systems can be decomposed into sub-systems that provide some related set
of services. The initial design process of identifying these sub-systems and
establishing a framework for sub-system control and communication is called
architectural design (Sommerville 2004 ). Object-oriented Architecture is very
close in comparison to that of the more commonly known architecture, that of
homes and buildings.
This parallel is very useful for constructing mental images of software archi-
tecture. Software architecture suffers from the same caveats of traditional archi-
tecture. Some of the major parallels are that:
• Different models exist for both software architecture and a building architect.
• Bad design cannot be made right through implementation.
• Elegant design does not guarantee proper implementation.
Using the above listed correlations between designing object-oriented software
and designing a home, it is easier to see the most important aspect is a well
designed architecture. Software though may not be tangible in the same sense that
a building is, but it still has very real implications. Poorly architected software can
cause fiscal harm possibly easier than poorly architected buildings.
7.6.3 Design Patterns
A design pattern represents a generic and reusable solution to a recurring prob-
lem. Design Patterns were first published en masse by Gamma et al. in 1995.
Gamma et al. were able to separate design patterns into three distinct groups (Jia
2003 ):
1. Creational patterns: concern the creation of objects.
2. Structural patterns: these patterns deal with the composition of objects.
3. Behavioral patterns: these patterns reflect the interactions of objects within a
system.
7.6.4 Modularity
Modules, or classes, are the most important derivation of object-oriented design.
This being said, modularity is the use of divide and conquer to create a set of
cohesive and loosely coupled modules (Jia 2003 ). This means that each module is
an entity on its own connected to the other modules in the system by simple and
loose connections. To do this, each module performs a specific function or serves a
unique purpose. Any module in this system can be replaced by any other module
that maintains the same interfaces for interconnecting modules.
Search WWH ::




Custom Search