Search Ebook here:


Essentials of Software Engineering 5th Edition



Essentials of Software Engineering 5th Edition PDF

Author: Frank Tsui, Orlando Karam

Publisher: Jones & Bartlett Learning

Genres:

Publish Date: February 14, 2022

ISBN-10: 1284228991

Pages: 332

File Type: Epub

Language: English

read download

Book 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 one-semester course that meets approximately three hours a week for sixteen 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 backgrounds—one author has more than twenty-five 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 Fifth Edition

The basic concepts and theories of software engineering have stabilized considerably from the early days of thirty to forty years ago. Nevertheless, the technology and tools continue to evolve, expand, and improve every four to five years. In this fifth edition, we cover some of these newly established improvements in technology and tools but reduce some areas, such as process assessment models, that are becoming less relevant today. We will still maintain many of the historically important concepts that formed the foundation to this field, such as the traditional process models. Our goal is to continue to keep the content of this book to a concise amount that can be taught in a sixteen-week semester introductory course. The major modifications to this fifth edition are as follows”

  • An existing and historical notion of “continuous integration” has expanded into a newer concept called Continuous Integration and Continuous Deployment (CI/CD) and picked up momentum with improved tools and maturing Agile methods. This is discussed in Chapter 2.
  • To reflect more current thinking and terminologies, Chapter 4 is retitled as Traditional Software Process Models. Chapter 4’s discussion on process assessment models, especially Capability Maturity Model Integrated (CMMI), is greatly reduced. Chapter 5 is retitled as Agile Software Process Models to more accurately reflect its contents. An extension to the popular Agile methodologies called Development and Operations or DevOps is added in Chapter 5 as the next level of new improvement in process.
  • Many of the current design and development related ideas and tools such as Service Oriented Architecture (SOA), Enterprise Service Bus and microservices are added to Chapter 7.
  • Some of the newer concepts and tools associated with virtualization and containerization are added in Chapter 9.
  • To parallel the continuous integration and CI/CD discussions, the newer GitHub/Git tool is included in section 11.5 of Chapter 11.
  • Although security is a very important topic, it has grown to be a separate, stand-alone discipline encompassing the software, hardware, and information infrastructure technology and services subjects. Instead of devoting a thorough treatise to this topic, a discussion of the more recent consideration of security that comes with approaches like Secure DevOps or DevSecOps is added to section 14.1 of Chapter 14.

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, third, and fourth editions of the book from different readers and universities and have corrected the grammatical and spelling errors. Any remaining error is totally ours.

The first through the fourth 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 fifth edition will prove to be a better one for all future readers.

Organization of the Book

Chapters 1 and 2 demonstrate the difference between a small programming project and the effort required to construct a mission-critical software system. We purposely took two chapters to demonstrate this concept, highlighting the difference between a single-person “garage” operation and a team project required to construct a large “professional” system. The discussion in these two chapters delineates the rationale for studying and understanding software engineering. Chapter 3 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 Chapters 4 and 5. 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).

Chapters 6, 7, 9, 10, and 11 cover the sequence of development activities from requirements through product release at a macro level. Chapter 7 includes an expanded user interface design discussion with an example of HTML-Script-structured query language (SQL) design and implementation. Chapter 8, following the chapter on software design, steps back and discusses design characteristics and metrics used in evaluating high-level and detailed designs. Chapter 11 discusses not only product release but also the general concept of configuration management.

Chapter 12 explores the support and maintenance activities related to a software system after it is released to customers and users. Topics covered include call management, problem fixes, and feature releases. The need for configuration management is further emphasized in this chapter. Chapter 13 summarizes the phases of project management, along with some specific project planning and monitoring techniques. It is only a summary, and some topics, such as team building and leadership qualities, are not included. The software project management process is contrasted from the development and support processes. Chapter 14 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:

  • Appendix A: Essential Software Development Plan (SDP)
  • Appendix B: Essential Software Requirements Specifications (SRS)
    • Example 1: Essential SRS—Descriptive
    • Example 2: Essential SRS—Object Oriented
    • Example 3: Essential SRS—Institute of Electrical and Electronics Engineers (IEEE) Standard
    • Example 4: Essential SRS—Narrative Approach
  • Appendix C: Essential Software Design
    • Example 1: Essential Software Design—Unified Modeling Language (UML)
    • Example 2: Essential Software Design—Structural
  • Appendix D: Essential Test Plan

Many times in the development of team projects by novice software engineers there is a need for specific direction on how to document the process. The four appendices were developed to give the reader concrete examples of the possible essential outlines. Each of the appendices gives an outline with explanations. This provides the instructor with concrete material to supplement class activities, team project assignments, and/or independent work.

The topical coverage in this book reflects those emphasized by the IEEE Computer Society–sponsored Software Engineering Body of Knowledge (SWEBOK) and by the Software Engineering 2004 Curriculum Guidelines for Undergraduate Degree Program in Software Engineering. The one topic that is not highlighted but is discussed throughout the book concerns quality—a topic that needs to be addressed and integrated into all activities. It is not just a concern of the testers. Quality is discussed in multiple chapters to reflect its broad implications and cross activities.

Suggested Teaching Plan

All the chapters in this book can be covered within one semester. However, some instructors may prefer a different emphasis:

  • Those who want to focus on direct development activities should spend more time on Chapters 6 through 11.
  • Those who want to focus more on indirect and general activities should spend more time on Chapters 1, 12, and 13.

It should be pointed out that both the direct development and the indirect support activities are important. The combined set forms the software engineering discipline.

There are two sets of questions at the end of each chapter. For the Review Questions, students can find answers directly in the chapter. The Exercises are meant to be used for potential class discussion, homework, or small projects.

Supplements

Slides in PowerPoint format, Answers to End-of-Chapter Exercises, Source code, and sample Test Questions are available for free instructor download. To request access, please visit go.jblearning.com/Tsui5e or contact your account representative.

Acknowledgments

We would first like to thank our families, especially our wives, Lina Colli and Teresa Tsui. They provided constant encouragement and understanding when we spent more time with the manuscript than with them. Our children—Colleen and Nicholas; Orlando and Michelle; and Victoria, Liz, and Alex—enthusiastically supported our efforts as well.

In addition, we would like to thank the reviewers who have improved the book in many ways. We would like to specifically thank the following individuals for their work:

  • Alan C. Verbit, Delaware County Community College
  • Ayad Boudiab, Georgia Perimeter College
  • Badari Eswar, San Jose State University
  • Ben Geisler, University of Wisconsin, Green Bay
  • Benjamin Sweet, Lawrence Technological University
  • Brent Auernheimer, California State University, Fresno
  • Bruce Logan, Lesley University
  • Chip Anderson, Lake Washington Institute of Technology
  • Dar-Biau Liu, California State University, Long Beach
  • David Gustafson, Kansas State University
  • Donna DeMarco, Kutztown University
  • Dr. Alex Rudniy, University of Scranton
  • Dr. Anthony Ruocco, Roger Williams University
  • Dr. Andrew Scott, Western Carolina University
  • Dr. Christopher Fox, James Madison University
  • Dr. David A. Cook, Stephen F. Austin State University
  • Dr. David Burris, Sam Houston State University
  • Dr. Dimitris Papamichail, The College of New Jersey
  • Dr. Edward G. Nava, University of New Mexico
  • Dr. Emily Navarro, University of California, Irvine
  • Dr. Jeff Roach, East Tennessee State University
  • Dr. Jody Paul, Metro State Denver
  • Dr. John Dalbey, California Polytechnic State University
  • Dr. Jason Hibbeler, University of Vermont
  • Dr. Jianchao Han, California State University Dominguez Hills
  • Dr. Joe Hoffert, Indiana Wesleyan University
  • Dr. Kenneth Magel, North Dakota State University
  • Dr. Mazin Al-Hamando, Lawrence Technological University
  • Dr. Michael Murphy, Concordia University Texas
  • Dr. Reza Eftekari, George Washington University, University of Maryland at College Park
  • Dr. Ronald Finkbine, Indiana University Southeast
  • Dr. Sofya Poger, Felician University
  • Dr. Sen Zhang, SUNY Oneonta
  • Dr. Stephen Hughes, Coe College
  • Dr. Steve Kreutzer, Bloomfield College
  • Dr. Yenumula B. Reddy, Grambling State University
  • Frank Ackerman, Montana Tech
  • Ian Cottingham, Jeffrey S. Raikes School at The University of Nebraska, Lincoln
  • Jeanna Matthews, Clarkson University
  • John Sturman, Rensselaer Polytechnic Institute
  • Kai Chang, Auburn University
  • Katia Maxwell, Athens State University
  • Lenis Hernandez, Florida International University
  • Larry Stein, California State University, Northridge
  • Mark Hall, Hastings College
  • Michael Oudshoorn, Montana State University
  • Paul G. Garland, Johns Hopkins University
  • Salvador Almanza-Garcia, Vector CANtech, Inc.
  • Theresa Jefferson, George Washington University
  • William Saichek, Orange Coast College

We continue to appreciate the help from Melissa Duffy, Edward Hinman, Paula-Yuan Gregory, Baghyalakshmi Jagannathan, Padmapriya Soundararajan, Lori Weidert, and others at Jones & Bartlett Learning. Any remaining error is solely the mistake of the authors.

—Frank Tsui
—Orlando Karam
—Barbara Bernal


Download Ebook Read Now File Type Upload Date
Download here Read Now Epub January 18, 2022

How to Read and Open File Type for PC ?