American Science Institute of Technology |
|
|
Architectural BlueprintsThe graphical depiction of an architectural view is called an architectural blueprint. For the various views described above, the blueprints are composed of the following diagrams from the Unified Modeling Language [UML]:
The Architecting ProcessThe architecture is primarily an outcome of the analysis & design workflow. As the project reenacts this workflow, iteration after iteration, the architecture evolves, refined, and polished. As each iteration includes integration and test, the architecture is quite robust by the time the product is delivered. This architecture is a main focus of the iterations of the elaboration phase, at the end of which the architecture is normally baselined. Concepts: Logical ViewTo provide a basis for understanding the structure and organization of the design of the system, an architectural view called the logical view is used in the Analysis & Design workflow. There is only one logical view of the system, which illustrates the key use-case realizations, subsystems, packages and classes that encompass architecturally significant behavior. The logical view is refined during each iteration.
The logical view shows an architecturally significant subset of the design model, i.e. a subset of the classes, subsystems and packages, and use-case realizations. There are four additional views, the Use Case View (handled in the Requirements workflow), and the Process View, Deployment View, and Implementation View; these views are handled in the Analysis & Design, and Implementation workflows. The architectural views are documented in a Software Architecture Document. You may add different views, such as a security view, to convey other specific aspects of the software architecture. So in essence, architectural views can be seen as abstractions or simplifications of the models built, in which you make important characteristics more visible by leaving the details aside. The architecture is an important means for increasing the quality of any model built during system development.
Process ViewTo provide a basis for understanding the process organization of the system, an architectural view called the process view is used in the Analysis & Design workflow. There is only one process view of the system, which illustrates the process decomposition of the system, including the mapping of classes and subsystems onto processes and threads. The process view is refined during each iteration.
The process view shows the process organization of the system. There are four additional views, the Use Case View (handled in the Requirements workflow), and the Logical View, Deployment View, and Implementation View; these views are handled in the Analysis & Design, and Implementation workflows. The architectural views are documented in a Software Architecture Document. You may add different views, such as a security view, to convey other specific aspects of the software architecture. So in essence, architectural views can be seen as abstractions or simplifications of the models built, in which you make important characteristics more visible by leaving the details aside. The architecture is an important means for increasing the quality of any model built during system development. Deployment ViewTo provide a basis for understanding the physical distribution of the system across a set of processing nodes, an architectural view called the deployment view is used in the Analysis & Design workflow. There is only one deployment view of the system, which illustrates the distribution of processing across a set of nodes in the system, including the physical distribution of processes and threads. The deployment view is refined during each iteration.
The deployment view shows the physical distribution of processing within the system. There are four additional views, the Use Case View (handled in the Requirements workflow), and the Logical View, Process View, and Implementation View; these views are handled in the Analysis & Design, and Implementation workflows. The architectural views are documented in a Software Architecture Document. You may add different views, such as a security view, to convey other specific aspects of the software architecture. So in essence, architectural views can be seen as abstractions or simplifications of the models built, in which you make important characteristics more visible by leaving the details aside. The architecture is an important means for increasing the quality of any model built during system development Concepts: LayeringTypical Layering ApproachesLayering represents an ordered grouping of functionality, with the application-specific located in the upper layers, functionality that spans application domains in the middle layers, and functionality specific to the deployment environment at the lower layers. The number and composition of layers is dependent upon the complexity of both the problem domain and the solution space:
Subsystems should be organized into layers with application-specific subsystems located in the upper layers of the architecture, hardware and operating-specific subsystems located in the lower layers of the architecture, and general-purpose services occupying the middleware layers. The following is a sample architecture with four layers:
A layered structure starting at the most general level of functionality and growing towards more specific levels of functionality. Layering GuidelinesLayering provides a logical partitioning of subsystems into a number of sets, with certain rules as to how relationships can be formed between layers. The layering provides a way to restrict inter-subsystem dependencies, with the result that the system is more loosely coupled and therefore more easily maintained.
The criteria for grouping subsystems follow a few patterns:
Subsystems and packages within a particular layer should only depend upon subsystems within the same layer, and at the next lower layer. Failure to restrict dependencies in this way causes architectural degradation and makes the system brittle and difficult to maintain. Exceptions include cases where subsystems need direct access to lower layer services: a conscious decision should be made on how to handle primitive services needed throughout the system, such as printing, sending messages, etc. There is little value in restricting messages to lower layers if the solution is to effectively implement call pass-throughs in the intermediate layers. Partitioning PatternsWithin the top-layers of the system, additional partitioning may help organize the model. The following guidelines for partitioning present different issues to consider:
|
|
Send mail to
webmaster@amscitech.com
with questions or comments about this web
site.
|