SWECCによるソフトウェアエンジニアリングのための認定基準(9/25/98改訂) Accreditation Criteria for Software Engineering (revised 9/25/98) By Software Engineering Coordinating Committee (SWECC) まえがき (1)認定されたプログラムを卒業する学生は、適正な品質保証技法または方法論を用いて、 ソフトウェアシステムを分析、設計、検証(verify)、確認(validate)、実現(implement)、及 び保守(maintain)する能力(ability)をもっていることを、証拠によって明らかに (demonstrate)しなければならない。 (2)さらに、認定されたプログラムを卒業する学生は、ソフトウェア開発にあたって、適切 なプロセス、モデル、計量尺度(metrics)を理解し、利用できなければならない。 (3)さらに、認定されたプログラムを卒業する学生は、典型的なソフトウェア開発環境で通 用するような、十分なチーム活動能力とコミュニケーション能力を所有しなければならな い。 以下に述べる要求事項は、これら目的に合致する学生を育成するためのソフトウェアエ ンジニアリングプログラムの仕様(specification)を与えるものである。 教員に対する要求事項 (1)プログラムの品質は学部の教授団に依存する。学生が、当該プログラムを、時宜を 得て卒業できるために必要なコースを提供し、学生、および学生のチームに方向付け (direction)と指導(guidance)を十分に提供できる教員を具えなければならない。 (2)個々のコースだけでなく、当該プログラム全体を通して監督するのに充分な数の常 勤教員がいなければならない。(訳者注:教育機関がプログラムを実施し、プログラムの なかに、複数のコースがあり、そのなかに授業科目がある。)  (3)教員の担当分野(interest)と資質(qualification)は、必要なコースを教えるために十 分であり、かつ、カリキュラムを企画したり、改良したりすることに対しても十分でな ければならない。  (4)教員は、ソフトウェア実業人(practitioner)と効果的に交流できなければならない。  (5)ソフトウェアエンジニアリングコースの中核部の教育を担当する教員は、ソフトウ ェアエンジニアリングに関する、きちんとした(架空でない:substantial)実務経験 (practical experience)を有していなければならない。  (6)教育上の負荷は適度なものであり、「当該プログラムの目的」、及び「研究と専門上 の発展に対する所属教育機関の期待」に対して矛盾しないものでなければならない。さ らに、教育上の負荷は、相当量のプロジェクトや実験室作業を必要とする他の学問分野 の場合と同程度でなければならない。  (7)教員の、学者として、教育者として、またソフトウェア実務者としての職業的成長 と発展を保証する(insure)機構(mechanism)が存在しなければならない。 カリキュラム (1) ソフトウェアエンジニアリングは、コンピュータを基礎とするシステムに関する、 ソフトウェアの理論(theory)、技術(technology)、実践(practice)、及び応用 (application)を包含(encompass)する。カリキュラムの中心課題は、学生が、ソフ トウェア開発、及びシステム開発において、プロセス、モデル、及び計量尺度を定 義し、利用することができるようになるために役立つ体系的訓練(discipline)を付与 することにある。 (2) カリキュラムは、技術上の必須科目と一般教育の必須および選択科目を統合し、学 生が、この分野における職業経歴に参加できるため、その後の学習を進めるため、 及び近代社会で役立つようになるための準備を与えるものでなければならない。 (3) 当該プログラムは、ソフトウェアエンジニアリング部分、コンピュータサイエンス 及びコンピュータエンジニアリング部分、適切な関連周辺分野(supporting area) に関する部分、及び高度教育部分、の4部分をほぼ均等に含んでいなければならな い。これとは別に、当該教育機関が固有に定める必須科目や選択科目があるとする。 これらすべてを含む全カリキュラムのなかで、当該プログラムが含む、上記4部分 の占める割合は、全体のほぼ4分の3に達しなければならない。 (4) 当該プログラムのなかのソフトウェアエンジニアリングに関する部分では、大規模 システムの開発、及び保守に必要なプロセス、及び技法(techniques)をカバーして いなければならない。 (5) コースでは、要求分析;ソフトウェアアーキテクチャ及び設計;試験及び品質保証; ソフトウェア管理;ソフトウェアツール及びソフトウェアコンポーネントの選択と 利用;コンピュータと人との対話(interaction);保守と文書作成、を扱わねばなら ない。さらに、充実した設計作業が含まれ、学生は、様々なプログラミング言語、 及びシステムに曝されなければならない。 (6) 当該プログラムでは、倫理、社会、法律、経済、安全に関する事項を含む、技術的 責任性、及び実践を重要視した教育を行わなければならない。これらはさらに、上 級演習で補強されなければならない。またソフトウェアエンジニアリング標準の使 用についても、同様に補強されなければならない。 (7) 学生は、プロジェクト計画、及び資源管理などの局面で、技術的、経済的意思決定 ができるような方法を学ばねばならない。さらに、学生は、生涯学習に対する必要 性を理解し、それに参加できる能力をもつようにならねばならない。 (8) プログラムのなかのコンピュータサイエンス及びコンピュータエンジニアリング の部分には、アルゴリズム及びデ−タ構造、コンピュータアーキテクチャ、データ ベース、プログラミング言語、オペレーティングシステム、及びネットワークを含 まなければならない。これら科目におけるコンピュータサイエンスの原理 (principle)は、すべて統合され、上級のソフトウェアエンジニアリングコースのな かで応用されなければならない。 (9) 当該プログラムのなかの関連周辺分野に関する部分には、チームを組んで作業する 能力を含むコミュニケーション(口頭、筆記、聞き取り)、離散数学、確率及び統 計を中心とした数学が含まれなければならない. (10) 当該プログラムのなかの高度教育部分は、ひとつ、または複数の分野をさらに深 く掘り下げて、プログラムの目的を達成するように仕組まれなければならない。そ こには上に挙げたようなソフトウェアエンジニアリング、またはコンピュータサイ エンス分野に関する科目の学習をさらに深めるものがあってもよく、また理論や技 術に関係した周辺分野での作業を行うものがあってもよい。さらに、ひとつかそれ 以上の特徴ある応用領域(domain)での作業は必ず含まなければならない。選ばれた 応用分野によっては、関連分野、たとえば数学やサイエンスにおける作業をさらに 補う必要が生じる。 (11) 当該プログラムは、学生が、ソフトウェア開発、及び保守に関するすべての視点 に対応でき、かつ、実際的(realistic)チーム環境における体験をもつように計画さ れなければならない。この思想は、プログラム全体に浸透していなければならない。 したがって、カリキュラムのもつ局面を統合するような、有意義なプロジェクトを 含む必要がある。 演習・実験室及び計算設備  (1)当該プログラムは、授業、プロジェクトにおける個人作業、及びチームプロジェク ト作業を遂行するために実質的に役立つ演習・実験室(laboratory)、及び計算設備の存在 を要求しなければならない。計算設備は、通常、ワークステーション、通信設備、大量 データの記憶管理設備、及び印刷設備など、計算設備の混成から構成される。すべての 学生に対して、それぞれのコースで用いるシステムに対して、適切、かつ合理的にアク セスするために十分であり、さらに他の学生や教員とコミュニケートするためにも十分 な設備を利用可能にしなければならない。  (2)教員の作業を支えるために十分な設備が存在しなければならない。  (3)様々なプログラミング言語、オペレーティングシステム、及びデータベースシステ ムへのアクセスに加えて、様々なソフトウェア開発業務を支援する商用ツールへのアク セスができるようにすることが必須である。このような資源に学生がアクセスすること を保証するために必要な、権利問題に対する適切な処理を行わねばならない。  (4)コンピュータ、及び利用を許諾されたソフトウェアを収容するソフトウェア演習・ 実験室に加えて、チームプロジェクトを実施するために必要な会議室を備える必要があ る。  (5)ハードウェア保守、プログラミング及びソフトウェア保守、システム管理、文書に 関する問題、教育のための訓練、など、様々なレベルでの支援サービスを用意する必要 がある。当該プログラムに専任する支援スタッフの数は、宣言されたそのプログラムの 目的に矛盾しないものでなければならない。演習・実験室のもつべき機能に関する計画、 すなわち、ハードウェア、及びソフトウェア開発、物品購入、管理、及び保守に関する 計画が存在しなければならない。 学生  (1)当該プログラムの品質は、教員、及び教育機関の設備の品質とともに学生の品質に 依存している。そのプログラムを卒業する学生が、プログラムの要求、及び目的を満た し、ソフトウェア実務者(software practitioners)として効率的に機能するに必要な資格を 備えていることを証明するための標準(standards)、及び手順(procedures)が確立されて いなければならない。これに加えて、当該プログラムに所属する学生の数が充分あって、 実際的(realistic)なプロジェクトや作業(activities)を含めることが可能でなければならな い。    (2)学生が前進する(progress)ことを容易にし、かつ、前進を観察する(monitor)ことは、 教員の責任において行われなければならない。教育機関の使命(mission)、及び当該プロ グラムの目的に合致した、適切な計量尺度の存在によって、学生が合理的な時間幅のな かで、プログラムを完了できるように指導し、かつ、プログラムの目的を学生が達成し たことを評価できるようにしなければならない。 教育機関の役割  A.当該教育機関の構造、財政策、及び教育に対する機関としての理念によって、認 定されたプログラムは、その品質を保持することが保証されなければならない。このた めには、教育機関としては、つぎのような分野で支援することがきわめて重要である。 A1. 教員に対する支援  教員の獲得、及び維持に関して影響をもつ因子に注意しなければならない。有給研究 休暇(sabbatical)、及びそれに類した一時休暇、無理のない教育負荷、競争力のある給与 は、高い品質を具えた教員を惹きつけ、留め置くために必要な重要な因子である。教員 が、教育者、学者、及び実践者としての適性を維持するに必要な頻度において、国家的 な技術会議に出席するために十分な支援を行う必要がある。また、教員の、学者として の活動を支援し、認知する必要がある。教員の経営に対する助言者的機能も認知し、経 営的な支援を与えることも必要である。 A2. 経営  当該プログラムの実施には、事務機構(administration)のすべてのレベルが関係をもつ。 教育機関である大学(college/school)のレベル、及び当該プログラムの経営を担当する単位 組織レベルによる、前向きで、かつ建設的なリーダシップがプログラムの品質を維持す るためにきわめて重要である。当該プログラムの経営には、適切な時間が割り当てられ ていなければならない。上級の経営レベルでは、当該プログラムが、教育機関内の他の 組織と効率的に作用するために必要な資源や風土(atmosphere)をそのプログラムに提供 しなければならない。 A3. 図書館  ソフトウェアエンジニアリングプログラムの学生、及び教員に対しては、伝統的な図 書収集術、またはインターネットによって必要な材料を発見する能力をもった職業的情 報専門職の支援を利用可能とし、それによって適切なメディア資源へのアクセスを保有 できる便宜を与えねばならない。技術的な収集は、最新の教科書(texts)、辞典類(reference works)、当該プログラムに関係する職業組織、及び研究組織が発行する出版物、たとえ ば会議予稿集、ニュースレター、技術報告、及び商用公開図書などをカバーしなければ ならない。 A4. 支援サービス  教育機関は、ワードプロセサや複写機など、近代的なオフィス機器を備えていなけれ ばならない。また、当該プログラムのもつ性質(type)、学問的、実践的活動のレベルに合 致した事務支援を与えなければならない。 B.プログラムの有効性に対する査定  当該プログラムの有効性(effectiveness)は、定期的に評価されなければならない。この 評価は、文書化されねばならない。プログラムの改良が行われる場合には、この作業に よって得られる情報はきわめて重要である。正式の評価機構(たとえば、実業に携わっ ているソフトウェア実務者から構成されるアドバイザリボードとプログラムに関係する 教員との定期的会合)の存在は、プログラムの経営の一部であるべきである。有効度評 価尺度には、学生の就職活動経緯の観測、及び学生が就職した後の発展の追跡を含まね ばならない。