SWE2 Lec10
SWE2 Lec10
Engineering
Dr. Nesma Mahmoud
(Undergraduate - Level 3)
Software System Design
& Security: Part II
Lecture 10
Table of contents
Concurrency: Identification of
01
parallelism
Hardware/Software Mapping:
02 Mapping subsystems
to processors
Persistent Data Management:
03 Storage for entity
objects
Global Resource Handling &
04 Access Control: Who
can access what?)
objects
05 Software Control: Who is in
control?
06 Boundary Conditions:
Administrative use cases.
From Analysis to System Design
Previous lecture
Nonfunctional
System Design
Functional Model
Requirements
8. Boundary
1. Design Goals Conditions
Definition Initialization
Trade-offs Termination
Failure
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
Concurrency
Identify concurrent threads and address concurrency issues.
Design goal: response time, performance.
Threads
A thread of control is a path through a set of state diagrams on which a single object is active at a time.
A thread remains within a state diagram until an object sends an event to another object and waits for
another event
Thread splitting: Object does a nonblocking send of an event.
Two objects are inherently concurrent if they can receive events at the same time without
interacting
Inherently concurrent objects should be assigned to different threads of control
Objects with mutual exclusive activity should be folded into a single thread of control
(Why?)
Concurrency Questions & Implementation
Concurrency Questions
Which objects of the object model are independent?
What kinds of threads of control are identifiable?
Does the system provide access to multiple users?
Can a single request to the system be decomposed into multiple requests? Can these requests be handled
in parallel?
Implementing Concurrency
Concurrent systems can be implemented on any system that provides
physical concurrency (hardware)
or
logical concurrency (software): Scheduling problem (Operating systems)
From Analysis to System Design
Previous lecture
Nonfunctional
System Design
Functional Model
Requirements
8. Boundary
1. Design Goals Conditions
Definition Initialization
Trade-offs Termination
Failure
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
4. Hardware Software Mapping
This activity addresses two questions:
How shall we realize the subsystems: Hardware or Software?
How is the object model mapped on the chosen hardware & software?
Mapping Objects onto Reality: Processor, Memory, Input/Output
Mapping Associations onto Reality: Connectivity
Memory issues:
Is there enough memory to buffer bursts of requests?
I/O issues:
Do you need an extra piece of hardware to handle the data generation rate?
Does the response time exceed the available communication bandwidth between subsystems or a task
and a piece of hardware?
Mapping the Subsystems Associations: Connectivity
Describe the physical connectivity of Typical Informal Example of a Connectivity Drawing
the hardware Applicatio Applicatio Applicatio Physical
Often the physical layer in ISO’s OSI n Client n Client n Client Connectivity
Reference Model TCP/IP Ethernet
Which associations in the object Logical LAN
model are mapped to physical
connections? Connectivity
Communicatio
Which of the client-supplier relationships in n Agent for
Application LAN Global
the analysis/design model correspond to Clients Data
physical connections? Communicatio Serve
Communicatio
Backbone Network n Agent for r
n Agent for OODBM
Data Server
Application S
Describe the logical connectivity Clients
Communicatio Global
(subsystem associations) n Agent for Data
Data Server Serve
Identify associations that do not r
LAN RDBMS
directly map into physical
connections:
How should these associations
Local Global
be implemented? Data Data
Logical vs Physical Connectivity and the relationship to
Subsystem Layering
Hardware Hardware
Processo Processo
Hardware/Software Mapping Questions
What is the connectivity among physical units?
Tree, star, matrix, ring
What is the appropriate communication protocol between the subsystems?
Function of required bandwidth, latency and desired reliability, desired quality of service (QOS)
Is certain functionality already available in hardware?
Do certain tasks require specific locations to control the hardware or to permit concurrent
operation?
Often true for embedded systems
General system performance question:
What is the desired response time?
Connectivity in Distributed Systems
If the architecture is distributed, we need to describe the network architecture (communication
subsystem) as well.
Questions to ask
What are the transmission media? (Ethernet, Wireless)
What is the Quality of Service (QOS)? What kind of communication protocols can be used?
Should the interaction asynchronous, synchronous or blocking?
What are the available bandwidth requirements between the subsystems?
Stock Price Change -> Broker
Icy Road Detector -> ABS System
Drawing Hardware/Software Mappings in UML
System design must model static and dynamic structures:
Component Diagrams for static structures
show the structure at design time or compilation time
Deployment Diagram for dynamic structures
show the structure of the run-time system
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
5. Data Management
Some objects in the models need to be persistent
Provide clean separation points between subsystems with well- defined interfaces.
A persistent object can be realized with one of the following
Data structure
If the data can be volatile
Files
Cheap, simple, permanent storage
Low level (Read, Write)
Applications must add code to provide suitable level of abstraction
Database
Powerful, easy to port
Supports multiple writers and readers
File or Database?
When should you choose a file?
Are the data voluminous (bit maps)?
Do you have lots of raw data (core dump, event trace)?
Do you need to keep the data only for a short time?
Is the information density low (archival files,history logs)?
When should you choose a database?
Do the data require access at fine levels of details by multiple users?
Must the data be ported across multiple platforms (heterogeneous systems)?
Do multiple application programs access the data?
Does the data management require a lot of infrastructure?
Separate
Primary Key Table
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
6. Global Resource Handling
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
7. Decide on Software Control
• Choose implicit control (non-procedural, declarative languages)
Rule-based systems
Logic programming
• Choose explicit control (procedural languages): Centralized or decentralized
• Centralized control: Procedure-driven or event-driven
Procedure-driven control
Control resides within program code. Example: Main program calling procedures of
subsystems.
Simple, easy to build, hard to maintain (high recompilation costs)
Event-driven control
Control resides within a dispatcher calling functions via callbacks.
Very flexible, good for the design of graphical user interfaces, easy to extend
Event-Driven Control Example: MVC
Model-View-Controller Paradigm (Adele Goldberg, Smalltalk 80)
:Control
Update :View
Model has
Update Update
changed
:Model :View
:View
Software Control
Decentralized control
Control resides in several independent objects.
Possible speedup by mapping the objects on different processors,
increased communication overhead.
Example: Message based system.
Centralized vs. Decentralized Designs
Should you use a centralized or decentralized design?
Take the sequence diagrams and control objects from the analysis model
Check the participation of the control objects in the sequence diagrams
If sequence diagram looks more like a fork: Centralized design
The sequence diagram looks more like a stair: Decentralized design
Centralized Design
One control object or subsystem ("spider") controls everything
Pro: Change in the control structure is very easy
Con: The single conctrol ojbect is a possible performance bottleneck
Decentralized Design
Not a single object is in control, control is distributed, That means, there is more than one control object
Con: The responsibility is spread out
Pro: Fits nicely into object-oriented development
From Analysis to System Design
Previous lecture
Nonfunctional
System Design
Functional Model
Requirements
8. Boundary
1. Design Goals Conditions
Definition Initialization
Trade-offs Termination
Failure
Functional Model
2. System Decomposition Dynamic Model
Layers vs Partitions
7. Software
Coherence & Coupling
Control Flow
Monolithic vs Event-
Object Model Driven vs Concurrent
Processes
Dynamic Model 4. Hardware/ 5. Data 6. Global Resource
3. Concurrency Software Mapping Management Handling
Special Purpose Systems Persistent Objects Access Control List
Identification of Buy vs Build File system vs vs Capabilities
Parallelism Allocation of Resources Database Security
Network Connectivity
8. Boundary Conditions
Most of the system design effort is concerned with steady-state behavior.
However, the system design phase must also address the initiation and finalization of the system.
This is addressed by a set of new uses cases called administration use cases
Initialization
Describes how the system is brought from an non initialized state to steady-state ("startup use cases”).
Termination
Describes what resources are cleaned up and which systems are notified upon termination ("termination use
cases").
Failure
Many possible causes: Bugs, errors, external problems (power supply).
Good system design foresees fatal failures (“failure use cases”).
Example: Administrative Use cases for MyTrip
Administration use cases for MyTrip (UML use case diagram).
An additional subsystems that was found during system design is the server. For this new
subsystem we need to define use cases.
<<include>>
ManageServer includes all the
functions necessary to start up and PlanningService
StartServer
shutdown the server. Administrator <<include>>
ManageServer ShutdownServer
<<include>>
ConfigureServer
ManageServer Use Case
Boundary Condition Questions
1 Initialization
How does the system start up?
What data need to be accessed at startup time?
What services have to registered?
2 Termination
Are single subsystems allowed to terminate?
Are other subsystems notified if a single subsystem terminates?
How are local updates communicated to the database?
3 Failure
How does the system behave when a node or communication link fails? Are there backup communication links?
How does the system recover from failure? Is this different from initialization?
Modeling Boundary Conditions
Boundary conditions are best modeled as use cases with actors and objects.
Actor: often the system administrator
Interesting use cases:
Start up of a subsystem
Start up of the full system
Termination of a subsystem
Error in a subystem or component, failure of a subsystem or component
Task:
Model the startup of the any system (washing machine, facebook) as a set of use cases.
Summary
In this lecture, we reviewed the activities of system design :
3Concurrency identification
4 Hardware/Software mapping
5 Persistent data management
6 Global resource handling
7 Software control selection
8 Boundary conditions
Each of these activities revises the subsystem decomposition to address a specific issue.
Once these activities are completed, the interface of the subsystems can be defined.