Slides chapter 10

18
1 Chapter 10 Architectural Design Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

description

Software EngineeringBy Roger Pressman

Transcript of Slides chapter 10

Page 1: Slides chapter 10

1

Chapter 10Architectural Design

Chapter 10Architectural Design

Software Engineering: A Practitioner’s Approach, 6th editionby Roger S. Pressman

Page 2: Slides chapter 10

2

Software ArchitectureSoftware 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 properties of those components, and the relationships among them.

— Bass. et al.

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 properties of those components, and the relationships among them.

— Bass. et al.

Page 3: Slides chapter 10

3

Why Architecture?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 at a stage

when making design changes is still relatively easy, and

� reduce the risks associated with the construction of the software.

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 making design changes is still relatively easy, and

� reduce the risks associated with the construction of the software.

Page 4: Slides chapter 10

4

Data DesignData Design

Architectural level Database design data mining data warehousing

Component level Data structure design

Architectural level Database design data mining data warehousing

Component level Data structure design

Page 5: Slides chapter 10

5

Architectural StylesArchitectural Styles

Each style describes a system category that encompasses:

1. a set of components (e.g., a database, computational modules) that perform a function required by a system,

2. a set of connectors that enable “communication, coordination, and cooperation” among components,

3. constraints that define how components can be integrated to form the system, and

4. semantic models that enable a designer to understand the overall properties of a system.

Each style describes a system category that encompasses:

1. a set of components (e.g., a database, computational modules) that perform a function required by a system,

2. a set of connectors that enable “communication, coordination, and cooperation” among components,

3. constraints that define how components can be integrated to form the system, and

4. semantic models that enable a designer to understand the overall properties of a system.

Page 6: Slides chapter 10

6

Specific StylesSpecific Styles

Data-centered architecture Data flow architecture Call and return architecture Object-oriented architecture Layered architecture

Data-centered architecture Data flow architecture Call and return architecture Object-oriented architecture Layered architecture

Page 7: Slides chapter 10

7

Data-Centered ArchitectureData-Centered Architecture

Page 8: Slides chapter 10

8

Data-Flow ArchitectureData-Flow Architecture

Page 9: Slides chapter 10

9

Call and Return ArchitectureCall and Return Architecture

Page 10: Slides chapter 10

10

Object-Oriented ArchitectureObject-Oriented Architecture

Page 11: Slides chapter 10

11

Layered ArchitectureLayered Architecture

Page 12: Slides chapter 10

12

Architectural PatternsArchitectural Patterns

Concurrency operating system process management task scheduler

Persistence database management system application level persistence

Distribution broker

Concurrency operating system process management task scheduler

Persistence database management system application level persistence

Distribution broker

Page 13: Slides chapter 10

13

Architectural DesignArchitectural 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.

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.

Page 14: Slides chapter 10

14

Arch. Context DiagramArch. Context Diagram

Page 15: Slides chapter 10

15

SafeHome ACDSafeHome ACD

Page 16: Slides chapter 10

16

SafeHome ArchetypeSafeHome Archetype

Page 17: Slides chapter 10

17

Component StructureComponent Structure

Page 18: Slides chapter 10

18

Component ElaborationComponent Elaboration