大槻繁のレビュー一覧
-
Posted by ブクログ
2回読みました。
私は、293の鉄則本のように、枕元に置いて気が向いた時にパラパラめくって読み返す本は何冊かあるのですが、同じ本を続けて読み返すことはほとんどしません。
一読して分からなかったことは再読しても分からないことが多いので「ま。いいや、別の本を読んで理解すれば」と本棚に置いてしまいます。
しかし、この本は違いました。
章によっては、3回読みました。
私は、大学でプログラミング(Fortran/GPSS)の授業は受けたことがあるのですがソフトウェアエンジニアリングの講義は受けたことがありません。
そんな私にとって、本書は、まさに「ずっと受けたかったソフトウェア設計の授業」でした。
★★★
本書は、Michael Jackson先生が構築したJSP(Jackson Structured Programming)とJSD(Jackson System Development)を易しく解説した本です。
1975年にJSP、1983年にJSDと、どちらも30年位前に発表された技法なので、私も新人研修やソフトウェア工学の本で概要は知っていました。
しかし、昔の技法という認識であり、それより後の1980年代後半に発表された、オブジェクト指向分析・設計(OOAやOOD)を勉強してたら十分だろうと思っていたのです。
でも、決してそうじゃなかったんですね。
★★★
それから、本書はMichael Jackson先生の技法をなぞりながら、こっそり大槻さんの設計に対する思いや、考え方、重要と思われる概念についてより深く解説がされています。
大槻節といいましょうか、思わずニヤリといったところもあって楽しめます。
ということで、ソフトウェア開発に関わる人へ、超おすすめの本です。 -
Posted by ブクログ
本書は、ブルックスの『人月の神話』を下敷きにして、ソフトウェア開発の難しさと克服の歴史、今後への提言が書かれているものです。
今後への提言としては、「抽象化」、「自動化」、「モジュール化」の観点で地道に進めていくようにとのことでした(やっぱりそれしかないのかなという答えではありますが……)。
そして、「抽象化」について残りのページが割かれているのですが、
まず抽象化の第一の観点は、
・捨象(withdrawing)、削除(removing)する行為
・複雑な対象(complex object)のいくつかの性質(properties)を捨て去り、特定の性質に目を向ける行為
第二の観点は、
・具体的な実体(instances)から共通の性質(common properties)を抽出することによって、一般概念(general concepts)に定式化(formulating)するプロセス
・特定の事例(specific examples)から共通の性質(common features)を抽出することによって形づけられる一般的な概念(general concept)
と、「抽象化」の定義をしたあとに、
例えば、みかんをそこにいる人々に等分するという場合に、各人の個数をxと置いて、
みかんの個数 = 人数 × x
という方程式を立てます。このとき、みかんの重さとか色といった情報は捨象されます。さて、この得られた方程式を解くことは容易です。等式の両辺を同じ数で割ってxの値を具体的に求めることができるでしょう。得られた値は、実際に配布してみて余りがないかで、確認することもできます。
と説明し、抽象化(それに伴うモデル化)が役に立つことを示しています。
と、このように、全体的にソフトウェア開発の専門家でなくても分かるようにまとめられています。また、ソフトウェアの専門家に向けては注という形で補足が充実していますので詳しい人も面白く読み進めることができると思います。
# たとえば、ブルックスが、IBMのOS/360の開発を率いていたことは有名ですが、OS/360プロジェクトの途中でノースカロライナ大学へ移ってしまったなんて知りませんでした!!(『人月の神話』に書いてありましたっけ???) さらに驚いたのは、その混迷のプロジェクトを引き継いだのが、CMMを構築した、あのワッツ・ハンフリーであったそうです。面白い関係ですね。 -
Posted by ブクログ
ソフトウェア開発の世界に入った人は、誰もが一度は「なんでこんなに開発はうまくいかないのだろう」という思いに打ちひしがれると思います。もちろん私もその一人。
まだ開発の経験が浅い方が、「なんでうまくいかないのか」という疑問にかられたとき、本書はその手掛かりになると思います。読むに当たっては専門知識も要さないので、ソフト開発に携わる側だけでなく、いわゆる「ユーザ企業」といわれる側の方が読むのにも適しているかと思います。
なお本書は、著名な「人月の神話」(フレデリック・ブルックス著)をもとに書かれたものであり、より深く知りたい方は、そちらも合わせて読まれるとよいと思います。 -
Posted by ブクログ
◆概要
Michael Anthony Jackson氏 が開発したソフトウェア開発手法に関する解説本。
- JSP(Jackson Structured Programming), 1975年出版
プログラム開発手法(構造化プログラミング+構造不一致)
- JSD(Jackson System Development), 1983年出版
システム開発手法(ユーザは要求を知らない。機能より実世界モデル)
についての入門的な内容について、日本のソフトウェアコンサル会社の方々によって解説されている。
◎JSP
3基本構造(連接、選択、繰返し)だけを用いて、「入力/出力のデータ構造」、「プログラム構造」を表していくアプローチ。理解しやすく、見通しの良いプログラムが書けるのが特徴とのこと。
◎JSD
実世界から仕様に落とし込んでいくアプローチ。
開発の背景が興味深く、
要求仕様というものは不明確であり時間と共に変化する、
という当たり前の問題にどう取り組むかの問題解決法の一つがJSDである。
機能を考える前に実世界のモデルを考える(モデルは機能より安定しているため)アプローチで、要求の変化に対応しやすいシステムが作れるとのこと。 -
Posted by ブクログ
ネタバレフォトリーディングNo.75
目的:なぜ難しいかを把握する
トリガーワード:ソフトウェアエンジニアリング、開発、人月、プログラム、プロジェクト、契約、本質、複雑性、工数、生産性、同調性、可視化、可変性、開発プロセス、抽象度、抽象化、自動化、モジュール化、実体、実現、確認、困難
質問:
①なぜ難しいのか?
②見慣れないトリガは?
~20120719ポストレビューここまで~
~20120720アクティベーションここから~
質問に対するまとめ:
①ソフトウェア自体の難しさ(構成の依存、外部との関係、ビジネス環境や技術進歩への対応、複雑な概念の集積)、要求の高まり、分業によるオーバーヘッド、稼働後の新たな課題、ユーザと開発者の距離
②ソフトウェアの複雑性:仕様、設計、コード全てが大きい事自体が問題。複雑な実世界への接続。
同調性:周辺装置や環境への同調。人が生み出す概念への同調。
雑感:抱えている問題を意識しておきたい。本文で登場する「人月の神話」も要チェック。