Download presentation
Presentation is loading. Please wait.
Published byJordan Booth Modified over 9 years ago
1
Software Engineering 2007/2008 Chapter 4 Capturing the Requirements
2
Learning objectives Explain why it is necessary to elicit requirements from software customers, and the role of requirements in the software life-cycle Identify the characteristics that make individual requirements good or bad; Describe the types of requirements that should be included in a requirements document; Describe the notations and methods that can be used for capturing requirements Explain how and why requirements reviews should be done to ensure quality Describe how to document requirements for use by the design and test teams
3
4.1 THE REQUIREMENTS PROCESS requirement A requirement is an expression of desired( 渴望的 ) behavior The goal of the requirements phase is to understand the customer’s problem and needs During the specification phase, we will decide which requirements will be fulfilled( 履行 ) by our software system; During the design phase, we will devise a plane for how the specified behavior will be implemented The person performing requirement tasks usually is called requirements analyst or systems analyst
4
4.1 THE REQUIREMENTS PROCESS Process for capturing the requirements, FIGURE 4.1 Process for capturing the requirements 引出分析 详述 确认
5
4.2 REQUIREMENTS ELICITATION Requirements elicitation is an especially critical part of the process. We must use a variety of techniques to determine what the users and customers really want.It is only by discussing the requirements with everyone who has a stake in the system, coalescing( 接合 ) these different views into a coherent( 粘在一起的, 一致的, 连贯的 ) set of requirements and reviewing these documents with these stakeholders that we all come to an agreement about what the requirement are. So who are the stakeholders( 股东 ) Clients Customer Users Domain experts Market researchers Lawyer or auditors Software engineers
6
4.3 TYPE OF REQUIREMENTS functional requirement describes requirement behavior in terms of required activities. A quality requirement, or nonfunctional requirement, describes some quality characteristic that the software solution must possess. A design constraint( 约束 ) is a design decision that has already been made and that restricts( 限制, 约束 ) the set of solutions to our problem. A process constraint is a restriction on the techniques or resource that can be used to build the system.
7
4.3 TYPE OF REQUIREMENTS 1. Resolving( 分解 ) Conflicts( 冲突 ) Requirements that absolutely must be met Requirements that are highly desirable (合意的) but not necessary Requirements that are possible but could be eliminated (消灭) 2. Two Kinds of Requirements Documents A requirements definition is a complete listing of everything the customers wants to achieve. The requirements specification restates( 重申 ) the requirements as a specification of how the proposed system shall behave
8
4.4 CHARACTERISTICS OF REQUIREMENTS Correct ( 正确的 ) Consistent ( 可靠的 ) Unambiguous ( 不含糊的, 明确的 ) Complete ( 全部的 ) Feasible ( 切实可行的 ) Relevant ( 合乎逻辑、精确的 ) Testable ( 可测试的 ) Traceable ( 可追踪的 )
9
4.5 MODELING NOTATIONS 1. Entity-Relationship Diagrams ( 实体 - 关系图 ) Entity-Relationship Diagrams is a popular graphical notional paradigm for representing conceptual models FIRURE 4.4 Entity-relationship diagram of turnstile problem
10
4.5 MODELING NOTATIONS 2. Example: UML Class Diagrams FIGURE 4.5 UML class model of the library problem
11
4.5 MODELING NOTATIONS 3. Event Trances An event trance is a graphical description of a sequence of events that are exchanged between real- world entities FIGURE 4.6 Event traces in the turnstile problem
12
4.5 MODELING NOTATIONS 4. Example: Message Sequence Chart Message Sequence Charts are an enhanced event- trance notation FIGURE 4.7 Message Sequence Chart for library loan transaction
13
4.5 MODELING NOTATIONS 5. State Machines A state machine is a graphical description of all dialog between the system and its environment. FIGURE 4.8 Finite-state model of the turnstile problem
14
4.5 MODELING NOTATIONS 6. Example:UML Statechart Diagrams UML Statechart diagrams depicts the dynamic behavior of the objects in a UML class FIGURE 4.9 UML statechart diagram for the publication class
15
4.5 MODELING NOTATIONS 7. Example: Petri Nets Petri Nets are a form of state-transition notation that is used to model concurrent activities FIGURE 4.12 Petri net of book loan
16
4.5 MODELING NOTATIONS 8. Data Flow Diagrams a data-flow diagram(DFD)models functionality and the flow of data from one function to another FIGURE 4.14 Data-flow diagram of the library problem
17
4.5 MODELING NOTATIONS 9. Example: Use Cases UML use-cases diagram is similar to a top-level data- flow diagram that depicts observable, user-initiated( 发 起 )functionality in terms of interactions between the system and its environment. FIGURE 4.15 Library use cases
18
4.8 REQUIREMENTS DOCUMENTATION ① Requirements Definition First,we outline ( 略述 ) the general purpose and scope of the system Next, we describe the background and the rationale behind the proposal for a new system Once we record this overview of the problem, we describe the essential ( 实质性的 ) characteristics of an acceptable solution. As part of the problem ’ s context, we describe the environment in which the system will operate If the customer has a proposal for solving the problem, we outline a description of the proposal Finally we list any assumptions( 设想 ) we make about how the environment behaves
19
4.8 REQUIREMENTS DOCUMENTATION ② Requirements Specification In documenting the system’s interface,we describe all inputs and outputs in detail Next,we restate( 重申 ) the required functionality in terms of the interfaces’ inputs and outputs Finally, we devise fit criteria( 标准 ) for each of the customer’s quality requirements,so that we can conclusively( 最后的 ) demonstrate( 范例 ) whether our system meets these quality requirements
20
4.8 REQUIREMENTS DOCUMENTATION ③ Process Management and Requirements Traceability The requirements that define what the system should do The design modules that generated from the requirements The program code that implements the design The tests that verify the functionality of the system The documents that describe the system
21
4.9 REQUIREMENTS VALIDATION ① Requirements Validation ( 确认 ) Correct ( 正确的 ) Consistent ( 可靠的 ) Unambiguous ( 不含糊的, 明确的 ) Complete ( 全部的 ) Feasible ( 切实可行的 ) Relevant ( 合乎逻辑、精确的 ) Testable ( 可测试的 ) Traceable ( 可追踪的 )
22
4.9 REQUIREMENTS VALIDATION ② What does the requirements review entail( 必要性 )? We review the stated goals and objectives of the system. We compare the requirements with the goals and objectives to verify that all requirements are necessary We review the environment in which the system is to operate, examining the interfaces between our proposed system and all other system and checking that their descriptions are complete and correct
23
4.9 REQUIREMENTS VALIDATION The customer’s representatives review the information flow and the proposed functions, to confirm that they accurately reflect the customer’s needs and intention. Our representatives review the proposed functions and constraints, to confirm that they are realistic and within our development abilities. All requirements are checked again for omission( 遗漏 ), incompleteness, and inconsistency. If any risk is involved in the development or in the actual functioning of the system, it is assessed and documented. We discuss and compare alternatives, and we and our customer agree on the approaches to be used. We talk about testing the system. How will the requirements continue to be verified and validated as development progresses (and requirements change and grow)? Who will provide the test data? If the system is to have a phased implementation, how will the requirements be checked during the intermediate phases?
24
4.9 REQUIREMENTS VALIDATION ③ Verification we want to check that our requirement-specification document corresponds( 符合 ) to our requirements- definition document
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.