ソフトウェアエンジニアリングソフトウェアエンジニアリング
〜ソフトウェアを正確に確実に作る〜〜ソフトウェアを正確に確実に作る〜
2014年5月19日SEトラック説明
吉岡廉太郎
2014年5月19日SEトラック説明
吉岡廉太郎
※ソフトウェア工学は
ソフトウェアエンジニアリングと同じ意味です。
「ソフトウェア開発」を知る
「ソフトウェア開発」を知る
「ソフトウェア工学」を知る
「ソフトウェア工学」を知る
今日の目標今日の目標
“ソフトウェア”ってなに?
どうやって作るの?
ソフトウェア工学の登場!!
ソフトウェア工学を理解するソフトウェア工学を理解する
ソフトウェアなしでは生きられない?ソフトウェアなしでは生きられない?
個人で使うソフトウェア
• ゲーム
• ワープロソフトなど
機器の中に組み込まれたソフトウェア
• 家電製品
• 車、エレベータなど
企業が使うソフトウェア
• 企業の業務:経理、人事など
• 顧客サービス:ネットショッピング、ネットバンキング
いろいろなソフトウェアいろいろなソフトウェア
開発する人お客さん
委 託
開 発
請 求
納 品
ビジネスとしてのソフトウェア開発ビジネスとしてのソフトウェア開発
ソフトウェアシステム
商品としてのソフトウェア
ユーザ
利 用
要求分析・定義
基本設計
詳細設計
プログラミング
単体テスト
結合テスト
システムテスト
運用テスト
要求分析・定義
基本設計
詳細設計
プログラミング
単体テスト
結合テスト
システムテスト
運用テスト
要求定義
設計
プログラミング
テスト
運用
ソフトウェア開発の基本プロセスソフトウェア開発の基本プロセス
※典型例
プロジェクトメンバーアナリスト
• 要求分析・定義
• 基本設計
デザイナー
• 基本設計
• 詳細設計
プログラマー
• 詳細設計
• プログラミング
テスター
•単体テスト•結合テスト•システムテスト
トレーナー
• 運用テスト
• 運用
開発チームの構成開発チームの構成
メンバーの連携がプロジェクト成功への
カギ!
チームの連携がうまくいかないと?チームの連携がうまくいかないと?
開発プロジェクトで良く起きる問題
何が問題だったのでしょうか?お客さん自身も何が本当に必要なのかわかっていない場合もある
① 顧客が説明した要件② プロジェクトリーダ
の理解③ アナリストの
デザイン④ プログラマのコード
⑤ 顧客が本当に必要だった物
University of London Computer Center Newsletter, No.53, March 1973 (Pre- 1970 cartoon; origin unknown) http://www.projectcartoon.com/gallery/
良いソフトウェア作りではバランスが重要!良いソフトウェア作りではバランスが重要!
時間 人
品質コスト
限られた資源=妥協も必要
•スケジュール管理
•プログラミングは職人芸
•不具合は損失
•信頼に直結
•安全性の確保
•間違いはやり直しにつながる
•夢と現実
•顧客とのコミュニケーション
•プロジェクトメンバーとの意思疎通
品質を保証するための要素品質を保証するための要素
効率の良い開発
エンジニアの技量に左右されない
ミスが生まれにくい
誰がやってもできる仕組み
これらの要素の追求=ソフトウェア工学
① 良いものを短時間で作るためのレシピ② レシピは、テクニックとツールの組み合わせ
• 技術、やり方、方法
わかりやすくて便利な道具
ソフトウェア工学の役割ソフトウェア工学の役割
テクニック方法論
ツール
ソフトウェア開発の将来ソフトウェア開発の将来
ビジネスのスピードが加速
価値の変化
コンピュータの処理能力向上
ネットワークの高速化
ユーザーインタフェースの進化
納期が短くなるテストにあてる期間が短くなる
ハードは安くなる開発/管理コストの増加
より複雑で高度なシステムを要求されるようになる
必要とされる技術の変化に対応していく
小さな画面、タッチ操作、音声入力…より使いやすい&楽しいデザイン
ソフトウェア工学を活かす職業ソフトウェア工学を活かす職業
研究者
プロジェクトマネージャ
ITアーキテクト
コンサルタント
※一部だけ紹介しています。興味のある人は「IT スキル 標準」で検索!
開発用ツールや開発手法の研究
プロジェクトの管理、企画
企業のシステムを企画、構築
プロジェクト推進、新ビジネス/ビジネス改善のアドバイス
ソフトウェア工学
コンピュータ理工学
理論 技術
お客さんが抱えている課題に対処する!
課題を解決するためのツール/手法
コンピュータ理工学との関係コンピュータ理工学との関係
カリキュラム、授業についての質問はこちらへ↓吉岡 廉太郎([email protected]) 研究室:145-C
まとめまとめ
・ソフトウェアを作る人とそれを使う人の両者を幸せにするための学問・技術
・将来の社会を支えるため、今後急成長が必要な分野
ソフトウェア工学とは?