Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th...

Post on 19-Jan-2018

220 views 0 download

description

Models ‘Complete’ meaning no additional information is needed to understand the system from that perspective abstraction of some entity –understand before build –omits nonessential details examples: –architectural models to show customers –airplane scale models –storyboards of advertisements –outlines of books 3

Transcript of Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th...

Modeling

Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, 2009.Hans Van Vliet, Software Engineering: Principles and Practice, third edition, John Wiley & Sons, 2008.

What Is a Model?

• Pairs (2 minutes)

2

Models

• ‘Complete’ meaning no additional information is needed to understand the system from that perspective

• abstraction of some entity – understand before build – omits nonessential details

• examples: – architectural models to show customers – airplane scale models – storyboards of advertisements – outlines of books

3

Different Models

Several models will be considered in developing our system

• Use case model: describes requirements from the user perspective

• Design model: describes classes and objects• Implementation model: source code• Test model: test cases and test procedures

4

Investigate:

• People and machines playing some role (actors)

• Items produced, consumed, or modified• Functions performed• Modes of operation that determine

when functions are performed

5

Analysis

• All aspects of the problem domain need to be investigated.

• Decompose the problem into smaller problems until the entire problem is fully understood.

• The models that depict information, function, and behavior must be constructed in a manner that uncovers detail.

6

Note:

• "Remember that all models are wrong; the practical question is how wrong do they have to be to not be useful.";

• "Essentially, all models are wrong, but some are useful."

– George E.P. Box & Norman R. Draper, Empirical Model-Building and Response Surfaces (Wiley 1987) pp. 74 and 424. (Professor of statistics, U of Wisconsin)

7

Purposes of a Model:

• Testing a real entity before building it • Communication with customers • Visualization • Reduction of complexity

8

Operational Principles: Analysis Methods

• The information domain of a problem must be represented and understood.

• The functions that the software is to perform must be defined.

• The behavior of the software (as a consequence of external events) must be represented.

9

Modeling Views

It all comes down to these:• Objects: data• Functions: transformations of data• States: transitions controlling transformations

Functional

Data

Behavior STD ScenariosEvents

DFDFunctional decomposition

ERD

10

Data (Static) Models

• Used to understand the data and actors in a system

• Abstraction of the information needed and generated by the system

• Describes the problem domain• Helps identify, classify, and abstract the

problem

11

Function (Transformational) Models

• Used to understand the transformations that take place in the system

• Used to understand the inputs and outputs for computations

12

State (Dynamic) Models

• Used to understand states and modes of the system

• Used to specify the flow of control through the system and system components

13

Modeling

DataDictionary

Object Model - static, structural, data aspects of system

Dynamic Model - temporal, behavioral, “control” aspects of system

Functional Model – transformational, “function” aspects of system

E-RDiagram

Class Diagram

State-Transition DiagramDecision TablesCollaboration Diagram

Data-flowDiagram

14

Static Models

• Entity Relationship Models• Class Models

15

Dynamic Models

• Event trace– Show a sequence of events and

associated responses• Message sequence chart

– Enhanced event trace notation– Vertical lines are entity time lines (time

flows from top to bottom)– Horizontal lines are messages or events

16

Dynamic Models (Cont.)

• State Machines– Should remind you of FSMs from theory. – Nodes are states– Arcs are transitions

• Event (condition)/action• Instantaneous

• Statecharts: UML state machine notation

17

Functional Models

• Data Flow Diagrams – Processes– Data– Data store

• Use Cases

18

Static Models

• Pairs (10 minutes)– Read about ER diagrams PP 263-265

• What are the nodes (node types)?• What are the edges?

19

In Class: Diagram the Following

• A library has books and journals, and each can be checked out.

• A patron has a name, a UTEP ID number, an address.

• A patron can check out any number of books or journals.

• When a book or journal is checked out, it must be returned in 5 days (so we must keep track of the checkout date)

20

In Class: Static Models

• Show how you can use an ER diagram to represent – Association– Aggregation– Generalization– Composition– role names– multiplicities

21