Agile Model Driven Development with UML 2
Cambridge University Press, 2004 ISBN#: 0-521-54018-6
The Object Primer is a straightforward, easy-to-understand introduction to agile software development (ASD) using object-oriented (OO) and relational database technologies. It covers the fundamental concepts of ASD, OO, and FLOOT, describing how to take an Agile Model Driven Development (AMDD) approach to requirements, analysis, and design techniques applying the diagrams of the Unified Modeling Language (UML) 2 as well as other leading-edge modeling techniques. The Object Primer goes further to show you how to take a Test-Driven Development (TDD) to development using Java. During the 1990s, OO superceded the structured paradigm as the primary technology paradigm for software development. Now during the 2000s ASD is superceding traditional, prescriptive approaches to software development. While OO and ASD are often used to develop complex systems, learning them does not need to be complicated. This book is different than many other introductory books about these topics—it is written from the point of view of a real-world developer, someone who has lived through the difficulty of learning these concepts.
Chapter 1: Introduction. A basic overview of modern development technologies -- objects, relational databases, web services, and XML -- and how they're used in practices. Also overviews the fundamentals of agile software development.
Chapter 2: Object-Oriented Concepts. This chapter describes the fundamental concepts that you require to work effectively with object technology.
Chapter 3: Full Lifecycle Object-Oriented Testing (FLOOT). This chapter describes a collection of techniques that can be used throughout the entire software development lifecycle (SDLC), including unit testing techniques that you can apply as part of your TDD efforts.
Chapter 4: Agile Modeling Driven Development (AMDD). This chapter overviews AMDD, an evolutionary approach to development where you create agile models to understand what it is that you’re building before you code it. You’ll discover that your modeling and documentation efforts can in fact be incredibly effective when you’re following an agile approach.
Chapter 5: Usage Modeling. An overview of usage modeling techniques, including Essential Use Cases, System Use Cases, User Stories, Features, and UML 2 Use Case Diagrams. Understanding how people will work with your system is a critical success factor.
Chapter 6: User Interface Development. To its users the user interface is the system. Every developer must have basic user interface skills if they are to be successful. This chapter overviews Essential User Interface Prototypes, traditional User Interface Prototypes, User Interface Flow Diagrams (Storyboards), user interface design techniques, and usability factors. In short it covers the fundamentals.
Chapter 7: Supplementary Requirements. This chapter describes requirements techniques such as Business Rules, Constraints, Technical Requirements, and Glossaries. These artifacts supplement your usage and user interface models (among other things).
Chapter 8: Conceptual Domain Modeling. You need to explore the fundamental business entities, and their interrelationships, in order to understand your business environment. You have several techniques available to you to do this, each of which has strengths and weaknesses. This chapter describes how to create Object Role Model (ORM) Diagrams, Logical Data Model (LDM)s, UML 2 Class Diagrams, Class Responsibility Collaborator (CRC) models, and Robustness Diagrams. This chapter also overviews analysis patterns.
Chapter 9: Process Modeling. Business applications support business processes, processes which can be described using a variety of process models (hence the term) such as Data Flow Diagram (DFD)s, UML 2 Activity Diagrams, and Flow Charts.
Chapter 10: Agile Architecture. This chapter describes an agile approach to architecture, as well as several modeling techniques that you can apply to explore the high-level design of your system. Techniques described include UML 2 Package Diagrams, UML 2 Component Diagrams, Change Cases, UML 2 Deployment Diagrams, Network Diagrams, and Free-Form Diagrams. This chapter discusses architectural patterns as well as common architecture techniques such as layering.
Chapter 11: Dynamic Object Design. This chapter overviews an agile approach to dynamic object design, covering techniques such as UML 2 Sequence Diagrams, UML 2 Communication/Collaboration Diagrams, UML 2 State Machine Diagrams, UML 2 Composite Structure Diagrams, UML 2 Timing Diagrams, and UML 2 Interaction Overview Diagrams.
Chapter 12: Structural Design Modeling. You can explore the structure of both your object and database schemas using UML 2 Class Diagrams and Physical Data Model (PDM)s (I prefer to use UML notation for this). This chapter also overviews design patterns.
Chapter 13: Agile Object Programming Techniques. This chapter focuses on techniques for agile programming, including TDD and refactoring. It also shows how to move from detailed design to Java source code and presents a collection of programming tips and techniques.
Chapter 14: Agile Database Development Techniques. This chapter presents an evolutionary approach to database development, overviewing development techniques such as database refactoring and the fundamentals of mapping objects to relational databases. It also describes a collection of implementation techniques for working with object and relational technology effectively.
Chapter 15: Where To Go From Here. This chapter briefly summarizes the book and provides advice for your next steps in learning about modern software development.
By reading The Object Primer you will gain a solid understanding of agile development concepts and techniques, in particular how to model effectively on an agile project. You will see how the leading-edge techniques can be applied in practice to successfully develop systems.
The short answer is just about everything: I kept most of the introduction to OO
concepts chapter, some of the programming chapter, and a few of the diagrams.
Everything else is a complete rewrite and frankly in my mind is a brand new
book. I stuck with my original approach of writing something that is
understandable by the average, everyday developer.
If you're a mainframe COBOL or PL/1 programmer who is working on their first OO project, The Object Primer is for you. If you're a business analyst or user representative involved in the documentation of requirements for an OO application, The Object Primer is for you. If you're a project manager who needs to get up to speed on OO, The Object Primer is for you. If you're a systems designer whose organization is migrating to object technology, The Object Primer is for you. If you are a student taking your first course in Java or C++, The Object Primer is for you. If you're a researcher or an academic interested in arcane software engineering theory, sorry, I can't please everybody.
Throughout this book I use the term "developer" very broadly: a developer is anyone involved in the development of a software application. This includes programmers, analysts, designers, user representatives, database administrators, support engineers, and so on. While many people wouldn't include user representatives in this list my experience is that active user involvement is often the key determinant to the success of a software project. Users can actively participate in requirements engineering, analysis, and sometimes design -- it is clear to me that users should be considered developers. Call me a radical.
The Object Primer was my first book, originally published in 1995. The second edition was published in 2001 and the 3rd edition is now available. The third edition contains roughly 75% new material from the 2nd edition.
Russian translation of this page. Translation of the book to come.
We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer. A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates.
This site owned by Ambysoft Inc.