Professional Documents
Culture Documents
Intro To Software Engineering
Intro To Software Engineering
Intro To Software Engineering
Requiremnent Engineering
Software process
From the viewpoint of software development Provide well-defined steps to develop software
Requiremnent Engineering
Requiremnent Engineering
Todays Topic
How to get the customers requirements?
Chapter 7 in Textbook
Requirement Engineering
Prof. Mao Xinjun xjmao@nudt.edu.cn Tel: 0731-4573649 Department of Computer Science and Technology, National University of Defense Technology
Requiremnent Engineering
Agenda
What is Requirement Engineering? Task and Process of Requirement Engineering Requirement Engineering Technology Software Requirement Specification and Review Summary
Requiremnent Engineering
Questions?
If you are required to develop a library information software system, what will you do firstly?
What functions that the system may have? What behaviors that the system may have? What performances that the system may have? What is the scope and boundary of the software?
Copyright Xinjun Mao 7
Requiremnent Engineering
Software Requirement
To understand customers requirements about the software to be developed is extremely important Software requirement ()
Customers needs about the developed software, including functions, performance, design constraints, schedule, etc.
Requiremnent Engineering
Requirement Engineering
What is requirement engineering? ()
The process to obtain customers or end-users ( ) requirements of software Encompasses a set of tasks that lead to an understanding of software requirements Helps software engineers to better understand the problem they will work to solve
Requiremnent Engineering
10
Requiremnent Engineering
Standard to check whether the developed software meets customers or end-users requirements
11
Requiremnent Engineering
Requiremnent Engineering
13
Requiremnent Engineering
Agenda
What is Requirement Engineering? Task and Process of Requirement Engineering Technology of Requirement Engineering Software Requirement Specification and Review Summary
Copyright Xinjun Mao 14
Requiremnent Engineering
15
Requiremnent Engineering
Construction
Coding Testing
Deployment
Copyright Xinjun Mao 16
Requiremnent Engineering
Requiremnent Engineering
Inception (1/2)
Purpose
Identify and discuss with stakeholders Anyone who benefits in a direct or indirect way from the system which is being developed: Customers, end-users, consultants, product engineers, software engineers
Approach
Find and create stakeholders list Work toward collaboration to support elicitations Ask: who else do you think I should talk to? to find more
Result
A list of stakeholders
Copyright Xinjun Mao 18
Requiremnent Engineering
Inception (2/2)
Principle
Related Complete
19
Requiremnent Engineering
Elicitation (1/3)
Purpose
Elicit requirements from all stakeholders Identify the problem Define the scope of problem Propose elements of the solution Negotiate different approaches, and Specify a preliminary set of solution requirements
20
Requiremnent Engineering
Elicitation (2/3)
Approach
Meetings are conducted and attended by both software engineers and customers Rules for preparation and participation are established An agenda is suggested A "facilitator" (can be a customer, a developer, or an outsider) controls the meeting A "definition mechanism" is used, e.g., work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room or virtual forum
Copyright Xinjun Mao 21
Requiremnent Engineering
Elicitation (3/3)
Result: elicitation work products
A statement of need and feasibility A bounded statement of scope for the system or product A list of stakeholders who participated in requirements elicitation A description of the systems technical environment A list of requirements and the domain constraints that apply to each A set of usage scenarios that provide insight into the use of the system or product under different operating conditions Any prototypes developed to better define requirements
Copyright Xinjun Mao 22
Requiremnent Engineering
Elaboration (1/2)
Purpose
Create a refined analysis model of software functions, features, and constraints for analyzing
Approach
Modeling, refinement Scenario-based
Functionalprocessing narratives for software functions Use-casedescriptions of the interaction between an actor and the system
Copyright Xinjun Mao 23
Requiremnent Engineering
Elaboration (2/2)
Approach
OO-based Behavior-based: state diagram Flow-oriented: data flow diagram
Result
Requirement analysis model of software, which defines the informational, functional and behavioral domain of problem
Copyright Xinjun Mao 24
Requiremnent Engineering
Negotiation
Purpose
Conflict requirements Unpractical requirements with limited resources Agree on a deliverable system that is realistic for developers and customers
Approach
Identify the potential conflict and unpractical requirements Rank requirements and discuss conflicts Reconcile these conflicts through negotiation Eliminate, combined and modified requirements
Requiremnent Engineering
Specification
Purpose
Create the documents of software requirements
Approach
A written document A set of models A formal mathematical A collection of user scenarios (use-cases) A prototype
Result
Software requirement specification
Copyright Xinjun Mao 26
Requiremnent Engineering
Validation (1/3)
Purpose
To find the errors or missing information in SRS
Result
Validated software requirement specification
Copyright Xinjun Mao 27
Requiremnent Engineering
Validation (2/3)
Questions when validating
Is each requirement consistent with the overall objective for the system/product? Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? Is each requirement bounded and unambiguous? Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for each requirement? Do any requirements conflict with other requirements?
Copyright Xinjun Mao 28
Requiremnent Engineering
Validation (3/3)
Questions when validating (cont.)
Is each requirement achievable in the technical environment that will house the system or product? Is each requirement testable, once implemented? Does the requirements model properly reflect the information, function and behavior of the system to be built. Has the requirements model been partitioned in a way that exposes progressively more detailed information about the system. Have requirements patterns been used to simplify the requirements model. Have all patterns been properly validated? Are all patterns consistent with customer requirements?
Copyright Xinjun Mao 29
Requiremnent Engineering
Management
Requirement management is a set of activities that help the project team identify, control, and track requirements and changes to requirements at any time as the project proceeds
Each requirement is assigned a unique identifier Feature traceability table Source traceability table Dependency traceability table
Copyright Xinjun Mao 30
Requiremnent Engineering
Agenda
What is Requirement Engineering? Task and Process of Requirement Engineering Technology of Requirement Engineering Software Requirement Specification and Review Summary
31
Requiremnent Engineering
Stakeholder
Com m unication
Analyst
32
Requiremnent Engineering
Meeting
33
Requiremnent Engineering
Observation
34
Requiremnent Engineering
Joint Team
Joint Team
Stakeholders Analysts Software engineers
Purpose
Communication Cooperation
35
Requiremnent Engineering
36
Requiremnent Engineering
Problem Decomposition
What is problem decomposition?
Decompose big problem into small problems Decrease and control problem complexity
37
Requiremnent Engineering
Abstract (1/2)
What is abstract?
Catch the related parts and discard the unrelated parts To grasp the essence and core of problem
Sample of abstract
Appearance
Face
Yellow
Big
Requiremnent Engineering
Abstract (2/2)
Abstract of reader (related parts)
Name Department Photo Type Email Telephone Mobile .
39
Requiremnent Engineering
Modeling (1/3)
What is model of system
Model is the simplification of the real system and it encompasses the related parts of system, ignores the unrelated parts of system Software requirement model describes the requirement of system to be developed in an accurate way
Why modeling
Simplify the description and analysis of software requirement Specify the software requirements from multiple viewpoints and different levels
Copyright Xinjun Mao 40
Requiremnent Engineering
Modeling (2/3)
Methods for requirement modeling
Data flow requirement modeling Object-oriented modeling
41
Requiremnent Engineering
Modeling (3/3)
Sample of modeling: Data Flow Diagram
42
Requiremnent Engineering
Multiple Viewpoint
What is multiple viewpoint
To describe and analyze software requirements from multiple viewpoints and different levels
43
Requiremnent Engineering
Prototyping
What is prototype?
Prototype is the intuitive and simple model of systems to be developed. It mainly focuses on the operation style, process and interface.
Why prototype?
Prototype as interaction media between developers and customers Prototype can easily find the problems of software requirements
44
Requiremnent Engineering
Prototype Method
Initial Requirement
Prototype
Evaluate Prototype
45
Requiremnent Engineering
Agenda
What is Requirement Engineering? Task and Process of Requirement Engineering Technology of Requirement Engineering Software Requirement Specification and Review Summary
46
Requiremnent Engineering
Performances
Response time should be less than 1 second
Design constraints
Running under Windows XP
Others
Schedule: 6 months
Copyright Xinjun Mao 47
Requiremnent Engineering
Requiremnent Engineering
Review of SRS
Reviews is necessary before SRS is to be submitted formally to designers Who participate in the reviews
Customers and end-users Requirement analysts Software designer
49
Requiremnent Engineering
Principles of Review
Correct Consistent Complete Verifiable Understandable Modifiable Traceable
Copyright Xinjun Mao 50
Requiremnent Engineering
Agenda
What is Requirement Engineering? Task and Process of Requirement Engineering Technology of Requirement Engineering Software Requirement Specification and Review Summary
51
Requiremnent Engineering
Summary (1/2)
To capture accurate, consistent and complete requirements are extremely important for developing software Requirement engineering covers seven activities
Inception, elicitation, elaboration, negotiation, specification, validation, management
Requiremnent Engineering
Summary (2/2)
Software requirements should be written as a document software requirement specification Software requirement specification should be reviewed before it is delivered to designer
Customers, end-users, requirement analysts, software designers, etc. should participate in the reviews Quality of software requirements should be considered
Copyright Xinjun Mao 53
Requiremnent Engineering
Assignment
See assignment1 (doc)
54
Requiremnent Engineering
Next Lecture
Building Requirement Model with Data Flow Oriented Technology Chapter 8.6 in Textbook
55
Requiremnent Engineering
Q&A