• 検索結果がありません。

UML 2.0 UML 2.0 UML (Unified Modeling Language UML 2.0 =UML1.4 + SDL MSC (OCL ) (XMI) UML Infrastructure Superstructure Diagram Interchang

N/A
N/A
Protected

Academic year: 2021

シェア "UML 2.0 UML 2.0 UML (Unified Modeling Language UML 2.0 =UML1.4 + SDL MSC (OCL ) (XMI) UML Infrastructure Superstructure Diagram Interchang"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

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

(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

TAU/Architect および Developer

„

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

には非依存

„

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

„

Javaスケルトン生成

„

シミュレーション機能

„

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

„

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

„

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

„

構成管理ツールとの連携

SCCI)

„

要件管理ツールとの連携

„

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

UML2.0 準拠統合開発環境

(3)

5

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

„

ユースケース図

„

シーケンス図

„

アクティビティ図

„

相互作用概観図

„

クラス図

„

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

„

パッケージ図

„

コンポーネント図

„

配置図

„

状態マシン図

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

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

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

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

• コミュニケーション図      

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

• オブジェクト図

• タイミング図

TAU/Developer

6

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

„

TAU Developer のプロ

ジェクトビューから全て

の関連データにアクセス

可能!

„

外部ファイルと

UML  

モデル間をリンク

ダブルクリックで起動

TAU Developer

ペイントなど描画ツール

MS Word

MS PowerPoint

UML以外の文書の取り込み

ハイパーリンク

TAU/Developer

(4)

7

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

ユーザー定義のアイコン

„

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

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

System

System

<<icon>>

Terninal

<<icon>>

Netw ork

Netw ork

TAU/Developer

TAU独自の強力な編集機能

Li

1. 文字を入力します

Lift

2. Ctrl+スペースを押す

LiftController

3. Ctrlキーを押したまま 

  スペースキーを押すと 

  次の候補が表示される

構文(Syntax)エラー

意味(Semantic)エラー

Integer

myInt

=

12

;

myint

=

11

;

Integer

myInt

?

12

;

myInt

=

11

;

オート・コンプリート

(自動補完)

オンラインチェック

PaidFive

PaidFive

Tea

()

Tea

()

Coffee

Coffee

(

(

Add

Add

)

)

MakingTea

MakingTea

FillWater

()

FillWater

()

ReturnChange

ReturnChange

()

()

Idle

Idle

:

Cus tomer

:

Cus tomer

:

:

Cof f eeMac hine

Cof f eeMac hine

FromUs er

::

Coin

(

5

)

FromUs er

::

Coin

(

5

)

Tea

()

Tea

()

ref

ref

TeaMaking

TeaMaking

<<

signal

>>

Tea

<<

signal

>>

Chai

自動修正

システム修正

時の作業を

大幅に軽減!

定義箇所を変更

すると、参照箇所

も自動的に追従

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

常時1000以上のルール

でチェック!

変更

(5)

9

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

カスタマイズ用

API

„

メタモデルや各種機能へアクセスする

APIを提供

z

C++, Java, Visual Basic, C# などから利用できるCOM API

z

詳細にプログラミングできる

Tcl API

„

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

Component Name

CMdesign

MakeCoffe

CoffeeMachine

Patrons

initialize

initialize

Kind

Package

UseCase

Class

Class

Operation

Operation

Location

Root

UserDrinks

CMdesign

CMdesign

Controller

Hardware

Operations

6

1

0

0

1

2

Attributes

-

-

2

0

-

-Classes

10

0

1

1

0

0

Elements

1095

50

448

2

202

65

Definitions

65

1

5

1

14

5

Diagrams

11

1

1

-

2

2

Symbols per Diagram

13

6

5

-

26

7

Average

1

0

0

1

0

0

Maximum 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

3

Average Cyclomatic

complexity

0,1

-

0

0

-

-0 200 400 600 800 1000 1200 initialize MakeCoffe MakeTea TeaMaking Additives CoffeeMachine Controller Hardware Patrons CMdesign Package Class UseCase Operation

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

z

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

z

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

TAU/Developer

10

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

効果的なレビュー(

1/2)

1.可読性

:コントローラ

:サービス1

装置A

制御回線1

制御回線2

:サービス2

サービス1回線

管理用回線

サービス2回線

動作中

フロアセンサ

(

階数

)

現在の階数

=

階数

;

現在の階数

=

指定階

ドア開

モータ停止

ドア状態

=

停止中

動作中_1

動作中_1

動作中

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

• 詳細設計が理解できる

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

 種類は?

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

 する?

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

 を送信する?

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

 分解されている?

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

 サブシステムがやりとり 

 を行う?

レビューが成立する

目に見える設計成果物

TAU/Developer

(6)

11

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

効果的なレビュー(

2/2)

2.動かすレビュー

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

¾

¾ブレークポイント

ブレークポイント

¾

¾シーケンス図トレース

シーケンス図トレース

¾

¾ウォッチウィンドウ

ウォッチウィンドウ

¾

¾

スクリプト

スクリプト

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

„

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

記述物のレビューだけでは本当に

動作するのかどうか分からない。。。

品質は作りこめ!

動作させる

TAU/Developer

各工程で    

シミュレーション

モデル検証

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

インスタンスビュー

ウォッチウィンドウ

シーケンス図トレース

ステートチャート図

トレース(遷移中心)

ブレークポイント

テストシナリオ

(選択して再利用)

ブレークポイント

のリスト

ステートチャート図

トレース(状態中心)

ユーザ定義のメッセージ

„

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

z

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

z

豊富なコマンド群

(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

(8)

15

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

生産性の向上(

2/2)

2.自動化

商業用途に実績のあるコード

ジェネレータを採用

„

高品質 & 高信頼性

„

モデル=コード が可能

„

ロイヤルティーフリー

„

ランタイムライブラリの      

ソースコード提供

alt[status=OK] alt[status=OK] Unit_B Unit_B Unit_A Unit_A ref ref Initalization Initalization else else 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.

„

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

z

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

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

„

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

z

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

を自動定義

モデリング作業の    

  大幅スピードアップ!

アクティブ モデラー

SCS:SatelliteControlSy stem SCS:SatelliteControlSy stem GroundStation Actuator Actuator ProcessMessage <<usec ase>> ProcessMessage <<usec ase>> MaintainPosition <<usecase>> MaintainPosition <<usecase>> VerifyChecksum <<usecase>> VerifyChecksum <<usecase>> VerifyOriginator <<usecas e>> VerifyOriginator <<usecas e>> <<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 ref ref InitalizationInitalization

else else 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() GroundStationPort

GroundStationPort UserEquipmentPortUserEquipmentPort ActuatorPort

ActuatorPort SensorPortSensorPort

pc: Pow erController pc: Pow erController ActuatorPort ActuatorPort BusPort BusPort ac:AttitudeController ac:AttitudeController SensorPort SensorPort BusPort BusPort db:DataBus db:DataBus DataPort DataPort DataPort DataPort IDataFromBus IDataToBus IDataFromBus IDataToBus IDataFromBus IDataToBus IDataFromBus IDataToBus cc:CommunicationsController cc:CommunicationsController GroundStationPort GroundStationPortUserEquipmentPortUserEquipmentPort

BusPort BusPort IDataToBus IDataFromBus IDataToBus IDataFromBus

自動

作成!

(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

(10)

19

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

分散開発への対応

日本

中国

インド

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

• バージョンの整合性の確保

分散開発に対応した構成管理ツール

でUMLの成果物も一緒に管理する

成果物はUMLだけではない

• 文書

• 表

• UML以外の絵 etc.

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

は非効率的!

XML形式ファイルで保存 ⇒ どんな構成管理ツールでも管理可能

SCCI対応により、TAU上からCheck-in/-outなどの操作が可能

TAU/Developer

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

1/3)

1.仕様書と

UMLモデルのリンク

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

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

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

z 開発のトリガーは要件

モデルと要件の関連

要件とモデル要素に

リンクをはり、モデル

を要件管理下におく

UML

UML

だけでは  

だけでは  

仕様書にならない!

仕様書にならない!

要件管理ツール内の

仕様書をUML開発 

環境で確認できる

ドラッグアンドドロップ

で要件からモデルへ

リンクを作成する

(11)

21

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

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

2/3)

2.

UMLも含めた影響分析

仕様書の

変更箇所

影響する 

モデル要素

さらに影響

するモデル

要素

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

TAU/Developer

DOORS上のUML 

モデルIDから、対応

するTAU上のモデル

要素へジャンプ可能

22

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

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

3/3)

3.モデルの変更管理

構成管理ツール

構成管理ツール

SYNERGY/CM

SYNERGY/CM

仕様書

仕様書

DOORS

DOORS

変更管理

変更管理

ツール

ツール

SYNERGY

SYNERGY

/Change

/Change

いつ、どんな理由

によって、どんな

変更を加えるのか

どんな変更要求

に応じて、いつ、

誰がどのファイル

をどう変更したか

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

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

UML2.0開発環境

TAU/Developer

1つの変更要求であちこちが変わる...

複雑なシステムほど万全の管理が必要!

TAU/Developer

(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-sim

Co-sim

ツール連携

参照

関連したドキュメント

Further using the Hamiltonian formalism for P II –P IV , it is shown that these special polynomials, which are defined by second order bilinear differential-difference equations,

In this paper a result of Zograf is used to find a bound for the level of any congruence subgroup in terms of its genus.. We call these groups “moonshine groups.” The list of genus

If the interval [0, 1] can be mapped continuously onto the square [0, 1] 2 , then after partitioning [0, 1] into 2 n+m congruent subintervals and [0, 1] 2 into 2 n+m congruent

・Microsoft® SQL Server® 2019 Client Access License (10 User)ライセンス証書 オープン価格. オープン価格 Microsoft SQL

③  「ぽちゃん」の表記を、 「ぽっちゃん」と読んだ者が2 0名(「ぼちゃん」について何か記入 した者 7 4 名の内、 2 7

○事 業 名 海と日本プロジェクト Sea級グルメスタジアム in 石川 ○実施日程・場所 令和元年 7月26日(金) 能登高校(石川県能登町) ○主 催

現行の HDTV デジタル放送では 4:2:0 が採用されていること、また、 Main 10 プロファイルおよ び Main プロファイルは Y′C′ B C′ R 4:2:0 のみをサポートしていることから、 Y′C′ B

4-2