UML/C++マッピング講座

概要

近年のC++やJavaの普及により、ソフトウエア開発者にとってオブジェクト指向プログラミングは身近なものになってきています。組込系ソフトウエア開発の世界においても、マイコンの高性能化、メモリの低価格化を受け、実装言語としてオブジェクト指向プログラミングが可能な言語が採用されることも多くなってきています。ただ、実装言語としてオブジェクト指向プログラミング言語を選択したとしても、オブジェクト指向をきちんと理解していないとそのメリットを最大限に引き出すことは難しく、期待した効果が得られないという事態を招くこともあります。


本講座ではそうしたオブジェクト指向プログラミングの効果を引き出せるよう、単なるプログラミング言語の文法の習得ではなく、プログラミング言語の言語機能とオブジェクト指向の基本概念との対応関係やオブジェクト指向の活用方法を合わせて習得することで、オブジェクト指向プログラミングの理解を高め、その導入効果の向上を支援します。


また、UML(Unified Modeling Language)とオブジェクト指向プログラミング言語の対応関係の習得も本講座の特徴です。オブジェクト指向モデリングにおけるデファクトスタンダードであるUMLの導入は様々な分野で進んでいますが、最終成果物であるプログラムとUMLとの対応関係が理解されていないと、せっかくのUML導入もムダになってしまいます。本講座ではUMLで書かれたモデルがどのようにプログラムに置き換えられるのかを学ぶことで、上流工程の成果物であるUMLのモデルと下流工程のプログラムとを直接的に結び付けることができるようになります。また、こうしたモデルとプログラムの対応関係の理解はMDA(Model Driven Architecture)の習得へも繋がっていきます。


本講座では、難易度別に以下のコースをご用意しています。また、オブジェクト指向プログラミング言語としてはJava、C++それぞれのコースをご提供できます。

日数

オープン講座: 1日
オンサイト講座: 1日~2日  ※2日間の場合は演習中心の講座になります

時間

オープン講座: 6時間 (10:00 ~ 17:00)
オンサイト講座: 6時間~12時間 

教育受講料(税込)
  • オープンコース:現在実施していません。
  • オンサイト : 440,000円~880,000円

※想定受講者数20名。受講者数が20名を超える場合は費用が変わります。

対象者
  • UMLを使った開発を始めたい方
  • UMLの実装に対する効果を知りたい方
前提条件
  • オブジェクト指向プログラミング言語(C++,Java)の基本的な文法の知識(制御構文、変数、配列、関数、クラス定義)。
  • 何らかのプログラミングの経験があると理解が容易になります(必須ではありません) 。
  • UMLの表記法をあらかじめ知っていると理解が容易になります(必須ではありません)
到達目標
  • UMLのクラス図、シーケンス図、ステートマシン図を基にプログラムが書ける。
  • モデリングツールを使って、上記のダイアグラムが描ける。
内容

【第1日目】
形式:講義+演習(個人)
 

1. クラスを定義する
クラスのモデリングとプログラミングについて学びます。
1) オブジェクト指向でシステムを作るとは
2) クラスとは
3) UMLでのクラスの表現
4) インスタンスの生成
5) クラス定義のコード化
6) インスタンスの動きの定義
7) ステートマシン図のコード化
8) 複雑なステートマシン図
9) インスタンスを動かす
10) シーケンス図
11) main()の定義の例
12) シーケンス図のコード化
13) 総合演習
 

 

【第2日目】
形式:講義+演習(個人)
 

2.クラスを組み合わせる
複数のクラスを組み合わせた場合のマッピングについて学びます。
1) クラス間の関連を定義
2) UMLでの関連の表現
3) クラス間の関連のコード化
4) インスタンスの連携の定義
5) UMLでのインスタンスの連携
6) ステートマシン図とシーケンス図の使い分け
7) インスタンスの連携の定義例
8) インスタンスの連携のコード化
9) インスタンスが連携するプログラムの動作
10) インスタンス間の関連の定義
11) main()のシーケンス図とそのコード化例
 

3.既存の仕組みを利用する
既存の仕組み(再利用部品)を利用したプログラミングについて学びます。
1) 既存の仕組みの利用
 

4.発展問題
オブジェクト指向設計の必要性について学びます。

【以下はオプション】
5.Cへのマッピング
1) 操作の定義
2) インスタンスの生成とメッセージ
3) 関連の定義
4) インスタンスの連携
5) インスタンス生成法