Object-Oriented Software Engineering: An Agile Unified Methodology by David Kung presents a step-by-step methodology that integrates modeling and design, UML, patterns, test-driven development, quality assurance, configuration management, and agile principles throughout the life cycle. The overall approach is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as realworld stories to help the reader understand software design principles, patterns, and other software engineering concepts. The book also provides stimulating exercises that go far beyond the type of question that can be answered
by simply copying portions of the text.
Salient Feature:
-Teaches a methodology - Most books teach a process, but this only describes WHAT the life cycle activities are. A methodology details the steps and procedures or HOW to perform the activities to the extent that the beginner can carry them out and produce the desired software system.
- Covers design patterns using a learn-by-compare approach
- Covers Object-Oriented software testing
Table of Contents:
Part I Introduction and System Engineering
Chapter 1 Introduction
Chapter 2 Software Process and Methodology
Chapter 3 System Engineering
Part II Analysis and Architectural Design
Chapter 4 Software Requirements Elicitation
Chapter 5 Domain Modeling
Chapter 6 Architectural Design
Part III Modeling and Design of Interactive Systems
Chapter 7 Deriving Use Cases from Requirements
Chapter 8 Actor-System Interaction Modeling
Chapter 9 Object Interaction Modeling
Chapter 10 Applying Responsibility-Assignment Patterns
Chapter 11 Deriving a Design Class Diagram
Chapter 12 User Interface Design
Part IV Modeling and Design of Other Types of Systems
Chapter 13 Object State Modeling for Event-Driven Systems
Chapter 14 Activity Modeling for Transformational Systems
Chapter 15 Modeling and Design of Rule-Based Systems
Part V Applying Situation-Specific Patterns
Chapter 16 Applying Patterns to Design a State Diagram Editor
Chapter 17 Applying Patterns to Design a Persistence Framework
Part VI Implementation and Quality Assurance
Chapter 18 Implementation Considerations
Chapter 19 Software Quality Assurance
Chapter 20 Software Testing
Part VII Maintenance and Configuration Management
Chapter 21 Software Maintenance
Chapter 22 Software Configuration Management
Part VIII Project Management and Software Security
Chapter 23 Software Project Management
Chapter 24 Software Security
Appendices
A Personal Software Process: Estimation, Planning, and Quality Assurance
B Java Technologies.
C Software Tools
D Project Descriptions.
References
Index