UML-Class Diagrams. UML-Class Diagrams Order placement problem A Company has two types of customers, corporate customers and personal customers. All.

Slides:



Advertisements
Similar presentations
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
Advertisements

Introduction to UML. Acknowledgements Slides material are taken from different sources including: Slides material are taken from different sources including:
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Class Diagram & Object Diagram
The Unified Modeling Language
7M822 UML Class Diagrams advanced concepts 15 September 2008.
7M822 UML Class Diagrams advanced concepts 14 October 2010.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
Introduction to UML Prashanth Aedunuthula Fall, 2004.
Unified Modeling Language
Introduction to UML Shiyuan Jin Fall, 2006.
CSE314 Database Systems Data Modeling Using the Entity- Relationship (ER) Model Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
UML Unified Modeling Language. What is UML? Unified Modeling Language (UML) is a standardized, general-purpose modeling language in the field of software.
Class Diagram.
CS 360 Lecture 6.  A model is a simplification of reality  We build models to better understand the system being developed.  We build models of complex.
Lecture 7 Object Oriented Design. Outline  What is UML and why we use UML?  How to use UML diagrams to design software system?  What UML Modeling tools.
Object-Oriented Software Development F Software Development Process F Analyze Relationships Among Objects F Class Development F Class Design Guidelines.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
EEL5881 Software Engineering I UML Lecture Yi Luo.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Class diagram Used for describing structure and behaviour in the use cases Provide a conceptual model of the system in terms of entities and their relationships.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
An Introduction to the Unified Modeling Language
Design Model Lecture p6 T120B pavasario sem.
Object Oriented Analysis and Design Class and Object Diagrams.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Object-Oriented Design.
Entity Relationship Diagram (ERD). Objectives Define terms related to entity relationship modeling, including entity, entity instance, attribute, relationship.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Class Diagram Lecture # 1. Class diagram A Class Diagram is a diagram describing the structure of a system shows the system's classes Attributes operations.
Introduction to UML Created By: Ajay Bahoriya. Acknowledgements Slides material are taken from different sources including: Slides material are taken.
Lecture 13. Unified Modeling Language (UML) The first applications you wrote in CS201 were easy to think out and code with no intermediate steps. Lab.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Introduction to UML Mohammad Zubair Ahmad Summer 2007.
 Class and Diagram  Representation of Class Name Attributes Operations  Visibility of Attributes and Operations.
Data Modeling Using the Entity- Relationship (ER) Model
Introduction to UML Majid Ali Khan Spring 2005 Introduce myself.
Unified Modeling Language
A Review or Brief Introduction
Visit for more Learning Resources
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Inheritance Allows extension and reuse of existing code
Object-Oriented Analysis and Design
Class Diagrams.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Introduction to UML Shiyuan Jin Spring, 2006.
Introduction to Unified Modeling Language (UML)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
UML Unified Modelling Language
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
Introduction to UML Introduction to UML Shiyuan Jin September,23,2002
UML Class Diagrams: Basic Concepts
Software models and the Unified Modeling Language (UML)
Object Oriented Analysis and Design
Software Engineering Lecture #11.
UML Class Diagram.
Unified Modelling Language
Software Engineering System Modeling Extra examples Dr.Doaa Sami
Understand and Use Object Oriented Methods
Simple UML 13 Nov 2018.
Shiyuan Jin Fall, 2003 September,16,2003
Visual Modeling Using Rational Rose
Class Diagrams Class diagram is basically a graphical representation of the static view of the system and represents different aspects of the application.
Class Diagram.
CSE470 Software Engineering UML Lecture.  UML resource page
Object Oriented System Design Class Diagrams
Information System Design
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Chapter 11: Class Diagram
Presentation transcript:

UML-Class Diagrams

Order placement problem A Company has two types of customers, corporate customers and personal customers. All customers can place orders. Every order is placed by a customer. Every order has a unique order number and the order is confirmed by the payment. Identify the classes and their relationships.

Modeling Describing a system at a high level of abstraction A model of the system Used for requirements and specifications Is it necessary to model software systems? Ans: Yes if you need Quality development process 1. Describing the system at abstract level to comprehend its complexity 2. Necessary to manage complexity Good for quick understanding of the systems Less chances of conflicting views b/w end-user and system designers

What is UML? UML stands for “Unified Modeling Language” It is a industry-standard graphical language for specifying, visualizing, constructing, and documenting the artifacts of software systems The UML uses mostly graphical notations to express the OO analysis and design of software projects.  Simplifies the complex process of software design . What does UML stand for? . Industry standard . Graphical notation . Modeling tool … simplifies software design process

Why UML for Modeling Use graphical notation to communicate more clearly than natural language (imprecise) and code(too detailed). Help acquire an overall view of a system. UML is not dependent on any one language or technology. UML moves us from fragmentation to standardization. . More precise than natural language … less detailed than source code . Not dependent on any language . Standardized by various groups

Class diagram Used for describing structure and behavior in the use cases Provide a conceptual model of the system in terms of entities and their relationships Used for requirement capture, end-user interaction Detailed class diagrams are used for developers

Class representation Each class is represented by a rectangle subdivided into three compartments Name Attributes Operations Modifiers are used to indicate visibility of attributes and operations. ‘+’ is used to denote Public visibility (everyone) ‘#’ is used to denote Protected visibility (friends and derived) ‘-’ is used to denote Private visibility (no one) By default, attributes are hidden and operations are visible.

Account_Name - Customer_Name - Balance +addFunds( ) +withDraw( ) An example of Class Account_Name - Customer_Name - Balance +addFunds( ) +withDraw( ) +transfer( ) Name Attributes Operations

There are two kinds of Relationships OO Relationships There are two kinds of Relationships Generalization (parent-child relationship) Association (student enrolls in course) Associations can be further classified as Aggregation Composition

OO Relationships: Generalization Supertype Example: Customer Regular Customer Loyalty Customer Subtype1 Subtype2 or: Customer - Generalization expresses a parent/child relationship among related classes. - Used for abstracting details in several layers Regular Customer Loyalty Customer

OO Relationships: Association Represent relationship between instances of classes Student enrolls in a course Courses have students Courses have exams Etc. Association has two ends Role names (e.g. enrolls) Multiplicity (e.g. One course can have many students) Navigability (unidirectional, bidirectional)

OO Relationships: Aggregation Container Class Class C Aggregation: expresses a relationship among instances of related classes. It is a specific kind of Container-Containee relationship. It expresses a relationship where an instance of the Container-class has the responsibility to hold and maintain instances of each Containee-class that have been created outside the auspices of the Container-class. Aggregation should be used to express a more informal relationship than composition expresses. That is, it is an appropriate relationship where the Container and its Containees can be manipulated independently. Aggregation is appropriate when Container and Containees have no special access privileges to each other. AGGREGATION Class E1 Class E2 Containee Classes Example Bag Apples Milk [From Dr.David A. Workman]

OO Relationships: Composition Composition: expresses a relationship among instances of related classes. It is a specific kind of Whole-Part relationship. It expresses a relationship where an instance of the Whole-class has the responsibility to create and initialize instances of each Part-class. It may also be used to express a relationship where instances of the Part-classes have privileged access or visibility to certain attributes and/or behaviors defined by the Whole-class. Composition should also be used to express relationship where instances of the Whole-class have exclusive access to and control of instances of the Part-classes. Composition should be used to express a relationship where the behavior of Part instances is undefined without being related to an instance of the Whole. And, conversely, the behavior of the Whole is ill-defined or incomplete if one or more of the Part instances are undefined. Whole Class Class W Class P1 Class P2 Part Classes Example Automobile Engine Transmission [From Dr.David A. Workman]

Aggregation vs. Composition Composition is really a strong form of aggregation components have only one owner components cannot exist independent of their owner components live or die with their owner e.g. Each car has an engine that can not be shared with other cars. Aggregations may form "part of" the aggregate, but may not be essential to it. They may also exist independent of the aggregate. e.g. Apples may exist independent of the bag.

Order placement problem-Class diagram

Association: Multiplicity and Roles student 1 * University Person 0..1 * teacher employer Role Multiplicity Symbol Meaning 1 One and only one 0..1 Zero or one M..N From M to N (natural language) * From zero to any positive integer 0..* From zero to any positive integer 1..* From one to any positive integer Role “A given university groups many people; some act as students, others as teachers. A given student belongs to a single university; a given teacher may or may not be working for the university at a particular time.”

More Example on Class Diagram Name class Order Multiplicity: mandatory Attributes -dateReceived -isPrepaid * Customer 1 -number :String -name -price : Money -address Operations +dispatch() Association +creditRating() : String() +close() 1 {if Order.customer.creditRating is Generalization "poor", then Order.isPrepaid must be true } Corporate Customer Personal Customer Constraint (inside braces{}} -contactName -creditCard# -creditRating Multiplicity: Many value -creditLimit +remind() +billForMonth(Integer) Multiplicity: optional 0..1 * Employee * OrderLine -quantity: Integer * 1 Product -price: Money -isSatisfied: Boolean [from UML Distilled Third Edition]

Association: Model to Implementation * 4 Student Course has enrolls Class Student { Course enrolls[4]; } Class Course { Student have[];

Dia tool demo

How to install dia in Mint

Where to get dia?? Other Linux OS distributions http://dia-installer.de/download/linux.html Windows OS http://dia-installer.de/download/index.html

About dia  It is a Open Source cross-platform diagramming program. It is very powerful, easy to use, and free of charge. Dia is a modeling tool application that can be used to make a large variety of diagram The Dia has special shapes/objects to draw the entity- relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams.

Dia toolbar and Blank Canvas

How to create the class “Account” in dia? accno:int acctype:String name:String balance:float deposit(a:int):void withdraw(a:int):int enquire():String

Choose the option “UML” From the select box

Select the class from the tool bar and Drag and drop it in to the canvas Select “class”

Double click the compartment “Class”

Edit the class name as “Account”

Now choose the Tabbed button “Attributes” to name the attribute

Press the button “New” to enable the “Attribute data” fields and edit the fields(name,type and visibility)

Now press the button “New” to add more attributes and finally press “ok”

Similarly, choose the Tabbed button “Operations” to add the operations Press “New” to enable the parameter data fields

Adding parameters and type and press ok

Use the same procedure to add other methods

A sample showing the “Association” relationship Double click the association link for setting the properties

A sample showing the generalization relationship

A sample showing the Aggregation

A sample using Dependency Relationship between the classes

Further References https://www.youtube.com/watch?v=SXYjvLZblNo http://dia-installer.de/doc/en/dia-manual.pdf

Case study-Railway Reservation System (Refer the file: Railwayreservation.dia)

Class diagram-Railway reservation system