イチから全部作ってみよう(10)トヨタとたこ焼き屋模擬店で理解する「機能分割」山浦恒央の“くみこみ”な話(179)(2/4 ページ)

» 2024年07月11日 08時00分 公開

3.1 機能分割のイメージ

 前ページの図2で、機能分割をイメージできたと思います。ソフトウェア開発でも、企業の組織でも全く同じであることに注目してください。図書の分類でも同じです。抽象度の高いものから具体的なものに砕いていくことは、極めて自然発生的であり、分かりやすい方式です。

3.2 機能分割のメリット

 機能分割には、次のような大きなメリットがあります。

(1)1つの機能が他と独立している

 例えば、トヨタの人事部の仕事である新人の採用は、エンジンを設計している部門と直接は何の関係もありません。「自動車の製造と販売」に関わる複雑な業務を縦割りに分割することで、複雑さも分割でき、複雑性を下げているのです。

 従業員が3人しかいない工場だと、社長は、製品企画も、製造も、品質保証も、営業も、新人の採用も一人でこなさねばなりません。この場合の複雑度は想像を絶するものがあり、100万ステップのソースコードを1モジュールで書き上げるようなものです。

 古代ローマがイタリア半島の被征服都市を統治するのに用い、フランス国王のルイ11世も好んで使った言葉である「分割して統治せよ」はソフトウェア設計の基本です。

(2)仕様にまとまりができる

 機能分割をすることで、仕様がグループ化できるため、機能ごとに物事を考えることができます。これは、機能が互いに独立しているためです。

(3)作業分担ができる

 機能ごとにまとめることで、ある機能はA社、別の機能はB社のように役割分担ができるようになります。

 上記から、機能分割をすると、仕様が一定のまとまりとなり、それぞれを考えていけばよくなることが分かりますね。そこで、今回もECサイトはいったん置いておき、たこ焼き屋模擬店を題材とした機能分割のまとめ方を紹介します。

4.今回のお題について

 いきなりソフトウェアの機能分割に進まず、まずは身近な例で機能分割を体験してみましょう。ソフトウェア機能分割や、トヨタの組織図ほど複雑ではなく、でも、機能分割の具体的なイメージをつかんでいただくために、以下のお題を考えてください。

お題

くみこみ高校野球部は、1カ月後の文化祭の出し物として、たこ焼き屋の模擬店を出店することになった。部長の山田君は、部員のために役割分担を決めることにしました。

 「文化祭のたこ焼き屋」と「要求仕様書」は、最終的な生産物がプログラムかたこ焼きかの違いがあるだけで、ほぼ同じと考えていいでしょう。部長の山田君が部員にやってほしいことを記述した「要求仕様」は、ソフトウェア開発の要求仕様書と同じです。作成イメージを下記に示しますので、一緒に考えてみましょう。

ゴール:機能分割のイメージをつかむ

  • 作成のヒント
    • (1)模擬店運営のための係を大きなレベルで考える
    • (2)それぞれの係の大まかな作業を考える(より詳細に考えてもOK)
    • (3)人を中心に考えるのではなく、作業(機能)を中心に考えましょう。1つの作業を2人で担当する場合もありますし、2つの作業を1人で実施することもあります。

 なお、機能分割の結果は人それぞれなので同じになる必要はありません。設計者の数だけ正解があります。では、次のページで筆者の作成例を示します。

Copyright © ITmedia, Inc. All Rights Reserved.