Elaboration Negotiation Requirements Engineering Tasks

J.E.D.I Elicitation Work Product The output of the elicitation task can vary depending on size of the system or product to be built. For most systems, the output or work products include: • A statement of need and feasibility • A bounded statement of scope for the system or product • A list of customer, users, and other stakeholders who participated in requirements elicitation. • A description of the systems technical environment • A priority list of requirements, preferably, in terms of functions, objects and domain constraints that apply to each

3.2.3 Elaboration

The information obtained from the team during inception and elicitation is expanded and refined during elaboration. This requirement engineering task focuses on defining, redefining and refining of models, namely, the requirements model system or problem domain and analysis model solution domain. It tries to model the WHAT rather than the HOW. The requirements model is created using methodologies that capitalizes on user scenarios which define the way the system is used. It describes how the end-users and actors interact with the system. The analysis model is derived from the requirements model where each scenario is analyzed to get the analysis classes, i.e., business domain entities that are visible to the end-user. The attributes of each analysis class are defined and responsibilities that are required by each class are identified. The relationships and collaboration between classes are identified and a variety of supplementary UML diagrams are produced. The end-result of elaboration is an analysis model that defines the informational, functional and behavioral domain of the problem. The development of these models will be discussed in the Requirements Analysis and Model, and Requirements Specifications section of this chapter. Elaboration Work Product The requirements model and the analysis model are the main work product of this task.

3.2.4 Negotiation

In negotiation, customers, stakeholders and software development team reconcile conflicts. Conflicts arise when customers are asking for more than what the software development can achieve given limited system resources. To resolve these conflicts, requirements are ranked, risk associated with each requirements are identified and analyzed, estimates on development effort and costs are made, and delivery time set. The purpose of negotiation is to develop a project plan that meets the requirements of the user while reflecting real-world constraints such as time, people and budget. It means that customer gets the system or product that satisfies majority of the needs, and the software team is able to realistically work towards meeting deadlines and budgets. Software Engineering 67 J.E.D.I The Art of Negotiation Negotiation is a means of establishing collaboration. For a successful software development project, collaboration is a must. Below are some guidelines in negotiating with stakeholders. 1. Remember that negotiation is not competition. Everybody should compromise. At some level, everybody should feel that their concerns have been addressed, or that they have achieved something. 2. Have a strategy. Listen to what the parties want to achieve. Decide on how we are going to make everything happen. 3. Listen effectively. Listening shows that you are concern. Try not to formulate your response or reaction while the other is speaking. You might get something that can help you negotiate later on. 4. Focus on the other partys interest. Dont take hard positions if you want to avoid conflict. 5. Dont make it personal. Focus on the problem that needs to be solved. 6. Be creative. Dont be afraid to think out of the box. 7. Be ready to commit. Once an agreement has been reached, commit to the agreement and move on to other matters.

3.2.5 Specification