Introduction to Analysis and Design • Why is Programming Hard?
• The Tasks of Software Development
• Modules
• Models
• Modeling
• Perspective
• A Little History
• Objects
• Change
• User Interface
• New Paradigms
Objects • Encapsulation
• Abstraction
• Objects
• Classes
• Instance Creation
• Responsibilities
• Attributes
• Composite Objects
• Operations and Methods
• Visibility
• Inheritance
Objects II • Constructors & Destructors
• Scope
• Class Scope
• Runtime Type Identification
• Abstract Classes
• Polymorphism
• Multiple Inheritance
• Problems with Multiple Inheritance
• Solving Multiple Inheritance
• Interfaces
Use Cases • Use Cases
• Use
Case Diagram
• Include and Extend
• Other Systems
• Narrative
• Using Use Cases
Classes and Their Relationships • Class Models
• Associations
• Multiplicity
• Qualified Associations
• Roles
• Association Classes
• Composition and Aggregation
• Using Class Models
Interactions Over Time • Sequence Diagrams
• Decisions
• Iteration
• Creating and Destroying Objects
• Activation
• Sync & Async
• The Objects Drive the Interactions
• Evaluating Sequence Diagrams
• Using Sequence Diagrams
Interactions Over Space • Collaboration Diagrams
• Evaluating Collaboration Diagrams
• Using Collaboration Diagrams
State Machines • What is State?
• State Notation
• Transitions and Guards
• Registers and Actions
• Internal Transitions
• Superstates and Substates
• Concurrent States
• Using State Machines
• Implementation
Activities • Activity Notation
• Decisions and Merges
• Synchronization
• Drilling Down
• Iteration
• Swimlanes
• Using Activity Diagrams
Other UML Diagrams • Modeling Groups of Objects - Package Diagrams
• Visibility and Importing
• Structural Diagrams
• Components and Interfaces
• Deployment Diagram
Process • Process
• Risk Management
• Test
• Reviews
• Tools and Techniques
• Refactoring
• History
• The Unified Process
• Agile Processes
The Project• Inception
• Elaboration
• Construction Iterations
Domain Analysis • Top View - The Domain Perspectiva
• Data Dictionary
• Finding the Objects
• Responsibilities, Collaborators, and Attributes CRC Cards
• Class Models
• Use
Case Models
• Other Models
• Judging the Domain Model
Requirements and Specification • The Goals
• Understand the Problem
• Specify a Solution
• Prototyping
• The Complex User
• Other Models
• Judging the Requirements Model
Design of Objects • Design
• Factoring
• Design of Software Objects
• Features
• Methods
• Cohesion of Objects
• Coupling Between Objects
• Inheritance
System Design • Design
• A Few Rules DCInternet
• Object Creation
• Class Models
• Interaction Diagrams
• Printing the Catalog
• Links
Refactoring • Refactoring
• Clues and Cues
• How to Refactor
• A Few Refactoring Patterns