Practical Guidance on the Efficient Development of High-Quality Software
Introduction to Software Engineering, Second Edition equips students with the fundamentals to prepare them for satisfying careers as software engineers regardless of future changes in the field, even if the changes are unpredictable or disruptive in nature. Retaining the same organization as its predecessor, this second edition adds considerable material on open source and agile development models.
The text helps students understand software development techniques and processes at a reasonably sophisticated level. Students acquire practical experience through team software projects. Throughout much of the book, a relatively large project is used to teach about the requirements, design, and coding of software. In addition, a continuing case study of an agile software development project offers a complete picture of how a successful agile project can work.
The book covers each major phase of the software development life cycle, from developing software requirements to software maintenance. It also discusses project management and explains how to read software engineering literature. Three appendices describe software patents, command-line arguments, and flowcharts.
Table of Contents
Introduction. Project Management. Requirements. Software Design. Coding. Testing and Integration. Delivery, Installation, and Documentation. Maintenance and Software Evolution. Research Issues in Software Engineering. Appendices.
Ronald J. Leach is an independent consultant and professor and department chair emeritus of computer science at Howard University. His research interests include software reuse, software measurement and metrics, and software fault-tolerance. He earned a BS, an MS, and a PhD in mathematics from the University of Maryland as well as an MS in computer science from Johns Hopkins University.
Praise for the First Edition:
"The approach is practical throughout, with heavy emphasis on team projects, using the Internet as a resource, with discussion of tools in common use."
—Software Quality Professional, Vol. 3, Issue 4, September 2001
"In its second edition, Leach's work can best be described as a traditional text on software engineering. The book is conventionally organized in its presentation of the phases of software engineering. However, it is quite modern in its treatment of those phases with the author's early introduction of eight different approaches to the software life cycle. Nine chapters address various aspects of software engineering. The introductory chapter provides an overview of software engineering and different approaches to the software life cycle: the classical waterfall, rapid prototyping, the spiral model, agile programming, and others. Further chapters discuss project management tools, techniques and metrics associated with performing requirements analysis, and the software development process. However, the discussion of the development process is generically covered and does not provide significant details associated with specific programming languages or software systems. The following chapters explain how to uniformly and completely document the software system and emphasize the role of quality documentation. Each chapter offers further readings and contains suggested exercises. There are extended references and an excellent index. Summing Up: Recommended. Upper-division undergraduates through professionals and practitioners."
—J. Beidler, University of Scranton, Choice, November 2016