1、Chapter 10Architectural DesignSoftware Engineering:A Practitioners Approach,6th editionby Roger S.Pressman1第1页,共18页。Software Architecture The software architecture of a program or computing system is the structure or structures of the system,which comprise the software components,the externally visi
2、ble properties of those components,and the relationships among them.Bass.et al.2第2页,共18页。Why Architecture?Architecture is a representation of a system that enables the software engineer to:analyze the effectiveness of the design in meeting its stated requirements,consider architectural alternatives
3、at a stage when making design changes is still relatively easy,and1.reduce the risks associated with the construction of the software.3第3页,共18页。Data Design Architectural level Database design data mining data warehousing Component level Data structure design4第4页,共18页。Architectural StylesEach style d
4、escribes a system category that encompasses:a set of components(e.g.,a database,computational modules)that perform a function required by a system,a set of connectors that enable“communication,coordination,and cooperation”among components,constraints that define how components can be integrated to f
5、orm the system,and1.semantic models that enable a designer to understand the overall properties of a system.5第5页,共18页。Specific Styles Data-centered architecture Data flow architecture Call and return architecture Object-oriented architecture Layered architecture6第6页,共18页。Data-Centered Architecture7第
6、7页,共18页。Data-Flow Architecture8第8页,共18页。Call and Return Architecture9第9页,共18页。Object-Oriented Architecture10第10页,共18页。Layered Architecture11第11页,共18页。Architectural Patterns Concurrency operating system process management task scheduler Persistence database management system application level persist
7、ence Distribution broker12第12页,共18页。Architectural Design Architectural context diagrams model how software interacts with external entities Archetypes are classes or patterns that represent an abstraction critical to the system Architectural components are derived from the application domain,the infrastructure,and the interface.13第13页,共18页。Arch.Context Diagram14第14页,共18页。SafeHome ACD15第15页,共18页。SafeHome Archetype16第16页,共18页。Component Structure17第17页,共18页。Component Elaboration18第18页,共18页。