C H1Introduction
1.The Origins:
A:Software Engineers have always employed software architectures Very often without realizing it!
B:Address issues identified by rearchers and practitioners:
Esntial software engineering difficulties;
Unique characteristics of programming-in-the-large;
Need for software reu.
C:Many ideas originated in other
(non-computing)domains
2.Software Engineering Difficulties
A:Software engineers deal with unique t of problems
Young field with tremendous expectations
Building of vastly complex,but intangible systems
Software is not uful on its , unlike a car,thus
It must conform to changes in other engineering areas
B:Some problems can be eliminated
C:Other problems can be lesned,but not eliminated
3:Three fundamental understandings of software architecture:
A:Every application has an architecture
B:Every application has at least one architect C:Architecture is not a pha of development
4:Context of Software Architecture
A:Requirements
B:Design
C:Implementation
D:Analysis and Testing
E:Evolution
F:Development Process 5:Requirements Analysis(PPT)
如何插入分页符
6:New Perspective on Requirements Analysis:
A:Existing designs and architectures provide the solution vocabulary
B:Our understanding of what works now,and how it works,affects our wants and perceived needs
C:The insights from our experiences with existing systems:
helps us imagine what might work and enables us to asss development time and costs
D:Requirements analysis and consideration of design must be pursued at the same time
7:Typically in the traditional Design Pha decisions concern
A:A system's structure
B:Identification of its primary components C:Their interconnections
8:Architecture-centric design
A:stakeholder issues
B:decision about u of COTS component C:overarching style and structure
D:package and primary class structure
E:deployment issues
F:post implementation/deployment issues
9:Non-Functional Properties(NFP)
A:NFPs are the result of architectural choices B:NFP questions are raid as the result of architectural choices
C:Specification of NFP might require an architectural framework to even enable their statement
D:An architectural framework will be required for asssment of whether the properties are achievable
10:Basic conceptual tools:
A:Separation of concerns
B:Abstraction
C:Modularity
11Two illustrative widely adapted strategies:
A:Object-oriented design
B:Domain-specific software architectures
11Implementation
A:The objective is to create
machine-executable source code.That code should be faithful tothe architecture:
Alternatively,it may adapt the architecture How much adaptation is allowed?
Architecturally-relevant vs.-unimportant adaptations
B:It must fully develop all outstanding details of the application
12Faithful Implementation
A:All of the structural elements found in the architecture are implemented in the source code
B:Source code must not utilize major new computational elements that have no corresponding elements in the architecture C:Source code must not contain new connections between architectural elements that are not found in the architecture
13Unfaithful Implementation
A:The implementation does have an architecture
It is latent,as oppod to what is documented.
B:Failure to recognize the distinction between planned and implemented architecture:
气魄的意思robs one of the ability to reason about the application's architecture in the future; Misleads all stakeholders regarding what they believe they have as oppod to what they really have;
makes any development or evolution strategy that is bad on the documented(but inaccurate)architecture doomed to failure.
14Implementation Strategies
A:Generative techniques
B:Frameworks
C:Middleware
CORBA,DCOM,RPC,...
D:Reu-bad techniques
COTS,open-source,in-hou
E:Writing all code manually
15Implementation Strategies:How It All Fits Together?
(1):Product Conception--->Principal design decision
(2):Detailed Design-->Elaboration of principal design decisions;addition of others;
(3):Framework lection and
development-->Bridge from style to platform;addition of principal design decisions;
(4):Component and connector implementation-->Implementation consistent with all principal design decisions
(5):Finished Application
16An analysis on a formal model can reveal
A:Component mismatch
B:Incomplete specifications
C:Undesired communication patterns
D:Deadlocks
E:Security flaws
17Architectural model
A:may be examined for consistency with requirements
B:may be ud in determining analysis and testing strategies for source code
C:may be ud to check if an implementation is faithful
18Evolution and Maintenance
A:The traditional software engineering approach to maintenance is largely ad hoc: Risk of architectural decay and overall quality degradation.
B:Architecture-centric approach: Sustained focus on an explicit,substantive, modifiable,faithful architectural model.
19Architecture-Centric Evolution Process A:Motivation
B:Evaluation or asssmentlead什么意思
C:Design and choice of approach
D:Action
20Process
A:Traditional software process discussions make the process activities the focal point B:In architecture-centric software engineering the product becomes the focal point
21Primacy of Design
A:Software engineers collect requirements, code,test,integrate,configure,etc.
B:An architecture-centric approach to software engineering places an emphasis on design
C:Design pervades the engineering activity from the very beginning.
22Views on architecture:
The requirements activity is a co-equal partner with design activities;
Analysis and testing activities can be focud on and guided by the architecture;
Evolution activities revolve around the product's architecture;
An equal focus on process and product results from a proper understanding of the role of software architecture.
23:Design decisions encompass every facet of the system under development:A:Structure
B:Behavior
C:Interaction
D:Non-functional properties
24:Principal
A:"Principal"implies a degree of importance that grants a design decision"architectural status":It implies that not all design decisions are architectural
B:That is,they do not necessarily impact a system's architecture
C:How one defines"principal"will depend on what the stakeholders define as the system goals
25:Software Architecture's Elements
A software system's architecture typically is not(and should not be)a uniform monolith.
A software system's architecture should be a composition and interplay of different elements:
A:Processing
B:Data,also referred as information or state C:Interaction
26:Definition
A:A software system's architecture is the t of principal design decisions about the system B:A software component is an architectural entity that:
encapsulates a subt of the system's functionality and/or data;
restricts access to that subt via an explicitly defined interface;
has explicitly defined dependencies on its required execution context;
Components typically provide application-specific rvices.
C:A software connector is an architectural building block tasked with effecting and regulating interactions among components D:An architectural configuration,or topology is a t of specific associations between the
components and connectors of a software system's architecture
E:An architectural style is a named collection of architectural design decisions that:
are applicable in given development context;
constrain architectural design decisions that are specific to a particular system within that context;
Elicit beneficial qualities in each resulting system.
骆驼祥子故事梗概
F:An architectural pattern is a t of architectural design decisions that are applicable to a recurring design problem,and parameter to account for different software development contexts in which that problem appears.
27:About the Architect
A:A distinctive role and character in a project B:Very broad training
C:Amass and leverages extensive experience
D:A keen n of aesthetics
E:Deep understanding of the domain
F:Even first-rate programming skills are insufficient for the creation of complex software applications
小鸡的故事2(I)Designing Architectures
28:Engineering Design Process
A:Feasibility stage:identifying a t of feasible concepts for the design as a whole B:Preliminary design stage:lection and development of the best concept.
C:Detailed design stage:development of engineering descriptions of the concept.
D:Planning stage:evaluating and altering the concept to suit the requirements of production, distribution,consumption and product retirement.29:Potential Problems(PPT P6)
30:Alternative Design Strategies:
A:Standard:Linear model described above B:Cyclic:Process can revert to an earlier stage C:Parallel:Independent alternatives are explored in个性签名微信
D:Adaptive("lay tracks as you go"):The next design strategy of the design activity is decided at the end of a given stage
E:Incremental:Each stage of development is treated as a task of incrementally improving the existing design
31:Identifying a Viable Strategy:
A:U fundamental design tools:abstraction and modularity.
B:Inspiration,where inspiration is needed. Predictable techniques elwhere.
C:Applying own experience or experience of others.
32:What concepts should be chon at the outt of a design task?
Search for a"simple machine"that rves as an abstraction of a potential system that will perform the required task.
A:S imple machines provide a plausible first conception of how an application might be built.
B:Every application domain has its common simple machines.
33:Separation of Concerns
Key example from software architecture: paration of components(computation) from connectors(communication).
34:A DSSA is an asmblage
of software components:
A:Specialized for a particular type of task (domain),
B:generalized for effective u across that domain,and
C:Compod in a standardized structure
(topology)effective for building successful applications.
35:Patterns,Styles,and
DSSAs
关于花的诗36:DSSAs are the preeminent means for maximal reu of knowledge and prior development and hence for developing a new architectural design.
37:Definition
An architectural pattern is a t of architectural design decisions that are applicable to a recurring design problem,and parameterized to account for different software development contexts in which that problem appears.
38:Architectural patterns are similar to DSSAs but applied "at a lower level "and within a much narrower scope.39Architectural patterns
A:State-Logic-Display:Three-Tiered Pattern
B:Model-View-Controller C:Sen-Compute-Control
40:Architectural Styles reflect less domain specificity than architectural patterns.
41:Definitions of Architectural Style
An architectural style is a named collection of architectural design decisions that :are applicable in a given development context;
constrain architectural design decisions that are specific to a particular system within that context;
elicit beneficial qualities in each resulting system.
42:Basic Properties of Styles:
早春诗A:A vocabulary of design elements:
Component and connector types;data elements
B:A t of configuration rules
Topological constraints that determine allowed compositions of elements C:A mantic interpretation
Compositions of design elements have well-defined meanings
D:Possible analys of systems built in a style 43:Benefits of Using Styles Design reu Code reu
Understandability of system organization Interoperability
Style-specific analys Visualizations
Style-specific depictions matching engineers 'mental models
44:Mobile-Code Style
Data Elements :Reprentations of code as data;program state;data;
Variants :Code-on-demand,remote evaluation,and mobile agent.
2(II)Architectural Styles
45:Some Common Styles(ppt)46:Object-Oriented Style A:Components are objects