生活の身近にコンピュータがあるので、把握をしなければならない領域。
コンピュータが組み込まれて久しい。自動車、家電製品。ICカード。ソフトウェアの開発や技術。価値を理解。開発技術がどのように役立っているか。
安心と安全。セキュリティ。通信技術。ソフトウェアの開発技術。開発プロセス。要求工学。設計、テスト、実装。ソフトウェアの開発の管理。コンパイラ。プロジェクトマネジメント。開発技術者。育成技術。技術動向。情報システムが生活に深く関わる。入力データは送られる。情報システム。しかし使いづらいなどがある。Internetのサイトの使い勝手。ビジネスでの役立ち方。Amazonなどのデータ。購買履歴など。登録事項に書かれている。人の命を守る安全性。情報を守る。情報漏洩。開発技術者と様々な専門家。人手によって作られている。ものづくりの技術。技術は日進進歩。情報システムの利用者。人工知能。根拠のない恐怖。
ソフトウェア工学の概要。開発管理、人材開発。68年のNATO会議。設計、実装。品質。要求。信頼性。プロジェクト。86年。銀の弾丸。そんなものは無い。人月の神話。ブルックス。今でも銀の弾丸はない。ソフトウェア開発プロセス。過程。開発する手順。最終成果物としてのソフトウェア。アジャイル開発。スパイラル型開発。作業の順番。水が上から下へと。逆は無い。ウォーターフォール型。スパイラル。渦巻きのように交互に。ウォーターフォール開発。要求分析。仕様書に基づき設計。実装、プログラミング。プログラムのテスト。テスト仕様書。ブラックボックス、ホワイトボックス。中身を見るか見ないか。単体テスト。ウォーターフォール開発では順番に行う。V字モデル。
V字モデル。仕様書の正しさのテストは?プログラムが仕様書通りに出来ているか?要求仕様書の正しさは?最初の妥当性確認しか出来ない。様々な専門家が要求仕様書を作っているが。検証。妥当性確認。V&V。頭の中だと困る。ソフトウェア開発。ビジネス分析を事前に行うことが多い。ビジネス要求仕様書。検証するため。開発に時間がかかれば、要求は変わってゆく。ソフトウェア開発は要求変更に悩まされている。スパイラルモデル。失敗させる要因をできるだけ早く見つけ修正する。失敗するリスクをどのように回避するか。要求が誤って解釈されるなど。プロジェクトを失敗させる要因。予算が大きくなるなど。スパイラルモデル。各工程を始める前にプロトタイプを開発。試作品。使い捨てのプログラム。信頼性などは求められていない。実現可能性を評価する。事前にリスク分析。変更されるかどうかは分からない。絶対に変わらないところから作っていく?納品。鮮度が落ちると要求にはならない。権限を変更するなどの要求変更。頻繁に変わるのが事前に分かる場合、アジャイル開発。インクリメンタル開発。繰り返す、機能を増やしていく。繰り返し型。進捗管理が出来ない?満足度が高い。開発者のモチベーションを高く維持できる。追加や変更がしやすいように開発をしなくてはならない。人材配置など。インタビュー技術も。
要求仕様書が出来たとして、次は設計。似たような開発はあるので、流用する?再利用。テスト済みの部品を使う。品質が高くなる。生産性についても。何も無いところから、よりも生産性は向上する。部品には仕様書も含まれる。技術者の治験も。パターン。現在の設計は再利用が前提。アーキテクチャの決定。システム全体の設計方針。サブシステムへの分解。部品の置換可能性。クラウドを使った場合、コンピュータを呼び出す。必要に応じて呼び出す。総合予約サイト。幾つかのサイトを比較。各サイトのシステムを利用。クラウドサービス。マッシュアップ。実装。プログラミングと単体テスト。コンパイラ。自然言語。人工言語。第一世代から進歩。JavaやC言語。機械語にコンピュータに理解させる。最適化。開発管理。数人から数千人の規模での開発。どのようにチームが動けばよいか。人材育成やマネジメント。銀の弾丸のような人は居ない。定型的な作業ではなく、知識労働。意思決定。定量的に観察する。内容を評価。それを繰り返して品質が上がっていく。PDCAモデル。