Class Diagram Class Diagram l A class diagram
- Slides: 37
Class Diagram
Class Diagram l A class diagram describes the classes and the association (static relationship) between these classes ( 描述系統中物件 的type(class),以及這些class 的靜態關連. ) l association (for example, a customer may rent a number of videos) l subtypes ( a nurse is a kind of person)
Multiplicity: many-valued Order date. Received is. Prepaid number: string price: Money dispatch() close 1 Role name line items Multiplicity: mandatory * 1 association attributes Customer name address credit. Rating(): String generalization class constraints {if Order. customer. credit. Rati ng is “poor”, then Order. is. Prepaid must be true } * Order Line Quantity: integer price: Money * is. Satisfied: bool Corporate customer contract. Name credit. Rating credit. Limit remind() bill. For. Month(int) * 0. . 1 sale rep Employee 1 Product Personal Customer Credit. Card# {credit. Rating()= “poor”} Multiplicty: optional
navigability See next fig l In specification model, an Order has a responsibility to tell you which Customer it is for, but not conversely l In implementation diagram, this would indicate that Order contains a pointer to Customer l
Order date. Received is. Prepaid number: string price: Money dispatch() close * 1 navigability Customer name address credit. Rating(): String 1 line items {if Order. customer. credit. Rati ng is “poor”, then Order. is. Prepaid must be true } * Order Line Quantity: integer price: Money * is. Satisfied: bool Corporate customer contract. Name credit. Rating credit. Limit remind() bill. For. Month(int) * 0. . 1 sale rep Employee 1 Product Personal Customer Credit. Card# {credit. Rating()= “poor”}
Generalization (In OOP term, is inheritance) l see personal and corporate customers l Using polymorphism, the corporate customer may respond to certain commands differently from another customer l
Operations Most obviously correspond to the methods on a class l UML syntax is l visibility name (parameter list): return-type-expression {property string}
Class Diagrams: Advanced Concepts
Object Diagram • A snapshot of the objects in a system at a point in time • Often called instance diagram • Let’s see the class diagram first Party location * children 1 parent Person Organization
Object Diagram This is associations not generalization or inheritance this is object not class engineering: Organization location=“boston” parent tools: Organization location=“Chicago” apps: Organization location=“Saba” parent Don: Person location=“Champaign” John: Person location=“Champaign”
Class Scope Operations and Attributes Order instance scope get. Number get. Next. New. Number class scope Class scope is equivalent to static members in C++
Multiple and Dynamic Classification Discriminator Surgeon Female sex {complete} Male Doctor Family Doctor role Nurse patient Physiotherapist
Multiple Classification Don’t confuse with multiple inheritance. l You should make it clear which combinations are legal by using a discriminator l
Dynamic Classification Manager Female Job <<dynamic>> Person Male Engineer sex {complete} Salesman
Dynamic Classification allow object to change type within the subtyping structure l useful for conceptual modeling l How to implement it? See Fowler 1997 l
Aggregation and Composition Aggregation is the part-of relationship l difficult things – what is the difference between aggregation and association? l It is vague and inconsistent l Anyway, UML decide to include aggregation and a stronger variety of aggregation called composition l
Composition {ordered} Point 3. . * 1 Circle radius Polygon * * Style 1 color is. Filled 1 aggregation
Composition l l l With composition, the part object may belong to only one whole; further, the parts are usually expected to live and die with the whole deletion of the whole is considered to cascade to the part In previous graph, deleting a polygon would caused its associated Points to be deleted, but not the associated Style.
Alternative Notation for Composition Circle Polygon 1 {ordered} 3. . * Point * * 1 1 Style
Derived Associations and Attributes l Derived Associations and derived attributes can be calculated from other associations and attributes. l for example, an age attribute of a Person can be derived if you know that person’s birthday.
{balance= sum of amounts of entries} Components {hierarchy} * Derived attribute 0. . 1 Summary Account /balance: Money /entries * Entry amount: Money Derived Association Detail Account 1
Note Entry objects are attached to detail Accounts l The balance of an Account is calculated as the sum of Entry accounts l A Summary Account’s entries are the entries of its components determined recursively l
Interfaces and Abstract Classes Programming language that use a single construct, the class, which contains both interface and implementation. l When you subclass, you inherit both. l A pure interface, as in Java, is a class with no implementation and, therefore, has operation declarations but no method bodies and no fields. l
For example interface Stack { boolean Push(Object); Object Pop(); } Class My. Stack implements Stack boolean Push(Objects) { ……. . } Object Pop() { ……. . return xxxx ; } } Somewhere in initialization Stack S = new My. Stack() ; Somewhere in the code S. push(a); S. push(b); S. pop(a); S. pop(b);
Win 98 Window to. Front() to. Back() text Editor Window {abstract} X 11 Window to. Front() to. Back() Dependency Mac Window to. Front() to. Back()
Input. Stream <<interface>> Data. Input dependency generalization Order. Reader Data. Input. Stream Realization
Abstract Class and Interface two are similar l abstract class allows you to add implementation of some of the methods l an interface forces you to defer definition of all methods l
Classification and Generalization l l l People often talk subtyping as the “is a” relationship beware of that way of thinking for example 1. Shep is a border Collie 2. A border Collie is a Dog 3. Dogs are animals 4. A border Collie is a Breed (品種) 5. Dog is a Species (物種) if you try combination 2 and 5 “A border Collie is a Species”. This is not good The reasons? l l l some are classification and some are generalization Generalization is transitive and classification is not “Dog are a kind of animals” is better
Qualified Associations l l l equivalent to associative arrays, maps, and dictionaries an example, there maybe one Order Line for each instance of Product Conceptually, you cannot have two Order Lines within an Order for the same product 0. . 1 Order product line item Order Line amount: Number
Qualified association would imply an interface like class Order { public Order. Line get. Line. Item (Product a. Product); ; public void add. Line. Item (Number amount, Product for. Product); }
You can have multiple Order. Lines per Product but access to the Line Items is still indexed by Product l use an associative array or similar data structure to hold the order lines Class Order { private Map _line. Items ; l * Order product line item Order Line amount: Number
Association Class l Association class allow you to add attributes, operations, and other features to association * employer Person 0. . 1 Company Employment period: date. Range association class
l l l A person may work for a single company We need to keep information about the period of time that each employee works for each Company You can redraw: make Employment a full class in its own right /employer * Person 0. . 1 1 0. . 1 Employment period: date. Range * 1 Company
Parameterized Class l l Several language, noticeably C++, have the notion of a parameterized class or template ex class set <T> { void insert (T new. Element); void remove(T an. Element); … … Set <Employee> employ. Set ;
A define a parameterized class in UML T Set template class template Parameter insert(T) remove(T)
A use of a parameterized class T Set <<bind>> Employee. Set <Employee> insert(T) remove(T) Bound Element
Visibility l C++ l l In Java l l A public member is visible anywhere in the program and may be called by any object within the system A private member may be used only by the class that defines it A protected member may be used only by (a) the class that defines it or (b) a subclass of that class a protected member may be accessed by subclasses but also by any other class in the same package as the owning class C++ l one C++ method or class can be made a friend of a class. A friend has complete access to all members of a class
- Static diagrams in uml
- What is class attribute in java
- Uml inheritance diagram
- Apa itu uml
- In todays class
- Package mypackage class first class body
- Introduction to ooad
- Mode for grouped data
- Class i vs class ii mhc
- Difference between abstract class and concrete class
- What is frequency distribution
- Stimuli vs stimulus
- Discriminative stimulus psychology definition
- Therapeutic class and pharmacologic class
- Class maths student student1 class student string name
- Unordered stem and leaf plot
- In greenfoot, you can cast an actor class to a world class?
- Static class loading and dynamic class loading
- Esd class levels
- Class 2 class 3
- Public class test subject extends test class
- Package mypackage class first class body
- Class third class
- Component class has composite class as collaborator
- Class diagram if condition
- Diagram de class
- Uml class diagram
- Class diagram purpose
- Class diagram school
- Activity class diagram
- Use case diagram netflix
- Rational rose 2000
- Diagram class adalah
- Contoh class diagram penjualan online
- Domain model uml
- Class diagram dependency
- Uml examples java
- Class diagram array