SEが自分の「売り」を見極めるために現場から見るSEの自力(2/4 ページ)

» 2005年05月13日 00時00分 公開
[杉山正二(アールエスコンポーネンツ),ITmedia]

 しかしながら、これが言葉で言うほど簡単ではないから、『動かないコンピュータ』(日経コンピュータ)に常に事例が掲載されることになる。ユーザーの求めるものをいきなり具現化しようとするとうまくいかず、たいていは失敗する。では、どうすればいいのか。

まずは要件のモデル化

 それにはまず、ユーザーが求めるものを明確にする必要がある。この作業が要件定義であり、その要件をモデル化することである。モデル化とは、余計な枝葉をとり、できる限り制約を取り除き、抽象化を極限まで進めることだ。

 このモデル化(抽象化)のレベルが高ければ高いほど、その後の設計、構築の自由度が高まり、インプリメンテーション(具体化、具現化すること)が楽になる。データモデル(ER図)やデータフローダイヤグラムは、この抽象化のアウトプットという位置づけだ。

具体化と抽象化は全く逆

 モデルができたら、実際の設計・構築(具体化作業)に移る。このとき初めて物理的なデータベース、ハードウェア、ネットワークなどを決めていく。ここから先はできる限り詳細に設計し、プログラムの作成やハードウェアの調達ができるまで落とし込んでいく。具体化の作業は、抽象化とは全く逆の流れで進めるものである。

 図を見て、この考え方をイメージしてほしい。まずは、システム構築全体を通して、常に、「目的」であるWhyを意識することが重要だ。Whyを意識しながら、何が必要か(What)を考える。

 この際、できる限りどう実現すればよいか(How)のことは忘れる。ハードウェアがどうであるとか、現行システムの制約とか、実現のことは忘れて、何が必要かに集中する。これによって、できる限り抽象化し、モデルのクオリティを高める。

 その後は、このモデルに基づき、さまざまな制約や条件を考えて、実際のシステムに落とし込んでいく。会社ごと、組織ごとに条件は異なるので、図にあるように、実現形態も違ってくる(実現システムA、B、C)。

相反する能力

 SEとしてつらいところは、抽象化と具体化という、互いに相反する、たぶん思考方法も頭の使い方も全く異なる能力が両方とも高いレベルで要求されることであろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ