Introduction to Software Engineering  book cover
SAVE
$23.00
2nd Edition

Introduction to Software Engineering




ISBN 9781498705271
Published February 5, 2016 by Chapman and Hall/CRC
402 Pages - 98 B/W Illustrations

 
SAVE ~ $23.00
was $115.00
USD $92.00

Prices & shipping based on shipping country


Preview

Book 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.

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.

...
View More

Author(s)

Biography

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.

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

Support Material

Ancillaries