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

Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Embed Size (px)

Citation preview

Page 1: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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.

Page 2: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

What Is a Model?

• Pairs (2 minutes)

2

Page 3: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

Page 4: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Why Build a Model?

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

4

Page 5: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

What Types and How Many?

• No consensus but multiple models of different types, e.g., 4+1 view model of S/W architecture1

5

Logical view Development view

Physical viewProcess view

Scenarios

1 P. Kruchten. The 4+1 view model of architecture, IEEE Software, 12(6):42-50, November 1995.

Page 6: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

4+1 View Model

• Use case view– functionality of system from outside perspective, e.g., in UML use

case diagram• Logical view

– description of system's parts, e.g., in UML class, object, state machine, and interaction diagrams

• Process view– description of process within system, e.g., in UML activity diagram

• Development view– organization of system's part into modules and components, e.g.,

in UML package and component diagrams• Physical view

– system's parts into real-world entities, e.g., in UML deployment diagram

6

Page 7: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

7

Page 8: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Investigate:

• People and machines playing some role (actors)

• Items produced, consumed, or modified

• Functions performed

• Modes of operation that determine when functions are performed

8

Page 9: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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.

9

Page 10: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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)

10

Page 11: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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.

11

Page 12: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

12

Page 13: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

13

Page 14: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Function (Transformational) Models

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

• Used to understand the inputs and outputs for computations

14

Page 15: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

15

Page 16: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

16

Page 17: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Static Models

• Entity Relationship Models

• Class Models

17

Page 18: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

18

Page 19: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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

19

Page 20: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Functional Models

• Data Flow Diagrams – Processes– Data– Data store

• Use Cases

20

Page 21: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

Static Models

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

• What are the nodes (node types)?

• What are the edges?

21

Page 22: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

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)

22

Page 23: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, 2009. Hans Van Vliet, Software

In Class: Static Models

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

23