modeling shari l. pfleeger and joanne m. atlee, software engineering: theory and practice, 4 th...
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 3TRANSCRIPT
![Page 1: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/1.jpg)
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,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/2.jpg)
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,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/3.jpg)
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,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/4.jpg)
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
![Page 5: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/5.jpg)
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
![Page 6: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/6.jpg)
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
![Page 7: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/7.jpg)
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
![Page 8: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/8.jpg)
Purposes of a Model:
• Testing a real entity before building it • Communication with customers • Visualization • Reduction of complexity
8
![Page 9: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/9.jpg)
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
![Page 10: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/10.jpg)
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
![Page 11: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/11.jpg)
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
![Page 12: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/12.jpg)
Function (Transformational) Models
• Used to understand the transformations that take place in the system
• Used to understand the inputs and outputs for computations
12
![Page 13: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/13.jpg)
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
![Page 14: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/14.jpg)
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
![Page 15: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/15.jpg)
Static Models
• Entity Relationship Models• Class Models
15
![Page 16: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/16.jpg)
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
![Page 17: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/17.jpg)
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
![Page 18: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/18.jpg)
Functional Models
• Data Flow Diagrams – Processes– Data– Data store
• Use Cases
18
![Page 19: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/19.jpg)
Static Models
• Pairs (10 minutes)– Read about ER diagrams PP 263-265
• What are the nodes (node types)?• What are the edges?
19
![Page 20: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/20.jpg)
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
![Page 21: Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition,…](https://reader036.vdocument.in/reader036/viewer/2022062601/5a4d1bd77f8b9ab0599da822/html5/thumbnails/21.jpg)
In Class: Static Models
• Show how you can use an ER diagram to represent – Association– Aggregation– Generalization– Composition– role names– multiplicities
21