Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 4500: Software Development Mondays and Wednesdays 2:50-4: Snell Engineering Center.

Similar presentations


Presentation on theme: "CS 4500: Software Development Mondays and Wednesdays 2:50-4: Snell Engineering Center."— Presentation transcript:

1 CS 4500: Software Development Mondays and Wednesdays 2:50-4:30 108 Snell Engineering Center

2 Requirement Engineering Materials: Pressman (2014). Software Engineering: A Practitioner's Approach. (Chapters 8, 9, 10, 11) All ppt materials are taken from Pressman’s book ppt

3 Requirements Engineering Requirement: A function, constraint or other property that the system must provide to fill the needs of the system’s intended user(s) Engineering : implies that systematic and repeatable techniques should be used Requirement Engineering: means that requirements for a product are defined, managed and tested systematically

4 It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem. In some cases requirements engineering may be abbreviated, but it is never abandoned. Result of this stage: o Document o Model o List of stories or features This list need to be verified, validated and added in your plan Requirements Engineering

5 Characteristics of a Good Requirement Clear and Unambiguous o standard structure o has only one possible interpretation Correct: contributes to a real need Understandable: A reader can easily understand the meaning of the requirement Verifiable: can be tested Complete

6 Why is Getting Good Requirements Hard? Stakeholders don’t know what they really want. Stakeholders express requirements in their own terms. Different stakeholders may have conflicting requirements. Organisational and political factors may influence the system requirements. The requirements change during the RE process. New stakeholders may emerge and the business environment change.

7 Requirements Engineering Tasks Inception — Establish a basic understanding of the problem and the nature of the solution. Elicitation — Draw out the requirements from stakeholders. Elaboration (Highly structured) — Create an analysis model that represents information, functional, and behavioral aspects. Negotiation — Agree on a deliverable system that is realistic for developers and customers. Specification — Describe the requirements formally or informally. Validation — Review the requirement specification for errors, ambiguities, omissions, and conflicts. Requirements management — Manage changing requirements.

8 Focus on the what not the how!

9 Requirements Engineering Tasks Inception — Establish a basic understanding of the problem and the nature of the solution. Elicitation — Draw out the requirements from stakeholders. Elaboration (Highly structured) — Create an analysis model that represents information, functional, and behavioral aspects. Negotiation — Agree on a deliverable system that is realistic for developers and customers. Specification — Describe the requirements formally or informally. Validation — Review the requirement specification for errors, ambiguities, omissions, and conflicts. Requirements management — Manage changing requirements.

10 Why Requirement elicitation is difficult? Problems of scope: o The boundary of the system is ill-defined. o Customers/users specify unnecessary technical detail that may confuse rather than clarify objectives. Problem of understanding: o Customers are not completely sure of what is needed. o Customers have a poor understanding of the capabilities and limitations of the computing environment. o Customers don ’ t have a full understanding of their problem domain. o Customers have trouble communicating needs to the system engineer. o Customers omit detail that is believed to be obvious. o Customers specify requirements that conflict with other requirements. o Customers specify requirements that are ambiguous or not able to test. Problems of volatility: o Requirement change over time.

11 How would you resolve this? How do you elicit requirements?

12 Collaborative Requirement Gathering Meetings are attended by all interested stakeholders. Rules established for preparation and participation. Agenda should be formal enough to cover all important points, but informal enough to encourage the free flow of ideas. A facilitator controls the meeting. A definition mechanism (blackboard, flip charts, etc.) is used. During the meeting: o The problem is identified. o Elements of the solution are proposed. o Different approaches are negotiated. o A preliminary set of solution requirements are obtained. o The atmosphere is collaborative and non-threatening.

13 Collaborative requirement gathering In initial meeting, distribute “Product request” (defined by stakeholder) to all attendee. Based on product request, each attendee is asked to make o List of objects (Internal or external system objects) o List of services ( Processes or functions) o List of constraints ( cost, size, business rules) and o performance criteria ( speed, accuracy) are developed. Collect lists from everyone and combined. Combined list eliminates redundant entries, add new ideas, but does not delete anything. Objective is to develop a consensus list in each topic area (objects, services, constraints and performance).

14 Based on lists, team is divided into smaller sub-teams: each works to develop mini-specification for one or more entries on each of the lists. Each sub-team the presents its mini-specification to all attendees for discussion. Addition, deletion and further elaboration are made. Now each team makes a list of validation criteria for the product and present to team. Finally, one or more participants is assigned the task of writing a complete draft specification. Collaborative Requirement Gathering

15 Use Cases Through prototyping

16 Approaches to prototyping

17 Evolutionary prototyping

18 Throw-away prototyping

19 Requirements Engineering Tasks Inception — Establish a basic understanding of the problem and the nature of the solution. Elicitation — Draw out the requirements from stakeholders. Elaboration (Highly structured) — Create an analysis model that represents information, functional, and behavioral aspects. Negotiation — Agree on a deliverable system that is realistic for developers and customers. Specification — Describe the requirements formally or informally. Validation — Review the requirement specification for errors, ambiguities, omissions, and conflicts. Requirements management — Manage changing requirements.

20 Specification It can be – o Written Document o A set of graphical models, o A formal mathematical models o Collection of usage scenario. o A prototype o Combination of above. Agile: stories mostly explaining usage scenarios

21 Requirements Modeling and Specification

22 Analysis Model - A Bridge

23 Elements of Analysis model

24

25 Scenario Based diagram  Scenario-based elements Use-case—How external actors interact with the system (use-case diagrams; detailed templates) Functional—How software functions are processed in the system (flow charts; activity diagrams) Activity – can be represented at many diff. level of abstraction.

26 Elements of Analysis model

27 Class diagram for sensor  Class-based elements The various system objects (obtained from scenarios) including their attributes and functions (class diagram)

28 Data modeling Analysis model often begin with data modeling. Data model consists of three interrelated pieces of information: o The data object, o The attributes that describe the data object, and o The relationships that connect data objects to one another.

29 Data Object A data object is a representation of almost any composite information that must be understood by software. composite information - number of different properties or attributes. A data object can be:- o An external entity ( e.g., anything that produces or consumes information), o A thing ( e.g., a report or a display ), o An occurrence ( e.g., a telephone call ) o Event ( e.g., an alarm ), o A role ( e.g., salesperson ), o An organizational unit ( e.g., accounting department ), o A place ( e.g., a warehouse ), o A structure ( e.g., a file ).

30 For Ex.- Set of attributes can be defined for a person or a car (i.e. Data Object)

31 Relationships Data objects are connected to one another in different ways. Consider two data objects Book Bookstore A connection is established between book and bookstore because the two objects are related.

32 Cardinality Representing the number of occurrences objects in a given relationship. Cardinality is the specification of the number of occurrences of one [object] that can be related to the number of occurrences of another. Cardinality is usually expressed as simply 'one' or 'many’. 1:1 – One object can relate to only one other object. 1:M – one object can relate to many objects. M:N – Some no. of occurrences of an object can relate to some other no. of occurrences of another object.

33 Class-Responsibility- collaborator (CRC) modeling A CRC model is a collection of standard index cards that represent classes. Cards are divided into three sections. Top of the cards write class name In the body, list the class responsibility on left. Collaborator on the right Simple means for identifying and organizing the classes that are relevant to system or product requirement. It make use of actual or virtual index cards.

34 CRC modeling

35 CRC – Classes Instantiation Three types classes: 1.Entity Classes (model or business classes):- Represent things that are to be stored in a database and persist throughout the duration of the application. 2.Boundary class:- used to create interface. It designed with the responsibility of managing the way entity objects are represented to users. 3.Controller Class:- manage a “unit of work” from start to finish. 1.Creation or update of entity objects. 2.Representation of boundary objects as they obtain information from entity objects. 3.Complex communication between sets of objects. 4.Validation of data.

36 Reviewing CRC model All participants in the review (of the CRC model) are given a subset of the CRC model index cards. o Cards that collaborate should be separated (i.e., no reviewer should have two cards that collaborate). All use-case scenarios (and corresponding use-case diagrams) should be organized into categories. The review leader reads the use-case deliberately. o As the review leader comes to a named object, she passes a token to the person holding the corresponding class index card.

37 Cont. When the token is passed, the holder of the class card is asked to describe the responsibilities noted on the card. o The group determines whether one (or more) of the responsibilities satisfies the use-case requirement. If the responsibilities and collaborations noted on the index cards cannot accommodate the use-case, modifications are made to the cards. o This may include the definition of new classes (and corresponding CRC index cards) or the specification of new or revised responsibilities or collaborations on existing cards.

38 Elements of Analysis model

39 Behavioral Element  Behavioral elements How the system behaves in response to different events (state diagram)

40 Behavioral Modeling  Behavioral model indicates how software will respond to external events.  To create model – Evaluate all use cases to understand the sequence of interaction within the system. Identify events Create sequence for each use-case Build a state diagram for the system. Review the behavioral model to verify accuracy or consistency.

41 Identifying events with the use- cases Use-case represents a sequence of activities that involves actors and the system. An event occurs whenever the system and an actor exchange information. An event is not the information that has been exchanged, but rather the fact that information has been exchanged. An actor should be identified for each event. Information that is exchanged should be noted. Any conditions or constraints should be listed.

42 State Representation 2 diff. characteristics should be considered. o Passive State o Active State Passive state is simply the current status of all of an object’s attributes. Ex. Player – class current position and orientation – attributes. Active State is current state of the object as it undergoes a continuing transformation or processing. Ex. Player – class active state – moving, injured, trapped, lost etc. An event must occur to force an object to make a transition from one active state to another.

43 State diagram for analysis classes

44 Sequence diagram It indicates how events cause transitions from object to object. Once event have identified by examining a use-cases, the modeler creates a sequence diagram. It representation of how events cause flow from one objects to another as function of time. Its shorthand version of use-case diagram that represent key classes and the events that cause behavior to flow from class to class. System objects and events will help in creation of effective design.

45 Elements of Analysis model

46 Flow-oriented elements  Flow-oriented elements How information is transformed as if flows through the system (data flow diagram) System accepts input in a variety forms; applies functions to transform it; and produces output in variety forms.

47 Function Modeling & Information Flow Information is transformed as it flows through a computer- based system. The system accepts input in a variety of forms; applies hardware, software, and human elements to transform it; and produces output in a variety of forms Structured analysis began as an information flow modeling technique. A rectangle is used to represent an external entity (software, hardware, a person) A circle (sometimes called a bubble) represents a process or transform that is applied to data (or control) and changes it in some way.

48 Information Flow model

49 Requirements Engineering Tasks Inception — Establish a basic understanding of the problem and the nature of the solution. Elicitation — Draw out the requirements from stakeholders. Elaboration (Highly structured) — Create an analysis model that represents information, functional, and behavioral aspects. Negotiation — Agree on a deliverable system that is realistic for developers and customers. Specification — Describe the requirements formally or informally. Validation — Review the requirement specification for errors, ambiguities, omissions, and conflicts. Requirements management — Manage changing requirements.

50 Validation Formal technical review mechanism that looks for: o Errors in content or interpretation o Areas where clarification may be required o Missing information o Inconsistencies (a major problem when large products or systems are engineered) o Conflicting or unrealistic (unachievable) requirements.


Download ppt "CS 4500: Software Development Mondays and Wednesdays 2:50-4: Snell Engineering Center."

Similar presentations


Ads by Google