...

実行可能知識としての ソフトウェア構築プロセス

by user

on
Category: Documents
1

views

Report

Comments

Transcript

実行可能知識としての ソフトウェア構築プロセス
日本デザイン学会 デザイン学研究 実行可能知識としての ソフトウェア構築プロセス
2012年6月23日 大槻 繁 株式会社一(いち) 2
前世紀まで、重厚長大伝統的大企業で
ソフトウェアエンジニアリングの研究・開発
今世紀は、軽量俊敏な小さいコンサルティングファーム
を経営しながら、新しいソフトウェア作りを探求
創造的なソフトウェアを設計する方法?
↑
デザイン(design)
ソフトウェア エンジニアリング
+
人工物(ar)fact)の デザイン手法
3
起
承
転
結
ソフトウェアエンジニアリングの呪縛
新ソフトウェア宣言
ΛVモデル
アーティファクトとしてのソフトウェア
4
起
ソフトウェアエンジニアリングの呪縛
5
ソフトウェアエンジニアリングのあゆみ:第1〜3の波
1970
NATO会合
1980
1990
ライフサイクル論争
2000
2010
アジャイルソフトウェア
開発マニフェスト
農耕的
工業的
知働的
SEの
SEの
SEの
第1の波
第2の波
第3の波
システム主体 大量生産/大量消費 分業/手順化/標準化
ドメイン主体 知識社会
多様化/価値指向 プログラム主体 構造化 機能中心
アルビン・トフラーの『第三の波』で 提示されたパラダイムを、ソフトウェアの 世界にあてはめてみました。
時代は「第3の波」なのに、 「第2の波」に呪縛されている
6
アジャイルソフトウェア開発マニフェストは、 それなりにインパクトがありました・・・
プロセス ツール
個人能力 相互作用
Individuals and interactions
over processes and tools
動くソフト
文書
Working software
over comprehensive documentation
顧客協調
契約・交渉
Customer collaboration
over contract negotiation
変化対応
計画遂行
Responding to change
アジャイルな気持ち
over following a plan
伝統的取組みの傾向
(Manifesto for Agile Software Development, 2001年2月)
ソフトウェア作りで大切なこと
を改めて確認
7
狭義から広義のアジャイルへ 狭義のアジャイルプロセス 開発者側中心の視点 顧客側とのコミュニケーションや確認を重
視してはいるものの、あくまでも受動的 アジャイルプロセスの取り組みは、 最近ではビジネス連動が中心課題
開発プロセス
協調/同期
広義のアジャイルプロセス 顧客側と開発側との同期 全体での価値創出、ビジネス
プロセスを能動的に考慮 開発プロセス
ビジネスプロセス
8
人働説から知働説へ 人月の神話 天動説
人働説 「作る」と「使う」は本質的に同じ
価値
価値
技術
地動説
技術
u ソフトウェアとは 《実行可能な知識》である Executable Knowledge u ソフトウェアとは 実行可能な知識を紡いだ 《様相》である Texture u 中心は《機能》から《様相》へ 知働説 知働化研究会は、アジャイルプロセス協議会のWGとして、2009年6月に設立されました。 コンセプトリーダ:山田正樹氏(メタボリクス社) 運営リーダ:大槻繁、現在メンバ数24、研究室数6 hEp://www.exekt-­‐lab.org/ 9
知働化研究会では、時々、研究誌をまとめることにしています。 創刊第1号が2010年11月3日(文化の日)に公開されました。 hEp://www.exekt-­‐lab.org/Home/exerev 知働化研究会誌Volume 1は、知働化研究会サイトから無料でダウ
ンロードできます。面白い作品が満載です。お楽しみください。
現在、Volume 2の発行に向けて、執筆や準備を進めています。
10
承
新ソフトウェア宣言
11
『新ソフトウェア宣言』は、通称『呪縛宣言』とも
呼ばれています。 2010年6月9日〜11日に横浜開港記念館で開
催されたソフトウェアシンポジウム2010の中の
ワーキンググループ「ソフトウェアエンジニアリ
ングの呪縛WG」に集まった賢人たちが、これか
らのソフトウェア、および、ソフトウェアエンジニ
アリングの方向性について議論したものが元に
なっています。 最終的には、「呪縛WG」の二人のコーディネー
タである大槻繁と濱勝巳氏によって、WG終了
後議論が重ねられ、今の7項目からなる形に集
約されました。 hEp://www.exekt-­‐lab.org/Home/newsoOdecl iPad用のデザインも提供 飾っておくとじわじわっと効いてくる
12
新ソフトウェア宣言
従来のソフトウェアに関わる諸活動の呪縛から解放され、新たな世界を築いていくためには、新た
な呪縛に捕われ、新たな中心を設定していかなくてはなりません。我々は、以下の関心の候補が
有望であると確信しています。
1.ソフトウェアは、数学的理論探求の上に成り立つ
2.ソフトウェアは、部分に還元することが不可能な全体である
3.ソフトウェアは、実行可能な知識である
4.ソフトウェアは、学びの副産物に過ぎない
5.ソフトウェアは、制約条件下で創造される美しい人工物である
6.ソフトウェアは、富を生む経済活動の資源である
7.ソフトウェアは、言語ゲームである
上記、基盤化、全体論、知働化、進化論、意匠論、経営論、遊戯論などの広範で、かつ、相互補完
的アプローチが、新しい物語を生み出し、新たなる地平を切り開いていくことでしょう。
大槻繁,芝元俊久,高野明彦,竹内雅則,時本永吉,夏目和幸,萩原正義,
羽生田栄一,濱勝巳,本橋正成,山田正樹,綿引琢磨
2010年6月11日 横浜にて
June 11, 2010 at Yokohama
1600
1596
デカルト
1637
1700
1900
2000
13
1650
方法序説
1642
ニュートン
1800
1687
1727
自然哲学の数学的諸原理
1724
カント
1781
1804
純粋理性批判
1788
ショーペンハウアー
リヒテンベルク
1742
1819
1860
意志と表象としての世界
1799
(覚え書き)
フレーゲ
1848
1879
ラッセル
1903
概念記法
1875
1925
基本法則
1913
1970
数学原理(プリンキピア・マテマティカ)
1903
192519261930
ラムゼイ
フロイト
数学の基礎付け数理論理学
1899
19231939
1856
夢判断
言語ゲーム的転回
自我とエス
1889
ヴィトゲンシュタイン
ヒルベルト
1862
カルナップ
1922
19491951
論考
探求
1900
1891
1943
23の問題 ヴィトゲンシュタインの 1924
『論考』(論理的-­‐哲学的論考)への集約と ファイヤアーベント
『探求』(哲学的探求)≒言語ゲームのもたらすインパクト
1922
19561970
意味と必然 1975
クーン
オースチン
「意味」「価値」「主観」「暗黙知」などを探求していく際に、
「言語ゲーム」の考え方は、ものすごく強力です。
1996
科学革命の構造 19601962
1911
サール
方法への挑戦 1962
1994
1930
言語と行為 1979
表現と意味 クリッペンドルフ
1932
2001
行為と合理性 2006
意味論的転回 13
14
転
ΛVモデル
15
R Requirements
T Test
要求 統合・運用テスト 要件定義 システム設計 システムテスト モジュール設計 モジュールテスト プログラミング ユニットテスト I
開発プロセスの諸概念は、
V字モデルによって語るこ
とができます。
R
Implementa)on
インタフェース
V プログラム 計算機 時間
I
T
ソフトウェアのデザイン デザイナがユーザのインタフェースについて持つ理解
デザイン論の大御所であるクリッペンドルフは著
作『意味論的転回』の中で、左図のような意味、
行為、感覚の関係を提唱しています。
これは、ソフトウェアをデザインの対象とした時に
も成立します。
ユーザの理解についてのデザイナーの理解
ユーザの理解
そこに
展開される
意味
換喩的に
喚起する
問題にする
混乱
行為
欠如する
引き起こす
予期する
感覚
分類名称
外部的なもの
結果
人工物
内部の力動性
R
現実の
インタフェース
発生の原因
となる
S
Semantics(意味)
Λ
Test(テスト)
Requirements(要求)
予期する
16
インタフェース
説明
T
典型的対象分野
抽象的
高設計自由度
全般
不確実
確率・非決定的
予測、フィルタ
曖昧
未認識・未定義対応 全般
相対的
言語ゲーム的
社会、対話
進化的
メタ・状況適応
パターン認識
計算限界 近似解
レイアウト、検索
未解明項 調整・フィードバック
制御、ログ解析
17
V字モデルとデザイン論の枠組みを接合することによって、
『ΛVモデル』ができあがります。これは、ソフトウェア(シ
ステム)、対象領域(実世界)、要求との関係も明確に位
置づけて、全体を俯瞰することができます。
要求
実世界(問題領域)
現象
装置
ドメイン
人
もの
Seman)cs(意味)
S
Λ字モデル
Λ Requirements(要求)
インタフェース
情報
接続
ラムダ
R
Test(テスト)
T
V V字モデル
コンピュータ
(ソフト、ハード、ネット、・・・)
コンピュータ世界
I
Implementa)on(実現)
アジャイルプロセスのタイムボックス方式(ソフトウェアセル生産方式)
をΛVモデルで分析することができます。要求の発生プロセス(受注生
産であればクライアント側)を明確にしていく必要があります。
18
St
時間
S1
S2
S3
S4
S5
S6
要求の
発生プロセス
注文(バックログ) R
1
R2
T1R3
T2 R4
T3 R5
T4 R6
I2
I3
I4
I5
T5
T6
セル(チーム)
I1
2週間
I6
It
時間
19
結
アーティファクトとしてのソフトウェア
20
いわゆるウォータフォール的な
プロセスのイメージ
仕様化
実現
テスト
時間
21
逐次(順次)プロセス
仕様化
;
実現
;
テスト
「;」は、逐次オペレータ
22
仕様化
実現
テスト
時間
23
並行プロセス
仕様化
|
実現
|
テスト
「|」は、並行オペレータ
24
仕様化
実現
テスト
時間
25
プロセス = 仕様化 + 実現 + テスト
× プロダクト
時間
26
ビジネスプロセスと
開発プロセスの連動
ビジネス
プロセス
狭義のアジャイルプロセスは、仕様化、実現、テストを並行
化したもの。
広義のアジャイルプロセスは、上記の他に、ビジネスプロ
セス、保守プロセスなど、あらゆる事項が並行化されます。
|
仕様化
|
実現
|
保守
プロセス
|
・・・
|
テスト
27
知の織物 =ソフトウェア 実務指向
構造化指向
Fortran 1954
太古
関数指向
Algol60 1960
《計算》
Basic 1964
Algol68 1968
萌芽
《構造化》
CLU 1974
Fortran77 1977
Pascal 1970
飛躍
B 1969
Fortran95 1995
新世
SNOBOL 1965
Scheme 1970
C 1972
Forth 1970
Prolog 1972
ML 1974
SQL 1976
Euclid 1977
Ada 1983 《オブジェクト指向》C++ 1983 Occam 1983
Eiffel 1985
Miranda 1985
Perl 1987
成熟
28
LISP 1958
APL 1964
Modula 1976
《モジュール化》
Ansi Cobol 1983
プログラミング言語も、開発プ
ロセスも、トレンドは「並行化」
Simula 1967
Smalltalk 1972
成長
専門指向
プログラミング言語の系譜
Cobol 1959
PL/I 1965
実践指向
Erlang 1987
Visual Basic 1991 Python 1990 《インターネット+アジャイル》
Java 1994
Ruby 1995 Ada95 1995 Delphi 1995
PHP 1995
《並行プロセス》
C# 2000
Groovy 2004
Scala 2003
Haskell 1987
OCaml 1996
Clojure 2008
ソフトウェアが生み出す価値と
それを生み出す方法(解)との関係
解の方向
価値の局面
(定式化)
《数学》
ビジョン、戦略
組織
(マネジメント)
不確実性
(変化への対応)
進化・適応
(学習と成長)
29
抽象化
知識主導
ドメイン抽象、実装抽象
オプションとリスク
自動化
(実行)
《オートマタ》
実行可能知識
モジュール化
(構造化)
《社会学》
産業モジュール
セル生産
機械化、ツール化、リターン
アセット、コンポーネント化
アジャイル(スピード,俊敏)
軽量化
予見,保険,プロダクトライン
並行化,イテレーション,計測
進化型ソフト
価値と解のマトリクス
手順化
確率
進化論、パラダイム論
29
パラダイムシフト,適応
ライフサイクル
ビジネス駆動、技術駆動
ベースラインとしての組織(マネジメント)に始まり、
アジャイルプロセスでは不確実性・変化への対応、
そして、次に、進化・適応の方法に向かっています。
保守,自律化,TOC
コミュニケーション/確認
協調
インタフェース,調整,交渉
再(脱)構築
改革
クロスファンクション,再構成
30
個人能力や相互作用
>
プロセスやツール
動くソフト
>
文書
顧客協調
>
契約・交渉
変化対応
>
計画遂行
アジャイルソフトウェア開発マニフェストの中の、
より価値を置く事項を、もう少々掘り下げてみる
と、『アジャイルプロセスの未来』が見えてきます。
個人能力とは? 相互作用の本当の意味? 動くソフトとは? ソフトウェアとは何か? 真の顧客協調とは? 変化はなぜ起こるのか? ・・・
31
新アジャイルプロセス宣言 New Manifesto for Agile S/W Development
個人能力 相互作用
知識主導 言語ゲーム Knowledge central and language game
over individuals and interactions
実行可能知識
動くソフト
Executable Knowledge
over working software
実世界
顧客協調
Real world domain
over customer collaboration
進化
変化対応
Evolution
over responding to change
アジャイルな気持ち
新アジャイルな気持ち
今後の計画
開発・保守・利用の統合プロセス、実行可能知識の進化、 次世代のアーキテクチャ、分析手法、・・・
Fly UP