ppt

advertisement
COMS W4156: Advanced
Software Engineering
Prof. Gail Kaiser
Kaiser+4156@cs.columbia.edu
http://york.cs.columbia.edu/classes/cs4156/
01 November 2007
Kaiser: COMS W4156 Fall 2007
1
Reprise: What is UML?
• UML = Unified Modeling Language
• A standard language for specifying, visualizing,
constructing and documenting software artifacts
• Standardized by Object Management Group
(OMG)
• Uses mostly graphical notations (blueprints)
• Helps project teams communicate, explore
potential designs, and validate the requirements
and architectural design of the software system
01 November 2007
Kaiser: COMS W4156 Fall 2007
2
Our Focus: the Language
Unified Modeling Language
• Language = syntax + semantics
– Syntax = rules by which language
elements (e.g., words) are assembled into
expressions (e.g., phrases, clauses)
– Semantics = rules by which syntactic
expressions are assigned meanings
01 November 2007
Kaiser: COMS W4156 Fall 2007
3
Building Blocks
• The basic building blocks (syntax) of
UML are:
– Model elements (classes, interfaces,
components, use cases)
– Relationships (associations, generalization,
dependencies)
– Diagrams (class diagrams, use case
diagrams, interaction diagrams)
• Simple building blocks are used to create
large, complex structures
01 November 2007
Kaiser: COMS W4156 Fall 2007
4
Types of UML Diagrams
• Each UML diagram is designed to let
developers and customers view a software
system from a different perspective and in
varying degrees of abstraction
– Use Case
– Interaction
– State
– Structural
– Implementation
01 November 2007
Kaiser: COMS W4156 Fall 2007
5
Structural Modeling
• Define the architecture
• Used to model the “things” that make up
the system
• Model class structure and contents
• Emphasizes the structure of objects,
including their classifiers, attributes,
operations, and relationships including
dependencies
01 November 2007
Kaiser: COMS W4156 Fall 2007
6
Structural Diagrams
• Show a graph of elements connected
by relationships
• Kinds
– Class diagram: classifier view
– Object diagram: instance view
• Shows the static structures of the
system (not dynamic or temporal)
01 November 2007
Kaiser: COMS W4156 Fall 2007
7
Class Diagrams
• Shows how the different entities
(people, things and data) relate to each
other
• A class diagram can be used to display
logical classes, not necessarily code
classes, which are typically the kinds of
things the business people in an
organization talk about — rock bands,
CDs, radio play; or home mortgages,
car loans, interest rates
• Use domain vocabulary
01 November 2007
Kaiser: COMS W4156 Fall 2007
8
Class Diagram Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
9
Class Notation
•
•
•
•
•
A class is depicted on the class diagram as a
rectangle with three horizontal sections
(compartments)
The upper section shows the class's name
The middle section contains the class's
structure or attributes, optionally with initial
values
The lower section contains the class's
operations or behaviors (or "methods")
May be abbreviated to show just name, or just
name and attributes
01 November 2007
Kaiser: COMS W4156 Fall 2007
10
Class Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
11
Class Diagram
• Draw a generalization relationship using a line
with an arrowhead at the top pointing to the
super class, where the arrowhead should a
completed triangle
• Associations
– A solid line if both classes are aware of each other
– A line with an open arrowhead if the association is
known by only one of the classes (pointing to the
class known by the other one, i.e., direction of
potential navigation)
– Optionally label with multiplicity
01 November 2007
Kaiser: COMS W4156 Fall 2007
12
Example Class Diagram
Generalization
One-way
association
01 November 2007
Kaiser: COMS W4156 Fall 2007
Two-way
association
13
Association Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
14
Generalization Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
15
Core Elements
Construct
Description
class
a description of a set of objects
that share the same attributes,
operations, methods, relationships
and semantics.
a named set of operations that
characterize the behavior of an
element.
a modular, replaceable and
significant part of a system that
packages implementation and
exposes a set of interfaces.
a run-time physical object that
represents a computational
resource.
a semantic condition or restriction.
interface
component
node
constraint
Syntax
«interface»
{constraint}
01 November 2007
Kaiser: COMS W4156 Fall 2007
16
Core Relationships
Construct
Description
association
a relationship between two or more
classifiers that involves connections
among their instances.
A special form of association that
specifies a whole-part relationship
between the aggregate (whole) and
the component part.
a taxonomic relationship between a
more general and a more specific
element.
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).
a relationship between a specification
and its implementation.
aggregation
generalization
dependency
realization
01 November 2007
Kaiser: COMS W4156 Fall 2007
Syntax
17
Implementation Class Diagrams
• Can also be used to show implementation classes,
which are the things that programmers typically deal with
• An implementation class diagram will probably show
some of the same classes as the logical classes diagram
• The implementation class diagram won't be drawn with
the same attributes, however, because it will most likely
have references to things like Vectors and HashMaps
• May add compartments such as responsibilities and
exceptions, even gist of method body
• May indicate attribute and operation visibility: public,
private, protected, package
01 November 2007
Kaiser: COMS W4156 Fall 2007
18
Example Implementation
Class
Reservation
operations
guarantee()
cancel ()
change (newDate: Date)
responsibilities
bill no-shows
match to available rooms
exceptions
invalid credit card
01 November 2007
Kaiser: COMS W4156 Fall 2007
19
Example Class Detail
Window
Window
size: Area
visibility: Boolean
display ()
hide ()
Window
{abstract,
author=Joe,
status=tested}
+size: Area = (100,100)
#visibility: Boolean = true
+default-size: Rectangle
#maximum-size: Rectangle
-xptr: XWindow*
+display ()
+hide ()
+create ()
-attachXWindow(xwin:Xwindow*)
+ = public
- = private
# = protected
~ = package visibility
01 November 2007
Kaiser: COMS W4156 Fall 2007
20
Method Body Example
PoliceStation
alert (Alarm)
1 station
*
BurglarAlarm
isTripped: Boolean = false
{ if isTripped
then station.alert(self)}
report ()
01 November 2007
Kaiser: COMS W4156 Fall 2007
21
Generalization
• Often represents inheritance at
implementation class level
• Abstract class names given in italics
• Possibly multiple inheritance
• Possibly multiple inheritance hierarchies
emanating from same base class
• Separate vs. shared target formats
01 November 2007
Kaiser: COMS W4156 Fall 2007
22
Generalization Example
Equivalent Forms
01 November 2007
Kaiser: COMS W4156 Fall 2007
23
Generalization Example
Shape
Separate Target Style
Polygon
Ellipse
Spline
. ..
Shape
Polygon
01 November 2007
Ellipse
Shared Target Style
Spline
Kaiser: COMS W4156 Fall 2007
...
24
Multiple Level Generalization
Example
Vehicle
venue
power
power
{overlapping}
WindPowered
Vehicle
Truck
01 November 2007
venue
MotorPowered
Vehicle
{overlapping}
Land
Vehicle
Water
Vehicle
Sailboat
Kaiser: COMS W4156 Fall 2007
25
Associations
• Reflect connections, usually implemented as an
instance variable in one class
• Connector may include named roles at each
end, cardinality, direction and constraints
• Self-associations permitted
• May indicate choice (xor)
• May be N-ary (not just binary)
• Association classes allow an association
connection to have operations and attributes
01 November 2007
Kaiser: COMS W4156 Fall 2007
26
Association Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
27
Association Examples
Job


Company
employer employee
Job
salary
Person
boss
worker 
0..1
Manages
Person
Account
{X or}
Corporation
01 November 2007
Kaiser: COMS W4156 Fall 2007
28
Association Class Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
29
Ternary Association Class
Example
Year
season 
Team


goalkeeper
team
Player
Record
goals for
goals against
wins
losses
ties
01 November 2007
Kaiser: COMS W4156 Fall 2007
30
Aggregations
• Aggregations are a stronger form of association
between a whole and its parts
• Drawn with a diamond next to the class
representing the target or whole (parent)
• open vs. closed diamond indicates usage vs.
containment semantics
• Containment may be indicated by composition
rather than relationship lines
01 November 2007
Kaiser: COMS W4156 Fall 2007
31
Aggregation Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
32
Aggregation Example
1
Polygon
+vertex
3..
Contains
Point
{ordered}
1
GraphicsBundle
1
-bundle
01 November 2007
color
texture
density
Kaiser: COMS W4156 Fall 2007
33
Composition Example
Window
Window
scrollbar [2]: Slider
title: Header
body: Panel
scrollbar:Slider
1
title:Header
Window
1
scrollbar
Slider
01 November 2007
2
1
1
1
title
2
body:Panel
1
Header
body
1
Panel
Kaiser: COMS W4156 Fall 2007
34
Dependencies
• Dependencies are a weaker form of association without
semantic knowledge
• Often used early in the design process where it is known
that there is some kind of link between two elements, but
it is too early to know exactly what the relationship is
• Later in the design process, dependencies may be
replaced with a more specific type of connector
• Shown with a dashed line (e.g., from client to supplier)
• <<label>> on line specifies kind (stereotype) of
dependency, e.g., <<instantiate>>, <<import>>,
etc.
01 November 2007
Kaiser: COMS W4156 Fall 2007
35
Dependencies Example
ClassA
ClassD
ClassB
«friend»
«friend»
operationZ()
«instantiate»
«call»
ClassC
«refine»
ClassD
01 November 2007
Kaiser: COMS W4156 Fall 2007
ClassC combines
two logical classes
ClassE
36
Dependencies Example
Controller
«access»
«access»
«access»
Diagram
Elements
«access»
«access»
Domain
Elements
01 November 2007
Graphics
Core
Kaiser: COMS W4156 Fall 2007
37
Interfaces
• All interface operations are public and abstract, and all
interface attributes must be constants
• By realizing an interface, classes are guaranteed to
support a required behavior, which allows the system to
treat non-related elements in the same way – that is,
through the common interface
• While a class may only inherit from a single super-class,
it may implement multiple interfaces
• May be drawn in a similar style to a class, with
operations specified
• Or may be drawn as a circle with no explicit operations
detailed (when drawn as a circle, realization links to the
circle form of notation are drawn without target arrows)
01 November 2007
Kaiser: COMS W4156 Fall 2007
38
Interface Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
39
Interface Realization Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
40
Interface
Example
CreditCard
{abstract}
OrderBean
{abstract}
<<interface>>
EntityBean
+getOrderStatus
+setOrderStatus
+getLineItems
+setLineItems
+getCreditApproved
+setCreditApproved
order
*
buyer
Customer
1
PMCreditCard
PMOrder
...
1
order
*
item
LineItem
{abstract}
PMLineItem
*
01 November 2007
*
item
1
commodity
Product
Kaiser: COMS W4156 Fall 2007
Adapted from Fig. 23 [EJB 2.0].
41
Types and Implementation
Classes Example
«type»
Object
«implementationClass»
HashTable
* elements
1 body
«type»
Set
«implementationClass»
HashTableSet
addElement(Object)
removeElement(Object)
testElement(Object):Boolean
01 November 2007
addElement(Object)
removeElement(Object)
testElement(Object):Boolean
setTableSize(Integer)
Kaiser: COMS W4156 Fall 2007
42
Object Diagrams
• Refer to a specific instance
• Special case of a class diagram
• Does not show operations but may show
runtime state
• Object names are underlined and may
show the name of the classifier from which
the object is instantiated
• May compose multiple specific instances
• May be drawn as glyphs
01 November 2007
Kaiser: COMS W4156 Fall 2007
43
Class vs. Object Diagram Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
44
Run-time State Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
45
More Object Examples
triang le : Polygon
cen te r = (0 ,0 )
vertice s = ( (0 ,0 ),(4 ,0) ,( 4,3 ))
bo rd erC olo r = bla ck
fi llCo lo r = wh ite
triangle
:Polygon
tria ng le: Po lygo n
scheduler
01 November 2007
Kaiser: COMS W4156 Fall 2007
46
Composite Objects Example
awindow : Window
horizontalBar:ScrollBar
verticalBar:ScrollBar
moves
surface:Pane
moves
title:TitleBar
01 November 2007
Kaiser: COMS W4156 Fall 2007
47
When to Model Structure
• Adopt an opportunistic top-down
interleaved with bottom-up approach to
modeling structure
– Specify the top-level structure using
“architecturally significant” classifiers and
model management constructs (subsystems)
– Specify lower-level structure as you discover
detail wrt classifiers and relationships
01 November 2007
Kaiser: COMS W4156 Fall 2007
48
Implementation Diagrams
• Additional structural modeling (beyond
classes, interfaces and objects)
• Show aspects of model implementation,
including source code structure and runtime implementation structure
• Kinds
– Package diagram
– Component diagram
– Deployment diagram
01 November 2007
Kaiser: COMS W4156 Fall 2007
49
Package Diagrams
• Used to reflect the organization of packages and
their elements
• Provide a visualization of the namespaces
• Elements contained in a package share the
same namespace, therefore must have unique
names
• Drawn as folders, with tabs at the top; the
package name is on the tab or inside the
rectangle
• Dotted arrows show dependencies - one
package depends on another if changes in the
other could possibly force changes in the first
01 November 2007
Kaiser: COMS W4156 Fall 2007
50
Package Diagrams
• Packages may be imported or nested
• A <<merge>> connector between two
packages defines an implicit
generalization between elements in the
source package and elements with the
same name in the target package
• The target package need not contain
elements with same names as all source
package elements
01 November 2007
Kaiser: COMS W4156 Fall 2007
51
Package Diagram Example
nested
package
01 November 2007
Kaiser: COMS W4156 Fall 2007
52
Component Diagrams
• Describes the software components that make
up the system
• Provides a physical view of the system
• Shows the dependencies that the software has
on the other software components (e.g.,
software libraries) in the system
• A component is illustrated as a large rectangle
with two smaller rectangles on the side, lollipops
represent interfaces
• Dashed lines with arrows between components indicate
dependencies
01 November 2007
Kaiser: COMS W4156 Fall 2007
53
Component Examples
ShoppingSessionHome
<<Session>>
ShoppingSession
ShoppingSession
<<Entity>>
030303zak:Order
OrderHome
<<auxiliary>>
:OrderPK
OrderHome
<<focus>>
:Order
Order
OrderPK
OrderInfo
<<auxiliary>>
:OrderInfo
Order
01 November 2007
Kaiser: COMS W4156 Fall 2007
54
Component Diagram Example
ShoppingSessionHome
ShoppingSession
<<EJBSession>>
ShoppingSession
<<EJBEntity>>
Catalog
CatalogHome
CatalogPK
<<auxiliary>>
CatalogPK
CatalogHome
<<focus>>
Catalog
CatalogInfo
<<auxiliary>>
CatalogInfo
Catalog
Catalog
<<file>>
CatalogJAR
ShoppingCartHome
ShoppingCart
<<EJBEntity>>
ShoppingCart
01 November 2007
Kaiser: COMS W4156 Fall 2007
55
Component Diagram Example with
Labeled Dependencies
01 November 2007
Kaiser: COMS W4156 Fall 2007
56
Deployment Diagram
• Visualizes the physical architecture and the
deployment of components on that hardware
architecture
• Shows how a system will be physically deployed
in the hardware environment, distribution of
components across the enterprise
• Its purpose is to show where the different
components of the system will physically run and
how they will communicate with each other
01 November 2007
Kaiser: COMS W4156 Fall 2007
57
Deployment Diagram Notation
• Includes the notation elements used in a
component diagram, plus adds the concept of a
node
• A node represents either a physical machine or
a virtual machine node (e.g., a mainframe node)
• To model a node, simply draw a threedimensional cube (or box) with the name of the
node at the top of the cube
• Use the naming convention
[instance name] : [instance type]
(e.g., "w3reporting.myco.com : Application
Server")
01 November 2007
Kaiser: COMS W4156 Fall 2007
58
Deployment Diagram Example
01 November 2007
Kaiser: COMS W4156 Fall 2007
59
Summary
• UML is effective for modeling large, complex software
systems
• It is simple to learn for most developers, but provides
advanced features for expert analysts, designers and
architects
• It can specify systems in an implementationindependent manner
• 10-20% of the constructs are used 80-90% of the
time
• Structural modeling specifies a skeleton for the
structural elements that supply the behavior
(sequence, state, activity diagrams) and implement
the use cases (use case diagrams)
• Implementation diagrams extend structural modeling
to source code and run-time structure
01 November 2007
Kaiser: COMS W4156 Fall 2007
60
Resources
• http://www.uml.org/ — The official UML Web site
• http://argouml.tigris.org/ — Information on Argo
UML, an open source UML modeling tool built in
Java
• http://uml.sourceforge.net/index.php —
Information on Umbrello UML Modeller, an open
source UML modeling tool for KDE
• http://www-306.ibm.com/software/rational/uml/ IBM’s UML resource center (IBM bought
Rational in 2002)
01 November 2007
Kaiser: COMS W4156 Fall 2007
61
First Iteration Demos
Due!
• October 30th – November 8th
• Extra credit on per-day-early sliding scale
• Only team members present for the demo
(for CVN virtually present) will receive
credit – 10% of final grade
• No “presentation” needed, but be prepared
to answer questions, show your code, and
let the TA enter input to your system
01 November 2007
Kaiser: COMS W4156 Fall 2007
62
Upcoming Deadlines
• First iteration final report due Friday
November 9th, must respond to any
“issues” that arose during demo
• Midterm Individual Assessment posted
Friday November 9th
• Midterm Individual Assessment due Friday
November 16th
• 2nd iteration starts
01 November 2007
Kaiser: COMS W4156 Fall 2007
63
Second Iteration
• Add extensive error checking and exception
handling
• Black box unit testing and white box statement
coverage
• Semi-formal code inspection
• Security and stress testing
• Seeking volunteer teams to do code inspections
(Tue 27 Nov and Thu 29 Nov) and final demos
(Tue 4 Dec and Thu 6 Dec) in class
01 November 2007
Kaiser: COMS W4156 Fall 2007
64
COMS W4156: Advanced
Software Engineering
Prof. Gail Kaiser
Kaiser+4156@cs.columbia.edu
http://york.cs.columbia.edu/classes/cs4156/
01 November 2007
Kaiser: COMS W4156 Fall 2007
65
Download