実践的オブジェクト指向分析・設計と実装
コース番号:123P
日数:4日間(ご希望に合わせた日数・内容のカスタマイズが可能です)
形態:ハンズオン

研修コースの概要

アプリケーションやシステム開発の主流であるオブジェクト指向の主要な開発方法であるRUP (Rational Unified Porcess) の「ユースケース駆動」に基づいて分析、設計、そして実装という一連のプロセスを演習を通して一貫して学ぶ事を目的としたコースです。単に概念的な設計図の作成だけで終わらず、実装まで行うのがこのコースの最大の特徴です。この実装を通して得られるフィードバックにより、「実装可能で実行時効率・拡張性に優れた設計図の開発」という設計の本質を理解することがきます。

また、プログラムがマシン上でどのようにメモリーに展開され実行されるのか、あるいは継承、インターフェース、ポリモーフィズムといったオブジェクト指向の重要な機能がどのように実装されそして使われるのかを実際のプログラムを通して理解します。このように分析・設計から実際のコーディングおよび実行時の動作まで一貫して理解することにより、実装の細部にまで責任を持って設計を行えるアーキテクトを養成します。

さらに「ユースケース駆動」と並んでRUPの他の2つの柱である、「アーキテクチャ中心」および「繰り返しによる開発」に関して、その本質および有効性をケーススタディ等を通して簡潔に分かり易く説明します。

この研修では次のスキルが習得できます

  • UMLのモデリング機能を理解する
  • RUPに基づいてシステムの詳細な分析・設計をする
    • アクターとユースケースを識別する(ユースケースモデルによりシステムの仕様を記述する)
    • ユースケースモデルからクラス図とユースケース実現(分析・設計モデル)を導き出す
  • 設計モデルから実際のコードに展開する
    • C#.NETプログラムの実行環境
    • C#.NETにおけるイベント処理
    • クラス図およびユースケース実現をコードに展開する技法
  • マルチスレディングと同期モジュールによりリ並行プログラムを構築する技法

この研修の対象者

最新のオブジェクト指向の手法を分析・設計から実装まで一貫して体系的に学ぼうと考えていらっしゃるソフトウェア・エンジニア、システム分析・設計者、プログラマの方々に最適です。受講には6ヶ月以上のプログラムの経験とC#.NETあるいはJavaの文法の理解が必要です。ただし経験豊富なプログラマの方であればC++またはCの知識だけでも受講可能です。オブジェクト指向分析・設計の事前の知識は必要ありません。

コース内容

概要

  • オブジェクト指向の概念
    • データタイプとインスタンス
    • クラスとオブジェクト
    • 属性とメソッド
    • リンク、関連と多重度
    • メッセージとイべント
    • 継承とインターフェース
    • ポリモーフィズムとその応用
  • UMLの表記法
    • クラス図、オブジェクト図、ユースケース実現の記述 - シーケンス図、コラボレーション図、イベントフロー記述
  • Rational Unified Process(RUP)
    • ユースケース駆動(コア・ワークフロー)
    • アーキテクチャ中心
    • 繰り返しとインクリメンタル型開発

要求モデル (“what”)

  • ユースケースモデルによる要求事項の捕捉
    • アクターの識別
    • ユースケースによるシステム仕様の記述

分析・設計モデル (“how”)

  • ユースケースモデルからクラス図及びユースケース実現への展開
    • 境界、エンティティ、コントロールクラスの識別
    • ユースケースからユースケース実現への展開、及びそれに伴う新たなクラスおよびクラス間の関連の識別
    • シーケンス図、コラボレーション図、イベント・フロー記述によるユースケース実現の記述
    • 関連の多重度と集合体
    • クラス図とユースケース実現の整合性の検証

アーキテクチャ中心

  • アーキテクチャとは
  • Keyユースケースとその実現
  • アーキテクトとその役割

繰り返しによる開発

  • RUPにおけるソフトウェアのライフサイクル
  • 方向付け、推敲、作成、移行フェーズからなる繰り返しワークフロー
  • コア・ワークフローと繰り返しワークフローの関係

C#.NETによる実装

  • C#.NETの実行環境(ヒープおよびスタック)
  • .NETフレームワークの概要とイベント処理
  • イテレーター・パターンとその応用
  • 設計からプログラムへの展開
  • 実装可能・不可能な設計、効率の良い設計・悪い設計の判別

並行プログラミング

  • マルチタスキングとマルチスレディング
  • スレッド間の排他制御と協調同期
  • ユースケース実現とスレッドの関係

受講者の声

「講師は、圧倒的な技術力をお持ちなのと、受講生のことを考えてアドバイスして下さるのが、とても素晴らしいと思いました。設計からコードに落とすところまでのやり方をこんなに分かりやすく教えて下さる方に出会ったのは初めてです。」

「オブジェクト指向の設計と実装の本質的な意味を理解するのに大いに役立った。UML設計から実装が簡単に行えることが十分理解できた。そのほか、最新の情報や実際の経験に基づく話などの一つ一つの内容が興味深い内容であった。」

「正直な感想としてこんなに機械的にソースに落ちてなおかつデバッグがほとんど必要ないなんて、このコースを受けてびっくりしました。これからはインストラクターの水野さんのおっしゃるとおり例を増やしていきたいと思います。」

「ユースケースからどのようにオブジェクト図、クラス図に落としていくかが座学のみではなく、演習を通じて理解できるのがとても良かったです。ここまで各グループの設計をレビューしてアドバイスしてくださるコースはないと思います。」

「オブジェクト指向の基礎的なことから始まり、演習で実際に実装までを一貫して学べるため、非常に良いコースであった。特に演習があって初めて理解・実感できることも多く、演習の時間が多くとられていたことが良かった。」

「非常に密度が濃い内容でした。日々感じていた、今まで行ってきた(教えられてきた)設計の矛盾点を正確に指摘していて、本来あるべき設計の姿をもう一度考える良いきっかけとなりました。内容も期待していた以上のものでした。」

「基本的な内容が適度に取り込まれていた。演習にうまくトラップが仕込まれていたのが実践的で良かった。」

「オブジェクト指向の考え方が完全に変わった。今まで受講した中で最も良い研修だったと強く感じた。」

「1年目の社員から必須にしてよいくらい、役に立つ。」

「自身が受けた研修の中で最も良かった。同僚にぜひ勧めたい。」