RE Lecure 5

advertisement
Modelling II
1
Objects
• Object – direct relationship with the real
world
• Object
– memory -> data -> Attributes
– processes -> Operations -> Messages
• Object - Organization – Hierarchy
– aggregation
– generalization
2
Object Orientation
• Most famous:
– Booch
– OMT
– Jacobson
3
UML
Birth
• Several methods and techniques
for OO, with many common
aspects but using different
notations
• Difficult to learn, to apply, to
build and to use tools
• Diferences among different
approaches (authors)
There was the
need for a
standard
notation
4
UML
• “Unified Method”
• Grady Booch e Jim Rumbaugh
• First presented at OOPSLA’95
• Rational Software
• Grady Booch, Jim Rumbaugh e Ivar Jacobson
• Rational Rose CASE tool
5
UML
It is a Modelling language not a method !
• A method consists of notation language +
process
• The proposed process is called Objectory
• We can use UML regardless the process we
use
6
UML
Basic Representation:
• Static Model
– ERD evolution
• Internal Dynamic Model
– Data Flow
– State Machines
• External Dynamic Model
– use cases
– Languages for interconecting objects
7
UML - Diagrams
• Use Case Diagrams
• Use Case Diagrams
– Actors and their connections with
the system
• Textual description for the
Use Case
• Static Structure Diagrams
• Class Diagram
– Static Structure for the system
classes
• Object Diagram
– Simplify the class diagram
8
UML - Diagrams
• State Diagram
• State Diagram
– Possible states an object may have
and events that cause state change
– Activity Diagram
– Sequential flow of activities
9
UML - Diagrams
• Interaction Diagrams • Sequence Diagram
– Dynamic collaboration expressed as
messages exchanges among objects triggered
by a function or a sequence in time
• Collaboration Diagram
– Dynamic Collaboration using interaction
among objects (context)
• Implementation Diagrams
•
Component Diagram
– Physical structure of the code in the form of
code components
•
Distribution Diagram
– Hardware and Software Physical
Architecture
10
UML - Diagrams
Requirements
Implementation
Design
States
Sequence
Distribution
Use Cases
Classes
Colaboratio
n
Activity
(work flow, use
cases)
Component
s
Activity
(object behavior,
operation algorithms)
11
Use Case
<<extend>>
Print Receipt
Saleman
Make a Sale
Finance System
12
Use Case
• An Use Case performs a broader aspect
of the product functionality:
– Must produce one or more benefits for the
client or users
– represent:
• User interaction
• User manual auxiliar
• Test cases
Filho, W.P.P em “Engenharia de Software: Fundamentos, Métodos e Padrões”
13
Use Case
• Textual Part
– Use Case << name>>
• pre-condition
• Main flow
• sub-flow<<name>>
• Alternative flow
– pre-condition
– steps
14
Use Cases
Exemplo:
Salesman
Make a sale
Finance System
Stock Manager
Manage stock Manually
Open Cash Register
Manager
Close cash register
15
Use Cases
• Example:
– Use Case << Make a Sale>>
• pre-conditions: Every Product on sale must have been previously
registered in the system. The system must be in the Sale mode
• Main flow
– Salesman start the sale.
– The System generates a code for the sale operation
– For each item to be sold call the sub-flow Register
– Salesman register form of payment
– Salesman finishes sale
– For each item call the sub-flow Print Receipt Line
Filho, W.P.P em “Engenharia de Software: Fundamentos, Métodos e Padrões”16
Use Cases
• Identifying actors;
–
–
–
–
–
•
Who is interested in the requirements
Who will benefit from the product;
Who will give information to the software;
Who will use the software;
Who will remove information from the software.
Identifying use cases:
– What are the actors’ tasks ;
– Which information each actor creates, stores, consults, changes
or removes;
– Which information each use case creates,consults, changes or
removes.
17
Use Cases
• Determining use case flow
–
–
–
–
When and how a use cases starts.
How the use case interacts with the actors.
Standard Sequences (steps) for a use case.
Exceptions Sequences and alternative sequences for a use case.
18
Requirements and Use Cases
• Use cases are requirements. If written
carefully they can be seen as requirements
per se.
• Use cases are not ALL requirements. They
don’t detail external interfaces, data format,
business rules NFR…
19
Class Diagrams
• Describe system objects and their static
relations
• Objects can be part of the real world or
conceptual entities
• Objects are connected to other objects
through relationships (association,
agregation…)
20
Class/Object
• Class:
• Describe a set of objects that share the same
properties (Attributes), behavior (operation),
relationships with other objects and semantics
• Object:
• An Object is an instance or occurrence of a class
21
Class / Object
Properties:
Fuel capicity
Km/galon
availability
km
instanciation
car A
Behavior:
travel
refuel
instanciation
car B
22
Class
name
Car
FuelCapacity: Integer
kmpergalon: Real
availability: Real
Km: Integer
attributes
travel (Kms: Real)
Refuel (quantity: Real)
operations
23
Class
• Attributes
• Examples:
Car
- FuelCapcity: Integer
- Kmpergalon: Real
- availability: Real = 0
- km: Real = 0
rj5015: Car
FuelCapacity: 200
kmpergalon: 40
Availability: 40
km: 1400
Object with Values
...
Class whit attributes
24
• Inheritance
Inheritance
• A subclass inherits attributes, operations, state
diagram and associations from a superclass
• Inherited properties may be reused from the
superclass or redefined in the subclass
• New properties can be added to the subclass
• Can be
• Simple: only one superclass
• Multiple: more than one superclass
25
Inheritance
• Multiple
• A class inherits attributes, operations and association
from multiple classes
• Offers a greater modelling power but leads to a
greater complexity
26
Example
• Multiple
Vehicle
water
land
Car
Amphibian
Boat
27
Inheritance
Employee
YeartoDate: Real
calculatePay() {abstract}
HourBasis
MonthlyBasis
Normalhours: Real
ExtraHours: Real
Normalhours: Real
ExtraHours: Real
calculatePay()
calculatePay()
28
Class Schema
• Example: Company
Agregation
Manager
s
0..N
Company
1
Association
Class
0..N
Project
Employee
Generalization
HourBasis
Employee
schedule
MonthlyBasis
29
Problems with OO
• Disadvantages (Jackson):
– The idea of objects comes from programming
languages and it is not suitable to most of the
individuals in a real worlds.
• When have someone sent a message to the pay
check?
• When have a doctor sent a message to Patient’s
Record?
30
Communication
• It is necessary to have a good
communication between user/stakeholder
and developers
Scenarios
Cenários
Problemdo
Domain
Domínio
problema
Anlysis
Is my understanding (vision)
correct?
Compreender
Understand the
modelo
Models
31
Scenarios
• Easy to understand (written using the problem
language)
• Help to unify criteria
• Stimulate thinking
• Help with training
• Help on tracking/traceability
• Help identifying Non-Functional Requirements
Scenarios are situations
32
Scenarios
Real World
Mundo
Real
Universe of Discourse
Situations
List of Situations
33
Scenarios
• Situation’s Characteristics
– Purpose – A situation deals with the satisfaction of a goal.
– Actors – A situation encompass a certain and identifiable numbers of
actors (people or devices within organizations).
– Resources – Elements that are necessary in one particular situation.
– Time – represent a specific moment.
– Place – Situations take place within a geographical context.
– Constraints – There might be pre-conditions to a situation to happen.
– Independent – need to be understood alone.
– Inter-related – Are related to other situations, although still independent.
– Concrete – Are anchored in reality.
– Alternatives – May lead to alternative actions.
34
Write Scenarios
• Describe situations of the macro system
• Describe situations and their relationship
with the system-to-be
• May be used to describe interaction
between system components
• Use a semi-structured natural language
35
Why Semi-Structured?
• Avoid confusion
• Provide an homogeneous description style
• Works as a reminder of the several aspects
that might be considered within a scenario
• Facilitates to validate it with the
users/stakeholders
36
Scenarios
37
Scenarios
•
•
•
•
•
•
Title: Store clerk checks client’s registration
Goal : Verify if information on client’s registration is correct
Context: Client hand over client’s registration and show a photo id
Actors: Store clerk, Client.
Resources: photo id, client’s registration
Episodes
– Store Clerk verifies id number on client’s registration against the one in
the photo id
– Constraint: id number must comply with standards
– Store Clerk verifies address and phone number calling the number in
client’s registration
38
Identifying Scenarios
• List Situations
– 1. Is there a goal? Is it general (abstract)
enough)? Are there different outputs or is it a
sole case?
– 2. Who is involved? Are there other important
artifacts or important structures?
– 3. Are there any information or physical
elements that are important to this situation?
– 4. Organize identified situations in a list.
39
Fill in the scenarios
• Don’t Guess !!! Stick to what you know and
can validate
• Use the application vocabulary (LEL)
• Using the scenario grammar, fill in the
candidate scenarios (pair working with
clients is always best)
40
• Title
Notation
• [ Sentence | ( [ Actor | Resource ] + Verb +
Predicate ) ]
• Example: Store Clerk checks client’s registration
• Objective
• [ [ Subject ] + Verb + Predicate ]]
• Example:
• Verify if information on client’s registration is
correct
Where:
+ - composition
{x} – zero or more occurrences of x
( ) - group
| - or
[ ] - optional
41
Notation
• Context
– The context is described detailing time, place
and pre-conditions. At least one of them should
appear
“Client hands over client’s registration and show a photo
id “
42
Notation
• Constraints on Context
– local is
Phrase + {Constraint}
– Time is
Phrase + {Constraint}
– Pre-condition is
• [Subject| Actor| Resource] + Verb + Predicate +
{Restriction}
43
Notation
• Resource
– Relevant Physical elements or information that
should be available to the scenario
• [ Substantive + {Constraint} ]
44
Notation
• Episodes
– Main course of action
– Includes variations and alternatives
– Exceptions may happen, enforcing the presence
of obstacles to the goals (objectives)
– Exceptions may be simple actions but can also
be other scenarios
SUB SCENARIO
45
Notation
• Episodes
– There are 3 types of episodes
• Simple – needed to complete the scenario
• Conditionals – depend on essential conditions (If ..
Then)
• Optional – May happen or not depending on the
course of action
46
Style
•
•
•
•
Short phrases
Try to avoid more than one verb per phrase
The goal must be concrete and precise
At least one of the components for the
context must be filled
• Resources must be those directly involved
in the episodes. Avoid trivial things
47
Scenarios
•
•
•
Title: Add Book Exemplar to library collection
Goal: Expand library collection
Context: Number of Book exemplars available on library collection is not
sufficient
• There is enough physical space to store new book exemplar
• Book exemplar can be bought or donated
• Library clerk is always present
• Library Management System is working
•
•
•
•
Actors:
Library clerks
Resources: Book Exemplar, book, library collection, library management
system
Episodes
1
Library clerk gets book exemplar to be added to library collection
•
2.
If book data is not yet filed in the library management system, library
clerk must file book in library collection
•
3
Library clerk reserves a physical space to place book exemplar
according to information retrieved from the library management system,
4.
Library Clerk places book exemplar in the correct physical space
•
48
Organization
• Lexicon --> hypertext
• Scenarios --> Relations (complement, pre-condition,
equivalent, exception, sub-set, possible, precedence,
inclusion).
• Sentences (numerical itemization, chapters)
49
Organization
Scenarios
Emit order
form
Include
client
Change
client
information
Fill order
form
Cancel
form
Exclude
client
Ask for
quote
Change
quote
Emit
invoice
Calculate
quote
LEGEND
Complement
Pre condition
Equivalence
exception
Receive
payments
Approve
quote
50
Storage
• To be helpful, scenarios must be organized in such
a way that makes it easy to find them when needed
• We need
– Classification,
– Indexing and
– Presentation.
• Facet schemes (Reuse) : Functional Facets
(function, object, way), Non-Functional Facet
(type of the system, functional area, context)
51
Lexicon
• Identify symbols
– Apply elicitation techniques
– list
• Classify symbols
• Describe symbols
– Apply elicitation techniques
– Follow rules
– Gather inputs
• Verify
• Validate
52
Scenarios
•
Derivate
– identify actors
– identify scenarios
– create candidates
•
Describe
– Use representation
– Follow tips
– gather scenarios
•
Organize
– reorganize
– Define
– integrate
•
Verify
•
Validate
53
Scenarios
54
“Tips”
•
•
•
•
•
•
•
•
•
•
•
Scenarios
Short phrases
Maximize the use of LEL symbols
Use only one verb per phrase
Actors and resources must be LEL symbols
The objective must be concrete and precise
The context must have at least one item( place, time, pre-condition)
Resources must list all the resources used in the episodes, except for
those that will be used in sub-scenario
Actors must list all people/software involved in the episodes except for
those used in sub-scenarios
Each episode verb should be punctual
Episodes must happen within the limits/constraints imposed by the
context
Avoid using verbs such as “could”, “control”, “must”
55
Requirement Sentences
• Derivate from scenarios
• Classify by type
• Number them (organization)
56
Lexicon and Glossary
• +
–
–
–
–
Less ambiguity
Avoid “misunderstandings”
Increase specification accuracy
Improve communication
• Con
– Time consuming
– Needs validation
57
Download