![]()  | 
    
| 科目一覧へ戻る | 2020/10/22 現在 | 
| 科目名(和文) /Course  | 
          ソフトウェア工学 | 
|---|---|
| 科目名(英文) /Course  | 
          Software Engineering | 
| 時間割コード /Registration Code  | 
          22147401 | 
| 学部(研究科) /Faculty  | 
          情報工学部 | 
| 学科(専攻) /Department  | 
          情報システム工学科 | 
| 担当教員(○:代表教員)
                             /Principle Instructor (○) and Instructors  | 
          ○横川 智教 | 
| オフィスアワー /Office Hour  | 
          
              横川 智教(1?2Q:火曜 4 限,3?4Q:火曜 3 限,場所:2504 *授業に関する質問は随時受け付けます. *急な会議?出張等のため不在にすることがあります.)  | 
        
| 開講年度 /Year of the Course  | 
          2020年度 | 
| 開講期間 /Term  | 
          第2クォーター | 
| 対象学生 /Eligible Students  | 
          3年次生 | 
| 単位数 /Credits  | 
          2.0 | 
| 更新日 /Date of renewal  | 
          2020/03/10 | 
|---|---|
| 使用言語 /Language of Instruction  | 
            日本語 | 
| オムニバス /Omnibus  | 
            該当なし | 
| 授業概略と目的 /Cource Description and Objectives  | 
            ソフトウェア工学とは「ソフトウェアの作成と利用に関連した概念を科学的に抽出体系化し,正しいソフトウェアを計画的かつ効率的に作成?利用するための理論と実践的技術」である.ソフトウェア工学はおよそソフトウェアの開発?利用に関わる問題を解決,改善することを目的としたものである.ソフトウェア開発に関わる問題は多岐にわたるが,それらの問題の多くはソフトウェアの特徴やソフトウェア開発のもつ構造上の問題に起因している.本講義では,ソフトウェア工学が扱うソフトウェア開発における様々な問題や,それを解決するための技術について概説する. | 
| 履修に必要な知識?能力?キーワード /Prerequisites and Keywords  | 
            履修に必要な知識?能力:「データ構造とアルゴリズム」「プログラム言語II」および「オブジェクト指向プログラミング」で学習する,ソフトウェアの構造化および抽象化に関する知識?技術. | 
| 履修上の注意 /Notes  | 
	    |
| 教科書 /Textbook(s)  | 
	    |
| 参考文献等 /References  | 
	    岸 知二,野田 夏子(著)「ソフトウェア工学」近代科学社 | 
| 自主学習ガイド /Expected Study Guide outside Coursework/Self-Directed Learning Other Than Coursework  | 
	    |
| 資格等に関する事項 /Attention Relating to Professional License  | 
	    |
| 備考 /Notes  | 
	    授業で配布した資料について,復習すること. | 
| No. | 単元(授業回数) /Unit (Lesson Number)  | 
          単元タイトルと概要 /Unit Title and Unit Description  | 
          時間外学習 /Preparation and Review  | 
          配付資料 /Handouts  | 
              
|---|---|---|---|---|
| 1 | 1 | [ソフトウェア工学とは] ソフトウェア工学は広範で多様な内容を含んでいる.個別の内容を講義する前に,ソフトウェア工学の位置づけや役割について説明を行う.  | 
                ||
| 2 | 2 | [ソフトウェア開発プロセス] ソフトウェア開発には様々な活動が含まれるが,それらの活動をどのように実施するかには,様々な考え方がある.ここでは,開発プロセスについて説明する.  | 
                ||
| 3 | 3?4 | [要求分析] ソフトウェア開発プロセスの出発点となる要求分析について,要求の種類,要求仕様書,要求分析における課題などについて説明する.  | 
                ||
| 4 | 5 | [演習] Web アプリケーションの開発を想定し,その開発におけるシナリオとプロトタイプの作成,並びにそれらのレビューを通じて要求分析を体験する.  | 
                ||
| 5 | 6?7 | [ソフトウェア設計] ソフトウェア開発プロセスの設計段階について,外部設計と内部設計,モジュール分割による段階的詳細化などについて説明する.  | 
                ||
| 6 | 8 | [プログラミング] ソフトウェアの実装について,書式と作法,リファクタリングなどについて説明する.  | 
                ||
| 7 | 9?10 | [演習] プログラムの改善を体験し,変数?関数の命名,インデント,コメント記述,リファクタリングの重要性を学ぶ.あわせて,他人によるコードレビューの重要性も体験?学習する.  | 
                ||
| 8 | 11?12 | [ソフトウェアテスト] ソフトウェアテストについて,テストの分類やテストケースの作成技術について説明する.  | 
                ||
| 9 | 13 | [保守?品質管理] ソフトウェアの保守?品質管理について説明する.  | 
                ||
| 10 | 14?15 | [演習] プログラムのテストを体験し,テストの重要性を学ぶ.あわせて,テストファーストによる開発も体験?学習する.  | 
                ||
| 11 | 16 | [期末試験] これまでの講義内容の理解度を確認する.  | 
                
| No. | 
                                到達目標 /Learning Goal  | 
                            
                                知識?理解 /Knowledge & Undestanding  | 
                            
                                技能?表現 /Skills & Expressions  | 
                            
                                思考?判断 /Thoughts & Decisions  | 
                            
                                伝達?コミュニケーション /Communication  | 
                            
                                協働 /Cooperative Attitude  | 
                            ||
|---|---|---|---|---|---|---|---|---|
| 1 | ソフトウェア工学の基礎であるソフトウェアモデリングや情報システムに関する知識を習得する. | ○ | ○ | |||||
| 2 | 要求分析,設計,実装,検証と妥当性確認といったソフトウェア開発プロセスについての知識を習得する. | ○ | ○ | |||||
| 3 | ソフトウェアの保守?進化と再利用,モデル駆動工学,形式手法などのソフトウェア開発を効率化する技術についての知識を習得する. | ○ | ○ | |||||
| 4 | プロジェクト管理における課題および解決方法についての知識を習得する. | ○ | ○ | 
| No. | 
                                到達目標 /Learning Goal  | 
                            
                                定期試験 /Exam.  | 
                            |||||
|---|---|---|---|---|---|---|---|
| 1 | ソフトウェア工学の基礎であるソフトウェアモデリングや情報システムに関する知識を習得する. | ○ | |||||
| 2 | 要求分析,設計,実装,検証と妥当性確認といったソフトウェア開発プロセスについての知識を習得する. | ○ | |||||
| 3 | ソフトウェアの保守?進化と再利用,モデル駆動工学,形式手法などのソフトウェア開発を効率化する技術についての知識を習得する. | ○ | |||||
| 4 | プロジェクト管理における課題および解決方法についての知識を習得する. | ○ | |||||
| 
                                評価割合(%) /Allocation of Marks  | 
                            100 | ||||||