Agile Incremental Modeling with UML

Introduction

Agile Incremental Modeling (AIM) with UML combines Agile development practices with formal model driven development, empowering teams to incrementally capture requirements, analyze, design and talk about flexible system architectures. This saves a lot of time and money not only in later stages of a project but right from the beginning.

Continue reading or view the Agile Incremental Modeling with UML syllbus.

Course Description

In this course we will discuss how to:

  • Define in an agile way detailed system requirements.
  • Propose a detailed implementation independent solution to those requirements
  • Craft a layered, component based architecture that maximizes maintainability, re-use and extensibility of the resulting code.

Special focus is set on presenting  a well defined process that seamlessly translates requirements into a flexible layered, component based architecture.

Goals

The primary goals of this course are:

  • To acquire enough competence in the UML for talking about requirements, solution approaches and SW architecture.
  • To understand the main design and architecture principles of good OO design.
  • To gain enough competence in OO requirements capture, analysis and design to tackle on your own a complete OO project.

Participants

The course is meant for software engineers, experienced programmers and system analysts.

Pre-requisites

Some experience in software engineering or system analysis is a must. The course doesn't require (but highly recommends) knowledge of an OO language and doesn't concentrate on a specific one.

Course Outline

Day 1:

During the first day, the fundamental concepts of the object paradigm and requirements capture are presented.

Introduction

  • The object paradigm – Overview on the UML – Overview on the agile incremental process.

Requirements Capture

  • Types of requirements – Vision – Domain Model – Use case model – supplementary requirements – How detailed (Agile) to describe requirements.

Day 2:

During the second day the UML diagrams needed for analysis are presented.

  • Class – Package – Object Diagram.
  • Activity –  State Machine – Sequence and Communication – Interaction Overview Diagram.

Day 3:

During the third day the process of transforming functional requirements into an implementation free conceptual solution is presented. The required detail (Agility) of the analysis model is discussed.

Architectural Analysis

  • Identifying classes – Describing classes – Characteristics of good associations and generalizations.

Use Case Analysis

  • Modeling behaviors though use case realizations - Modeling state dependent behavior.

Day 4

During the fourth day the UML diagrams and elements needed for representing system architecture are presented.

  • Active Classes – Composite Structure – Component – Deployment diagram.

Day 5

On the fifth day the process of designing flexible system architecture is presented.

Logical Architecture

  • Design Principles – Architecture Principles – Package View – Modeling System Interfaces – Design Patterns.

Physical Architecture

  • Process View – Deployment View – Internal Component Design.

Focus is given to the required detail (Agility) of the design in order to effectively transition to implementation.

 

We can demonstrate a variety of CASE tools (Rhapsody, Enterprise Architect and more). However we do not recommend using them for the exercises as the details of driving them distracts from the main focus and they do not promote team working in the class.

We strongly recommend extending the course by 2 days in order to apply the theory in practice by tackling a real life project of your choice or through a provided sample project.

ACTL Systems Ltd 217/5 Jaffa St. P.O.B 8129 | 91081 Jerusalem, Israel | Tel. 972-2-5376459, Fax. 972-2-5370425
Website development: WebMeUp