24
illon: CSE470: Object Modeling Requirements Model Focus on WHAT, not HOW Analyst needs to understand the problem » How does software fit into overall systems? » What are the customer’s concerns? » How will the software solve the customer’s problems Serves as the contract between the customer and the developer Starting point for design

Requirements Model

  • Upload
    holt

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Focus on WHAT, not HOW Analyst needs to understand the problem How does software fit into overall systems? What are the customer’s concerns? How will the software solve the customer’s problems Serves as the contract between the customer and the developer Starting point for design. - PowerPoint PPT Presentation

Citation preview

Page 1: Requirements Model

Dillon: CSE470: Object Modeling 1

Requirements Model

Focus on WHAT, not HOW Analyst needs to understand the problem

» How does software fit into overall systems?» What are the customer’s concerns?» How will the software solve the customer’s

problems

Serves as the contract between the customer and the developer

Starting point for design

Page 2: Requirements Model

Dillon: CSE470: Object Modeling 2

Getting Started-Understanding the Customer

Interview customer Understand the

current process» Flow of information» Form of information

Decompose the problem

Describe the problem in the customer’s terminology

Have the customer review, correct, and refine the description of the problem

Page 3: Requirements Model

Dillon: CSE470: Object Modeling 3

Propose a Conceptual “Solution”

May model the current approach or propose a completely new approach

Present alternative approaches» not alternative implementations, but

alternative conceptual approaches Use UI prototype to help clarify issues Remember importance of maintainability

» Plan for extensibility

Page 4: Requirements Model

Dillon: CSE470: Object Modeling 4

Purpose of Modeling

Testing a physical entity before building

Communication with customer

Visualization

Reduction of complexity

Better understanding of the problem

Page 5: Requirements Model

Dillon: CSE470: Object Modeling 5

Early Modeling Notations

Template-based natural languages» SREM

Boxes and arrows depicting data and control flow» SADT, IDEF» Statecharts

Data Structures» Jackson Design Notation

Page 6: Requirements Model

Dillon: CSE470: Object Modeling 6

OO was the catalyst for newOO modeling techniques

Many different contenders» Grady Booch, Rational Software» Jim Rumbaugh, GE, OMT» Ivar Jacobsen, Ericsson, use cases

Unified Modeling Language (UML)» Combines Booch, Rumbaugh, Jacobsen’s

techniques» PL/1 of modeling languages

Page 7: Requirements Model

Dillon: CSE470: Object Modeling 7

Object Modeling Technique (OMT)

Three complimentary views of the system

Object model (WHAT)» Static, structural view of the system» Describes objects in the system and their

relationships

Page 8: Requirements Model

Dillon: CSE470: Object Modeling 8

Object Modeling Technique (OMT)

Dynamic model (WHEN)» Temporal, behavioral, control view of

system» Interaction among objects

Functional model (HOW)» Transformational, function view of the system» Describes the transformation of data

Page 9: Requirements Model

Dillon: CSE470: Object Modeling 9

Object Model

Object - a concept, abstraction, or thing» Promote understanding of problem domain» Object is distinguishable and has identity

Class - group of objects with » similar properties,» common behavior» common relationships to other objects» common semantics

Page 10: Requirements Model

Dillon: CSE470: Object Modeling 10

Object Model (cont.)

An object is an instance of a class

Attribute - a data value associated with

an object

» pure value, not an object

Operation - a function or transformation

that may be applied to or by an object

Page 11: Requirements Model

Dillon: CSE470: Object Modeling 11

Object Model (cont.)

Class Notation

Class Name

attributeattribute: type = initial value

operation(arg-list): result-type

. . .

. . .

Attributes and operations shown depends on desired level of detail

Page 12: Requirements Model

Dillon: CSE470: Object Modeling 12

Example: WEB Class

Synchronous instructional web tool

Use the Web Browser as sophisticated

data display

Group-based communication model

Reliable multi-cast communication

protocol

Page 13: Requirements Model

Dillon: CSE470: Object Modeling 13

WEB Class Components

Browser synchronization

» Web_Instructor– Detect changes in the instructor browser– Format information into resources– Send resources (reliably)

» Web_Student– Receive and unpack resources– Display resources through the web browser

Page 14: Requirements Model

Dillon: CSE470: Object Modeling 14

WEB Class Components (cont.)

Real audio stream» Audio connection from the instructor to the

students

Live connection» Chat tool» Feedback mechanism from the students to

the instructor

Page 15: Requirements Model

Dillon: CSE470: Object Modeling 15

Example Class Definitions

Web_Student

name: string

Web_Instructor

name: string

Helper_App

server_name: stringserver_mime: stringserver_path: string

start_servicesend_file(filename,URL)spawn_viewer(appname,filename)

Etc. ...

Page 16: Requirements Model

Dillon: CSE470: Object Modeling 16

Object Model: Associations

Means for establishing relationships among classes

» group of “links” with common structure and

semantics– physical or conceptual connection between object

instances

» inherently bi-directional

» may be binary, ternary, or higher order

Page 17: Requirements Model

Dillon: CSE470: Object Modeling 17

Example: Association

Mreceiver MsenderCommunicates with

Page 18: Requirements Model

Dillon: CSE470: Object Modeling 18

Object Model: Aggregation

“Part-of” relationship» associates an object representing an

assembly with the objects representing its components

Special form of association» Transitive» Antisymmetric

Page 19: Requirements Model

Dillon: CSE470: Object Modeling 19

Example: Aggregation

Web_Student

Browser_SlaveBrowser_Wrapper

Mreceiver

Page 20: Requirements Model

Dillon: CSE470: Object Modeling 20

Object Model: Generalization

“Is-a” relationship between classes

» Subclass(es) refine a superclass

» Superclass generalizes its subclass(es)

» Subclass(es) inherit attributes and

operations of the superclass

» Transitive association

Page 21: Requirements Model

Dillon: CSE470: Object Modeling 21

Example: Generalization

Web_User

name: string

Web_Student Web_Instructor

Page 22: Requirements Model

Dillon: CSE470: Object Modeling 22

Object Model: Multiplicities

Indication how many instances of one class may relate to an instance of another class

3

1+

2-6

Zero or more

One or more

Exactly three

One or more

From 2 to 6

Page 23: Requirements Model

Dillon: CSE470: Object Modeling 23

Example: Web Class Object Model

Browser_Wrapper Browser_ListenerHelper_App

Msender ViewerConfig

Web_Instructor

Mreceiver

Browser_Slave

Web_Student

Web_User

Page 24: Requirements Model

Dillon: CSE470: Object Modeling 24

Object Model: Creation Tips

Understand the problem

Keep it simple (initially)

Choose good class

names

Look for binary

associations

Ignore multiplicities

(initially)

Do not feel you have to

use all the constructs

Concentrate on WHAT

Document, document,

document!

Refine until complete

and correct