swt diagrammatics
Download
Skip this Video
Download Presentation
SWT - Diagrammatics

Loading in 2 Seconds...

play fullscreen
1 / 33

SWT - Diagrammatics - PowerPoint PPT Presentation


  • 110 Views
  • Uploaded on

SWT - Diagrammatics. Lecture 3/4 - Diagramming in OO Software Development - partA 2-May-2000. Previous Lecture Review. Diagram Distinctions : Adjoinment, Linkage, Containment. Diagram Taxonomies. Diagram use in Computer Science :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' SWT - Diagrammatics' - joylyn


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
swt diagrammatics

SWT - Diagrammatics

Lecture 3/4 - Diagramming in OO Software Development - partA

2-May-2000

previous lecture review
Previous Lecture Review
  • Diagram Distinctions :
    • Adjoinment, Linkage, Containment.
  • Diagram Taxonomies.
  • Diagram use in Computer Science :
    • Venn, Flowcharts, NSD’s, Structure, Dataflow, ERD’s, Cell and Arrows, State, Petri nets.
  • Logic Gate Diagrams.
  • How to operate Theseus under CM.
overview
Overview
  • OO Introduction,
  • OO Design Notations,
  • Objects, Messages / Control & Data Flow, Classes.
  • Class Attributes and Operations,
  • Visibility of Attributes and Operations,
  • Relationships :
    • Association, Multiplicity, Aggregation,
    • Dependency, Inheritance.
  • Object Oriented Views
slide4

What OO Systems are?

  • OO Systems are viewed as compositions of domain specific object abstractions, rather than data and functions. Objects associate data and behaviour.
  • Objects in a System inter-communicate by sending messages to each other.
  • An Object is a domain concept that has :
    • State
    • Behaviour
    • Identity
slide5

OO Software Engineering

  • has three distinctive OO processes :
  • OO Analysis (OOA) focuses on the understanding of real-world models.
  • OO Design (OOD) stresses the mapping of the OOA model to structured architectures, and
  • OO Programming (OOP) deals with the building of OOD models under the constraints of the existing environments.
slide6

The Object Model

Is a view of the world in terms of Objects and their relationships.

object oriented design notations
Object Oriented Design Notations
  • OOD is one of CS’s disciplines that make heavy use of diagrams.
  • There are many different OOD notations, all conveying the same (more or less) information about the systems they describe :
  • Coad/Yourdon, Fusion, Jacobson, Martin/Odell, Shlaer and Mellor, Wirfs-Brock et al, Meyer etc
  • Three are the most popular ones :
    • Booch,OMT, UML.
  • You can use which ever you prefer, however UML became the standard in OO design on feb’97.
objects
Objects
  • An object is an atomic entity, formed from the union of state and behaviour.
  • Provides encapsulation.
  • Provides a weak coupling with the outside world.
  • Software objects define an abstract representation of real or virtual world entities.

Visible behaviour

An object

Hidden internal state

objects1
Objects
  • In Booch, objects are represented by clouds.
  • In OMT as in UML, objects are represented by rectangles.
  • In UML, the name of the object is underlined.

Booch OMT UML

Name : Class

Name : Class

Name : Class

messages control data flow
Messages / Control & Data Flow
  • The message is the unit of inter-object communication.
  • It allows interaction in a flexible manner.
  • It is responsible for the delegation of tasks, and guarantees that constraints are satisfied.
  • A message combines control flows and data flows within a single entity.
  • The notion of a message is an abstract concept: it could be a constructor, a method call, a discrete event, an interrupt, a UDP datagram etc.

Message A

Control Flow

Object1

Object2

Data Flow

Data Flow

messages control data flow1
Messages / Control & Data Flow
  • In the three notations, messages are represented using arrows near the links.
  • The control flow type is represented by using a line decorated with an arrowhead.
  • A small circle connected to the line indicates a data flow, with the arrow pointing to the direction of the flow.
  • This notation is optional and has become redundant.

Booch OMT UML

Data flow

represented

by the message

labels

classes
Classes
  • A class is the product of an abstraction process which starts with the identification of common characteristics of a set of elements, and proceeds to the concise description of these characteristics.
  • The abstraction process is arbitrary: it is defined with respect to a particular viewpoint

A Class

classes1
Classes
  • A class describes the definition domain of a set of objects.
  • It acts as a “mould” from which objects can be created.
  • Software objects are built from the class, via a process called “instantiation”, objects are “instances” of classes.
  • In Booch, classes are represented using dotted clouds.
  • In OMT, as in UML, classes are represented using rectangles.

Booch OMT UML

Class

Class

class attributes and operations
Class Attributes and Operations
  • Each class is represented as a rectangle subdivided into three components :
    • The name of the class,
    • The attributes of the class,
    • The operations of the class,
  • By default, attributes are hidden and operations are visible.
  • These compartments may be omitted to simplify the diagrams.

Class name

Attributes

Operations( )

class attributes and operations1
Class Attributes and Operations
  • In all three notations, attributes and operations are represented within the class glyph.
  • Some attributes can be hidden for the sake of readability.
  • OMT and UML use boxes to distinguish the attributes from the operations.

Booch OMT UML

Class name

Class name

Class name

Attributes

Attributes

Attributes

Operations( )

Operations( )

Operations( )

visibility of attributes and operations
Visibility of Attributes and Operations
  • Visibility rules complement and refine the concept of encapsulation.
  • It is possible to customise the degree of protection to the benefit of a class client by declaring attributes as public, protected or private.
  • One of the benefits of breaking encapsulation can be, for example, to reduce the time required to access attributes by making unnecessary to call setters/getters. Could this be a right decision?

Class name

+ Public Attribute

# Protected Attribute

- Private Attribute

+ Public Operation( )

# Protected Operation( )

- Private Operation( )

visibility of attributes and operations1
Visibility of Attributes and Operations
  • The three notations encompass public, protected and private levels of protection.
  • Booch provides an additional “implementation” level.

Booch OMT UML

Nothing public

| protected

| | private

| | | implementation

Nothing unspecified

+ public

# protected

- private

+ public

# protected

- private

Class name

Class name

Class name

+ Public Attribute

# Protected Attribute

- Private Attribute

+ Public Attribute

# Protected Attribute

- Private Attribute

Public Attribute

| Protected Attribute

| | Private Attribute

Public Operation( )

| Protected Operation( )

| | | Private Operation( )

+ Public Operation( )

# Protected Operation( )

- Private Operation( )

+ Public Operation( )

# Protected Operation( )

- Private Operation( )

relationships association
Relationships: Association
  • The association relationship expresses a bi-directional, semantic connection between classes.
  • An association is an abstraction of the links that exist between object instances.
  • It is possible to specify the role of a class within an association.
  • A role name may be specified on either side of the association.

Dean

University

Student

relationships association1
Relationships: Association
  • In all the three notations, an association is represented by a continuous line between the classes that participate in it.

Booch OMT & UML

University

Student

University

Student

multiplicity
Multiplicity
  • Relationships between classes carry multiplicity information that specifies the number of instances that participate in the relationship
  • The table below summarises the most common multiplicity values :

Symbol Meaning

1 One and only one

0..1 Zero or one

M..N From M to N (natural integers)

* From zero to any positive integer

0..* From zero to any positive integer

1..* From one to any positive integer

Dean

1 1

University

1 0..*

Student

multiplicity1
Multiplicity
  • OMT proposes a graphical representation based on circles.
  • Take care not to confuse these circles with those meaning has and uses in Booch, as there is no relationship between these two representations.

Booch OMT UML

1 by default

1

0..1

N

3..5, 7, 15

3..N

0..N

1

0..1

*

3..5, 7, 15

3..*

0..1

1+

3..5

relationships aggregation
Relationships: Aggregation
  • An aggregation is a particular kind of association that expresses a stronger coupling between classes.
  • Aggregation allows the representation of relationships like “master and slave”, “all and part of” and “composed of and components”.
  • It is commonly referred to as a “HasA” (or “HasMany”) relationship.

Car

1

Engine

1

relationships aggregation1
Relationships: Aggregation
  • There is no strict equivalence between the Booch, OMT and UML notations.
  • As aggregation is concerned, Booch is closer to the design phase, OMT is closer to the analysis stage, and UML covers both.
  • 2 cases are illustrated for each design methodology : aggregation by reference and aggregation by value (same in OMT)

Booch OMT UML

Car

Engine

Car

Engine

Car

Engine

Car

Engine

Car

Engine

Car

Engine

relationships dependency
Relationships: Dependency
  • A dependency is a “loose” association that expresses a weaker coupling between classes.
  • Usually dependency shows that a class uses another class with one way or another, maybe by using the other class’s static methods or by passing objects of the second class’s type to another object of another class.
  • It is commonly referred to as a “Uses” relationship.

Assembler

Robot

1

Car Parts

1..*

relationships dependency1
Relationships: Dependency
  • Booch represents a dependency using an association labelled with a small circle placed on the client side.
  • OMT represents a dependency using a dotted arrow with a filled head.
  • UML uses a dotted arrow with an open head.
  • In OMT and UML the arrow points to the supplier – the element being dependent on.

Booch OMT UML

Robot

Parts

Robot

Parts

Robot

Parts

relationships inheritance

Shape

is a

Star

Relationships: Inheritance
  • Inheritance is a technique offered by programming languages to construct a class from one or more (in C++) classes, sharing attributes, operations and sometimes constraints within a hierarchy of classes.
  • A class can specialise, extend, subclass, or be a child of another class.
slide27

Relationships: Inheritance

  • Inheritance propagates the characteristics of the parent class (depending on their visibility) into the child classes.
  • It is commonly read as an “IsA” relationship.

Vehicle

Car

Bike

Audi

BMW

Yamaha

Suzuki

relationships inheritance1
Relationships: Inheritance

Booch OMT UML

  • In all three notations, inheritance is represented using an arrow that points from the subclass to the superclass.

Vehicle

Vehicle

Vehicle

Car

Car

Car

Vehicle

Vehicle

Vehicle

Car

Bike

Car

Bike

Car

Bike

Or as

in OMT

object oriented views
Object Oriented views
  • Hierarchy view (usually static) :
    • classes, interfaces and their relationships.
  • Interaction view (usually dynamic) :
    • objects, method calls, events, messages.
  • Modules view :
    • name spaces, packages-libraries-modules, classes, and their internal and external dependencies.
hierarchy view
Hierarchy View

TestProgram

has

Drawable

implements

main()

draw()

  • Inheritance,
  • Aggregation,
  • Uses.

Shape

draw()

setOrigin()

setColor()

Relationships :

is

Rect

Oval

Line

draw()

toString()

setText()

draw()

toString()

setText()

draw()

toString()

setText()

interaction view
Interaction View

myTestprogram

myVector

myEnum

myShape

  • Is based on objects and method calls.
  • Depicts the runtime of the system.

drawAll()

elements()

*[hasMoreElements()]

nextElement()

draw()

module view

figures

Module View

tools

  • Package Visibility
  • Package Dependencies

framework

commands

domain

gui

util

ad