0% found this document useful (0 votes)
6 views

Chapter1c UML Overview

The document outlines the formal system design process using UML, emphasizing the importance of object-oriented design principles such as abstraction and encapsulation. It details UML elements, including classes, objects, and various diagram types that visualize system architecture and behavior. Additionally, it discusses relationships between classes and objects, providing examples of aggregation, composition, and generalization.

Uploaded by

mprabhu24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Chapter1c UML Overview

The document outlines the formal system design process using UML, emphasizing the importance of object-oriented design principles such as abstraction and encapsulation. It details UML elements, including classes, objects, and various diagram types that visualize system architecture and behavior. Additionally, it discusses relationships between classes and objects, providing examples of aggregation, composition, and generalization.

Uploaded by

mprabhu24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Formal System Design Process with

UML
Use a formal process & tools to facilitate and
automate design steps:
Requirements
Specification
System architecture
Coding/chip design
Testing
Text: Chapter 1.4
Other resources on course web page.
Object-Oriented Design
 Describe system/design as interacting objects
 Across multiple levels of abstraction
 Visualize elements of a design
 Object = state + methods.
 State defined by set of “attributes”
 each object has its own identity.
 user cannot access state directly
 Methods (functions/operations) provide an abstract
interface to the object attributes.
 Objects map to system HW/SW elements
Objects and classes
 Class: an object type that defines
 state elements for all objects of this type.
 Each object has its own state.
 Elements not directly accessible from outside
 State values may change over time.
 methods (operations) used to interact with all objects
of this type.
 State elements accessed through methods
Object-oriented design principles
 Some objects closely correspond to real-world objects.
 Other objects may be useful only for description or
implementation.
 Abstraction: list only info needed for a given purpose
 Encapsulation: mask internal op’s/info
 Objects provide interfaces to read/write the object state.
 Hide object’s implementation from the rest of the system.
 Use of object should not depend on how it’s implemented
Unified Modeling Language (UML)
 Developed by Grady Booch et al.
 Version 1.0 in 1997 (current version 2.4.1)
 Maintained by Object Management Group (OMG) – www.omg.org
 Resources (tutorials, tools): www.uml.org
 Goals:
 object-oriented;
 visual;
 useful at many levels of abstraction;
 usable for all aspects of design.
 Encourage design by successive refinement
 Don’t rethink at each level
 CASE tools assist refinement/design
UML Elements
 Model elements
 classes, objects, interfaces, components, use cases, etc.
 Relationships
 associations, generalization, dependencies, etc.
 Diagrams
 class diagrams, use case diagrams, interaction diagrams, etc.
 constructed of model elements and relationships

Free/open source UML diagramming tools are available


Structural vs. Behavioral Models

 Structural: describe system components and relationships


 static models
 objects of various classes

 Behavioral: describe the behavior of the system, as it relates


to the structure
 dynamic models
UML Diagram Types
 Use-case: help visualize functional requirements (user-
system interaction)
 Class: types of objects & their relationships
 Object: specific instances of classes
 Interaction diagrams (dynamic)
 Sequence: how sequences of events occur (message-driven)
 Collaboration: focus on object roles
 Statechart: describe behavior of system/objects
 Component: physical view of system (code, HW)
 Others ….
UML use case diagrams
 Describe behavior user sees/expects (“what” – not “how”)
 Describe user interactions with system objects
 Users = actors (anyone/anything using the system)
Example: Data acquisition system
Measure
V

Analyze
data

Measure
Actor0 T Supporting
(User) use cases Actor1
(System/CPU)
o Translate to algorithms for system design
DAQ system use case description
 User
 Select measure volts mode
 Select measurement range or autorange
 System
 If range specified
 Configure to specified gain
 Make measurement
 If in range – display results
 If exceed range – display largest value and flash display
 If auto range
 Configure to midrange gain
 Make measurement
 If in range – display mode
 If above/below range – adjust gain to next range and repeat
 If exceed range – display largest value and flash display
UML class (type of object)

Display class name

pixels
elements attributes/
menu_items state elements

mouse_click() operations/
draw_box methods

Class diagram: shows relationships between classes


UML object
object name
object’s class

d1: Display

pixels is a pixels: array[] of pixels


2-D array elements
menu_items

comment
attributes

Object diagram: static configuration of objects in a system


The class interface
 Encapsulation: implementation of the object is hidden by the
class
 Interface: How the user sees and interacts with the object
 Operations (methods) provide the abstract interface
between the class’ implementation and other classes.
 An operation can examine/modify the object’s state.
 Operations may have arguments, return values.

 Often list only a subset of attributes/methods within a given design


context
 Those pertinent to that context
Choose your interface properly
 If the interface is too small/specialized:
 object is hard to use for even one application;
 even harder to reuse.

 If the interface is too large:


 class becomes too cumbersome for designers to
understand;
 implementation may be too slow;
 spec and implementation can be buggy.
Relationships between classes and objects

 Association: objects “related” but one does not own the


other.

 Aggregation: complex object comprises several smaller


objects. parts whole

 Composition: strong aggregation: part may belong to only


one whole – deleting whole deletes parts.
parts whole

 Generalization: define one class in terms of another.


Derived class inherits properties.
derived base
Association Example

Keypad CellularRadio
1 1

SendsNumberTo

Nature of the association

Optionally – show “direction” of association

SendsNumberTo
Aggregation/Composition Examples
List Rectangle

aggregation composition

Atom Point

Atoms may be in other lists Points can only be on one rectangle


Deleting list doesn’t delete atoms. Deleting rectangle deletes points.
Aggregation/Composition Examples
AddressBook ContactGroup
1 0..*

1 compositions 0..*
aggregation

0..*
Contact
0..*

n..m - between n and m instances


0..* - any number of instances (or none)
1..* - at least one instance
1 - exactly one instance
Generalization/Class derivation
 May define one class in terms of another (more “general”)
class.
 Instead of creating a new class
 Derived class inherits attributes & operations of base class.

(child class)

Derived_class
UML
generalization
Base_class
(parent class)
Class derivation example
parent class
Display
base class pixels
elements
menu_items
pixel()
derived classes
set_pixel()
mouse_click()
draw_box

BW_display Color_display
child class child class
generalizations
Multiple inheritance
base classes

Speaker Display

Multimedia_display

derived class inherits properties of both base classes


Generalization example
Links and associations

 Association: describes relationship between classes.


 Association & class = abstract

 Link: describes relationships between objects.


 Link & object = physical
Association & link examples
# contained messages # containing message sets

Class
message message set
0..* 1
Diagram msg: ADPCM_stream
Contains count : integer
length : integer
(association)
ADPCM: adaptive differential pulse-code modulation

m1:message
msg = msg1 contains Msg:message set
Object length = 1102
Diagram (links) count = 2
m2:message
contains
msg = msg2
length = 2114
Object & Class Diagram Example

Object
diagram

Class
diagram
OO implementation in C++
(derive from UML diagram)

/* Define the Display class */


class Display {
pixels : pixeltype[IMAX,JMAX]; /* attributes */
public:
/* methods */
Display() { } /* create instance */
pixeltype pixel(int i, int j) {
return pixels[i,j]; }
void set_pixel(pixeltype val, int i,
int j) { pixels[i,j] = val; }
}
Instantiating an object of a class in C++

/*instantiate Display object d1*/


Display d1;

/* manipulate object d1 */
apixel = d1.pixel(0,0);

object method
d1.set_pixel(green,18,123);
Behavioral descriptions
 Several ways to describe behavior:
 internal view;
 external view.
 Dynamic models:
 State diagram: state-dependent responses to events
 Sequence diagram: message flow between objects over time
 Collaboration diagram: relationships between objects
 Specify:
 inter-module interactions
 order of task executions
 what can be done in parallel
 alternate execution paths
 when tasks active/inactive
State machines
Similar to sequential circuit state diagrams

transition

a b

state state name


Event-driven state machines
 Behavioral descriptions are written as event-driven state
machines.
 Machine changes state on occurrence of an “event”.
 An event may come from inside or outside of the system.
 Signal: asynchronous event.
 Call: synchronized communication.
 Timer: activated by time.
 May also have state changes without events
 Ex. when some condition is satisfied
Signal event

<<signal>>
mouse_click a

leftorright: button mouse_click(x,y,button)


x, y: position

event b
declaration
event description
Call event
draw_box(10,5,3,2,blue)

c d

Timer event
tm(time-value)

e f

Ex. RTOS “system tick timer”


Example: click on a display
start
mouse_click(x,y,button)/ region = menu/
find_region(region) which_menu(i) call_menu(I)
region got menu called
found item menu item
region = drawing/
find_object(objid) highlight(objid)

found object
object highlighted

finish
Sequence diagram
 Shows sequence of operations over time.
 Use to plan timing of operations
 Relates behaviors of multiple objects.
 Objects listed at top from left to right
 Each object has a time line (shown as dashed line)
 Focus of control (shown as a rectangle) indicates when object is
“active”
 Actions between objects shown as horizontal lines/arrows
Sequence diagram example
Programs on a CPU: only one has control of CPU at a time

m: Main f1: Function f2: Function

f1(p1)

f2(p2)

time
box = “focus
of control” return(r2)
return(r1)
Sequence diagram example
Display and menu co-exist (both “active”)

m: Mouse d1: Display u: Menu

mouse_click(x,y,button)
which_menu(x,y,i)

time
box =
“focus of control” call_menu(i)

lifelines
Collaboration Diagram
 Show relationship between object in terms of messages
passed between them
 Objects as icons
 Messages as arrows
 Arrows labeled with sequence numbers to show order
of events
Example: Cell phone class diagram
Dialer Telephone Cellular Radio

Button Speaker Microphone Display

Source: Robert C. Martin, “UML Tutorial: Collaboration Diagrams”


Cell phone use case: Make call
1. User enters number (presses buttons)
2. Update display with digits
3. Dialer generates tones for digits – emit from speaker
4. User presses “send”
5. “In use” indicator lights on display
6. Cell radio connects to network
7. Digits sent to network
8. Connection made to called party

Source: Robert C. Martin, “UML Tutorial: Collaboration Diagrams”


Collaboration diagram: Make call
Show collaborations in the previous use case (including order)

:Speaker

1.2 EmitTone(code)
1* Digit(code)

:Button :Dialer :CellularRadio

2.1 Connect(pno)

2:Send() 1.1 DisplayDigit(code)

Send:Button :Display

Source: Robert C. Martin, “UML Tutorial: Collaboration Diagrams”


Summary
 Example: Model train set (Section 1.4)

 Object-oriented design helps us organize a design.


 UML is a transportable system design language.
 Provides structural and behavioral description
primitives.

You might also like