A version of the senior undergraduate or first-year graduate textbook Classical and Object-Oriented Software Engineering , third edition (1996), using the premier language of the World Wide Web and Internet and a programming language that Shach declares to embody the principles of software engineering. Assumes a knowledge of one of the high-level programming languages and data structures. Annotation c. by Book News, Inc., Portland, Or.
Simple to read and easy to follow, but lots of repetitive information.
This book is divided into two main parts; the first part covers the major concepts of Software Engineering Process and the second part examines each phase in Software Life Cycle Process in more details.
First part consists of six chapters and the second part consists of 8 chapters, each chapter ends with a chapter review and certain problems to be solved.
Part I
Chapter 1: An introduction to the scope of software engineering, presenting several aspects such as historical, economic, maintenance, specification, and design aspects. In addition to overview about software teams and terminologies, also it provides an abstract about software phases and comparison between structured and object oriented paradigms.
Chapter 2: Provides more details about software cycle phases: Requirement, Specification, Planning, Design, Implementation, Integration, Maintenance, and Retirement Phase. Ending with a careful examination to software production related problems.
Chapter 3: Titled by Software Life-Cycle Models, analyzes each model (Build-and-Fix, Waterfall, Rapid Prototyping, Incremental, and Spiral Model) in term of advantages and disadvantages and giving a comparison study among them.
Chapter 4: Mainly presents three different software engineering tools, which are Stepwise Refinement, Cost-Benefit Analysis, and CASE tools, defining and analyzing them and their usage.
Chapter 5: Testing Principles, this chapter covers the two types of testing the nonexecution-based testing and the execution-based testing, and a comparison between walkthroughs and inspections reviews. Also, discussing what should be tested? Who should perform execution-based testing? When testing stops?
Chapter 6: Introduction to Objects; defining object oriented related concepts, such as modules, cohesion, coupling, data encapsulation, abstract data types, information hiding, objects, and reuse.
Part II
Chapter 7: this chapter examines and analysis the first phase of SLCD phases which is the requirement phase. Describing the requirements analysis technique and giving attention on the rapid prototyping technique.
Chapter 8: Specification techniques (formal, semi-formal, and informal techniques) are expressed in this chapter.
Chapter 9: Provide a comparison between structured and object oriented paradigms. Followed by an analysis of the object-oriented paradigm.
Chapter 10: States what should be estimated and considered in the planning phase.
Chapter 11: Considers design phase activities and techniques, discussing in more details all of action-oriented, data-oriented, and object oriented design.
Chapter 12: The last phase which is considered in this book is the implementation phase. Expressing certain topics, such as Fourth Generation Languages, Structured Programming, Good Programming Practice, Team Organization, and Portability.