Please search the certification path by using the drop-down menus below.

Print the Course OutlineEmail this Register for this courseFind more courses

 

Course 500 : Object-Oriented Application Analysis and Design for Java[tm] Technology (UML)

The Object-Oriented Application Analysis and Design for Java[tm] Technology (UML) course teaches system developers how to use object-oriented (OO) methodologies to perform analysis and design (OOA&D), using the Unified Modeling Language (UML). Superior software applications are not static, they grow and evolve to meet changing business and consumer needs. Being able to analyze these needs and translate them into new software models provides a competitive advantage. The object-oriented analysis and design methodologies taught in this class enable software professionals to realize the efficiencies inherent in modern OO languages, such as the Java programming language. The various concepts and analysis and design techniques associated with the Unified Modeling Language (UML) are related to the phases in the iterative, incremental, unified software development process. Also discussed are the use of Design Patterns, Object and Dynamic models, system design, and partitioning techniques.

Who Can Benefit

System architects, software engineers, and developers responsible for the conception and construction of object-oriented software applications.

Prerequisites

To succeed fully in this course, students should be able to:

  • Understand object-oriented concepts and methodology
  • Demonstrate a working knowledge of general programming terminology, preferably the Java programming language
  • Demonstrate a general understanding of programming, preferably the Java programming language
  • Understand application development
  • Understand the basics of the systems development process and environment

Skills Gained

Upon completion of this course, you should be able to:

  • OO concepts
    • Understand the benefits of object-oriented systems development
    • List the concepts of object-oriented systems development
  • Process Skills
    • List the major phases of and workflows of the iterative, incremental lifecycle of projects
    • Specify the process of gathering requirements
    • Apply guidelines to your analysis and design to help ensure high-quality modeling products
  • Analysis Skills
    • List the models that comprise the UML
    • Identify model objects and classes
    • Specify relationships between classes
    • Define class behaviors, using polymorphism and other design techniques
    • Identify and analyze dynamic models
  • Design Skills
    • Design details of class attributes, operations, and relationships
    • Describe design patterns
    • Define how to design and partition a system

Course Content

Module 1: Introducing Object-Oriented Analysis and Design

  • Define OOA&D
  • Define Analysis and Design
  • Understand the role of objects and classes
  • Define the key features of OO programming
  • Detail the nature and benefits of the iterative, incremental lifecycle of projects
  • Introduce the major phases of a system development effort

Module 2: Introducing the Unified Modeling Language

  • UML definition
  • Introduce the primary diagrams used in the UML
  • Introduce the Package notation and Stereotypes

Module 3: Requirements and Initial Analysis

  • Describe the process of gathering information
  • Define Candidate Objects and the role of domain experts
  • Specify the role of the data dictionary
  • Analyze the role Risk Assessment plays in system development
  • Introduce Use Cases and Use Case Scenarios
  • Introduce Activity Diagrams, Packages and Component and Deployment diagrams

Module 4: Analysis of System Objects and Classes - Part I

  • Understanding the Analysis Phase
  • Role of Key Abstractions
  • Develop Object Diagram and Class Diagram
  • Define Associations and Multiplicity
  • Define Complex and Qualified Associations

Module 5: Analysis of System Objects and Classes - Part II

  • Modeling Inheritance
  • Modeling Polymorphism and Abstract Classes
  • Modeling Reflexive Associations
  • Analyzing for Aggregation, Composition, Propagation and Delegation
  • Java Interfaces

Module 6: Analysis of Dynamic Models

  • Define the role and function of Sequence Diagrams
  • Define the role and function of Collaboration Diagrams
  • Define the role and function of State Transition diagrams
  • Define the role and function of Activity Diagrams

Module 7: Patterns

  • Introduce Patterns
  • Facade
  • Singleton
  • Factory
  • Composite
  • Observer
  • MVC
  • State Pattern

Module 8: The Object Model in Design - Part I

  • Encapsulation: get/set attributes
  • Design attributes and data types
  • Define constraints, methods, and static data and methods
  • Role of Constructors

Module 9: The Object Model in Design - Part II

  • Categorize classes
  • Coding for Composition, Aggregation, and Association
  • Explain the concept of Direction of Traversal
  • get/set/add/remove constructors and static associations
  • Explain link access methods
  • Submethods from Inheritance
  • Delegation and complex operations

Module 10: The Dynamic Model in Design

  • Sequence diagrams in Design
  • Collaboration diagrams in Design
  • State Transition diagrams in Design
  • Activity diagrams in Design

Module 11: System Design

  • Packages and subsystems
  • Frameworks
  • Role of cohesion and coupling
  • System performance issues
  • Revisiting Components and Deployment
  • Role of network and databases

Appendix A: UML Quick Reference

Appendix B: Case Study

For more information or to give feedback, send e-mail to info@OneApex.com or call 949-597-2100