Description Object-Oriented Software Engineering: An Agile Unified Methodology is written for undergraduate and graduate students learning software engineering. The text 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. It offers thorough coverage of all of the topics typically included in an introductory software engineering course, and makes a point of balancing the introduction of software engineering ideas with the technical details of object-orientation that are necessary for student understanding.
The overall approach of the book is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as real-world 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. To supplement the book, the author has prepared a host of ancillary materials. These include sample course syllabi, PowerPoint lecture slides, test generation software, test question databases, and exercise solutions.
Features
Teaches Agility This is something other books on the market don’t offer. Agility is the emerging trend in software development because agile unified processes can deal with change much more effectively than traditional processes.
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. Commonly used patterns are presented using case studies. A design problem is described, a commonly seen design is introduced, and then a discussion of the drawbacks of the design is offered along with lessons about how patterns can be applied to improve it. This allows students to learn why, when, and how to apply patterns indifferent situations.
Covers OO software testing. Unlike many other texts that present only conventional software testing or that do not cover software testing at all, Kung describes the challenges of and the emerging methods and tools for OO software testing as well as test-driven development.
Companion Website includes sample course syllabi, PowerPoint lecture slides, test generation software, test question databases, and exercise solutions.
E-Book Options visit www.coursesmart.com (ISBN 0077508432). With the CourseSmart eTextbook version of this title, students can save nearly half off the cost of a print book, reduce their impact on the environment, and access powerful web tools for learning. Faculty can also review and compare the full text online without having to wait for a print desk copy. CourseSmart is available as an online or offline eTextbook. Students can also print sections of the book for maximum portability.
Table of Contents Part 1 Introduction and System Engineering
Chapter 1 Introduction
Chapter 2 Software Process and Methodology
Chapter 3 System Engineering
Part 2 Analysis and Architectural Design
Chapter 4 Software Requirements Elicitation
Chapter 5 Domain Modeling
Chapter 6 Architectural Design
Part 3 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 4 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 5 Applying Situation-Specific Patterns
Chapter 16 Applying Patterns to Design a State Diagram Editor
Chapter 17 Applying Patterns to Design a Persistence Framework
Part 6 Implementation and Quality Assurance
Chapter 18 Implementation Considerations
Chapter 19 Software Quality Assurance
Chapter 20 Software Testing
Part 7 Maintenance and Configuration Management
Chapter 21 Software Maintenance
Chapter 22 Software Configuration Management
Part 8 Project Management and Software Security
Chapter 23 Software Project Management
Chapter 24 Software Security