Software Engineering: The Current Practice

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $65.46
Usually ships in 1-2 business days
(Save 25%)
Other sellers (Hardcover)
  • All (9) from $65.46   
  • New (4) from $65.46   
  • Used (5) from $80.65   


Software Engineering: The Current Practice teaches students basic software engineering skills and helps practitioners refresh their knowledge and explore recent developments in the field, including software changes and iterative processes of software development.

After a historical overview and an introduction to software technology and models, the book discusses the software change and its phases, including concept location, impact analysis, refactoring, actualization, and verification. It then covers the most common iterative processes: agile, directed, and centralized processes. The text also journeys through the software life span from the initial development of software from scratch to the final stages that lead toward software closedown.

For Professionals
The book gives programmers and software managers a unified view of the contemporary practice of software engineering. It shows how various developments fit together and fit into the contemporary software engineering mosaic. The knowledge gained from the book allows practitioners to evaluate and improve the software engineering processes in their projects.

For Instructors
Instructors have several options for using this classroom-tested material. Designed to be run in conjunction with the lectures, ideas for student projects include open source programs that use Java or C++ and range in size from 50 to 500 thousand lines of code. These projects emphasize the role of developers in a classroom-tailored version of the directed iterative process (DIP).

For Students
Students gain a real understanding of software engineering processes through the lectures and projects. They acquire hands-on experience with software of the size and quality comparable to that of industrial software. As is the case in the industry, students work in teams but have individual assignments and accountability.

Read More Show Less

Editorial Reviews

From the Publisher
"… a great read … this [is] an entirely different approach to teaching software engineering and it could really help students (and practitioners) understand recent advances in software engineering and become better software engineers. … this book explains software engineering not from a constructionist point of view, but from a change/maintenance perspective, meaning most of the time you need to read/analyze programs rather than write them (though there is plenty of material in the book to support green field development)."
—Will Tracz, ACM SIGSOFT Software Engineering Notes, November 2013
Read More Show Less

Product Details

Meet the Author

Václav Rajlich is a professor and former chair of computer science at Wayne State University. Dr. Rajlich is an editorial board member of the Journal of Software Maintenance and Evolution and the founder and permanent steering committee member of the IEEE International Conference on Program Comprehension (ICPC). His research focuses on software evolution and comprehension.

Read More Show Less

Table of Contents

History of Software Engineering
Software Properties
Origins of Software
Birth of Software Engineering
Third Paradigm: Iterative Approach

Software Life Span Models
Staged Model
Variants of Staged Model

Software Technologies
Programming Languages and Compilers
Object-Oriented Technology
Version Control System

Software Models
Class Diagrams
UML Activity Diagrams
Class Dependency Graphs and Contracts

Introduction to Software Change
Characteristics of Software Change
Phases of Software Change
Requirements and Their Elicitation
Requirements Analysis and Change Initiation

Concepts and Concept Location
Concept Location Is a Search
Extraction of Significant Concepts (ESC)
Concept Location by Grep
Concept Location by Dependency Search

Impact Analysis
Impact Set
Class Interaction Graphs
Process of Impact Analysis
Propagating Classes
Alternatives in Software Change
Tool Support for Impact Analysis

Small Changes
Changes Requiring New Classes
Change Propagation

Extract Function
Extract Base Class
Extract Component Class
Prefactoring and Postfactoring

Testing Strategies
Unit Testing
Functional Testing
Structural Testing
Regression and System Testing
Code Inspection

Conclusion of Software Change
Build Process and New Baseline
Preparing for Future Changes
New Release

Introduction to Software Processes
Characteristics of Software Processes
Solo Iterative Process (SIP)
Enacting and Measuring SIP
Planning in SIP

Team Iterative Processes
Agile Iterative Process (AIP)
Directed Iterative Process (DIP)
Centralized Iterative Process (CIP)

Initial Development
Software Plan
Initial Product Backlog
Team Organizations for Initial Development

Final Stages
End of Software Evolution
Phaseout and Closedown

Related Topics
Other Computing Disciplines
Professional Ethics
Software Management
Software Ergonomics
Software Engineering Research

Example of Software Change
Concept Location
Impact Analysis

Example of SIP
Initial Development
Iteration 1
Iteration 2


A Summary, Further Reading and Topics, and References appear at the end of each chapter.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)