Software Architecture - CS 446 Midterm Outline
Author: 咳嗽di小鱼 Date: June 21, 2012 Category: Sum Up
Software Design Process Models
Design as search. Design spaces. Design state, goal structure, generative design operations, early quantitative evaluations, control of design process. Basic models of design (transformational, plan/architecture driven). Relationship to other life-cycle activities.
Terms
- Module: a collection of classes
- Subsystem: a collection of classes with an interface
- Design window: the time, which design decision have to be made
- Service: the operation in common purpose, offered by a subsystem
Different Views
- Analysis focus on the problem domain
- Analyst, end user, customer
- Design focus on the solution domain
- designer, implementer
Goals
- Designer
- Specify interface of subsystems
- Usability
- Reusability
- Implementer
- implementer
- Extender
- User
Major Design Goals
- Behavioural Model
- Concurrency
- Resource Handling
- Software Control
- Structural Model
- Hardware/Software mapping
- Data Management
- Use Case Model
- Boundary Conditions (边缘情况)
- Non Functional Requirements
- Feasibility (可行性)
A lot of others.
Most of them involves trade off between each other
Decomposition
- High cohesion
- Low coupling
Architecture/Design Representation
What should be represented (structure, behaviour)? Informal representations of design, examples of design notations. Formal representation of design. Domain specific architecture descriptions. Role of standards, reference architectures. Design documentation.
Terms
- Subsystem decomposition: identify subsystems, service, and their association in between
- Architectural style: pattern for a subsystem decomposition
- Software architecture: instance of a style. composed of components and connectors
- Components: encapsulated subsystem, provides services
- Connectors: Facilitate communication within software. Simple procedure calls or shared data accesses
-
- Conceptual Arch
- Concrete Arch
- Evolution
- Degradation
- Drift: add things to conceptual
- Erosion: conflict to conceptual
- Recover: determining from implementation
Architectural Style
- Vocab of design elements
- Set of config rules
- Semantic interpretation
Benefits
- Design/Code reuse
- Visualization
- Interoperability (WTH is this word…)
- Style-specific analyses
Style Examples
- Main program and subroutines
- Object-Oriented Style
- Layered Style
- Virtual Machine Layers
- Closed/Open Layering
- 3/4-Tier
- Client/Server
- Peer-to-Peer
- Batch Sequential
- Pipes and Filters
- Repository
- Implicit Invocation
- Publish-Subscribe
- Event-Based
- MVC
- Interpreter
- Sservice-Oriented Arch (SOA)
Architectural Model
Arch Views and Viewpoints
Different views should be consistent between each other.
- Logical View
- UML component diagram
- Physical View
- Deployment View
- UML deployment diagram
- Concurrency/Process View
- Behavioral View
- UML collaboration diagram
Metamodel意会了, 但是不知道怎么总结…
主要用来保证view之间的consistency
Design Goals
- Reduce Complexity
- Scalability
- Adaptability
- Heterogeneity
- Portability
- Dependability
- Reliability
- Availability
- Robustness
- Fault-tolerant
Detail design activities
- Identify modules
- Data Flow Analysis (DFA)
- Identify control structure
- Instantiation of modules
- Management of base processes
- Decide on overall control structure
- Centralized/Decentralized control
- Address boundary control conditions
- Address persistent data management
- Address hardware/software mapping
- Implement concurrency
- Define access control
...继续ing...
Design Plans/Architecture
Review of small/medium scale plans (data structures, programming language structures, concurrency). Plans/architectures for common types of software systems (translators, embedded, real-time, user interface).
...未开始...