Engineering andManaging Software
Name : Ali Raza
In this Research Paper I read
different books of different authors and visits lot of websites for the topic
of Engineering and Managing Software Requirements. And then I explored
the interdisciplinary nature of Requirements Engineering (RE) and
portrays the current status of understanding and functionality to analyzing, modeling and managing of Requirement
Engineering activities and Managing Software Requirement for current as well as
future systems, with exacting emphasis on original ideas, frameworks and
empirical studies, and future directions of Requirement Engineering and
Managing Software Requirement practice
is that process by which the requirements for software are collected, analyzed,
documented, understanding, planning and then managed all over the Software
Engineering lifecycle. Requirement Engineering is concerned with understand the
user requirement and interpreting and understanding of stakeholder’s goals,
requirement needs and beliefs. There
are many other problems linked with Requirement Engineering that may lead to
incomplete requirements and incompatible cancellation of software projects/
Software developers understand that a
strong requirements management process is essential to the successful
completion of software projects to make worth in market and satisfy the clients
all expected requirement for which they want to develop that software or
As Requirement Engineering is best way to understating understanding,
identifying and articulating the role of business requirements which are
expected from stakeholders from diverse backgrounds with different needs.
Requirement Engineering is also a
management activity that manages different Requirement activities like
analyzing and monitoring products requirements and managing the project scope.
This research paper shows and describes to draw engineering and management features
to describe and analyzed issues that face the Requirement Engineering in the
Why a Research Paper?
Engineering and managing software requirements are main features and main
discussion for systematic software development to describe how to apply these
solutions to industrial practice and developing environments. Furthermore, it
provides collections of Requirement Research
and information about current industry practices. This
Research Papers describe few point, new insights into the software development
process for software developers. It also shows that Requirement Engineering is
also a management activity that manages different Requirement activities like
analyzing and monitoring products requirements and managing the project scope.
Background/Review of the State of the Art:
Requirements engineering is accepted
as one of the most critical stages in software design and development as it
addresses the critical problem of designing the right software for the customer
and fulfill all desired customer requirement for which that software or
application is established . Requirements engineering is progressively more
becoming a set of processes that operates on different levels, like
organizational product and project levels. The development of a software
requirements specification is widely recognized as the bases of system
Requirement Engineering is a
continuous process on organizational and product levels and a process limited
in time on the project level. However, most requirements engineering research
to date is devoted to handling requirements on the project level, making this the
main focus of this Research Paper. Software requirements are the critical determinants
of software quality as mentioned that errors in requirements are the most
numerous in the software life-cycle and also the most expensive and
time-consuming to correct.
What is a Requirement?
A requirement is that aspect that a
user or clients wants from developer for which purpose he wants to development.
So we can say that a Requirement typically refers to some aspect/features of a
new or enhanced product of service. Requirement is that condition that must be
fulfilled by a system to satisfy a contract.
610.12-1990 standard 24 defines a requirement as: “A
condition or capability needed by a user to solve a problem or achieve an objective.”
Types of requirements:
These are types of Requirements like
Functional requirements and Non Functional Requirements
Functional Requirement: what the
system will do. Mean what will be functionality of software.
Non Functional Requirement: Non
Functional Requirements are that requirements that defines solutions that will
meet the functional requirement like accuracy, performance, security and modifiability.
Requirement Engineering Process prefers to all life-cycle activities related to requirements in
which include gathering, documenting and managing requirements with significance
of requirement in the software process.
Common requirements engineering
activities are understanding, elicitation, and structuring, compromise,
verification and validation and to change management and requirements tracing.
There are several process models available to describe the requirements
The Role of Stakeholders in
requirements engineering aims to convert potentially incomplete,
incompatible and differing stakeholder goals into a complete set of high
quality requirements. As software
projects became more and more difficult, software developers face the challenge
of identifying the goals of stakeholders who come from a diverse range of backgrounds.
The major problems in requirements engineering is the management of different
types of inconsistencies ensuing from requirements specification, modeling, elicitation
and prioritization activities. When there are multiple stakeholders then it becomes
more inconsistence. So different stakeholders have different ways of showing
themselves and different opinions and also priorities.
Different Levels of
Requirement Engineering is major role to make software successful and satisfy
the clients. There are different levels of requirements like
organizational level, Requirement at product level, Requirement at project level.
software is mostly determined by quality of the development process mean how to
plan and managed whole development process to create it. Mostly projects or software
fail due to mistakes and misunderstanding the user requirements. It is most
important to have good understanding of clients in requirement engineering.
Specification and Modeling: In this
process it involves understanding the needs of stakeholders, modeling,
eliciting requirements and collecting them in a depository. This is an
important stage in software development.
Prioritization: It is not
easy to decide for developers which requirements are important to customers.
Requirements Dependencies and
Impact Analysis: It is very important to know
that requirements change and that this may significantly impact the software
Requirements Negotiation: In Negotiation Requirement engineering it is
essentially a complex communication and negotiation process involving,
designers, managers, project and maintainers customers.
Quality Assurance: Quality Assurance is main objective to ensure that high quality requirements are recorded
in the specification document. Good quality product always maintains their
worth and demand in market. The purpose of quality assurance is to establish
reasonable and realistic levels of confidence when writing and managing
requirements. Good Quality product always satisfies their customers or clients.
A Survey of Techniques,
Approaches, and Tools:
Requirements elicitation is the process of looking for, finding,
acquiring, and elaborating requirements for computer based systems. It is basic
that requirements are used rather than just captured or collected, in which
included discovery, emergence, and development elements in the elicitation
process. Requirements elicitation is a complex process involving because in many
activities with a variety of available techniques, approaches, and tools for
them. The relative strengths and weaknesses of these determine when each is
appropriate depending on the context and situation. The objectives of this research
paper are to present a comprehensive survey of important aspects of the
techniques, approaches, and tools for requirements elicitation, and examine the
current issues, challenges and trends that are faced by researchers and
practitioners in this field.
Issues and Pitfalls of
There has been a little confusion from past about the complexity
and difficulty of requirements elicitation in most situations, but the question
is: why is this still the case today? Main reason of problem is that it may
need to be addressed and overcome during the process of requirements
elicitation. In other words we can say that there are a large number of
contextual, human, economic, and educational factors which effect and may
inhibit effective requirements elicitation. For the sake of explanation we have
categorized some of the more normally happening issues and pitfalls in
requirements elicitation faced by both practitioners and researchers according
to the aspect of requirements elicitation that they most relate to.
Understanding is very common to understand that
stakeholders have difficulty articulating their requirements. In some cases
this may be a result of the analyst and stakeholders not sharing a common
understanding of concepts and terms, or the analyst is unfamiliar with the problem.
Quality of Requirements elicited may not be feasible, cost-effective, or easy to
In other cases they can be unclear, missing specifics, and not represented in
way as can be measured or tested. Additionally, requirements may be defined at
different and inadequate levels of detail. Because the process of elicitation
is informal by nature, a set of requirements may be incorrect, incomplete, inconsistent,
and not clear to all stakeholders. The context in which requirements are
elicited and the process itself is inherently volatile. As the project develops
and stakeholders become more familiar with the problem and solution domains,
the goals of the system and the wants of the users are susceptible to change.
In this way the
process of elicitation can actually cause requirements volatility and therefore
affect the quality of the requirements as a whole.