ECE 355: Software Engineering: Unit 4 (Part 2)

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 63

ECE 355: Software Engineering

CHAPTER 2
Unit 4 (Part 2)

Presentation material based on past ECE 355 notes by Prof. K. Czarneszki.


Course outline
• Unit 1: Software Engineering Basics
• Unit 2: Process Models and Software Life Cycles
• Unit 3: Software Requirements
 Unit 4: Unified Modeling Language (UML)
• Unit 5: Design Basics and Software Architecture
• Unit 6: OO Analysis and Design
• Unit 7: Design Patterns
• Unit 8: Testing and Reliability
• Unit 9: Software Engineering Management and Economics
UML - Outline
• Introduction
• Behavioral modeling
Structural modeling
– Static structural diagrams
• Class diagrams
• Object diagrams
– Implementation diagrams
• Component diagrams
• Deployment diagrams
• Advanced modeling
What is structural modeling?
• Structural model: a view of a system that
emphasizes the structure of the objects,
including their classifiers, relationships,
attributes and operations.
Structural Modeling: Core Elements
Construct Description Syntax
class a description of a set of objects that
share the same attributes, operations,
methods, relationships and semantics.
interface a named set of operations that
characterize the behavior of an «interface»

element.
component a modular, replaceable and significant
part of a system that packages
implementation and exposes a set of
interfaces.
node a run-time physical object that
represents a computational resource.
Structural Modeling: Core Elements (cont’d)

Construct Description Syntax


constraint¹ a semantic condition or restriction.
{constraint}

¹ An extension mechanism useful for specifying structural elements.


Structural Modeling: Core Relationships
Construct Description Syntax
association a relationship between two or more
classifiers that involves connections
among their instances.
aggregation A special form of association that
specifies a whole-part relationship
between the aggregate (whole) and the
component part.
generalization a taxonomic relationship between a more
general and a more specific element.

dependency a relationship between two modeling


elements, in which a change to one
modeling element (the independent
element) will affect the other modeling
element (the dependent element).
Structural Modeling: Core Relationships (cont’d)

Construct Description Syntax


realization a relationship between a specification and
its implementation.
Structural Diagram Tour
• Show the static structure of the model
– the entities that exist (e.g., classes, interfaces, components, nodes)
– internal structure
– relationship to other entities
• Do not show temporal information
• Kinds
– static structural diagrams
• class diagram
• object diagram
– implementation diagrams
• component diagram
• deployment diagram
UML - Outline
• Introduction
• Structural modeling
Static structural diagrams
• Class diagrams
• Object diagrams
– Implementation diagrams
• Component diagrams
• Deployment diagrams
• Behavioral modeling
• Advanced modeling
Static Structural Diagrams
• Shows a graph of classifier elements
connected by static relationships.
• kinds
– class diagram: classifier view
– object diagram: instance view
UML - Outline
• Introduction
• Structural modeling
– Static structural diagrams
Class diagrams
• Object diagrams
– Implementation diagrams
• Component diagrams
• Deployment diagrams
• Behavioral modeling
• Advanced modeling
Class
name
Window
origin attributes
size
Open() operations
Close()
Move()
Display()
Active class
EventManager Thick boundary

Suspend()
Flush()
Classes: compartments with names
Reservation
operations
guarantee()
cancel ()
change (newDate: Date)
responsibilities
bill no-shows
match to available rooms
exceptions
invalid credit card

Fig. 3-23, UML Notation Guide


Classes with more details
PackageName::Agent Name: simple, path
Height: Float Attribute: all, only some, or none
Val : Boolean = false
<<constructor>> Operations: services provided.
New(p : policy)
Stereotype: group attributes/ops and
<<process>>
put a descriptive prefix.
Process(o : order)

Responsibilities Responsibility: obligation of a class.
-- determine risk of an free-form text.
order
-- handle criteria for
fraud
Classifiers
• A classifier is a mechanism for describing
structural and behavioral features.
– Nine classifiers
• Classes, interfaces, datatypes, signals, components,
nodes, use cases, subsystems.
– Advanced features
• Multiplicity, visibility, signatures, polymorphism
Visibility of a classifier’s attr. & ops.
1. Public: Any outside classifier can use (+).
2. Protected: Any descendant of the classifier can use (#).
3. Private: Only the classifier itself can use (-).

Toolbar
# currentSelection: Tool
# toolCount: Integer
+ pickItem(i: integer)
- compact()
(Owner) Scope
1. Instance: Each instance of the classifier holds its own value
for the feature.
2. Classifier: There is just one value of the feature for all
instances of the classifier.

Frame
instance
Header : FrameHeader
uniqueID : Long classifier
(“static” in Java)
Multiplicity
- Specification of the range of allowable cardinalities
an entity may assume.

NetworkController 1

consolePort [2..*] : Port


Classes: method body

PoliceStation

alert (Alarm)
1 station

BurglarAlarm

isTripped: Boolean = false

report () { if isTripped
then station.alert(self)}

Fig. 3-24, UML Notation Guide


Showing more details...
Names of abstract classes and operations shown in italics
Window
{abstract,
Window author=Joe,
status=tested}
+size: Area = (100,100)
#visibility: Boolean = true
Window +default-size: Rectangle
#maximum-size: Rectangle
-xptr: XWindow*
size: Area
visibility: Boolean
+display ()
display () +hide ()
hide () +create ()
-attachXWindow(xwin:Xwindow*)

Fig. 3-20, UML Notation Guide


Relationships
• Dependency:
• Use to show one thing using or deriving from
another.
• Arrow in the direction of thing being depended on.
• Generalization:
• Use to show a parent-child relationship.
• Child is substitutable for parent (not the other way!)
• Association: (structural relationship)
• Objects of one thing are connected to another.
• Unary, binary, n-ary.
Relationships
Window

Open() Event
Close() dependency
HandleEvent()

generalization
association
ConsoleWindow DialogBox Control
DisplayPrompt()

Generalization: Alternative notations
Shape

Separate Target Style

Polygon Ellipse Spline . ..

Shape
Shared Target Style

Polygon ...
Ellipse Spline

Fig. 3-47, UML Notation Guide


Generalization: Multiple Classification

Vehicle

power venue
power venue
{overlapping} {overlapping}

WindPowered MotorPowered Land Water


Vehicle Vehicle Vehicle Vehicle

Truck Sailboat

Fig. 3-48, UML Notation Guide


More about association
Person Works for Company

Name an association to describe its nature.


Direction triangle: direction of reading.

employee employer
Person Company
Role: face presented to the other class.
More about association
Navigability: An arrow may be attached to the end of the path to
indicate that navigation is supported toward the classifier attached
to the arrow.

Works for
Person Company
More about association
Multiplicity: How many objects may be connected across
an instance of an association.

1..*
Person * Company
employee employer

Multiplicity at one end  for each object at the other end,


there must be that many objects at the near end.
Exactly one: 1
Zero or one: 0 .. 1
Many: 0 .. *
One or more: 1 .. *
Not shown  unspecified or suppressed
Aggregation
Plain association: peer relationship.
Aggregation: whole/part relationship.
- An object may be a part of ONLY one aggregate at a time.

Company whole

*
Department part
More about association
Composition (composite aggregation):
- An object may be a part of ONLY one composite at a time.
- Whole is responsible for the disposition of its parts.

Window whole
1

*
Frame part
Composition vs Aggregation

• Aggregation: does not link the lifetimes of


the whole and its parts.
• Composition:
• Parts with nonfixed multiplicity can be created after
the composite itself.  lifetime
• Such parts can be explicitly removed before the
death of the composite.  lifetime
• An object may be a part of only one composite at a
time.  strong ownership
Alternative notations for composition
Window
Window
scrollbar [2]: Slider
title: Header
body: Panel
2
scrollbar:Slider

Window
1
1 title:Header
1 1
1
scrollbar 2 body:Panel
title 1 body 1
Slider Header Panel
Fig. 3-45, UML Notation Guide
Fig. 3-45, UML Notation Guide
More about association

Association classes: specify properties of an association.


employer employee Person
Company
* 1..*

Job
Description
dateHired
Salary
Ternary Associations
Year

season 

 
Team Player
team goalkeeper

Record
goals for
goals against
wins
losses
ties

Fig. 3-44, UML Notation Guide


Constraints
Constraints add new semantics or change existing rules.

Portfolio
Corporation
{secure}
{or}
BankAccount
Person
Constraints and Comments
 Member-of 
Person {subset} Committee Represents
an incorporated entity.
1 Chair-of 

employee employer
  0..1
Person Company
0..1
boss

{Person.employer =
Person.boss.employer}

Fig. 3-17, UML Notation Guide


Derived Attributes and Associations
Person
birthdate
{age = currentDate - birthdate} /age

1
Company  Department
employer
1 1 department
employer
WorksForDepartment

 Person
/WorksForCompany
{ Person.employer=Person.department.employer }
Fig. 3-52, UML Notation Guide
More examples of associations

+vertex
1 3..
Contains
Polygon Point
{ordered}
1
GraphicsBundle
1
-bundle color
texture
density
More examples of associations
Job 
Company 
employer employee Person

Job boss
salary
0..1
worker 

Manages

Person
Fig. 3-40, UML Notation Guide

{X or}
Dependencies

ClassA ClassB ClassD


«friend»
«friend»
operationZ()
«instantiate»

«call» ClassC

«refine»
ClassC combines
two logical classes

ClassD ClassE

Fig. 3-50, UML Notation Guide


Realization
- A semantic relationship between classifiers.
- One classifier specifies a contract that another guarantees.
- Realization in two places:
- between interfaces and classes/components that
realize them.
- between use cases and collaborations that realize
them.
- Graphical rendering: cross between generalization and
dependency
Interface
• Defines a set of operation specs
• Never defines an implementation
(no attributes, no associations, operations
not implemented)
• Typically attached to a class or component
Interfaces: Shorthand Notation

IStoreHome Store

POSterminalHome -storeId: Integer


-POSlist: List
POSterminal <<use>> +create()
+login(UserName, Passwd)
POSterminal +find(StoreId)
+getPOStotals(POSid)
+updateStoreTotals(Id,Sales)
I Store
+get(Item)

Fig. 3-29, UML Notation Guide


Interfaces: Longhand Notation

IStoreHome Store

POSterminalHome -storeId: Integer


-POSlist: List

POSterminal +create()
<<use>> <<interface>> +login(UserName, Passwd)
POSterminal IStore +find(StoreId)
+getPOStotals(POSid)
+getPOStotals(POSid) +updateStoreTotals(Id,Sales)
+updateStoreTotals(Id,Sales) +get(Item)
+get(Item)

Fig. 3-29, UML Notation Guide


Types and Implementation Classes
«type» «implementationClass»
Object HashTable

* elements 1 body

«type» «implementationClass»
Set HashTableSet
addElement(Object)
removeElement(Object) addElement(Object)
testElement(Object):Boolean removeElement(Object)
testElement(Object):Boolean
setTableSize(Integer)

Fig. 3-27, UML Notation Guide


Type
• Like an interface: Defines a set of operation
specs
• Unlike an interface: Can have attributes and
associations
Class Diagram Example
CreditCard
PMCreditCard
{abstract}

OrderBean
<<interface>> {abstract}
EntityBean
+getOrderStatus
+setOrderStatus
PMOrder
+getLineItems
+setLineItems
order +getCreditApproved
+setCreditApproved
* ...

1 order

buyer 1 * item

Customer LineItem
PMLineItem
{abstract}
*
* item

1 commodity

Adapted from Fig. 23 [EJB 2.0].


Product
UML - Outline
• Introduction
• Structural modeling
– Static structural diagrams
• Class diagrams
Object diagrams
– Implementation diagrams
• Component diagrams
• Deployment diagrams
• Behavioral modeling
• Advanced modeling
Instances

• Concrete manifestation of an abstraction


• All objects are instances
• Not all instances are objects. (Instance of an
association is a “link”)
• To indicate an instance, underline its name
Instances (named, anonymous, multiple)

t: Transaction named myCustomer

:Multimedia::AudioStream anonymous

multiobject

:keyCode
Object state
myCustomer
Instance with attribute values
Id : SSN = “432 …..”
Active = true

Instance with explicit state

c: Phone
[WaitingForAnswer]
Object diagrams

• Model the instances of things contained in


class diagrams.
• Show objects are their relationships at a
point in time.
• No communication is shown.
An object diagram
c:Company

d1: Dept d2: Dept


name = “Sales” name = “R&D”

d3: Dept Objects, links, notes, constraints


Name = ….

p: Person : ContactInfo
Name = “jk” Address=“200 U Av.”
Composite objects
awindow : Window

horizontalBar:ScrollBar

verticalBar:ScrollBar

moves

surface:Pane
moves

title:TitleBar

Fig. 3-39, UML Notation Guide


UML - Outline
• Introduction
• Structural modeling
– Static structural diagrams
• Class diagrams
• Object diagrams
Implementation diagrams
• Component diagrams
• Deployment diagrams
• Behavioral modeling
• Advanced modeling
Implementation Diagrams
• Show aspects of model implementation,
including source code structure and run-
time implementation structure
• Kinds
– component diagram
– deployment diagram
UML - Outline
• Introduction
• Structural modeling
– Static structural diagrams
• Class diagrams
• Object diagrams
– Implementation diagrams
Component diagrams
• Deployment diagrams
• Behavioral modeling
• Advanced modeling
Component Diagram
• Shows the organizations and dependencies
among software components
• Component
– a modular, replaceable and significant part of a
system that packages implementation and
exposes a set of interfaces
• Components may be
– implemented by artifacts (e.g., binary,
executable, or script files)
Component Diagram
ShoppingSessionHome

<<EJBSession>>
ShoppingSession ShoppingSession

<<EJBEntity>>
Catalog

CatalogPK
<<auxiliary>>
CatalogPK
CatalogHome CatalogHome

<<focus>>
Catalog
CatalogInfo
Catalog <<auxiliary>>
CatalogInfo

Catalog

<<file>>
CatalogJAR

ShoppingCartHome

ShoppingCart
<<EJBEntity>>
ShoppingCart
Fig. 3-95, UML Notation Guide
UML - Outline
• Introduction
• Structural modeling
– Static structural diagrams
• Class diagrams
• Object diagrams
– Implementation diagrams
• Component diagrams
Deployment diagrams
• Behavioral modeling
• Advanced modeling
Deployment Diagram
• Shows the configuration of run-time
processing elements and the software
components, processes and objects that live
on them
• Deployment diagrams may be used to show
which components may run on which nodes
Deployment Diagram
:Client

<<browser>>
:OpenSourceBrowser

videoStoreServer:AppServer
<<Container>>
VideoStoreApplication

<<Session>> <<Entity>>
ShoppingSession Catalog
<<Focus>> <<Focus>>
ShoppingSession Catalog

<<Entity>>
ShoppingCart
<<Focus>>
ShoppingCart

:DBServer
<<database>>
:VideoStoreDB

Fig. 3-97, UML Notation Guide

You might also like