Class Diagram Notation Lecture Oo12 Classes Packages.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Copyright W. Howden1 Lecture 7: Functional and OO Design Descriptions.
1 SWE Introduction to Software Engineering Lecture 13 – System Modeling.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Lecturer: Dr. AJ Bieszczad Chapter 66-1 Object-Oriented analysis and design Special nature of OO development Use cases Design with UML OO system design.
Chapter 10 Class and Method Design
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
Abstract Data Types and Encapsulation Concepts
Slide 1 Chapter 10 Class and Method Design. Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION.
Introduction to Object Oriented Design. Topics Designing Your Own Classes Attributes and Behaviors Class Diagrams.
Systems Analysis and Design in a Changing World, Fifth Edition
Construction Lecture Oo20 Gymnastics System Example Cont’d.
A Development Process Lecture Oo13 Objectory based method.
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program.
An Introduction to Software Architecture
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Unified Modeling Language, Version 2.0
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Class Diagrams: Advanced Concepts. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are the most commonly used diagrams.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Lecture OO05 Object Scenarios Object Interaction Diagrams
Information Systems Engineering
Relationships Relationships between objects and between classes.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Midterm Study Guide COP 4331 and EEL4884 OO Processes for Software Development © Dr. David A. Workman School of EE and Computer Science University of Central.
Software Engineering Lecture 8 Object-Oriented Analysis.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Unified Modeling Language, Version 2.0 Chapter 2.
1 Staffordshire UNIVERSITY School of Computing Slide: 1 Objects and Classes.
Class diagrams Terézia Mézešová.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
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.
Class Relationships Lecture Oo07 Generalization Relationships.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Class Diagrams Revisited. Parameterized Classes Parameterized Classes - are used to represent relationships between templates.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Basic Characteristics of Object-Oriented Systems
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Chapter 11: Abstract Data Types Lecture # 17. Chapter 11 Topics The Concept of Abstraction Advantages of Abstract Data Types Design Issues for Abstract.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Design Concepts ch-8
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
OOP: Encapsulation &Abstraction
Cmpe 589 Spring 2006.
Object-Oriented Analysis and Design
Chapter 3: Using Methods, Classes, and Objects
The Object Oriented Approach to Design
CSC 205 – Java Programming II
CSC 205 Programming II Lecture 2 Subclassing.
Object Oriented Analysis and Design
What is an Architecture?
SYS466 Domain Classes – Part 1.
An Introduction to Software Architecture
What is an Architecture?
2.1 Introduction to Object-Oriented Programming
The Object Model Lecture OO02 Classes as Abstract Data Types
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:

Class Diagram Notation Lecture Oo12 Classes Packages

References n Ambler, S., The Object Primer, Cambridge Univ. Press, 2001, Section 6.3, 6.9, 7.1, 7.2,

Teaching Points n Class Characteristics n Packages n Package Diagrams

Review n What are the different visibility types? n Describe each type n When does a visibility type make sense to use?

Access Control n also known as visibility in UML (encapsulation visibility vs. object visibility) n Three kinds of encapsulation visibility –Private –Protected –Public

Encapsulation Visibility Markings n - (or a pad lock) = Private n # (or a key) = Protected n + (or no marking) = Public

Example (Attribute/Operation Markings)

Example (Relationship Markings)

Static Class Members n Static attributes (data members) are held in the program static data space n There is only one copy of such data for the class (i.e. one for all object instances of that class) n These can be thought of as “Class data” n Can be used to reduce global data

Example (Static Attributes)

Class Specifications n Diagrams by themselves do not provide enough detail to fully understand the problem/solution n Specifications provide a detailed understanding of the class and its semantics n Diagrams really must be accompanied by some specification

Class name: Heater Category:Logical View Documentation: This is an abstract class that provides a common interface to heaters in the system. A client object can provide a required temperature to a heater. The heaters have a temperature sensor built in and feedback from this sensor is used to contol the temperature. External Documents: Export Control:Public Cardinality:n Hierarchy: Superclasses:none Associations: : TempController in association Public Interface: Operations: setTemp Private Interface: Attributes: desiredTemp : Temperature The currently required temperature for the object to be heated. Implementation: Attributes: desiredTemp : Temperature The currently required temperature for the object to be heated. State machine:No Concurrency:Sequential Persistence:Transient

Operation Specification Operation name: getTemp Public member of:TempRamp Return Class:Temperature Arguments: TimecurrentTime Documentation: Given a normalized time this function returns the temperature computed from the ramp function. Concurrency:Sequential

Package Diagrams n Large flat (non-hierarchical) class diagrams are complex and hard to understand n It is hard to see structure n It is hard to find a class for maintenance or reuse

Package Diagrams n Solution: –apply abstraction, decomposition and hierarchy –group the classes together in higher level units

Packages n A grouping of mutually dependent classes n Apply rules of coupling and cohesion n Packages are elements of a class diagram (i.e. package diagrams are class diagrams)

Package Dependencies n The relationship between packages is the Dependency relationship n Classes in packages have visibility (access control) applied to them for information hiding purposes –only some of the classes are visible (public) to users of the package –some classes are private (implementation) to the package and can be changed without effecting users of the package

Example n Rose package diagram for Chemical Process Controller

Flat Model

Package Diagram (top level)

Controller Logic Package

Drivers Package

System Package

Teaching Points n Class Characteristics n Packages n Package Diagrams