CS 494 Adv. SW Design and Development

Slides:



Advertisements
Similar presentations
ESE Einführung in Software Engineering 6. Modeling Objects and Classes Prof. O. Nierstrasz.
Advertisements

Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 4 Class Models (Based on Fowler (2004, Chapters 3 & 5) and Stevens and Pooley.
CS 340 UML Class Diagrams. A model is an abstraction of a system, specifying the modeled system from a certain viewpoint and at a certain level of abstraction.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
Object-Oriented Analysis and Design
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Design Patterns in Java Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Essentials of interaction diagrams Lecture Outline Collaborations Interaction on collaboration diagrams Sequence diagrams Messages from an object.
What is UML? A modeling language standardized by the OMG (Object Management Group), and widely used in OO analysis and design A modeling language is a.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
ESE Einführung in Software Engineering 6. Modeling Objects and Classes Prof. O. Nierstrasz.
© Copyright Eliyahu Brutman Programming Techniques Course.
MORE ON CLASS MODELS Lecture Outline Aggregation and composition Roles Navigability Qualified association Derived association Constraints Association.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
Object-Oriented Analysis and Design
UML Diagrams Computer Science I.
Software Construction Lecture 5 Class Diagrams. Agenda 2  Topics:  Examples of class diagrams  Navigation, visibility, named associations, and multiplicity.
1 ER Modeling BUAD/American University Entity Relationship (ER) Modeling.
4/10/05G-1 © 2001 T. Horton CS 494, Spring 2005 Object-Oriented Design & Dev. On to Design.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
R McFadyen Chapter 7 Conceptual Data Modeling.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
7-1 © Prentice Hall, 2007 Chapter 7: Conceptual Data Modeling Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Unit 3 Conceptual Data Modeling. Key Concepts Conceptual data modeling process Classes and objects Attributes Identifiers, candidate keys, and primary.
7-1 © Prentice Hall, 2007 Week 5: Conceptual Data Modeling Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Unit 1 INTRODUCTION TO MODELING AND CLASS MODEL Ref : L7-UML.PDF.
Today in OOAD  The Domain Model Artifact UML Classes  EU-Bid Domain Model Exercise  EU-Lease Domain Model Assignment Guest Speaker  Kate Cunningham,
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Chapter 16 Applying UML and Patterns Craig Larman
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 03. Classes,
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis activity Janice Regan,
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.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Advanced UML Class Diagrams.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
Class Diagram. Classes Software Design (UML) Class Name attributes operations A class is a description of a set of objects that share the same attributes,
Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
Design Model Lecture p6 T120B pavasario sem.
Object Oriented Analysis: Associations. 2 Object Oriented Modeling BUAD/American University Class Relationships u Classes have relationships between each.
Object Oriented Analysis and Design Class and Object Diagrams.
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
1 Introduction to Classes. 2 Terms and Concepts A class is... –The most important building block of any object- oriented system. –A description of a set.
CS212: Object Oriented Analysis and Design Lecture 33: Class and Sequence Diagram.
UML Part 1: Class Diagrams. Introduction UML stands for Unified Modeling Language. It represents a unification of the concepts and notations presented.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Object Modeling THETOPPERSWAY.COM. Object Modelling Technique(OMT)  Building a model of an application domain and then adding implementation.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
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.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Kyung Hee University Class Diagramming Notation OOSD 담당조교 석사과정 이정환.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
Fundamentals of Object Oriented Modeling
Structural Modeling.
Object-Oriented Analysis and Design
Class Diagrams.
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Object Oriented Analysis and Design
Software Engineering Lecture #11.
Introduction to Unified Modeling Language (UML)
Understand and Use Object Oriented Methods
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

CS 494 Adv. SW Design and Development UML Class Models 2/14/05 © 2001 T. Horton

Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation and composition Later: How to find classes small and larger systems 2/14/05

Developing Class Models Class diagrams used for different purposes during different times in the development life-cycle Models that are close to code vs. Models that support earlier modeling: For domain analysis For requirements specification Class diagrams developed iteratively Details added over time during lifecycle Initially: missing names, multiplicities, other details 2/14/05

More Abstract Perspectives Some define particular perspectives for class models: Conceptual Specification Implementation Conceptual perspective Represents concepts in the domain Drawn with no regard for implementation (language independent) Used in requirements analysis Interfaces defined: a set of operations Focus on interfaces not how implementation broken into classes Sometimes known as a “type” 2/14/05

Design and Code Level Perspectives What’s useful at the design level? Your thoughts here: 2/14/05

Implementation Level Class Diagrams Direct code implementation of each class in the diagram A blue-print for coding Practical issue: How much detail? getters and setters? library classes like String? Reverse- and round-trip engineering tools 2/14/05

Documenting Your Objects Need some kind of record of your definitions Your white-board? A simple glossary A data dictionary (perhaps in a CASE tool) What to define? Attributes, operations for each class Also relationships between classes Can you define classes of related objects? Inheritance, Java interfaces 2/14/05

Classes in UML Diagrams Attributes in middle Operations at bottom Can be suppressed. (What level of abstraction?) Attribute syntax: name : type = default Operation syntax: name ( params) : return type Visibility + public - private # protected etc. nothing? Java’s default- package? 2/14/05

Associations For “real-world objects” is there an association between classes? Classes A and B are associated if: An object of class A sends a message to an object of B An object of class A creates an instance of class B An object of class A has an attribute of type B or collections of objects of type B An object of class A receives a message with an argument that is an instance of B (maybe…) Will it “use” that argument? Does an object of class A need to know about some object of class B? 2/14/05

More on Associations Associations should model the reality of the domain and allow implementation Associations are between classes A link connects two specific objects Links are instances of associations Note we could draw an object diagram to show objects and links But often interaction diagrams are more useful for modeling objects Note: In practice, early in modeling, we may not name associations Note: One may choose to have a dynamic view associations: if at run-time two objects exchange messages, their classes must be associated 2/14/05

Multiplicity Also known as cardinality Objects from two classes are linked, but how many? An exact number: indicated by the number A range: two dots between a pair of numbers An arbitrary number: indicated by * symbol (Rare) A comma-separated list of ranges Examples: 1 1..2 0..* 1..* * (same as 0..* but…) Important: If class A has association X with class B The number of B’s for each A is written next to class B Or, follow the association past the name and then read the multiplicity Implementing associations depends on multiplicity 2/14/05

Examples of Associations From a Library catalog example One book has 1 or more copies One copy is linked to exactly one book Should there be two associations: borrows and returns? One copy is borrowed by either zero or one LibraryMember 2/14/05

Generalization and Inheritance You may model “inheritance” early but not implement it Generalization represents a relationship at the conceptual level Inheritance is an implementation technique Generalization is just an association between classes But so common we put a “triangle” at the superclass Note this is a relationship between classes So no multiplicities are marked. Why not? Inheritance may not be appropriate when it’s time to implement Objects should never change from one subclass to another Composition can be used instead 2/14/05

Aggregation and Composition Again, just a specific kind of association between classes An object of class A is part of an object of class B A part-whole relationship Put a diamond on the end of the line next to the “whole” Aggregation (hollow diamond): really no semantics about what this means! Composition (solid diamond): a stronger relationship 2/14/05

Aggregation and Composition (cont’d) The whole strongly owns the parts Parts are copied (deleted, etc.) if the whole is copied (deleted, etc.) A part cannot be part of more than one whole Mnemonic: the stronger relationship is indicated by the stronger symbol (it’s solid) Aggregation and composition associations are not named They do have multiplicities They can be used too often. If in doubt, use a “plain”, named association. 2/14/05

Example 1: University Courses Some instructors are professors, while others have job title adjunct Departments offer many courses, but a course may be offered by >1 department Courses are taught by instructors, who may teach up to three courses Instructors are assigned to one (or more) departments One instructor also serves a department chair 2/14/05

Class Diagram for Univ. Courses Note this implies adjuncts can be chairs 2/14/05

Example 2: Problem Report Tool A CASE tool for storing and tracking problem reports Each report contains a problem description and a status Each problem can be assigned to someone Problem reports are made on one of the “artifacts” of a project Employees are assigned to a project A manager may add new artifacts and assign problem reports to team members 2/14/05

Class Diagram for Prob. Rep. Tool 2/14/05

Example from Fowler 2/14/05

Objects, Object Diagrams Objects drawn like classes, but names for all instances underlined Objects may be “anonymous” Attributes are given values 2/14/05

Class Attributes, Operations Recall in Java and C++ you may have class attributes and class operations keyword static used One attribute for all members of class An operation not encapsulated in each object, but “defined in” that class’ scope In UML class diagrams, list these in the class box’s compartments, but underline them 2/14/05

Navigability Some call this “direction of visibility” Does each class really store a reference to each other? Do we need to decide this now? (When is “now”?) We can add arrows to associations to indicate this What does a line with no arrows mean? 2/14/05

More on Associations: Navigability One reason for having an association between classes: Messages between objects of those classes But, often “knowledge” indicated by association is only in one direction Example: In a computer system, a User needs access to his/her Password From a Password object we should not be able to get back to a User! Note: Often ignored until design! 2/14/05

More on Associations: Roles Review: Associations have an optional name Name might have a “direction” indicator But, direction or semantics often easier to understand if we simply but a role name at one or both ends of the line 2/14/05

Dependencies Dependency: A using relationship between two classes A change in the specification of one class may affect the other But not necessarily the reverse Booch says: use dependencies not associations when one class uses another class as an argument in an operation. Often used for other things in UML: A general relationship between “things” in UML Often use a stereotype to give more info Uses: binding C++ class to template; Java interfaces; a class only instantiates objects (a factory) 2/14/05

Stereotypes Extends the “vocabulary” of UML Creates a new kind of building block Derived from existing UML feature But specific for current problem Also, some pre-defined stereotypes UML allows you to provide a new icon! Syntax: Above name add <<stereotype>> inside guillemets (French quotes) Again, used to provide extra info about the UML modeling construct 2/14/05

Stereotypes (cont’d) UML predefines many: Classes: <<interface>>, <<type>>, <<implementationClass>>, <<enumeration>>, <<thread>> Constraints: <<precondition>> etc. Dependencies: <<friend>>, <<use>> Comments: <<requirement>>, <<responsibility>> Packages: <<system>>, <<subsystem>> (maybe classes, too) Or, create your own if needed. 2/14/05

Class Categories You can use stereotypes to organize things by category within a class box 2/14/05

Stereotype Example IStringifiable is not a class Interface (as in Java) Module implements this interface Printer depends on what’s in the interface 2/14/05

Interfaces Interface: specifies a set of operations that any class implementing or realizing the interface must provide More than one class may realize one interface One class may realize more than one interface No attributes, and no associations Notation: Use <<interface>> with a class; list operations “Lollipop” notation 2/14/05

Interface Example Diagram 2/14/05

Classes Realize an Interface “Realizes” AKA implements, supports, matches, etc. This means that class provides all the operations in the interface (and more?) Remember, no implementation in interface definition Realization shown with dashed line, hollow arrow Like dependency plus generalization Why have this? Just factor out common functionality? Better “pluggability”, extensibility 2/14/05

Tagged Values, Properties Every modeling element in UML has its set of properties Classes have: name, attributes, operations, etc. What if we want to add our own? (e.g. author?) Just add text in curly-brackets, with name=value, and put below the element name Note: These tell you something about the model, not about the final system to be built! Often used for code generation, version control, etc. Example: {abstract} classes instead of italics 2/14/05

Abstract Classes Implementation not provided for one or more operations So, a subclass must extend this to provide implementations How to show this in UML? Either italics for class name and operations Or, use {abstract} property by name An abstract class with no attributes and all abstract operations is effectively an interface But Java provides a direct implementation 2/14/05

Constraints Conditions that restrict values, relationships,… Can be free text or Object Constraint Langauge (OCL) (see textbook) Recommendation: Use sparingly! This example: from UML User Guide, p. 82 2/14/05

Constraints and Semantics Example from UML User Guide, p. 88 A dependency and a constraint used Shows Manager must be one of Members of a Department One link (say, Jane-to-DeptA) is a subset of all links between Persons and DeptA 2/14/05

Derived Associations Often an association in a model be deduced from the existence of one or more other associations Do we show it? Is it redundant? Option: Draw it but mark it as derived Use a slash symbol / before name Can use slash in front of class attributes too! 2/14/05

Example: Ticket Sales 2/14/05

Unused slides follow 2/14/05

Association Classes Recall that qualified associations really mean that the link between two objects has an attribute Often associations are “first-class” things They have a life-time, state, and maybe operations Just like objects! Association classes Same name as the association because... They represent the same thing! 2/14/05

Association Class Example 2/14/05

World Cup Example We need a system to handle the World Cup. Teams represent countries and are made up of 22 players. Countries qualify from zones, where each zone is either a country or a group of countries. Each team plays a given number of games in a specific city. Referees are assigned to games. Hotel reservations are made in the city where the teams play. 2/14/05

World Cup Problem: Class Model 2/14/05

Qualified Associations Equivalent to programming language idea of lookup, map, dictionary, associative array, etc. An object is associated with some number of other objects in a class How do we identify which one we want given that association? The qualifier documents attribute(s) used to identify which object The “key” for “lookup” Formally, these are attributes of the association 2/14/05

Qualified Association Examples: 2/14/05

Identifying Classes for Requirements From textual descriptions or requirements or use cases, how do we get classes? Various techniques, and practice! Key Domain Abstractions: Real-world entities in your problem domain Noun identification Not often useful (but easy to describe) Remember: external view of the system for requirements Not system internals, not design components! 2/14/05

Noun Extraction Take some concise statement of the requirements Underline nouns or noun phrases that represent things These are candidate classes Object or not? Inside our system scope? An event, states, time-periods? An attribute of another object? Synonyms? Again, looking for “things” 2/14/05

Identifying Good Objects Don’t forget from earlier: attributes and operations are encapsulated in objects objects have a life-cycle Also, don’t worry about user interface Think of user-commands as being encapsulated in the actors Consider: Collections, things in a container Roles Organizations 2/14/05

Actors and Classes In some diagrams, actors represented as class boxes With special stereotype above class name: <<actor>> UML allows special graphical symbol (e.g. a stick figure) to replace stereotyped classes See Richter, p. 53 2/14/05