1、1Chapter 10Architectural DesignSoftware Engineering:A Practitioners Approach,6th editionby Roger S.Pressman2Software 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 visible prop
2、erties of those components,and the relationships among them.Bass.et al.3Why 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 at a stage when m
3、aking design changes is still relatively easy,and1.reduce the risks associated with the construction of the software.4Data Design Architectural level Database design data mining data warehousing Component level Data structure design5Architectural StylesEach style describes a system category that enc
4、ompasses: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 form the system,and1.semantic models
5、 that enable a designer to understand the overall properties of a system.6Specific Styles Data-centered architecture Data flow architecture Call and return architecture Object-oriented architecture Layered architecture7Data-Centered Architecture8Data-Flow Architecture9Call and Return Architecture10O
6、bject-Oriented Architecture11Layered Architecture12Architectural Patterns Concurrency operating system process management task scheduler Persistence database management system application level persistence Distribution broker13Architectural Design Architectural context diagrams model how software in
7、teracts 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.14Arch.Context Diagram15SafeHome ACD16SafeHome Archetype17Component Structure18Component Elaboration