Elaboration & Negotiation Process Lecture-17
Recap Structure analysis Flow oriented modeling DFDs CFD Processing narratives
Today’s lecture Elaboration process summary Negotiation process
Elaboration Where it lies in RE process? Why we do it? What we do in it? How we do it?
Object Oriented Approach Scenario based modeling
Scenario based modeling - use case text
Scenario based modeling - Activity diagram
Object Oriented Approach Class modeling – Class diagram
Object Oriented Approach Class modeling – CRC modeling
Object Oriented Approach Behavioral modeling – state diagram
Object Oriented Approach Behavioral modeling – sequence diagram
Structured approach Flow oriented modeling - DFDs
Things to remember during analysis The analysis model should focus on requirements that are visible within the problem or business domain The level of abstraction should be relatively high Each element of the analysis model should add to an overall understanding of software requirements and provide insight into the following Information domain, function, and behavior of the system The model should delay the consideration of infrastructure and other non- functional models until the design phase First complete the analysis of the problem domain The model should minimize coupling throughout the system Reduce the level of interconnectedness among functions and classes The model should provide value to all stakeholders The model should be kept as simple as can be
Inception Elicitation Elaboration Negotiation Specification Validation Requirements Management
Negotiation as a process
Requirements negotiation Disagreements about requirements are inevitable when a system has many stakeholders. Conflicts are not ‘failures’ but reflect different stakeholder needs and priorities Requirements negotiation is the process of discussing requirements conflicts and reaching a compromise that all stakeholders can agree to In planning a requirements engineering process, it is important to leave enough time for negotiation. Finding an acceptable compromise can be time-consuming Software Requirements Engineering
Negotiation During negotiation, the software engineer reconciles the conflicts between what the customer wants and what can be achieved given limited business resources Requirements are ranked (i.e., prioritized) by the customers, users, and other stakeholders Risks associated with each requirement are identified and analyzed Rough guesses of development effort are made and used to assess the impact of each requirement on project cost and delivery time Using an iterative approach, requirements are eliminated, combined and/or modified so that each party achieves some measure of satisfaction
Summary Elaboration process summary Negotiation process