Escolar Documentos
Profissional Documentos
Cultura Documentos
A theory is the more impressive the greater the simplicity of its premises is. Albert Einstein (1879 1955)
Learning Outcomes
By the end of this lecture you will be able to:
Understand the need for Requirements Engineering & Management Distinguish between the different types of Requirements Describe the principal Requirements Engineering activities and their relationships Identify the challenges involved in Requirements Engineering and Management
What is a Requirement?
Definition of Requirement by IEEE
A condition or capability needed by a user to solve a problem or achieve an objective A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification or other formally imposed documents
What is a Requirement?
A requirement is a necessary attribute in a system, a statement that defines the capability, characteristic, or quality factor of a system in order for it to have value and utility to a customer or user. -By Ralph Rowland Young A requirement is a collection of needs arising from the user and various other stakeholders (general organization, community, government bodies and industry standards), all of which must be met By AybkeAurum & ClaesWohlin(Eds.)7
Types of Requirements
User requirements
Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for Customers
System requirements
A structured document setting out detailed descriptions of the system services and constraints. Written as a contract between client and contractor
Requirements Classification
Functional requirements
Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.
Non-functional requirements
constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.
Domain requirements
Requirements that come from the application domain of the system and that reflect characteristics of that domain
Requirement Readers
User requirements Client managers System end-users Client engineers Contractor managers System architects
System requirements
Levels of Requirements
Strategic Management Requirements at organisational level Tactical Management Operational Management
Tradeoff between technology-push and market-pull Business strategy Planned benefits of Competitiveness the product Technology Marketing Economic value of the product Packing requirements for a specific release Product architectures Resource management Implementation of a specific release
Change management Requirements volatility i.e. whether a particular requirement is subject to a syntactic or semantic change Validation in terms of which requirements will go to the next release.
Types of Requirements
Functional Requirements - a description of the facility or feature required. Functional requirements deal with what the system should do or provide for users. They include description of the required functions, outlines of associated reports or online queries, and details of data to be held in the system.
Examples The user shall be able to search either all of the initial set of databases or select a subset from it The system shall provide appropriate viewers for the user to read documents in the document store Every order shall be allocated a unique identifier (ORDER ID) which the user shall be able to copy to the account's permanent storage area.
Types of Requirements
Non-Functional Requirements - a description and, where possible, target values of associated non-functional requirements.
Non-functional requirements detail constraints, targets or control mechanisms for the new system. They describe how, how well or to what standard a function should be provided. For example, levels of required service such as response times; security and access requirements; technical constraints; required interfacing with users' and other systems; and project constraints such as implementation on the organisation's hardware/software platform.
Types of Requirements
Non functional requirements also includes: Product requirements Requirements which specify that the delivered product must behave in a particular way, e.g. execution speed, reliability etc. Organisational requirements Requirements which are a consequence of organisational policies and procedures, e.g. process standards used, implementation requirements etc External requirements Requirements which arise from factors which are external to the system and its development process, e.g. interoperability requirements, legislative requirements etc.
Types of Requirements
Types of Requirements
Domain requirements
Types of Requirements
Domain requirements
Example : Library system Because of copyright restrictions, some received on-line documents must be deleted immediately after printing
Types of Requirements
User requirements
Should describe functional and non-functional requirements so that they are understandable by system users who don't have detailed technical knowledge User requirements are defined using natural language, tables and diagrams.
Requirements problems
The requirements do not reflect the real needs of the customer for the system. Requirements are inconsistent and/or incomplete. It is expensive to make changes to requirements after they have been agreed. There are misunderstandings between customers, those developing the system requirements and software engineers developing or maintaining the system.
In addition, the requirements document should always include an introductory chapter which provides an overview of the system, business needs supported by the system and a glossary which explains the terminology used. Should include both a definition and a specification of requirements
Managers
System engineers
Use the requirements to develop validation tests for the system Use the requirements to help understand the system and the relationship between its parts.
Requirements Engineering
Requirements engineering is the branch of software engineering concerned with the real-world goals for, functions of, and constraints on software systems. It is also concerned with the relationship of these factors to precise specifications of software behaviour and to their evolution over time and across software families.
Why is RE difficult?
Businesses operate in a rapidly changing environment so their requirements for system support are constantly changing. Multiple stakeholders with different goals and priorities are involved in the requirements engineering process. System stakeholders do not have clear ideas about the system support that they need. Requirements are often influenced by political and organisational factors that stakeholders will not admit to publicly.
Why is RE difficult?
A perfect example of requirements engineering not being done well was the Mars Climate Orbiter mishap in 1999. The Orbiter, which cost $125 million, was lost because one software team was working in imperial units and another in metric units.
Now, this mistake should have been picked up and corrected during the integration and testing phases of the project, but a detailed requirements specification for the problematic software module might have been enough to prevent the mistake in the first place
Why is RE difficult?
Stakeholders Perspective
Exercise
Suggest who might be the stakeholders in bank? Explain why it is almost inevitable that the requirements of different stakeholders will conflict in some ways?
Requirements Management
It is the process of understanding and controlling changes to system requirements
Different users have different requirements and priorities. It is often discovered that priorities given to different users needs to be changed. System customers impose requirements because of organisational and budgetary constraints. These may conflict with end-user requirements. The business and technical environment of the system changes and these must be reflected in the system itself.
New hardware may be introduced Business priorities may change with consequent changes in the system support which is needed New legislation and regulations may be introduced which must be implemented by the system
Exercise
Identify the stakeholders of an ATM system
Write down 10 functional and 10 non-functional requirements for the ATM system
Exercise
Functional & Non-functional Requirements
Functional Requirements: Actions that a system must be able to perform without taking physical constraints into considerations. Non-functional Requirements: Describe the required attribute of the system (performance, security, etc.).
Exercise
answer
References
Distributed Multimedia Research Group, Department of Computing, Lancaster University Architectural Requirements in the Visual Architecting Process by Ruth Malan and Dana Bredemeyer, Bredemeyer Consulting Ian Sommerville 2004 , 7th Edition Software Engineering The Requirements Engineering Handbook by Ralph R. Young Engineering and Managing Software Requirements, Aybke Aurum Claes Wohlin