Presentation is loading. Please wait.

Presentation is loading. Please wait.

10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING.

Similar presentations


Presentation on theme: "10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING."— Presentation transcript:

1 10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING

2 ソフトウェアモデリングとは? ソフトウェアの抽象なモデルを,さまざまな視点から簡潔に表現する作業 【表現方法】
グラフィカルモデル: 所定の記法による図で表現 → 流れ図,クラス図など 数 理 モ デ ル: 数式や論理式で表現    → 形式手法(モデル検査など) 【視  点】 外部からの視点: ソフトウェアが利用される環境のモデル 相互作用の視点: システム-環境・利用者間,システム要素間の相互作用のモデル 構 造 の 視 点: システムやデータの静的な構造のモデル ふるまいの視点: システムの動的ふるまい,イベントへの反応のモデル 今回の授業では,UML を学ぶ (さまざまな視点からの記法が国際的に標準化されたグラフィカルモデル)

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

4 UML (Unified Modeling Language)
ソフトウェアモデルを表現するためのグラフィカルモデリング言語の1つ 13の図式が規定されている 1990年代に提案された種々のオブジェクト指向モデリング図式を統一したもの 1997年に初版 UML 1.0 が公開 最新版は2015年に公開されたUML 2.5

5 UMLの主な図式 ■13の図式のうち,今回はつぎの5つを学ぶ
ユースケース図 (use-case diagram)  システムの機能群と利用者の関係 クラス図 (class diagram)  クラスの定義とクラス間の関係 アクティビティ図 (activity diagram)  システムがおこなう処理の流れ シーケンス図 (sequence diagram)  オブジェクト間のメッセージ交換の順序 状態機械図 (state machine diagram) イベントに伴うオブジェクトの状態遷移

6 ユースケース図 【履修管理システムの例】 システムの機能群と利用者の関係を図示 サブジェクト (subject) 履修登録 (actor)
記述しようとしているシステム (subject) 履修管理システム 履修登録 (actor) アクタ 外部のユーザ/オブジェクト /システムの役割の名前 履修者名簿編集 学生 教務担当 事務員 履修者名簿閲覧 成績閲覧 ユースケース (use-case) システムの利用のされ方 (システムの機能群) 成績登録 教員

7 クラス図 (1/9) 【クラスの定義】(簡易版:要求定義段階) クラスの定義とクラス間の関係を図示 人 母 父 生年月日 クラス名
Javaでは  フィールド(field) C++では  メンバ変数(member variable) 抽象化され直接アクセスできないときは  プロパティ(property) と呼ばれる 生年月日 父を取得( ) 母を取得( ) 年齢を計算( ) クラス名 属 性 (attribute) 操  作 Javaでは  メソッド(method) C++では  メンバ関数(member function) と呼ばれる (operation) ※属性と操作は場合によっては省略可

8 クラス図 (2/9) 【クラスの定義】(詳細版:プログラム設計段階) Person mother: Person
father: Person birthday: Date + getFather( ): Person + getMother( ): Person + getAge(today: Date): int クラス名 属性名: 属性の型 操作名(引数: 型): 戻り値の型 可視性 - private(外部からアクセス不可) + public (外部からアクセス可能) (visibility)

9 クラス図 (3/9) 【クラス間の関係:汎 化】 人 生年月日 年齢を計算( ) スーパークラス 学 生 教 員 B 学生番号 職員番号
【クラス間の関係:汎 化】 (generalization) 生年月日 年齢を計算( ) スーパークラス A is a B 汎化 B A general special サブクラス 学 生 学生番号 教 員 職員番号 (inheritance) B A 【継承】 ●スーパークラスの  属性と操作は引き継ぐ ●新しい属性と操作を追加可能

10 クラス図 (4/9) 【クラス間の関係:関 連】 n A B A B 1 0..* (association) 多重度
【クラス間の関係:関 連】 (association) 多重度  クラスAのインスタンスを 1 個固定したとき  クラスBのインスタンスが n 個対応 (multiplicity) A is associated with B A B n 関連名 関 連 n 必ず n n..m n 以上 m 以下 0..* または * 0 以上 1..* 1 以上 A B 単方向関連 誘導可能  クラスAのインスタンスからクラスBのインスタンスにアクセスできる (navigability) 学 部 学 生 個人成績表 1 所 属 0..*

11 クラス図 (5/9) 【オブジェクト図】 クラス図 オブジェクト図 1 * (object diagram) 人 車 所 有 Aさん:人
所 有 * クラス図 オブジェクト図 Aさん:人 そ 56-21:車 クラス図の表す抽象構造の1つの具体例の表示 Bさん:人 ふ 33-52:車 と 8493:車 インスタンス名:クラス名 に下線を引く リンクでインスタンスを結ぶ

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

13 クラス図 (7/9) 【属性/関連】 属性,関連:どちらで表現してもよい/混在させてもよい Person mother: Person
father: Person birthday: Date Person mother: Person father: Person birthday 1 * Date Person Date mother father 1 * birthday

14 クラス図 (8/9) 【集約/コンポジション】 A B A B 0..* 1 0..1
(aggregation / composition) A has a B A B 集 約 全体-部分 の関係 クラスBはクラスAの一部 (whole-part) A B コンポジション 強い集約関係 クラスAのインスタンスが削除されると クラスBのインスタンスも削除 学 部 授業科目 建 物 0..* 1 0..1 デスクトップPC ディスプレイ ノートPC ディスプレイ 学部がなくなると 授業科目はなくなるが 建物はなくならない PCを廃棄するとき,ディスプレイも廃棄? デスクトップPC: NO ノートPC: YES

15 クラス図 (9/9) 【履修登録システムの例】 * 1 人 生年月日 氏名 履修登録画面 履修登録 ログイン( ) ログアウト( )
履修登録( ) 履修取消し( ) 履修科目表示( ) 学 生 学生番号 履修 * シラバス画面 時間割画面 授業科目 1 シラバス

16 アクティビティ図 (1/2) 【お菓子作りの例】 システムがおこなう処理の流れを図示 フロー アクション ガード 判断 終了ノード
アクティビティ: システムの振る舞いをアクションのフローとして記述したもの (activity) レシピを探す オーブンを加熱 液状材料を混ぜる 固形材料を混ぜる 材料全部を混ぜる オーブンで焼く オーブンから取り出す [done] [not done] 【お菓子作りの例】 フロー (flow) アクション (action) (guard) ガード 開始ノード (initial node) 判断 (decision) 終了ノード (final node) (fork) フォーク ジョイン (join)

17 アクティビティ図 (2/2) スイムレーンによる実行主体の明示 (swimlane) Helen [not done] Mary
オーブンを加熱 Helen オーブンから取り出す [not done] レシピを探す 液状材料を混ぜる オーブンで焼く Mary [done] 固形材料を混ぜる 材料全部を混ぜる Jennie

18 シーケンス図 【オンラインショッピングの例】 オブジェクト間のメッセージ交換の順序を例示 オブジェクト 活動中 メッセージ 休止中
:顧客 :店舗 :メーカー :金融機関 ログイン 活動中 休止中 OK メッセージ 検索 (lifeline) ライフライン 商品情報 返信メッセージ 注文 決済 OK 発送指示 OK OK

19 状態機械図 【ドアの例】 イベントに伴うオブジェクトの状態遷移を図示 開く 鍵を開ける 閉じる 鍵をかける 開いている 閉じている
鍵がかかっている 閉じる 鍵をかける

20 演習問題 10 (1) つぎのシステムのユースケース図を作成しなさい.
 チケット予約システムは,チケットのオンライン予約を管理するものである.利用者は, チケットの予約,支払い,予約状況の確認,チケットの印刷を行うことができる.管理者は, 販売可能なチケットの総数の設定,予約状況一覧表の表示,チケットの印刷を行うことがで きる. 0..1 申請者 承認者 1 * 社員 社員番号:整数 氏名:文字列 出張申請 申請番号:整数 申請日:日付 出張先:文字列 出張開始日:日付 出張終了日:日付 旅費合計:整数 * 1 旅費内訳 金額:整数 (2) 右のクラス図は,出張申請システムの 一部である.ここから読み取れる内容の 概略を簡単に説明しなさい.(社員は出 張申請に対して複数の役割をもっている ことに注意) 交通費 交通機関名:文字列 出発地:文字列 到着地:文字列 宿泊費 宿泊日数:整数


Download ppt "10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING."

Similar presentations


Ads by Google