Top Banner
Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements System vision Business process description Determining the scope of a software system Modelling of user requirements User requirements documentation
35

Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

May 30, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering by Albert Ambroziewicz

Lecture 2: Specifying user requirements

System vision

Business process description

Determining the scope of a software system

Modelling of user requirements

User requirements documentation

Page 2: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.2 A. Ambroziewicz M. Śmiałek

Requirements – where are we?

This courseRequirements

Implementation

Architecture & Design

Page 3: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.3 A. Ambroziewicz M. Śmiałek

User requirements – where are we?

All requirements form a pyramid. User requirements occupy the upper levels of the pyramid.

User requirements are composed of: System vision – a specification

of general features of the systemin close connection withthe business needsof the client

Scope requirements – a specification of the systemneeded to determine itssize and amount of effortneeded to build it

System vision

System scope

Software requirements

User requirements

Page 4: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.4 A. Ambroziewicz M. Śmiałek

User requirements – where do they come from?

User requirements come from the needs of the business.

Before we define specific requirements, we need a “vision”.

Business Business description

Problems

System vision

System scope

“Trawling for requirements”• The system vision is a response to problems.• The system scope is a result of seeking for ways to automate the business according to the vision.

Page 5: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.5 A. Ambroziewicz M. Śmiałek

Purpose of user requirements – how to reach it?

User requirements are there to show the client what he/she might expect, and to allow for verifying the realisation of these expectations.

Requirements are there to verify system’s quality.

User requirements should be: complete, consistent, unambiguous measurable (testable)

Good user requirements = satisfied client after the system is implemented

Poorrequirements

Goodrequirements

Page 6: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.6 A. Ambroziewicz M. Śmiałek

Structure of user requirements

How to make user requirements complete, consistent, unambiguous? Structure them well!

Vision

Scope

Functionalrequirements

Vocabularyrequirements

Non-functionalrequirements

Constraints

Page 7: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.7 A. Ambroziewicz M. Śmiałek

Functional requirements

Functional requirements determine the system’s behaviour while it is interacting with the user (or other system). What services should the system offer? How should it react to specific input

messages? How to behave in specific situations?

The set of functional requirements determines the scope of the system to be built.

Often it is wise to state also what functionality is out of scope (out of the system’s functionality).

Clerk

Registera new carChange the

registered cardata CAR

REGISTRATIONSYSTEM

Register a vehicle taxpayment

Page 8: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.8 A. Ambroziewicz M. Śmiałek

Structure of user requirements

How to make user requirements complete, consistent, unambiguous? Structure them well!

Vision

Scope

Functionalrequirements

Vocabularyrequirements

Non-functionalrequirements

Constraints

Page 9: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.9 A. Ambroziewicz M. Śmiałek

Vocabulary requirements

Vocabulary requirements define the scope of notions and associated data to be handled by the software system.

The vocabulary contains definitions of notions used inside the functional requirements (and non-functional too…).

When defining notions we also describe relationships between them. We can show these relationships graphically.

Clerk

Car

Car registrationdocument

Owner

CAR REGISTRATION SYSTEM

Page 10: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.10 A. Ambroziewicz M. Śmiałek

Structure of user requirements

How to make user requirements complete, consistent, unambiguous? Structure them well!

Vision

Scope

Functionalrequirements

Vocabularyrequirements

Non-functionalrequirements

Constraints

Page 11: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.11 A. Ambroziewicz M. Śmiałek

Non-functional requirements

Non-functional requirements describe the quality features of the prospective system. How fast should be the system? How reliable should be the system? How safe should be the system? How user-friendly should be the system? What norms should the system comply

to?

Non-functional requirements can be global (pertain to the whole system) or local (directly pertain only to specific functional requirements).

CARREGISTRATIONSYSTEM

Page 12: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.12 A. Ambroziewicz M. Śmiałek

Non-functional reqs – example taxonomy

Functionality: A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs (suitability, accuracy, interoperability, compliance, security)

Reliability: A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time (maturity, recoverability, fault tolerance)

Usability: A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users (learnability, efficiency of use, operability)

Efficiency: A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions (time behaviour, resource behaviour)

Page 13: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.13 A. Ambroziewicz M. Śmiałek

Non-functional reqs – example taxonomy (2)

Maintainability: A set of attributes that bear on the effort needed to make specified modifications (stability, analyzability, changeability, testability)

Portability: A set of attributes that bear on the ability of software to be transferred from one environment to another (installability, replaceability, adaptability)

Page 14: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.14 A. Ambroziewicz M. Śmiałek

Structure of user requirements

How to make user requirements complete, consistent, unambiguous? Structure them well!

Vision

Scope

Functionalrequirements

Vocabularyrequirements

Non-functionalrequirements

Constraints

Page 15: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.15 A. Ambroziewicz M. Śmiałek

Constraints

Constraints are determined by the business and technical environment that surrounds the system. They describe the external conditions set for the system (software, hardware, work conditions).

Examples of constraints: Local area network configuration Performance of client and server machines Database engine system owned Working environment (in the field, in a

factory) Administrative personnel (how many

people) Legal conditions

CARREGISTRATIONSYSTEM

Page 16: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.16 A. Ambroziewicz M. Śmiałek

Building the system’s vision

Before we start finding more detailed requirements we need to formulate the vision of the prospective system. This vision should be accepted by the interested groups (sponsors) of the project.

We need to answer the following questions: Why do we build this system? What business problems will the

system solve? Who is this system for? What features should the system have?

We seek answers to these questions directly within the business.

Business description

Problems

System vision

Page 17: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.17 A. Ambroziewicz M. Śmiałek

System vision

Elements of the system vision

Description of the problem and motto for the project

Stakeholders – groups interested with the system, including key users

General features (functional and non-functional) of the prospective system

Most important constraints in the environment

ProblemMotto

Stakeholders ConstraintsFeatures

Page 18: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.18 A. Ambroziewicz M. Śmiałek

Problem statement

Problem associated with [here a description of a problem found in the business description]

affecting [here a list of stakeholders affected by the problem]

which results in [here a descriptions of problem implications]

can be solved by building a system [here a descriptive name of the system]

thanks to which [here a list of benefits from building the system]

IMPORTANT: the problem statement is too easily omitted by the analysts!Specifying the problem statement forces us to find the real causes of problems in the business that necessitate the change.

Page 19: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.19 A. Ambroziewicz M. Śmiałek

Motto for the project

It is quite advantageous for the project to have it’s “motto”.

One or two sentences placed on the title page of all the project documents. These sentences prevent from forgetting the real goal for building the system.

The motto “gives light” (unifies) all the members of the project.

This way we don’t forget about the requirements!

Sales system

Improvement of client satisfaction and increase in sales through an on-line order handling system.

Page 20: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.20 A. Ambroziewicz M. Śmiałek

Stakeholders

The system will affect different group in the business organization. These groups might have different expectations…

Examples of such groups: Direct stakeholders

(“fund keepers”) Users and their

representatives Clients and their

representatives Business investors Business owners Managers of the users IT service people

Profil grupy …………..•Opis•Typ (użytkownik, klient,…)•Zakres obowiązków•Kryteria zadowolenia•Zadania w projekcie (recenzent, tester, …)

Profil grupy …………..•Opis•Typ (użytkownik, klient,…)•Zakres obowiązków•Kryteria zadowolenia•Zadania w projekcie (recenzent, tester, …)

…….. group profile•Opis•Typ (użytkownik, klient,…)•Zakres obowiązków•Kryteria zadowolenia•Zadania w projekcie (recenzent, tester, …)

Profil grupy …………..•Opis•Typ (użytkownik, klient,…)•Zakres obowiązków•Kryteria zadowolenia•Zadania w projekcie (recenzent, tester, …)

……… group profile•Description•Type (user, client,…)•Responsibility•Satisfaction criteria•Tasks in the project (reviews, tests, …)

Page 21: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.21 A. Ambroziewicz M. Śmiałek

System features

A short statement (paragraph) about what the system shall do (functional) or what quality the system shall have (non-functional).

Often the statement starts with “The system shall…”.

System features reflect the needs of different groups in the business (stakeholders).

Usually, the system features are formulated directly by the stakeholders.

F: The system shall allow the managers to allocate workload evenly between clerks.

NF: The system shall be fast enough to shorten processing time of car owners by 20%.

F: The system shall allow for checking for stolen car data from the police system (SCS) in real time.

Page 22: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.22 A. Ambroziewicz M. Śmiałek

Requirements’ attributes

System features (and other requirements too!) should be assigned with attributes.

Attributes allow for efficient requirements management.

Requirements might have assigned attributes as: Identifier – an official symbol assigned to this specific

requirements for tracking purposes User priority – describes how critical it would be for the

client to have the requirement realized in the system (critical, important, useful)

Technical priority – describes how critical (risky) the requirement is for the system’s architecture

Stability – describes the probability of the requirement to change

Target release – a number denoting system version (iteration) at which the requirement should be realized

F: -----------------------------------

ID=2.32Priority=3Stability=5Release=6

Page 23: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.23 A. Ambroziewicz M. Śmiałek

Requirements’ attributes (2)

Other attribute types include: Type classification – assignment of the requirement into one of the

requirement classes (functional, non-functional, constraint) Status – determines how far is the requirement in the acceptance

and realization process (proposed, accepted, realized, …) Level of effort – determines how hard it would be to realize the

requirement (large, medium, small) Risk – describes the level of (technical, business) risk associated

with realizing the requirement Responsible person – determines who is responsible for

maintaining (formulating, changing) the requirement Revision number – a number denoting the current version of the

requirement definition

Page 24: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.24 A. Ambroziewicz M. Śmiałek

Vision influences the business

While defining the system’s vision we should analyze its influence on the business itself!

User requirements specification should also specify how business processes will be shaped after delivering the system.

Business process description depends on the vision of the system but also reflects its scope.

Business description

Problems

System vision

System scope

Model ofmodified business

Page 25: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.25 A. Ambroziewicz M. Śmiałek

Requirements analysis influences the business

While analysing the system we may also find out about non-software solutions to the business problems.

Business description

Problems

System visionBusiness

Model ofbusinessModel of

modified business

Page 26: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.26 A. Ambroziewicz M. Śmiałek

How to model the influenced business?

When verifying the user requirements we mainly want to model the business dynamics – business processes.

Business vocabulary is reflected in the system scope vocabulary (no need to have a separate “business vocabulary”).

Business processes can be modelled with UML use case diagrams and activity diagrams.

OwnerRegister a car

Submit cardocumentation

Verify cardocumentation

Inform aboutregistration denial

Record car data

Issue license plates

[Stolen] [OK]

Page 27: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.27 A. Ambroziewicz M. Śmiałek

From vision to scope

Vision is not a good basis for formulating a contract between the client and the developers. This is due to the fact that system features give rather vague understanding of the scope of work.

To formulate a contract we need a precise definition of the scope. This prevents possible future misunderstandings.

At the same time, the scope requirements should be general enough not to suggest technical solutions (data base structure, middleware platform, component structure, …).

System vision System scope

“Trawling forrequirements”

Page 28: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.28 A. Ambroziewicz M. Śmiałek

Elements of the system’s scope

Supplementary specification is a more detailed version of non-functional features.

Constraints are now more detailed than in the vision, too.

Functional requirements are denoted as a use case model.

Vocabulary requirements are written in the form of a domain vocabulary model.

System scope

Use case model

Domain vocabulary model

Supplementary requirements

Constraints

Page 29: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.29 A. Ambroziewicz M. Śmiałek

Use case modelUse case model is composed of use cases and actors.

Actors denote “roles” of people or machines outside the described system.

Use case is a small piece of the system’s functionality that: begins with actor’s interaction with the

system, describes the system’s “dialogue” with the

actor, and leads to a specific goal that has a value to

the actor.

Use case model shows relationships between actors and use cases.

Clerk

Stolen Car System

Record car data

Verify cardocumentation

Page 30: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.30 A. Ambroziewicz M. Śmiałek

Use case – a formal definitionUse Case

A collection of possible scenarios between the system under discussion and external actors, characterized by the goal the primary actor has toward the system’s declared responsibilities, showing how the primary actor’s goal might be delivered or might fail. (A. Cockburn)

Services provided by the system to its actors. Use cases capture the system functional requirements and may have associated performance requirements. (Rational Unified Process, 2001)

A kind of classifier representing a coherent unit of functionality provided by a system, a subsystem, or a class as manifested by sequences of messages exchanged among the system (subsystem, class) and one or more outside interactors (called actors) together with actions performed by the system (subsystem, class) (UML 1.4)

Page 31: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.31 A. Ambroziewicz M. Śmiałek

Domain vocabulary model

Domain vocabulary model is composed of notions (classes) and relationships between them.

Notions denote data that shall be handled by the system. Every notion can define a packet of several data elements (attributes).

Notion descriptions include also ways to process this data.

It is important to capture relationships between notions. These relationships denote to us that one notion can be described in terms of another notion.

Car

Car details

Cardocumentation

Owner

Registrationdata

Clerkdata

Page 32: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.32 A. Ambroziewicz M. Śmiałek

Describing actors, use cases and notions.

Every element of the system scope definition should be described with one or two paragraphs of text.

In this text we should use appropriate vocabulary entries thus linking specific requirements (like in hypertext).

Record car data(….)… The Clerk enters the car details which results in the system adding them to theregistration data. Then the system …(….)

ClerkPerson that registers…

Car(…)… is composed ofcar details …(…)

Car details(…)

Registration data(…)… by adding car details and the owner …(…)

Page 33: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.33 A. Ambroziewicz M. Śmiałek

So, what is the system’s scope?

All the use cases – scope for the functionality.

All notions – scope for the handled data.

Good idea: define also use cases and notions that are out of scope (eg. will be in scope for the next version).

Car registration system - scope

Check for the registration status

Issue a duplicate registration document

Verify car documentationRecord car data

Change clerk’s data

Record change in car data

Record the car being out of order

Assign an owner to a clerk

Show car registration statistics

Out of scope

Verify vehicle tax payments

Order car registration on-line

Order registration plates on-lineCar

Car details

Registrationdata

Clerk details

Owner

Cardocumentation

Tax payment

Owner account

Page 34: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.34 A. Ambroziewicz M. Śmiałek

Summary – documenting it all…

All the user requirements form a model that can be expressed in a single document: User Requirements Specification.

System vision

System scope

1 Introduction(Purpose, Definitions, Overview)

2 General description2.1 System vision2.2 Business process description

3 Specific requirements3.1 Functional requirements (use cases)

3.1.1 <Use case package name>3.2 Users and external systems3.3 Vocabulary3.4 Important non-functional requirements3.5 Environment constraints (technical and business)

Page 35: Lecture 2: Specifying user requirementswikidyd.iem.pw.edu.pl/attachments/SoftEng/SE1_Lecture2.pdf · Software Engineering by Albert Ambroziewicz Lecture 2: Specifying user requirements

Software Engineering Slide 2.35 A. Ambroziewicz M. Śmiałek

Summary – how will WE do it?

1 Introduction(Purpose, Definitions, Overview)

2 General description2.1 System vision2.2 Business process description

3 Specific requirements3.1 Functional requirements (use cases)

3.1.1 <Use case package name>3.2 Users and external systems3.3 Vocabulary3.4 Important non-functional requirements3.5 Environment constraints (technical and business)

System vision

Constraints

ProblemMotto

StakeholdersFeatures

Features

Use case descriptions Notion descriptions