シラバス検索システム
シラバス
科目名
ソフトウェア工学Ⅱ
開講期
春学期
開講学部等
コンピュータ理工学部
配当年次
3年次
単位数
2単位
教員名
青木 淳
※履修条件,配当年次等の詳細は履修要項をご確認ください。
授業概要/Course outline
ソフトウェアの開発・運用・保守に対して、理工学(科学と工学)的な手法や技法の応用を促す講義である。科学(サイエンス)で得られている知見をベースにして、実用的な手法や技法を発見し、工業的な生産活動や製品開発に応用する工学(エンジニアリング)の持ち味を、ソフトウェアに当てはめて解題してゆく。
常にソフトウェアの品質を測定する(メトリクスを施す)ことを意識しながら、要求を分析し、要求仕様を作り、開発すべきシステムの基本設計と詳細設計のやり方、プログラミングとテストの仕方の手解きを行う。そして、開発・運用・保守に介在している現状の問題点を明らかにする。また、プログラミング言語に関する考現学としての側面も有する。
本科目を受講することで、実社会におけるソフトウェアの開発・運用・保守の活動に必要な事柄を一通りバランス良く習得することが講義の目的である。また、将来の職務(技術職・企画職・営業職・事務職などの職種を問わず)において、コンピュータを活用しながら業務の効率化や改善の役割を担う人になるための知識と技能を授けることも目的である。
授業内容・授業計画/Course description・plan
次にあげる項目を「まず、やってみる、それから、学ぶ」をライトモチーフにしながら進めてゆく。
[第01回]14本の柱(コンピュータ科学のための教科課程)
[第02回]ひとりじゃないって(分割コンパイルとバージョン管理、複数人で成果物を共有するには)
[第03回]プロジェクトマネジメント(スコープ・タイム・コスト・クオリティ)
[第04回]コードリーディング(プログラムを読む)
[第05回]オブジェクト指向プログラミングの詳細(Javaを用いたプログラミングの実際)
[第06回]ソフトウェア開発プロセス(ソフトウェアを開発する過程とモデリングの図法の出現)
[第07回]構造化と抽象化(プログラミングにおけるソフトウェア工学的視点)
[第08回]ソフトウェアの構造(UMLのクラス図(Class Diagram)による分析と設計)
[第09回]ソフトウェアの事態(UMLの状態遷移図(State Transition Diagram)による分析と設計)
[第10回]ソフトウェアの機能(UMLのユースケース図(Use Case Diagram)による分析と設計)
[第11回]オブジェクト指向分析設計(まとめ:構造・事態・機能)の実際
[第12回]デザインパターン(言語学や建築学からの提言)
[第13回]テスティング(V&V:Verification and Validation)
[第14回]メトリクス(品質を測定するための物差しや尺度)
[第15回]メタモデリング(メタ開発過程)
準備学習等(事前・事後学習)/Preparation and assignments
授業内容が実際のソフトウェアの開発・運用・保守の現場(ソフトウェアの企業)を想定している。そのため、学問的なことばかりではなく、人・物・金の絡みなども範疇に入り、たいへん多くのことに気を配らなければならない。事前に関係するところを調べて授業に臨み、その後、講義で学んだ知識を整理し、さらに理解を深めるため、授業中に指示されるレポートや課題に果敢に取り組んで、理解(りげ)から行解(ぎょうげ)に変えてほしい。配付する資料や作成するドキュメントの整頓も大切である。
授業の到達目標/Expected outcome
産業界で行われているソフトウェアの開発がプログラミングの工程だけで成立していないこと、その前後に分析・設計・テスト・運用・保守などの工程が存在し、プログラミングの工程よりも長く、さらに重要であることを知って、それらに対処できる知識と技能の獲得が到達目標である。動くプログラム(ソフトウェア)と正しいプログラム(ソフトウェア)の相異を知ることも重要である。
少なくとも、オブジェクト指向分析設計法を科学と工学の両面から会得し、UML(Unified Modeling Language)やデザインパターンを実際に駆使できるところをめざす。特別研究(卒業研究)やプロジェクト演習などで、ソフトウェア(プログラム)を実際に作成しなければならないときに役立つであろう。
身に付く力/Special abilities to be attained
論理的思考力(課題発見力,計画力,論理的分析力,総合的判断力)、実践力(働きかけ力,実行力,主体性)、そして、実社会の開発現場で役立つコンピュータ理工学(ソフトウェアの科学と工学の両方)の知識を身につけることができる。
履修上の注意/Special notes, cautions
システムエンジニア(SE)などのIT系の職種を希望している者の履修を強く勧める。2年次の秋学期の「ソフトウェア工学I」を引き継ぐ授業であるが、その取得(未取得)に関わらず、良いソフトウェアをめざす研究をしたい、効率的にコストをかけずに高品質のソフトウェアを開発したい・運用したい・保守したいと望む者の履修を勧める。
毎回、各自のコンピュータを持参し、必ずネットワークに接続して、授業が始まる前までに稼働状態にしておくこと。講義中に援用するツールやプログラムなどをダウンロードし、それらを用いて手を動かす場面も多い。
評価方法/Evaluation
定期試験は行わない。授業が手解き(ハンズオン:体験学習)を含む関係上、出席は大変に重要である。毎回のように授業中にレポートやプログラム、そして、分析図や設計図の提出を課す。これらを平常点(50%)とする。また小テストも複数回行い、それらの出来具合(50%)を加味し、総合的に評価する。
教 材/Text and materials
教科書:配付資料
参考書:玉井哲雄『ソフトウェア工学の基礎』(岩波書店,2004)
参考書:青木淳,浅岡浩子,澤本依里『Smalltalkで学ぶオブジェクト指向プログラミングの本質』(日経BP社,2008)
参照URL:http://www.cc.kyoto-su.ac.jp/~atsushi/
Copyright (C) 2013 Kyoto Sangyo University. All rights reserved.