- Iteration on both functional and quality requirements
- focuses on issues that will be difficult/impossible to change once the system is built
- defines structure
* Component interfaces
* Component communications and dependencies
* Component responsibilities
- permit / precludes achievement of a system's desired quality attributes
https://msdn.microsoft.com/en-us/library/ee658098.aspx
2. 4 + 1 View Model
- A logical view: the key abstractions in the systems as objects or object classes
- A process view: how, at run-time, the system is composed of interacting processes
- A development view: how the software is decomposed for development
- A physical view: the system hardware a how software component are distributed across the processors in the system
- (+1) A conceptual view: related using use cases or scenarios
http://www.slideshare.net/shobanachokkalingam/41-view-model
3. Architectural Patterns
- describes a family of architectures in terms of their structural organisation
- a description of component and connector types and a pattern of their runtime control and/or data transfer
- a means of representing, sharing and reusing knowledge
4. Model-View-Controller (MVC)
: separates presentation and interaction from the system data
- when? there are multiple ways to view and interact with data
- Model: manages the system data and associated operations
* encapsulates application state
* notifies view of state changes
- View: defines and manages how the data is presented to the user
* renders model
* requests model updates
* sends user events to controller
- Controller: manages user interaction and passes these interactions to the View and the Model
* maps user actions to model updates
* selects view
(+) allows the data to change independently of its representation and vice versa
(-) can involve additional code and code complexity
- MVC: Web Applications
* Component: a replaceable part of a system / as implementation of a subsystem
* Package: a general-purpose mechanism for organising elements into groups
* Node: a physical element that exists at run time and provides a computational resource
https://msdn.microsoft.com/en-us/library/ff649643.aspx
5. Layered Pattern
: organises the system into layers with related functionality associated with each layer
when? building new facilities onn top of existing systems / there si a requirement for multi-level security
(+) allows replacement of entire layers so long as the interface is maintained
(+) redundant facilities (e.g. authentication) can be provided in each layer
(-) in practice, providing a clean separation between layers is often difficult
(-) performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer
https://msdn.microsoft.com/en-us/library/ee658109.aspx
6. The repository Pattern
: all data in a system is managed in a central repository that is accessible to all system components
when? you have a system in which large volumes of information are generated that has to be stored for a long time / in data-driven systems
(+) components can be independent - they do not need to know of the existence to other components
(-) the repository is a single point of failure so problems in the repository affect the while system
https://msdn.microsoft.com/en-us/library/ff649690.aspx
7. Client-Server Architecture
: the functionality of the system is organised into services, with each service delivered from a separate server
when? data in a shared database has to be accessed from a range of locations
(+) servers can be distributed across a network
(-) performance may be unpredictable because it depends on the network as well as the system
https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch20.htm
8. Pipe and Filter Architecture
: each processing component (filter) is discrete and carries out one type of data transformation
when? in data processing applications (both batch- and transaction- based)
(+) easy to understand and supports transformation reuse
(+) can be implemented as either a sequential or concurrent system
(-) increases system overload
https://msdn.microsoft.com/en-us/library/dn568100.aspx
9. Architecture Validation
- to increase confidence of the design team
- has to be achieved within the project constraints of time and budget
- Main techniques
1) Questioning techniques
2) Construction of a prototype
3) Measuring techniques
(+) allows replacement of entire layers so long as the interface is maintained
(+) redundant facilities (e.g. authentication) can be provided in each layer
(-) in practice, providing a clean separation between layers is often difficult
(-) performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer
https://msdn.microsoft.com/en-us/library/ee658109.aspx
6. The repository Pattern
: all data in a system is managed in a central repository that is accessible to all system components
when? you have a system in which large volumes of information are generated that has to be stored for a long time / in data-driven systems
(+) components can be independent - they do not need to know of the existence to other components
(-) the repository is a single point of failure so problems in the repository affect the while system
https://msdn.microsoft.com/en-us/library/ff649690.aspx
7. Client-Server Architecture
: the functionality of the system is organised into services, with each service delivered from a separate server
when? data in a shared database has to be accessed from a range of locations
(+) servers can be distributed across a network
(-) performance may be unpredictable because it depends on the network as well as the system
https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch20.htm
8. Pipe and Filter Architecture
: each processing component (filter) is discrete and carries out one type of data transformation
when? in data processing applications (both batch- and transaction- based)
(+) easy to understand and supports transformation reuse
(+) can be implemented as either a sequential or concurrent system
(-) increases system overload
https://msdn.microsoft.com/en-us/library/dn568100.aspx
9. Architecture Validation
- to increase confidence of the design team
- has to be achieved within the project constraints of time and budget
- Main techniques
1) Questioning techniques
2) Construction of a prototype
3) Measuring techniques
댓글 없음:
댓글 쓰기