Professional Documents
Culture Documents
ch1 3
ch1 3
Wolkite university
College of Computing
Department of Software Engineering
Bekretsyon B.
Software
I Computer programs and associated documentation
Software Engineering:
I All aspects of software production from system specification
through to maintaining the system after it has gone into use
Complexity
I Why is software complex?
I The complexity of the problem domain
I The difficulty of managing the development process
I The flexibility possible through software (almost everything is
possible)
Wolkite universityCollege of Computing Requirment
Department of Software Engineering (Bekretsyon
Engineering March 22, 2019 B.
5 / 56
)
Terminologies and Concepts
Source of Requirements
I Stakeholders: - are people or organizations that (directly or
indirectly) influence the requirements of a system. Examples:
Users and Operators of the system, developers, architects,
customers, and testers
I Documents: - contain important information that can provide
requirements. Examples: universal documents, such as standards
and legal documents
I Existing Systems: - Systems in operation can be legacy or
predecessor systems as well as competing systems.
I Domain/Business areas: - Allows to identify requirements that
come from the application domain of the system that reflect the
characteristics of that domain
I The system may be delivered late and cost more than originally
expected
I The customer and end-users may not satisfied with the system
I They may not use its facilities or may even decide to scrap it
altogether
I The system may be unreliable in use with regular system errors
and crashes disrupting normal operation
I If the system continues in use, the costs of maintaining and
evolving the system are very high
I Stakeholders don’t know what they want from the new system
I Its very difficult to imagine how a future system might work
I Business operate in a rapidly changing environment so their
requirements for system support constantly changing
I Multiple stakeholders with different goals and priorities are
involved in the requirements engineering process
I System stakeholders don’t have clear ideas about what they need
I They can only describe their requirements in vague and ambiguous
way
I Requirements are often influenced by political and organizational
factors that stakeholders will not admit to publicly
Wolkite university
College of Computing
Department of Software Engineering
Bekretsyon B.
Requirements
I Requirements for a system are:
I Descriptions of the services that a system should provide and the
constraints on its operation
I Reflect the needs of customers for a system that serves a certain
purpose such as controlling a device
I A detailed, formal definition of a system function
I Problem in Requirements Engineering Process
I Failure to make a clear separation between different levels of
requirements description
I Levels of requirements description:
I Different types of readers use them in different ways
I User and System Requirements
User Requirements:
I Expected system services provided to system users
I Statements, in a natural language plus diagrams
I The constraints under which it must operate
System Requirements:
I More detailed descriptions of the software system’s functions,
services, and operational constraints
I Define exactly what is to be implemented
I May be part of the contract between the system buyer and the
software developers
Example
I User and System Requirements - [Mental health care patient
information system (Mentcare)]
I User Requirements Definition: The Mentcare system shall
generate monthly management reports showing the cost of drugs
prescribed by each clinic during that month.
I System Requirements Specification: On the last working day
of each month, a summary of the drugs prescribed, their cost and
the prescribing clinics shall be generated.
Functional Requirements
I Requirements that describe what the system should do
Functional Requirements
I Requirements that describe what the system should do
Non-functional requirements
I Requirements that define how the system should do it
Functional Requirements
I Requirements that describe what the system should do
Non-functional requirements
I Requirements that define how the system should do it
Domain Requirements
I Requirements that are derived from the application domain
Functional Requirements
I Requirements that describe what the system should do
Non-functional requirements
I Requirements that define how the system should do it
Domain Requirements
I Requirements that are derived from the application domain
Pseudo Requirements
I Requirements imposed by the client that restrict the
implementation of the system (e.g., language, platform)
Information requirements
I Focus on the development and specification of the information
needed for people to do their work
I Specify the information needed and how it is to be delivered and
organized
I Example: Information requirement for the Mentcare system might
specify what information is to be included in the list of patients
expected for appointments that day
Wolkite universityCollege of Computing Types
Department
of Requirements Bekretsyon 30
B./ 56
of Software Engineering ( March 22, 2019)
Functional Requirements
CC
I Completeness: means that all services and information required by
the user should be defined
I Consistency: means that requirements should not be contradictory
DR
I Derived from application domain of the system
I They are not the specific needs of system users
I Consists new functional requirements and constrain existing
functional requirements
I Set out how particular computation must be carried out
I Software engineers may not understand the characteristics
I Missing or conflicting requirements are another challenge
I Example: Application domain (e.g., website design and
implementation) and Technology domain (e.g., object-oriented
systems or aspect-oriented programming)
Pseudo requirements
I Imposed by the client or the environment in which the system is to
operate
I They are not implemented
I They are adhered to because they merely limit the solution space
available during the development process
I Example: The system shall be implemented using web services
Wolkite university
College of Computing
Department of Software Engineering
Bekretsyon B.
Software processes
I A structured set of activities required to develop a software system
I Software processes are complex and rely on people decisions
making and judgments.
I Consequently, no universally applicable software process.
I Process used in different companies depends on
I Type of software being developed
I The Requirements of software customer, and
I Skills of the people writing the software.
I For safety-critical systems, a very structured development process
is required where detailed records are maintained.
I For business systems, with rapidly changing requirements, a more
flexible, agile process is likely to be better.
I There are many different software processes but all involve five
fundamental SE activities:
I Specification-Defining what the system should do and constraints
on its operation.
I Development-Software to meet the specification must be
produced.
I Validation-Checking that it does what the customer wants.
I Evolution-Software must evolve to meet changing customer needs.
Waterfall Model:
I Represent development process activities as a separate phases
I Difficulty to accommodate changes after process is underway
Spiral Development:
I Extends waterfall model by adding iteration
I Identify and solve sub-problems with the highest risk
I Process is represented as a spiral
I No fixed phases such as specification or design loops
Phases of RUP
I Inception: where a business case for the system is established;
I Elaboration: where requirements and architecture are developed;
I Construction: where the software is implemented; and
I Transition: where the system is deployed.
Wolkite universityCollege of Computing
Requirements
Department
Engineering
of Software EngineeringBekretsyon 48
B./ 56
Processes ( March 22, 2019)
Requirements Engineering Process
Requirements engineering
I Understanding and defining what services are required from the
system and Identifying constraints on the system’s operation and
development.
I RE is critical stage of software process, as mistakes made at this
stage inevitably lead to later problems in the system design and
implementation.
RE Process
I presents the requirements and demand management’s
methodology for performing RE best practices,
I Details project requirements engineering activities, and provides an
operational definition of the major components of the RE process.
I Aims to produce an agreed requirements document
Requirements specification
I Activity translating the information gathered during requirements
analysis into a document that defines a set of requirements.
I Two types of requirements may be included in this document.
I User requirements:Abstract statements of the system requirements
for customers and end-user of the system;
I System requirements:A more detailed description of the
functionality to be provided
Wolkite universityCollege of Computing
Requirements
Department
Engineering
of Software EngineeringBekretsyon 52
B./ 56
Processes ( March 22, 2019)
Requirements Engineering Process Activities
Requirements validation
I Checks the requirements for realism, consistency, and
completeness.
I Errors document are inevitably discovered. It must then be
modified to correct these problems.
Aims of RE process
I An agreed requirements document that specifies a system
satisfying stakeholder requirements
I User and System requirement documents
I Checklists
I Documents- [Requirements including Business]
Wolkite universityCollege of Computing
Requirements
Department
Engineering
of Software EngineeringBekretsyon 55
B./ 56
Processes ( March 22, 2019)
Thank You...!!!!