Retail Price AUD$123.95
Minimum Order: 1
Dispatch: 1 day
Object-Oriented Software Engineering: /Lethbridge, Ti/Paper/0077109082/S047-C2
The focus in Object-Oriented Software Engineering is software knowledge and skills that readers can put into immediate practical use. The book is designed to be used by industrial employees who want a better understanding of modern software engineering, and also as a textbook for second-year software engineering students.
The book introduces the background knowledge that a software engineer will need to know in order to start work on large projects in industry. To benefit most from the book, readers should first have a basic knowledge of object-oriented programming.
Object-Oriented Software Engineering is accompanied by an extensive web site at www.lloseng.com. This web site contains PowerPoint slides for lecturers, source code, links to web-sites mentioned in the book, as well as an extensive knowledge base containing many of the important facts found in the book. The book itself contains over 400 problems to help you develop your skills.
Chapter 1 describes what software engineering is all about, as compared to similar fields such as computer science or computer engineering. This chapter also emphasizes that software engineering is an engineering discipline whose objective must be to solve customers' problems within cost, time and other constraints, and while behaving ethically.
The next two chapters look at the key background users should have before embarking on projects: A knowledge of basic object-oriented concepts, and an appreciation for reusable technology. In fact, Chapter 3, discusses in detail a client-server framework, called OCSF on which is completely reusable and forms the basis for many exercises and examples in the book. Full source code for this is available.
Chapter 4 discusses requirements gathering and analysis, including a discussion of how to conduct effective interviews, how to brainstorm for ideas, and how to perform basic use-case analysis. Emphasis is placed on how to review requirements effectively and how to manage changing requirements.
Chapters 5 and 6 discuss UML class diagrams in depth. Chapter 5 focuses on object-oriented analysis, while Chapter 6 introduces design patterns. Chapter 5 includes an overview of how to implement class diagrams in Java.
Chapter 7 discusses the human element of software engineering: It covers use-case analysis in more depth, and introduces user-interface design.
Chapter 8 continues the discussion of UML, focusing on interaction diagrams and state diagrams. As with Chapter 5, samples of Java are used to explain how the diagrams can be converted into code.
Chapter 9 discusses design principles in depth, including such key principles as, Œdivide and conquer, Œreduce coupling, and Œincrease cohesion. There is a discussion of software architecture which emphasizes how each architectural pattern helps the designer to adhere to the basic design principles.
Chapter 10 discusses testing in depth. There is a complete catalogue of types of defect typically found in software, along with strategies for testing for the presence of these defects. The chapter also presents strategies for testing large systems, and introduces inspection as another essential way to assure quality.
Chapter 11 introduces project management including such topics as cost estimation and planning. The book concludes with a review chapter, several appendices, a large glossary and an index.