Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software...
-
Upload
hubert-morton -
Category
Documents
-
view
222 -
download
2
Transcript of Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software...
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
• 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
• 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
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
Architectural context diagram
5 / 26
Used by
Superordinate systems
Uses
Subordinate systems
Peers
targeted system
Depends on
Actors
Uses
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
UML relationships for safe home security function archetypes
7 / 26
Controller fhdofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashfoisaiosa
hfoisa
Node dbsfgdsafgsidaghfisduagfisdgfdsfhbjkdfhdfd
gd
Detectorfhdofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashfoisaiosa
hfoisa
Indicatorf hsdgsdgsdgsddsgdsgfsgssdgsdgsdgsdgsdgdsgdsgsdgdsgddofhdofhodafhhafohasofhhasofhoashfosaihfisaahoiashf
oisaiosahfoisa
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
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
Overall architectural structures for safe home with top-level components
10 / 26
• The overall system architecture influences the system’s:– Performance– Security– Safety– Availability– Maintainability
11 / 26
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