TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど)...

12
UML2.0 対応 組込み系モデリングツール TAU/Developer のご紹介 日本テレロジック() URL www.telelogic.com/jp メール [email protected] Tel 03-5427-8900(代表) 2 © 日本テレロジック株式会社 開発の限界 システムの規模・複雑さ アセンブラ マシン語 C 高級言語 C++ Java UML2.0 モデリング言語 現在 システムの大規模化・複雑化 についていけない。。。 抽象度を向上する 新しいブレークスルー 構造化プログラミング オブジェクト指向 モデルベース開発 TAU/Developer コード中心の開発 コードの解析:TAU/Logiscope TAU/Developer

Transcript of TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど)...

Page 1: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

1

UML2.0対応

組込み系モデリングツール

TAU/Developer

のご紹介

   日本テレロジック(株)URL  www.telelogic.com/jpメール [email protected]   03-5427-8900(代表)

2 © 日本テレロジック株式会社

開発の限界

システムの規模・複雑さ

開発にかかる工数

アセンブラ

マシン語

C高級言語

C++Java

 UML2.0モデリング言語

現在

システムの大規模化・複雑化についていけない。。。

抽象度を向上する     新しいブレークスルー

成果物の大きさ

構造化プログラミング

オブジェクト指向

モデルベース開発TAU/Developer

  コード中心の開発      ↑

コードの解析:TAU/Logiscope

TAU/Developer

Page 2: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

2

3 © 日本テレロジック株式会社

UML 2.0 とは?

UML 2.0 は、システムの仕様作成、設計、文書化に適した UML (Unified Modeling Language) の重要なバージョンアップである。

UML 2.0 =  UML1.4 + SDL2000 + MSC2000 + その他(OCLなど)

実行可能なモデルの構築と動作の詳細な記述に対するサポート

ツール間でのダイアグラムのデータ交換が可能(XMI)

UML2.0:SDLの採用でモデルベース開発が現実的に!

※ UML言語そのものは以下の4つのパートからなる

• Infrastructure : プロファイルを作れる(標準化したものを使えばよい)

• Superstructure : UMLの記述方法(SDLなどを追加)

• Diagram Interchange : XMI2.0(ツールが対応すれば良い)

• OCL : OCL2.0(滅多に使われない)

TAU/Developer

4 © 日本テレロジック株式会社

TAU/Architect および Developer

特定の方法論や開発プロセス

には非依存

C++/Cフルコード生成

Javaスケルトン生成

シミュレーション機能

COM/Tclによるカスタマイズ

オンラインチェックと自動修正

任意の位置にコメント記入可

構成管理ツールとの連携(SCCI)

要件管理ツールとの連携

テレロジック社 が提供する 

UML2.0 準拠統合開発環境

TAU/Developer

Page 3: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

3

5 © 日本テレロジック株式会社

ユースケース図

シーケンス図

アクティビティ図

相互作用概観図

クラス図

コンポジットストラクチャ図

パッケージ図

コンポーネント図

配置図

状態マシン図

サポートしているダイアグラム

TAU2.3ではUML2.0の13種類のダイアグラムのうち、

以下の10種類をサポートしている

将来対応予定のダイアグラム

• コミュニケーション図      

 (旧:コラボレーション図)

• オブジェクト図

• タイミング図

TAU/Developer

6 © 日本テレロジック株式会社

TAU Developer のプロ

ジェクトビューから全て

の関連データにアクセス

可能!

外部ファイルと UML  

モデル間をリンク

ダブルクリックで起動

TAU Developer

ペイントなど描画ツール

MS Word

MS PowerPoint

UML以外の文書の取り込み

ハイパーリンク

TAU/Developer

Page 4: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

4

7 © 日本テレロジック株式会社

ユーザー定義のアイコン

ビットマップの利用など、アイコンをユーザー定義でもできるようになり、

モデルの視認性を向上します。

System

System

<<icon>>Terninal

<<icon>>

Netw ork

Netw ork

TAU/Developer

8 © 日本テレロジック株式会社

TAU独自の強力な編集機能

Li1. 文字を入力します

Lift2. Ctrl+スペースを押す

LiftController

3. Ctrlキーを押したまま   スペースキーを押すと   次の候補が表示される

構文(Syntax)エラー

意味(Semantic)エラー

Integer myInt = 12;myint = 11;

Integer myInt ? 12;myInt = 11;

オート・コンプリート(自動補完)

オンラインチェック

PaidFivePaidFive

Tea()Tea() Coffee(Add)Coffee(Add)

MakingTeaMakingTea

FillWater()FillWater() ReturnChange()ReturnChange()

IdleIdle

: Cus tomer

: Cus tomer

: Cof f eeMachine

: Cof f eeMachine

FromUser::Coin(5)FromUser::Coin(5)

Tea ()Tea ()

refrefTeaMakingTeaMaking

<<signal>>

Tea

<<signal>>

Chai

自動修正

システム修正時の作業を

大幅に軽減!

定義箇所を変更すると、参照箇所も自動的に追従

モデルの記述段階でエラーを防止!

常時1000以上のルール

でチェック!

変更

TAU/Developer

Page 5: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

5

9 © 日本テレロジック株式会社

カスタマイズ用APIメタモデルや各種機能へアクセスするAPIを提供

C++, Java, Visual Basic, C# などから利用できるCOM API詳細にプログラミングできるTcl API

バッチ処理にもインタラクティブにも利用可

Component Name CMdesign MakeCoffe CoffeeMachine Patrons initialize initializeKind Package UseCase Class Class Operation Operation

Location Root UserDrinks CMdesign CMdesign Controller HardwareOperations 6 1 0 0 1 2Attributes - - 2 0 - -Classes 10 0 1 1 0 0Elements 1095 50 448 2 202 65Definitions 65 1 5 1 14 5Diagrams 11 1 1 - 2 2Symbols per Diagram 13 6 5 - 26 7 Average 1 0 0 1 0 0Maximum depth of inheritance tree

6 0 0 0 6 3

Maximum cyclomatic complexity

16 0 0 0 9 7

Number of states 2 0 - - 6 3Average Cyclomatic complexity

0,1 - 0 0 - -

0 200 400 600 800 1000 1200

initialize

MakeCoffe

MakeTea

TeaMaking

Additives

CoffeeMachine

Controller

Hardware

Patrons

CMdesign

PackageClassUseCaseOperation

カスタマイズ例:モデルのメトリックス解析

HTML およびCSV フォーマットへ出力

ユーザー定義ルールの追加

TAU/Developer

10 © 日本テレロジック株式会社

効果的なレビュー(1/2)

1.可読性

:コントローラ

:サービス1

装置A

制御回線1 制御回線2

:サービス2

サービス1回線

管理用回線

サービス2回線

動作中

フロアセンサ(階数)

現在の階数= 階数;

現在の階数= 指定階

真 偽

ドア開

モータ停止

ドア状態 = 開

停止中

動作中_1

動作中_1

動作中

• モジュール構造が一目で理解できる

• 詳細設計が理解できる

• 状態Aで取れるイベントの 

 種類は?

• その遷移はいくつに分岐 

 する?

• その遷移でどんなイベント 

 を送信する?

• いくつのサブシステムに 

 分解されている?

• どのサブシステムとどの 

 サブシステムがやりとり  を行う?

レビューが成立する

目に見える設計成果物

TAU/Developer

Page 6: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

6

11 © 日本テレロジック株式会社

効果的なレビュー(2/2)

2.動かすレビュー

エラーの早期発見が可能!

ブレークポイントブレークポイント

シーケンス図トレースシーケンス図トレース

ウォッチウィンドウウォッチウィンドウ

スクリプトスクリプト

などなど豊富なデバッグ機能

UMLモデルをホスト上でシミュレーション

記述物のレビューだけでは本当に動作するのかどうか分からない。。。

品質は作りこめ!

動作させる

TAU/Developer

各工程で    シミュレーション

12 © 日本テレロジック株式会社

モデル検証

エラーの早期発見が可能!

インスタンスビュー

ウォッチウィンドウ

シーケンス図トレース

ステートチャート図

トレース(遷移中心)

ブレークポイント

テストシナリオ

(選択して再利用)

ブレークポイントのリスト

ステートチャート図

トレース(状態中心)

ユーザ定義のメッセージUMLモデルをホスト上でシミュレーション

UML モデルの実行をグラフィカルにトレース

豊富なコマンド群

TAU/Developer

Page 7: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

7

13 © 日本テレロジック株式会社

typedef struct{unsigned char c_last_PID;int c_PID_offset;

} MyType;

MyType func (int Sint, MyType Param);

MyType func(int Sint, MyType Param){

xSignalNode Timer, TempTimer;

Timer = XSYSDPRS_TQ(P)->Suc[Sint];

TempTimer = Timer->Suc;if ( Timer->Sender.LocalPId->PrsP == P){xRemoveFromQueue((void *)Timer);Param = xReleaseSignal(&Timer);

} /* end if */

return (Param) ;}

外部C/C++コードも含めてシミュレーション

.c

.cpp

生産性の向上(1/2)

1.部品の再利用

.h

モデルの流用既存のC/C++

資産の流用

継承    一部の変更や、部品の追加が容易

変更部分または追加部分だけを記述

TAU/Developer

C/C++のデータ型やクラスをUMLの

クラスに、関数は演算子に変換

14 © 日本テレロジック株式会社

既存C/C++資産との融合class TableTree {

private:void * item;TableTree * next;

public:TableTree (void);void SetItem (void * table);void * GetItem (void);TableTree * AppendItem (TableTree * item);void SetNext (TableTree * nextItem);TableTree * GetNext (void);

};

class EventTable : public BaseTable {private:

char transitionID [MaxLineLength];public:

EventTable (void);void SetTransitionID (char * newTransitionID);char * GetTransitionID (void);

EventTable * GetPrevious (void);EventTable * AppendItem (EventTable * item);};

C/C++ヘッダファイル

C/C++のデータ型やクラスをUML上

のクラスに変換

クラス間の関係も認識される!

あるクラスの影響の範囲を視覚的に把握可能!

TAU/Developer

Page 8: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

8

15 © 日本テレロジック株式会社

生産性の向上(2/2)

2.自動化

商業用途に実績のあるコードジェネレータを採用

高品質 & 高信頼性

モデル=コード が可能

ロイヤルティーフリー

ランタイムライブラリの      

ソースコード提供

alt [status=OK]alt [status=OK]

Unit_BUnit_BUnit_AUnit_A

refrefInitalizationInitalization

elseelse

success ()success ()

f ailure ()f ailure ()

MsgAck ()MsgAck ()

NoError ()NoError ()

Request ()Request ()

Response ()Response () 22

Ev ent1 ()Ev ent1 ()

Ev ent2 ()Ev ent2 ()

Method1()Method1()

Reply Value()Reply Value()

アクティブモデラー

必要な定義(クラスなど)を自動生成

検証シナリオのスクリプト化

• リグレッションテストの 自動化• イベントの順番を一部 入れ替えるのが容易

コード生成

開発効率の向上!

TAU/Developer

• シーケンス図から

• コンポジット ストラクチャ図から

etc.

16 © 日本テレロジック株式会社

高レベルのダイアグラムで作成開始

ユースケース図、シーケンス図、       

アーキテクチャ(コンポジットストラクチャ)図

必要なモデル要素の作成を自動化

必要とされるクラス、動作、信号、ポートなど

を自動定義

モデリング作業の      大幅スピードアップ!

アクティブ モデラーSCS:SatelliteControlSy stemSCS:SatelliteControlSy stem

GroundStation

ActuatorActuator

ProcessMessage<<usecase>>

ProcessMessage<<usecase>>

MaintainPosition<<usecase>>

MaintainPosition<<usecase>>

VerifyChecksum<<usecase>>

VerifyChecksum<<usecase>>

VerifyOriginator<<usecase>>

VerifyOriginator<<usecase>>

<<include>><<include>><<include>><<include>>

ProcessCommsMessage<<usecase>>

ProcessCommsMessage<<usecase>>

ProcessPositionMessage<<usecase>>

ProcessPositionMessage<<usecase>>

<<extend>><<extend>>

<<extend>><<extend>>

UserEquipment

Sensor

alt [status=OK]alt [status=OK]

Unit_B

Unit_B

Unit_A

Unit_A

refrefInitalizationInitalization

elseelse

success ()success ()

f ailure ()f ailure ()

MsgAck ()MsgAck ()

NoError ()NoError ()

Request ()Request ()

Response ()Response () 22

Ev ent1 ()Ev ent1 ()

Ev ent2 ()Ev ent2 ()

Method1()Method1()

Reply Value()Reply Value()

GroundStationPortGroundStationPort UserEquipmentPortUserEquipmentPort

ActuatorPortActuatorPort SensorPortSensorPort

pc : Pow erController

pc : Pow erControllerActuatorPortActuatorPort

BusPortBusPort

ac : AttitudeControllerac : AttitudeController

SensorPortSensorPort

BusPortBusPort

db : DataBusdb : DataBus

DataPortDataPort

DataPortDataPort

IDataFromBus

IDataToBus

IDataFromBus

IDataToBus

IDataFromBus

IDataToBus

IDataFromBus

IDataToBus

cc : CommunicationsControllercc : CommunicationsController

GroundStationPortGroundStationPort UserEquipmentPortUserEquipmentPort

BusPortBusPort

IDataToBus

IDataFromBus

IDataToBusIDataFromBus

自動作成!

TAU/Developer

Page 9: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

9

17 © 日本テレロジック株式会社

自動コード生成

UMLモデルからコードを自動生成

• 100%C++• スケルトンJava• 100%C

IDEとの統合

• .Net• Eclipse• Sun Java Studio、など

•クラス図

•ステートマシン図

•コンポジット構造図

TAU/Developer

18 © 日本テレロジック株式会社

リアルタイムOSへのポーティング

シングルタスク

UML以外

のOSタスク

リアルタイムOS

OSタスク生成コード

Runtime library

Process1 Process2

マルチタスク

リアルタイムOS

1UMLシステム= 1OSタスク

UML以外

のOSタスク

1UMLシステム= 複数のOSタスク

m個UMLパート =  n個OSタスクへのマッピング可(m>=n)

UMLシステムを外部アプリに包含可能

OSタスク

生成コード

Process1 Process2

OSタスク

生成コード

Process3 Process4

Runtime library

Runtime library はソースコードを提供

• Embedded Linux• μiTRON4.0• VxWorks

…etc

ターゲットデバッガとのツール連携

• microVIEW-PLUS

…etc

TAU/Developer

Page 10: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

10

19 © 日本テレロジック株式会社

分散開発への対応

日本

中国

インド

• 拠点間で成果物を共有する

• バージョンの整合性の確保分散開発に対応した構成管理ツールでUMLの成果物も一緒に管理する

成果物はUMLだけではない

• 文書

• 表

• UML以外の絵 etc.

UML専用のレポジトリ(DB)

は非効率的!

XML形式ファイルで保存 ⇒ どんな構成管理ツールでも管理可能SCCI対応により、TAU上からCheck-in/-outなどの操作が可能

TAU/Developer

20 © 日本テレロジック株式会社

トレーサビリティの確保(1/3)1.仕様書とUMLモデルのリンク

CMMなど要件管理は必須になる

要件がすべて(必要十分条件)

管理された要件を開発に利用する

開発のトリガーは要件

モデルと要件の関連要件とモデル要素にリンクをはり、モデルを要件管理下におく

UMLUMLだけでは  だけでは  仕様書にならない!仕様書にならない!

要件管理ツール内の仕様書をUML開発 

環境で確認できる

ドラッグアンドドロップで要件からモデルへ

リンクを作成する

TAU/Developer

Page 11: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

11

21 © 日本テレロジック株式会社

トレーサビリティの確保(2/3)2.UMLも含めた影響分析

仕様書の変更箇所

影響する モデル要素

さらに影響するモデル

要素

変更時の影響箇所をモデルを含めて即座に把握可能!

TAU/Developer

DOORS上のUML モデルIDから、対応するTAU上のモデル

要素へジャンプ可能

22 © 日本テレロジック株式会社

トレーサビリティの確保(3/3)

3.モデルの変更管理

構成管理ツール構成管理ツール

SYNERGY/CMSYNERGY/CM

仕様書仕様書

DOORSDOORS

変更管理変更管理

ツールツール

SYNERGYSYNERGY/Change/Change

いつ、どんな理由によって、どんな変更を加えるのか

どんな変更要求に応じて、いつ、誰がどのファイルをどう変更したか

グラフィカルな比較&マージ

• 差分の容易な把握が可能

UML2.0開発環境

TAU/Developer

1つの変更要求であちこちが変わる...複雑なシステムほど万全の管理が必要!

TAU/Developer

Page 12: TAU/Developer - 組み込みネットUML 2.0 = UML1.4 + SDL2000 + MSC2000 + その他(OCLなど) 実行可能なモデルの構築と動作の詳細な記述に対するサポート

12

23 © 日本テレロジック株式会社

世界No.1変更管理

構成管理

SYNERGY

要求分析 詳細設計

TAU Generation 2 / Developer ( UML2.0 tool )

ユーザ要求仕様書 設計仕様書 テスト仕様書

Co-sim

世界標準

要件管理

DOORS

CADなど

PDMツール他

テストスクリプト

Telelogic TAU / Tester(TTCN-3:UML Test Profile)

プロトタイピングツール(GUIなど)

ツール間  接続

TAU Generation 2 とツール連携

コード 生成

ターゲットデバッガ(ICE,RTOS)

連続系開発環境(PID制御など)

Co-simCo-sim

ツール連携