Synopses & Reviews
An Integrated Approach to Software Engineering introduces software engineering to advanced-level undergraduate and graduate students of computer science. It emphasizes a case-study approach whereby a project is developed through the course of the book, illustrating the different activities of software development. The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project. All activities, including quality assurance and control activities, are described in each chapter as integral activities for that phase of development. Similarly, the author carefully introduces appropriate metrics for controlling and assessing the software process. Chapters in this revised edition, updated for today's standards, include these new features: Software Process: a discussion on the timeboxing model for iterative development and on inspection process Requirements Analysis and Specification: a description of Use Cases Software Architecture: an additional chapter for this edition Project Planning: some practical techniques for estimation, scheduling, tracking, and risk management Object Oriented Design: a discussion on UML and on concepts such as cohesion, coupling and open-closed principle Coding: sections on refactoring, test driven development, pair programming, common coding defects, coding standards, and some useful coding practices Testing: a presentation on pair-wise testing as an approach for functional testing, defect tracking, and defect analysis and prevention The text, bolstered by numerous examples and chapter summaries, imparts to the reader the knowledge, skills, practices and techniques needed to successfully execute a software project.
From the reviews of the third edition: "Engineering and project management are the two major types of skills required in software engineering. This book discusses those skills. ... The book is well written and well organized; it starts with the most basic software engineering concepts, and then goes gradually toward the most advanced ones. The book ends with a comprehensive index, and an up-to-date list of references. I can recommend this book for all teachers who want to present a first course in software engineering for graduate students." (Soraya Kouadri Mostefaoui, ACM Computing Reviews, Vol. 49 (3), March, 2008)
Details the different activities of software development with a case-study approach whereby a project is developed through the course of the book The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project.
An introductory course in Software Engineering remains one of the hardest subjects to teach. Much of the difficulty stems from the fact that Software Engineering is a very wide field which includes a wide range of topics. Con sequently, what should be the focus of an introductory course remains a challenge with many possible viewpoints. This third edition of the book approaches the problem from the perspec tive of what skills a student should possess after the introductory course, particularly if it may be the only course on software engineering in the stu dent's program. The goal of this third edition is to impart to the student knowledge and skills that are needed to successfully execute a project of a few person-months by employing proper practices and techniques. In- dently, a vast majority of the projects executed in the industry today are of this scope executed by a small team over a few months. Another objective of the book is to lay the foundation for the student for advanced studies in Software Engineering. Executing any software project requires skills in two key dimensions engineering and project management. While engineering deals with issues of architecture, design, coding, testing, etc., project management deals with planning, monitoring, risk management, etc. Consequently, this book fo cuses on these two dimensions, and for key tasks in each, discusses concepts and techniques that can be applied effectively on projects."
Table of Contents
Software Engineering Challenges.- Software Processes and Process Models.- Project Management.- Software Configuration Management.- Software Requirements Analysis and Specification.- Software Architecture and Design.- Project Planning.- Project Scheduling and Staffing.- Software Quality Management.- Rish Management.- Structured Design Methodology.- Object-Oriented Design and Design Methodology.- Programming Principles and Guidelines.- Testing Methodologies.- Defect Analysis and Prevention.