Comments
Description
Transcript
H17年度プログラム設計解答案
プログラム設計 2005 年 期末テスト 作成者 : まほろば 作成日 : 2008 年 7 月 19 日 設計の視点に関して 1 1.1 • 機能視点 (functional view) ソフトウェアの持つ機能を示す.どのような入力を与えればどのような出力が出るかを示し た仕様も,機能視点の一例である. • 動作視点 (behavioral view) ソフトウェアの内部の動きについて述べる.プログラムの動作を順に示す状態遷移図などが その例である. • 構造視点 (structual view) ソフトウェアの静的な内部構造がどうなっているかについて述べる.モジュールの構成,関 数・クラスの構造図などが例である. • 時間視点 (temporal view) 入出力のタイミング,内部処理の時間制約などについて述べる.動作視点の特殊なものと考 えることもできる.実時間処理プログラムでは必須である. 1.2 1 つの視点だけでは十分な情報が得られない場合でも,複数の視点を組み合わせれば,十分な情 報が得られる.また,すべての情報を1つの視点にまとめて書いてしまうと,複雑になってしま い,必要な情報を取り出すのが容易でなくなる.そのため,複数の視点から設計をする. プロセスモデルについて 2 2.1 ウォーターフォールモデルについて ウォーターフォールモデルは以下の6つのステップに分けて行われる.参考までにそれぞれのス テップで行うことも書いておく. 1. 要求分析 (requirement analisys) 要求定義や要件定義ともいう.開発対象とするソフトウェアシステムを,どのようなものに するかを確定する.ユーザと協議して,どのような機能をもつシステムにするか明確にして, 文章などで書く. 2. 仕様作成 (specification development) 定義された要求をもとに,プログラムの動作や機能がどのようなものであるか,ユーザや開 発者にわかるよう,図や使用記述言語などで記述する.以降のプログラム開発は,これに基 づいて行われる. 3. 設計 (design) ソフトウェアの構造を決める皇帝でソフトウェア設計やプログラム設計とも呼ぶ.モジュー ルの構造,機能の分割や構成を行う. 1 4. コーディング (coding) プログラムの作成を行う.エディタ等のツールを用いて1行ずつプログラムを入力したり, 過去のプログラムを一部変更して再利用することもある. 5. テスト (test) プログラムが正常に動くかどうかを確認する作業.ユニットテスト,統合テスト,システム テストなどいくつかの段階にわけて行われることもある. 6. 保守 (maintenance) 作成したシステムの実際の運用時にバグが発見された場合,それを修正する.また,要求さ れる機能に変更が生じたときに,プログラムの追加,修正などを行う.大幅な変更を要求さ れるときは,要求分析から始めることもある. 参考までに,一般的に,1-3 を上流工程,4-6 を下流工程と呼ぶ. 2.2 スパイラルモデルについて 1. 目的の決定,手段の選択,制約の列挙 2. 各手段の評価,リスクの認識と回避 3. 開発と検証 4. 次フェーズの計画 何が各フェーズの名前で何が内容なのか分からないので,他のことでちょっと補足. スパイラルモデルでは,小さいプロジェクトから初めて,分析・設計・コーディング・テストを 繰り返しつつ,少しずつシステム構築していく方法であり,現実のソフトウェア開発プロセスに 合った,非常に有効な工程管理手法である.実際,多くのソフトウェアはこのようなプロセスを経 て開発されていると思われる. しかし,このモデルは,ソフトウェア開発者にとっては,たいへん効率よく開発を進めることが できるわかりやすいモデルを提供したが,開発全体を管理する管理者にとっては,徐々に構築され ていくソフトウェアシステムが本当に正しく(要求を満たして)作られているのかを把握しにく い,という問題があった.すなわち,システム開発全体に対してのリスクを管理しにくいという点 が,スパイラルモデルの問題点として指摘されていた. 2 3 DFD →構造図 できるだけ現実のプログラム処理に近づけ,構造図からプログラムを作成することを容易にする ため. 4 UML の記述 1. クラス図で表す. 3 2. シーケンス図で表す. 3. クラス図で表す. 4 4. アクティビティ図で表す. 5 参考文献 http://sel.ist.osaka-u.ac.jp/people/inoue/prog-sekkei2001/ ここに,井上さんのソフトウェア設計の 2001 年度の授業の資料が落ちている.ちなみにこれは, ソフトウェア設計入門 (井上克郎著) とほぼ同じである. 5