2017年度工学院大学大学院・情報学専攻

ソフトウェア開発工学特論(Software Engineering)[2103]


2単位
位野木 万里 准教授  [ 教員業績  JP  EN ]
最終更新日 : 2018/12/19

<授業のねらい及び具体的な到達目標>
製品ソフトウェア開発において,生産性の向上,品質の安定化,開発リードタイムの短縮の実現のために,品質の保証されたソフトウェア成果物を再利用することは,一般的である.そこで,講義・解説,演習,調査・発表を通してソフトウェア開発において常套手段となっている「ソフトウェア再利用」を体験し,新しいアイデアを具現化する能力,すなわち,再利用力を身につけることを達成する.

In the development of product software, in order to improve productivity, stabilize quality, and shorten development lead times, the reuse of software artifacts with assured quality is a common approach. Thus, we will experience software reuse, which is becoming standard practice in software development, through lectures, exercises, studies, and presentations. In doing so, we will gain the ability to turn new ideas into reality; that is, the ability to reuse.

<授業計画及び準備学習>
以下の項目にそって,ソフトウェア開発において考えられる様々な再利用の形態(ドキュメント,設計モデル,プログラムなどの再利用)を体系立てて習得する.とくに,演習では「良い再利用」を体験する実習を行う.講義後半は,「良い再利用」を実現するための再利用資産の構築方法について,議論を中心とした演習を行う.

[第1回] 開発と再利用の全体像・導入演習
ソフトウェア再利用技術とは何か,有効性や留意点などについて概観する.ソフトウェアの再利用技術の有効性や留意点を実感するために,身近な題材を用いた導入演習を行う.
準備学習:事前に配布する解説資料([1][2])を熟読すること.オブジェクト指向技術,UMLの表記について復習してくること.

[第2回] ドキュメント(要求仕様)の再利用・演習
要求定義工程の開発プロセスと成果物について復習し,有効な再利用対象についてディスカッションする.自然言語で記述されただけの要求仕様書と,ユースケースモデルによる要求仕様書を対象として,どちらが有効な再利用となるかを比較する演習を行う.
準備学習:事前に配布する解説資料([3])を熟読すること.要求仕様書,ユースケース,機能仕様について復習してくること.

[第3回] ドキュメント(シナリオ)の再利用・演習
前回に引き続き,要求定義工程を対象とした再利用技術について解説する.ユースケースやシナリオの再利用が有効であることの確認と,シナリオを構成する要素をさらに詳細化してとらえることで,より有効な再利用が行えることを確認する.シナリオの再利用に関する演習を行う.
準備学習:第2回の演習の結果を復習すること.シナリオを再利用する際のアイデアを検討してくること.

[第4回] 設計(パターン)の再利用(1)・演習
基本設計工程の開発プロセスと成果物について復習し,有効な再利用対象についてディスカッションする.既存のクラス図やシーケンス図をそのまま流用することと,デザインパターンなどの設計の考え方に基づいたモデルの再利用の違いを,演習を通して体得する.
準備学習:事前に配布する解説資料([4])を熟読すること.基本設計書,クラス構造,クラス間相互作用について復習してくること.

[第5回] 設計(フレームワーク)の再利用(2)・演習
第4回のパターンの再利用に引き続き,さらに高度な設計の再利用について解説する.ここでは,設計のノウハウの集大成という意味での「フレームワーク」を取りあげて,フレームワークとはどのような設計のノウハウに該当するのかを,事例演習を通して確認する.
準備学習:事前に配布する解説資料([5])を熟読すること.さらに高度な再利用をするためにどのようなことが必要か考えてくること.

[第6回] 実装(アプリケーション)の再利用・演習
プログラム開発工程のプロセスと成果物を概観しながら,有効な再利用対象についてディスカッションする.コンポーネントを再利用して,別システムのアプリケーションを構築する再利用演習を通して,実装の再利用について理解を深める.
準備学習:事前に配布する解説資料([6])を熟読すること.第5回までの演習結果を復習し,どのような成果物が再利用によって構築できるのかを確認すること.これらを組み合わせると,どのような別製品の開発が可能かといったアイデアを整理してくること.

[第7回] システムの再利用(振返り)・演習
第6回までに習得した様々な再利用対象(ユースケース,シナリオ,クラス,パターン,フレームワーク,コンポーネント)と再利用方法を振り返り,ソフトウェア開発プロセス全体を通した再利用技術の考え方,有効性,留意点,課題について,演習を実施しながら,ディスカッションし,理解を深める.
準備学習:事前に配布する解説資料([7])を熟読すること.第6回までの演習結果を復習し,再利用対象,再利用のタイミング,再利用の方法に関して,自分なりにわかったことを整理してくること.

[第8回] 再利用の管理,高度な再利用
第7回までの再利用技術は,一部の工程や成果物に限定した再利用である.さらに飛躍的な生産性向上や品質安定化を達成するには,高度な再利用が必要であり,そのための実現技術であるプロダクトライン型の再利用いついて解説する.加えて,演習を通して,従来型の再利用と,プロダクトライン型の再利用の違いを理解する.
準備学習:事前に配布する解説資料([8])を熟読すること.プロダクトライン型の再利用とは何かについて,予習してくること.

[第9回] シリーズ製品開発のための再利用:総合演習
プロダクトライン型の再利用について深く理解するために,これまでとは異なるドメインを対象にした,プロダクトラインを再利用技術によって構築する総合演習を行う.演習を通じてディスカッションをしながら,高度な再利用を実践するための技術について理解を深める.
準備学習:これまでに配布した解説資料([1]〜[8])を復習し,プロダクトライン型の再利用の実践における課題について考えをまとめてくること.

[第10回] 「良い再利用」を実践するための再利用資産の開発演習(1):フィーチャーモデリング
プロダクトラインを構築する技術について,具体事例を選択し,グループ演習を通じてディスカッションをしながら理解を深める.プロダクトラインの製品特性を定義するフィーチャーモデリングを中心に演習を行う.
準備学習:事前に配布する資料(演習ガイド)を熟読すること.

[第11回] 「良い再利用」を実践するための再利用資産の開発演習(2):ユースケースモデリング,BAPOモデル
前回に引き続き,同じ題材,同じグループで,ユースケースモデリング,BAPOモデリングといわれるプロダクトラインの企画段階での成果物の作成を行う.各自のアイデアを再利用ベースで合理的に実現するための手法について,ディスカッションしながら理解を深めていく.
準備学習:前回の成果物(フィーチャーモデル)の改善と,ユースケースモデル,BAPOモデルの案を作成してくること.

[第12回] 再利用によるソフトウェア製品開発まとめ
様々な再利用技術を改めて復習し,再利用によるソフトウェア製品開発のあるべき姿について議論する.
準備学習:事前に配布する解説資料([9])を熟読のこと.

[第13回] 再利用によるソフトウェア製品開発:演習課題T,演習課題U
様々な再利用技術の理解の定着と確認のため,プロダクトラインを構築する演習課題T,再利用技術全体の振り返り課題Uを実施する.
準備学習:これまでに配布した解説資料([1]〜[9])を復習しておくこと.

[第14回] 学習内容の振り返り
準備学習:演習課題T,演習課題Uでの不明点を整理しておく.

In accordance with the units listed below, we will systematically study the various forms of reuse that pertain to software development (including the reuse of documents, design models, and programs). In particular, in exercises we will conduct hands-on practice in good reuse. In the second half of the lectures, we will conduct exercises, centering on discussions, regarding methods for creating reusable assets for the purpose of realizing good reuse.

[Unit 1] Overview of software development and reuse / Introductory exercises
An outline will be provided regarding issues including what software reuse techniques are, their applicability, and other points of note. In order to get a real feel for the applicability of software reuse techniques and related points to remember, we will do adoption exercises that involve familiar themes.
Preparation: Close reading of the explanatory materials ([1][2]) distributed in advance. Review of object-oriented techniques and UML notation.

[Unit 2] Reuse of documents (requirements specifications) / Exercises
We will review the development process and artifacts of requirements definition, and discuss valid targets for reuse. Taking requirements specification documents written in natural language and requirements specification documents by way of use case model as subjects, we will do exercises to compare the two and determine which one results in effective reuse.
Preparation: Close reading of the explanatory materials ([3]) distributed in advance. Review of requirements specification, use case modeling and functional specification.

[Unit 3] Reuse of documents (scenarios) / Exercises
Continuing on from the previous unit, there will be an explanation of reuse techniques, with the requirements definition process as a subject. By investigating the effectiveness of the reuse of use cases and scenarios, and understanding in even greater detail the factors involved in configuring scenarios, we will affirm the ability to reuse more effectively. We will do exercises relating to the reuse of scenarios.
Preparation: Review of Unit 2 exercise results. Consideration of ideas for scenario reuse.

[Unit 4] Reuse of designs (patterns) (1) / Exercises
We will review the development process and artifacts of preliminary design, and have discussions on valid targets for reuse. Through exercises, we will learn the differences between the reuse of unaltered class diagrams and sequence diagrams, and the reuse of models based on approaches to design including design patterns.
Preparation: Close reading of the explanatory materials ([4]) distributed in advance. Review of preliminary design specification, class and sequence models.

[Unit 5] Reuse of designs (frameworks) (2) / Exercises
Continuing on from Unit 4's pattern reuse, there will be an explanation regarding more advanced design reuse. Specifically, we will take up the issue of frameworks, in the sense of compilations of design know-how, and confirm through case-based exercises the types of design know-how to which frameworks apply.
Preparation: Close reading of the explanatory materials ([5]) distributed in advance. Consideration of ideas for more advanced reuse.

[Unit 6] Reuse of implementations (applications) / Exercises
Alongside an outline of program development processes and artifacts, we will have discussions regarding valid targets for reuse. Through reuse exercises in which components are reused to build applications for different systems, we will deepen our understanding of the reuse of implementations.
Preparation: Close reading of the explanatory materials ([6]) distributed in advance. Review of the previous exercise results. Consideration of ideas for the development of different systems based on the reuse.

[Unit 7] Reuse of systems (recap) / Exercise
We will reflect on the various targets for reuse (use cases, scenarios, classes, patterns, frameworks, components) and reuse methods that we have learned about up to Unit 6. While doing exercises on approaches to reuse techniques, their effectiveness, points to remember, and other issues throughout the entire software development process, we will have discussions and deepen our understanding.
Preparation: Close reading of the explanatory materials ([7]) distributed in advance. Review of the previous exercise results. Consideration of ideas for what, when and how to reuse.

[Unit 8] Reuse management and advanced reuse
The reuse techniques up to Unit 7 are for reuse limited to some processes and artifacts. In order to achieve productivity improvements and quality stabilization more rapidly, advanced reuse is required. There will be an explanation of software product line reuse, which is an implementation technique for that purpose. Additionally, through exercises, we will come to understand the differences between conventional reuse and product line reuse.
Preparation: Close reading of the explanatory materials ([8]) distributed in advance. Consideration of ideas for software product line engineering.

[Unit 9] Reuse for the purpose of product series development:
Comprehensive exercises
In order to deepen understanding regarding product line reuse, we will do comprehensive exercises involving the creation of a product line through reuse techniques, focusing on a domain that differs from what we have seen so far. Throughout these exercises, we will have discussions and deepen our understanding of techniques for implementing advanced reuse.
Preparation: Review the explanatory materials distributed so far. Consideration of conditions and problems which we counter for implementing software product line reuse.

[Unit 10] Exercises for developing reusable assets for the purpose of implementing good reuse (1): Feature modeling
We will select concrete examples regarding techniques for creating product lines, and deepen our understanding while having discussions through group exercises. Exercises will focus on feature modeling, which defines the characteristics of a product line.
Preparation: Close reading of the materials (Guide for Exercises) distributed in advance.

[Unit 11] Exercises for developing reusable assets for the purpose of implementing good reuse (2): Use case modeling, BAPO model
Continuing on from the previous unit, on the same subjects and in the same groups, we will create artifacts at the product line planning phases of use case modeling and BAPO modeling. While having discussions, we will deepen our understanding of methods for the reasonable, reuse based implementation of individual ideas.
Preparation: Improving your exercise results. Preparation of draft artifacts for use case and BAPO models.

[Unit 12] Review of software product development through reuse
We will once again review the various reuse techniques, and have discussions regarding how software product development by way of reuse should be done.
Preparation: Close reading of the explanatory materials ([9]) distributed in advance.

[Unit 13] Software product development through reuse: Assignment I, Assignment II
In order to establish and affirm an understanding of the various reuse techniques, we will work on Assignment I (on creating a product line) and Assignment II (overall review of reuse techniques).
Preparation: Review the explanatory materials distributed so far.

[Unit 14] Course content review
Preparation: Extraction of any unclear points relating to Assignments I and II.

<成績評価方法及び水準>
演習課題の実演および,課題T,Uの品質に基づく評価により,60%以上を合格とする.

Grades of 60% and above, based on an evaluation of performance in exercises and the quality of Assignments I and II, will be considered passing grades.

<教科書>
特に定めない.資料を配布する.

No particular textbook will be assigned. Materials will be distributed in advance.

<参考書>
以下の文献に基づき再利用技術を解説する.

(1)Frank J. van der Linden, Klaus Schmid, Eelco Rommes,Software Product Lines in Action
Springer Berlin Heidelberg(2007)

(2)Kyo C. Kang , Vijayan Sugumaran, Sooyong Park, Applied Software Product Line Engineering
Auerbach Publications (2010)

On the basis of the following books, software reuse techniques are described:
(1)Frank J. van der Linden, Klaus Schmid, Eelco Rommes,Software Product Lines in Action
Springer Berlin Heidelberg(2007)

(2)Kyo C. Kang , Vijayan Sugumaran, Sooyong Park, Applied Software Product Line Engineering
Auerbach Publications (2010)

<オフィスアワー>
火曜日:16:15〜17:15 新宿校舎A-2315(高信頼ソフトウェア開発工学研究室)

Tuesday: 16:15 – 17:15 Sinjuku A-2315 (Software Engineering Laboratory)

<学生へのメッセージ>
講義,演習,ディスカッションの繰り返しを通して,製品ソフトウェア開発における様々な形態の「再利用」技術を体得していきます.

Through lectures, exercises and discussion, we will systematically study the various forms of reuse that pertain to software product development.


このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2017 Kogakuin University. All Rights Reserved.