CH06: Considering Objects TECH Computer Science Set, Class, Type …of… Objects, Actors, Agents...

18
CH06: Considering Objects TECH Computer Science Set, Class, Type …of… Objects, Actors, Agents Data and Actions Object-Oriented Design and Development Intro to UML (Unified modeling Language) Diagrams CH01

Transcript of CH06: Considering Objects TECH Computer Science Set, Class, Type …of… Objects, Actors, Agents...

Page 1: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

CH06: Considering Objects

TECH Computer Science

Set, Class, Type…of…

Objects, Actors, AgentsData and Actions

• Object-Oriented Design and Development• Intro to UML (Unified modeling Language)

Diagrams

CH01

Page 2: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Class vs. Object

• A class is a collection, a group, a set, or a type of …e.g.PeopleStudent

• An object is an instance or an individual of a classe.g.People TomStudent Marry

Page 3: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Class and its UML Box

• DataState, attributes

• BehaviorAction, transformation, operation

Triggered by receipt of particular message, or entrance into a particular state

Page 4: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Relations between Classes

• Subclasse.g.People

Student

• Hierarchy• Inheritance (is-a)

Page 5: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Association relation between classes• Public Class Employee

• {

• public String lastName;

• …

• public Address homeAddress;

• …

• }

• Public class Address

{

}

Employee

-lastName : String

Address

-homeAddress

Page 6: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Association relation between classes (bidirectional)• Public Class Team

• {• LinkedList members = new LisnkedList();

• …

• }

• Public class member

{

Team memberOf;

}

Team

Member

Page 7: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Composition and Aggregation

Page 8: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Dependency

• A dependency exists between the two if a class uses another class in some fashion

Page 9: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Using Class Diagram to show a design

Page 10: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

More UML diagrams

Page 11: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Use case diagram

Page 12: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Activity Diagram

Page 13: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

State Diagram

Page 14: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Sequence Diagram

Page 15: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Collaboration Diagram

Page 16: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

Package Diagram

Page 17: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

OO Design

• Identify classesA set of objects sharing a common structure and

common behaviorsLooking for Things (nouns)

StructuresExternal systemsDevicesRolesOperating proceduresPlacesOrganizationsThings that are manipulated by the system to be builds

BehaviorsVerbs

Page 18: CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.

OO Measurement: MetricTable 6.7: Where to capture OO metrics.

Phase

Metric

Use cases Classdiagrams

Inter-actiondiagrams

Class descrip-tions

Statediagrams

Packagediagrams

Number of scenario scripts XNumber of key classes XNumber of support classes XAverage number ofsupport classes per keyclass

X

Number of subsystems XClass size X XNumber of operationsoverridden by a subclass

X

Number of operationsadded by a subclass

X

Specialization index XWeighted methods in class XDepth of inheritance XNumber of children XCoupling between objects XResponse for a class XLack of cohesion inmethods

X

Average operation size XAverage number ofparameters per operation

X

Operation complexity XPercent public andprotected

X

Public access to datamembers

X

Number of root classes XFan-in/fan-out X