Hardware Software
Hardware Software
Hardware Software
PROPRIETARY MATERIAL. © 2009 The McGraw-Hill Companies, Inc. All rights reserved. No part of this PowerPoint slide may be displayed, reproduced or distributed
in any form or by any means, without the prior written permission of the publisher, or used beyond the limited distribution to teachers and educators permitted by McGraw-Hill
for their individual course preparation. If you are a student using this PowerPoint slide, you are using it without permission.
1
@ McGraw-Hill Education
The product requirements captured from the customer are converted into system level needs or
processing requirements rather than partitioning them to either h/w or s/w
The system level processing requirements are then transferred into functions which can be
simulated and verified against performance and functionality
The Architecture design follows the system design. The partition of system level processing
requirements into hardware and software takes place during the this phase
Each system level processing requirement is mapped as either hardware and/or software
requirement
The partitioning is performed based on the hardware-software trade-offs
2
@ McGraw-Hill Education
3
@ McGraw-Hill Education
4
@ McGraw-Hill Education
5
@ McGraw-Hill Education
a b c
7
@ McGraw-Hill Education
a T b
F
8
@ McGraw-Hill Education
Ignition Key ON
Alarm
Ignition Key OFF Waiting
Off
Seat Belt ON
Alarm
On
10
@ McGraw-Hill Education
11
@ McGraw-Hill Education
Y
not fastened within 10 seconds of ignition ON, the system Seat Belt ON?
N
Set Timer for 5 Seconds
The Alarm is turned off when the alarm time (5 seconds) Start Alarm
NO
Y
YES
NO Seat Belt ON?
N
Timer Expired? YES
Y
Stop Alarm
End
12
@ McGraw-Hill Education
#define ON 1
#define OFF 0
#define YES 1
#define NO 0
void seat_belt_warn()
{
wait_10sec();
if (check_ignition_key()==ON)
{
if (check_seat_belt()==OFF)
{
set_timer(5);
start_alarm();
while ((check_seat_belt()==OFF )&&(check_ignition_key()==OFF )&& (timer_expire()==NO));
stop_alarm();
}
}
}
13
@ McGraw-Hill Education
14
@ McGraw-Hill Education
(b)
16
@ McGraw-Hill Education
Structural things: Represents mostly the static parts of a UML model. They are also known as
‘classifiers’. Class, interface, use case, use case realization (collaboration), active class, component
and node are the structural things in UML.
Behavioral things: Represents mostly the dynamic parts of a UML model. Interaction, state
machine and activity are the behavioral things in UML.
Grouping things: Are the organizational parts of a UML model. Package and sub-system are the
grouping things in UML.
Annotational things: Are the explanatory parts of a UML model. Note is the Annotational thing in
UML.
17
@ McGraw-Hill Education
Alarm – Timer Class interaction for the Seat belt Warning System
20
@ McGraw-Hill Education
21
@ McGraw-Hill Education
22
@ McGraw-Hill Education
Diagram Description
Gives a pictorial representation of a set of objects and their
Object Diagram relationships. It represents the structural organization between
objects.
Gives a pictorial representation of the different classes in a
Class Diagram UML model, their interfaces, the collaborations, interactions
and relationship between the classes etc. It captures the static
design of the system.
It is a pictorial representation of the implementation view of a
Component Diagram system. It comprises of components (Physical packaging of
classes and interfaces), relationships and associations among
the components.
It is a representation of the organization of packages and their
Package Diagram elements. Package diagrams are mostly used for organizing use
case diagrams and class diagrams.
It is a pictorial representation of the configuration of run time
Deployment Diagram processing nodes and the components associated with them.
23
@ McGraw-Hill Education
Diagram Description
Use cases diagrams are used for capturing system functionality as seen
by users. It is very useful in system requirements capturing. Use case
Use case Diagram diagram comprised of use cases, actors (users) and the relationship
between them. In use case diagram, an actor is one (or something) who
(or which) interacts with the system and use case is the sequence of
interaction between the actor and system.
Sequence diagram is a type of interaction diagram representing object
Sequence Diagram interactions with respect to time. It emphasizes on the time ordering of
messages. Best suited for the interaction modeling of real-time systems.
Collaboration or Communication diagram is a type of interaction
Collaboration (Communication) diagram representing the object interaction and ‘how they are linked
Diagram together’. It gives emphasize to the structural organization of objects
that send and receive messages. In short, it represents the collaboration
of objects using messages.
A diagram showing the states, transitions, events and activities similar
State Chart Diagram to a State Machine representation. Best suited for modeling reactive
systems.
It is a special type of state chart diagram showing activity to activity
Activity Diagram transition in place of state transition. It emphasizes on the flow control24
among objects.
@ McGraw-Hill Education
Actors
Enable or Disable
Seat Belt
Alarm
Ignition Key
3 OFF
5 Trigger
1 Trigger
2 Timeout
6 Timeout
4 ON
Sequence diagram for one possible sequence for the Seat Belt
Warning System 25
@ McGraw-Hill Education
Tool Provider/Comments
IBM Software
Rational Rose Enterprise (http://www-01.ibm.com/software/awdtools/developer/rose/ent
erprise/index.html)
Eclipse† based tool from IBM Software (http://www-
Rational System Developer 01.ibm.com/software/awdtools/developer/systemsdeveloper/
index.html)
UML/SysML-based model-driven development tool for real-
Telelogic Rhapsody time or embedded systems from IBM Software (http://www-
01.ibm.com/software/awdtools/rhapsody/)
Borland® Together® Borland (www.borland.com)
Enterprise Architect Sparx Systems (http://www.sparxsystems.com)
ARTiSAN Studio Artisan Software Tools Inc
(http://www.artisansoftwaretools.com/)
Microsoft Corporation. The Microsoft Visio (Part of
Microsoft® Visio Microsoft® Office product) supports UML model Diagram
generation. www.microsoft.com/office/visio
26
@ McGraw-Hill Education
27
@ McGraw-Hill Education
Model selection, Architecture selection, Language selection, Hardware Software partitioning etc are some of the pain
points in the hardware-software co-design
Controller architecture, Datapath Architecture, Complex Instruction Set Computing (CISC), Reduced Instruction Set
Computing (RISC), Very long Instruction Word Computing (VLIW), Single Instruction Multiple Data (SIMD),
Multiple Instruction Multiple Data (MIMD) etc are the commonly used architectures in system design
Data Flow Graph (DFG) Model, State Machine Model, Concurrent Process Model, Sequential Program model, Object
Oriented model etc are the commonly used computational models in embedded system design
A programming Language captures a ‘Computational Model’ and maps it into architecture.
The Hierarchical/Concurrent Finite State Machine Model (HCFSM) is an extension of the FSM for supporting
concurrency and hierarchy
HCFSM uses statecharts for capturing the states, transitions, events and actions. The Harel Statechart, UML State
diagram etc are examples for popular statecharts used for the HCFSM modeling of embedded systems
In the sequential model, the functions or processing requirements are executed in sequence. It is same as the
conventional procedural programming
The concurrent or communicating process model models concurrently executing tasks/processes
Unified Modeling Language (UML) is a visual modeling language for Object Oriented Design (OOD). Things,
Relationships and Diagrams are the fundamental building blocks of UML
UML Diagrams give a pictorial representation of the static aspects, behavioral aspects and organization and
management of different modules. Static Diagrams, Object diagram, Usecase diagram, Sequence diagram, Statechart
diagram etc are the different UML diagrams
Hardware-Software trade-offs are the parameters used in the decision making of partitioning a system requirement
into either hardware or software. Processing speed, performance, frequency of changes, memory size and gate count
28
requirements, reliability, effort, cost etc are examples for hardware-software tradeoffs
@ McGraw-Hill Education
Further Reading
The Unified Modeling Language User Guide, Second Edition. Grady Booch,
James Rumbaugh and Ivar Jacobson. Addison-Wesley
29