13 ソフトウェア工学 Software Engineering ソフトウェアプロセス SOFTWARE PROCESS.

Slides:



Advertisements
Similar presentations
ソフトウェア工学 知能情報学部 新田直也. リファクタリング  リファクタリング( refactoring ): 「プログラムの外的振る舞いを変えることなく,その内 部構造を改善すること」  もともと Smalltalk のコミュニティで使われていた.  M. ファウラーの 1999 年の著書.
Advertisements

CMU2005 海外エンジニアリングワークショップ参加報告書 1 「真の要求を見極めろ!」: teamB 要求定義をどう捉えるか ● 要求定義とは何か? 製品には、顧客の望むことを正しく反映させる必要がある。 そのために必要なものが要求仕様である。 すなわち、要求仕様とは、顧客と製品を結ぶものであり、これを作ることが要求定義である。
1 EASE プロジェクトにおける EPM ( Empirical Project Monitor) を用いたプロジェクト管理デモ 奈良先端科学技術大学院大学 産学官連携研究員 松村 知子 2005 年 9 月 30 日 JISA 経営者セミナー.
ソフトウェア工学 第二回 知能情報学部 新田直也. 本日のお話  ソフトウェアの開発の流れ(開発プロセス ( process ) ,開発工程,開発ライフサイクル ( life cycle ) )について.  作業の段取り,計画は非常に重要.  引越し作業を例に考えてみよう. 段取りが悪いと …
OWL-Sを用いたWebアプリケーションの検査と生成
システム開発におけるユーザ要求の 明示的表現に関する一検討
プロジェクトとは.
情報システム開発向け プロジェクト管理計画と その学習支援方法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
第4章 ABC/ABMと原価情報 原価計算・原価低減の新技法 1.ABCとは何か 2.ABCの有効性 3.ABMとは何か 4.ABMの有効性.
ソフトウェア・エンジニアリング入門 セッション 4: まとめ.
経営情報論B 第一回 講義概要+経営と情報.
東京工科大学 コンピュータサイエンス 亀田弘之
先進技術の社会影響評価(テクノロジー アセスメント)手法の開発と社会への定着
神戸大学 大学院理学研究科 地球惑星科学専攻 博士後期課程 D2 納多 哲史
XXXの提案書 チーム名 サブタイトル(必要であれば).
機能実現期間の測定による プログラマ能力の実験的評価
OJT研修 「テスト実施、テスト設計の技術習得」 日時: 8月22日(月)  場所: 本社5階.
H17年度授業評価アンケート報告 教務WG:山澤一誠.
3-1システム戦略 3-1-3ソリューションビジネス (Point) ・代表的なサービスを通じ、ソリューションの考え方を理解
プロジェクト管理 第4回 (2008年10月27日版) 品質マネジメント 人的資源マネジメント
事業計画 発表者名 | 会社名.
情報処理学会・経営情報学会 連続セミナー第3回 情報システム構築アプローチ 主旨
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
パッケージソフトウェア利用コンピュータシステム構築委託契約書 パッケージソフトウェア、OS、第三者ソフトウェアの使用許諾契約
要員管理 要員の質、量、配置、作業状況を管理する 一般的な注意点を下記に示す (1)組織 ・組織構成を明快にする -指示命令系統
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
~企画~ GO,桑田,ヒルズ.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
COBIT 5 エグゼクティブ・サマリー.
リーンスタートアップ法を適用したプロジェクト立案・計画方法
ソフトウェア工学 第五回 知能情報学部 新田直也.
製造準備段階における 工程FMEAの実施と不具合未然防止
Microsoft MVP for Development Tools – Visual C++
品質実施作業部会(Q-IWG) 現状と最新情報
XP Extreme Programming.
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
Microsoft MVP for Development Tools – Visual C++
~新たなソフトウェア開発の手法~ 発表 土屋俊介
12の発明の原理だけで発想できるプロセス アイデア発想とアイデア選定
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
平成19年度青年部会「第2回~第4回研修会」(人材育成研修会)実施計画書
“SFC SUBWAY Maniacs” プロジェクト計画書
UMLモデルを対象とした リファクタリング候補検出の試み
Winter Workshop in Kanazawa -プロセスと方法論-
Microsoft MVP for Development Tools – Visual C++
本フォーマットに従い、提案する研究開発の説明資料を作成してください。
情報 第1回:状態遷移 その1.
その他 手法の組合せ.
ビジネス プロジェクトの計画 発表者名 | 会社名.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
理論研究:言語文化研究 担当:細川英雄.
INTRODUCTION TO SOFTWARE ENGINEERING
パッケージソフトウェア利用コンピュータシステム構築委託契約書 パッケージソフトウェア、OS、第三者ソフトウェアの使用許諾契約
人を幸せにするアプリケーションの開発 2004年度春学期 大岩研究プロジェクト2 2004年4月8日(木) 発表:武田林太郎.
企業システム戦略を成功させる! ドキュメント・レビュー実践法 企業システム戦略家 青島 弘幸.
All Rights Reserved, Copyright © 2004, Kobayashi
保守請負時を対象とした 労力見積のためのメトリクスの提案
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
設計工学 内容 目的 ★もの作りのための設計 ★実際の現場で役立つ設計 ★機械設計や機械作りの楽しさを知る。 ★工学的な理屈を考える。
【1 事業の内容及び実施方法】 1.1. 事業内容(実施方法を含む) 1.1.1 ジルカロイ試験管 断面SEM観察
データ中心システム設計方法論“DATARUN” 
チームワークによる成功 第二副地区ガバナー研修.
情報処理の概念 #0 概説 / 2002 (秋) 一般教育研究センター 安田豊.
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
アジャイル開発プロセス 森口朋広.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
Presentation transcript:

13 ソフトウェア工学 Software Engineering ソフトウェアプロセス SOFTWARE PROCESS

ソフトウェアプロセスとは ■ソフトウェアプロセス: ソフトウェアプロダクト(製品)を作り出すための, 互いに関連する活動(activity)の集合 ソフトウェアプロセス 活動 1 活動 2 活動 3 最終プロダクト 中間プロダクト 1 中間プロダクト 2

ソフトウェアプロセスの設計と記述 ■つぎの4項目について設計し,記述する 1) 活動(activity) 各活動の内容と順序 2) プロダクト(product)    各活動結果の生成物(文書,図表,プログラムなど) 3) 役割(role)    担当する人々の職種(プロジェクト管理者,プログラマなど) 4) 事前条件,事後条件(pre- /post-condition)    各活動の前と後で成り立つ条件

プロセスが含むべき活動 1) 要求(requirement) ソフトウェアの仕様(機能,運用上の制約)を     獲得/分析/定義/記述 2) 設計(design)    ソフトウェアアーキテクチャ,データモデル,クラス,     インタフェースを記述 3) 実装(implementation)    プログラミングにより実行可能なシステムを構築 4) 確認(validation)    顧客の要求を満たすことをテスト等により検証 5) 進化(evolution)    顧客の要求の変化に対応して保守/修正/改訂

ソフトウェアプロセスモデル ■ソフトウェアプロセスモデル - 良く見かけるソフトウェアプロセスを単純化して表現したもの ■ソフトウェアプロセスモデル   - 良く見かけるソフトウェアプロセスを単純化して表現したもの   - これを拡張/詳細化して特定のプロセスを生成するのに使用 ■今回はつぎの3つのモデルを学ぶ 1) ウォーターフォール開発(waterfall model)    要求→設計→実装→確認→進化 の一連の活動を分離して実施. 2) インクリメンタル開発(incremental development)    短期間でバージョンアップする一連の版(versions)としてシステムを開発. 3) アジャイル開発(agile development)    バージョンアップ間隔が超短期の素早いインクリメンタル開発.

ウォーターフォール開発(1/2) 要求→設計→実装→確認→進化の一連の活動を分離して実施 要 求 設 計 実 装 確 認 進 化 ソフトウェアの ライフサイクル(life cycle) 要求→設計→実装→確認→進化の一連の活動を分離して実施 滝(waterfall)のように直列的にフェーズ(phase)がつながる - 計画駆動(plan-driven):開発の開始前に全活動を計画 原則としてフェーズの重なりや繰り返しを行わない ■長 所 1) フェーズが把握しやすく管理しやすい 2) 各フェーズの終了時にしっかりとしたドキュメントが生成される

ウォーターフォール開発(2/2) ■短 所 1) 要求の変化への対応が難しい 2) 開発上のリスクが大きい ■短 所 1) 要求の変化への対応が難しい 2) 開発上のリスクが大きい   開発初期に定義したものほど,開発後期にならなければ確認できない   → 大きな手戻りが生じ得る   → 納期までに開発が終わらない/品質が悪い 要求定義 アーキテクチャ設計 コンポーネント設計 実  装 単体テスト 統合テスト システムテスト 受入れテスト 定義 確認 V字モデル 開発初期 開発後期

インクリメンタル開発(1/2) 開発初期段階で顧客がシステムの重要部分の実装を確認できる 要 求 設 計 実 装 確 認 1回目の繰り返し 第1版 要 求 設 計 実 装 確 認 2回目の繰り返し 第2版 要 求 設 計 実 装 確 認 3回目の繰り返し 第3版 フェーズの重なり 重要部分の開発 追加機能の開発 開発初期段階で顧客がシステムの重要部分の実装を確認できる プロトタイピング(prototyping) 要求,設計,実装,確認をインターリーブ(interleave) 短い間隔で複数の版(version)を次々と開発し,顧客が迅速に確認 顧客からのフィードバックを得て次版のための増分(increments)を開発 最終版の確認が得られたら終了 

インクリメンタル開発(2/2) ■長 所(ウォーターフォール開発との比較) ■長 所(ウォーターフォール開発との比較) 1) 要求の変化に対応するためのコストは小さい   (変化の分析やドキュメントの量は,ウォーターフォール開発より小) 2) 開発の途中で顧客からのフィードバックを得られやすい 3) システムにすべての機能が実装されていない早い段階で運用可能 ■短 所 1) ドキュメントの量が少ないので,管理者からプロセスが見えにくい.   (すべての版を反映させた説明文書を作るのはコストが大) 2) 新しい増分を追加するにしたがって,システム構造が劣化しがち.   (要求の変化に対応するのがだんだん困難となる) 3) 大規模・複雑で長寿命のシステムでは上記の短所が顕著

アジャイル開発(1/6) アジャイル(agile)手法の提案 ■計画駆動(plan-driven)手法の特徴 1980年代~1990年代前半の一般的な「重い」手法 大規模・長寿命のソフトウェア向き(航空宇宙,政府関係など) 短所: 計画・設計・文書化のオーバーヘッドが大きい 1990年代後半 agile: 「素早い」という意味 アジャイル(agile)手法の提案 設計や文書化よりもソフトウェア自身の開発に注力 非常に短い間隔(2~3週間)でインクリメンタル開発を行う非常に「軽い」手法

包括的な文書化 よりも 動くソフトウェア を重視 アジャイル開発(2/6) ■アジャイル開発の哲学 プロセスとツール よりも 個人と対話 を重視 包括的な文書化 よりも 動くソフトウェア を重視 契約交渉 よりも 顧客との協働 を重視 計画への追従 よりも 変化への対応 を重視 ■アジャイル開発の具体的な手法 - エクストリームプログラミング(extreme programming) - スクラム開発(Scrum)

アジャイル開発(3/6) ■アジャイル開発の原理 原 理 説 明 顧客との協働 顧客は開発プロセス全体に密接に関与 原 理   説 明 顧客との協働 顧客は開発プロセス全体に密接に関与 顧客の役割: システム要求の提供と優先度の提示,増分の評価 増分の提供 一連の増分によりシステム開発 次回の増分の要求仕様は顧客が指示 人間重視 開発チームのスキルを把握・尊重 チームメンバーは自分なりの方法で開発 変化の許容 要求の変化があるのは当たり前 要求の変化に対応しやすくシステムを設計 単純性の維持 ソフトウェアとソフトウェアプロセスの単純さを重視 可能な限り,システムから積極的に複雑性を排除

アジャイル開発(4/6) ■原理を実践する上での問題点 原 理 問題点 顧客との協働 顧客は,必ずしも開発チームと一体に作業を行う時間がない 原 理   問題点 顧客との協働 顧客は,必ずしも開発チームと一体に作業を行う時間がない 増分の提供 大企業等では,長年続けてきたプロセスを簡単には変えられない 人間重視 チームメンバーは,他のメンバーと必ずしもうまく対話できない 変化の許容 多くの関係者間で変化に関する合意が困難 単純性の維持 単純性の維持には,余分な作業が必要(納期のプレシャー) ■その他の問題点 - インクリメンタル開発に対する契約書を書くのが困難 - 問題が生じたときはだれの責任か - システムの進化(保守)にうまく対応できるか   →ドキュメントが少ない   →チームはすでに解散   →顧客の協働意欲は小

優先度や開発工数 を考慮して チームが自律的に決定 アジャイル開発(5/6) ■スクラム開発(Scrum):アジャイル開発のための管理手法 バックログ(backlog):今後行うべき仕事のリスト(ToDo) バックログの内容を確認し, 今回のスプリントで開発すべき 機能をバックログから選定 優先度や開発工数 を考慮して チームが自律的に決定 毎日15分程度のミーティングで 進捗確認(昨日やったこと,今日やること,障害)しつつ増分を開発 開発 レビュー 振返り 計画 プロジェクト終了 概要計画 アーキテクチャ設計 ドキュメントの作成 達成度,発生した問題, その問題に対する改善策 などについて話し合う このスプリントの開発成果を デモなどで確認 スプリント (sprint) チーム主体の意思決定 (3~10人=1チーム) 2~4週間で1サイクルして増分を開発

アジャイル開発(6/6) ■スクラム開発の長所 - ソフトウェアの機能を理解しやすい断片に分解可能   - ソフトウェアの機能を理解しやすい断片に分解可能   - 優先度と工数見積もりにしたがって項目を選択   - 顧客は定期的に増分を入手し,フィードバック可能   - チームメンバー間のコミュニケーションが促進   - 顧客と開発者の信頼関係が構築される

演習問題 13 ウォーターフォール開発とアジャイル開発を比較し, それぞれの長所と短所を簡単に説明しなさい.

レポート提出と筆記試験について (詳しくは,ガイダンスで配布した文書を確認のこと) 2019年2月1日(金) 14:45集合(A21) ■レポート - 演習問題を8問以上解答 - 欠席した回の分は解答できない ■筆記試験 - 手書きで直接書かれたノートのみ持込み可

授業アンケート 目的: 授業改善のため 時間: 10分程度 回収: 回収を担当する受講生を2名指名