Introduction to UML Part 1 Structural Modeling Use case modeling.
-
date post
20-Dec-2015 -
Category
Documents
-
view
225 -
download
2
Transcript of Introduction to UML Part 1 Structural Modeling Use case modeling.
![Page 1: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/1.jpg)
Introduction to UML
Part 1
Structural Modeling
Use case modeling
![Page 2: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/2.jpg)
Overview
UML – background Quick tour of a subset of UML Structural modeling – Class Diagrams
Essentials More advanced features
Use case modeling - Use Case Diagrams Behavioral Modeling - Event Diagrams, State Diagrams.
![Page 3: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/3.jpg)
Tijuana “shantytown”: http://www.macalester.edu/~jschatz/residential.html
The Challenge
![Page 4: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/4.jpg)
Fallingwater: http://www.adelaide.net.au/~jpolias/FLW/Images/FallingWater.jpeg
The Vision
![Page 5: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/5.jpg)
The UML is a graphical language for specifying visualizing constructing documenting
the artifacts of software systemsAdded to the list of OMG adopted technologies in November 1997 as UML 1.1Most recent minor revision is UML 1.3 (November 1999)
Quick Tour
![Page 6: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/6.jpg)
Define an easy-to-learn but semantically rich visual modeling languageUnify the Booch, OMT, and Objectory modeling languagesInclude ideas from other modeling languagesIncorporate industry best practicesAddress contemporary software development issues scale, distribution, concurrency, executability, etc.
Provide flexibility for applying different processesEnable model interchange and define repository interfaces
UML Goals
![Page 7: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/7.jpg)
OMG UML Contributors
AonixColorado State UniversityComputer AssociatesConcept FiveData AccessEDSEnea DataHewlett-Packard IBMI-LogixInline SoftwareIntellicorpKlasse ObjectenLockheed Martin
MicrosoftObjecTimeOraclePtech OAO Technology SolutionsRational SoftwareReichSAPSofteamSterling SoftwareSunTaskonTelelogicUnisys…
Contributors = Original Submitters + RTF1 + RTF2 + …
![Page 8: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/8.jpg)
The basic building blocks of UML are: model elements (classes, objects, components, use cases, etc.) relationships (associations, generalization, dependencies, etc.)Depicted via diagrams:
class, object diagrams use case diagrams sequence (event) diagram activity diagrams collaboration diagram package diagram deployment diagram
UML
![Page 9: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/9.jpg)
Structural, Use case and Behavioral modeling
Structural model: shows the static structure of the model the entities that exist (e.g., classes, interfaces, components,
nodes), their internal structure and relationship to other entities
does not include temporal informationClass&Object Diagrams (Analysis and Design)Component and Deployment Diagrams (Design and Implem.)
does not include interaction (message connections)Use case model -specifies system requirements in OO manner
Use case diagram and description
Behavioral/interaction model Sequence (event) diagram, Activity diagram State diagram
![Page 10: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/10.jpg)
Class Diagram and Object Diagram
Shows static structure of concepts Concepts and Classes, Types (interfaces to
software components) Relations between them
Can be shown on various levels of granularity (example on the next slide)
![Page 11: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/11.jpg)
Example: Class specification, 3 levels
Window
display ()
size: Areavisibility: Boolean
hide ()
Window
Window
+default-size: Rectangle#maximum-size: Rectangle
+create ()
+display ()
+size: Area = (100,100)#visibility: Boolean = invisible
+hide ()
-xptr: XWindow*
-attachXWindow(xwin:Xwindow*)
{abstract,author=Joe,status=tested}
![Page 12: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/12.jpg)
Classes: method body
report ()
BurglarAlarm
isTripped: Boolean = false
PoliceStation
1 station
*
{ if isTrippedthen station.alert(self)}
alert ()
![Page 13: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/13.jpg)
Generalization
Shape
SplineEllipsePolygon
Shape
SplineEllipsePolygon
Shared Target Style
Separate Target Style
. . .
. . .
![Page 14: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/14.jpg)
GeneralizationVehicle
WindPoweredVehicle
MotorPoweredVehicle
LandVehicle
WaterVehicle
venue
venuepowerpower
SailboatTruck
{overlapping} {overlapping}
![Page 15: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/15.jpg)
Associations (a.k.a. Instance Connections) and Association Classes
PersonJob
Companyemployeeemployer
Jobsalary
Notice: Multiplicity labels are placed in reverse-order of Coad-Yourdon OOA
Associations can be labeled and directed.
Job – is an association class. Implies One Job per each Person-Company association.
![Page 16: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/16.jpg)
Aggregation and Composition
Polygon PointContains
{ordered}
3..1
GraphicsBundle
colortexturedensity
1
1
-bundle
+points
Both represent whole-part relationship, but are defined differently by different people
•Aggregation (white diamond) •Composition (black diamond) is a stronger notion:
• parts do not exists outside of whole, •each part belongs to a single whole.
![Page 17: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/17.jpg)
Navigability
Polygon PointContains
{ordered}
3..1
GraphicsBundle
colortexturedensity
1
1
-bundle
+points
Note directionality (a.k.a. Navigability) of the connection and label.
![Page 18: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/18.jpg)
Many ways of depicting Composition
Window
scrollbar [2]: Slidertitle: Headerbody: Panel
Window
scrollbar title body
Header Panel
2 1 1
Slider
111
![Page 19: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/19.jpg)
Composition
Fig. 3-36, UML Notation Guide
scrollbar:Slider
Window
2
title:Header1
body:Panel1
![Page 20: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/20.jpg)
Advanced Concepts
•Qualified associations•Parameterized classes (a.k.a templates)•Types and Implementation Classes•Interfaces
![Page 21: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/21.jpg)
Qualified Associations
Bank
Person
0..1
Account #
• Account# is the qualifier of Bank-Person association means
Unique instance of Account # per each Bank-Person association.
Thus, all access to Person in connection to a Bank requires the value of Account #.
![Page 22: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/22.jpg)
Parameterized Classes a.k.a. Templates
Example: class Set – represents a collection of objects of a class. That class becomes a parameter to the parameterized class e.g. set of coins, set of students, set of <T>
Set
Insert(T)Remove(T)
T T
ParameterParameterized
Class
StudentSet“bind”
T to Student
Unlike with specialization, Class StudentSet cannot add Attributes nor Services
![Page 23: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/23.jpg)
Types and Implementation Classes
Type – specifies the behavioral model
Implementation Classes defines the implementing data structure and
methods for the stereotype
<<type>>Set
Insert(T)Remove(T)InSet?(T)
T T
<<implementatuibClass>>HashTableSet
Insert(T)
Remove(T)InSet?(T)SetTableSize(size)
T
HashTable1
realization
![Page 24: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/24.jpg)
Interface Classes
Interface – a named set of operations that characterize the behavior of an elementInterface Classes – similar idea to purely Abstract Classes (no instances), but have no Attributes.Interfaces are realized by implementing them classes
![Page 25: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/25.jpg)
Structural Modeling: Summary of Notation
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 element.
component a physical, replaceable part of a system that packages implementation and provides the realization of a set of interfaces.
node a run-time physical object that represents a computational resource.
«interface»
![Page 26: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/26.jpg)
Structural Modeling: Summary of Notation
Construct Description Syntax
constraint¹ a semantic condition or restriction.
{constra in t}
¹ An extension mechanism useful for specifying structural elements.
![Page 27: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/27.jpg)
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:Relationships
![Page 28: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/28.jpg)
Construct Description Syntax
realization a relationship between a specification and its implementation.
Structural Modeling: Relationships
![Page 29: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/29.jpg)
Structural Modeling Tips
Define a “skeleton” (or “backbone”) that can be extended and refined as you learn more about your domain.Focus on using basic constructs well; add advanced constructs and/or notation only as required.Defer implementation concerns until late in the modeling process.Structural diagrams should emphasize a particular aspect of the structural model contain classifiers at the same level of abstraction
Large numbers of classifiers should be organized into packages
![Page 30: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/30.jpg)
When to model structure
Adopt an opportunistic top-down+bottom-up approach to modeling structure Specify the top-level structure using “architecturally significant”
classifiers and model management constructs (packages, models, subsystems; see Tutorial 3)
Specify lower-level structure as you discover detail re classifiers and relationships
If you understand your domain well you can frequently start with structural modeling; otherwise If you start with use case modeling (as with a use-case driven method)
make sure that your structural model is consistent with your use cases If you start with role modeling (as with a collaboration-driven method)
make sure that your structural model is consistent with your collaborations
![Page 31: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/31.jpg)
Use Case Modeling
What is use case modeling?
Core concepts
Diagram tour
When to model use cases
Modeling tips
Example: Online HR System
![Page 32: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/32.jpg)
Use case modeling
use case model: a view of a system that emphasizes the behavior as it appears to outside users. A use case model partitions system functionality into transactions (‘use cases’) that are meaningful to users (‘actors’).
Actors are people or other systems
![Page 33: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/33.jpg)
Use Case Modeling: Core Elements
Construct Description Syntax
use case A sequence of actions, including variants, that a system (or other entity) can perform, interacting with actors of the system.
actor A coherent set of roles that users of use cases play when interacting with these use cases.
system boundary
Represents the boundary between the physical system and the actors who interact with the physical system.
UseCaseNam e
ActorNam e
![Page 34: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/34.jpg)
Construct Description Syntax
association The participation of an actor in a usecase. i.e., instance of an actor andinstances of a use case communicatewith each other.
extend A relationship from an extension usecase to a base use case, specifyinghow the behavior for the extensionuse case can be inserted into thebehavior defined for the base usecase.
generalization A taxonomic relationship between amore general use case and a morespecific use case.
Use Case Modeling: Core Relationships
<<extend>>
![Page 35: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/35.jpg)
Construct Description Syntax
include An relationship from a base use caseto an inclusion use case, specifyinghow the behavior for the inclusion usecase is inserted into the behaviordefined for the base use case.
Use Case Modeling: Core Relationships (cont’d)
<<include>>
![Page 36: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/36.jpg)
Shows use cases, actor and their relationships
Use case internals can be specified by text and/or interaction diagrams
Kinds use case diagram use case description
Use Case Diagram Tour
![Page 37: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/37.jpg)
Fig. 3-44, UML Notation Guide
Customer
Supervisor
SalespersonPlace
Establishcredit
Check
Telephone Catalog
F ill orde rs
Shipping Clerk
status
order
Use Case Diagram
![Page 38: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/38.jpg)
Use Case Relationships
additional requests :
OrderProduct
SupplyArrange
«include»«include»«include»
RequestCatalog
«extend»Extension points
PaymentCustomer Data
after creation of the order
Place Order
1 * the salesperson asks forthe catalog
![Page 39: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/39.jpg)
Fig. 3-46, UML Notation Guide
Actor Relationships
EstablishCredit
PlaceOrder
Salesperson
Supervisor
1 *
1 *
![Page 40: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/40.jpg)
Use Case Description:Change Flight Itinerary
Actors: traveler, client account db, airline reservation systemPreconditions:
Traveler has logged on to the system and selected ‘change flight itinerary’ option
Basic course System retrieves traveler’s account and flight itinerary from client account database System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. System asks traveler for new departure and destination information; traveler provides information. If flights are available then … System displays transaction summary.
Alternative courses If no flights are available then …
![Page 41: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/41.jpg)
When to model use cases
Model user requirements with use cases.Model test scenarios with use cases.If you are using a use-case driven method start with use cases and derive your structural and
behavioral models from it.
If you are not using a use-case driven method make sure that your use cases are consistent with your
structural and behavioral models.
![Page 42: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/42.jpg)
Use Case Modeling TipsMake sure that each use case describes a significant chunk of system usage that is understandable by both domain experts and programmersWhen defining use cases in text, use nouns and verbs accurately and consistently to help derive objects and messages for interaction diagrams (see Lecture 2)Factor out common usages that are required by multiple use cases If the usage is required use <<include>> If the base use case is complete and the usage may be optional, consider
use <<extend>>
A use case diagram should contain only use cases at the same level of abstraction include only actors who are required
Large numbers of use cases should be organized into packages (see Lecture 3)
![Page 43: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/43.jpg)
Example: Online HR System
Online HR System
LocateEm ployees
UpdateEm ployee
Profile
Update Benefits
Access TravelSystem
Access PayRecords
Em ployee
M anager
Healthcare P lan System
{if currentMonth = O ct.}
{readOnly}
Insurance P lan System
![Page 44: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/44.jpg)
Online HR System:Use Case Relationships
Update M edicalP lan
Update DentalP lan
Update Benefits______________Extension pointsbenefit options:
after required enrollm ents
UpdateInsurance P lan
Em ployee
<<include>> <<include>> <<include>>
ElectReim bursem entfor Healthcare
Elect StockPurchase
<<extend>>em ployee requestsstock purchase option
<<extend>>em ployee requestsreim bursem ent option
extensioncondition
extension pointname andlocation
![Page 45: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/45.jpg)
Online HR System: Update Benefits Use Case
Actors: employee, employee account db, healthcare plan system, insurance plan systemPreconditions:
Employee has logged on to the system and selected ‘update benefits’ option
Basic course System retrieves employee account from employee account db System asks employee to select medical plan type; include Update Medical Plan. System asks employee to select dental plan type; include Update Dental Plan. …
Alternative courses If health plan is not available in the employee’s area the employee is informed and asked to select another plan...
![Page 46: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/46.jpg)
UML is effective for modeling large, complex software systemsIt is simple to learn for most developers, but provides advanced features for expert analysts, designers and architectsIt can specify systems in an implementation-independent manner10-20% of the constructs are used 80-90% of the timeStructural modeling specifies a skeleton that can be refined and extended with additional structure and behaviorUse case modeling specifies the functional requirements of system in an object-oriented manner
Ideas to Take Away
![Page 47: Introduction to UML Part 1 Structural Modeling Use case modeling.](https://reader034.fdocuments.in/reader034/viewer/2022042603/56649d4b5503460f94a29108/html5/thumbnails/47.jpg)
ReferencesOMG UML Specification v. 1.3, OMG doc# ad/06-08-99
available from many urls, including
http://www.jeckle.de/files/omg-uml-1.3.pdf
[Kobryn 00] UML 2001: A Standardization Odyssey,
Communications of the ACM, Oct. 1999.
[Kobryn 99] Object Modeling with UML: Introduction to
UML, Tutorial, available from
http://cgi.omg.org/cgi-bin/doc?omg/99-11-04
[Fowler (with Scott)] UML Distilled, Addison-Wesley