Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software...

12
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint presentation available at the book’s web-site: www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html October 15, 2008 1 / 26

Transcript of Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software...

Page 1: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Architectural Design

Based on Chapter 11 of the textbook [SE-8] Ian Sommerville,Software Engineering, 8th Ed., Addison-Wesley, 2006 and on theCh11 PowerPoint presentation available at the book’s web-site:

www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html

October 15, 2008

1 / 26

Page 2: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

• Architectural (high-level) design = the process of establishing the subsystems of a larger software system and defining a framework for subsystem control and data communication

• Software architecture = the output of the high-level design process

• Defining and documenting the software architecture provides support for:– Stakeholder communication– System analysis– Large-scale software reuse

2 / 26

Page 3: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

• Software to be developed must be put into context (i.e. model external entities and define interfaces)

• Identify architectural archetypes (collection of abstractions that must be modeled if the system is to be constructed)

• Specify structure of the system by defining and refining the software components needed to implement each archetype

• Continue the process iteratively until a complete architectural structure has been derived

3 / 26

Page 4: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Representing the System in Context • Use the architectural context diagram to model the manner

in which the system interacts with external entities• Systems that interoperate with the target system are

represented as– Superordinate systems – using the target system as part of

some higher level processing scheme– Subordinate systems – used by the target system to provide

data or processing needed to complete the target system– Peer level systems – producing or consuming information need

by peers of the target system– Actors – people or devices that interact with the system to

produce or consume information needed for requisite processing

• Interfaces must be defined (the small shaded rectangles)• All the data that flow into or out of the target system must

be identified4 / 26

Page 5: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Architectural context diagram

5 / 26

Used by

Superordinate systems

Uses

Subordinate systems

Peers

targeted system

Depends on

Actors

Uses

Page 6: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Defining Archetypes

• Archetype is a class or pattern that represents a core abstraction critical to the design of an architecture for a core system

• Archetypes are the abstract building blocks of an architectural design

• May be defined by examining the analysis classes defined in the analysis model

• Determine the stable elements of the architecture that will need to be implemented when the system is built

6 / 26

Page 7: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

UML relationships for safe home security function archetypes

7 / 26

Controller fhdofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashfoisaiosa

hfoisa

Node dbsfgdsafgsidaghfisduagfisdgfdsfhbjkdfhdfd

gd

Detectorfhdofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashfoisaiosa

hfoisa

Indicatorf hsdgsdgsdgsddsgdsgfsgssdgsdgsdgsdgsdgdsgdsgsdgdsgddofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashf

oisaiosahfoisa

Page 8: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Refining Architecture into Components

• The analysis classes for entities from the business domain that must be addressed in the software architecture

• Infrastructure components needed to support the business functions but have no business connection to the application domain

• The interfaces depicted in the architecture context diagram may imply specialized components needed to process data that crosses the interfaces

• UML component diagrams are used to represent the overall architectural structure 8 / 26

Page 9: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

In safe home security system example, we might define the set of top level components that address the following functionality:

• External communication management• Control panel processing• Detector management• Alarm processing

9 / 26

Page 10: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Overall architectural structures for safe home with top-level components

10 / 26

Page 11: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

• The overall system architecture influences the system’s:– Performance– Security– Safety– Availability– Maintainability

11 / 26

Page 12: Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.

Describing System Instantiations

• Refines the high-level architectural design

once the overall system structure is apparent and the major software components have been identified

• Architecture is applied to a specific problem with intent of demonstrating that the structure and components are appropriate

12 / 26