解説構造化システム設計手法
・ 構造化分析設計技法 ・ オブジェクト指向分析・設計技法 ■ 現在の主なシステム分析設計技法 ・ データ中心分析設計技法 SA,SD (Structured Analysis and Structured Design) Data Oriented Analysis and Design Object Oriented Analysis and Design
■ システム構築目的の変化と設計技法の関連 ● 大規模な定型処理機能の実現 ● データの共有と活用 戦略情報システム ● 非定型処理の拡大への対応 意思決定システム、シミュレー ション 会計システム 販売管理システム 在庫管理システム 顧客管理システム 受発注管理システム 人事管理システム 資産管理システム・ 工程計画管理システム 資源管理システム プラント制御システム 等々 座席予約システム 顧客データ管理システム オンライン配送システム (ヤマト運輸) 等々 マーケッティング分析 財産形成設計 等々 構造化分析設計 データ中心分析設計 オブジェクト指向分析設計 ● プライベート情報処理への対応 エージェント指向分析設 計 ?
■ なぜシステム分析設計技法が重要なのか 1: 誰でも一定の品質を満たすソフトウェアが開発できる 方法が 必要である 3: 開発メンバ間での共通のコミュニケーション手段も必要で ある 2: ソフトウェア開発プロセスを改善して行く基準となる作業 手順と ドキュメントが存在しなければならない 1970 年代半ばから大量のソフトウェアを開発しなければならない 時代に突入した
■ 分析設計技法に含まれるもの ● 分析設計の視点(何に着目するか) 機能に着目するのか 概念に着目するのか 属性に着目するのか 関係に着目するのか ● 表記方法(どのように表現するか) 図式的表記か 文字列で表現するのか(宣言的仕様記述・論理型仕様記述 等 ) 動的な動きを表記するのか 空間イメージを表現するのか 動的な動きを 表記するのか ● 分析設計の手順(どのようなプロセスか)
■ 分析設計技法を考えるヒント (問)みなさんが長編小説 / RPG を書くとしたら、 どのような順序でどのようなことを決めるか (A) 登場人物を決める (D) シナリオ(小説 / ゲームの展開手順)を決める (C) 章節項の構成を決める (B) 個々の章節における展開内容の概要を決める (F) 何を小説 / ゲームの展開の焦点とするか (E) いい回し / キャラクタイメージを決める
(A) 登場人物を決める (D) シナリオ(小説 / ゲームの展開手順)を決める (C) 章節項の構成を決める (B) 個々の章節における 展開内容の概要を決める (F) 何を小説 / ゲームの展開の焦点とするか (E) いい回し / キャラクタイメージを決める 構成要素となるデータを決める モジュールの機能内容を決める モジュール構造を決める 処理の手順を決める プログラム言語を決める 分析設計の視点を決める 分析設計の要素手順との対応関係
・構成要素となるデータを決める (登場人物を決め) ・モジュールの機能内容を決める (個々の章節における展開内容の概要を 決める) ・モジュール構造を決める ( 章節項の構成を決める) ・処理の手順を決める (シナリオ(小説 / ゲームの展開手順)を決め る) ・プログラム言語を決める (いい回し / キャラクタイメージを決め る) ・分析設計の視点を決める (何を小説 / ゲームの展開の焦点とす るか) (答) 分析設計の標準的な手 順
■ 代表的な構造化分析設計技法 ● SADT ( Structured Analysis Design Technique) ● 複合化分析設計 ● データフロー分析設計 ● 構造化分析設計
■ SADT ( Structured Analysis Design Technique) 【着目点】 データと制御の流れを同時に表現する 【プロセス】 階層化してトップダウンに設計する 【表記法】 制御データ 入力データ出力データ 機構データ 処理すべき機 能 ー構造化されたシステム仕様の分析と設計技法ー
#1 A #2 B #3 C #4 D D1 D2D2 D3 D4 D1: 入力データ名1 D2: 出入力データ名 2 D3: 制御データ名 3 ボックスの配置方向
1 2 3 4 システム全体 詳細化の方向 シート#1 シート# 3.1 詳細化の方向性を規定した … それまでは一般にボトムアップであった(プログラマ = 設計者で あった)
A B C ( C = A ∪ B ) A B C A B A or B A B A A A A A A ( ) ≡ 結合 分岐 展開 結束 OR 分岐 OR 結合 通過 トンネ ル 相互関 連 表 記 法 図式表記の方法を規定した
作業 データ モデル できごと もの 処理機構 動詞 名詞 名前 「処理」中心の捉え方 データ 作業 モデル もの できごと 実体分類 名詞 動詞 名前 「データ」中心の捉え方 ● 2 通りの見方を導入した(きわめて重要) オブジェクト指向分析設計の原点
配送部門 #2 顧客決済口座 を開設 #3 顧客口座を 更新 注文ファイル 倉庫 顧客ファイル 取引き要求 顧客取引情報 決済額 配送計 画 決済通知 顧 客顧 客 在庫量 注文 与信限度 #5 注文を確認し 配送を計画 新規決済口座の開設要求 顧客情報 配送が必要な注文 配送依頼 注文 注文確認 #1 新規顧客を登 録 #4 注文を登録 ・処理の手順を決める (シナリオ(小説 / ゲームの展開手順)を決め る)
■ データフロー分析設計( Data Flow Analysis Design) 配送部門 顧客ファイル を開設する 注文を 登録する 注文を確認 し配送計画 を立てる 顧客決済 口座を開設 する 顧客口座を の更新する 注文ファイル 倉庫 顧客ファイル 顧客要求 新規決済口座の開設 要求 注文 顧客取引情報 与信限度 注文確認 配送依頼 決済額 配送計 画 決済通知 顧 客 顧 客 在庫量 顧客情報 注文 配送が必要な注文 ・処理の手順を決める (シナリオ(小説 / ゲームの展開手順)を決め る)
ストア名 プロセス名 出力データ名 1 出力データ名 2 入力データ名 1 外部エンティティ名 ユーザとの打ち合わせながら設計するとき効果的
プロセス仕様分析 各プロセスがもつ処理内容の記述 プロセス仕様分析 各プロセスがもつ処理内容の記述 データ構造分析 データがもつ構造の記述 データ構造分析 データがもつ構造の記述 処理内容の詳細化 データの詳細化 プロセス 入力データ 出力データ ・構成要素となるデータを決める (登場人物を決め) ・モジュールの機能内容を決める (個々の章節における展開内容の概要を 決める)
■ プロセス仕様分析 IPO 図 (Input Process Output 図) 入力 (I) 処理 (P) 出力 (O) I1. 出庫依頼書 I2 .在庫マスター I3. 入荷確認書 I4. 出荷確認書 O1. 出庫指示書 O2. 在庫不足通知書 O3. 不足品 発注依頼書 O4. 在庫マスター O5. 出荷確認書 1. 在庫量が出庫数以上か比較する. ・在庫数量が出庫数以上のとき ・在庫数量が出庫数以下のとき 2 .在庫数量に入荷数を加える. 3 .在庫数量から出荷数を減じる. レベル # 1 . 5 在庫量を確認する バージョン 1.0 記入者 大木 記入日 4/15/XX
■ データ構造分析 ③ 選択 (Selection) B C A B * B C ① 連接 (Sequence) ② 繰返し (Iteration) 繰返し記号 選択記号 A A 後で記述する ER 図を記述する上で基盤となるデータ 構造を分析する。 【記述規則】
賞味期限 ドル価格 円価格 部 品 部品番号 発注先 製造業者名 * 選択構造 賞味期限 円価格 ドル価格 商 品 価格 繰返し構造 製造業者一覧 部品番号 発注先 部 品 製造業者名 * 【 変形規則 1 】 【 変形規則 2 】 商 品 実体の分離 例えば …
以下の業務内容から、各係をプロセスとし,伝票やデータの流れをデータフロー図を記 述せよ(表記方法は,次スライド参照). ヤマダ電器杉戸店は電器製品の安売り店である。店員は10名で、店長以下、レジ係、 接客係(製品の陳列・接客を行う)、倉庫係(製品の搬入・搬出を行う)、配送係(顧 客への配送を行う)がいる。それぞれの係は以下のような処理を担当している。 (1) 顧客は購入したい製品をレジ係か接客係に注文する。 (2) 接客係は顧客との交渉の都合によっては、値引き率を決め、レジ係に通知する。 (3) レジ係は、売上金額を売上ファイルに記録する。 (4) レジ係は、注文された製品を倉庫係に問い合わせ、在庫があるか確認し、 顧客に知らせる。 (5) 倉庫係は、在庫確認の要求があると在庫管理ファイルを検索し、在庫があるか ないかの確認票をレジ係に送る。 (6) 接客係は顧客の問い合わせによって、直接倉庫係に在庫を確認するときがある。 (7) 配送が必要なときは、レジ係が倉庫係に製品の出庫を依頼する。 (8) 配送係は、倉庫係の配送要求に応じて、顧客宅まで製品を配送する。 【演習問題】
エンティティ識別番号 外部エンティティ名 プロセス名 ストア識別番号 ストア名 Yourdon & DeMarco 式表記 Gane & Sarson 式表記 外部エンティティ名 ストア名 プロセス名 【補足】データフロー図の代表的な表記方法
質問?