2013年2月15日金曜日

シラバスに込められた思い〜ソフトウェア工学概論(2013)

ソフトウェア工学概論は,大学院博士前期課程の授業です。
新カリキュラムとなる2013年度に大幅リニューアルします。リニューアルの方針として,能動的・自律的に深く学べる能力の育成という目標を掲げました。そのためのアプローチとして,反転授業の考え方を取り入れ,独自のアレンジを加えています。


もし,ご意見・ご感想などあれば,ぜひ右下の MessageLeaf にお寄せください。授業改善に役立てたいと思っています。


授業の進め方

Part I では,到達目標1,2に対する内容を学習します。Part I の各トピックは次のように構成されます。

  1. メタファー: 教員が各トピックの概要と,ガイドとなる「たとえ(メタファー)」を紹介します。このたとえは,たとえ学生がソフトウェア開発経験が浅くとも,ソフトウェア工学上の重要なトピックを身近でわかりやすいように設計されています。
  2. 要約: 学生は教科書を予習して各トピックの要約もしくはトピック中のキーワードに関する紹介記事を記述します。要約はできるだけ短く,紹介記事は少し長くてもいいです。これにより学生の意識を「教師から教わる」から「自分で学ぶ」ように変えることを狙っています。学生は毎週,要約・解説記事を提出します。
  3. クエッション: また学生は調査の過程で生じた疑問点(リサーチクエッション)も記述します。リサーチクエッションは必ずしも高度でなくともいいです。むしろ素朴な疑問のほうが本質を捉えているものです。Part II でリサーチクエッションについて学習を進めます。それにより学生が深く学ぶことを狙っています。学生は毎週リサーチクエッションを提出します。
  4. ガイド: 教員が学生によって提出されたリサーチクエッションについて,学生がさらなる調査をする上でのヒントを提示します。Part II ではこのヒントを活用して学習を進めます。


Part II では,到達目標3に対する内容を学習します。

  1. 振り返り(1) : 学生は Part I で提出したリサーチクエッションの中から2つに絞り,表明します(学生はあとで選んだリサーチクエッションをそれぞれ発表します)。教員が各リサーチクエッションの発表日を割り当てます。
  2. 予習: 学生はリサーチクエッションについてポスターを作成します。
  3. プレゼンテーション: 学生は Part II の期間中に2回ポスター発表を行います。教員と発表当番ではない学生は,ポスターについて議論をします。
  4. 復習: 発表をした学生は2つのレポートを提出します。(1) 発表内容や質問,議論を総括したレポートと(2)リサーチクエッションについて解説する記事を書いたレポートです。
  5. 振り返り(2): 授業全体を総括します。



授業の概要(ねらい,テーマなど)



ソフトウェア工学は,ソフトウェア開発の理論と実践の両面の知恵を結集した知識体系です。実際のソフトウェア開発ではプログラミングだけでなく様々な作業を行います。この授業では,ソフトウェア開発がどのように行われているか概観します。
大学院生ともなれば,能動的・自律的に深く学べる能力を身につけることが欠かせません。この授業では,ソフトウェア工学を学ぶことを通して,能動的・自律的な深い学びかたを習得します。技術は急速に進化するので知識は陳腐化していく運命にありますが,だからこそ,技術ではなく技術の学び方を学ぶことが強く求められます。この経験は,大学院での研究活動におおいに役立つことでしょう。

到達目標


  1. 与えられたソフトウェア工学関連トピックについて,教員と教科書の助けを得ながら,自分の言葉で要約や解説を記述できる。

  2. 与えられたソフトウェア工学関連トピックについて,自分の言葉でリサーチクエッションを記述できる。

  3. 到達目標 2 のリサーチクエッションについて,教員の助けを得ながら,独自に調査してプレゼンテーションと解説記事を記述できる。
学位授与方針との関連
  1. 知識・理解
    1. ソフトウェア工学関連の概念・用語等の基礎知識を自分の言葉で説明できる。(到達目標1, 3)
  2. 技能
    1. ソフトウェア工学関連トピックについて,体系立てた方法で調査できる。(到達目標1, 3)

  3. 思考・判断・表現
    1. ソフトウェア工学関連のリサーチクエッションを独自に立てられる。(到達目標2)

    2. ソフトウェア工学関連トピックを調査する適切な方法を判断できる。(到達目標1, 3)

    3. ソフトウェア工学関連トピックを自分の言葉で表現できる。(到達目標1, 3)

  4. 関心・意欲・態度 
    1. 自らの関心・意欲に基づいて課題を設定し調査する態度を身につける。(到達目標2, 3)

教科書
ソフトウェア工学〜理論と実践 シャリ・ローレンス・プリーガー著 堀内泰輔訳 ピアソン・エデュケーション
Software Engineering: Theory and Practice, Shari Lawrence Pfleeger, Pearson Education.

参考書
主要な参考書を掲載します。学生の興味に応じて授業中にも紹介します。

実践ソフトウェアエンジニアリング〜ソフトウェアプロフェッショナルのための基本知識 ロジャー・プレスマン著 西康晴ほか監訳 日科技連出版社
Software Engineering: A Practitioner’s Approach. Roger Pressman. McGraw-Hill.

ソフトウェアエンジニアリング基礎知識体系-SWEBOK2004 松本吉弘訳 オーム社
SWBOK. IEEE Computer Society. available at http://www.computer.org/portal/web/swebok/home 

ソフトウェア開発201の鉄則 アラン・デービス著 松原友夫訳 日経BP社
201 Principles of Software Development. Alan M. Davis. IEEE Computer Society.

The Essence of Software Engineering: Applying the SEMAT Kernel. Ivar Jacobson et al. Addison-Wesley.

授業計画・内容 
私たちは,ソフトウェア開発経験の浅い学生の能動的・自律的な深い学びを促進することを狙って,この授業を設計しました。
授業は2部構成です。

Part I (概要の学習)
1.ガイダンス
2. 概論
3. プログラミング (1)
4. システム設計 (1)
5. 要求開発 (1) 
6. ソフトウェアテスト (1) 
7. プロセスのモデル化とライフサイクル (1)
8. プロジェクトの計画と管理 (1)  

Part II (ポスター発表)
9. 振り返り (1) 
10. 要求開発 (2)
11. システム設計 (2)
12. プログラミング (2),ソフトウェアテスト (2)
13.  プロセスのモデル化とライフサイクル (2) 
14. プロジェクトの計画と管理 (2) 
15. 振り返り (2)

2013年度は大幅な授業改善を行う予定です。Part I 第1回のガイダンスと Part II 第9回の振り返り(1)でのアナウンスに注意してください。

成績評価の方法
到達目標ごとの成績評価
到達目標1: 各トピックの要約もしくはトピック中のキーワードの解説を記述したレポート(Part I の毎週): 30%
到達目標2: 各トピックのリサーチクエッションとその動機を記述したレポート(Part I の毎週): 20%
到達目標3: リサーチクエッションについて調査したポスター発表(2回): 20%
     ポスター発表での議論の総括を記述したレポート(2回): 10%
     リサーチクエッションの研究成果の解説を記述したレポート(2回): 20%

授業に対する準備事項
学生は授業時間中の学習だけでなく予習・復習を多く行う必要があります。ただし,最低限どのような予習・復習をすべきかについては,教員がガイダンスならびに授業中に明示します。


少なくとも次のような予習を行う必要があります。
Part I
-トピックの要約,もしくはトピック中のキーワードの解説 (毎週)
-トピックのリサーチクエッションとその動機 (毎週)
Part II
- ポスター (2回)

少なくとも次のような復習を行う必要があります。
Part II
- ポスター発表での議論の総括 (2回)
- リサーチクエッションの解説 (2回)

履修上の注意
プログラミングなどのソフトウェア開発をした経験があるか,卒業研究などのプロジェクト活動を行った経験があることを前提としています。どちらも経験ない場合には補習をしますので,学期が始まる前に担当教員に相談してください。
授業中に日本語によるプレゼンテーションを行います。必要な日本語能力がない場合には,学期が始まる前に担当教員に相談してください。

担当者からのメッセージ
2013年度には「反転授業」という新しい授業スタイルを取り入れる,大きなリニューアルを予定しています。
反転授業でいう「反転」は,授業と課外学習の役割を反転させることを指します。普通の授業では,授業時間中に知識を吸収し,課外学習で応用問題の宿題を行います。しかし,反転授業では,知識吸収を自習教材で予習時間中に済ませてしまいます。代わりに教員と学生が一堂に会する授業時間を有効活用して,応用問題を扱うグループワークや質問に対するフォローアップなどを行います。こうすることで,さらなる授業の学習効果の向上を狙っています。
この授業では,担当教員の長年のソフトウェア工学の教育実践研究の成果を踏まえ,反転授業を独自にアレンジして取り入れています。この授業の設計にあたって最も重要な点は,くり返しになりますが,ソフトウェア工学に対する学生の自発的な問いに沿った深い学びのプロセスを促進することです。これを強化することで学生が卒業した後も自分の力で新たな知識を習得できることを狙っています。ソフトウェア分野は技術の多くが急速に陳腐化してしまうので,単に知識を習得できるだけでは不十分です。知識の習得のしかたそのものを学ぶ必要があるのです。

キーワード
ソフトウェア工学,ソフトウェア開発,プログラミング,設計,要求開発,ソフトウェアテスト,ソフトウェアプロセスモデル,ソフトウェアライフサイクル,プロジェクト計画,プロジェクト管理
Software engineering,  software development, programming, software design, requirements engineering, software testing, software process model, software life cycle, software project planning, software project management