Lecture 1
Lecture 1
Lecture 1
Introduction
• Question of the day
– Can you walk on the water?
• Think and discuss at the end of the lecture
Background
• Development of failed software since 60s:
– Systems being delivered late over budget
– They don’t really do what user wanted to
– Never been used to their full effectiveness by people
• Reason ?
– No single reason / single solution to the problem
– Major contributory factor – “ Difficulties with system
requirement”
• System requirement
– What the system is required to do and the circumstances
under which it is required to operate
– A requirement is a necessary attribute in a system
Requirement
• Something required, something wanted or needed
– Webster’s dictionary
• There is a huge difference between wanted and needed and it
should be kept in mind all the time
• Sources of Requirements
– Stakeholders
• People affected in some way by the system
– Documents
– Existing system
– Domain/business area
• What are requirements?
– A statement of a system service or constraint
– Defined early as specification of
• what should be implemented
• Description of how the system should behave, domain
information, constraints on system operation
– So the requirement might describe
• A user level facility - spell checker and correction
• A very general system property - personal information disclosure
• A specific constraint on system - sensor must be polled 10 times
a second
• How to carry out some computation - some formula
• Why are Requirements important?
– They provides the basis for all the development work
that follows
– Once the requirements are set, developers initiate other
technical work:
• System design, development, testing, implementation and
operation
Requirements Engineering
• The process of establishing the services that the
customer requires from a system and the
constraints under which it operates and is
developed.
– Real Requirement
• Those that reflect the verified needs of user for a particular
system
– Identification is interactive and Iterative requirement process
Stakeholder Agreed
needs requirements
Requirements System
Organisational engineering process
standards specification
System
Regulations models
Domain
information
RE Activities
Requirements
Engineering
Lecture 2
Requirements Analysis
• The aim of requirements analysis
– “To discover problems with the system
requirements, especially incompleteness and
inconsistencies”
• Analysts read the requirements, highlight
problems, and discuss them in requirements
review meetings
– This is a time-consuming and expensive activity
Requirements Analysis (checks)
• Necessity checking
– The need for the requirement is analyzed.
• In some cases, requirements may be proposed which don’t contribute
to the business goals of the organization or to the specific problem to be
addressed by the system.
• Consistency and completeness checking
– The requirements are cross-checked for consistency and
completeness.
• Consistency means that no requirements should be contradictory
• Completeness means that no services or constraints which are needed
have been missed out.
• Feasibility checking
– The requirements are checked to ensure that:
• They are feasible in the context of the budget and schedule available
for the system development.
Problems of Requirements Analysis
• Stakeholders don’t know what they really want.
– Stakeholders express requirements in their own terms.
– Different stakeholders may have conflicting
requirements.
• Organisational and political factors may influence
the system requirements.
– The requirements change during the analysis process.
• New stakeholders may emerge and the business environment
change.
Requirements Negotiation
• Disagreements about requirements are
inevitable when a system has many
stakeholders.
– Conflicts are not ‘failures’ but reflect different
stakeholder needs and priorities
• Requirements negotiation is the process of
discussing requirements conflicts and
reaching a compromise that all stakeholders
can agree to
Requirements Negotiation Stages
• Requirements discussion
– Requirements which have been highlighted as
problematical are discussed and the stakeholders
involved present their views about the requirements.
• Requirements prioritization
– Disputed requirements are prioritized to identify critical
requirements and to help the decision making process.
• Requirements agreement
– Solutions to the requirements problems are identified
and a compromise set of requirements are agreed.
• Generally, this will involve making changes to some of the
requirements.
Requirements Specification
• This activity is used to produce formal software
requirement models.
• All the requirements including the functional as well
as the non-functional requirements and the
constraints are specified by these models in
totality.
• During specification, more knowledge about the
problem may be required which can again trigger
the elicitation process.
• The models used at this stage include ER
diagrams, data flow diagrams(DFDs), function
decomposition diagrams(FDDs), data dictionaries,
etc.
Requirements Verification and Validation
Verification: It refers to the set of tasks that ensure that software correctly
implements a specific function.
Validation: It refers to a different set of tasks that ensure that the software
that has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirements definitions
would propagate to the successive stages resulting in a lot of modification
and rework.
The main steps for this process include:
• The requirements should be consistent with all the other requirements
i.e no two requirements should conflict with each other.
• The requirements should be complete in every sense.
• The requirements should be practically achievable.
• Reviews, buddy checks, making test cases, etc. are some of the
methods used for this.
Requirements Management
• The process of managing change to the
requirements for a system
• The principal concerns of requirements
management are:
– Managing changes to agreed requirements
– Managing the relationships between requirements
– Managing the dependencies between the requirements
document and other documents produced in the systems
engineering process
Requirements Management VS
Requirement Traceability
• Req Management Vs Req Traceability
– Requirements cannot be managed effectively without
requirements traceability
– A requirement is traceable if
• you can discover who suggested the requirement,
• why the requirement exists,
• what requirements are related to it and
• how that requirement relates to other information such as
systems designs, implementations and user documentation
RE process problems
• Lack of stakeholder involvement
• Business needs not considered
• Lack of requirements management
• Lack of defined responsibilities
• Stakeholder communication problems
• Over-long schedules and poor quality requirements
documents
RE process problems
• Personality and status of stakeholders
– May be from different department and may not give
quality time to RE
• The personal goals of individuals within an
organization
– May consider their own interest, may not talk about the
goal of other
• The degree of political influence of stakeholders
within an organization
– Seniors Vs junior viewpoint
– Political interest and pressure group
• Walking on water and developing software from a
specification are easy
• if they are frozen