modeling structure – class diagram. class diagram
Post on 21-Dec-2015
292 views
TRANSCRIPT
Modeling Structure – Class Diagram
Class Diagram
Operations (behaviors) to fulfill the class’s responsibilities.
Object class name
Attributes
Steps in Developing a Class Diagram
Identify object classesIdentify associationsIdentify object attributesOrganize object classes using inheritanceDescribe communication using sequence diagramsGroup classes
Class
attributes
subClass
subClass
operations
Class Diagram
Object
Object
Object
subClass
Relationships between classes
1. Associations 2. Composition/Aggregation3. Generalization/Specialization
Associations– relationship between classes– E.g, Employee works in Department– Specifies how many instances of one class may
relate to a single instance of another class
• 1-to-1 association • Optional association (0, 1, or many) – Company has President – Customer owns Credit
Card• 1-to-many association • Many-to-Many
association – Bank manages Account – Course has Student
– Student attends Course
Showing Association
An Association between two classes is shown by a simple line. It can be given a descriptive name and augmented with the Role played by each class and with the Cardinality of the relationship.
Associations
Has-capital
One-to-one association
One-to-many association
City
name:String
Workorder
schedule()
StickyNote
x: Integery: Integerz: Integer
*
Country
name:String
[From Bruegge, 2000]
Many-to-Many Associations
Work on **Mechanics Plane
[From Bruegge, 2000]
Sample UML Cardinality Notations
Multiplicity Multiplicity
Works for
0..1Has
0..*Makes
UML
Notation Association with Multiplicity Association
Meaning
Exactly 1
1
or
leave blank
DepartmentEmployee1Works for
DepartmentEmployee
An employee works for one and only one department.
Zero or one 0..1 SpouseEmployeeAn employee has either one or no
spouse.
Zero or more
0..*
or
*
PaymentCustomer
PaymentCustomerMakes *
A customer can make no payment
up to many payments.
One or more 1..* CourseUniversityOffers 1..* A university
offers at least 1 course up to
many courses.
Specific range 7..9 GameTeam
7..9Has
scheduled A team has either 7, 8, or 9 games
scheduled
Composition and Aggregation Hierarchies• Whole/Part Relationships
– Show components of more complex class– Composition is stronger relationship than aggregation
• Composition Hierarchy– Whole and part objects are created, live, die together– Often also has a physical association– Association between instances
• Aggregation Hierarchy– Part objects of aggregate object may be created and deleted independently of aggregate object– Often used for more abstract whole/part relationships than composite objects
Showing Aggregation
If one class is contained within another a solid diamond is placed on the line next to the containing class. This is termed by value, Class2 it essentially a value within Class1.
If the relationship is a simple aggregation then an empty diamond is used. This is termed by reference, Class1 refers to Class2.
Kereta
RodaEnjin TempatDuduk
Aggregation Example
weight
Automobile
serial numberyearmanufacturermodelcolor
drivepurchase
Aggregation Example
Engine
horsepowervolume
onoff
4,6
Wheel
diameternumber of bolts
2,4
Door
openclose
Battery
ampsvolts
chargedischarge
*
Brakelight
onoff
[From Bruegge, 2000]
• Some classes are similar but not identical – Have some attributes in common, others different
• Common attributes abstracted into generalized class(superclass) – E.g., Account (Account number, Balance)
• Different attributes are properties of specialized class(subclass) – E.g., Savings Account (Interest)
• IS A relationship between subclass and superclass – Savings Account IS A Account
Generalization / Specialization Hierarchy
‘generalization’ showing inheritance
Inheritance is shown by a line from the sub-class to the super-class with an arrow pointing to the super class.
Super class
Sub class
STAF
NamaAlamatGajiNo.staf
STAFPengeluaran
Kiragajicetakslipgaji
STAFPentadbiran
Kiragajicetakslipgaji
Pengurus
Kiragajicetakslipgaji
Example : Inheritance
UML Representation of Generalization/Specialization
walk()jump()talk()sleep()eat()etc.()
last namefirst namebirthdategender
Person
enroll()displayGPA()
GPAclassification
Student
lecture()
rank
Teacher
Arrowhead indicatesgeneralization/specializationrelationship
Inheritance Example
Cell
MuscleCellBloodCell NerveCell
StriateSmoothRed White PyramidalCortical
[From Bruegge, 2000]
*
Light
offon
1
1
Heater1
Cooler
1
Environmental Controller
Define_climateTerminate_climate
*
1
1
1
1
1
SystemLog
DisplayRecordEvent
Actuator
startUpshutDown
Temperature
Example : Class Diagram
User
AddressMember#NameSubscribeUnsubscribe
External Reader
Ext. Library NameBorrower
Items BorrowedMaximum Loans
Library Item
No. CopiesShelfNoStatusTitleIssueReturnShelve
Book
AuthorISBNPub. DatePublisher
CAL Package
Distributor
Recorded Media
Course Text
Borrows
Aggregation
Association GeneralizationObject /Class
0..*
Example : Class Diagram
Summary – Class Relationship
PlanAnalyst
PlanMetrics
Plan
GrowingPlan GardeningPlan
Controller Cooler
Light Heater
FruitGrowingPlan
Food
Vitamin Calorie
analyzes
1..2
1..*
1..231 1
*
* 1
**
* 1
AGGREGATION
ASSOCIATIONGENERALIZATION/ INHERITANCE
COMPOSITION
<<actor>>Club Member
Member-Date-Of-Last-OrderMember-Daytime-Phone-NumberMember-Credit-Card-Expire-DateMember-Credit-Card-NumberMember-Credit-Card-TypeMember-Balance-DueMember-Bonus-Balance-AvailableAudio-Category-PreferenceAudio-Media-PreferenceDate-EnrolledEmail-AddressGame-Category-PreferenceGame-Media-PreferenceNumber-Of-Credits-EarnedPrivacy-CodeVideo-Category-PreferenceVideo-Media-Preference
persistent
Member Order
Order-NumberOrder-Creation-DateOrder-Fill-DateShipping-Address-NameShipping-Street-AddressShipping-CityShipping-StateShipping-Zip-CodeShipping-InstructionsOrder-Sub-TotalOrder-Sales-TaxOrder-Shipping-MethodOrder-Shipping-&-Handling-CostOrder-StatusOrder-Prepaid-AmountOrder-Prepayment-Method
persistent
Product
Product-NumberUPC-Quantity-In-StockProduct-TypeSuggested-Retail-PriceDefault-Unit-PriceCurrent-Special-Unit-PriceCurrent-Month-Units-SoldCurrent-Year-Units-SoldTotal-Lifetime-Units-Sold
persistent
Video Title
ProducerDirectorVideo-CategoryVideo-Sub-CategoryClosed-CaptionedLanguageRunning-TimeVideo-Media-TypeVideo-EncodingScreen-AspectMPA-Rating-Code
persistent
Audio Tilte
ArtistAudio-CategoryAudio-Sub-CategoryNumber-Of-Units-In-PackageAudio-Media-CodeContent-Advisory-Code
persistent
Transaction
Transaction-Reference-NumberTransaction-DateTransaction-TypeTransaction-DescriptionTransation-Amount
persistent
Member
Member-NumberMember-NameMember-StatusMember-Street-AddressMember-PO-BoxMember-CityMember-StateMember-Zip-Code
persistent
Agreement
Agreement-NumberAgreement-Expire-DateAgreement-Active-DateFulfillment-PeriodRequired-Number-Of-Credits
persistent
Game Title
ManufacturerGame-CategoryGame-Sub-CategoryGame-PlatformGame-Media-TypeNumber-Of-PlayersParent-Advisory-Code
persistent
Title
Title-Of-WorkTitle-CoverCatalog-DescriptionCopyright-DateEntertainment-CompanyCredit-Value
persistent
Member Ordered Product
Quantity-OrderedQuantity-ShippedQuantity-BackorderedPurchase-Unit-PriceCredits-Earned
persistent
Merchandise
Merchandise-NameMerchandise-DescriptionMerchandise-TypeUnit-of-Measure
persistent
Promotion
Promotion-NumberPromotion-Release-DatePromotion-StatusPromotion-Type
persistent
<<actor>>Potential Member
persistent
<<actor>>Past Member
Expiration-Date
persistent
Return
persistent
1..*
1binds
1
0..*
Conducts
1
0..*
Haspurchased
0..10..*
Generates
0..*
1..*
Features
1
0..*
Sold as
0..*
1
Places
1
1..*
Sells
Member Services System Class Diagram
Class Diagram for KMT Client
prepare() prepare()
check()
[check=“true”] remove()
needsToReorder()
[needsToReorder=“true”]
enter new
Reorder Item
Delivery Item
Order Entry window
Order Order Line Stock Item
[check=“true”] enter new
Sequence Diagram
ReOrderItem
itemnumberquantityetc…
DeliveryItem
deliveryadressquantityetc…
Order
orderNumberdateetc…
prepare()
OrderLine
itemnumberquantityetc…
StockItem
orderNumberminQuantitydateetc…
needsToReorder(): boolean
check(): booleanremove()
is_for
prepare()enter new()
enter new()
Computer: Computer
PrintServer:PrintServer
Printer:Printer
print(file)
User: User
print(filename)
Queue:Queue
[printer free] print(file)
[printer busy] store(file)
Computer
print(filename)
PrintServer
status(): integer
print(file)
Printer
print(file)
Queue
store(file)
uses
Managed by
Recap• After studying this chapter we learned
to:– Understand how to structure
requirements with class diagram.
– Explain the element of class diagrams
– Construct class diagrams.