Professional Documents
Culture Documents
- Jay
Fact - 1
Fact -2
Fact - 3
Fact - 4
How it differs?
Importance of requirements
What it costs?
Requirement - Definition
Defining a good requirement As requirements are the foundation of any development project, teams need to understand the attributes of a good requirement. The best requirements are: Correct Complete Clear Consistent Verifiable (technically and legally possible) (express a whole idea or statement) (unambiguous and not confusing) (not in conflict with other requirements) (it can be determined that the system meets the requirement) Traceable (uniquely identified and tracked) Feasible (can be accomplished within cost and schedule) Modular (can be changed without excessive impact) Design-independent (does not pose a specific solution on design) Each requirement must first form a complete sentence, containing a subject and a predicate. These sentences must consistently use the verb shall, will or must to show the requirement's mandatory nature, and should or may to show that the requirement is optional.
Requirement engineering
Requirements engineering is a sub-discipline of software engineering that focuses on discovering, analyzing, specifying and managing the system requirements. A systematic approach to - Eliciting, organizing, and documenting the requirements of the system, and - Establishing and maintaining agreement between the customer and the project team on the changing requirements of the system. Appropriate mechanism for understanding what the customer wants, analyzing needs, negotiating a reasonable solution, validating the specification and managing changes in requirements. Requirement management: Requirements are real capabilities which the system must provide. It makes sense therefore to find out what the requirements are, write them down and organize them, and manage them in the event that they change. Stated another way we'll define requirements management as a systematic approach to eliciting, organizing, and documenting the requirements of a system.
The framework
RE - Process
Requirements elicitation
Requirements Elicitation is a process during which product requirements are elicited from a variety of sources. Possible sources of information for this task are the customer, end user, any other stakeholder, books, existing applications, domain knowledge, organizational standards or constraints and any other rules or regulations. Various techniques can be used for eliciting requirements
Interviews Surveys Data mining Questionnaires Market analysis Focus groups Future workshops Soft system methodology Co-operative requirements capture Scenario based requirements elicitation Multiple Viewpoint Requirements Capture Observation and Social Analysis Designer as Apprentice
Interviews
Interviewing is a technique where requirements engineers and different stakeholders communicate directly with each other. Interviews are usually conducted in a question-answer format with the intention of eliciting the required information for system development. There are two types of interviews: -Structured -Unstructured Structured: In the structured interview, the requirements engineer prepares a list of specific questions and collects responses for them from the customer. Unstructured: An unstructured interview is a discussion between the requirements engineer and stakeholders about the problem concepts and concerns of users. Here the requirements engineer makes note of certain topics to be discussed *Needs experience *Both the interviewer and interviewee must have proper background knowledge and excellent communication skills.
Used to analyze and extract useful patterns from the data collected.
Mining the data about customers such as the responses to a product survey or customers reaction to a new technology, can draw important conclusion about their needs. These techniques are useful if the proposed product is targeted towards a large number of customers. In such cases, information gathered from a few customers will not be sufficient. Surveys and Questionnaires can be used to obtain information from a large number of customers. Data mining techniques can be used to analyze the data obtained from those surveys to identify different classes of customers and *Certain patterns or relationships in their needs. However, it is always difficult to get a good and representative number of responses to surveys. In addition to this, the list of questions prepared should be relevant and should be distributed to the right sample population.
Market analysis
The process of analyzing the product market for its current and future trends is called market analysis. Market analysis is a good technique to elicit requirements for a system. Gathering information about the competitor products would help to identify the features that are not present in current products Market analysis is a good technique to analyze similar products in the market. It can reveal how technologies may change in the near future. It can also predict changes in customers demands. Using these details, organizations can make decisions about selecting certain features or technologies for their products. *However, in order to obtain good results from the analysis, the market expert must be well experienced and should have the skill to collect the required information.
Focus groups
-Focus groups are group session approaches, where requirements engineers observe and study users needs. Groups of users are allowed to discuss in a free environment certain problem concepts under the supervision of the requirements engineer.
-
The requirements engineer acts as the facilitator and his role is passive. When the users discuss with each other, the requirements engineer can learn about what they think about the product and what they actually want from the product
-
-Since the users are allowed to discuss in a free environment, problems that occur due to a lack of communication can be reduced. It is easier to participate in a free discussion than in a structured interview. -In addition to this, when different customers discuss certain topic, it is easy to identify requirements conflicts and to resolve them. * However, the requirements engineer must have good listening and problem solving skills. Also when several different customers discuss together, it is important to maintain proper coordination between them.
23 Convergys Confidential and Proprietary
Future workshops
-Future workshops are group session approaches similar to focus groups. -In a future workshop session, the current problem situation is discussed, future visions of the systems are generated and possible solutions to realize those visions are discussed -During the process, any changes in the technologies or product features that may occur in the future can be foreseen. -Using these details, the organization can not only make better selections for its current product, but also develop plans for its future products.
-Cooperative requirements capture is another group session approach for requirements engineering. The idea is to include not only the users and designers but also those who have a stake in the product. -In this approach all the stakeholders together explore the user environment and develop a shared vision of the future system. -During the group session, participants discuss the current user activities and envision any possible changes that might occur in future. -The advantage of using the CRC approach for requirements engineering is that it involves all the stakeholders in the decision making process. -Due to this, the needs of different stakeholders can be easily understood. Since all the stakeholders explore and develop a shared understanding of the current and future visions of the product, it is possible to identify requirement changes and conflicts early in the development process. -In addition to this, it supports communication between the participants.
26 Convergys Confidential and Proprietary
Different stakeholders will have different requirements that the system needs to fulfill. Each stakeholder has his/her own viewpoint on the services that the system should provide and the way in which it should be provided.
-
In this approach, different viewpoints of the system are identified and the requirements for each viewpoint are collected separately
-
Requirements gathered from each viewpoint can be analyzed to identify requirements conflicts. Through proper negotiations, most appropriate requirements can be selected. On the other hand, it is a very good technique to develop a generic product that satisfies the needs of different customers.
-
-Occasionally, it is difficult to elicit requirements just by talking to the users or asking questions. Users are often experts in performing jobs rather than describing how they do them. In such cases, observing and recording the users working in their real environment for a considerable amount of time can provide a lot of information about their requirements. These techniques includes Ethnographic studies - where an ethnographer observes and records a group of users working in their real work place
-
When there is a lack of domain knowledge in the organization, Observations and Social Analysis are good techniques to elicit system requirements.
-
Example If the system being developed is completely new, developers may not have adequate domain knowledge required for product development. Sometimes users are not capable of explaining how they perform certain tasks and what they want from the product. In such cases, this is a very good technique for requirements capturing.
29 Convergys Confidential and Proprietary
Designer as apprentice
This is a technique where the designers learn from the user about their work. Here user is the master and designer is the apprentice who learns by watching and listening to the user. The idea behind this technique is to provide the designer with some practical knowledge about the end users working environment and his/her requirements on the proposed system Getting some practical knowledge about the users work practice helps designers to better understand their needs. It also promotes communication between the user and designer. However, to get good results, the designers should have excellent learning skills.
Requirement analysis
A feasibility study and cost-benefit analysis of the product development process may be conducted and the scope of the system is determined. Customer requirements are analyzed and requirements conflicts if any are resolved. Requirements analysis ensures that the system is going to provide the services that the customers require. It also helps the designer to understand the customer requirements.
For product line development, the requirements analysis stage involves: Identification of commonalities and variabilities in the domain Identification of potential members and their features and modeling them to get a better understanding of the family.
Once the common and variable requirements are identified, potential products and their features are selected. Using these details, the feasibility of developing those products as a family is analyzed. Aspects to choose product members and their features, Company strategies Customers priority Market advantage Contribution to the domain and The competition Market Analysis is a good technique that can provide some useful information regarding the current And future market trends and information about other products in the market. Based on the results of this analysis, products and their features can be selected. Once the products and features are selected, they must be modeled. Modeling enhances the understandability and simplifies the design. Depending on the product line approach used suitable modeling techniques can be used.
31 Convergys Confidential and Proprietary
Structured system analysis (SSA) Object oriented analysis (OOA) Joint application design (JAD) Quality function deployment (QFD) Participatory design
SSA: - Function-oriented requirements analysis - Data-flow diagrams can be used to represent the flow of data between various tasks in the domain whereas entity-relationship diagrams can be used to represent various domain entities and their relationships. - Data dictionaries and entity-relationship models. OOA: - Use case diagrams are suitable for modeling requirements from the users perspective and high-level class diagrams can be used to model requirements from the designers perspective. Unified Modeling Language (UML) is a widely used object-oriented modeling language - Flow of messages between the objects and the evaluation of changes in their states due to events or any other stimuli
32 Convergys Confidential and Proprietary
JAD is a group session requirements analysis and design approach developed by IBM. JAD is a group session approach that involves users in the system design. All the stakeholders can participate in the decision-making process. Activities such as defining high-level requirements and bounding system scope can be extended to identify product line requirements and characterize individual products in the family. JAD defines six different roles of participants who should participate in a session: a session leader or facilitator, a system analyst, a specialist, a user representative, an information system representative and the executive sponsor.
It focuses on translating customer requirements into technical requirements throughout the product development process. The entire QFD process focuses on a house of quality, which maps customer requirements to the proposed product features. Each development phase can use its own house of quality. QFD for the planning phase is used for requirements analysis. Participants are asked to rate each requirement according to their relevance to a particular feature. In addition to this, correlation between various technical features, customers importance of each requirement and market evaluation of the competitive features are also considered. Based on the subjective analysis of the above factors, the final product features are selected. Thus the QFD approach helps to develop quality features that are important to customers QFD is a good approach to select product features and to make high-level design decisions. It encourages the organization to consider factors such as customers priority and competition for requirements analysis.
Requirement specification
SRS: Each product in the family must be specified separately and there should be proper traceability mechanisms between the family and individual product requirements. A SRS document is developed for each family member as well as for the entire family. While writing the family SRS, all the common and variable requirements must be documented. XML XML can be used to specify product line requirements. Since XML allows hierarchical representation of data, common and variable requirements can easily be represented.
36 Convergys Confidential and Proprietary
Requirement validation
Requirements Validation is concerned with checking the requirements for omissions, correctness, precision conflicts and ambiguities and for ensuring that the requirements follow quality standard Requirement reviews Domain experts Requirements engineers Customers and Stakeholders. Prototyping System prototypes can de developed to demonstrate the system behavior before the final product is being developed. Users have an opportunity to really see how the final system is going to behave and they can provide any feedback regarding possible misunderstandings or any other changes in the requirements. Types: Throwaway prototyping (discarded) Evolutionary prototyping (adapted)
Requirement validation
-Requirement testing
Requirements can also be verified by defining test cases for each requirement. Test cases must be defined for both the common and variable requirements. Once the member products and their features are selected, test cases can be defined for each requirement so that products can be tested against each requirement at the end. During the process, it is possible to identify any defect or problems in the requirements.
Clarity Completeness Compliance Consistency Correctness Data usage Functionality Interface Level of detail Maintainability Performance Reliability Testability Traceability