Session2 ソフトウェア工学の基礎を学ぶ -...

39
html5j パフォーマンス部 Session2 ソフトウェア工学の基礎を学ぶ 201465大槻 繁 株式会社一(いち) http://1corp.co.jp

Transcript of Session2 ソフトウェア工学の基礎を学ぶ -...

Page 1: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

html5j パフォーマンス部

Session2ソフトウェア工学の基礎を学ぶ

2014年6月5日

大槻繁 株式会社一(いち)

http://1corp.co.jp

Page 2: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

• 大槻 繁 (おおつき しげる)

• 大手総合電機会社の研究所にてソフトウェアエンジニアリングの研究開発に20年以上従事、以降独立し、2004年にコンサルティング会社一(いち)を設立。

• 2010年よりビジネス・ブレークスルー大学経営学部教授(ITソリューション学科ソフトウェア経済論)に就任。

• ソフトウェア開発支援ツール、開発方法論の研究開発、ソフトウェアエンジニアリング、プロジェクトマネジメントの教育を手がける。近年は、IT調達支援、ソフトウェア見積り評価、プロセス改善などに従事するとともに、新しいソフトウェア開発のパラダイム提唱、知識創造産業におけるアーキテクチャや社会的な仕組みを探求している。

• アジャイルプロセス協議会フェロー、同知働化研究会運営リーダ、実践的ソフトウェア教育コンソーシアムWG2(ソフトウェアの方法論に関する実践知と社会基盤)サブリーダなど。

• 著書に「ソフトウェア設計」(朝倉書店、共著)、「大丈夫かあなたの会社のIT投資」(NTT出版、共著)、「ソフトウェ

ア開発はなぜ難しいのか」(技術評論社)、「ずっと受けたかったソフトウェア設計の授業」(翔泳社、共著)など多数。

2

Page 3: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

3

Page 4: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

4

Page 5: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

5

Page 6: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

6

Page 7: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

7

開発者

利用者 マシン

記述(言語)

本来独立した3つの世界にまたがる記述を中心とした知識

Java, C, 仕様記述言語, UML, 自然語, スクリプト言語, html5,

Page 8: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

正しい作り方

8

Page 9: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

科学と工学:理論と実践

ソフトウェア工学(ソフトウェアエンジニアリング)

= 組織論,心理学,人間工学,宗教,精神活動,躾,・・・

= 管理 + 標準化 + ε

<工学(実学)> + <科学(理論)>

化学工学 + 化学

機械工学 + 静力学

電子工学 + 電子物理学

ソフトウェア工学 + ソフトウェア科学?

9

Page 10: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

見積り手法(理論)の種類

主観 客観

ボトムアップ

トップダウン

アナロジー事例類推

作業展開(WBS)積み上げ

デルファイ法

COCOMO

単純推論

ユースケースポイント法

ファンクションポイント法

プロジェクト全体や大きな構成要素単位で見積もる手法

プロジェクトの構成要素ごとの見積りを積み上げていく手法

計測・算定者の属人性が高い手法

第三者の納得性が高い手法

同種のシステム開発データを適用して推定

コード行数予測と、人月あたりの開発コード行数実績から推測

複数の専門家の予測を集計

開発作業を分割・展開し、それぞれの個別作業のコストを集積

構成要素積み上げ

システムの構成要素のコストを集積

3点見積もり(PERT法)リスクを勘案して見積

もった悲観・楽観・最可能値を基に数式で算出

システムの外部特性を集積してシステム規模を計測

過去の開発データを回帰的に分析して作成したモデルを基に算出

10

Page 11: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

11

Page 12: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

1970 1980 1990 2000 2010

NATO会合 ライフサイクル論争 アジャイルソフトウェア開発マニフェスト

SEの

第1の波SEの

第2の波SEの

第3の波

農耕的 工業的 知働的

プログラム主体構造化機能中心

システム主体大量生産/大量消費分業/手順化/標準化

ドメイン主体知識社会

多様化/価値指向

ソフトウェアエンジニアリングのあゆみ:第1〜3の波

アルビン・トフラーの『第三の波』で提示されたパラダイムを、ソフトウェアの世界にあてはめてみました。

12

時代は「第3の波」なのに、「第2の波」に呪縛されている

Page 13: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

個人能力相互作用

プロセスツール

動くソフト 文書

顧客協調 契約・交渉

変化対応 計画遂行

アジャイルな気持ち

アジャイルソフトウェア開発マニフェストは、それなりにインパクトがありました・・・

伝統的取組みの傾向

(Manifesto for Agile Software Development, 2001年2月)

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

13

ソフトウェア作りで大切なことを改めて確認

明確になった事項を、明確になったものだけ、速やかに実装する

Page 14: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

開発プロセス ビジネスプロセス

協調/同期

狭義から広義のアジャイルへ

開発者側中心の視点顧客側とのコミュニケーションや確認を重視してはいるものの、あくまでも受動的

狭義のアジャイルプロセス

顧客側と開発側との同期全体での価値創出、ビジネスプロセスを能動的に考慮

開発プロセス

広義のアジャイルプロセス

14

アジャイルプロセスの取り組みは、最近ではビジネス連動が中心課題

Page 15: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

計算機世界(開発者の世界)

プログラム

モデル仕様化

(モデリング)

実装(プログラミング)

検証

(モデル検証)

テスト

(実行)

計算機

業務世界(利用者の世界)

インタフェース(共有現象)

仕様記述言語によって記述

プログラミング言語によって記述

15

Page 16: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

ユーザ企業

ベンダ

(WF、非WF/アジャイル等の受発注開発•保守)

ユーザ企業

ベンダ企業

調達プロセス 提案プロセス

システム

<ビジネス>

<エンジニアリング>

交渉(negotiation)

契約(contract)初期構築

保守

ビジネスプロセス

コミュニケーションギャップ

ベンダシステム部門

システム

俊敏な<ビジネス>

<エンジニアリング>

初期構築保守

ビジネスプロセス

受発注フレーム

内製化

フィードバック

16

Page 17: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

アセットDB

ベストプラクティスDB

インシデント統計DB

インターネット計測DB

実践的な見積り技法

要求(システム、サービス)

機能要求

非機能要求NFR

組織戦略

ユースケース

サービス

規模

SLA/OLA

プロジェクト実績DB

各種チェックリスト価格決定モデル

各種特性・制約 コストドライバ

機能仕様

品質

工数、期間等

従量価格

ライフサイクル工数

必要作業、工数等

規模ベースの見積り技法

規模ベースではない見積り技法

事例ベース推論エンジン

データマイニング

統計分析

時系列工数等

マーケット主導・ユースケース駆動型

事例ベース推論型

従量価格算定型

アジャイルプロセス型

ベストプラクティス差分型

プロダクトライン型

フィーチャ

ソリューション

アセットベース型

プロセス積上げ型

ステージ別要求リソース工数等

SLA: Service Level Agreement, OLA: Operational Level Agreement

17

Page 18: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

18

非機能要求=品質体系

• 品質とは– ユーザやスポンサーの要求を満足させるために製品・サービスが持つべき特性

– ユーザや顧客にとっての価値、満足度

• ユーザ視点に立ったソフトウェア品質体系の規格としてJIS X 0129 = ISO/IEC 9126がある– 品質特性/品質副特性(外部特性):ユーザ視点、ソフトウェア製品の評価を意識した特性

– 内部特性:開発者の視点、開発プロセスの評価を意識した特性

Page 19: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

品質体系:品質特性/品質副特性【品質特性 (Quality Characteristics)】 【品質副特性 (Quality Subcharacteristics)】

機能性 (functionality) 合目的性 (suitability) 仕様に対する機能が適切であること正確性 (accuracy) 正しい結果、正しい効果をもたらすこと相互運用性 (interoperability) 他のシステムと相互作用できること標準適合性 (compliance) 規格、用法、法律、法規等の規則に遵守していることセキュリティ (security) プログラムやデータに対し不当なアクセスを排除すること

信頼性 (reliability) 成熟性 (maturity) 故障の頻度に影響する潜在する障害が少ないこと障害許容性 (fault tolerance) 障害部分の実行、インタフェースに違反した実行を許容すること回復性 (recoverability) 故障からの復帰、データの回復能力があること

使用性 (usability) 理解性 (understandability) 論理的概念、適用方法の理解がしやすいこと習得性 (learnability) 適用(運用管理、入出力等)を習得しやすいこと運用性 (operability) 運用と運用管理がしやすいこと

効率性 (efficiency) 時間効率性 (time behavior) 実行の際の応答時間、処理時間、処理能力が高いこと資源効率性 (resource behavior) 実行の際の資源量、資源の使用時間が効率的なこと

保守性 (maintainability) 解析性 (analysability) 欠陥、故障診断、改訂部分の識別が可能なこと変更性 (changeability) 改訂、障害除去、環境の変化への対応が可能なこと安定性 (stability) 予期せぬ危険性への対応力があること試験性 (testability) 妥当性の確認がしやすいこと

移植性 (portability) 環境適応性 (adaptability) 異なる環境への適用が付加的な労力を伴わずに行えること設置性 (installability) 特定の環境に設置しやすいこと規格適合性 (conformance) 移植に関係する規格、規約を遵守していること置換性 (replaceability) 他のソフトウェアの代わりに置き換えて利用可能なこと

ソフトウェアの達成のレベルと使用する資源の量との間の関係に影響する属性の集合

仕様化された改訂を行うために必要な労力に影響する属性の集合

ある環境から他の環境へ移す際のそのソフトウェアの能力をもたらす属性の集合

ソフトウェアが必要性を満たすために何をするかを示すもので、明示的なもののみならず、暗示的なものも含む

ソフトウェアの達成のレベルを維持するソフトウェアの能力をもたらす属性の集合

利用者がソフトウェアを使用するために必要な労力、及び、個々の使用結果による評価に影響する属性の集合

19

Page 20: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

品質体系:内部特性# 副特性名 英語名 説明1 完全性 (completeness) 要求機能が実現されていること2 追跡可能性 (traceability) 要求から実現されたものへの関連、及び、その逆を追跡できること3 一貫性 (consistency) 設計、製造の技法や表記法、用語、企業等が統一されていること4 自己記述性 (self-descriptiveness) 機能、及び、機能間の関連が完結していること5 無矛盾性 (coherence) 機能、プログラム、ドキュメントの間に矛盾がないこと6 計算正確性 (accuracy) 計算結果、出力が要求された精度を達成していること7 データ共通性 (data commonality) データをシステム内、あるいは、他システムと共通に使用できること8 通信手順共通性 (communications commonality) 通信手順やインタフェースが共通化していること9 アクセス可能性 (accessiblity) プログラムの機能や関連装置を選択して自由に使用できること

10 アクセス制御性 (access control) ソフトウェアやデータへのアクセスを制御できること11 アクセス監査性 (access audit) ソフトウェアやデータへのアクセス記録を残すことができること12 堅固性 (robustness) 誤った操作を行っても、データやプログラムが破壊されないこと13 整合性 (integrity) ソフトウェアの内部で異常が発生してもデータやプログラムが破壊されないこと14 モジュール性 (modularity) ソフトウェアが構造化され、変更、修正等が局所的に済むこと15 単純性 (simplicity) 仕様の実現方法が簡単であること16 計測性 (instumentation) プログラムの動作状況を観察、観測できること17 自己包含性 (self-containedness) 他のプログラムに依存しないで機能を満たすことができること18 統一性 (uniformnigy) 意味、表現、手順が一義的、同一的であること19 表現性 (expressiveness) 入出力や処理の論理、結果をモデル化して表現できること20 階層性 (hierarchy) 概要から詳細へ段階的に論理が構成されていること

・・・

20

Page 21: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

品質体系:品質特性/品質副特性×内部特性品質特性

品質副特性

内部特性

合目的性

正確性

相互運用性

標準適合性

セキュ

リティ

成熟性

障害許容性

回復性

理解性

習得性

運用性

時間効率性

資源効率性

解析性

変更性

安定性

試験性

環境適応性

設置性

規格適合性

置換性

1 完全性 ◎ 〇 ◎ △ △2 追跡可能性 ◎ ◎ ◎ △ △ ◎ ◎ 〇 △3 一貫性 〇 〇 ◎ 〇 ◎ ◎ ◎ 〇 〇4 自己記述性 ◎ ◎ ◎ ◎ ◎ ◎ 〇 〇5 無矛盾性 〇 ◎ 〇6 計算正確性 ◎ 〇7 データ共通性 〇 ◎ △ ◎ ◎ ◎ ◎8 通信手順共通性 〇 ◎ △ ◎ ◎ ◎ ◎9 アクセス可能性 〇 △ 〇 〇

10 アクセス制御性 ◎11 アクセス監査性 ◎ ◎12 堅固性 〇 ◎ 〇13 整合性 ◎ 〇14 モジュール性 ◎ ◎ 〇 ◎ ◎ 〇 ◎ ◎15 単純性 ◎ ◎ ◎ ◎ 〇 〇16 計測性 ◎ ◎ ◎ 〇 ◎17 自己包含性 ◎18 統一性 ◎ ◎ ◎19 表現性 ◎ 〇 ◎20 階層性 ◎ ◎ 〇

◎:強い相関がある 〇:相関がある △:弱い相関がある

保守性 移植性機能性 信頼性 使用性 効率性

21

Page 22: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

品質体系:品質特性/品質副特性×内部特性 続き

品質特性   品質副特性

内部特性

合目的性

正確性

相互運用性

標準適合性

セキ

ュリティ

成熟性

障害許容性

回復性

理解性

習得性

運用性

時間効率性

資源効率性

解析性

変更性

安定性

試験性

環境適応性

設置性

規格適合性

置換性

21 説明性 〇 〇 ◎22 比喩性 ◎ 〇 ◎23 完備性 ◎ ◎ ◎24 注目性 ◎ 〇 ◎25 適時性 〇 〇 ◎26 適量性 〇 ◎ ◎27 簡潔性 ◎ ◎ ◎ ◎ ◎ △28 選択性 〇 〇 ◎29 誘導性 ◎ ◎ ◎30 安全性 〇 〇 ◎31 省力性 〇 ◎ ◎32 環境適合性 〇 〇 ◎33 動的効率性 ◎ 〇34 資源使用性 〇 ◎35 拡張性 〇 〇 △ △36 製品管理性 △ ◎37 ソフトウェアシステム独立性 〇 〇 〇 ◎ ◎ 〇 ◎38 マシン独立性 〇 〇 〇 ◎ ◎ 〇 ◎39 データ独立性 ◎ ◎ ◎ ◎40 伝達性 △ △ △

◎:強い相関がある 〇:相関がある △:弱い相関がある

保守性 移植性機能性 信頼性 使用性 効率性

22

Page 23: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

リ ファ クタ リ ングの効果

0

25

50

75

100

1 2 3 4 5 6 7 8 9 10

時間

工数

母体劣化の場合

リ ファ クタ リ ングを行う 場合

億円

COCOMOによるシミ ュレーショ ン( 試算)

23

COCOMO=COnstructive COst MOdel

Page 24: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

24

Page 25: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

25

価値

価値

技術

技術

天動説

地動説

知働説

人働説人月の神話

ソフトウェアとは《実行可能な知識》である

Executable Knowledge

ソフトウェアとは実行可能な知識を紡いだ《様相》であるTexture

中心は《機能》から《様相》へ

人働説から知働説へ

「作る」と「使う」は本質的に同じ

知働化研究会は、アジャイルプロセス協議会のWGとして、2009年6月に設立されました。コンセプトリーダ:山田正樹氏(メタボリクス社)運営リーダ:大槻繁、現在メンバ数30http://www.exekt-lab.org/

Page 26: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

R

I

T

S

Λ

インタフェース

コンピュータ世界

実世界(問題領域)

コンピュータ(ソフト、ハード、ネット、・・・)

装置

もの

情報

ドメイン

要求

現象

接続

Semantics(意味)

Requirements(要求) Test(テスト)

Implementation(実現)

V字モデル

Λ字モデルラムダ

26V字モデルとデザイン論の枠組みを接合することによって、『ΛVモデル』ができあがります。これは、ソフトウェア(システム)、対象領域(実世界)、要求との関係も明確に位置づけて、全体を俯瞰することができます。

Page 27: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

I1

R1

S1

T1

I2

R2

S2

T2

I3

R3

S3

T3

I4

R4

S4

T4

I5

R5

S5

T5

I6

R6

S6

T6

時間

2週間

時間

注文(バックログ)

セル(チーム)

It

St

要求の発生プロセス

アジャイルプロセスのタイムボックス方式(ソフトウェアセル生産方式)をΛVモデルで分析することができます。要求の発生プロセス(受注生産であればクライアント側)を明確にしていく必要があります。

27

Page 28: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

マネジメントのプロセス(マイクロプロセス)

顧客

管理

計画 と再計画

作業定義 仕事の割り当て

プロダクト開発

システムエンジニアリング

構成管理

検証と検査

制御予測

データ保持

測定報告プロジェクト報告 状況報告

要件

問題報告と変更要求

統制

28

Page 29: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

Webパフォーマンス改善のプロセス

Webシステム

KeynoteSystems計測ツール

RUM:Real User MonitoringSynthesis MonitoringServer side Monitoring・・・

Web分析ツール

アクセス解析ツール検索エンジン関連ツールSNS関連ツール・・・

命題

目標、法則、定理改善策

新要求

新実装 KGI:経営目標達成指標KPI:業務評価指標

ログ

計測データ

作業仮説

調整

検証

実証

データマイニング

定量化

確率・統計学

統計解析ツール

ビジネスアナリシス

ユーザエクスペリエンス

SAS,R,Mathematica,…

29

29

Page 30: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

30

Page 31: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

31

全体化

創造化

経営化

実世界、業務世界と連動し、かつ、経営上の観点(バリューチェーン)、経済・富の評価を伴う意思決定へ

個別蛸壺ではなく、全体(組織全体、ステイクホルダ全体)、初期構築と運用の統合化視点へ

生産性向上より商品力向上(価値指向)へ、デザイン思考や創造性中心

方法論

ツール

BAの導入

本当のビジネスモデル策定と評価

構築・運用の統合

プロジェクトごとより組織全体論

自動化されない世界の創造性思考暗黙知の定式化

本当のMISKPI設定・測定経営の自動化

広義の構成管理組織横断証跡機能

発想・認知支援プロトタイピング

これからの方向性

社会+IT含めた

モジュールの再構成が起きている

31

Page 32: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

Goal

pullpushgeneration evaluation

分析

表現構成

《図案表現型》

《問題解決型》

《理想追求型》

デザインイメージ

デザインイメージ

内的な感性から生み出される 目標をたよりに概念が生み出される

現状認識駆動, 現在指向

記憶駆動, 過去指向感性駆動, 未来指向

デザインの型(パターン)

32

『デザインの創造性と概念生成』(田浦, 永井)より

Page 33: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

ソフトウェアのデザイン

ユーザの理解についてのデザイナーの理解

内部の力動性

デザイナがユーザのインタフェースについて持つ理解

意味ユーザの理解

予期する感覚行為

現実の欠如する引き起こす

そこに展開される

換喩的に喚起する

予期する

混乱

問題にする

外部的なもの

発生の原因となる

結果

インタフェース

人工物

分類名称 説明 典型的対象分野

抽象的 高設計自由度 全般

不確実 確率・非決定的 予測、フィルタ

曖昧 未認識・未定義対応 全般

相対的 言語ゲーム的 社会、対話

進化的 メタ・状況適応 パターン認識

計算限界 近似解 レイアウト、検索

未解明項 調整・フィードバック 制御、ログ解析

デザイン論の大御所であるクリッペンドルフは著作『意味論的転回』の中で、左図のような意味、行為、感覚の関係を提唱しています。これは、ソフトウェアをデザインの対象とした時にも成立します。

33

R T

S Semantics(意味)

Requirements(要求) Test(テスト)

インタフェース

Λ

Page 34: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

対象システムのアーキテクチャに関する理論的原理(進化型:Evolutional-Type)

ユースケース分析

フィーチャ分析

進化型ソフトウェアの構造

34

Page 35: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

ソフトウェアが生み出す価値とそれを生み出す方法(解)との関係

35

組織(マネジメント)

不確実性(変化への対応)

進化・適応(学習と成長)

抽象化(定式化)《数学》

自動化(実行)

《オートマタ》

モジュール化(構造化)《社会学》

ビジョン、戦略

知識主導ドメイン抽象、実装抽象

実行可能知識

手順化機械化、ツール化、リターン

産業モジュール

セル生産アセット、コンポーネント化

オプションとリスク

確率予見,保険,プロダクトライン

進化論、パラダイム論

進化型ソフトビジネス駆動、技術駆動

アジャイル(スピード,俊敏)

軽量化並行化,イテレーション,計測

コミュニケーション/確認

協調インタフェース,調整,交渉

パラダイムシフト,適応

ライフサイクル保守,自律化,TOC

再(脱)構築

改革クロスファンクション,再構成

価値の局面

解の方向

価値と解のマトリクス

35

ベースラインとしての組織(マネジメント)に始まり、アジャイルプロセスでは不確実性・変化への対応、そして、次に、進化・適応の方法に向かっています。

Page 36: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

36

ソフトウェア工学人工物(artifact)のデザイン手法

Page 37: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

37

『新ソフトウェア宣言』は、通称『呪縛宣言』とも呼ばれています。

2010年6月9日〜11日に横浜開港記念館で開催されたソフトウェアシンポジウム2010の中の

ワーキンググループ「ソフトウェアエンジニアリングの呪縛WG」に集まった賢人たちが、これか

らのソフトウェア、および、ソフトウェアエンジニアリングの方向性について議論したものが元になっています。

最終的には、「呪縛WG」の二人のコーディネータである大槻繁と濱勝巳氏によって、WG終了

後議論が重ねられ、今の7項目からなる形に集約されました。

http://www.exekt-lab.org/Home/newsoftdecl

Page 38: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

新ソフトウェア宣言従来のソフトウェアに関わる諸活動の呪縛から解放され、新たな世界を築いていくためには、新たな呪縛に捕われ、新たな中心を設定していかなくてはなりません。我々は、以下の関心の候補が有望であると確信しています。

1.ソフトウェアは、数学的理論探求の上に成り立つ

2.ソフトウェアは、部分に還元することが不可能な全体である

3.ソフトウェアは、実行可能な知識である

4.ソフトウェアは、学びの副産物に過ぎない

5.ソフトウェアは、制約条件下で創造される美しい人工物である

6.ソフトウェアは、富を生む経済活動の資源である

7.ソフトウェアは、言語ゲームである

上記、基盤化、全体論、知働化、進化論、意匠論、経営論、遊戯論などの広範で、かつ、相互補完的アプローチが、新しい物語を生み出し、新たなる地平を切り開いていくことでしょう。

大槻繁,芝元俊久,高野明彦,竹内雅則,時本永吉,夏目和幸,萩原正義,羽生田栄一,濱勝巳,本橋正成,山田正樹,綿引琢磨

2010年6月11日横浜にてJune 11, 2010 at Yokohama

38

Page 39: Session2 ソフトウェア工学の基礎を学ぶ - html5jperf.html5j.org/static/otsuki.pdf個人能力 相互作用 プロセス ツール 動くソフト 文書 顧客協調 契約・交渉

html5jパフォーマンス部

Session2

ソフトウェア工学の基礎を学ぶ

2014年6月5日

大槻 繁 株式会社一(いち)

http://1corp.co.jp

http://1corp.co.jp

http://www.ichicorp.biz/secondary/

一(いち)について+ いくつかの随想など

http://www.agileprocess.jpアジャイルプロセス協議会

http://www.exekt-lab.org/Home知働化研究会

参考URL