services for a model driven world

Model Driven Development with MagicDraw and AndroMDA

Model-Driven Development with MagicDraw and AndroMDA is a 5-day course highlighting the approach for going from generic software modeling to model-driven code generation using two award-wining tools - modeling environment MagicDraw UML and the open source MDA environment AndroMDA. The course is offered in collaboration between No Magic and Matthias Bohlen, the founder and leader of AndroMDA project. The course objective is to provide a strong background in UML 2 modeling with MagicDraw and then demonstrate how you can use models for building working solutions with AndroMDA.

THE COURSE

  • Gives a strong background in applying MagicDraw UML and AndroMDA tools;
  • Is based on a concise software system case study;
  • Introduces software modeling with UML 2 diagrams;
  • Shows how to facilitate modeling with analysis, visualization, validation, and teamwork features;
  • Guides through AndroMDA environment configuration;
  • Contains mentored hands-on assignments for preparing AndroMDA models and generating working code;
  • Explains how to extend AndroMDA capabilities by customizing the standard cartridges and implementing brand-new ones for custom code generation from UML 2 models;
  • Results in a working prototype solution for explored case study!

This practical course will give you a jump-start in using MagicDraw UML and AndroMDA in industrial projects with model-driven approach.

The course is given in English!

Course modules
Day#1 Modeling: Introduction and Analysis

Overview of UML 2

  • Modeling with UML
  • 4+1 Architectural Views
  • UML 2 Diagrams
  • What's New in UML 2
  • Software Development Process
  • Modeling Process

Introduction to MagicDraw

  • Features Overview
  • Managing Projects
  • Drawing Diagrams
  • Customizing the Environment
  • Tips & Tricks
  • New and Noteworthy

Analyzing the User's Needs

  • Requirements Analysis
  • Use Case Diagram
  • Identifying Actors
  • Identifying Use Cases
  • Use Case Relationships
  • Grouping Use Cases Into Packages
  • Modeling Use Case Scenarios
  • Activity Diagram
  • Documenting Use Cases

Architectural Decomposition

  • Architectural Patterns
  • Layered Architecture
  • Robustness Diagram
  • Identifying Boundaries, Controllers, and Entities
  • Package Diagram
  • Decomposing System Into Packages
  • Modeling Package Dependencies

Day#2 Modeling: Design, Implementation, and MagicDraw Features

Designing Object Interactions

  • Modeling Interactions with UML
  • Sequence Diagram
  • Modeling Sequence Diagrams for Use Case Scenarios
  • Finding Out New Classes and Methods
  • Communication Diagram

Designing Layer Details

  • Designing Data Entities
  • Specifying Attributes and Relationships
  • Designing Business Logic Services
  • Specifying Operations
  • Designing the User Interface
  • Modeling the UI Navigation Schemas
  • Defining the UI Structure

Defining Implementation Architecture

  • Component Diagram
  • Identifying Components
  • Defining Provided/Required Interfaces
  • Deployment Diagram
  • Defining Hardware Nodes and Links
  • Specifying Artifacts Manifesting Components
  • Modeling Artifact Deployments

Extending UML with Profiles

  • OMG Meta-layer Architecture
  • Defining Meta-models
  • Creating Profiles and Stereotypes
  • Creating Custom Diagrams

Code Engineering

  • Code Engineering in MagicDraw
  • From UML to Code: Code Generation
  • From Code to UML: Reverse Engineering
  • Model Visualization
  • Roundtrip Engineering
  • Eclipse Integration

MagicDraw Features

  • Model Analysis
  • Model Validation
  • Reports
  • Teamwork
  • Model Decomposition

Day#3 AndroMDA: Introduction and Configuration

The Basics

  • Model-Driven Architecture (MDA)
  • Target Technologies
  • AndroMDA from the Inside
  • How a UML Tool Works

Working with AndroMDA

  • Installing
  • Creating a Project
  • Modeling
  • Code Generation

Day#4 AndroMDA: Workshop on a Sample Project

Developing Sample Project

  • Revisiting the Sample Project: the AndroMDA Perspective
  • Designing Entities
  • Designing Services
  • Defining Use Cases
  • Modeling Action Flows
  • Generating Code
  • Implementing Business Methods
  • Implementing Test Cases

Day#5 AndroMDA: Implementing Your Own Cartridges

AndroMDA Plug-ins

  • Cartridge
  • Translation Library
  • Metafacade
  • Repository
  • Template Engine
  • Platform Mappings

Cartridge Building Blocks

  • Metafacades
  • PSM Classes
  • Templates
  • Descriptors
  • Mergepoints
  • Namespace Properties

Implementing a Cartridge

  • Standard Project Structure
  • Analyzing the Target Technology
  • Identifying the PSM Classes
  • Creating Metafacades
  • Creating Templates
  • Creating Cartridge Descriptors
  • Using Profiles properly
  • Testing a Cartridge

Wrap Up

  • Course Review
  • Feedback Session
  • Questions & Answers
Terms and conditions
Duration: 5 days
Prerequisites: Java/J2EE programming skills, UML modeling background
Style: Lectures, discussions, practical assignments, and case study-based workshop (English language!)
Price per person: EUR 1750 + MWSt. (special introductionary pricing)
Next date: upon request

Copyright © 2004-2008 Matthias Bohlen <mbohlen@mbohlen.de>

Valid HTML 4.01!