SOFTWARE REQUIREMENTS AND SPECIFICATION ASSSIGNMENT # 1
SECTION C SUBMITTED TO Sir Touqeer
SUBMITTED BY Ghulam Mohiuddin Sardar Ahmed Khan Mohammad Musharraf Nauman Asif Khizra
17221598-117 17221598-162 17221598-119 17221598-147 17221598-149
Requirements Engineering is one of the most important phases of SDLC, you are supposed to address why Requirements Engineering is hard to perform?
The Requirements Engineering (RE) is the most important phase of the Software Development Life Cycle (SDLC). Therefore, the most importance of Requirements Engineering is to develop effective software and in reducing software errors at the early stage of the development of software.
The Role of Requirements Engineering in Software Development Life Cycle: This phase is used to translate the incomplete needs and wishes of the potential users of software into complete, precise and formal specifications. The specifications act as the contract between the software users and the developers. Therefore, the importance of Requirements Engineering is must to develop effective software and in reducing software errors at the early stage of development of software. Since Requirement Engineering (RE) has great role in different stages of the SDLC, its consideration in software development is a best value. There exist a number of approaches for requirements engineering.
Requirements Gathering: Project managers and business organizations use the SDLC as the blueprint for completing each step of the lifecycle for software development. Each step of the SDLC is called a phase. The requirements gathering and analysis phase is the first phase of the SDLC.
Analyzing Requirements: Gathering requirements for the project is the most important part of the SDLC for the project managers and internal stakeholders of a project. During this phase, the customer gives the expectations of the project including with any special customer requirements related to the software. The customer meets with business managers and analysis to provide the requirements. It’s important for the project team to understand the needs of the customer because this information is critical to developing the product the customer requests. After the customer provides requirements for the product, the project manager and members of the project team begin to analyze the requirements. The business managers analyze each requirement to ensure the requirement can be including in the software without causing breaks or problem with system functionality.
1
Why it is always difficult to perform Requirement Engineering? The key factors that cause the difficulty to perform requirement engineering are as follows:
Changing Requirements Different perspectives Lack of Standardization People and politics
Requirements Change: 1. System requirements changes in the world, outside of the system. 2. As this constantly changes, so requirements inside the system also change. 3. It is difficult to change the whole system requirements, according to changing of new requirements. Types of changes: Technology Changes New technologies may be added or incorporate inside the system. Organizational changes The business structure and organization may change. Environmental changes: Market Changes The market for a system may change because of other systems introduced by competitors or changed customer expectations. Economic Changes The business may do better or worse than usual conditions. Political and legal changes Government policies may change cause the change in system requirements.
2
Different Perspectives: Different stakeholders will want different things from a system, so requirements become inconsistence. This also cause the requirements Conflict. Some requirements will be conflicting so that it is impossible to satisfy all stakeholder requirements without compromise. Key Stakeholders are Busy Developing detailed requirements for future systems often cannot be given a high priority due to busy life of senior stakeholders. It is difficult to arrange meetings and stakeholders do not have time to think deeply about the system. They therefore express their requirements as high-level descriptions, which have to be not liked by developers. Lack of Standardization: Good or Best requirements The impact of a system on a business is very hard to understand in advance so therefore we cannot tell which might be the ‘best’ system for any particular business. Quality improvement A common approach to quality improvement is to develop an effective process then standardize that process. This means that all development then uses a proven approach. But this is very difficult for requirements engineering. Process and product variability Specifications for different types of system may be expressed in completely different ways. So the level of detail required in a requirements specification differs greatly depending on the type of product that is being developed. Process variability 3
Different companies use completely different processes involving different types of people to the documentation of these specifications. So, scope of standardization is limited. Politics and people: Many system requirements are influenced by the politics in an organization. Decisions on requirements are not made on a normal basis but are made because of the personal goals of stakeholders. New systems are often introduced to give central management in an organization for more control and to ensure that all parts of the organization work in the same way. But this may be resisted by stakeholders who use existing systems that are better suited to their ways of working. Requirements engineers may not understand the politics and, even when they do, they may not be able to understand and challenge the ‘political’ requirements. People providing requirements for a system may actively or passively refuse to cooperate in the requirements engineering process.
4