Software Engineering: Theory and Practice, 4th edition

Published by Pearson (February 17, 2009) © 2010

  • Shari Lawrence Pfleeger
  • Joanne M. Atlee
Products list

Details

  • A print text

This product is expected to ship within 3-6 business days for US and 5-10 business days for Canadian customers.

For introductory courses in Software Engineering.

This introduction to software engineering and practice addresses both procedural and object-oriented development. The book applies concepts consistently to two common examples — a typical information system and a real-time system. It combines theory with real, practical applications by providing an abundance of case studies and examples from the current literature. This revision has been thoroughly updated to reflect significant changes in software engineering, including modeling and agile methods.

Preface        

1          Why Software Engineering?         

1.1     What Is Software Engineering?      

1.2     How Successful Have We Been?     

1.3     What Is Good Software?     

1.4     Who Does Software Engineering?   

1.5     A Systems Approach

1.6     An Engineering Approach     

1.7     Members of the Development Team

1.8     How Has Software Engineering Changed?  

1.9     Information Systems Example        

1.10    Real-Time Example   

1.11    What this Chapter Means for You   

1.12    What this Chapter Means for Your Development Team    

1.13    What this Chapter Means for Researchers 

1.14    Term Project 

1.15    Key References       

1.16    Exercises      


2          Modeling the Process and Life Cycle      

2.1     The Meaning of Process      

2.2     Software Process Models    

2.3     Tools and Techniques for Process Modeling

2.4     Practical Process Modeling  

2.5     Information System Example

2.6     Real-Time Example   

2.7     What this Chapter Means for You   

2.8     What this Chapter Means for Your Development Team    

2.9     What this Chapter Means for Researchers 

2.10    Term Project 

2.11    Key References       

2.12    Exercises      


3          Planning and Managing the Project        

3.1     Tracking Progress    

3.2     Project Personnel     

3.3     Effort Estimation      

3.4     Risk Management     

3.5     The Project Plan      

3.6     Process Models and Project Management  

3.7     Information System Example

3.8     Real-Time Example   

3.9     What this Chapter Means for You   

3.10    What this Chapter Means for Your Development Team    

3.11    What this Chapter Means for Researchers 

3.12    Term Project 

3.13    Key References       

3.14    Exercises      


4          Capturing the Requirements        

4.1     The Requirements Process   

4.2     Requirements Elicitation      

4.3     Types of Requirements       

4.4     Characteristics of Requirements     

4.5     Modeling Notations   

4.6     Requirements and Specification Languages

4.7     Prototyping Requirements    

4.8     Requirements Documentation         

4.9     Validation and Verification   

4.10    Measuring Requirements      

4.11    Choosing a Specification Technique

4.12    Information Systems Example        

4.13    Real-Time Example   

4.14    Term Project 

4.15    Key References       

4.16    Exercises      


5          Designing the Architecture           

5.1     The Design Process  

5.2     Decomposition and Views    

5.3     Modeling Architectures       

5.4     Architectural Styles and Strategies

5.5     Achieving Quality Attributes

5.6     Collaborative Design 

5.7     Architecture Evaluation and Refinement    

5.8     Documenting Software Architectures

5.9     Architecture Design Review

5.10    Software Product Lines       

5.11    Information System Example

5.12    Real-Time Example   

5.13    What this Chapter Means for you   

5.14    What this Chapter Means for Your Development Team    

5.15    What this Chapter Means for Researchers 

5.16    Term Project 

5.17    Key References       

5.18    Exercises      


6          Designing the Modules      

6.1     Design Methodology 

6.2     Design Principles      

6.3     Object-Oriented Design      

6.4     Representing Object-Oriented Designs in the UML          

6.5     Object-Oriented Design Patterns    

6.6     Other Design Considerations

6.7     Object-Oriented Measurement

6.8     Design Documentation                  

6.9     Information Systems Example        

6.10    Real-Time Example   

6.11    What this Chapter Means for You   

6.12    What this Chapter Means for your Development Team     

6.13    What this Chapter Means for Researchers 

6.14    Term Project 

6.15    Key References       

6.16    Exercises      


7          Writing the Programs         

7.1     Programming Standards and Procedures    

7.2     Programming Guidelines       

7.3     Documentation        

7.4     The Programming Process    

7.5     Information Systems Example        

7.6     Real-Time Example   

7.7     What this Chapter Means for You   

7.8     What this Chapter Means for Your Development Team    

7.9     What this Chapter Means for Researchers 

7.10    Term Project 

7.11    Key References       

7.12    Exercises      


8          Testing the Programs        

8.1     Software Faults and Failures

8.2     Testing Issues         

8.3     Unit Testing  

8.4     Integration Testing  

8.5     Testing Object-Oriented Systems   

8.6     Test Planning

8.7     Automated Testing Tools    

8.8     When to Stop Testing        

8.9     Information Systems Example        

8.10    Real-Time Example   

8.11    What this Chapter Means for You   

8.12    What this Chapter Means for Your Development Team    

8.13    What this Chapter Means for Researchers 

8.14    Term Project 

8.15    Key References       

8.16    Exercises      


9          Testing the System

9.1     Principles of System Testing

9.2     Function Testing      

9.3     Performance Testing 

9.4     Reliability, Availability, and Maintainability  

9.5     Acceptance Testing 

9.6     Installation Testing  

9.7     Automated System Testing 

9.8     Test Documentation 

9.9     Testing Safety-Critical Systems     

9.10    Information Systems Example        

9.11    Real-Time Example   

9.12    What this Chapter Means for You   

9.13    What this Chapter Means for Your Development Team    

9.14    What this Chapter Means for Researchers 

9.15    Term Project 

9.16    Key References       

9.17    Exercises      


10        Delivering the System       

10.1    Training        

10.2    Documentation        

10.3    Information Systems Example        

10.4    Real-Time Example   

10.5    What this Chapter Means for You   

10.6    What this Chapter Means for your Development Team     

10.7    What this Chapter Means for Researchers 

10.8    Term Project 

10.9    Key References       

10.10  Exercises      


11        Maintaining the System    

11.1    The Changing System         

11.2    The Nature of Maintenance 

11.3    Maintenance Problems        

11.4    Measuring Maintenance Characteristics     

11.5    Maintenance Techniques and Tools

11.6    Software Rejuvenation       

11.7    Information Systems Example        

11.8    Real-Time Example   

11.9    What this Chapter Means for You   

11.10  What this Chapter Means for Your Development Team    

11.11  What this Chapter Means for Researchers 

11.12  Term Project 

11.13  Key References       

11.14  Exercises      


12        Evaluating Products, Processes, and Resources         

12.1    Approaches to Evaluation    

12.2    Selecting an Evaluation Technique 

12.3    Assessment vs. Prediction   

12.4    Evaluating Products  

12.5    Evaluating Processes

12.6    Evaluating Resources

12.7    Information Systems Example        

12.8    Real-Time Example   

12.9    What this Chapter Means for You   

12.10  What this Chapter Means for Your Development Team    

12.11  What this Chapter Means for Researchers 

12.12  Term Project 

12.13  Key References       

12.14  Exercises      


13        Improving Predictions, Products, Processes, and Resources           

13.1    Improving Prediction 

13.2    Improving Products  

13.3    Improving Processes 

13.4    Improving Resources 

13.5    General Improvement Guidelines     

13.6    Information Systems Example        

13.7    Real-Time Example   

13.8    What this Chapter Means For You  

13.9    What this Chapter Means for your Development Team     

13.10  What this Chapter Means for Researchers 

13.11  Term Project 

13.12  Key References       

13.13  Exercises      


14        The Future of Software Engineering       

14.1    How Have We Done?

14.2    Technology Transfer 

14.3    Decision-Making in Software Engineering   

14.4    The Professionalization of Software Engineering: Licensing, Certification, and Ethics   

14.5    Term Project 

14.6    Key References       

14.7    Exercises      


Annotated Bibliography       

Index 

 

Need help? Get in touch