Object-Oriented Analysis and Design Series:

Object-Oriented Analysis and Design (CIWOOAD)

Object-oriented Analysis and Design is a four-day course that teaches object-oriented analysis and design techniques using UML in the context of the Unified Software Development Process. The course provides an introduction to object-oriented theory and the software development life cycle. Students learn proper analysis and design procedures, and their roles in the development process. Students gain hands-on experience with all phases of the development process: requirements, analysis, design, construction, and testing.

Target Audience

Database developers and administrators, Internet application developers, middleware programmers, Java developers, and client/server developers.

Job Responsibilities

Develop n-tier database and legacy connectivity solutions for Web applications using Java, Java APIs, Java Database Connectivity solutions, middleware tools, and distributed object models.

Prerequisites

Students must have CIW Foundations certification or equivalent experience, and have completed the Java Programming series (Java Programming Fundamentals) or have equivalent experience with an object-oriented programming language.

Topics

Introduction to Software Engineering

  • Evolution of Software Engineering
  • Object Terminology
  • Advantages and Disadvantages of an Object-Oriented Approach
  • Analysis and Design

Understanding the Object Paradigm

  • Classes
  • Encapsulation
  • Abstraction
  • Object Relationships
  • Application Objects

Inheritance and Polymorphism

  • Inheriting Attributes and Methods
  • Extending Components with Inheritance
  • Polymorphism
  • Abstract Classes
  • Multiple Inheritance

Software Development Life Cycle

  • Software Development Life Cycle Model
  • Waterfall Life Cycle Model
  • V-Shaped Life Cycle Model
  • Incremental Life Cycle Model
  • Spiral Life Cycle Model

The Unified Software Development Process

  • Software Development Process
  • The Unified Process
  • Life Cycle of the Unified Process
  • Cycles, Phases, Iterations, Core Workflows, and Workflows and Iterations

Unified Modeling Language (UML)

  • Models
  • Views

Computer-Aided Software Engineering

  • Introduction to CASE
  • Selecting a CASE Tool

The Requirements Workflow

  • Introduction to Requirements Capture
  • Activities of the Requirements Workflow
  • Requirements and the Unified Process

Use-Case Modeling

  • Introduction to Use-Case Diagrams
  • Developing a Use-Case Model

Activity Diagrams

  • Branches and Merges
  • Forks and Joins
  • Library System Activity Diagrams

Interface Design and Prototyping

  • User Interface Design
  • User Interface Prototyping
  • Specifying System Interfaces

The Analysis Workflow

  • Introduction to Analysis
  • Analysis Classes
  • Use-Case Realizations – Analysis
  • Analysis and the Unified Process

Analysis Modeling

  • Collaboration Diagrams
  • Flow of Events and Special Requirements
  • Class-Responsibility-Collaboration Cards
  • Class Analysis

The Design Workflow

  • Design Model
  • Use-Case Realizations – Design
  • Architectural Design
  • Design and the Unified Process

Class Diagrams

  • Association, Aggregation, Composition, and Generalization
  • Check Out Asset Class Diagram

Sequence Diagrams

  • Return Values, Message Conditions, Deletion, Multiplicity, and Return Stack

Statechart Diagrams

  • States, Transitions, and Superstates

Design Quality Issues

  • Elements of Good Design
  • Object-Oriented Design Metrics
  • Chidamber and Kemerer
  • Metrics for Object-Oriented Design

The Implementation Workflow

  • Identifying Components
  • Integration Build Planning
  • Generating Code from Design Classes
  • Unit Testing
  • Implementation and the Unified Process

The Test Workflow

  • Test Classes, Procedures and Components
  • Test and the Unified Process