プログラム設計

担当教員

授業の到達目標及びテーマ

 プログラム設計の基本概念を理解した上で、教えた様々な設計技術を具体的なプログラムの設計に適用できること。

授業の概要と方法

 本授業では、プログラム設計の基本概念を含め、設計プロセス、設計原理、設計方法、設計言語、および設計から実装への変換技術などの知識を教える。特に、構造化設計とオブジェクト指向設計の方法を講義しながら、それらの長所と短所を明確にする。  The objective of this course is to introduce the fundamental principles, methods, and techniques for program design. After a brief description of program design process, several principles and methods for design will be introduced. In particular, structured methods, object-oriented methods, and their combination are the center of the teaching material. Several specific and commonly used design representations will be provided with examples to explain how they can be applied in practice.

授業計画

テーマ内容
1 プログラム設計とプロセス(The process of program design ) プログラム設計の意味、目標、段階、およびソフトウェア開発プロセス中の位置づけについて説明します。
2 ソフトウェア品質(Software qualities achievable by design ) プログラムの様々な品質の意味を議論します。例えば、信頼性、効率、有用性、保守性、読みやすさ、再利用性、健壮性などについて説明します。
3 設計原理(Design principles ) 良く使われるプログラム設計の基本原理、例えば、抽象と分解、カプセル化と情報隠蔽、モジュール化などを論議します。
4 設計方法の紹介(Introduction to design methods ) 良く使われるプログラム設計方法の主なアイデアを紹介します。これらはの方法は、次のものを含めます。 トップ ダウン設計、ボトム アップ設計、モジュール式の設計、構造化設計、オブジェクト指向設計、および部品に基づく設計。
5 データフロー設計の紹介(Data flow design ) データフロー設計の基本概念、データフロー図の基本コンポーネントとするプロセス、データフロー、データストア、およびターミネーターを紹介します。
6 階層的データフロー図(Hierarchical DFD) プロセスの分解および分解の一致性条件を事例で説明します。
7 データ辞書(Data dictionary ) データ辞書の意味、役割、およびデータ項目の定義言語などを説明します。
8 プロセス仕様(process specification ) プロセス仕様の意味、役割、およびプロセス仕様を記述する三つの仕組を紹介します。その三つの仕組は、「事前条件と事後条件」、「構造化英語」、および「意思決定表」です。
9 コントロール設計の構造図とJackson図(structure chart and Jackson diagram) コントロール設計表現の中で良く使われる構造図とJackson図の仕組を紹介します。
10 生産ルール言語(Production Rule Notation) 実用性が一番高い構造化設計の生産ルール言語を紹介します。操作のインタフェース、本体の定義、および操作の適用仕組などを論議します。
11 フローチャットとN - S図(Flowchart and N-S diagram) フローチャットとそれを改善されたN - S図を紹介します。これらの表現方法は、詳細設計に良くつかわれる。
12 データ構造の設計(Data structure design) データ構造の設計について論議します。内容は、データ構造の宣言、変数の使いかた、およびデータ構造とアルゴリズムとの関係を含めます。
13 データフロー設計からプログラムへの変換(Transformation from dataflow design to program) データフロー図で表す設計からプログラムへの変換について説明します。最初に、一つの出力だけを持つプロセスしか含まないデータフロー図からプログラムへの変換仕方を説明、次は一般のデータフロー図からプログラムへの変換技術を論議します。
14 オブジェクト指向設計言語UMLの紹介(Introduction to object-oriented design language UML) オブジェクト指向設計の意味、構造化設計との違い、およびオブジェクト指向設計の表現言語UMLを説明します。
15 クラス、オブジェクト、クラス図など(Class, object, and class diagram etc.) UMLでオブジェクト指向設計の様々な概念の表現仕組を説明します。例えば、クラス、オブジェクト、クラス図、オブジェクト間お関係など。

授業外に行うべき学習活動

宿題

テキスト

授業資料

参考書

1.“Program Design”, Peter Juliff, Third Edition, Prentice-Hall Inc., 1990 2.“Software Design”, David Budgen, Addison-Wesley, 1994. 3.“Formal Engineering for Industrial Software Development”, Shaoying Liu, Springer-Verlag, 2004, ISBN 3-540-20602-7.

成績評価基準

 出席: 20%  期末試験: 80%

情報機器使用

 PCとプロジェクタ

前年度の授業改善アンケートからの気づき

 より小さい練習問題を通じて、教えた設計方法を学生らに深く勉強してもらう。

その他

Preview contents, come to lectures, listen carefully, review contents, complete homework, and raise questions.