cs 4310: software engineering lecture 8 object-oriented analysis

22
CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

Upload: benjamin-conley

Post on 17-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

CS 4310: Software Engineering

Lecture 8

Object-Oriented Analysis

Page 2: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

2

The Unified Modeling Language

UML is a standard language for modeling software systems.

• Serves as a bridge between the requirements specification and the implementation.

• Provides a means to specify and document the design of a software system.

• Is process and programming language independent.

• Is particularly suited to object-oriented program development.

Page 3: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

3

Notation: Classes

Window

originsize

open()close()move()display()

name

attributes

operations

A class is a description of a set of objects that share the same attributes, operations, relationships and semantics.

Page 4: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

4

Notation: Interface

An interface is a collection of operations that specify a service of a class or component, i.e., the externally visible behavior of that element.

ISpelling

Page 5: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

5

Notation: Collaboration & Use Case

Place order

A use case is a description of a set of sequence of actions that a system performs that yields an observable result.

Chain of responsibility

A collaboration defines an interaction, i.e., a society of roles and other elements that work together to provide some cooperative behavior.

Page 6: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

6

Notation: Active Class

EventManager

eventlist

suspend()flush()

An active class is a class whose objects own one or more processes or threads and therefore can initiate control activity.

Page 7: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

7

Notation: Component & Node

orderform.java

A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces.

Server

A node is a physical element that exists at run time and represents a computational resource.

Page 8: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

8

Notation: Behavioral Things:Messages & States

display

An interaction is a behavior that comprises a set of messages exchanged among a set of objects within a particular context to accomplish a specific purpose.

Waiting

A state machine is a behavior that specifies the sequence of states an object or an interaction goes through during its lifetime in response to events.

Page 9: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

9

Notation: Grouping and Annotation

A package is a general-purpose mechanism for organizing elements into groups.

Business rules

return copy of self

A note is a symbol for rendering constraints and comments attached to an element or a collection of elements.

Page 10: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

10

Notation: Relationships

A dependency is a semantic relationship between two things in which a change to one may effect the semantics of the other.

0..1 *

employer employee

An association is a structural relationship that describes a set of links, a link being a connection among objects.

Page 11: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

11

Notation: Relationships (continued)

A generalization is a specialization/generalization relationship is which objects of the specialized element (child) are substitutable for objects of the generalized element (parent).

child parent

A realization is a semantic relationship between classifiers, wherein one classifier specifies a contract that another classifier guarantees to carry out.

Page 12: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

12

Diagrams in UML

A diagram is the graphical representation of a set of elements, usually rendered as a connected graph of vertices (things) and arcs (relationships).

• Class diagram shows a set of classes, interfaces, and collaborations with their relationships.

• Object diagram shows a set of objects and their relationships.

• Use case diagram shows a set of use cases and actors (a special kind of class) and their relationships.

Page 13: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

13

Diagrams in UML (continued)

• Interaction diagram shows an interaction, consisting of a set of objects and the relationships, including the messages that may be dispatched among them.

=> A sequence diagram emphasizes the time ordering.

=> A collaboration diagram emphasizes the structural organization of the objects that send and receive messages.

Page 14: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

14

Diagrams in UML (continued)

• Statechart diagram shows a state machine consisting of states, transitions, events, and activities.

• Activity diagram is a statechart diagram that shows the flow from activity to activity within a system.

• Component diagram shows the organization and dependencies among a set of components.

• Deployment diagram shows the configuration of processing nodes and the components that live on them.

Page 15: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

15

The HelloWorld Example

HelloWorld

paint()

class

name

operations

Page 16: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

16

Abstraction for HelloWorld

HelloWorld

paint() g.drawString ("HelloWorld", 0, 10)"

class

name

operations

annotation

Page 17: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

17

The "Hello, World" Example

import java.awt.Graphics;class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString ("Hello, World!", 10, 10); }}

Page 18: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

18

Class Diagram

Applet

HelloWorld

paint() Graphics

generalization

dependency

Page 19: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

19

Class Inheritance Diagram

Object

Component

Container

Panel

Applet

HelloWorld

ImageObserver

interface

Page 20: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

20

Packaging Classes

applet

awt

lang

HelloWorld

java

Graphics

package

Page 21: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

21

Notation for Classes and Objects

Classes Objects

AnyClass

attribute1attribute2

operation1()operation2()

AnyClass

or

anObject:AnyClass

:AnyClass

anObject

The names of objects are underlined.

or

or

Page 22: CS 4310: Software Engineering Lecture 8 Object-Oriented Analysis

22

Project Work

• Continue to work in your teams to create your Analysis Document.

• Next, more on UML and OO Analysis and Design.