Atjaunināt sīkdatņu piekrišanu

E-grāmata: Requirements Engineering for Software and Systems

3.39/5 (18 ratings by Goodreads)
(The Pennsylvania State University, Malvern, USA),
  • Formāts - EPUB+DRM
  • Cena: 75,13 €*
  • * ši ir gala cena, t.i., netiek piemērotas nekādas papildus atlaides
  • Ielikt grozā
  • Pievienot vēlmju sarakstam
  • Šī e-grāmata paredzēta tikai personīgai lietošanai. E-grāmatas nav iespējams atgriezt un nauda par iegādātajām e-grāmatām netiek atmaksāta.

DRM restrictions

  • Kopēšana (kopēt/ievietot):

    nav atļauts

  • Drukāšana:

    nav atļauts

  • Lietošana:

    Digitālo tiesību pārvaldība (Digital Rights Management (DRM))
    Izdevējs ir piegādājis šo grāmatu šifrētā veidā, kas nozīmē, ka jums ir jāinstalē bezmaksas programmatūra, lai to atbloķētu un lasītu. Lai lasītu šo e-grāmatu, jums ir jāizveido Adobe ID. Vairāk informācijas šeit. E-grāmatu var lasīt un lejupielādēt līdz 6 ierīcēm (vienam lietotājam ar vienu un to pašu Adobe ID).

    Nepieciešamā programmatūra
    Lai lasītu šo e-grāmatu mobilajā ierīcē (tālrunī vai planšetdatorā), jums būs jāinstalē šī bezmaksas lietotne: PocketBook Reader (iOS / Android)

    Lai lejupielādētu un lasītu šo e-grāmatu datorā vai Mac datorā, jums ir nepieciešamid Adobe Digital Editions (šī ir bezmaksas lietotne, kas īpaši izstrādāta e-grāmatām. Tā nav tas pats, kas Adobe Reader, kas, iespējams, jau ir jūsu datorā.)

    Jūs nevarat lasīt šo e-grāmatu, izmantojot Amazon Kindle.

Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. New software tools are emerging that are empowering practicing engineers to improve their requirements engineering habits. However, these tools are not usually easy to use without significant training.

Requirements Engineering for Software and Systems, Fourth Edition is intended to provide a comprehensive treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, with an intentional focus on software-intensive systems. It brings into play a variety of formal methods, social models, and modern requirements writing techniques to be useful to practicing engineers. The book is intended for professional software engineers, systems engineers, and senior and graduate students of software or systems engineering.

Since the first edition, there have been made many changes and improvements to this textbook. Feedback from instructors, students, and corporate users was used to correct, expand, and improve the materials. The fourth edition features two newly added chapters: "On Non-Functional Requirements" and "Requirements Engineering: Road Map to the Future." The latter provides a discussion on the relationship between requirements engineering and such emerging and disruptive technologies as Internet of Things, Cloud Computing, Blockchain, Artificial Intelligence, and Affective Computing.

All chapters of the book were significantly expanded with new materials that keep the book relevant to current industrial practices. Readers will find expanded discussions on new elicitation techniques, agile approaches (e.g., Kanpan, SAFe, and DEVOps), requirements tools, requirements representation, risk management approaches, and functional size measurement methods. The fourth edition also has significant additions of vignettes, exercises, and references. Another new feature is scannable QR codes linked to sites containing updates, tools, videos, and discussion forums to keep readers current with the dynamic field of requirements engineering.
Preface xv
Acknowledgments xxi
Authors xxiii
1 Introduction to Requirements Engineering
1(26)
Motivation
1(1)
What Is Requirements Engineering?
1(1)
You Probably Don't Do Enough Requirements Engineering
2(1)
What Are Requirements?
3(1)
Requirements vs. Features vs. Goals
3(1)
Requirements Classifications
4(1)
Requirements Level Classification
4(1)
Requirements Specifications Types
5(1)
Functional Requirements
6(1)
Nonfunctional Requirements
7(1)
Domain Requirements
7(1)
Domain Vocabulary Understanding
7(2)
Requirements Engineering Activities
9(1)
Requirements Elicitation/Discovery
9(1)
Requirements Analysis and Agreement
9(1)
Requirements Representation
9(1)
Requirements Validation
10(1)
Requirements Management
10(1)
Bodies of Knowledge
10(3)
The Requirements Engineer
13(1)
Requirements Engineer Roles
14(1)
Requirements Engineer as Software or Systems Engineer
14(1)
Requirements Engineer as Subject Matter Expert
14(1)
Requirements Engineer as Architect
15(1)
Requirements Engineer as Business Process Expert
15(1)
Ignorance as Virtue
15(1)
Role of the Customer
16(1)
Problems with Traditional Requirements Engineering
16(1)
Complexity
17(1)
Gold-Plating and Ridiculous Requirements
18(1)
Obsolete Requirements
18(1)
Four Dark Corners
19(1)
Difficulties in Enveloping System Behavior
20(1)
The Danger of "All" in Specifications
21(1)
Exercises
22(1)
References
23(4)
2 Preparing for Requirements Elicitation
27(28)
Product Business Goals and Mission Statements
27(2)
Encounter with a Customer
29(1)
Identifying the System Boundaries
30(1)
Context Diagrams
30(1)
Stakeholders
31(1)
Negative Stakeholders
32(1)
Stakeholder Identification
32(1)
Stakeholder Identification Questions
32(2)
Rich Pictures
34(2)
Stakeholder/User Classes
36(1)
Stakeholders vs. Use Case Actors
37(1)
User Characteristics
37(1)
Customer Wants and Needs
38(1)
What Do Customers Want?
38(2)
What Don't Customers Want?
40(1)
Why Do Customers Change Their Minds?
41(1)
Stakeholder Prioritization
42(1)
Communicating with Customers and Other Stakeholders
43(1)
Managing Expectations
44(4)
Stakeholder Negotiations
48(1)
Uncovering Stakeholder Goals
49(2)
Exercises
51(1)
Note
52(1)
References
52(3)
3 Requirements Elicitation
55(36)
Introduction
55(1)
Requirements Elicitation - First Step
56(1)
Elicitation Techniques Survey
57(1)
Brainstorming
58(1)
Card Sorting
58(1)
Crowdsourcing
59(2)
Designer as Apprentice
61(1)
Domain Analysis
62(1)
Ethnographic Observation
62(1)
Goal-Based Approaches
63(1)
Group Work
64(1)
Interviews
65(1)
Introspection
66(1)
Joint Application Design
67(1)
Laddering
68(1)
Protocol Analysis
68(1)
Prototyping
69(2)
Quality Function Deployment
71(2)
Questionnaires/Surveys
73(1)
Repertory Grids
74(1)
Reverse Engineering
74(1)
Scenarios
75(1)
Task Analysis
75(1)
Use Cases
76(2)
User Stories
78(1)
Viewpoints
78(1)
Workshops
79(1)
Eliciting Nonfunctional Requirements
79(1)
Elicitation Summary
80(1)
Which Combination of Requirements Elicitation Techniques Should Be Used?
80(4)
Prevalence of Requirements Elicitation Techniques
84(1)
Eliciting Hazards
84(1)
Misuse Cases
85(1)
Antimodels
85(1)
Formal Methods
86(2)
Exercises
88(1)
Note
88(1)
References
89(2)
4 Writing the Requirements Document
91(22)
Requirements Agreement and Analysis
91(1)
Requirements Representation
92(1)
Approaches to Requirements Representation
92(2)
ISO/IEC/IEEE Standard 29148
94(1)
Recommendations on Representing Nonfunctional Requirements
95(1)
Recommendations on Representing Functional Requirements
96(1)
Operating System
97(1)
Command Validation
98(1)
UML/SysML
99(1)
The Requirements Document
100(1)
Users of a Requirements Document
100(1)
Requirements Document Requirements
101(1)
Preferred Writing Style
101(1)
Text Structure Analysis
102(1)
Requirement Format
102(2)
Use of Imperatives
104(1)
Shall or Shall Not?
104(1)
Avoiding Imprecision in Requirements
105(2)
Requirements Document Size
107(1)
Behavioral Specifications
107(1)
Best Practices and Recommendations
108(2)
Exercises
110(1)
References
111(2)
5 On Nonfunctional Requirements
113(18)
Motivation to Consider NFRs Earlier in Development
113(2)
What Is an NFR?
115(2)
What Are the Different Types of NFRs?
117(2)
Quality Requirements in Practice
119(2)
Specifying with Quality Attribute Scenarios
121(1)
Specifying with Planguage
121(1)
Popular Quality Requirements
122(1)
Security
122(1)
Modifiability
123(1)
Interoperability
124(1)
Performance
124(1)
Testability
124(1)
Usability
124(1)
Other Approaches to Handle NFRs in RE
125(1)
NFR Framework
125(1)
Incorporating NFRs with UML Models
126(2)
Exercises
128(1)
References
128(3)
6 Requirements Validations and Verifications
131(36)
What Is Requirements Risk Management?
131(3)
Validation and Verification
134(1)
Techniques for Requirements V&V
135(1)
Walkthroughs
135(1)
Inspections
135(1)
Goal-Based Requirements Analysis
136(1)
Requirements Understanding
137(1)
Validating Requirements Use Cases
138(1)
Prototyping
138(1)
Tools for V&V
138(2)
Requirements V&V Matrices
140(1)
Standards for V&V
141(1)
ISO/IECIEEE Standard 29148
142(1)
Singularity
143(1)
Feasibility
144(1)
Ambiguity
144(1)
Completeness
145(1)
Consistency
145(2)
Verifiability
147(1)
Traceability
147(1)
Ranking
148(1)
Example Validation of Requirements
148(1)
Singular
148(1)
Feasible
149(1)
Unambiguous
149(1)
Complete
149(1)
Consistent
149(1)
Verifiable
150(1)
Traceable
150(1)
Ranked
150(1)
The Importance of Measurement in Requirements V&V
150(1)
Goal/Question/Metric Analysis
151(2)
NASA Requirements Testing
153(1)
NASA ARM Tool
154(1)
Imperatives
154(2)
Continuances
156(1)
Directives
156(1)
Options
156(1)
Weak Phrases
156(1)
Incomplete
157(1)
Subjects
158(1)
Specification Depth
158(2)
Readability Statistics
160(1)
Summary of NASA Metrics
161(3)
Exercises
164(1)
Note
164(1)
References
165(2)
7 Formal Methods
167(28)
Motivation
167(1)
What Are Formal Methods?
168(1)
Formal Methods Classification
169(1)
A Little History
169(1)
Using Formal Methods
170(1)
Examples
170(1)
Formalization of Train Station in B
171(2)
Formalization of Space Shuttle Flight Software Using MurΦ
173(1)
Formalization of an Energy Management System Using Category Theory
174(2)
Example: An Energy Management System
176(2)
Other Notable Formal Methods for Requirements Engineering
178(1)
Requirements Validation
178(1)
Consistency Checking Using Truth Tables
179(1)
Consistency Checking by Inspection
180(1)
Consistency Checking Limitations
180(2)
Theorem Proving
182(1)
Program Correctness
182(1)
Hoare Logic
182(3)
Model Checking
185(1)
Integrated Tools
186(1)
Which Formal Approach to Use?
187(1)
Objections, Myths, and Limitations
187(1)
Objections and Myths
188(1)
Limitations of Formal Methods
189(1)
Combining Formal and Informal Methods
190(1)
Bowen and Hinchey's Advice
190(2)
Exercises
192(1)
Notes
193(1)
References
193(2)
8 Requirements Specification and Agile Methodologies
195(24)
Introduction to Agile Methodologies
195(1)
Principles Behind the Agile Manifesto
196(1)
Benefits of Agile Software Development
197(1)
Extreme Programming
197(1)
Scrum
198(2)
Kanban
200(1)
Lean Development
200(1)
Requirements Engineering for Agile Methodologies
201(4)
Technical Debt
205(1)
Example Application of Agile Software Development
206(1)
When Is Agile Recommended?
207(1)
Requirements Engineering in XP
208(1)
Requirements Engineering in Scrum
209(1)
Gathering User Stories
210(1)
Writing User Stories
210(1)
Estimating User Stories
211(1)
Prioritizing User Stories
212(1)
User Stories vs. Use Cases
212(1)
Agile Requirements Engineering vs. Requirements Engineering in Agile
212(1)
Story-Test-Driven Development
212(2)
State of Practice for Requirements Engineering in Agile Methodologies
214(1)
Challenges for Requirements Engineering in Agile Methodologies
214(2)
Exercises
216(1)
Notes
217(1)
References
217(2)
9 Tool Support for Requirements Engineering
219(24)
Introduction
219(2)
Traceability Support
221(2)
Requirements Linkage Traceability Matrix
223(2)
Requirements Source Traceability Matrix
225(1)
Requirements Stakeholder Traceability Matrix
226(1)
Requirements Management Tools
227(1)
Tool Evaluation
228(1)
Open-Source Requirements Engineering Tools
229(1)
FreeMind
230(2)
FitNesse
232(1)
Requirements Engineering Tool Best Practices
233(1)
Elicitation Support Technologies
234(1)
Using Wikis for Requirements Elicitation
234(1)
Mobile Technologies
235(1)
Virtual Environments
235(1)
Content Analysis
236(1)
Artificial Intelligence
237(1)
Requirements Metrics
237(1)
Exercises
238(1)
References
239(4)
10 Requirements Management
243(26)
Introduction
243(1)
Requirements Management Process
243(2)
Configuration Management and Control
245(1)
Reconciling Differences
245(1)
Managing Divergent Agendas
246(1)
Consensus Building
247(1)
Analytical Hierarchical Process (AHP)
247(2)
Wideband Delphi Technique
249(1)
Expectation Revisited: Pascal's Wager
250(1)
Global Requirements Management
251(2)
Antipatterns in Requirements Management
253(1)
Environmental Antipatterns
254(1)
Divergent Goals
254(1)
Process Clash
255(1)
Management Antipatterns
255(1)
Metric Abuse
255(1)
Mushroom Management
256(1)
Other Paradigms for Requirements Management
257(1)
Requirements Management and Improvisational Comedy
257(1)
Requirements Management as Scriptwriting
258(2)
Standards for Requirements Management
260(1)
Capability Maturity Model Integration
261(1)
ISO 9001
262(1)
ISO/IEEE 12207
263(1)
Six Sigma
263(3)
Exercises
266(1)
Notes
266(1)
References
266(3)
11 Value Engineering of Requirements
269(26)
What, Why, When, and How of Value Engineering
269(1)
What Is Value Engineering?
270(1)
When Does Value Engineering Occur?
271(1)
Challenges to Simple Cost vs. Risk Analysis
272(1)
Estimating Software Effort
273(1)
The Aspect of Software Size
273(1)
Software Length
274(1)
Software Complexity
274(1)
Functional Size
275(1)
Estimating Using Function Points
275(1)
Function Point Cost Drivers
275(2)
Estimating Using COSMIC
277(1)
The Relationship between Functional Size and Effort
277(2)
Estimating Using COCOMO and Its Derivatives
279(1)
COCOMO
279(2)
WEBMO
281(1)
COSYSMO
282(1)
Feature Points
283(1)
Use Case Points
284(1)
Considerations for Nonfunctional Requirements in Size Measurements
284(1)
Software Effort Estimation in Practice
285(2)
Requirements Feature Cost Justification
287(1)
Return on Investment
287(1)
Net Present Value
288(1)
Internal Rate of Return
288(1)
Profitability Index
289(1)
Payback Period
289(1)
Discounted Payback
290(1)
Putting It All Together
290(2)
Exercises
292(1)
Note
293(1)
References
293(2)
12 Requirements Engineering: A Road Map to the Future
295(12)
Shaping Factors of the Future Landscape of Requirements Engineering
295(1)
The Changing Landscape of Requirements Engineering
296(1)
Requirements Engineering for Small Businesses
296(2)
Requirements Engineering and Disruptive Technologies
298(1)
Requirements Engineering and Blockchain
298(2)
Requirements Engineering and Internet of Things
300(2)
Requirements Engineering and Artificial Intelligence (AI)
302(1)
Requirements Engineering and Cloud Computing
303(1)
Requirements Engineering and Affective Computing
304(1)
References
304(3)
Appendix A Software Requirements Specification for a Smart Home 307(22)
Appendix B Software Requirements for a Wastewater Pumping Station Wet-Well Control System 329(12)
Appendix C Unified Modeling Language (UML) 341(14)
Appendix D User Stories 355(8)
Appendix E Use Cases 363(18)
Appendix F IBM DOORS Requirements Management Tool 381(8)
Glossary 389(6)
Index 395
Phillip A. Laplante is Professor of Software and Systems Engineering and a member of the graduate faculty at The Pennsylvania State University. 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 other colleges and universities. From 2010 through 2016 he was the founding chair of the Software Professional Engineer Licensure Committee for the National Council of Examiners of Engineers and Surveyors. This volunteer committee created, maintains and scores the exam used throughout the United States to license Professional Software Engineers. Dr. Laplante has consulted to Fortune 500 companies, startup ventures, the U.S. Department of Defense, NASA and the National Institute for Standards and Technology (NIST). He is on the Board of Directors for a $100 million heavy infrastructure construction company and serves on various corporate technology advisory boards.

Mohamad Kassab is an associate research professor and a member of the graduate faculty at The Pennsylvania State University. He earned his Ph.D. and M.S. degrees in computer science from Concordia University in Montreal, Canada. Dr. Kassab was an affiliate assistant professor in the department of computer science and software engineering at Concordia University between 2010 and 2012 and a postdoctoral researcher in software engineering at École de Technologie Supérieure (ETS) in Montreal between 2011 and 2012, and a visiting scholar at Carnegie Mellon University (CMU) between 2014 and 2015. Dr. Kassab has been conducting research projects jointly with the industry to develop formal and quantitative models to support the integration of quality requirements within software and systems development life cycles. The models are being further leveraged with the support of developed architectural frameworks and tools. His research interests also include bridging the gap between software engineering practices and disruptive technologies (e.g., IoT, blockchain). He has published extensively in software engineering books, journals, and conference proceedings. He is also a member of numerous professional societies and program committees, and the organizer of many software engineering workshops and conference sessions.