5. advanced structural modeling

32
5. Advanced Structural Modeling Interfaces, Types, and Roles

Upload: oprah

Post on 22-Feb-2016

27 views

Category:

Documents


0 download

DESCRIPTION

5. Advanced Structural Modeling. Interfaces, Types, and Roles. Overview. Interfaces, types, roles, and realization Modeling the seams in a system Making interfaces understandable and approachable. Terms & Concepts. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 5. Advanced Structural Modeling

5. Advanced Structural Modeling

Interfaces, Types, and Roles

Page 2: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 2

Overview

• Interfaces, types, roles, and realization• Modeling the seams in a system• Making interfaces understandable and

approachable

Page 3: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 3

Terms & Concepts• Interface: a collection of operations that

are used to specify a service of a class or a component

• Type: a stereotype of a class used to specify a domain of objects, together with the operations applicable to the object

• Role: the behavior of an entity participating in a particular context.

Page 4: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 4

Interfaces

interfaces

wordsmith.dll

IUnknown

IThesaurusISpell

component

Page 5: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 5

Interfaces

• Name: simple names, path names• Operations: unlike classes, interfaces do not specify

any structure (no attributes), nor do they specify any implementation (no methods, which provide the implementation of operations).

• Relationships: like a class, an interface may participate in generalization, association, and dependency relationships.

Page 6: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 6

Interface vs. Abstract Class

• An abstract class may have attributes, but an interface may not.

• Interfaces span model boundaries. The same interface may be realized by both a class (a logical abstraction) and a component (a physical abstraction that provides a manifestation of the class).

Page 7: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 7

Modeling the Seams in a System

• Group those that tend to be tightly coupled relative to other sets of classes and components.

• Refine your grouping by considering the impact of change

• Package logically related sets of cross-boundary operations and signals as interfaces

Page 8: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 8

Hints and Tips

• A well-structured interface:– Is simple yet complete. Providing all the operations

necessary yet sufficient to specify a single service.– Is understandable, providing sufficient information.– Is approachable, providing information to guide the user to

its key properties without being overwhelmed by the details of a pile of operations.

Page 9: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 11 Slide 9

Summary

• Interfaces, types, & roles• Interface vs. Abstract Class• Modeling the Seams of a System• Well-Structured Interface

Page 10: 5. Advanced Structural Modeling

5. Advanced Structural Modeling

Packages

Page 11: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 11

Overview

• Packages– Visibility– Importing– Exporting– Standard Elements

• Modeling groups of elements

Page 12: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 12

Packages

• Package—general-purpose mechanism for organizing elements into groups.

• Names– Simple name—textual string distinguishing one

package from others.– Path name—simple name prefixed by any

enclosing package.

Page 13: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 13

Packages Depicted

Business rules

+ OrderForm+ TrackingForm- Order

Client

Sensors::Vision { version = 2.24 }

simple names

extended packages

enclosing package name

package name

path names

Page 14: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 14

Owned Elements

• Composite relationship• Destroyed if enclosing package is destroyed

+ OrderForm+ TrackingForm- Order

Client Client

+OrderForm

+TrackingForm

-Order

graphical nesting

textual nesting

visibility

Page 15: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 15

Visibility

• You can control the visibility of the elements owned by a package just as you can control the visibility of the attributes and operations owned by a class.

• Packages that are friends to another may see all the elements of that package, no matter what their visibility.

• If an element is visible within a package, it is visible within all packages nested inside the package.

Page 16: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 16

Importing & Exporting

• Importing – Grants a one-way permission for elements in one

package to access the elements in another package.

– Dependency with stereotype <<import>>• Exporting

– Public parts of a package.

Page 17: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 17

Importing & Exporting Depicted

+Database+LoggingService

Server

+ OrderForm+ TrackingForm- Order

Client

+OrderRules-GUI:Window

Policies <<import>>

+Window+Form#EventHandler

GUI<<import>>

imports

exports

Page 18: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 18

Standard Elements• facade—only a view on some other package.• framework—package consisting mainly of patterns.• stub—a package that serves as a proxy for the public

contents of another package.• subsystem—a package representing an independent

part of the system being modeled.• system—a package representing the entire system

being modeled.

Page 19: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 19

Modeling Groups of Elements (steps)

• Look for “clumps” of elements that are semantically close to one another.

• Surround “clumps” with a package.• Identify public elements of each package.• Identify import dependencies.

Page 20: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 20

Summary

• Packages• Owned Elements• Visibility• Importing & exporting• Standard package elements• Modeling groups of elements

Page 21: 5. Advanced Structural Modeling

5. Advanced Structural Modeling

Instances, Object Diagrams

Page 22: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 22

Overview

• Instances and Objects• Modeling Concrete Instances• Modeling Prototypical Instances• Modeling Object Structures• Forward and Reverse Engineering

Page 23: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 23

Instances

• The terms “instance” and “object” are largely synonymous; for most part, they may be used interchangeably.

• Use instances to model concrete or prototypical things that live in the real world.

• Transient: specifies that an instance is created during execution of the enclosing interaction but is destroyed before completion of execution (a standard constraint that applied to objects).

Page 24: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 24

Abstractions & Instances

• Instances don’t stand alone: they are almost always tied to an abstraction.

• Instances of:– Classes (objects)– Components, nodes, use cases, and associations

• To indicate an instance, you underline its name.

Page 25: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 25

Other Concepts

: keyCode

: Multimedia :: AudioStreamt : Transaction

myCustomer

r : FrameRenderThread

c : Phone [WaitingForAnswer]

myCustomer

id : SSN = “432-89-1738”active = True

agent :

named instance

instance with explicit state

instance with attribute values

active object

multiobject orphan instance

anonymous instance

Page 26: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 26

Modeling Concrete Instances (steps)

• Identify the instances necessary and sufficient to model the system.

• Render these objects in the UML as instances; give meaningful names if possible or render it as an anonymous object.

• Expose the stereotypes, tagged values, and attributes.

• Show these instances and their relationships in an object diagram.

Page 27: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 27

Modeling Prototypical Instances (steps)

• Identify those prototypical instances necessary and sufficient to model the system.

• Render these objects in the UML as instances; give meaningful names if possible or render it as an anonymous object.

• Expose the properties of each instance.• Show these instances and their relationships in an

interaction diagram or an activity diagram.

Page 28: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 28

Object Diagrams• Object diagrams model the instances of things

contained in class diagrams.• Shows a set of objects and their relationships at a

point in time.• Used to model the static design view or static process

view of a system.• Shows a snapshot of the system at a moment in time

and rendering a set of objects, their state, and their relationships.

Page 29: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 29

An Object Diagramc : Company

d1 : Department

name = “Sales”

d3 : Department

name = “US Sales”

p : Person

name = “Erin”employeeID = 4362title = “VP of Sales”

d2 : Department

name = “R&D”

: ContactInfomation

address = “1472 Miller St.”

object

link

attribute value

manageranonymous object

Page 30: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 30

Modeling Object Structures (steps)

• Identify the mechanism.• For each mechanism, identify classes, interfaces,

and other elements that participate in this collaboration; identify the relationships among these things.

• Consider one scenario that walks through this mechanism. Freeze that scenario at a moment in time and render each object that participate in the mechanism.

• Expose the state and attribute values of each object.• Expose the links among these objects

Page 31: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 31

Forward & Reverse Engineering

• Forward engineering an object diagram: possible but limited value.

• Reverse engineering an object diagram: very useful in debugging process.– Choose the target and walk through a scenario– Identify the set of objects that collaborate in

that context.– Expose these object’s states attribute values

and links among these objects.

Page 32: 5. Advanced Structural Modeling

Sung KimCS6359

Chapter 12 Slide 32

Summary

• Instances• Abstractions & Instances• Modeling Concrete Instances• Modeling Prototypical Instances• Object Diagram• Modeling Object Structures• Forward and Reverse Engineering