Analysis & Design using UML and Rose Course

Course Code: IN 468
Course Abstract:

The features, principles and techniques of object-oriented technology mitigate the complexities of modern software systems. Successful projects have learned that object-oriented programming is insufficient; that object-oriented analysis, architecture, and design are required for robust, scalable, maintainable web-based and conventional business systems, as well as embedded systems. This course teaches the processes, techniques, and artifacts necessary for modern object-oriented analysis and design. This course uses and explains the chief diagrams, symbols, and concepts of the Unified Modeling Language (UML), the international standard design diagramming language for software design. Participants will learn through detailed lecture and hands-on labs the core competencies in object-oriented analysis and design, and will be introduced to the many and varied topics surrounding these disciplines. Labs are performed with the Rational Rose CASE tools. While no prior Rose experience is needed, the participant finishes the course adept at creating diagrams in Rose.

Audience:

This course is designed for the systems analysts, architects, designers, developers, and testers who are directly responsible for developing object-oriented systems. This course is also of benefit to technical leads and software quality assurance personnel who oversee development of object-oriented systems and require an understanding of the process and the artifacts being produced.

Duration: 5 days
Learning Outcomes:

Upon completion of this course, the participant will be able to:
> Identify and classify the objects in business problems and model their business data, behavior, rules and constraints
> Master UML class diagrams, sequence diagrams and state machine diagrams using proven analysis and design methods
> Learn and apply key principles that facilitate repeatable, quality designs such as the Liskov Substitution Principle, the Law of Demeter, the Information Expert Principle, High Cohesion, Loose Coupling, and many others
> Apply the basic concepts of object-oriented software architecture including logical partitioning of systems into layers and subsystems, process and thread architecture, and hardware architecture modeling
> Learn what analysis, architecture, and design patterns are and apply them to improve designs
> Acquire hands-on experience in these methods, diagrams and the Rose tool through labs

Course Topics:

What are objects?
Introduce the concept of objects and classes
Explore roles, tasks, and concepts in using objects to build systems

What is object-orientation?
Explore pivotal concepts in create good object oriented systems: cohesion, coupling, abstraction, encapsulation, information hiding, reuse

How do we do object-oriented work?
Examine process and artifacts of modern objected-oriented methodology
Introduce the Unified Modeling Language (UML) and its many diagrams

Requirements: How are requirements documented?
Review key requirements documents:
Vision document
Use Case Model
Supplementary Specification document
Lab: Analyze use case diagrams and specifications

Analysis: How do we do analysis?
Identify step in the analysis process
Introduce Domain Class Models, System Sequence Diagrams, System Operation Contracts, and State Models

Analysis: How do we identify domain classes?
Discuss what things can be objects
Learn techniques for finding classes of objects
Lab: Identify classes in use cases

Analysis: How do we model domain classes?
Learn the syntax and semantics of Domain Class Diagrams:
Classes and Attributes
Association relationships
Generalization relationships
Lab: Use Rose to develop domain class diagrams

Analysis: How do we identify system operations?
Learn the syntax and semantics of System Sequence Diagrams:
The System object
System events
Focus of control
Discuss process of drawing System Sequence Diagrams
Lab: Use Rose to develop system sequence diagrams from use cases

Analysis: How do we specify system operations?
Learn how to specify the system operations as System Operations Contracts
Learn how to specify system operation contract post conditions in terms of changes in domain model state
Lab: Develop system operations contracts

Architecture: How do we architect a system?
Explore the 4+1 view of architecture
Layering and subsystems

Design: How do we design a solution?
Learn the steps in the design process
Move from domain modeling to software modeling

Design: How do we design classes?
Learn how to identify software classes
Refactor classes to enhance cohesion using
Delegation to helper classes
Model-View-Controller pattern
Lab: Model entity, control, and boundary classes in a design
Apply architectural decisions such as layering
Lab: Use Rose to apply a layered architecture to a design

Design: How do we design relationships?
Learn the full syntax of associations, aggregations, compositions, generalizations, realizations, and dependencies
Design role visibility and navigability
Design inheritance and polymorphism in generalization relationships
Learn the Liskov Substitution Principle
Lab: Use Rose to model relationships in a design class model

Design: How do we design attributes?
Learn the full syntax of attributes
Discuss visibility, data typing, multiplicity, class-scope attributes
Design derived attributes
Write attribute specifications

Design: How do we identify operations?
Learn the syntax and semantics of detailed Sequence Diagrams:
Object activation, creation, and destruction
Messages and operation signatures
Iteration and conditional logic
Message types for specifying concurrency
Constraints for specifying business rules and other real-time constraints
Discuss process of designing object collaboration through sequence diagrams
Guidelines to promote loosely coupled, highly cohesive designs
Lab: Use Rose to develop sequence diagrams

Design: How do we design operations?
Learn the full syntax of operations
Discuss visibility, parameter and return data typing, class-scope operations
Design operation types: implementer, manager, accessor, and helper
Enhance design resiliency by applying the Law of Demeter
Write operation specifications
Lab: Refactor sequence diagrams and classes to apply the Law of Demeter

Design: How do we model object state?
Learn State Machine Diagram syntax and semantics:
States, Transitions, Events, Activities, Actions, Guards, Constraints
Lab: Use Rose to develop state machine diagrams

Design: How do we use patterns?
Define patterns
Explore representative patterns: Observer, State, Strategy, Abstract Factory
Learn patterns for all design activities: analysis, architecture, and design
Lab: Use Rose to apply design patterns

Prerequisites:

Prior development experience is required.

Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning