Introduction to Software Engineering: 2nd Edition (Hardback) book cover

Introduction to Software Engineering

2nd Edition

By Ronald J. Leach

Chapman and Hall/CRC

402 pages | 98 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781498705271
pub: 2016-02-05
$110.00
x
eBook (VitalSource) : 9781315371665
pub: 2018-09-03
from $55.00


FREE Standard Shipping!

Description

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.

Reviews

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

Table of Contents

Introduction

THE NEED FOR SOFTWARE ENGINEERING

ARE SOFTWARE TEAMS REALLY NECESSARY?

GOALS OF SOFTWARE ENGINEERING

TYPICAL SOFTWARE ENGINEERING TASKS

SOFTWARE LIFE CYCLES

DIFFERENT VIEWS OF SOFTWARE ENGINEERING ACTIVITIES

SOFTWARE ENGINEERING AS AN ENGINEERING DISCIPLINE

SOME TECHNIQUES OF SOFTWARE ENGINEERING

STANDARDS COMMONLY USED FOR SOFTWARE DEVELOPMENT PROCESSES

ORGANIZATION OF THE BOOK

Project Management

SUBTEAMS NEEDED IN SOFTWARE ENGINEERING PROJECTS

NATURE OF PROJECT TEAMS

PROJECT MANAGEMENT

SOFTWARE PROJECT ESTIMATION

PROJECT SCHEDULING

PROJECT MEASUREMENT

PROJECT MANAGEMENT TOOLS

ROLE OF NETWORKS IN PROJECT MANAGEMENT

GROUPWARE

CASE STUDY IN PROJECT MANAGEMENT FOR AGILE PROCESSES

Requirements

SOME PROBLEMS WITH REQUIREMENTS DETERMINATION

REQUIREMENTS ELICITATION

REQUIREMENTS TRACEABILITY

SOFTWARE ARCHITECTURES AND REQUIREMENTS

USE CASES IN REQUIREMENTS ENGINEERING

REENGINEERING SYSTEM REQUIREMENTS

ASSESSMENT OF FEASIBILITY OF SYSTEM REQUIREMENTS

USABILITY REQUIREMENTS

SPECIFYING REQUIREMENTS USING STATE DIAGRAMS AND DECISION TABLES

SPECIFYING REQUIREMENTS USING PETRI NETS

ETHICAL ISSUES

SOME METRICS FOR REQUIREMENTS

THE REQUIREMENTS REVIEW

A MANAGEMENT VIEWPOINT

CASE STUDY OF A MANAGEMENT PERSPECTIVE ON REQUIREMENTS IN AGILE DEVELOPMENT

THE MAJOR PROJECT: PROBLEM STATEMENT

THE MAJOR PROJECT: REQUIREMENTS ELICITATION

THE MAJOR SOFTWARE PROJECT: REQUIREMENTS ANALYSIS

Software Design

INTRODUCTION

SOFTWARE DESIGN PATTERNS

INTRODUCTION TO SOFTWARE DESIGN REPRESENTATIONS

PROCEDURALLY ORIENTED DESIGN REPRESENTATIONS

SOFTWARE ARCHITECTURES

SOFTWARE DESIGN PRINCIPLES FOR PROCEDURALLY ORIENTED PROGRAMS

WHAT IS AN OBJECT?

OBJECT-ORIENTED DESIGN REPRESENTATIONS

SOFTWARE DESIGN PRINCIPLES FOR OBJECT-ORIENTED PROGRAMS

CLASS DESIGN ISSUES

USER INTERFACES

SOFTWARE INTERFACES

SOME METRICS FOR DESIGN

DESIGN REVIEWS

A MANAGER’S VIEWPOINT OF DESIGN

CASE STUDY OF DESIGN IN AGILE DEVELOPMENT

ARCHITECTURE OF THE MAJOR SOFTWARE ENGINEERING PROJECT

PRELIMINARY DESIGN OF THE MAJOR SOFTWARE PROJECT

SUBSYSTEM DESIGN FOR THE MAJOR SOFTWARE PROJECT

DETAILED DESIGN FOR THE MAJOR SOFTWARE PROJECT

Coding

CHOICE OF PROGRAMMING LANGUAGE

CODING STYLES

CODING STANDARDS

CODING, DESIGN, REQUIREMENTS, AND CHANGE

COUPLING CAN BE DANGEROUS

SOME CODING METRICS

CODING REVIEWS AND INSPECTIONS

CONFIGURATION MANAGEMENT

A MANAGEMENT PERSPECTIVE ON CODING

CASE STUDY IN CODING IN AGILE DEVELOPMENT

CODING OF THE MAJOR SOFTWARE PROJECT

Testing and Integration

TYPES OF SOFTWARE TESTING

BLACK-BOX MODULE TESTING

WHITE-BOX MODULE TESTING

REDUCING THE NUMBER OF TEST CASES BY EFFECTIVE TEST STRATEGIES

TESTING OBJECTS FOR ENCAPSULATION AND COMPLETENESS

TESTING OBJECTS WITH INHERITANCE

GENERAL TESTING ISSUES FOR OBJECT-ORIENTED SOFTWARE

TEST SCRIPTS, TEST HARNESSES, AND TEST PLANS

SOFTWARE INTEGRATION

CLOUD COMPUTING AND SOFTWARE INTEGRATION: SOFTWARE AS A SERVICE

MANAGING CHANGE IN THE INTEGRATION PROCESS

PERFORMANCE AND STRESS TESTING

QUALITY ASSURANCE

SOFTWARE RELIABILITY

A MANAGER’S VIEWPOINT ON TESTING AND INTEGRATION

CASE STUDY IN TESTING AND INTEGRATION IN AGILE DEVELOPMENT

TESTING THE MAJOR SOFTWARE PROJECT

INTEGRATING THE MAJOR SOFTWARE PROJECT

Delivery, Installation, and Documentation

DELIVERY

INSTALLATION

DOCUMENTATION

INTERNAL DOCUMENTATION

EXTERNAL DOCUMENTATION

DESIGN RATIONALES

INSTALLATION, USER, TRAINING, AND OPERATIONS MANUALS

ONLINE DOCUMENTATION

READING LEVELS

A MANAGER’S VIEW OF DELIVERY, INSTALLATION, AND DOCUMENTATION

CASE STUDY OF DELIVERY IN AGILE DEVELOPMENT

DELIVERY, INSTALLATION, AND DOCUMENTATION OF THE MAJOR SOFTWARE PROJECT

Maintenance and Software Evolution

INTRODUCTION

CORRECTIVE SOFTWARE MAINTENANCE

ADAPTIVE SOFTWARE MAINTENANCE

HOW TO READ REQUIREMENTS, DESIGNS, AND SOURCE CODE

A MANAGER’S PERSPECTIVE ON SOFTWARE MAINTENANCE

MAINTENANCE COSTS, SOFTWARE EVOLUTION, AND THE DECISION TO BUY VERSUS BUILD VERSUS REUSE VERSUS REENGINEER

MAINTENANCE IN AGILE DEVELOPMENT AND THE TOTAL LIFE CYCLE COSTS

MAINTENANCE OF THE MAJOR SOFTWARE PROJECT

Research Issues in Software Engineering

SOME IMPORTANT RESEARCH PROBLEMS IN SOFTWARE ENGINEERING

HOW TO READ THE SOFTWARE ENGINEERING RESEARCH LITERATURE

APPENDIX A: AN INTERESTING SOFTWARE PATENT

APPENDIX B: COMMAND-LINE ARGUMENTS

APPENDIX C: FLOWCHARTS

References

Index

A summary, keywords and phrases, and further reading appear at the end of each chapter.

About the Author

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.

About the Series

Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COM012040
COMPUTERS / Programming / Games
COM051010
COMPUTERS / Programming Languages / General
COM051230
COMPUTERS / Software Development & Engineering / General
MAT000000
MATHEMATICS / General