OOAD : Object-Oriented Analysis And Design

1. Symptoms of Software Development Problems:

2. Root Causes:

  • Insufficient requirements
  • Ambiguous communications
  • Brittle architectures
  • Overwhelming complexity
  • Undetected inconsistencies
  • Poor testing
  • Subjective assessment
  • Waterfall development
  • Uncontrolled change
  • Insufficient automation

3. Best Practices:

  • Develop Iteratively
  • Manage Requirements
  • Use Component Architectures
  • Model Visually (UML)
  • Continuously Verify Quality
  • Control Changes (UCM)
4. Iterative Development Produces an Executable

5. Requirements Management

1. A systematic approach to 

the changing requirements of a software application.

2. Aspects of Requirements Management

  • Analyze the Problem
  • Understand User Needs
  • Define the System
  • Manage Scope
  • Refine the System Definition
  • Build the Right System

3. Manage Changing Requirements

  • Establish the baseline - elicit, organize, and document functionality and constraints
  • Evaluate changes and determine their impact
  • Track and document tradeoffs and decisions

6. Resilient, Component-Based Architectures

Purpose of a Component-Based Architecture

  • Basis for reuse
  • Component reuse
  • Architecture reuse
  • Basis for project management
  • Planning
  • Staffing
  • Delivery
  • Intellectual control
  • Manage complexity
  • Maintain integrity

7. UML: One Language for All Practitioners 

 Multiple Languages = Communication Barriers

  • Business Analyst: Requirements and Business Models
  • Web Content Creator: HTML CGI XML JavaScript
  • Software Engineer: C++ Java SW Models
  • SQL ER Models: Database Administrator

8. Testing:

  • 1. Functionality: Does my application  do whatís required 
    • Verification of each  usage scenario

    2. Reliability: Does my application  respond acceptably?

    • Verification of sustained application operation

    3. Performance: Does the system  perform under production load?

    • Test performance under expected and worst-

9. Configuration Management:

1. What Do You Want to Control?

  • Control, track, and monitor changes to enable iterative development
  • Establish secure workspaces for each developer
  • Automate integration and build management

2. Controlling Parallel Development

  • Multiple developers
  • Multiple teams
  • Multiple sites
  • Multiple iterations
  • Multiple releases
  • Multiple projects
  • Multiple platforms

3. Aspects of a CM System

  • Change Request Management
  • Configuration Status Reporting
  • Configuration Management (CM)
  • Change Tracking
  • Version Selection
  • Software Manufacture

4. Unified Change Management

  • Management across the lifecycle
  • System
  • Project Management
  • Activity-Based Management
  • Tasks
  • Defects
  • Enhancements
  • Progress Tracking
  • Charts
  • Reports

10. A Team-Based Definition of Process

A process defines Who is doing What, When and How to reach a certain goal.

11. Key object-oriented concepts:

1. Identity

2. Data + behavior

3. Abstraction

4. Encapsulation

5. Inheritance

6.   Polymorphism

7. Interfaces

8. Classes vs. instances

9. Delegation, aggregation

10. Patterns

nnnn

11. Popular Object Oriented Languages:

1. Java

2 C++

3. VB.NET

4. C#

12. UML Diagrams:

  1. Use Case Diagram

  2. Interaction Diagrams:

  3. Analysis Classes:

  4. Class Diagram:

  5. Activity Diagram:

  6. State Chart Diagram:

  7. Deployment Diagram:

13. Class and Object:

1. Class

2. Object

3. Attributes / Properties

4. Operations / Methods

5. Messages

14. Code Generation:

15. N-Tier Application Design:

Click to go to  Home Page