7m701 1 class diagram advanced concepts. 7m701 2 characteristics of object oriented design (ood)...

30
7M701 1 Class Diagram advanced concepts

Post on 15-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7011

Class Diagramadvanced concepts

Page 2: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7012

Characteristics of Object Oriented Design (OOD)

• Data and operations (functions) are combined objectobject

• Objects arte abstractions of real-world or system entities and manage themselves.

• Objects are independent and encapsulate state and represent information.

• System functionality is expressed in terms of object services.

• Objects communicate by message passing.

Page 3: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7013

• Objects are abstractions of real-world entities.

• Objects encapsulate state and represent information.

• Object’s state is protected.

• Objects have responsibility.

• Objects interact by interfaces.

Page 4: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7014

Conceptions

• Encapsulation • Information hiding• Responsibility

Page 5: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7015

Encapsulation

• Encapsulation is the grouping of related ideas into one unit, which can thereafter be referred to by a single name.• Object-oriented encapsulation is the packaging

of operations and attributes representing state into an object type so that state is accessible or modifiable via the interface provided by the encapsulation.

Page 6: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7016

Information hiding

• Information hiding is the use of an encapsulation to restrict from external visibility certain information decisions that are internal to the encapsulation structure.

Page 7: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7017

Responsibility

• Object oriented design is a responsibility driven design approach.• Objects have responsibilities that they prove

oneself.• Therefore, collaboration with other objects is

needed.

Page 8: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7018

Objects and object classes

• Objects are entities in a software system which represent instances of real-world and system entities

• Object classes are templates for objects. They may be used to create objects

• Object classes may inherit attributes and services from other object classes

Page 9: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M7019

An object is an entity which has a state and a defined set of operations which operate on that state. The state is represented as a set of object attributes. The operations associated with the object provide services to other objects (clients) which request these services when some computation is required.

Objects are created according to some object class definition. An object class definition serves as a template for objects. It includes declarations of all the attributes and services which should be associated with an object of that class.

Objects

Page 10: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70110

Class diagrams

• Class diagrams are the most commonly used diagrams in UML.

• Class diagrams are for visualizing, specifying and documenting the system from a static perspective.

• Class diagrams indicate which classes know about other classes and, if they do, what type of relationship exists.

• Class diagrams help in showing the functional requirements of the system by the services the system should provide to its end-users.

Page 11: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70111

Relationship between diagrams

Use Casediagram Class diagram

Businessrules

in OCLInteractiondiagram

Class diagramwith OCL and

operations

State diagram

Activity diagram

CompleteClass diagram

Functionalrequirements:

Behaviour

Domainknowledge:Structure

provide infromation

may have influence on

Page 12: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70112

Page 13: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70113

Advanced Class Features

Page 14: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70114

Advanced Class Concepts : Visibility

• Visibility – class members (attributes, operations) may be specified as:{we have feature f, an attribute or operation that is defined on an object O of class C }• + : public{f is public f is visible to any object and f is inherited by the

subclasses of C.}• # : private{f is private f is visible only to O and f is not inherited by the

subclasses of C.}• - : protected(f is protected f is visible only to objects of class C and to objects of

C’s subclasses and f is inherited by the subclasses of C.}

• Restricting visibility is the same as restricting accessibility.

Page 15: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70115

Advanced Class Concepts : Scope

• Individual member data (= attributes) may have:• Class scope : a single copy of an attribute is

shared by all instances of a class.• Instance scope : each instance of a class would

have its own copy of the attribute.

Page 16: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70116

Advanced Class Concepts : Abstract

• An operation is abstract if it has no implementation.

• A abstract class cannot have any direct instances.

• Abstract classes only occur in the context of an inheritance hierarchy.

• Abstract operations and classes are specified by writing its name in italics.

Page 17: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70117

Advanced Class Concepts : Abstract

Page 18: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70118

Interfaces and Abstract Classes

• One can vary the interfaces of classes independent of the implementation.

• A pure interface is a class with no implementation and, therefore has operation declarations but no method bodies an fields.

• Interfaces are often declared through abstract classes.

Page 19: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70119

Window as Abstract Class

Page 20: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70120

Interfaces and Abstract Class

• Sub classing is not only the way to do this.• For instance Java provides an interface construct, and the

compiler checks that the implementing class provides implementations of all the interface’s operations.

Page 21: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70121

Lollipop notation for Interfaces

Page 22: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70122

Aggregation and Composition

• Aggregation is a special form of association that specifies a whole-part relationship between the aggregate (the whole) and a component (the part); aggregation is the part-of relationship.

{ it is a special form of association in which a collection of objects, each having an independent existence, is associated with an single object} {unfilled diamond}

• Composition is a form of aggregation with strong ownership and coincident lifetime of the parts by the whole; the part object may belong to only one whole – the parts are usually expected to live and die with the whole. (usually, any deletion of the whole is considered to cascade to the parts}{filled diamond}

Page 23: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70123

Aggregation and Composition: Example

Page 24: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70124

Alternative notation for Composition

Page 25: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70125

Derived Associations and Attributes

• Derived associations and attributes can be calculated from other associations and attributes, respectively, on a class diagram.• For example, an age

attribute of a Person can be derived if you know that Person’s date of birth.

Page 26: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70126

Page 27: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70127

Qualified Associations

• The qualifier specifies how a specific object at the many end of the association is identified, and may be seen as a kind of key separating all the objects in the association.

Page 28: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70128

Relations and Constraints

Page 29: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70129

Object Diagram

• Shows a set of objects and their relationships.

• Illustrates instances of things found in class diagrams.

• Represents the static design view.

Page 30: 7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined

7M70130

Object Diagram : Example