World Headquarters
Jones & Bartlett Learning
5 Wall Street
Burlington, MA 01803
978-443-5000
www.jblearning.com
Jones & Bartlett Learning books and products are available through most bookstores and online booksellers. To contact Jones & Bartlett Learning directly, call 800-832-0034, fax 978-443-8000, or visit our website, www.jblearning.com.
Substantial discounts on bulk quantities of Jones & Bartlett Learning publications are available to corporations, professional associations, and other qualified organizations. For details and specific discount information, contact the special sales department at Jones & Bartlett Learning via the above contact information or send an email to .
Copyright 2018 by Jones & Bartlett Learning, LLC, an Ascend Learning Company
All rights reserved. No part of the material protected by this copyright may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission from the copyright owner.
The content, statements, views, and opinions herein are the sole expression of the respective authors and not that of Jones & Bartlett Learning, LLC. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not constitute or imply its endorsement or recommendation by Jones & Bartlett Learning, LLC and such reference shall not be used for advertising or product endorsement purposes. All trademarks displayed are the trademarks of the parties noted herein. Essentials of Software Engineering, Fourth Edition is an independent publication and has not been authorized, sponsored, or otherwise approved by the owners of the trademarks or service marks referenced in this product.
There may be images in this book that feature models; these models do not necessarily endorse, represent, or participate in the activities represented in the images. Any screenshots in this product are for educational and instructive purposes only. Any individuals and scenarios featured in the case studies throughout this product may be real or fictitious, but are used for instructional purposes only.
13278-6
Production Credits
VP, Executive Publisher: David D. Cella
Executive Editor: Matt Kane
Acquisitions Editor: Laura Pagluica
Editorial Assistant: Taylor Ferracane
Editorial Assistant: Mary Menzemer
Director of Vendor Management: Amy Rose
Director of Marketing: Andrea DeFronzo
Marketing Manager: Amy Langlais
VP, Manufacturing and Inventory Control: Therese Connell
Project Management and Composition: S4Carlisle Publishing
Services
Cover Design: Michael ODonnell
Rights & Media Specialist: Merideth Tumasz
Media Development Editor: Shannon Sheehan
Cover Image: Eladora/Dreamstime.com
Printing and Binding: Edwards Brothers Malloy
Cover Printing: Edwards Brothers Malloy
Library of Congress Cataloging-in-Publication Data
Names: Tsui, Frank F., author. | Karam, Orlando, author. | Bernal, Barbara, author.
Title: Essentials of software engineering / Frank Tsui, Orlando Karam, Barbara Bernal.
Description: Fourth edition. | Burlington, Massachusetts : Jones & Bartlett Learning, [2017] | Includes bibliographical references and index.
Identifiers: LCCN 2016036199 | ISBN 9781284106008
Subjects: LCSH: Software engineering.
Classification: LCC QA76.758 .T78 2014 | DDC 005.1--dc23 LC record available at https://lccn.loc.gov/2016036199
6048
Printed in the United States of America
22 21 20 19 18 10 9 8 7 6 5 4 3
Contents
Preface
Essentials of Software Engineering was born from our experiences in teaching introductory material on software engineering. Although there are many books on this topic available in the market, few serve the purpose of introducing only the core material for a 1-semester course that meets approximately 3 hours a week for 16 weeks. With the proliferation of small web applications, many new information technology personnel have entered the field of software engineering without fully understanding what it entails. This book is intended to serve both new students with limited experience as well as experienced information technology professionals who are contemplating a new career in the software engineering discipline. The complete life cycle of a software system is covered in this book, from inception to release and through support.
The content of this book has also been shaped by our personal experiences and backgroundsone author has more than 25 years in building, supporting, and managing large and complex mission-critical software with companies such as IBM, Blue Cross Blue Shield, MARCAM, and RCA; another author has experience involving extensive expertise in constructing smaller software with Agile methods at companies such as Microsoft and Amazon; and the third author is bilingual and has broad software engineering teaching experiences with both U.S. college students and non-U.S. Spanish-speaking students.
Although new ideas and technology will continue to emerge and some of the principles introduced in this book may have to be updated, we believe that the underlying and fundamental concepts we present here will remain.
Preface to the Fourth Edition
Since the publication of the third edition, the computing industry has moved faster toward service applications and social media. While the software engineering fundamentals have stayed relatively stable, we decided to make a few modifications to reflect some of the movements in software engineering, including the enhancements of teaching aids to this book. It is our goal to continue keeping the content of the book concise enough to be taught in a 16-week, 1-semester course.
The following is a list of major enhancements made for the fourth edition.
Discussion on kanban methodology in
REST distributed processing architecture in
Data design, analysis and big data in
Code reuse in
Cloud computing in
Sample team projects available online for students and instructors
Updated and enhanced instructor resources
In addition, we have made small modifications to some sentences throughout the book to improve the expression, emphasis, and comprehension. We have also received input from those who used our first, second, and third editions of the book from different universities and have corrected the grammatical and spelling errors. Any remaining error is totally ours.
The first, second, and third editions of this book have been used by numerous colleges and universities, and we thank them for their patience and input. We have learned a lot in the process. We hope the fourth edition will prove to be a better one for all future readers.
Organization of the Book
is the first place where software engineering is discussed more formally. Included in this chapter is an introduction to the profession of software engineering and its code of ethics.
The traditional topics of software processes, process models, and methodologies are covered in . Reflecting the vast amount of progress made in this area, these chapters explain in extensive detail how to evaluate the processes through the Capability Maturity Models from the Software Engineering Institute (SEI).
discusses not only product release, but the general concept of configuration management.
concludes the book and provides a view of the current issues within software engineering and the future topics in our field.
The appendices give readers and students insight into possible results from major activities in software development with the essential samples for a Team Plan, Software Development Plan, Requirements Specification, Design Plan, and Test Plan. An often asked question is what a requirements document or a test plan should look like. To help answer this question and provide a starting point, we have included sample formats of possible documents resulting from the four activities of Planning, Requirements, Design, and Test Plan. These are provided as follows:
Next page