This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
What do you mean by Requirements?
A requirement is:
A condition or capability needed by a stakeholder to solve a problem or achieve an objective.
A condition or capability that must be met or possessed by a solution or solution component to satisfy a contract , standard, specification, or other formally imposed documents.
A documented representation of a condition or capability as mentioned above.
Requirements engineering with UML [Software Modeling] [Computer Science] [Vri...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Многие жалуются на качество кода, автоматизированных тестов или продукта в целом, на количество ошибок, найденных конечными пользователями или отделом тестирования. Почему это происходит? Необходимо понимать, что для того чтобы не допустить подобных ситуаций требуются дополнительные усилия – необходимо следить за качеством кода и работать над его улучшением.
Code Review является одной из наиболее полезных и эффективных практик для ранней борьбы с дефектами в коде и повышению его качества. Использование Code Review на различных этапах разработки, начиная от дизайна и заканчивая написанием кода и тестов, помогает построить ранний цикл обратной связи и избежать потерь времени в будущем на исправление ошибок.
Дополнительным преимуществом применения Code Review является распространение знаний между членами команды и адаптация других командных подходов. Данная практика может быть интересна любому члену команды вне зависимости от его роли в проекте.
В докладе будут рассмотрены основные аспекты Code Review, способы проведения, инструменты и техники. Также будут продемонстрированы основные ошибки в использовании этой практики, полезные советы, приемы по внедрению и поддержке.
What do you mean by Requirements?
A requirement is:
A condition or capability needed by a stakeholder to solve a problem or achieve an objective.
A condition or capability that must be met or possessed by a solution or solution component to satisfy a contract , standard, specification, or other formally imposed documents.
A documented representation of a condition or capability as mentioned above.
Requirements engineering with UML [Software Modeling] [Computer Science] [Vri...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Многие жалуются на качество кода, автоматизированных тестов или продукта в целом, на количество ошибок, найденных конечными пользователями или отделом тестирования. Почему это происходит? Необходимо понимать, что для того чтобы не допустить подобных ситуаций требуются дополнительные усилия – необходимо следить за качеством кода и работать над его улучшением.
Code Review является одной из наиболее полезных и эффективных практик для ранней борьбы с дефектами в коде и повышению его качества. Использование Code Review на различных этапах разработки, начиная от дизайна и заканчивая написанием кода и тестов, помогает построить ранний цикл обратной связи и избежать потерь времени в будущем на исправление ошибок.
Дополнительным преимуществом применения Code Review является распространение знаний между членами команды и адаптация других командных подходов. Данная практика может быть интересна любому члену команды вне зависимости от его роли в проекте.
В докладе будут рассмотрены основные аспекты Code Review, способы проведения, инструменты и техники. Также будут продемонстрированы основные ошибки в использовании этой практики, полезные советы, приемы по внедрению и поддержке.
Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications. Requirements analysis is an important aspect of project management.
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
Detail about cyclomatic complexity, formula to measure cyclomatic complexity and how this metric useful in software testing and uses of cyclomatic complexity etc.
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requirement is a capability to which a project outcome (product or service) should conform.
Model-Driven Software Development - Introduction & OverviewEelco Visser
These are the slides for the introduction lecture of the course "Model-Driven Software Development" taught at Delft University of Technology in the academic year 2009-2010.
Object-oriented design patterns in UML [Software Modeling] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications. Requirements analysis is an important aspect of project management.
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
Detail about cyclomatic complexity, formula to measure cyclomatic complexity and how this metric useful in software testing and uses of cyclomatic complexity etc.
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requirement is a capability to which a project outcome (product or service) should conform.
Model-Driven Software Development - Introduction & OverviewEelco Visser
These are the slides for the introduction lecture of the course "Model-Driven Software Development" taught at Delft University of Technology in the academic year 2009-2010.
Object-oriented design patterns in UML [Software Modeling] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Building product suggestions for a BIM model based on rule sets and a semant...Gonçal Costa Jutglar
The architecture, engineering and construction (AEC) industry today relies on different information systems and computational tools built to support and assist in the building design and construction. However, these systems and tools typically provide this support in isolation from each other. A good combination of these systems and tools is beneficial for a better coordination and information management. Semantic web technologies and a Linked Data approach can be used to fulfil this aim. In this paper, we indicate how these technologies can be applied for one particular objective, namely to check a building information model (BIM) and make suggestions for that model regarding the building elements. These suggestions are based on information obtained from different data sources, including a BIM model, regulations and catalogues of locally available building components.
Esoft Metro Campus - Diploma in Information Technology - (Module VII) Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Attributes of Software
What is Software Engineering?
Software Process Model
Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development
Programming styles
Unstructured programming
Structured programming
Object oriented programming
Flow charts
Questions
Pseudo codes
Object oriented programming
OOP Concepts
Inheritance
Polymorphism
Encapsulation
Generalization/specialization
Unified Modeling Language
Class Diagrams
Use case diagrams
Software testing
Black box testing
White box testing
Software documentation
Developing Modeling Tool for RM-ODP with Eclipse SiriusObeo
Defining architecture of your system, existing or to be built, is an important practice to communicate, maintain and extend the system in future. The Reference Model of Open Distributed Processing (RM-ODP) is a set of international standards that can be used for this purpose.
Existing tools to specify RM-ODP based system architectures include UML tools with ODP plugin, since one of the standards defines UML Profile for it. The presenter received an email regarding a more accessible and standalone ODP tool, which eventually initiated this project. It is a work in progress, Eclipse/Sirius-based tool. An overview of the tool and an experience of the development done so far will be presented.
Akira Tanaka, view5 LLC
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
Achieving quality engineering through descriptive and analytical models
Systems architecture design is a key activity that affect the
overall systems engineering cost. It is hence fundamental
to ensure that the system architecture reaches a proper quality.
In this paper, we leverage on MBSE approaches and complement them
with simulation techniques, as a prom-ising way to improve the quality of the system architecture definition, and to come up with inno-vative solutions while securing the systems engineering process.
Similar to Requirements engineering with UML [Software Design] [Computer Science] [Vrije Universiteit Amsterdam] [2017/2018] (20)
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
Slides of my invited talk at the 2nd workshop on Quality and Reliability Assessment of Robotic Software Architectures and Components (QRARSAC), co-located with the International Conference on Robotics and Automation (ICRA 2023).
Abstract of the talk. Today robotic systems are central to many industrial sectors, such as logistics, autonomous warehousing, and healthcare. If on one side ROS is helping roboticists by providing a standardized communication platform for robotic systems, on the other side ROSsystems are getting more and more large and complex, thus making it extremely difficult to ensure their level of quality, e.g., in terms of performance, security, energy efficiency, testability, maintainability. Improving the quality of robotic systems is not a new activity, but in this talk, we tackle it from a different perspective: we look at them from a software architecture perspective. In this talk, I will walk you through a series of experiments we conducted at the Vrije Universiteit Amsterdam targeting the architecture of ROS systems, we will discuss some architectural tactics for ROS systems, and will close with an overview of our open-source tool for automatically executing experiments on robotics software.
The slides of a short presentation I gave about my experience about working in the context of EU grants. It contains tips and tricks for the before/during/after phases of a EU project.
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
The slides of my presentation about the Green Lab at the event called Research Cocktail (October 2020). The event is organized by the Computer Science Department of the Vrije Universiteit Amsterdam.
The source code of our tools and the replication package of our experiments performed in the Green Lab can be found here: https://github.com/S2-group
For further details about the Green Lab and all our activities around it, you can contact me at i.malavolta@vu.nl
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
Slides of my presentation at the NIER track of the 41th International Conference on Software Engineering (ICSE 2019).
The paper is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2019_NAPPA.pdf
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
Slides of my presentation at the Research track of the 34th International Conference on Software Maintenance and Evolution (ICSME 2018).
The full paper is available here: http://www.ivanomalavolta.com/files/papers/ICSME_2018.pdf
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
Slides of my presentation at the Journal first track of the 40th International Conference on Software Engineering (ICSE 2018).
The accompanying extended abstract is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2018_JournalFirst.pdf
The original TSE paper is available here: http://www.ivanomalavolta.com/files/papers/TSE_2017.pdf
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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 design (400170) – 2017/2018
Ivano Malavolta
i.malavolta@vu.nl
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
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
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
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 be either
• 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 data structures within the system
• State machine diagram
• to define intra-object behavior
• Sequence diagram
• specifies 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
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
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
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
• The set of all use cases describes the functionality that a
system shall provide
• Alternative notations:
35. VRIJE
UNIVERSITEIT
AMSTERDAM
Actor (1/2)
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 have 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/2)
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
37. 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
38. 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
39. 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
40. 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:
41. 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
42. 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
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
43. 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]
44. 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.
45. 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?
46. 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?
53. 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)
54. 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
• UML use case diagrams rules and best practices
55