SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
Software and Services research group (S2)
Department of Computer Science, Faculty of Sciences
Vrije Universiteit Amsterdam
VRIJE
UNIVERSITEIT
AMSTERDAM
Requirements engineering with UML
Software modeling (401016) – 2016/2017
Ivano Malavolta
i.malavolta@vu.nl
VRIJE
UNIVERSITEIT
AMSTERDAM
Announcement
The template for Deliverable 1 will be available today on
BlackBoard!
2
VRIJE
UNIVERSITEIT
AMSTERDAM
Roadmap
• Introduction to UML
• What is UML?
• Main characteristics of UML
• UML diagrams
• Requirement engineering
• Use case diagrams
3
VRIJE
UNIVERSITEIT
AMSTERDAM
What is UML?
• In the 80s there were multiple OO approaches
• each approach had its own notation
• then Rational Inc. (now IBM)
4
Booch notation Jacobson‘s OOSE Rumbaugh's Technique
VRIJE
UNIVERSITEIT
AMSTERDAM
What is UML?
• UML = Unified Modeling Language
• De facto standard software design language
• Developed by OMG
• A “Swiss Army Knife” of notations
5
VRIJE
UNIVERSITEIT
AMSTERDAM
Why UML in this course?
The most used language for modeling software
6
34 job postings requiring UML in Amsterdam
(as of last week)
VRIJE
UNIVERSITEIT
AMSTERDAM
Who uses UML?
7
VRIJE
UNIVERSITEIT
AMSTERDAM
Main characteristics of UML
• It is not tied to any development process
• à waterfall, agile, whatever…
• Can be used across the whole life cycle
• promotes iterative refinement of models
• General purpose
• it can be used for modeling a mobile app, but also a satellite
• It has different representations:
• graphical
• textual
• others…
8
VRIJE
UNIVERSITEIT
AMSTERDAM
Main characteristics of UML
• It is comprehensive
• all parts of a system can be described using UML
• It is scalable
• you can zoom in with additional details when needed
• Originally intended for descriptive models
• Now it also supports prescriptive models
• models execution
• code generation
• but more importantly…
9
VRIJE
UNIVERSITEIT
AMSTERDAM
Main characteristics of UML
UML is a formal modeling language
à all its concepts have a well-defined meaning
10
Modeling with code Informal model
UML model
VRIJE
UNIVERSITEIT
AMSTERDAM
Where are the “meanings” of UML concepts?
The UML superstructure
640 pages like this! à
Don’t read it, use it only as a
manual in case of doubts
http://www.omg.org/spec
/UML/2.5/
11
VRIJE
UNIVERSITEIT
AMSTERDAM
UML diagrams
A UML model is represented graphically by diagrams
12
VRIJE
UNIVERSITEIT
AMSTERDAM
UML structure diagrams
• Emphasize the static
description of the elements
of the system being modeled
• ex: student submission
system à
• Structural elements may
have an associated behavior
13
VRIJE
UNIVERSITEIT
AMSTERDAM
UML behavioural diagrams
• Behavior = the direct
consequences of an action of at
least one object
• It affects how the states of
objects change over time
• Behavior can either be
• specified through the actions
of a single object
•
• result from interactions
between multiple objects à
14
Submission
VRIJE
UNIVERSITEIT
AMSTERDAM
Which diagrams you will see in this course
• Use case diagram
• to specify the basic functionality of a software system
• aka requirements
• Class diagram
• to define which objects or which classes are involved in the
realization of this functionality
• State machine diagram
• to define the intra-object behavior
• Sequence diagram
• specifies the inter-object behavior and communication
15
In your project you can use additional UML diagrams
à BONUS in the final grade
VRIJE
UNIVERSITEIT
AMSTERDAM
Models != diagrams
• A UML model contains everything related to your system
• it is complete
• Diagrams are just “windows” on your model
• technically they can be considered as projections of the
same model
• a particular diagram will show some parts of your model but
not necessarily everything (recall abstraction?)
16
represented
by
System Model
Class diagram
Sequence
diagram
State machine
diagram
VRIJE
UNIVERSITEIT
AMSTERDAM
Models and diagrams in Papyrus
17
Diagram creation
VRIJE
UNIVERSITEIT
AMSTERDAM
Models and diagrams in Papyrus
18The model
The diagrams
VRIJE
UNIVERSITEIT
AMSTERDAM
Requirements engineering
19
VRIJE
UNIVERSITEIT
AMSTERDAM
Requirements engineering
• The process of establishing
• the services that a customer requires from a system
• the constraints under which it operates and is developed
• A requirement may range between
• a high-level abstract statement of a service
• Example: all the robots must avoid obstacles autonomously
• a detailed mathematical functional specification
• Example: each robot must communicate its position to the
central station every 1 second
20
VRIJE
UNIVERSITEIT
AMSTERDAM
Functional and non-functional requirements
Functional requirements
a. Services the system should provide
b. How the system should react to particular inputs
c. How the system should behave in particular situations
d. May state what the system should not do
Non-functional requirements
a. Constraints on the services or functions offered by the system
I. example: timing constraints, constraints on the development
process, standards, etc.
b. Often apply to the system as a whole rather than individual
features or services
21
VRIJE
UNIVERSITEIT
AMSTERDAM
Functional requirements
• Precise
• Ambiguous requirements may be interpreted in different
ways by developers and users à problems
• Complete
• They should include descriptions of ALL facilities required
• Consistent
• There should be no conflicts or contradictions in the
descriptions of the system facilities
• In UML they are represented using Use case diagrams
22
VRIJE
UNIVERSITEIT
AMSTERDAM
Non-functional requirements
• System properties and constraints
• e.g. reliability, response time and storage requirements
• Constraints are I/O device capability, system
representations, etc.
• Non-functional requirements may be more critical than
functional requirements
• e.g., safety requirements
• Non-functional requirements may affect the overall
architecture of a system rather than the individual
components
• For example, to ensure that performance requirements are
met, you may have to organize your system to minimize
communications between robots
23
VRIJE
UNIVERSITEIT
AMSTERDAM
Types of non-functional requirements
24
Performance
requirements
Space
requirements
Usability
requirements
Efficiency
requirements
Dependability
requirements
Security
requirements
Regulatory
requirements
Ethical
requirements
Legislative
requirements
Operational
requirements
Development
requirements
Environmental
requirements
Safety/security
requirements
Accounting
requirements
Product
requirements
Organizational
requirements
External
requirements
Non-functional
requirements
VRIJE
UNIVERSITEIT
AMSTERDAM
Robotic systems MUST be dependable
25
VRIJE
UNIVERSITEIT
AMSTERDAM
Ways of writing requirements specifications
26
Notation Description
Natural language The requirements are written using numbered sentences in natural language.
Each sentence should express one requirement.
Structured natural
language
The requirements are written in natural language on a standard form or
template. Each field provides information about an aspect of the requirement.
Design description
languages
This approach uses a language like a programming language, but with more
abstract features to specify the requirements by defining an operational model
of the system. This approach is now rarely used although it can be useful for
interface specifications.
Graphical
notations
Graphical models, supplemented by text annotations, are used to define the
functional requirements for the system; UML use case and sequence diagrams
are commonly used.
Mathematical
specifications
These notations are based on mathematical concepts such as finite-state
machines or sets. Although these unambiguous specifications can reduce the
ambiguity in a requirements document, most customers don’t understand a
formal specification. They cannot check that it represents what they want and
are reluctant to accept it as a system contract
VRIJE
UNIVERSITEIT
AMSTERDAM
Natural language specification
• Requirements are written as natural language sentences
• Used for writing requirements because it is expressive,
intuitive and universal.
• These requirements can be understood by users and
customers
• Guidelines:
• Invent a standard format and use it for all requirements
• Use language in a consistent way
• Use “shall” for mandatory requirements, “should” for desirable
requirements
• Use text highlighting to identify key parts of the requirement
• Avoid the use of computer jargon
• Include an explanation (rationale) of why a requirement is
necessary
27
VRIJE
UNIVERSITEIT
AMSTERDAM
Example
28
R1. The system shall measure the blood sugar and deliver insulin, if required,
every 10 minutes. (Changes in blood sugar are relatively slow so more
frequent measurement is unnecessary; less frequent measurement could lead
to unnecessarily high sugar levels.)
R2. The system shall run a self-test routine every minute with the conditions to
be tested and the associated actions defined in Table 1. (A self-test routine can
discover hardware and software problems and alert the user to the fact the
normal operation may be impossible.)
VRIJE
UNIVERSITEIT
AMSTERDAM
Requirement validation checklist
29
• Validity
• Does the system provide the functions which best support
the customer’s needs?
• Consistency
• Are there any requirements conflicts?
• Completeness
• Are all functions required by the customer included?
• Realism
• Can the requirements be implemented given available
budget and technology
• Verifiability
• Can the requirements be checked?
I will use it when grading your project
VRIJE
UNIVERSITEIT
AMSTERDAM
Use case diagrams
30
VRIJE
UNIVERSITEIT
AMSTERDAM
Contents
• Introduction
• Use cases
• Actors
• Relationships between use cases and actors
• Relationships between use cases
• Relationships between actors
• Description of use cases
• Best practices
• Typical errors
• Notation elements
31
VRIJE
UNIVERSITEIT
AMSTERDAM
Introduction
Use case diagrams express the expectations of the
customers/stakeholders
§ essential for a detailed design
The use case diagram is used during the entire analysis and
design process
We can use a use case diagram to answer the following
questions:
§ What is being described? (The system)
§ Who interacts with the system? (The actors)
§ What can the actors do? (The use cases)
32
VRIJE
UNIVERSITEIT
AMSTERDAM
Example: Student Administration System
System
(what is being described?)
§ Student administration system
Actors
(who interacts with the system?)
§ Professor
Use cases
(what can the actors do?)
§ Query student data
§ Issue certificate
§ Announce exam
VRIJE
UNIVERSITEIT
AMSTERDAM
Use Case
• Describes functionality expected from the system under
development
• Provides tangible benefit for one or more actors that
communicate with this use case
• Set of all use cases describes the functionality that a system
shall provide
• Alternative notations:
VRIJE
UNIVERSITEIT
AMSTERDAM
Actor (1/3)
Actors interact with the system
§ by using use cases,
i.e., the actors initiate the execution of use cases
§ by being used by use cases,
i.e., the actors provide functionality for the execution of use
cases.
Actors represent roles that users adopt
§ Specific users can adopt and set aside multiple roles
simultaneously
Actors are not part of the system, i.e., they are outside of the
system boundaries
Alternative notations:
VRIJE
UNIVERSITEIT
AMSTERDAM
Actor (2/3)
Usually user data is also administered within the system. This
data is modeled within the system in the form of objects and
classes.
Example: actor Assistant
§ The actor Assistant interacts with the system Laboratory
Assignment by using it
§ The class Assistant describes objects representing user data
(e.g., name, ssNr, …).
VRIJE
UNIVERSITEIT
AMSTERDAM
Actor (3/3)
Human
§ E.g., Student, Professor
Non-human
§ E.g., E-Mail Server
Primary: has the main benefit of the execution of the use case
Secondary: receives no direct benefit
Active: initiates the execution of the use case
Passive: provides functionality for the execution of the use case
Examples:
8
Non-human
Secondary
Passive
Human
Primary
Active
Human
Primary
Active
Human
Secondary
Active
VRIJE
UNIVERSITEIT
AMSTERDAM
Relationships between Use Cases and Actors
• Actors are connected with use cases via solid lines
(associations)
• Every actor must communicate with at least one use case
• An association is always binary
• Multiplicities may be specified
VRIJE
UNIVERSITEIT
AMSTERDAM
The behavior of one use case (included use case) is ALWAYS
integrated in the behavior of another use case (base use case)
Example:
Relationships between Use Cases
«include» - Relationship
Base use case
requires the behavior of the included use
case to be able to offer its functionality
Included use case
may be executed on its own
VRIJE
UNIVERSITEIT
AMSTERDAM
Relationships between Use Cases
«extend» - Relationship
• The behavior of one use case (extending use case) may be
integrated in the behavior of another use case (base use case)
but does not have to
• Both use cases may also be executed independently of each
other
• A decides if B is executed
• Extension points define at which point the behavior is
integrated
• Conditions define under which circumstances the behavior is
integrated
Base use case
Extending use case
VRIJE
UNIVERSITEIT
AMSTERDAM
Relationships between Use Cases
«extend» - Relationship: Extension Points
• Extension points are written directly within the use case
• Specification of multiple extension points is possible
• Example:
VRIJE
UNIVERSITEIT
AMSTERDAM
Relationships between Use Cases
Generalization of Use Cases
Use case A generalizes use case B.
B inherits the behavior of A and may
either extend or overwrite it.
B also inherits all relationships from A.
B adopts the basic functionality of A but
decides itself what part of A is executed or changed.
A may be labeled {abstract}
§ Cannot be executed directly
§ Only B is executable
Example:
Base use case
Sub use case
VRIJE
UNIVERSITEIT
AMSTERDAM
Relationships between Actors
Generalization of Actors
Actor A inherits from actor B
A can communicate with X and Y
B can only communicate with Y
Multiple inheritance is permitted
Abstract actors are possible
Example:
Super-actor
Sub-actor
Professor AND Assistant needed
for executing Query student data
Professor OR Assistant needed
for executing Query student data
VRIJE
UNIVERSITEIT
AMSTERDAM
Description of Use Cases
Structured approach
§ Name
§ Short description
§ Precondition: prerequisite for successful execution
§ Postcondition: system state after successful execution
§ Error situations: errors relevant to the problem domain
§ System state on the occurrence of an error
§ Actors that communicate with the use case
§ Trigger: events which initiate/start the use case
§ Standard process: individual steps to be taken
§ Alternative processes: deviations from the standard process
[A. Cockburn: Writing Effective Use Cases, Addison Wesley,
2000]
VRIJE
UNIVERSITEIT
AMSTERDAM
Description of Use Cases - Example
Name: Reserve lecture hall
Short description: An employee reserves a lecture hall at the university for an event.
Precondition: The employee is authorized to reserve lecture halls.
Postcondition: A lecture hall is reserved.
Error situations: There is no free lecture hall.
System state in the event of an error: The employee has not reserved a lecture hall.
Actors: Employee
Trigger: Employee requires a lecture hall.
Standard process: (1) Employee logs in to the system.
(2) Employee selects the lecture hall.
(3) Employee selects the date.
(4) System confirms that the lecture hall is free.
(5) Employee confirms the reservation.
Alternative processes: (4’) Lecture hall is not free.
(5’) System proposes an alternative lecture hall.
(6’) Employee selects alternative lecture hall and confirms the
reservation.
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Identifying Actors
• Who uses the main use cases?
• Who needs support for their daily work?
• Who is responsible for system administration?
• What are the external devices/(software) systems with which
the system must communicate?
• Who is interested in the results of the system?
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Identifying Use Cases
• What are the main tasks that an actor must perform?
• Does an actor want to query or even modify information
contained in the system?
• Does an actor want to inform the system about changes in
other systems?
• Should an actor be informed about unexpected events within
the system?
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Typical Errors To Avoid (1/5)
Use case diagrams do not model processes/workflows!
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Typical Errors To Avoid (2/5)
Actors are not part of the system, hence, they are positioned
outside the system boundaries!
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Typical Errors To Avoid (3/5)
§ Use case Issue information needs EITHER one actor
Assistant OR one actor Professor for execution
ü
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Typical Errors To Avoid (4/5)
Many small use cases that have the same objective may be
grouped to form one use case
ü
VRIJE
UNIVERSITEIT
AMSTERDAM
Best Practices
Typical Errors To Avoid (5/5)
The various steps are part of the use cases, not separate use
cases themselves! -> NO functional decomposition
ü
VRIJE
UNIVERSITEIT
AMSTERDAM
Name Notation Description
System
Boundaries between the system
and the users of the system
Use case Unit of functionality of the system
Actor Role of the users of the system
Notation Elements (1/2)
VRIJE
UNIVERSITEIT
AMSTERDAM
Name Notation Description
Association
Relationship between use cases
and actors
Generalization
Inheritance relationship between
actors or use cases
Extend
relationship
B extends A: optional use of use
case B by use case A
Include
relationship
A includes B: required use of use
case B by use case A
Notation Elements (2/2)
VRIJE
UNIVERSITEIT
AMSTERDAM
Exercise
Problem: flight booking system (FBS)
A travel agency needs to manage flight bookings for its customers:
1) Airline companies offer various flights. It is the airline itself that decides to
open and close the bookings for each flight, and that communicates it to the
travel agencies.
2) A customer can book multiple flights and for different passengers.
3) A booking concerns a single flight and a single passenger. A booking can be
opened, and then cancelled or confirmed.
4) When confirmed, the tickets are issued and delivered to the customer.
5) A flight has a departure airport and an arrival airport. A flight has a departure
day and time, and an arrival day and time.
6) A flight may have stopovers in airports; a stopover has an arrival time and a
departure time.
7) Each airport serves one or more cities.
55
Legenda
Red: candidate actors
Blue: candidate use cases
VRIJE
UNIVERSITEIT
AMSTERDAM
What this lecture means to you?
• UML = general purpose modeling language
• tailored to object-oriented software systems
• 1 UML model, many diagrams
• Requirements
• functional vs non-functional
• Functional = the WHAT
• text + use case diagrams + use case descriptions
• Non-functional = the HOW
• text + rationale
• Use case diagrams rules and best practices
56
VRIJE
UNIVERSITEIT
AMSTERDAM
Readings
• UML@Classroom: An Introduction to Object-Oriented
Modeling” – chapters 2 and 3
• Learning UML 2.0 – chapters 1 and 2
57

Contenu connexe

Tendances

Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Unit 2-Design Patterns.ppt
Unit 2-Design Patterns.pptUnit 2-Design Patterns.ppt
Unit 2-Design Patterns.pptMsRAMYACSE
 
c#.Net Windows application
c#.Net Windows application c#.Net Windows application
c#.Net Windows application veera
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 
Java Foundations: Methods
Java Foundations: MethodsJava Foundations: Methods
Java Foundations: MethodsSvetlin Nakov
 
Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Ahmed Farag
 
Design Patterns
Design PatternsDesign Patterns
Design Patternsfrgo
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineeringRa'Fat Al-Msie'deen
 
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookMuralidharan Radhakrishnan
 
chapter 1 introduction to operating system
chapter 1 introduction to operating systemchapter 1 introduction to operating system
chapter 1 introduction to operating systemAisyah Rafiuddin
 
Design rules Human computer interaction.ppt
Design rules Human computer interaction.pptDesign rules Human computer interaction.ppt
Design rules Human computer interaction.pptSohail735908
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and DesignMay Belleza
 
SQL Server Transaction Management
SQL Server Transaction ManagementSQL Server Transaction Management
SQL Server Transaction ManagementMark Ginnebaugh
 
30326851 -operating-system-unit-1-ppt
30326851 -operating-system-unit-1-ppt30326851 -operating-system-unit-1-ppt
30326851 -operating-system-unit-1-pptraj732723
 
Factory Design Pattern
Factory Design PatternFactory Design Pattern
Factory Design PatternKanushka Gayan
 

Tendances (20)

Cs8493 unit 3
Cs8493 unit 3Cs8493 unit 3
Cs8493 unit 3
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Path Testing
Path TestingPath Testing
Path Testing
 
Unit 2-Design Patterns.ppt
Unit 2-Design Patterns.pptUnit 2-Design Patterns.ppt
Unit 2-Design Patterns.ppt
 
c#.Net Windows application
c#.Net Windows application c#.Net Windows application
c#.Net Windows application
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Java Foundations: Methods
Java Foundations: MethodsJava Foundations: Methods
Java Foundations: Methods
 
Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Uml
UmlUml
Uml
 
System modeling
System modelingSystem modeling
System modeling
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 BookADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
ADO Controls - Database Usage from Exploring MS Visual Basic 6.0 Book
 
Sql views
Sql viewsSql views
Sql views
 
chapter 1 introduction to operating system
chapter 1 introduction to operating systemchapter 1 introduction to operating system
chapter 1 introduction to operating system
 
Design rules Human computer interaction.ppt
Design rules Human computer interaction.pptDesign rules Human computer interaction.ppt
Design rules Human computer interaction.ppt
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 
SQL Server Transaction Management
SQL Server Transaction ManagementSQL Server Transaction Management
SQL Server Transaction Management
 
30326851 -operating-system-unit-1-ppt
30326851 -operating-system-unit-1-ppt30326851 -operating-system-unit-1-ppt
30326851 -operating-system-unit-1-ppt
 
Factory Design Pattern
Factory Design PatternFactory Design Pattern
Factory Design Pattern
 

En vedette

Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...
Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...
Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Modeling] [C...
Modeling and abstraction, software development process [Software Modeling] [C...Modeling and abstraction, software development process [Software Modeling] [C...
Modeling and abstraction, software development process [Software Modeling] [C...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Modeling] [Computer Science...
Object-oriented design patterns  in UML [Software Modeling] [Computer Science...Object-oriented design patterns  in UML [Software Modeling] [Computer Science...
Object-oriented design patterns in UML [Software Modeling] [Computer Science...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...
Modeling behaviour via  UML state machines [Software Modeling] [Computer Scie...Modeling behaviour via  UML state machines [Software Modeling] [Computer Scie...
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...Ivano Malavolta
 
Computer science curriculum based on Program learning outcomes and objectives
Computer science curriculum based on Program learning outcomes and objectivesComputer science curriculum based on Program learning outcomes and objectives
Computer science curriculum based on Program learning outcomes and objectivesJawad Khan
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano Malavolta
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsIvano Malavolta
 
The Green Lab - [13 B] Future research challenges
The Green Lab - [13 B] Future research challengesThe Green Lab - [13 B] Future research challenges
The Green Lab - [13 B] Future research challengesIvano Malavolta
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languagesIvano Malavolta
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)Ivano Malavolta
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Ivano Malavolta
 
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Ivano Malavolta
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineeringPreeti Mishra
 
J. Żelinski: Rezygnujemy z waterfall...
J. Żelinski: Rezygnujemy z waterfall...J. Żelinski: Rezygnujemy z waterfall...
J. Żelinski: Rezygnujemy z waterfall...Jaroslaw Zelinski
 
software requirement engineering
software requirement engineeringsoftware requirement engineering
software requirement engineeringdeviyasharwin
 
How do You Feel Today? Buggy!
How do You Feel Today? Buggy!How do You Feel Today? Buggy!
How do You Feel Today? Buggy!Ivano Malavolta
 

En vedette (20)

Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...
Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...
Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Uni...
 
Modeling and abstraction, software development process [Software Modeling] [C...
Modeling and abstraction, software development process [Software Modeling] [C...Modeling and abstraction, software development process [Software Modeling] [C...
Modeling and abstraction, software development process [Software Modeling] [C...
 
Object-oriented design patterns in UML [Software Modeling] [Computer Science...
Object-oriented design patterns  in UML [Software Modeling] [Computer Science...Object-oriented design patterns  in UML [Software Modeling] [Computer Science...
Object-oriented design patterns in UML [Software Modeling] [Computer Science...
 
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...
Modeling behaviour via  UML state machines [Software Modeling] [Computer Scie...Modeling behaviour via  UML state machines [Software Modeling] [Computer Scie...
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
 
Computer science curriculum based on Program learning outcomes and objectives
Computer science curriculum based on Program learning outcomes and objectivesComputer science curriculum based on Program learning outcomes and objectives
Computer science curriculum based on Program learning outcomes and objectives
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotors
 
The Green Lab - [13 B] Future research challenges
The Green Lab - [13 B] Future research challengesThe Green Lab - [13 B] Future research challenges
The Green Lab - [13 B] Future research challenges
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languages
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...
 
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
Web-based Hybrid Mobile Apps: State of the Practice and Research opportunitie...
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
 
J. Żelinski: Rezygnujemy z waterfall...
J. Żelinski: Rezygnujemy z waterfall...J. Żelinski: Rezygnujemy z waterfall...
J. Żelinski: Rezygnujemy z waterfall...
 
software requirement engineering
software requirement engineeringsoftware requirement engineering
software requirement engineering
 
Process Support for requirements engineering
Process Support for requirements engineeringProcess Support for requirements engineering
Process Support for requirements engineering
 
How do You Feel Today? Buggy!
How do You Feel Today? Buggy!How do You Feel Today? Buggy!
How do You Feel Today? Buggy!
 

Similaire à Requirements engineering with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptShashikanth
 
Using task models in model-based testing
Using task models in model-based testingUsing task models in model-based testing
Using task models in model-based testingRachid Kherrazi
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Rachid kherrazi-testing-asd-interface-compliance-with-asd spec
Rachid kherrazi-testing-asd-interface-compliance-with-asd specRachid kherrazi-testing-asd-interface-compliance-with-asd spec
Rachid kherrazi-testing-asd-interface-compliance-with-asd specRachid Kherrazi
 
Model based design-Hardware in loop-software in loop
Model based design-Hardware in loop-software in loopModel based design-Hardware in loop-software in loop
Model based design-Hardware in loop-software in loopMahmoud Hussein
 
Emerging standards and support organizations within engineering simulation
Emerging standards and support organizations within engineering simulation Emerging standards and support organizations within engineering simulation
Emerging standards and support organizations within engineering simulation Modelon
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPAmit Midha
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPAmit Midha
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...Gonçal Costa Jutglar
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Lionel Briand
 
Developing Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusDeveloping Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusObeo
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to ProgrammingALI RAZA
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Sameh El-Ashry
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architectureAhmad karawash
 

Similaire à Requirements engineering with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017] (20)

Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
 
Using task models in model-based testing
Using task models in model-based testingUsing task models in model-based testing
Using task models in model-based testing
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Rachid kherrazi-testing-asd-interface-compliance-with-asd spec
Rachid kherrazi-testing-asd-interface-compliance-with-asd specRachid kherrazi-testing-asd-interface-compliance-with-asd spec
Rachid kherrazi-testing-asd-interface-compliance-with-asd spec
 
Model based design-Hardware in loop-software in loop
Model based design-Hardware in loop-software in loopModel based design-Hardware in loop-software in loop
Model based design-Hardware in loop-software in loop
 
MIL_SIL.pdf
MIL_SIL.pdfMIL_SIL.pdf
MIL_SIL.pdf
 
Emerging standards and support organizations within engineering simulation
Emerging standards and support organizations within engineering simulation Emerging standards and support organizations within engineering simulation
Emerging standards and support organizations within engineering simulation
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
 
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOPINTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
INTRODUCTION TO SOFTWARE ARCHITECTURE-TRAINING WORKSHOP
 
Building product suggestions for a BIM model based on rule sets and a semant...
Building product suggestions for a BIM model based on rule sets and a  semant...Building product suggestions for a BIM model based on rule sets and a  semant...
Building product suggestions for a BIM model based on rule sets and a semant...
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
 
DITEC - Software Engineering
DITEC - Software EngineeringDITEC - Software Engineering
DITEC - Software Engineering
 
Developing Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusDeveloping Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse Sirius
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to Programming
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
CS8592-OOAD Question Bank
CS8592-OOAD  Question BankCS8592-OOAD  Question Bank
CS8592-OOAD Question Bank
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
 
From use case to software architecture
From use case to software architectureFrom use case to software architecture
From use case to software architecture
 

Plus de Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionIvano Malavolta
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reportingIvano Malavolta
 

Plus de Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perception
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reporting
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Requirements engineering with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

  • 1. Software and Services research group (S2) Department of Computer Science, Faculty of Sciences Vrije Universiteit Amsterdam VRIJE UNIVERSITEIT AMSTERDAM Requirements engineering with UML Software modeling (401016) – 2016/2017 Ivano Malavolta i.malavolta@vu.nl
  • 2. VRIJE UNIVERSITEIT AMSTERDAM Announcement The template for Deliverable 1 will be available today on BlackBoard! 2
  • 3. VRIJE UNIVERSITEIT AMSTERDAM Roadmap • Introduction to UML • What is UML? • Main characteristics of UML • UML diagrams • Requirement engineering • Use case diagrams 3
  • 4. VRIJE UNIVERSITEIT AMSTERDAM What is UML? • In the 80s there were multiple OO approaches • each approach had its own notation • then Rational Inc. (now IBM) 4 Booch notation Jacobson‘s OOSE Rumbaugh's Technique
  • 5. VRIJE UNIVERSITEIT AMSTERDAM What is UML? • UML = Unified Modeling Language • De facto standard software design language • Developed by OMG • A “Swiss Army Knife” of notations 5
  • 6. VRIJE UNIVERSITEIT AMSTERDAM Why UML in this course? The most used language for modeling software 6 34 job postings requiring UML in Amsterdam (as of last week)
  • 8. VRIJE UNIVERSITEIT AMSTERDAM Main characteristics of UML • It is not tied to any development process • à waterfall, agile, whatever… • Can be used across the whole life cycle • promotes iterative refinement of models • General purpose • it can be used for modeling a mobile app, but also a satellite • It has different representations: • graphical • textual • others… 8
  • 9. VRIJE UNIVERSITEIT AMSTERDAM Main characteristics of UML • It is comprehensive • all parts of a system can be described using UML • It is scalable • you can zoom in with additional details when needed • Originally intended for descriptive models • Now it also supports prescriptive models • models execution • code generation • but more importantly… 9
  • 10. VRIJE UNIVERSITEIT AMSTERDAM Main characteristics of UML UML is a formal modeling language à all its concepts have a well-defined meaning 10 Modeling with code Informal model UML model
  • 11. VRIJE UNIVERSITEIT AMSTERDAM Where are the “meanings” of UML concepts? The UML superstructure 640 pages like this! à Don’t read it, use it only as a manual in case of doubts http://www.omg.org/spec /UML/2.5/ 11
  • 12. VRIJE UNIVERSITEIT AMSTERDAM UML diagrams A UML model is represented graphically by diagrams 12
  • 13. VRIJE UNIVERSITEIT AMSTERDAM UML structure diagrams • Emphasize the static description of the elements of the system being modeled • ex: student submission system à • Structural elements may have an associated behavior 13
  • 14. VRIJE UNIVERSITEIT AMSTERDAM UML behavioural diagrams • Behavior = the direct consequences of an action of at least one object • It affects how the states of objects change over time • Behavior can either be • specified through the actions of a single object • • result from interactions between multiple objects à 14 Submission
  • 15. VRIJE UNIVERSITEIT AMSTERDAM Which diagrams you will see in this course • Use case diagram • to specify the basic functionality of a software system • aka requirements • Class diagram • to define which objects or which classes are involved in the realization of this functionality • State machine diagram • to define the intra-object behavior • Sequence diagram • specifies the inter-object behavior and communication 15 In your project you can use additional UML diagrams à BONUS in the final grade
  • 16. VRIJE UNIVERSITEIT AMSTERDAM Models != diagrams • A UML model contains everything related to your system • it is complete • Diagrams are just “windows” on your model • technically they can be considered as projections of the same model • a particular diagram will show some parts of your model but not necessarily everything (recall abstraction?) 16 represented by System Model Class diagram Sequence diagram State machine diagram
  • 17. VRIJE UNIVERSITEIT AMSTERDAM Models and diagrams in Papyrus 17 Diagram creation
  • 18. VRIJE UNIVERSITEIT AMSTERDAM Models and diagrams in Papyrus 18The model The diagrams
  • 20. VRIJE UNIVERSITEIT AMSTERDAM Requirements engineering • The process of establishing • the services that a customer requires from a system • the constraints under which it operates and is developed • A requirement may range between • a high-level abstract statement of a service • Example: all the robots must avoid obstacles autonomously • a detailed mathematical functional specification • Example: each robot must communicate its position to the central station every 1 second 20
  • 21. VRIJE UNIVERSITEIT AMSTERDAM Functional and non-functional requirements Functional requirements a. Services the system should provide b. How the system should react to particular inputs c. How the system should behave in particular situations d. May state what the system should not do Non-functional requirements a. Constraints on the services or functions offered by the system I. example: timing constraints, constraints on the development process, standards, etc. b. Often apply to the system as a whole rather than individual features or services 21
  • 22. VRIJE UNIVERSITEIT AMSTERDAM Functional requirements • Precise • Ambiguous requirements may be interpreted in different ways by developers and users à problems • Complete • They should include descriptions of ALL facilities required • Consistent • There should be no conflicts or contradictions in the descriptions of the system facilities • In UML they are represented using Use case diagrams 22
  • 23. VRIJE UNIVERSITEIT AMSTERDAM Non-functional requirements • System properties and constraints • e.g. reliability, response time and storage requirements • Constraints are I/O device capability, system representations, etc. • Non-functional requirements may be more critical than functional requirements • e.g., safety requirements • Non-functional requirements may affect the overall architecture of a system rather than the individual components • For example, to ensure that performance requirements are met, you may have to organize your system to minimize communications between robots 23
  • 24. VRIJE UNIVERSITEIT AMSTERDAM Types of non-functional requirements 24 Performance requirements Space requirements Usability requirements Efficiency requirements Dependability requirements Security requirements Regulatory requirements Ethical requirements Legislative requirements Operational requirements Development requirements Environmental requirements Safety/security requirements Accounting requirements Product requirements Organizational requirements External requirements Non-functional requirements
  • 26. VRIJE UNIVERSITEIT AMSTERDAM Ways of writing requirements specifications 26 Notation Description Natural language The requirements are written using numbered sentences in natural language. Each sentence should express one requirement. Structured natural language The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement. Design description languages This approach uses a language like a programming language, but with more abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications. Graphical notations Graphical models, supplemented by text annotations, are used to define the functional requirements for the system; UML use case and sequence diagrams are commonly used. Mathematical specifications These notations are based on mathematical concepts such as finite-state machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract
  • 27. VRIJE UNIVERSITEIT AMSTERDAM Natural language specification • Requirements are written as natural language sentences • Used for writing requirements because it is expressive, intuitive and universal. • These requirements can be understood by users and customers • Guidelines: • Invent a standard format and use it for all requirements • Use language in a consistent way • Use “shall” for mandatory requirements, “should” for desirable requirements • Use text highlighting to identify key parts of the requirement • Avoid the use of computer jargon • Include an explanation (rationale) of why a requirement is necessary 27
  • 28. VRIJE UNIVERSITEIT AMSTERDAM Example 28 R1. The system shall measure the blood sugar and deliver insulin, if required, every 10 minutes. (Changes in blood sugar are relatively slow so more frequent measurement is unnecessary; less frequent measurement could lead to unnecessarily high sugar levels.) R2. The system shall run a self-test routine every minute with the conditions to be tested and the associated actions defined in Table 1. (A self-test routine can discover hardware and software problems and alert the user to the fact the normal operation may be impossible.)
  • 29. VRIJE UNIVERSITEIT AMSTERDAM Requirement validation checklist 29 • Validity • Does the system provide the functions which best support the customer’s needs? • Consistency • Are there any requirements conflicts? • Completeness • Are all functions required by the customer included? • Realism • Can the requirements be implemented given available budget and technology • Verifiability • Can the requirements be checked? I will use it when grading your project
  • 31. VRIJE UNIVERSITEIT AMSTERDAM Contents • Introduction • Use cases • Actors • Relationships between use cases and actors • Relationships between use cases • Relationships between actors • Description of use cases • Best practices • Typical errors • Notation elements 31
  • 32. VRIJE UNIVERSITEIT AMSTERDAM Introduction Use case diagrams express the expectations of the customers/stakeholders § essential for a detailed design The use case diagram is used during the entire analysis and design process We can use a use case diagram to answer the following questions: § What is being described? (The system) § Who interacts with the system? (The actors) § What can the actors do? (The use cases) 32
  • 33. VRIJE UNIVERSITEIT AMSTERDAM Example: Student Administration System System (what is being described?) § Student administration system Actors (who interacts with the system?) § Professor Use cases (what can the actors do?) § Query student data § Issue certificate § Announce exam
  • 34. VRIJE UNIVERSITEIT AMSTERDAM Use Case • Describes functionality expected from the system under development • Provides tangible benefit for one or more actors that communicate with this use case • Set of all use cases describes the functionality that a system shall provide • Alternative notations:
  • 35. VRIJE UNIVERSITEIT AMSTERDAM Actor (1/3) Actors interact with the system § by using use cases, i.e., the actors initiate the execution of use cases § by being used by use cases, i.e., the actors provide functionality for the execution of use cases. Actors represent roles that users adopt § Specific users can adopt and set aside multiple roles simultaneously Actors are not part of the system, i.e., they are outside of the system boundaries Alternative notations:
  • 36. VRIJE UNIVERSITEIT AMSTERDAM Actor (2/3) Usually user data is also administered within the system. This data is modeled within the system in the form of objects and classes. Example: actor Assistant § The actor Assistant interacts with the system Laboratory Assignment by using it § The class Assistant describes objects representing user data (e.g., name, ssNr, …).
  • 37. VRIJE UNIVERSITEIT AMSTERDAM Actor (3/3) Human § E.g., Student, Professor Non-human § E.g., E-Mail Server Primary: has the main benefit of the execution of the use case Secondary: receives no direct benefit Active: initiates the execution of the use case Passive: provides functionality for the execution of the use case Examples: 8 Non-human Secondary Passive Human Primary Active Human Primary Active Human Secondary Active
  • 38. VRIJE UNIVERSITEIT AMSTERDAM Relationships between Use Cases and Actors • Actors are connected with use cases via solid lines (associations) • Every actor must communicate with at least one use case • An association is always binary • Multiplicities may be specified
  • 39. VRIJE UNIVERSITEIT AMSTERDAM The behavior of one use case (included use case) is ALWAYS integrated in the behavior of another use case (base use case) Example: Relationships between Use Cases «include» - Relationship Base use case requires the behavior of the included use case to be able to offer its functionality Included use case may be executed on its own
  • 40. VRIJE UNIVERSITEIT AMSTERDAM Relationships between Use Cases «extend» - Relationship • The behavior of one use case (extending use case) may be integrated in the behavior of another use case (base use case) but does not have to • Both use cases may also be executed independently of each other • A decides if B is executed • Extension points define at which point the behavior is integrated • Conditions define under which circumstances the behavior is integrated Base use case Extending use case
  • 41. VRIJE UNIVERSITEIT AMSTERDAM Relationships between Use Cases «extend» - Relationship: Extension Points • Extension points are written directly within the use case • Specification of multiple extension points is possible • Example:
  • 42. VRIJE UNIVERSITEIT AMSTERDAM Relationships between Use Cases Generalization of Use Cases Use case A generalizes use case B. B inherits the behavior of A and may either extend or overwrite it. B also inherits all relationships from A. B adopts the basic functionality of A but decides itself what part of A is executed or changed. A may be labeled {abstract} § Cannot be executed directly § Only B is executable Example: Base use case Sub use case
  • 43. VRIJE UNIVERSITEIT AMSTERDAM Relationships between Actors Generalization of Actors Actor A inherits from actor B A can communicate with X and Y B can only communicate with Y Multiple inheritance is permitted Abstract actors are possible Example: Super-actor Sub-actor Professor AND Assistant needed for executing Query student data Professor OR Assistant needed for executing Query student data
  • 44. VRIJE UNIVERSITEIT AMSTERDAM Description of Use Cases Structured approach § Name § Short description § Precondition: prerequisite for successful execution § Postcondition: system state after successful execution § Error situations: errors relevant to the problem domain § System state on the occurrence of an error § Actors that communicate with the use case § Trigger: events which initiate/start the use case § Standard process: individual steps to be taken § Alternative processes: deviations from the standard process [A. Cockburn: Writing Effective Use Cases, Addison Wesley, 2000]
  • 45. VRIJE UNIVERSITEIT AMSTERDAM Description of Use Cases - Example Name: Reserve lecture hall Short description: An employee reserves a lecture hall at the university for an event. Precondition: The employee is authorized to reserve lecture halls. Postcondition: A lecture hall is reserved. Error situations: There is no free lecture hall. System state in the event of an error: The employee has not reserved a lecture hall. Actors: Employee Trigger: Employee requires a lecture hall. Standard process: (1) Employee logs in to the system. (2) Employee selects the lecture hall. (3) Employee selects the date. (4) System confirms that the lecture hall is free. (5) Employee confirms the reservation. Alternative processes: (4’) Lecture hall is not free. (5’) System proposes an alternative lecture hall. (6’) Employee selects alternative lecture hall and confirms the reservation.
  • 46. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Identifying Actors • Who uses the main use cases? • Who needs support for their daily work? • Who is responsible for system administration? • What are the external devices/(software) systems with which the system must communicate? • Who is interested in the results of the system?
  • 47. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Identifying Use Cases • What are the main tasks that an actor must perform? • Does an actor want to query or even modify information contained in the system? • Does an actor want to inform the system about changes in other systems? • Should an actor be informed about unexpected events within the system?
  • 48. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Typical Errors To Avoid (1/5) Use case diagrams do not model processes/workflows!
  • 49. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Typical Errors To Avoid (2/5) Actors are not part of the system, hence, they are positioned outside the system boundaries!
  • 50. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Typical Errors To Avoid (3/5) § Use case Issue information needs EITHER one actor Assistant OR one actor Professor for execution ü
  • 51. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Typical Errors To Avoid (4/5) Many small use cases that have the same objective may be grouped to form one use case ü
  • 52. VRIJE UNIVERSITEIT AMSTERDAM Best Practices Typical Errors To Avoid (5/5) The various steps are part of the use cases, not separate use cases themselves! -> NO functional decomposition ü
  • 53. VRIJE UNIVERSITEIT AMSTERDAM Name Notation Description System Boundaries between the system and the users of the system Use case Unit of functionality of the system Actor Role of the users of the system Notation Elements (1/2)
  • 54. VRIJE UNIVERSITEIT AMSTERDAM Name Notation Description Association Relationship between use cases and actors Generalization Inheritance relationship between actors or use cases Extend relationship B extends A: optional use of use case B by use case A Include relationship A includes B: required use of use case B by use case A Notation Elements (2/2)
  • 55. VRIJE UNIVERSITEIT AMSTERDAM Exercise Problem: flight booking system (FBS) A travel agency needs to manage flight bookings for its customers: 1) Airline companies offer various flights. It is the airline itself that decides to open and close the bookings for each flight, and that communicates it to the travel agencies. 2) A customer can book multiple flights and for different passengers. 3) A booking concerns a single flight and a single passenger. A booking can be opened, and then cancelled or confirmed. 4) When confirmed, the tickets are issued and delivered to the customer. 5) A flight has a departure airport and an arrival airport. A flight has a departure day and time, and an arrival day and time. 6) A flight may have stopovers in airports; a stopover has an arrival time and a departure time. 7) Each airport serves one or more cities. 55 Legenda Red: candidate actors Blue: candidate use cases
  • 56. VRIJE UNIVERSITEIT AMSTERDAM What this lecture means to you? • UML = general purpose modeling language • tailored to object-oriented software systems • 1 UML model, many diagrams • Requirements • functional vs non-functional • Functional = the WHAT • text + use case diagrams + use case descriptions • Non-functional = the HOW • text + rationale • Use case diagrams rules and best practices 56
  • 57. VRIJE UNIVERSITEIT AMSTERDAM Readings • UML@Classroom: An Introduction to Object-Oriented Modeling” – chapters 2 and 3 • Learning UML 2.0 – chapters 1 and 2 57