Architectural design steps, Representing the system in context, Archetypes, instantiations of system, Refine architecture into components, Refine components structure, ADL, Fundamentals of Software Engineering
1. 1
Architectural Design Steps
1) Represent the system in context
2) Define archetypes
3) Refine the architecture into components
4) Describe instantiations of the system
2. These slides are designed to accompany
Software Engineering: A Practitioner’s
Approach, 7/e (McGraw-Hill, 2009).
Slides copyright 2009 by Roger
2
Architectural Design
• The software must be placed into context
• the design should define the external entities (other systems, devices, people)
that the software interacts with and the nature of the interaction
• A set of architectural archetypes should be identified
• An archetype is an abstraction (similar to a class) that represents one element
of system behavior
• The designer specifies the structure of the system by defining and
refining software components that implement each archetype
3. Representing The System In The Context
• An architectural context diagram is used to model the manner in
which software interacts with entities external to its boundaries
• Figure
4. 4
1. Represent the System in Context
Target system
I/F I/F
I/F I/F I/F
Actors
Peers
"Super"ordinate systems
"Sub"ordinate systems
Used by
Produces or
consumesProduces or
consumes Depends on
Uses
(More on next slide)
5. • Super-ordinate systems:- uses the target system as
part of some higher level processing scheme
• Subordinate systems:- those systems that are used by
the target system and provide data or processing that
are necessary to complete target system functionality
• Peer-level system:- interact on peer-to-peer basis.
Information is produced or consumed by the peers
and the target system.
• Actors:- entities ( people, devices) that interact with
the target system by producing or consuming
information that is necessary for requisite processing.
• Each of these external entities communicates with
the target system through an interfaces (the small
shaded rectangles in figure).
6. These slides are designed to accompany
Software Engineering: A Practitioner’s
Approach, 7/e (McGraw-Hill, 2009).
Slides copyright 2009 by Roger
6
Architectural Context
target system:
Security Function
uses
uses peershomeowner
Safehome
Product
Internet-based
system
surveillance
function
sensors
control
panel
sensors
uses
7. 7
2. Define Archetypes
• Archetypes indicate the important abstractions within the problem
domain (i.e., they model information)
• An archetype is a class or pattern that represents a core abstraction
that is critical to the design of an architecture for the target system
• The target system architecture is composed of these archetypes
• They represent stable elements of the architecture
• They may be instantiated in different ways based on the behavior of the
system
• They can be derived from the analysis class model
8. Archetypes
• Abstract Building Blocks
• Node
• Input/output
• Controller
• Arms-disarms a node
• Detector
• Sensing
• Indicator
• Alarms
15
Figure 10.7 UML relationships for SafeHomesecurity function archetypes
(adapted from [BOS00])
Controller
Node
communicates with
Detector Indicator
9. 9
3. Refine the Architecture into
Components
• Based on the archetypes, the architectural designer refines the software
architecture into components to illustrate the overall structure and
architectural style of the system
• These components are derived from various sources
• The application domain provides application components, which are the domain
classes in the analysis model that represent entities in the real world
• The infrastructure domain provides design components (i.e., design classes) that
enable application components but have no business connection
• Examples: memory management, communication, database, and task management
• The interfaces in the ACD imply one or more specialized components that process
the data that flow across the interface
• A UML class diagram can represent the classes of the refined architecture and
their relationships
10. 11
4. Describe Instantiations of the
System
• This demonstrates that the architectural structure, style and
components are appropriate
• A UML component diagram can be used to represent this
instantiation
12. 20
ADL
Architectural description language (ADL) provides
a semantics and syntax for describing a software
architecture
Provide the designer with the ability to:
decompose architectural components
compose individual components into larger architectural
blocks and
represent interfaces (connection mechanisms) between
components.