対象:プログラミングを通じて得られる能力について知りたい方 
効果:プログラミングがもたらす能力面での副産物について知ることができます。

 前回、プログラミングによって磨かれる能力に関し、イメージ力についてお話しました。今回は、構築力について考えたいと思います。

〈構築力〉
 構築力とは組み立てて築く力のことですが、プログラミングはシステムを組み立てることであり、システム作成に取り組むことで自然と高められます。

 例えば、
  ・エリア毎の販売数量・販売額・平均販売数量・平均販売額、商品毎の販売数量・
   販売額一覧を作成するシステムを開発せよ
という課題があるとします。

 この課題をクリアするためのシステムをいかに作成するかですが、
    1.課題の明確化
    2.システムを作成するための各種情報の取得
    3.システムの構成
    4.全体の処理の流れ
    5.大ブロック毎の処理の流れ
    6.各大ブロックを構成している中小ブロックの処理の流れ
    7.中小ブロックの処理を実現するためのプログラム文の作成
といった流れになると考えます。

1.課題の明確化
  まず、課題が何かについて、明確化しておくことは重要です。
  ここが不明瞭だと、
    ・ニーズと違ったシステムを作ってしまう
    ・機能の不足・不要な機能の付加
    ・修正や不要な機能付加のための時間や労力のロス
  などの問題が発生してしまいます。

2.システムを作成するための各種情報の取得
  ここでは、エリア毎の販売情報や商品毎の情報などを取得します。

3.システムの構成
  システムを構成する表は、
    ・商品毎の販売数量・販売額
    ・エリア毎の販売数量・販売額
    ・エリア毎の平均販売数量・平均販売額
    ・商品情報
    ・エリア毎の販売情報
    ・商品毎の販売情報
  です。基本的に、全ての表を一つのエクセルシートに表示させず、表毎に一つの
  シートを用意すれば分かりやすいかと思います。あと、単価など基本情報から成
  る商品毎の表を用意し商品名と商品コードを設定しておけば、他の表がそれぞれ
  商品単価情報を重複して持たなくても商品コードさえあればリンクして情報を取
  得でき、データの無駄がありません。
  エリア毎の販売情報や商品毎の販売情報も、それぞれ別シートに配置します。

4.全体の処理の流れ
  全体の処理の流れは、
    ①各表を空白にし、初期状態にする
    ②商品情報と商品毎の販売情報から、商品毎の販売数量・販売額一覧を作成
    ③商品情報とエリア毎の販売情報から、エリア毎の販売数量・販売額一覧を作成
    ④作成したエリア毎の販売数量・販売額一覧から、エリア毎の平均販売数量・
     平均販売額一覧を作成
  といった流れになると考えます。

5.大ブロック毎の処理の流れ
  ①から④までをそれぞれ大ブロックとして見立てます。

6.各大ブロックを構成している中小ブロックの処理の流れ
  この課題に関しては中小ブロックに分ける必要は無いでしょう。

7.中小ブロックの処理を実現するためのプログラム文の作成
  この課題に関しては大ブロックを実現するための働きをプログラム文として表現
  します。
  ①に関しては、各表の各欄を空白にするコードを入力します。
  ②に関しては、
    ・商品コードをキーにして商品情報の商品単価
    ・商品コードをキーにして商品毎の販売情報
   を商品毎の販売数量・販売額一覧に橋渡しし、商品単価と販売数量を掛け算して
   販売額を計算します。
  ③に関しては、
    ・商品コードをキーにして商品情報の商品単価
    ・エリアコードをキーにして各エリアの商品毎の販売数量
   をエリア毎の販売数量・販売額一覧に橋渡しします。そして、商品単価と販売数量
   を掛け算して販売額を計算します。
  ④に関しては、作成したエリア毎の販売数量・販売額一覧を基に、総販売数量に商品
   の品目数を割り算して平均販売数量を、総販売額に総販売数量を割り平均販売額を
   計算します。

 以上、大まかではありますが、課題解決のためのシステム作成の流れについて考えてみましたが、一連の作成過程はまさしくシステムの“構築”です。次回は、この様なシステム作成の過程で研鑽した能力が、プログラミング以外でどう生かされるかについて考えたいと思います。