ソフトウェア構成論(前期2単位)

教授 大久保 隆夫

1.授業のねらい

システムをサイバー攻撃から守るため、脆弱性のない安全なシステム構築が求められる。そのための知識はユーザ側、開発側双方に必要となる。
本授業では、セキュアなソフトウェアを構築するために前提となる、ソフトウェア開発手法を学ぶ。
本授業では、主に、オブジェクト指向モデルに基づいた最新のソフトウェア開発手法を取り上げ、ユーザ側、開発側双方の観点でセキュリティ対策をソフトウェアの面から考えるための基礎について学ぶ。
オブジェクト指向による開発の理解を深めるため、一部、UMLを用いた分析、設計手法やeclipseによるJava言語プログラミングの実習を行う。

2.到達目標

ソフトウェア開発に必要なプロセス(ライフサイクル)と、 プロセスの各工程(要求分析、設計、プログラミング、テスト)において必要な作業とそのための技術について理解する。
また、オブジェクト指向開発の概念とそれを実践するための設計記法(UML)、プログラミング(Java)について、ある程度使えるようになる。

3.授業計画(各回毎の内容)と開講形態

第1回~第5回および第11回~第15回は、教室、オンラインによるハイフレックス開催とする。 第6回~第10回は、実習のため、教室のみでの開催とする。

 第1回 ソフトウェア構成論概要 
 第2回 ソフトウェア開発のプロセスモデル 
  (1)ウォータフォールモデル 
  (2)プロトタイピングモデル 
  (3)スパイラルモデル
  (4)アジャイル開発
  (5)DevOps
 第3回 要求分析
 第4回 設計
 第5回 オブジェクト指向による開発
     オブジェクト指向の概念
 第6-7回 UMLによる分析・設計(実習を含む) 
 第8-10回 Java言語 (プログラミング実習を含む)
 第11回 パターン、Dependency Injection
 第12回 テスト、検証
 第13回 プロジェクトマネジメント
 第14-15回 ソフトウェア開発とセキュリティ
  (1)セキュリティ・バイ・デザインのライフサイクル
  (2)Common Criterial(ISO IEC15408)
  (3)セキュリティ要求分析
  (4)脅威分析
  (5)セキュリティパターン
  (6)セキュリティテスト

4.教科書

特に指定しない。

5.参考書

ロジャー S. プレスマン著 「実践ソフトウェアエンジニアリング」 日科技連 2009年
ジョゼフ・オニール著 「独習JAVA」 翔泳社 2008年
E.ガンマ他著 「デザインパターン」改訂版 ソフトバンク 1999年
バリー・ベナム、リチャード・ターナー 「アジャイルと規律」 日経BP社 2004年
マーチン・ファウラー著「UMLモデリングのエッセンス」第3版 翔泳社 2005年

6.関連科目

次の科目を履修済み、または同時に履修することが望ましい。
プログラミング、セキュアシステム構成論

7.成績評価の方法と基準

毎回の小テスト(40)、中間、期末レポート(40%)、実習の成果(20%)から総合的に評価する。

8.その他

小テストには、Google Classroomを用いる。また、演習は各自のPC;(WIndows推奨)を用いる。PCは毎回持参のこと。