2017년 1월 28일 토요일

Architectural Design

1. Architecture in The Life Cycle
 - 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

댓글 없음:

댓글 쓰기