Objetivo del curso

advertisement
COURSE
Object Oriented Analysis and Design
Using Unified Modeling Language
(UML)
www.tesis-oys.com.ar
1
Cantidad de Horas
Tipo
Idioma
24
Teórico Practico
Inglés
Objetivo del curso
Introduction to Object Technology
Benefits and methods
The purpose of the UML
Refining Class Designs
Creating detailed class specifications
Java language support for classes
Object-Oriented Principles
Objects and classes
Relationships between objects
Preparing For Implementation
Using inheritance in design
Identifying abstract classes
Dealing with multiple inheritance
Polymorphism
Object Development Processes and
Technology
Project life cycles
Pros and cons: Smalltalk, C++ and Java
Starting Analysis: System Behavior
System boundaries
Identifying actors
Modeling use cases
Developing Scenarios
Deriving scenarios from use cases
Documentation
The Domain Object Model: Classes
Discovering and describing classes
From Analysis to Design
OOA versus OOD
Moving into design
Defining the Technical Architecture
Logical and physical software architecture
Making architectural decisions
Applying UML notations
Adding Design Detail to the Class Model
The design model
CRC cards
Sequence diagrams
Finding associations and operations
Modeling Object Lifetimes
State diagrams and sequence diagrams
Modeling activities
Designing Object Relationships
Association detail
Transient object interactions
Multiplicity
Collections
Aggregation
www.tesis-oys.com.ar
2
Temario
Lesson 1
Today’s Challenges
How Can Object Technology Help?
The Promise of Object Orientation
Where Can Objects be Used?
Development Methods and Tools
What Is an Object Oriented Method?
Modeling the Real World
Examples of OO Methods
New Terms, Old Ideas
What is UML?
Closing Thoughts
Lesson 2
What Is an Object?
A Database Analogy
Objects Perform Operations
Objects Remember Values
Objects Are an Abstraction
Encapsulation and Information-Hiding
Examples and Benefits
Class Discussion:
Spot the Operations and Attributes
How Objects Interact -- Messages
The Donut Diagram
Objects Associate with Each Other
How Many Objects Are in an Association?
Object Composition
More on Composition
Where Objects Come From -- Classes
Why Do We Need Classes?
Classes Versus Objects
Class Discussion:
What Classes Could These Objects Belong To?
Classification and Inheritance
Subclasses and Superclasses
Inheritance
Example Class Hierarchy
More on Inheritance
Generalization
The “Is-a-Kind-of” Relationship
Polymorphism
Polymorphism II
Example of Polymorphism
Introduction to UML Notation
What Objects Are Involved?
More About the Allocation Manager
Allocation Manager Operations
More About Room Types
Room Category Operations
More About Rooms
Room Operations
Playing the Game
Sample Allocation of Roles
Playing the Game
Extensions
Lesson 3
Phases of a Project
The Traditional Waterfall Life Cycle
The Iterative Life Cycle
Iterative Development
Incremental Delivery
OO Development—The Micro Process
OO Development—The Macro Process
Goals of OO Analysis and Design
OO Analysis Overview
OOA—People and Tools
OO Design Overview
Design Overview, continued
OOD—People and Tools
OO Implementation Overview
Implementation—People and Tools
Implementation Languages and Tools
Popular OO Programming Languages
Smalltalk
C++
Java
Benefits of Java
Lesson 4
The Problem of Misunderstood Scope
Specifying System Behavior
Use Cases Solution
What Is an Actor?
Actors
Describing Actors
Sample Actor
The Cars’R’Us Case Study
The Cars’R’Us Case Study
Practice 4:1 Identifying Actors
Introducing Use Cases
What is a Use Case?
Identifying Use Cases
Purpose of Use Cases
Purpose of Use Cases, Part 2
Developing Use Cases
Documenting Use Cases
Describing Use Cases
Sample Use Case
Use Case Diagrams
Advanced Topic: Managing Complexity
Generalizing and Specializing Actors
Packaging Use Cases
Generalization of Use Cases (Uses)
The “Extend” Relationship
Stereotypes
Meta-Classification
Lesson 5
Facts About Scenarios
Sample Scenarios
More About Scenarios
Purpose of Scenarios
To Infinity and Beyond
www.tesis-oys.com.ar
3
When to Stop Defining Scenarios
Sample Scenarios
Always Model the Logical Interface
Developing Scenarios
Lesson 6
Domain Object Model
Class Models
A Class Diagram
Class Diagrams Compared to ER Diagrams
Classes in UML
UML Class Diagrams - Association
A Class Is a Blueprint for Objects
Discovering Classes
Identifying Classes
Nouns and Noun Phrases
Whiteboard and Post-It Notes
Organizing Classes Spatially
Removing Synonyms
Remember the System Boundary
Demoting Unimportant Nouns
Brainstorming New Classes
Additional Filtering Criteria
Documenting the Domain Model
Describing Classes
How Much Detail is Needed?
Revised List of Supermarket Classes
What is Left in the Class Diagram?
Example: Class Descriptions
Practice 6: Identifying Classes
Identifying Associations
Lesson 7
Review of OO Analysis
Moving into OO Design
Exploratory Design Activities
Refining the Design
Design Artifacts
OO Analysis or OO Design?
Example of OOA Versus OOD
OO Design Map
Designing Classes and Associations
Designing for Inheritance
Designing for Reuse
Patterns
What is a Pattern?
Lesson 8
Why Architecture?
Technical Architecture Issues
Additional Technical Architecture
The Project Architect
Subsystems
Subsystems and Packages
Logical Software Architecture
Packages
Package Contents
Referencing
Package Design
Service Packages
Identifying Packages
Physical Software Architecture
Hardware Architecture
Deployment Diagrams
Software Deployment
Considering Deployment Options
A Three-tier Architecture
Object Persistence
Database Connectivity
Object-Relational Mapping
Persistence Layers
Lesson 9
The Design Model
Design Classes
Well-Formed Classes
Discovering Design Classes
CRC Cards
New Classes
Guidelines For Assigning Class Responsibilities
Guidelines for Collaborations
Collaboration Patterns
Sequence Diagrams
A Sequence Diagram
Another Sequence Diagram
Objects in Sequence Diagrams
Messages in a Sequence Diagram
Creating Sequence Diagrams
Controller Objects 99Looking for Hidden
Objects
Guidelines for Sequence Diagrams
Practice 9: Creating a Sequence Diagram
Finding Associations
Naming Associations
Finding Operations
Naming Operations
Guidelines for Operations
Practice : Defining Parameters
Sample Solution
Lesson 10
State Definition
State
States and Events
UML State Transition Diagrams
State Diagramming Notation
Example: State Transition Diagram
Identifying States and Events
Identifying States and Events
First Cut State Diagram
State Diagram, Alternative Courses
Events and Behavior
Example: Action-Expressions
Entry and Exit Actions
Example: Entry and Exit Actions
Guard Conditions
Automatic Transitions
Guarded Automatic Transitions
Internal Actions
Self Transitions
www.tesis-oys.com.ar
4
State Variables
State Box with Regions
State Transition Table
Example: State Transition Table
Summary of Actions
Activity Diagrams
Activity Diagram Symbols
An Activity Diagram
Designing Attributes
Designing Attributes for Java
Constraints
Designing Attributes
Encapsulation and Information-Hiding
Visibility in UML
Attribute Visibility and Access
Class Variables and Methods
Lesson 11
Associations: A Recap
Object Links
Collaboration Diagrams
Links in Collaboration Diagrams
Designing Associations
Classifying Relationships
Association Directionality (Navigability)
Multiplicity
Multiplicity Notation
Class Discussion: Multiplicity Examples
Implications Of Multiplicity
Determining Multiplicity
Class Practice: Multiplicity Exercise
Class Practice: Sample Solution
Multiplicity and Collections
Collections
Using Collection Classes
Class Discussion: Which Collection?
Constraints and Notes
Association Classes
Reflexive Associations
Aggregation in UML
Aggregation
Composite Aggregation
Composite Aggregation–Example 1
Composite Aggregation–Example 2
Shared Aggregation
Class Discussion: Shared or Composite?
Using Composite Aggregation
Using Shared Aggregation or Association
The Need to Define Associations
Lesson 13
What is Inheritance?
Inheritance in Analysis and Design
Sample Inheritance Hierarchy
Inheritance Terminology
Notation for Inheritance
Specifying Inheritance in Java
Finding Inheritance: Specialization
Finding Inheritance: Generalization
Abstract Classes
Alternative Representation
Abstract Operations
Abstract Classes and Methods in Java
Multilevel Inheritance Hierarchies
The Substitution Rule
Goals of Inheritance
Refining Inheritance
Practice 13:Identifying Inheritance
Relationships
Multiple Inheritance
Multiple Inheritance
Interfaces Instead of Multiple Inheritance
Interfaces
Interfaces in Java
What Is Polymorphism?
Advantages of Polymorphism
Static Binding Versus Dynamic Binding
Example of Polymorphism in Java
A Subsystem
Identifying Subsystems
Refinement Summary
Lesson 12
Design Refinement
Language Support for Classes
Creating Classes in Java
Using Classes in Java
Packages in Java
Class Specifications
Class Discussion: Specifying Classes
Partial Class Specification
Class Design Checklist
Designing Operations
Stereotypes
Stereotyping Operations
Attributes
Lesson 14
A Succession of Models
Object Oriented Methods
OO Analysis
OO Design
OO Implementation
Code Generation
Testing
Oracle JDeveloper
Iterative Development
OO Methodology
The Promise of Object Orientation
How Are Objects Different?
How Are Objects Different, continued
El contenido dictado durante el curso puede variar o ser recortado a discreción del instructor dependiendo
del avance del curso sin ningún perjuicio al correcto dictado del mismo ni derecho a reclamo.
www.tesis-oys.com.ar
5
www.tesis-oys.com.ar
6
Download