The Object Primer 3e 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 full-lifecycle testing. It describes 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) 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. During the 2000s ASD superceded 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.
What Will You Learn ?
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.
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.