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

10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING ソフトウェアモデリングとは? ソフトウェアの抽象なモデルを, さまざまな視点から簡潔に表現する作業 表現方法 グラフィカルモデル : 所定の記法による図で表現 流れ図, クラ

N/A
N/A
Protected

Academic year: 2021

シェア "10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING ソフトウェアモデリングとは? ソフトウェアの抽象なモデルを, さまざまな視点から簡潔に表現する作業 表現方法 グラフィカルモデル : 所定の記法による図で表現 流れ図, クラ"

Copied!
10
0
0

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

全文

(1)

ソフトウェアモデリング

SOFTWARE MODELING

10

ソフトウェア工学

Software Engineering

ソフトウェアモデリングとは?

■ グラフィカルモデル: 所定の記法による図で表現 → 流れ図,クラス図など ■ 数 理 モ デ ル: 数式や論理式で表現 → 形式手法(モデル検査など) ソフトウェアの抽象なモデルを,さまざまな視点から簡潔に表現する作業

【表現方法】

【視

点】

(2)

モデリングをいつおこない,いつ使うのか

既存システムのモデリング → 既存システムの明確化(利点・欠点,再利用性) 新 シ ス テ ムのモデリング → 要求の導出と明確化(関係者との対話・合意) 【要求定義フェーズ】 要求定義 要求 設 計 実 装 テ ス ト 要求仕様書 設計書 プログラム 製品 【設計フェーズ】 【実装フェーズ】 【テストフェーズ】 新システムのモデル → エンジニアへの説明(設計や文書化にモデルを利用) 新システムのモデル → モデル駆動開発ではモデルから実装の一部を自動生成も 新システムのモデル → モデルに基づいたテストケースの生成 (model-driven development)

UML

(Unified Modeling Language)

ソフトウェアモデルを表現するためのグラフィカルモデリング言語の1つ 13の図式が規定されている

1990年代に提案された種々のオブジェクト指向モデリング図式を統一したもの 1997年に初版 UML 1.0 が公開

(3)

■ ユースケース図 (use-case diagram) システムの機能群と利用者の関係

■ クラス図 (class diagram) クラスの定義とクラス間の関係

■ アクティビティ図 (activity diagram) システムがおこなう処理の流れ

■ シーケンス図 (sequence diagram) オブジェクト間のメッセージ交換の順序

■ 状態機械図 (state machine diagram) イベントに伴うオブジェクトの状態遷移

UMLの主な図式

■13の図式のうち,今回はつぎの5つを学ぶ

ユースケース図

システムの機能群と利用者の関係を図示

履修登録 履修者名簿編集 履修管理システム 学生 サブジェクト 記述しようとしているシステム (subject) (actor) アクタ 外部のユーザ/オブジェクト /システムの役割の名前

【履修管理システムの例】

(4)

クラス図

(1/9)

生年月日

父を取得( )

母を取得( )

年齢を計算( )

クラス名

クラスの定義

(簡易版:要求定義段階) ※属性と操作は場合によっては省略可 (attribute) (operation)

クラスの定義とクラス間の関係を図示

Javaでは フィールド(field) C++では メンバ変数(member variable) 抽象化され直接アクセスできないときは プロパティ(property) と呼ばれる Javaでは メソッド(method) C++では メンバ関数(member function) と呼ばれる

クラス図

(2/9)

Person

- mother: Person

- father: Person

- birthday: Date

+ getFather( ): Person

+ getMother( ): Person

+ getAge(today: Date): int

クラス名 操作名(引数: 型): 戻り値の型

【クラスの定義】

(詳細版:プログラム設計段階) 属性名: 属性の型

可視性

private

(外部からアクセス不可)

+

public

(外部からアクセス可能)

(visibility)

(5)

【クラス間の関係:

汎 化

生年月日

年齢を計算( )

学 生

学生番号

教 員

職員番号

スーパークラス

サブクラス

継承

●サブクラスは,スーパークラスの 属性と操作を引き継ぐ ●サブクラスに,新しい属性と操作を追加可能 (generalization) (inheritance)

B

A

Ais aB

汎化

B

A

general special

クラス図

(3/9)

【クラス間の関係:

(association)

関 連

A

n

B

関連名 関 連

A

単方向関連

B

多重度 クラスAのインスタンスを 1 個固定したとき クラスBのインスタンスが n 個対応 (multiplicity) n 必ず n n..m n 以上 m 以下 0..* または * 0 以上 1..* 1 以上

クラス図

(4/9)

Ais associated withB

(6)

オブジェクト図

(object diagram) 人

1

車 所 有

*

クラス図

オブジェクト図

Aさん:人 そ 56-21:車 Bさん:人 ふ 33-52:車 と 8493:車 リンクでインスタンスを結ぶ クラス図の表す抽象構造 の1つの具体例の表示 インスタンス名:クラス名 (下線を引く)

クラス図

(5/9)

ロール

(role) A B ロール この関連においてクラスAが果たす役割 人 会社 大学 車 従業員 学生 所有者

クラス図

(6/9)

(7)

Person

mother: Person

father:

Person

birthday: Date

属性,関連:どちらで表現してもよい/混在させてもよい

Person

mother: Person

father: Person

Date

Person

Date

mother father 1

1

*

*

*

birthday

1

birthday

1

*

クラス図

(7/9) 【属性/関連】

集約

コンポジション

(aggregation / composition)

A

集 約

B

A

コンポジション

B

強い集約関係 クラスAのインスタンスが削除されると クラスBのインスタンスも削除 全体-部分の関係 クラスBはクラスAの一部(whole-part) Ahas aB

クラス図

(8/9)

(8)

授業科目

【履修登録システムの例】

人 生年月日 氏名 学 生 学生番号 履修

*

*

シラバス

1

1

履修登録 ログイン( ) ログアウト( ) 履修登録( ) 履修取消し( ) 履修科目表示( ) 履修登録画面 シラバス画面 時間割画面

クラス図

(9/9)

アクティビティ図

(1/2)

システムがおこなう処理の流れを図示

アクティビティ: システムの振る舞いをアクションのフローとして記述したもの (activity) 終了ノード (final node) フロー (flow) アクション (action) (guard)ガード レシピ を探す オーブン を加熱 液状材料 を混ぜる 固形材料 を混ぜる 材料全部 を混ぜる オーブン で焼く オーブンから取り出す [done] [not done]

【お菓子作りの例】

判断 (decision)

(9)

アクティビティ図

(2/2)

スイムレーン

による実行主体の明示

レシピを 探す オーブン を加熱 液状材料 を混ぜる 固形材料 を混ぜる 材料全部を混ぜる オーブンで 焼く オーブンか ら取り出す [done] [not done] (swimlane) Helen Mary Jennie

シーケンス図

オブジェクト間のメッセージ交換の順序を例示

【オンラインショッピングの例】

:顧客 :店舗 :メーカー :金融機関 ログイン OK 検索 オブジェクト メッセージ ライフライン 活動中 休止中

(10)

状態機械図

イベントに伴うオブジェクトの状態遷移を図示

開いている 閉じている 鍵がかかっている

【ドアの例】

開く 閉じる 鍵をかける 鍵を開ける (1) つぎのシステムのユースケース図を作成しなさい. チケット予約システムは,チケットのオンライン予約を管理するものである.利用 者は,チケットの予約,支払い,予約状況の確認,チケットの印刷を行うことができ る.管理者は,販売可能なチケットの総数の設定,予約状況一覧表の表示,チケット の印刷を行うことができる.

演習問題 10

旅費内訳 金額:整数 (2) 下記のクラス図は,出張申請システムの一部である.ここから読み取れる内容の概略を 簡単に説明しなさい.(社員は出張申請に対して複数の役割をもっていることに注意) 出張申請 申請番号:整数 申請日:日付 出張先:文字列 出張開始日:日付 出張終了日:日付 旅費合計:整数 * 1 社員 社員番号:整数 氏名:文字列 0..1 申請者 承認者1 * *

参照

関連したドキュメント

※出願期間は年2回設けられています。履修希望科目の開講学期(春学期・通年、秋

 履修できる科目は、所属学部で開講する、教育職員免許状取得のために必要な『教科及び

 履修できる科目は、所属学部で開講する、教育職員免許状取得のために必要な『教科及び

(1)  研究課題に関して、 資料を収集し、 実験、 測定、 調査、 実践を行い、 分析する能力を身につけて いる.

国連ユースボランティア 5カ月間 5カ月間 1学期間 約1カ月間 約1カ月間 約1週間 約2週間 約1週間 約2週間 約1週間 約3週間 約6週間 約4週間

・各 各自 自の のパ パソ ソコ コン ンま また たは はモ モバ バイ イル ル端 端末 末か から ら、 、メ メー ール ルア アプ プリ リに によ より り関 関学 学メ メー ール