Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 1
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
10 - UML Overview
Rick Adrion
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
What is use case modeling?
ßuse case modelßa view of a system that emphasizes the behavior as itappears to outside users. A use case model partitionssystem functionality into transactions (‘use cases’) thatare meaningful to users (‘actors’).
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Use-Case diagrams
ßemphasis is on what a system does rather thanhowßUse case diagrams are closely connected toscenariosßa scenario is an example of what happens whensomeone interacts with the system, e.g.,"A patient calls the clinic to make an appointment fora yearly checkup. The receptionist finds the nearestempty time slot in the appointment book andschedules the appointment for that time slot."
ßa use case is a summary of scenarios for a singletask or goalßan actor is who or what initiates the eventsinvolved in that task
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Use Case Modeling: Core Elements
Construct Description Syntax
use case A sequence of actions, includingvariants, that a system (or otherentity) can perform, interacting withactors of the system.
actor A coherent set of roles that usersof use cases play when interactingwith these use cases.
systemboundary
Represents the boundary betweenthe physical system and the actorswho interact with the physicalsystem.
UseCaseName
ActorName
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 2
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Example
ßMake Appointmentßuse case for the medical clinicßactor is a Patientßconnection between actor and use case is acommunication association (or communication forshort)
Patient
make appointmentactor
communication
use case
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
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.
generalization A taxonomic relationship between amore general use case and a morespecific use case.
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.
Use Case Modeling: Core Relationships
<<extend>>
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
An example
ßThe ESU University wants to computerize their registrationsystemßThe Registrar sets up the curriculum for a semesterßOne course may have multiple course offerings
ßStudents select 4 primary courses and 2 alternate coursesßOnce a student registers for a semester, the billing system isnotified so the student may be billed for the semesterßStudents may use the system to add/drop courses for a periodof time after registrationßProfessors use the system to receive their course offeringrostersßUsers of the registration system are assigned passwordswhich are used at logon validation
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Actors
ßAn actor is someone or some thing that must interactwith the system under development
Registrar
Professor
Billing System
Student
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 3
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Maintain ScheduleMaintain Curriculum Request Course Roster
Use Cases
ßA use case is a pattern of behavior the system exhibitsßEach use case is a sequence of related transactionsperformed by an actor and the system in a dialogue
ßActors are examined to determine their needsßRegistrar -- maintain the curriculum
ßProfessor -- request roster
ßStudent -- maintain schedule
ßBilling System -- receive billing information fromregistration
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Documenting Use Cases
ßA flow of events document is created for each usecasesßWritten from an actor point of view
ßDetails what the system must provide to the actor whenthe use cases is executed
ßTypical contentsßHow the use case starts and ends
ßNormal flow of events
ßAlternate flow of events
ßExceptional flow of events
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Registrar
Professor
Billing System
Student
Maintain Schedule
Maintain Curriculum
Request Course Roster
Use Case Diagram
ßUse case diagrams are created to visualize therelationships between actors and use cases
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Maintain Curriculum Flow of Events
ßThis use case begins when the Registrar logs onto theRegistration System and enters his/her password. Thesystem verifies that the password is valid (E-1) and promptsthe Registrar to select the current semester or a futuresemester (E-2). The Registrar enters the desired semester.The system prompts the Registrar to select the desiredactivity: ADD, DELETE, REVIEW, or QUIT.ß If the activity selected is ADD, the S-1: Add a Course
subflow is performed.ß If the activity selected is DELETE, the S-2: Delete a Course
subflow is performed.ß If the activity selected is REVIEW, the S-3: Review
Curriculum subflow is performed.ß If the activity selected is QUIT, the use case ends.ß ...
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 4
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Documenting use cases
ßBrief Description
ßActors involved
ßPreconditions necessary for the use case to start
ßDetailed Description of flow of events that includes:
ßMain Flow of events, that can be broken down to show:
ßSubflows of events (subflows can be further divided into smallersubflows to improve document readability)
ßAlternative Flows to define exceptional situations
ßPostconditions that define the state of the system after theuse case ends
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Narrative use case specification
If the use case was successful, the Registrar hasaccessed the Add a Course function
Postconditions
The Registrar activates the Delete, Review, orQuit functions
Alternative Flows
The system enters the Add a Course subflowMain Flow
Registrar has a valid password (E-1), has selected asemester default or E-2), and has selected the Add (S-1) function at the system prompt
Preconditions
RegistrarActors
This use case allows a Registrar to enter a new course.…
Brief Description
Add a course to the curriculumUse Case
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Register for courses
<<uses>>
Logon validation<<uses>>
Maintain curriculum
Uses and Extends Relationships
ßAs the use cases are documented, other use caserelationships may be discoveredßA uses relationship shows behavior that is common toone or more use cases
ßAn extends relationship shows optional behavior
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University Enrolment - Maciaszek
ß The university offers
ßUndergraduate and postgraduate degrees
ßTo full-time and part-time students
ß The university structure
ßDivisions containing departments
ßSingle division administers each degree
ßDegree may include courses from other divisions
ßUniversity enrolment system
ß Individually tailored programs of study
ßPrerequisite courses
ßCompulsory courses
ßRestrictionsß Timetable clashes
ßMaximum class sizes, etc.
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 5
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University Enrolment (cont)
ß The system is required toß Assist in pre-enrolment activitiesß Handle the enrolment procedures
ß Pre-enrolment activitiesß Mail-outs ofß Last semester's examination grades to studentsß Enrolment instructions
ß During enrolmentß Accept students' proposed programs of studyß Validate for prerequisites, timetable clashes, class sizes,
special approvals, etc.ß Resolutions to some of the problems may require
consultation with academic advisers or academics in chargeof course offerings
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Example 4.12
Provide Enrolment Instructions
Student Office
Provide Examination Results
Student
Pre-enrolment activitiesßMail-outs of
ßLast semester's examination grades tostudentsßEnrolment instructions
<<extend>>
Data Entry Person
Enter Program of Study
Registrar Office
Validate Program of Study
ßDuring enrolmentßAccept students'proposed programs ofstudyßValidate
<<include>>
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
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 andbehavioral models from it.
ßIf you are not using a use-case driven methodßmake sure that your use cases are consistent with yourstructural and behavioral models.
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Use Case Modeling Tips
ßMake sure that each use case describes a significant chunk ofsystem usage that is understandable by both domain experts andprogrammersßWhen defining use cases in text, use nouns and verbs accurately
and consistently to help derive objects and messages for interactiondiagrams (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
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 6
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Use Case Realizations
ßThe use case diagram presents an outside view of thesystem
ßInteraction diagrams describe how use cases arerealized as interactions among societies of objects
ßTwo types of interaction diagramsßSequence diagrams
ßCollaboration diagrams
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
an asynchronous message
a synchronous message
simple message return (optional)
simple message which may be synchronous orasynchronous
MeaningSymbol
sequence diagram
ßan interaction diagram that details how operations are carriedoutßwhat messages are sent and whenßare organized according to timeßtime progresses as you go down the pageßobjects involved in the operation are listed from left to rightaccording to when they take part in the message sequence.
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
: Studentregistration
formregistration
managermath 101
1: fill in info
2: submit
3: add course(mary, math 01)
4: are you open?
5: are you open?
6: add (mary)7: add (mary)
math 101 section 1
Sequence Diagram
ßA sequence diagram displays object interactionsarranged in a time sequence
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Example 4.17 – Maciaszek
Enter Program of Studyuse case
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 7
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Collaboration Diagrams
ßalso interaction diagramsßfocus on object roles instead of the times thatmessages are sent
: Registrar
course form : CourseForm
theManager : CurriculumManager
aCourse : Course
1: set course info2: process
3: add course
4: new course
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Class Modeling
ß Captures system state – the function of the system'sinformation content at a point in time
ß Class modeling and use case modeling are typicallyconducted in parallel
ß A class diagram shows the existence of classes andtheir relationships in the logical view of a system; inUML class diagrams elements includeß Classes and their structure and behavior
ß Association, aggregation, generalization, dependency,and inheritance relationships
ß Multiplicity and navigation indicators
ß Role names
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Classes
ßA class is a collection of objects with common structure,common behavior, common relationships and commonsemantics
ßClasses may be found by examining the objects insequence and collaboration diagram
ßA class is drawn as a rectangle with threecompartments
ßClasses should be named using the vocabulary of thedomainßNaming standards should be created
ße.g., all classes are singular nouns starting with a capitalletter
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Professor
ScheduleAlgorithm
: Studentregistration
formregistration manager
math 101
1: fill in info
2: submit
3: add course(mary, math 01)
4: are you open?
5: are you open?
6: add (joe)7: add (mary)
math 101 section 1
RegistrationForm RegistrationManager
Student
CourseOffering
Course
Classes
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 8
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Fuzzy
Find Classes from requirements
ßConsider Maciaszek’s University Enrollmentsystem:ßeach university major has a number ofcompulsory courses and a number of electivecourses.
Major
Course
ElectiveCourse
CompulsoryCourse
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University Enrolment - Maciaszek
ßMore requirements:
ßA course can be part of any number of majors
ßEach major specifies minimum total credits required
ßStudents may combine course offerings into programs
of study suited to their individual needs and leading to
the degree/major in which enrolled
CourseOffering
SudyprogramStudent
ElectiveCourseMajor
CompulsoryCourseCourse
Fuzzy classesRelevant classes
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
registration form
registration manager
3: add course(mary, math 01) RegistrationManager
addCourse(Student,Course)
Operations
ßThe behavior of a class is represented by its operations
ßOperations may be found by examining interactiondiagrams
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Attributes
ßThe structure of a class is represented by its attributes
ßAttributes may be found by examining class definitions,the problem requirements, and by applying domainknowledge
ßMore requirementsßEach course offering has a number, location and time
ßEach course is at a given level and has a credit-hoursvalue
Course
name
number
numberCredits
CourseOffering
number
location
time
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 9
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo) CoursenamenumberCredits
open()addStudent(StudentInfo)
Studentnamemajor
CourseOfferinglocation
open()addStudent(StudentInfo)
ProfessornametenureStatus
ScheduleAlgorithm
Classes
MajornameminTotalCredits
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Relationships
ßRelationships provide a pathway for communicationbetween objects
ßSequence and/or collaboration diagrams are examinedto determine what links between objects need to exist toaccomplish the behavior -- if two objects need to “talk”there must be a link between them
ßThree types of relationships are:ßAssociation
ßAggregation
ßDependency
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Relationships
ßAn association is a bi-directional connection betweenclassesßAn association is shown as a line connecting the relatedclasses
ßAn aggregation is a stronger form of relationship wherethe relationship is between a whole and its partsßAn aggregation is shown as a line connecting therelated classes with a diamond next to the classrepresenting the whole
Studentnamemajor
CourseOfferinglocation
open()addStudent(StudentInfo)
Course
namenumberCredits
open()addStudent(StudentInfo)
CourseOfferinglocation
open()addStudent(StudentInfo)
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Relationships
ßA dependency relationship is a weaker form ofrelationship showing a relationship between a client anda supplier where the client does not have semanticknowledge of the supplierßA dependency is shown as a dashed line pointing fromthe client to the supplier
RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 10
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Registration
Manager
Math 101:
Course
3: add student(mary)
Finding Relationships
ßRelationships are discovered by examining interactiondiagramsßIf two objects must “talk” there must be a pathway forcommunication
RegistrationManager
Course
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
CoursenamenumberCredits
open()addStudent(StudentInfo)
Studentname
major
Professor
name
tenureStatus
ScheduleAlgorithm
CourseOfferinglocation
open()
addStudent(StudentInfo)
Relationships
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Multiplicity and Navigation
ßMultiplicity defines how many objects participate in arelationshipsßMultiplicity is the number of instances of one classrelated to ONE instance of the other class
ßFor each association and aggregation, there are twomultiplicity decisions to make: one for each end of therelationship
ßAlthough associations and aggregations are bi-directional by default, it is often desirable to restrictnavigation to one direction
ßIf navigation is restricted, an arrowhead is added toindicate the direction of the navigation
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Multiplicity and Navigation
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
CoursenamenumberCredits
open()addStudent(StudentInfo)
Studentname
major
Professor
name
tenureStatus
ScheduleAlgorithm
CourseOfferinglocation
open()
addStudent(StudentInfo)
0..*
3..10
4
0..4
1
1
1
1..*
1
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 11
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Inheritance
ßInheritance is a relationships between a superclass andits subclasses
ßThere are two ways to find inheritance:ßGeneralization
ßSpecialization
ßCommon attributes, operations, and/or relationships areshown at the highest applicable level in the hierarchy
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Copyright © 1997 by Rational Software Corporation
Inheritence
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
CoursenamenumberCredits
open()addStudent(StudentInfo)
Studentname
major
Professor
name
tenureStatus
ScheduleAlgorithm
CourseOfferinglocation
open()
addStudent(StudentInfo)
0..*
3..10
4
0..4
1
1
1
1..*
1
name
StudentInfoUser
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University Enrolment - Maciaszekß A student's choice of courses may be restricted by timetable clashes and by
limitations on the number of students who can be enrolled in the currentcourse offering.ß A student's proposed program of study is entered on on-line enrolment
system SPIREß The system checks the program's consistency and reports any problemsß The problems need to be resolved with the help of an academic adviserß The final program of study is subject to academic approval by the
Department head (or delegate) and it is then forwarded to the Registrarß The student's academic record to be available on demandß The record to include information about the student’s grades in each course
that the student enrolled in (and has not withdrawn without penalty)ß Each course has one professor in charge of a course, but additional
professors (inc instructors) may also teach in itß There may be a different professor in charge of a course each semesterß There may be professor for each course each semester
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
AcademicRecord
course_code : Stringyear : Datesemester : Integergrade : String
Course<<PK>> course_code : String<<CK>> course_name : Stringcredit_points : Integer
ProfessorinCharge
Student
<<PK>> student_id : Stringstudent_name : Stringcurrent_fees : Money
0..*0..*CourseOffering
year : Datesemester : Integerenrolment_quota : Integer
0..*0..*
0..*
0..1
0..*
0..1
*
* takes
*
*
takes_crsoff
has_stud
Maciaszek Solution
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 12
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Maciaszek Solution
ßShow few objects representing the classes
Don Donaldson : Student
CMPSCI287 :AcademicRecord
CMPSCI520 :Course
CMPSCI320 :AcademicRecord
COMP521 :Course
2003 Sec1:CourseOffering
Rick Adrion :ProfessorInCharge
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Modeling
ß Activity modelß Can graphically represent the flow of events of a use case
ß Can be used to understand a business process at a high-level of abstraction before any use cases are produced
ß Shows the steps of a computationß Each step is a state of doing something
ß Execution steps are called activity states
ß Depicts which steps are executed in sequence and whichcan be executed concurrently
ß Transition – the flow of control from one activity state tothe next
ß Use case descriptions are (usually) written from anoutside actor’s perspective
ß Activity models take an inside system’s viewpoint
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activities
ß Activity states can be established from the use case
document
ß Activities should be named from the system’s perspective,
not the actor’s viewpoint
ß Activity takes time to complete
ß Action is so quick that – on our time scale – it is considered
to take no time at all
ß UML uses the same same graphical symbol for activity
state and action state – rounded rectangle
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Scott W. Ambler , Copyright 2003 www.agilemodeling.com/
UML 2 Activity Diagrams
ßobject-oriented equivalent of flow charts and data flowdiagrams (DFDs) from structured development
ßtypically used forßbusiness process modeling
ßmodeling the logic captured by a single use case orusage scenario
ßmodeling the detailed logic of a business rule
ßcould potentially modelßthe internal logic of a complex operation
ßfar better to simply rewrite the operation so that it issimple enough that you don’t require an activity diagram
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 13
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Scott W. Ambler , Copyright 2003 www.agilemodeling.com/
Activity Diagram Notationß Initial nodeß filled circle = starting point of the
diagram, not requiredß Activity final nodeß filled circle with a border is the
ending point, can have zero ormore activity final nodes.
ß Activityß rounded rectangles represent
activities, may be physical orelectronic
ß Flow/edgeß arrows on the diagram
ß Forkß A black bar with one flow going
into it and several leaving it,parallel activity.
ß Joinß A black bar with several flows
entering it and one leaving it,denotes the end of parallelprocessing.
ßConditionß a guard which must evaluate to
true in order to traverse the node
ß Decisionß A diamond with one flow entering and
several leavingß Mergeß A diamond with several flows entering
and one leaving, all incoming flowsmust reach this point until processingcontinues, unless otherwise noted
ß Partitionß also called swimlanes, indicating
who/what is performing the activitiesß Sub-activity indicatorß rake in the bottom corner of an activity
indicates that the activity is describedby a more finely detailed activitydiagram.
ß Flow finalß circle with the X through it, process
stops at this point.ß Use caseß non-official? indication that an included
use case is being invoked.
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University enrollment example
Scott W. Ambler , Copyright 2003 www.agilemodeling.com/
Fill outforms
Apply toUniversity
Imputforms Input
applicantinfo
Displaycreate student
screen
Checkapplicant
list
Searchfor
applicantDisplaylist of
matches
Selectapplicantfrom list
Createstudent
Enrollin
seminar[incorrect]
[correct]
[not on list]
[on list]
[no match]
[potential matches]
[not on match list][on match list]
Must be onlist of applicants,but not in system
y
y
applicant
registrar
system
x
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University enrollment example
Scott W. Ambler , Copyright 2003 www.agilemodeling.com/
Fill outforms
Apply toUniversity
Imputforms
Inputapplicant
info
Displaycreate
studentscreen
Verifyapplicantis on list
See ifapplicant
Is in system
Displaylist of
matches
Createstudent
[incorrect]
Basic Course
[not on list]
[on list]
[no match]
[potential matches]
[not on match list]
[on match list]
B: Forms not filled out G: Not eligible to enroll
Exisiting Use Case F: Student may be in System
H
PerformSecurityCheck
PossibleSecurity
Risk
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
University enrollment example
Scott W. Ambler , Copyright 2003 www.agilemodeling.com/
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 14
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
When to Use Activity Diagrams
ßUse activity diagrams when the behavior you aremodeling ...ßdoes not depend much on external events.ßmostly has steps that run to completion, rather thanbeing interrupted by events.ßrequires object/data flow between steps.ßis being constructed at a stage when you are moreconcerned with which activities happen, rather thanwhich objects are responsible for them (except partitionspossibly).
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Diagram Modeling Tips
ßControl flow and object flow are not separate. Both aremodeled with state transitions.
ßDashed object flow lines are also control flow.
ßYou can mix state machine and control/object flowconstructs on the same diagram (though you probablydo not want to).
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Diagram Modeling Tips
RequestReturn
Get ReturnNumber
Ship Item
Item[returned]
ReceiveItem
RestockItem
CreditAccount
Item[available]
Customer Telesales WarehouseAccountingFrom UML User Guide:
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
RequestReturn
Get ReturnNumber
Ship Item
Item[returned]
ReceiveItem
RestockItem
CreditAccount Item
[available]
Customer Telesales WarehouseAccounting
Activity Modeling Tips
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 15
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Diagram Modeling Tips
ßActivity diagrams inherit from state machines therequirement for well-structured nesting of compositestates.
ßThis means you should either model as if compositestates were there by matching all forks/decisions with acorrespond join/merges …
ß… or check that the diagram can be translated to onethat is well-nested.
ßThis insures that diagram is executable under statemachine semantics.
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Diagram Modeling Tips
Well-nested:
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Not well-nested:
Activity Diagram Modeling Tips
Apply structured coding principles. (Be careful with goto’s!)
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Activity Diagram Modeling Tips
Can be translated to well-nested diagram:
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 16
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Wrap Up: Activity Diagrams
ßUse Activity Diagrams for applications that are primarilycontrol and data-driven, like business modeling …
… rather than event-driven applications like embeddedsystems.
ßActivity diagrams are a kind of state machine until UML2.0 …
… so control and object/data flow do not have separatesemantics.
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statechart modeling
ßCaptures dynamic changes of class states – the lifehistory of the classßThese dynamic changes describe typically the behaviorof an object across several use casesßState of an object – designated by the current values ofthe object's attributesßStatechart Diagram – a bipartite graph ofßstates (rounded rectangles) andßtransitions (arrows) caused by eventsßThe concepts of states and events are the sameconcepts that we know from Activity Diagrams – thedifference is that “the states of the activity graphrepresent the states of executing the computation, notthe states of an ordinary object”
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Types of Events
ßUML defines 4 kinds of eventsßSignal EventßAsynchronous signal received
ße.g. evFlameOn
ßCall Eventßoperation call received
ße.g. op(a,b,c)
ßChange Eventßchange in value occurred
ßTime EventßRelative time elapse
ßAbsolute time arrived
ße.g. tm(PulseWidthTime)
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Types of Events
ßEvents are occurrences of interest that have bothßLocation
ßAbsolute time of occurrence
ßSignal events associate with SignalsßA Signal is a specification of an asynchronouscommunication between structural elements (e.g.objects)
ßOne type of Signal is Exception
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 17
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
States and transitions
ßObjects change values of their attributes but not all suchchanges cause state transitions
ßWe construct state models for classes that haveinteresting state changes, not any state changes
ßStatechart Diagram is a model of business rulesßBusiness rules are invariable over some periods of time
ßThey are relatively independent of particular use cases
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statecharts & Activity Diagrams
Heinrich Hussmann
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
States and transitions
Heinrich Hussmann
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statechart Diagram
ß Normally attached to a class, but can be attached toother modeling concepts, e.g. a use case
ß When attached to a class, the diagram determineshow objects of that class react to eventsß Determines – for each object state – what action the
object will perform when it receives an eventß The same object may perform a different action for
the same event depending on the object’s stateß The action’s execution will typically cause a state
change
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 18
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statecharts
ßCapture state-dependent requirements
ßStatechart created for each state-dependent class
ßUML provides hierarchical state transition diagramsßBased on Harel statecharts
ßInformation CapturedßStatesßCapture all possible states of the class
ßEvents and conditions
ßDescribe transitions between statesßActions
ßIndicate processing that occurs on entry or exit to/from astate
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statechart notation
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Nested submachines
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Statechart Diagram
Pending
Future Order
New Order Back Order
Filled
Future Order
Ready to Ship
New Order Back Order
Cancelled
stock not available
stock available[ ship date in future ]
stock available[ ship date in future ]
stock available[ ship date now ] / configureComputer[ canceled ]
ship[ accepted ]
[ canceled ]
CMPSCI520/620
”Rick Adrion 2003 (except where noted) 19
UUNIVERSITYNIVERSITY OFOF M MASSACHUSETTS ASSACHUSETTS AAMHERSTMHERST •• D DEPARTMENTEPARTMENT OF OF CCOMPUTER OMPUTER SSCIENCE CIENCE •• CCMPMPSSCI 520/620 CI 520/620 FFALL 2003ALL 2003
Implementation diagrams
Deployment Diagram
Heinrich Hussmann
Component Diagram