Atjaunināt sīkdatņu piekrišanu

Requirements Engineering for Software and Systems, Second Edition 2nd New edition [Hardback]

3.29/5 (21 ratings by Goodreads)
(The Pennsylvania State University, Malvern, USA)
  • Formāts: Hardback, 324 pages, height x width: 235x156 mm, weight: 610 g, 43 Tables, black and white; 66 Illustrations, black and white
  • Sērija : Applied Software Engineering Series
  • Izdošanas datums: 18-Nov-2013
  • Izdevniecība: Auerbach
  • ISBN-10: 1466560819
  • ISBN-13: 9781466560819
  • Formāts: Hardback, 324 pages, height x width: 235x156 mm, weight: 610 g, 43 Tables, black and white; 66 Illustrations, black and white
  • Sērija : Applied Software Engineering Series
  • Izdošanas datums: 18-Nov-2013
  • Izdevniecība: Auerbach
  • ISBN-10: 1466560819
  • ISBN-13: 9781466560819
"Solid requirements engineering has increasingly been recognized as the key to improved, on-time and on-budget delivery of software and systems projects. This book provides practical teaching for graduate and professional systems and software engineers. It uses extensive case studies and exercises to help students grasp concepts and techniques. With a focus on software-intensive systems, this text provides a probing and comprehensive review of recent developments in intelligent systems, soft computing techniques, and their diverse applications in manufacturing. The second edition contains 100% revised content and approximately 30% new material"--

As requirements engineering continues to be recognized as the key to on-time and on-budget delivery of software and systems projects, many engineering programs have made requirements engineering mandatory in their curriculum. In addition, the wealth of new software tools that have recently emerged is empowering practicing engineers to improve their requirements engineering habits. However, these tools are not easy to use without appropriate training.

Filling this need, Requirements Engineering for Software and Systems, Second Edition has been vastly updated and expanded to include about 30 percent new material. In addition to new exercises and updated references in every chapter, this edition updates all chapters with the latest applied research and industry practices. It also presents new material derived from the experiences of professors who have used the text in their classrooms. Improvements to this edition include:

  • An expanded introductory chapter with extensive discussions on requirements analysis, agreement, and consolidation
  • An expanded chapter on requirements engineering for Agile methodologies
  • An expanded chapter on formal methods with new examples
  • An expanded section on requirements traceability
  • An updated and expanded section on requirements engineering tools
  • New exercises including ones suitable for research projects

Following in the footsteps of its bestselling predecessor, the text illustrates key ideas associated with requirements engineering using extensive case studies and three common example systems: an airline baggage handling system, a point-of-sale system for a large pet store chain, and a system for a smart home. This edition also includes an example of a wet well pumping system for a wastewater treatment station.

With a focus on software-intensive systems, but highly applicable to non-software systems, this text provides a probing and comprehensive review of recent developments in requirements engineering in high integrity systems.

Recenzijas

Praise for the Bestselling First Edition:

Based on a Penn State course taught by the author, this text provides a review of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, particularly software-intensive systems. Incorporating a variety of formal methods, social models, and modern requirements writing techniques useful to practicing engineers, the text is suitable for professional software engineers, systems engineers, and senior undergraduate and graduate students in these fields. Book News Inc.

Acknowledgments xiii
About the Author xv
Introduction xvii
1 Introduction to Requirements Engineering 1(28)
Motivation
1(1)
What Is Requirements Engineering?
2(1)
You Probably Don't Do Enough Requirements Engineering
3(1)
What Are Requirements?
3(8)
Requirements versus Goals
4(1)
Requirements Level Classification
4(2)
Requirements Specifications Types
6(5)
Functional Requirements
6(1)
Nonfunctional Requirements
7(3)
Domain Requirements
10(1)
Domain Vocabulary Understanding
11(1)
Requirements Engineering Activities
11(2)
Requirements Elicitation/Discovery
11(1)
Requirements Analysis and Agreements
12(1)
Requirements Representation
12(1)
Requirements Validation
12(1)
Requirements Management
13(1)
Bodies of Knowledge
13(4)
Requirements Engineer
17(1)
Requirements Engineering Paradigms
17(2)
Requirements Engineer as Software Systems Engineer
18(1)
Requirements Engineer as Subject Matter Expert
18(1)
Requirements Engineer as Architect
18(1)
Requirements Engineer as Business Process Expert
18(1)
Ignorance as Virtue
18(1)
Customer's Role
19(1)
Problems with Traditional Requirements Engineering
20(2)
Complexity
21(1)
Four Dark Corners
22(1)
Difficulties in Enveloping System Behavior
23(2)
Danger of "All" in Specifications
25(1)
Exercises
25(1)
References
26(3)
2 Preparing for Requirements Elicitation 29(20)
Product Mission Statement
29(1)
Encounter with a Customer
30(2)
Stakeholders
32(5)
Negative Stakeholders
33(1)
Stakeholder Identification
33(4)
Stakeholder Questions
33(2)
Stakeholder/Customer Classes
35(1)
Stakeholder Characteristics
36(1)
Customer Wants and Needs
37(3)
What Do Customers Want?
37(2)
What Don't Customers Want?
39(1)
Why Do Customers Change Their Minds?
40(1)
Stakeholder Prioritization
41(2)
Communicating with Customers and Other Stakeholders
43(2)
Managing Expectations
44(1)
Stakeholder Negotiations
45(1)
Uncovering Stakeholder Goals
46(1)
Exercises
47(1)
References
48(1)
3 Requirements Elicitation 49(32)
Introduction
49(1)
Preparing for Requirements Elicitation
50(1)
Elicitation Techniques Survey
51(20)
Brainstorming
51(1)
Card Sorting
52(1)
Designer as Apprentice
53(1)
Domain Analysis
54(1)
Ethnographic Observation
55(1)
Goal-Based Approaches
56(1)
Group Work
57(1)
Interviews
58(1)
Introspection
59(1)
Joint Application Design (JAD)
60(1)
Laddering
61(1)
Protocol Analysis
62(1)
Prototyping
62(1)
Quality Function Deployment
63(3)
Questionnaires/Surveys
66(2)
Repertory Grids
68(1)
Scenarios
68(1)
Task Analysis
69(1)
User Stories
69(1)
Viewpoints
70(1)
Workshops
71(1)
Elicitation Summary
71(2)
Which Combination of Requirements Elicitation Techniques-Should Be Used?
72(1)
Prevalence of Requirements Elicitation Techniques
72(1)
Eliciting Hazards
73(5)
Misuse Cases
77(1)
Antimodels
77(1)
Formal Methods
78(1)
Exercises
78(1)
References
79(2)
4 Writing the Requirements Document 81(24)
Requirements Agreement and Analysis
81(1)
Requirements Representation Approaches
82(3)
IEEE Standard 830-1998
85(7)
IEEE Standard 830 Recommendations on Representing Nonfunctional Requirements
86(1)
IEEE Standard 830 Recommendations on Representing Functional Requirements
87(3)
Operating System
88(1)
Command Validation
89(1)
ISO/IEC Standard 25030
90(2)
Use Cases
92(1)
Requirements Document
93(5)
Users of a Requirements Document
93(1)
Requirements Document Requirements
94(14)
Preferred Writing Style
95(1)
Text Structure Analysis
95(1)
Requirement Format
96(2)
Use of Imperatives
98(1)
Behavioral Specifications
98(2)
Best Practices and Recommendations
100(2)
Exercises
102(1)
References
103(2)
5 Requirements Risk Management 105(34)
What Is Requirements Risk Management?
105(3)
Requirements Validation and Verification
108(8)
Techniques for Requirements V&V
109(4)
Walkthroughs
110(1)
Inspections
110(1)
Goal-Based Requirements Analysis
110(1)
Requirements Understanding
111(1)
Validating Requirements Use Cases
112(1)
Prototyping
113(1)
Requirements Validation and Verification Matrices
113(2)
Importance of Measurement in Requirements Validation and Verification
115(1)
Goal/Question/Metric Analysis
116(1)
Standards for Validation and Verification
116(8)
IEEE Standard 830
117(7)
Correctness
117(2)
Ambiguity
119(1)
Completeness
120(1)
Consistency
120(1)
Ranking
121(1)
Verifiability
121(1)
Modifiability
122(1)
Traceability
122(1)
Example Validation of Requirements
122(2)
NASA Requirements Testing
124(12)
NASA ARM Tool
124(2)
Imperatives
126(1)
Continuances
126(1)
Directives
127(1)
Options
127(1)
Weak Phrases
127(13)
Incomplete
128(3)
Subjects
131(1)
Specification Depth
131(1)
Readability Statistics
131(2)
Summary of NASA Metrics
133(3)
Exercises
136(1)
References
136(3)
6 Formal Methods, 139(28)
Motivation
139(1)
What Are Formal Methods?
140(3)
Formal Methods Classification
142(1)
A Little History
142(1)
Using Formal Methods
143(1)
Examples
143(16)
Formalization of Train Station in B
144(3)
Formalization of Space Shuttle Flight Software Using MurΦ
147(1)
Formalization of an Energy Management System Using Category Theory
148(4)
Example: Energy Management System
149(3)
Requirements Validation
152(1)
Theorem Proving
153(6)
Program Correctness
154(1)
Hoare Logic
154(5)
Model Checking
159(1)
Integrated Tools
159(1)
Objections, Myths, and Limitations
159(4)
Objections and Myths
160(2)
Limitations of Formal Methods
162(1)
Bowen and Hinchey's Advice
163(1)
Exercises
164(1)
References
164(3)
7 Requirements Specification and Agile Methodologies 167(18)
Introduction to Agile Methodologies
167(3)
Principles behind Agile Manifesto
168(2)
Extreme Programming (XP)
170(1)
Scrum
171(1)
Requirements Engineering for Agile Methodologies
172(6)
General Practices in Agile Methodologies
173(1)
Example Application of Agile Software Development
173(2)
When Is Agile Recommended?
175(1)
Agile Requirements Best Practices
175(2)
Requirements Engineering in XP
177(1)
Requirements Engineering in Scrum
177(1)
Writing User Stories
178(2)
Agile Requirements Engineering
180(2)
Story-Test-Driven Development
181(1)
Challenges for Requirements Engineering in Agile Methodologies
182(1)
Exercises
183(1)
References
183(2)
8 Tool Support for Requirements Engineering 185(20)
Introduction
185(2)
Traceability Support
187(5)
Requirements Linkage Traceability Matrix
188(2)
Requirements Source Traceability Matrix
190(1)
Requirements Stakeholder Traceability Matrix
191(1)
Requirements Management Tools
192(1)
Open Source Requirements Engineering Tools
193(3)
FreeMind
193(3)
Open Source Requirements Management Tool (OSRMT)
196(2)
FitNesse
196(2)
Requirements Engineering Tool Best Practices
198(1)
Elicitation Support Technologies
198(3)
Using Wikis for Requirements Elicitation
199(1)
Mobile Technologies
199(1)
Virtual Environments
199(1)
Content Analysis
200(1)
Metrics
201(1)
Exercises
202(1)
References
202(3)
9 Requirements Management 205(24)
Introduction
205(1)
Reconciling Differences
206(3)
Managing Divergent Agendas
206(1)
Consensus Building
207(2)
Expectation Revisited: Pascal's Wager
209(2)
Global Requirements Management :
211(1)
Antipatterns in Requirements Management
212(5)
Environmental Antipatterns
213(1)
Divergent Goals
213(1)
Process Clash
214(1)
Management Antipatterns
214(3)
Metric Abuse
214(2)
Mushroom Management
216(1)
Other Paradigms for Requirements Management
217(2)
Requirements Management and Improvisational Comedy
217(1)
Requirements Management as Scriptwriting
218(1)
Standards for Requirements Management
219(6)
ISO 9001
221(1)
Six Sigma
221(1)
Capability Maturity Model Integrative (CMMI)
222(1)
IEEE 830
223(1)
ISO/IEEE 12207
224(1)
Usage of Standards
224(1)
A Case Study: FBI Virtual Case File
225(1)
Exercises
226(1)
References
227(2)
10 Value Engineering of Requirements 229(20)
What, Why, When, and How of Value Engineering
229(5)
What Is Value Engineering?
230(1)
When Does Value Engineering Occur?
231(1)
Challenges to Simple Cost versus Risk Analysis
232(2)
Estimating Using COCOMO and Its Derivatives
234(4)
COCOMO
234(1)
WEBMO
235(2)
COSYSMO
237(1)
Estimating Using Function Points
238(3)
Function Point Cost Drivers
239(1)
Feature Points
240(1)
Use Case Points
240(1)
Requirements Feature Cost Justification
241(5)
Return on Investment
241(1)
Net Present Value
242(1)
Internal Rate of Return
243(1)
Profitability Index
244(1)
Payback Period
245(1)
Discounted Payback
245(1)
Putting It All Together
246(1)
Exercises
246(1)
References
247(2)
Appendix A: Software Requirements Specification for a Smart Home 249(26)
Appendix B: Software Requirements for a Wastewater Pumping Station Wet Well Control System 275(12)
Glossary 287(6)
Index 293
Phillip A. Laplante, PhD, is professor of software engineering and a member of the graduate faculty at The Pennsylvania State University (Penn State). His research, teaching, and consulting focuses on software quality, particularly with respect to requirements, testing, and project management. Before joining Penn State he was a professor and senior academic administrator at several colleges and universities.

Dr. Laplante has consulted to Fortune 500 companies, small businesses, the US DOD, and NASA. He has also served on the technology advisory boards for several companies. Prior to his academic career, Dr. Laplante spent nearly a decade as a software engineer and project manager working on avionics (including the Space Shuttle), CAD, and software test systems. He was also director of business development for a software consulting firm. He has authored or edited 29 books and more than 200 papers, articles, reviews, and editorials.

Dr. Laplante received his BS, MEng, and PhD in computer science, electrical engineering, and computer science, respectively, from Stevens Institute of Technology and an MBA from the University of Colorado at Colorado Springs. He is licensed in Pennsylvania as a professional engineer and is a Certified Software Development Professional. He is a fellow of the IEEE and SPIE and a member of numerous professional societies, program committees, and boards.