イチから全部作ってみよう(26)プログラムは「処理」と「データ」からできている山浦恒央の“くみこみ”な話(195)(3/3 ページ)

» 2025年11月18日 06時00分 公開
前のページへ 1|2|3       

5.データ設計

5.1 データ設計とは

 世の中にさまざまな製品がありますが、それぞれに特有のデータが存在します(図4)。

図4 図4 製品特有のデータ[クリックで拡大]

 自動車ならば、車両制御に必要な物理定数など、ECサイトならば、商品価格や在庫数などの商品データがあるでしょう。

 データ設計では、システムが扱うデータを整理し、その構造や関係性を定義する作業です。

 今回は、イントロダクションとして、ECサイトにおける商品の登録/購入に関わる一連のサイクルを題材として、データを整理し、データの流れをイメージしましょう。

5.2 必要なデータの把握

 過去2回の画面設計から、必要なデータを把握します。

  • 商品名
  • 商品画像
  • 商品価格
  • 在庫数
  • 氏名(過去記事で抜けてましたが……)
  • 住所
  • 支払方法
  • 合計金額

 ここから、似たもの同士でまとめます。筆者は、下記に示す通り、「商品データ」と「注文データ」にまとめました。

  • 商品データ
    • 商品名
    • 商品画像
    • 商品価格
    • 在庫数

  • 注文データ
    • 氏名
    • 住所
    • 支払方法
    • 合計金額

 似たデータをまとめていくと、おおよそ上記のようになるでしょうが、正解はありません。例えば、商品名と在庫数は似ているようで似ていないと判断し、「商品データ」と「商品詳細データ」と分けてもよいでしょう。

5.3 データの流れをイメージする

 次に、まとめたデータがどのように変わるかイメージ図で整理します(イメージできるなら飛ばしてもOK)。

5.3.1 イメージ図(その1)

 図5は、商品登録とサイトの閲覧に関するイメージ図です。

図5 図5 商品登録とサイトの閲覧に関するイメージ図[クリックで拡大]

 店担当が商品データをサイトに登録します。例えば、下記の通りです。

  • 商品名:シャトー・マルゴー
  • 商品画像:margaux_picture.jpg
  • 商品価格:27000
  • 在庫数:10本

 商品データを基に、サイトに商品を表示します。顧客は、その商品を閲覧し、購入するか判断します。

5.3.2 イメージ図(その2)

 商品購入に関するイメージ図を図6に示します。

図6 図6 商品購入に関する概念図[クリックで拡大]

 顧客は、商品の購入時に顧客情報を入力します。

  • 氏名:山田一郎
  • 住所:東京都港区10丁目10番地
  • 支払方法:代引き

 注文確定すると、顧客が入力した注文データを保存します。その後、在庫数を減らせば完了です。

5.終わりに

 今回は、データ設計のイントロダクションとして、処理とデータの関係性と、ECサイトを題材として、データとその流れについて整理してみました。

 プログラムは、処理とデータの組み合わせで成り立っているため、どちらも整理する必要があります。データ設計の第一歩は、どのデータが必要で、どのように変わるか把握することです。(次回に続く)

山浦先生執筆の書籍が販売中です!

 本連載で取り上げた「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。

 前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。

ソフトウェア技術者のためのバグ検出テキストソフトウェア技術者のためのバグ検出ドリル 画像クリックで出版社のWebサイトへ

 両書とも興味のある方は、Amazon.comや書店でチェックしてください!

【 筆者紹介 】
山浦 恒央(やまうら つねお)

人間環境大学 環境情報学科 教授(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。2025年4月より、人間環境大学環境情報学科教授。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR