430 likes | 441 Views
This UML class diagram showcases the attributes, operations, and associations of a washing machine, allowing for better understanding of its functionalities and components.
E N D
Class Diagrams Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University
WashingMachine CLASS in UML • Class name • First letter is upper-case • No empty space in a class name. • with package name? package_name::class_name Ex) HouseholdAppliances::WashingMashine
CLASS in UML • Attribute • Attribute Names • Additional information (attribute vale) can be specified. Ex) capacity:Integer = 8 WashingMachine brandName modeName serialNumber capacity • Instance ofWashingMachine
WashingMachine brandName modeName serialNumber capacity addClothes() removeClothes() addDetergent() turnOn() CLASS in UML • Operation • class methods • first letter is lower-case • Additional information (e.g. signature) can be specified. Ex) addClothes( C:String )
WashingMachine brandName modelName serialNumber capacity addClothes( C:String ) removeClothes( C:String ) addDetergent( D:Integer) turnOn( ):Boolean Additional information (signature) in operations - Parameter name and type - Return type
WashingMachine WashingMachine WashingMachine <<id info>> brandName modelName serialNumber <<machine info>> capacity brandName . . . addClothes() . . . <<clothes-related>> addClothes() removeClothes() addDetergent() <<machine-related>> turnOn() Stereotype • If the lists of class attributes and operations are long, stereotype can be used to separate the list for better understanding. • stereotype • one or extensibility machanisms in UML • allow designers to extend the vocabulary of UML in order to create new model elements Notation :<<stereotype_name>>
Responsibility and Constraints • Constraints • Use when inserting constraints a class has to follow. • Notation : text in ‘{ }’ {capacity =5 or 8 or 10 Kg} • Explain what class has to do
Refer to Government Standard EV5-2241 on generating serial numbers Note {capacity =5 or 8 or 10 Kg} • Note • Use when inserting additional information.
Class Modeling Nouns during conversation with clients Nouns during conversation with clients , which are related to class name. Verbs during conversation with clients의뢰
Basketball Game • Conversation with coach noun ball, basket, team, players, guards, forwards, cener, shot, shot clock, three-point line, free throw, foul, free-throw line, court, game clock verb Shoot, advance, dribble, pass, foul, rebound Initial Class Diagram
Ball Player Guard Forward center diameter volume name height weight dribble() shoot() pass() advance() dribbleBall() passBall() shootBall() rebound() foulOpponent() does most of the dribbling and passing does most of the intermediate range shooting and rebounding stays near basket, shoots from close range Initial class diagram Team Basket ShotClock {pro = 24 sec college = 35sec Int’l = 30 sec} Foul Shot Court GameClock {pro = 4 12-minute quarters college and Int’l=2 20-minute halves} ThreePointLine FreeThrow Duration {pro = 48minutes college and Int’l = 40 minutes FreeThrowLine
Association • When classes are connected together conceptually, that connection is called association
Association Classes • Association can have attributes and operations, just like a class.
Link • An association may have instances, just as an object is an instance of a class
Multiplicity • The number of objects from one class that relate with a single object in an associated class. • One – to – one • One – to – many(*) • One – to – one or more(*) • 1..* • One – to – zero or one • One – to – a bounded interval • ex. one – to – 5 through(..) 10 • One – to exactly n • ex. One – to – 10 • One – to – a set of choices • ex. One – to – 5 or(,) 10
Multiplicity Possible multiplicities and how to represent them in UML
Reflexive Association • Association with itself
Inheritance and Generalization • Is a kind of • inheritance, • Generalization • subclass , superclass • root class, leaf class
abstract class • Class that does not have an instance • italic font
Dependencies • one class may use another. • The most common usage of dependency is to show that the signature of one class’s operation uses another class
More about class diagrams 집합연관(Aggregation) 복합연관(Composition) 문맥(Contexts) 인터페이스(Interface) 실체화(Realization) 가시성(Visibility)
Aggregations • A class consists of a number of component classes
Constraints on Aggregations • Constraint to show that one component or another is part of whole
Composite • A strong type of aggregation • Each component in a composite can belong to just one whole
composite structure diagram • Show class’s internal structure Show components of a class
Interface and Realization • One entity (interface) defines a set of functionalities as a contract, and the other (class) realizes the contract by implementing the functionality defined in the contract.
Visibility + : public # : protected - : private
Object Diagram • Similar to classes, objects can have multiple representations
Object Diagram (= Instance Diagram) • Object Diagram shows the static relationship between objects • A snapshot of the objects in a system at a specific time • Object diagrams are • more concrete than class diagrams • often used to provide examples, or act as test cases for the class diagrams • Only those aspects of a model that are of current interest need be shown on an object diagram.
Classes, Objects, and Packages • Package is a way of grouping classes into common categories • When modeling classes and objects, UML allows the package also to be shown
Package Diagram • logical hierarchical decomposition of a system • Packages are usually organized to maximize internal coherence within each package and to minimize external coupling among packages. • With these guidelines in place, the packages are good management elements. Each package can be assigned to an individual or team, and the dependencies among them indicate the required development order. • The most common uses for package is to use them to organize Use-Case diagrams and class diagrams.
Package Diagram • Group related UML elements and scope their names • Packages may be nested within other packages. • Both model elements and diagrams may appear in a package
Goal of Package • Group diagram components (e.g. class , use case, …) into a package • Similar to Namespace in C++ (e.g. Tools::Hammer)
Relationship Between Packages • Generalization • Dependency • Refinement • One package refines another if it contains the same element but with more detail.