July 08, 2012

はじめての設計をやり抜くための本

はじめての設計をやり抜くための本 概念モデリングからアプリケーション、データベース、アーキテクチャの設計まで (エンジニア道場)
はじめての設計をやり抜くための本 概念モデリングからアプリケーション、データベース、アーキテクチャの設計まで (エンジニア道場)

キーワード:
 吉原庄三郎、設計、品質、アーキテクト、コミュニケーション
IT業界に何らかのかたちでかかわり、はじめて設計をする人のための本。以下のような目次となっている。
  1. 第1章 はじめての設計をやり抜くために
  2. 第2章 設計の目的
  3. 第3章 外部設計の手法
  4. 第4章 内部設計の手法
  5. 第5章 アーキテクチャの目的
  6. 第6章 アーキテクチャ設計のアプローチ
  7. 第7章 本当に設計は必要か
(目次から抜粋)
5月から新しいプロジェクトに参画しており、そこでの自分のロールは基本設計からテストまでということになった。さて、設計をきっちりやったことがない、どうしようと思って本書を本屋で探し当てた。探し当てたというか、数年前からタイトルからいつか読もうと思っていたので、このタイミングで買って読んだ。

対象読者は、SI企業に所属しながらシステム開発業に関わる人で、プログラミングはやってきたけど、設計は未経験だったり、見よう見まねでやってきたけど基礎からもう1回勉強し直したい人に向けで、設計の基本的な手法を知りたい人のための本と書かれている。まさに今の自分にぴったり。

本書によれば、設計をやり抜くために最低限必要なことは以下の3つらしい。
  1. 設計の目的を正確に把握すること
  2. 設計を行うために最低限必要なテクニックを知ること
  3. 周りにいる人と正常なコミュニケーションをとること
設計スキルを上達させるには、誰かのために設計するという視点を持つことらしい。自分が作成した設計書を誰かが読んで正しくプログラミングできるようにする必要があるので、曖昧な表現ではダメで、そのため、設計という作業はコミュニケーションと示されている。

また、本書では設計を行うために必要な知識として次の4つを重点的に取り上げられている。
  • ユースケース
  • 概念モデル
  • データベース設計
  • アーキテクチャ設計
そして、本書によると設計の目的は以下のように示されている。
  1. 要件定義の内容をシステムでどのように実現するかを検討する
  2. 要件定義で明確になっていない外部仕様を検討する
  3. 開発の関係者間で情報を共有する
  4. システムの品質を高める
  5. メンテナンスのために設計情報を残す
    (pp.056)
ここが一番重要なところだね。

本書全体の構成に関して言及しておくと、割と設計工程に関して網羅的に示されている分、要素要素に深さがどうしても足りないと感じる部分がある。それはそれで本書のコンセプト上、しょうがない部分なので、例えばDB設計に関してもっと詳しく知りたい人は他の専門書を読むとよい。

全体の網羅性をある程度の抽象度を保って説明されている分、もう少し具体的な設計成果物のサンプルがあれば分かりやすかったかなと思った。例えば、Web上の購買システムをサンプルとして画面設計、DB設計、IF設計、画面プログラム設計、ビジネスプログラム設計などの一貫性を保った具体的な成果物を示してもらった方がよかったかもしれない。

しかし、設計のポイントの網羅性を示している本はあんまり本屋にもないので、本書が重宝すると思う。いろいろと参考文献も示されているし、アジャイル開発の設計に関することもコラムで言及されているので、読み物としても参考になる部分が多い。

ページ数が327ページと割とボリュームが多いので、少しずつ読んで読了まで2週間という工数かな。既知の部分や技術要素のところで自分の業務に関連が薄い部分は読み飛ばすなどすればもう少し速く読めるかもしれない。大切なのは設計の全体像をさくっと把握することなので、詳細は実際の仕事の現場で習得する、もしくはさらに専門書を読んだりする必要がある。

最近基本設計からの仕事をやっているけど、これはこれでいろいろと仕様や要件を考慮しなくてはいけない部分が多くて、なかなかすんなり仕様が固まらなかったりする。それでも単純なプログラミング工程とはちょっと違った面白さがあるなぁと思う。もちろん、プログラミングそのものも設計の1工程と捉える考えもあるけど、純粋なウォーターフォールモデルでは別物と考えるとね。

設計をやっていると自分がシステムを作っているんだという気になってくる。自分の設計のよしあしがそのままシステム品質につながると思うと、微妙な設計ではダメだなと。特に技術者の都合、例えば、その機能を盛り込むとテストが激しく面倒といったことで仕様を決めてしまいがちになったりするけど、大切なのは限られた工数や予算の中でちゃんとお客様の要件を満たすものを考慮するということだね。そういう部分で最適解を導き出すために試行錯誤するのが設計工程の面白みでもあるのかなと思った。

設計と言っても技術的なことを知らなくてはまともにできないし、プログラミングだってある程度できないとまともなものはできないなぁと思う。だからプログラミングをやったことがない人がいきなり設計をやるのは無謀というか、欠陥があったり品質が低いシステムになる可能性が高い。なので、ちゃんと技術の勉強もしつつ設計能力を磨かないとなぁと思った。

そういうことをいろいろと考えていると、熟練したエンジニアになるには最低でも10年オーダーの修行が必要なのかなと思ったり。先は長い。精進あるのみ。



はじめての設計をやり抜くための本 概念モデリングからアプリケーション、データベース、アーキテクチャの設計まで (エンジニア道場)
はじめての設計をやり抜くための本 概念モデリングからアプリケーション、データベース、アーキテクチャの設計まで (エンジニア道場)
著者:吉原 庄三郎
販売元:翔泳社
(2008-12-11)
販売元:Amazon.co.jp

読むべき人:
  • はじめて設計をする人
  • 設計書の成果物がイメージできない人
  • アーキテクトになりたい人
Amazon.co.jpで『設計』の他の本を見る

bana1 デザインクリック☆  にほんブログ村 本ブログへ



トラックバックURL

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星