Introduction of software requirement -: The software requirement are description of features and functionalities of the target system.Requirement convey the expectation of users from the software product. The Requirement can be obvious or hidden known or unknown expected or unexpected from client point of view.
Software requirement engineering -: The process to gather the software requirement from client analyze and document them is known as requirement engineering
The goal of requirement engineering is to develop and maintain sophisticated and descriptive system requirement specification document.
Requirement Engineering Process -: There are four step process these are the
- Feasibility Study
- Requirement Gathering
- Software Requirement specification
- Software Requirement Validation
Feasibility study -: When the client approaches the organization for gathering the desired product developed it comes up with a rough idea about what all function the software must perform and which a;l features are expected from the software.
Referencing to this information the analysis do a detailed study whether the desired system and its functionality are feasible to develop.
This feasibility study is focused towards goal of the organization. The study analyzes whether the software product can be practically materializes in terms of implementation contribution of project to organization cost constraints and as per value and objective of the organization. It explores technical aspect of the project and product such as usability,maintainability,productivity and integration ability.
Requirement Gathering-: I the feasibility report is positive towards undertaking the project. The next phase starts with collecting the requirement information from the user. Analysis and engineers communicate with the client and end users to know their ideas on what the software should provide and which features they want the software to include.
Software Requirement Specification(SRS) -: SRS is a document created by system analyst after the requirement are collect from various stakeholder. SRS define how the intended software will interact with hardware external interfaces,speed of operation,response time of system,portability of software across various platforms, Maintainability speed of recovery after crashing security quality limitation etc.
The requirement received from client are written in natural language. It is the responsibility of the system analyst to document the requirement in technical language so that they can be comprehended and use by the software development team. SRS should come withe the following features…
- User requirement are expressed in natural language.
- Technical requirement are expressed in structured language which is used inside the organization.
- Design description should be written in pseudo code.
- Format of forms and GUI screen prints
- Conditional and mathematical notation for DFDs etc.
Software Requirement validation -: After Requirement specification are developed the requirement mentioned in this document are validate. User might ask for illegal impractical solution or expert may interpret the requirement inaccurately. This result in huge in crease in cost if not nipped in the bud. Requirement can be checked against following conditions…
- If they can be practically implemented
- If they are valid and as per functionality and domain of software
- If they are any ambiguities
- If they are complete
- if they can be demonstrated
Requirement Elicitation Process -: Requirement elicitation process can be depicted using the following ..
Requirement Gathering -: The developers discuss with the client and end users and know their expectation from software.
Organizing Requirement -: The developers prioritize and arrange the requirement in order of importance urgency and convenience.
Negotiation and discussion -: If requirement are ambiguous or there are some conflicts in requirement of various stakeholder, it is then negotiated and discussed with the stakeholders. Requirement may then be prioritized and reasonably compromised.
Documentation -: All formal and informal functional and non functional requirement are documented and made available for next phase processing.
Requirement Elicitation Techniques -: Requirement elicitation is the process to find out the requirement for an intended software system by communicating with client end users system users and others who have a stake in the software development system.There are different way to discover system requirement. These are some ..
1-: Interviews -: interviews are strong medium to collect the requirement information. Organization may conduct several types of interview such as
- structured interview (when every single information to gather is decided in advance)
- Non structured interview – where information to gather is not decided in advance more flexible and less biased
- oral interviews
- written interviews
- one to one interview which are held between two person across the table
- group interview which are held beteween groups of participants.
2- Surveys -: Organization may conduct survey among various stakeholder by querying about their expectation and requirement from upcoming system.
3- Question and answer -: A document with pre-defined set of objective question and respective option is handed over to all stakeholder to answer which are collect and complied.
4- Task analysis-: Team of engineer and developers may analyze the operation for which the new system is required. If the client already has some software to perform certain operation it is studied and requirement of proposed system are collected.
5- Domain analysis-: Every software fails into some domain category. The expert people in the domain can be a great help to analyze general and specific requirement.
6-Brainstorming -: An informal debate is held among various stakeholders and all their inputs are recorded for further requirement analysis.
7.Prototyping -: It is building user interface without adding detail functionality for user to interpret the features of intended software product. It helps giving better idea of requirement. If there is no software installed at client end for developers reference and the client is not aware of its own requirement the developer creates a prototype based on initially mentioned requirement. the prototype is shown to the client and the feedback is noted. The client feedback serves as an input for requirement gathering.
8.Observation -: The team of experts visits the client organization or workplace.They observe the actual working of the existing installed system. They observe at the client’s end and how execution problem are dealt. the team itself draws some conclusion which aid to form requirement expected from the software.
Characteristics of Software Requirement -: Collection software requirement is the foundation of entire software development project. there are some software specification requirement …
- Clear
- correct
- consistent
- Coherent
- comprehensible
- Modifiable
- verifiable
- prioritized
- unambiguous
- Traceable
- Credible source
Software Requirement -: we should try to understand what sort of requirement may arise in the requirement elicitation phase and what kinds or requirement are expected from the software system. There are two category for software requirement..
- Functional Requirement
- Non Functional requirement
Functional Requirement -:Requirement which are related to functional aspect of software fall into this category. For example search option given to user search various invoice, etc.
Non–functional Requirements-: Requirement which are not related to functional aspect of software fail into this category.Non functional include as like
- security
- logging
- storage
- configuration
- performance
- cost
- interoperability
- flexibility
- Disaster recovery
- accessibility
User Interface Requirement -: It is an important part of any software or hardware or hybrid system. A software is widely accepted if it is easy to operate,quick in response,effectively handing operation error an providing simple yet consistent user interface.
User interface requirement are here ..
- content presentation
- easy navigation
- simple interface
- responsive
- consistent UI elements
- feedback mechanism
- default setting
- purposeful layout
- strategical use of color and texture
- provide help information
- user centric approach
Software system analyst-:It is an IT organization is a person who analyzes the requirement of proposed system and ensures that requirement are conceived and documented properly and accurately. role of an analyst starts during software analysis phase of SDLC. It is the responsibility of analyst to make sure that the developed software meet the requirement of the client. There are following responsibility..
- Analyzing and understanding requirement of intended software.
- Understanding how the project will contribute to the organizational objective
- identify source of requirement
- validation of requirement
- develop and implement requirement management plan
- documentation of business technical process and product requirement
- coordination with client to prioritize requirement and remove ambiguity
- Finalizing acceptance criteria with client and other stakeholders
Software Metrics and Measures-: Software measures can be understood as a process of quantifying and symbolizing various attributes and aspect of software. Software metric provide measures for various aspects of software process and software product.