内容要旨 | | 建築構造設計という活動は,地震力や風力といった自然現象を外力条件とし,また単品生産を基本とすること等から,設計者の様々な場面における判断と思考の積み重ねが要求される活動であり,正に典型的な人間の知的活動と呼ぶにふさわしい総合的な営みとして捉えられる。そして,近年のコンピュータ利用技術の急激な発展に伴い,それをコンピュータにより支援しようとする試みもまた本格化しており,ますます重要度を増しつつあるのが現状である。 しかし,建築構造設計支援プログラムは本来設計者が持つ様々な要求に対し柔軟に対応し得るものでなければならないが,既存の構造設計支援プログラムの多くは,従来形の手続き的なプログラム方式で記述されており,その意味では固定的で融通性に欠けるものがほとんどである。それで,筆者は長年に亘り建築構造設計という活動を真に支援するコンピュータプログラムとはいかにあるべきかという事柄について,研究し考察を進めてきたものであるが,その成果としてFACT法と呼ぶ従来形の手続き的なプログラム方式とは根本的に異なる新しいプログラム開発方式を考案したので,それを建築構造設計支援プログラムに適用することを提案するものである。 近年の建築物の大規模化,複雑化及び耐震性等に関する要求の多様化に伴い,建築構造設計支援プログラムは近年益々大規模かつ複雑化しており,プログラムの機能も高度かつ多様なものと成りつつある。この様な高度かつ多様な機能を保有するプログラムを構造設計者が自由に使いこなす為には,極めて柔軟な操作性が要求されるものと考えられる。特に,建築構造設計支援プログラムの処理過程は,並列的でかつ多岐に亘り,個々の解析には多大な時間を要するものも少なくない。従って一連の処理過程の中で,利用者は入力データの変更に対し,必要最小限の処理を選択して実行することを望むことになるが,その選択をプログラムの利用者の判断にまかせる事は,構造設計支援プログラムの複雑さから考えれば問題がある。従って利用者の入力データの変更に対し,実行が必要な処理の選択をコンピュータが自動的に行う事が望ましい解決方法と考えられるが,以上述べたような入出力データの首尾一貫性の保証を要求する問題を,技術計算分野で通常使用される従来型の手続き的なプログラム方式で実現することには,基本的に限界がある。 一方,以上述べたような問題を克服する可能性秘めたプログラム開発方法論として,「構造化手法」や「オブジェクト指向」等が考えられるが,「構造化手法」は最終的には従来型の手続き的なプログラム言語で記述するという点で限界があり,また,オブジェクト指向についても,基本的には従来のプログラム方式と同様の命令的方法であり,さらには今日までの膨大なFORTRAN言語によるプログラム資産をオブジェクト指向言語に書き直す必要が生じ,根本的な問題解決の方法とはならない。 従って,上記の問題の解決のためには,既存の方式に解決の手段を求めるのではなくて,既存の方式の利点を統合した新しい方式を導入することが是非とも必要と考えられる。本論文の主要テーマであるFACT法は,以上のような観点に基づいて考案したものであって,その概要は以下である。 即ち,FACT法でプログラミングを行うためには「FACTメインプログラム」,「データ関数関連図」,「関数プログラム」の3つを作成することが必要である。 「FACTメインプログラム」は,プログラムの利用者の入力操作と出力要求のみを記述したプログラムであって,通常の手続き型のプログラム方式では必須と考えられる関数プログラムの起動のタイミングについては,一切記述する必要がない点がその特徴である。 「データ関数関連図」はプログラムが対象とする問題に内在する関係を図式的に表現したものであって,構造化手法におけるデータフローダイヤグラムとも類似の表現形式をとるものである。「データ関数関連図」の目的は,大規模かつ複雑なプログラムを入出力結合の少ない単純なモジュールに展開し,プログラム構造を明確に把握することを可能とすることにある。FACT法の「データ関数関連図」はそれ自身がドキュメントであると同時にプログラムとしても位置付けられる点が,その特徴として上げられる。 「関数プログラム」とは,データ関数関連図により単純なモジュールに展開された個々の機能を記述したサブルーチンプログラムの事であり,FORTRAN言語で記述される。 つまりFACT法は,プログラム構造を「データ関数関連図」により明確かつ厳密に規定することにより,個々のプログラム群については単純な機能から成り立つ独立のモジュールとして一まとめに管理する事を可能とし,一方データの入出力操作については「FACTメインプログラム」により,プログラム内部の個々の関数の起動の手順とは全く無関係に記述することを可能とした,従来の開発方法論とは根本的に異なるプログラム方式と見ることができる。そして,以上述べたような必要な関数の起動の手順の選択をコンピュータにまかせてしまう動作を実現するために,「矛盾解消機構」と呼ぶ独特の動作原理を導入したことが,FACT法の最大の特徴である。 以上よりFACT法の優位性を考察すれば,以下の2点が指摘できるであろう。 第1点としては,「データの首尾一貫性の保証」の問題を解決するにあたり,そのデータ間の首尾一貫性を保証する「関係」を定義するための表現形式として,簡明さと宣言性に特徴をもつ「データ関数関連図」と呼ぶわかりやすい図式表現を採用した点が上げられる。この表現形式は,建築構造設計のような人間の知的活動の持つ「構造」ともよく合致した表現形式となっており,プログラムの開発者や利用者に対し,プログラムの内容を理解するための負荷を大幅に軽減することにより,多くの利便性を提供することになる。 第2点としては,第1点で指摘した簡明で宣言的な表記法に対応して,宣言的表現のままで手続き的表現に変換することなく,プログラム実行を可能とする「矛盾解消機構」と呼ぶ独特の動作原理を導入した点が上げられる。「データ関数関連図」と「矛盾解消機構」を導入することにより,表記と動作の両面において統一的な概念に基づくプログラミングを実現した点が,従来のプログラム開発方式と根本的に異なるFACT法の最大の特徴である。 本論文の構成は以下の通りである。 第1章ではまず最初に、コンピュータ及びコンピュータ科学の発展の歴史を辿り、プログラム開発に大きな影響を及ぼした応用技術である「構造化手法」「オブジェクト指向」「人工知能」「CSCW(Conputer Suported Cooperative Works)」について,その基本的な考え方を分析,整理する。そして,これらコンピュータ科学の発展の成果が代表的な技術計算プログラムである建築構造設計支援プログラムに与えた影響を考察し,現在世の中で広く使われているプログラム開発手法が,技術計算分野における応用を考えた場合,どのような問題を抱えているかを明らかにする。 第2章では、本論文の主題であるコンピュータによる建築構造設計支援について、まず「創造的活動」としての建築構造設計の本質を明らかにし,引き続いて建築構造設計の特徴及び現状におけるその支援プログラムの問題点を明らかにする。さらにそれらを踏まえた場合の構造設計支援プログラムの要件として,「構造的把握の重要性」と,プログラムの品質要因の観点から導かれる「正確さ」「拡張性,再利用性」の重要性,及び「柔軟な操作性」「Fortran言語との親和性」の以上5点が特に重要であることを述べる。そして,それらの要件を満足させるためには,従来のプログラム開発方法論である,「構造化手法」や「オブジェクト指向」等のみでは困難であることを示す。そして,それら従来のプログラム開発方法論を統合することにより,筆者が考案したプログラム開発手法である「FACT法」の導入を提案する。 第3章では、第2章で提案した「FACT法」そのものの基本的な考え方と実現形態について、表記法と動作原理の観点から詳述し,従来のプログラム開発手法と比較した場合のその優位性を明確化する。 第4章では、第3章で示した「FACT法」の有効性を検証するために,「FACT法」を具体的な問題に当てはめた場合の応用事例を示す。具体的には、代表的な構造設計支援プログラムである構造一貫計算プログラムに「FACT法」を適用した場合の応用例と、振動解析プログラムの作成に「FACT法」を適用した場合の応用例を示す。 第5章では、第4章で示した応用事例を中心に「FACT法」が当初の目的通りに,真に構造設計者にとって有効な道具として機能しているかについて評価し,その問題点と将来の展望を述べる。 |