본 포스트는 개인 스터디 용으로 작성된 Ian Sommerville의 Software Engineering, 8/E의 요약본입니다.1. Software architecture
- Architectural design is the process for identifying the sub-system and the framework for sub-system control & communication
- Software architecture is the output of architectural design.
2. Architectural design
- represents the link between specification and design processes : early stage of the system design process.
3. Architecture and system characteristics
- Performance : large components rather than fine-grain components
- Security : critical assets in the inner layers
- Safety : localise safety-critical features
- Availability : mechanism for fault tolerance
- Maintainability : fine-grain, replacable components
4. Architectural conflicts
- maintainability vs performace
- availability vs security
- safety vs performance
5. System structuring
- concerned with system decomposition
- The architectural design is expressed as a block diagram
- (if more detailed) show data flowing and interface of sub-systems
6. Architectural styles(Architectural models)
- Main objective of using generic architectural model or style is reuse.
comment:- can include models like :
Sommervile seems to use both terms('style' and 'model') with the same meaning.
1) Static structural model : shows sub-systems or components that are developed as a seperate unit
2) Dynamic process model : shows how the system is composited as processes in run-time
3) Interface model : defines services provided by sub-systems that are revealed via public interfaces
4) Relationships model : shows the relationship(e.g. data flow) among sub-systems
5) Destribution model : shows how sub-systems are distributed
- system orgranization model : reflect base strategy for defining system structure. but sub-system model includes more details.
1) Repository model : based on public database
2) Client/Server model : distributed architecture(effective for network based system)
3) Abstract machine(layered) model : ease for incremental development.
7. Modular decomposition
- Another structural level where sub-systems are decomposing into modules
- Two modular decomposition model types
1) Object models : when implemented, objects are created from object classes and some control model is used to operate these.
2) Data-flow(pipeline) models : functional transformation process their imputs to produce outputs
sub-systems and modules are different on dependency among each element. Sub-system is independent with other sub-systems, but module is not.8. Control styles
- are concerned with the control flow between sub-systems and distincted from the decomposition model
- Control style types
1) Centralised control : One sub-system has overall responsibility for control. It starts and stops other sub-systems.
2) Event-based control : Broadcast models / Interrupt-driven models
9. Reference architecture
- Architectural models tend to be specific to some application domain
- two types of domain-specific model
1) Generic models : bottom-up models
2) Reference models : top-down models which are derived froms as study of the application domain rather than existing systems.


댓글을 달아 주세요