システム設計

アプリ開発日記 #55 概算家計簿の新しい画面イメージ

今日の目標 概算家計簿アプリの新しい画面イメージを作成する。 実際にやったこと 概算家計簿の新しい画面イメージを作成しました。 なお、作成した画面イメージはiPhone11 Pro Maxの解像度をもとにしています。そして、概算家計簿は大雑把ですが、使ったお…

アプリ開発日記 #54 概算家計簿の画面イメージを変更する

背景 概算家計簿アプリは、リリースから半年ほどが経過しています。 そして、リリース時は画面イメージについての知識が乏しかったことから、画面イメージの刷新を考えています。また、画面イメージ以外にも、最後に入力してから一定期間経過後に通知するた…

Observerパターンって、そうなんだぁ。。。

Observerパターンについて Observerパターンは振る舞いに関するデザインパターンの1つです。 そして、Observerパターンを導入することで、依存関係のあるオブジェクトをそれぞれ異なるオブジェクトとしてカプセル化することができます。実際にObserverパター…

アプリ開発とターゲットデバイス

背景 アプリの画面設計で設計した画面を実装しようとした場合に、項目が画面に収まりきらない事象が発生していました。 その原因として、画面のサイズや解像度を意識した画面設計となっていなかったことがあげられます。そのため、画面のサイズや、解像度を…

アプリ開発日記 #39 画面構成の変更決定!!

今日の目標 画面構成の変更に伴う、画面デザインおよび、画面遷移の変更を行う 実際にやったこと 一覧表示および登録を行っていた画面を、一覧表示画面と登録画面に分割しました。 そして、画面分割後の仕様で設計書の更新を行いました。なお、今回の分割は…

アプリ開発日記 #36 クラス設計は難しい 。。。

今日の目標 新しい画面の実装に着手する 実際にやったこと 次の画面の画面表示時のデータ取得処理の実装を開始。 実装時に気付いたこと あらかじめ作成していたクラス構成で実装した場合に、同じ処理を異なるクラスに実装する必要があることがわかりました。…

アプリ開発日記 #12 VSCodeでシーケンス図を作成した

今日の目標 アプリのクラス構成の見直しを行う。 実際にやったこと クラス図の見直しと、一部機能のシーケンス図の作成。 (シーケンス図は、実装イメージを膨らませるために、一部機能のみ作成) シーケンス図の作成方法 VSCodeでプラントUMLにより作成 シー…

アプリ開発日記 #11 クラス構成を見直す

今日の目標 アプリのクラス構成の見直しを行う。 実際にやったこと クラス図の見直しを行い、不要なクラスの削除や、参照の変更、新たに必要となるクラスの追加を行いました。 困ったことと解決方法 特になし。 明日への思い もう少し、クラス構成の見直しを…

アプリ開発日記 #7 クラス図の見直しとちょこっと実装

今日の目標 サンプルプロジェクトを参考にクラス図を見直す。 実際にやったこと サンプルプロジェクトを参考にクラス図の見直しを行った。 見直したクラス図による実装が可能かを確認するため、実際にプログラムを組み始めた。クラス図を作成するだけでは、…

アプリ開発日記 #6 ちょっと分かったぞ!! ~Xamarin.Formsのサンプルをクラス図にしてみた~

今日の目標 サンプルプロジェクトの作りを理解するために、サンプルプロジェクトからクラス図を起こしてみる 実際にやったこと サンプルプロジェクトの一部をプラントUMLを使ってクラス図に起こしました。 クラス図に起こした部分は、サンプルプロジェクトの…

アプリ開発日記 #2 設計の完了

今日の目標 設計を完了させる!!プログラムをどのように実装するか、いつテーブルアクセスを行うか、入力チェックをどうするかなどの検討を完了させ、ドキュメントにまとめる。 なお、プログラムの実装方針については、あと1画面分であり、また詳細な画面の仕…

株式上場に関連する業務システムの機能

上場の基準 上場の基準には、以下の2つの基準が存在します。 形式基準 発行済み株式、純資産、利益などの数値化された基準 実質基準 企業の継続性や、収益性、経営の健全性など、上場後も継続して経済活動できることを測る基準 上場基準に関連するシステムの…

システムの要件の優先順位

お客様から頂く要件 業務システムの開発では、お客様から解決したい課題や、必要なシステムに関する要求を受けることでプロジェクトがスタートしていきます。 そして、お客様が本当に必要としているシステムを開発するために、お客様から直接お話を伺い、要…

やめたほうがいいテーブル設計 ~テーブルの水平分割、垂直分割~

テーブルの水平分割とは テーブルの水平分割とは、1つのテーブルを、ある一定のレコード数を基準として2つ以上のテーブルに分けたものとなります。 そのため、水平分割されたテーブルが存在する場合は、テーブル名が異なり、同一のテーブル定義を持つテーブ…

やめたほうがいいテーブル設計 ~コードマスター~

コードマスターとは コードマスターとは、システムで使用する複数の項目とそのコード値を1つのテーブルにまとめたものです。(例) 項目区分 コード 名称 01 a001 春 01 a002 夏 01 a003 秋 01 a004 冬 02 0001 北海道 02 0001 青森 コードマスターの問題点 …

テーブル設計-ストックデータとフローデータ-

ストックとフローについて ストック 日々の業務で発生したデータを一定期間で集計したデータ フロー 日々の業務で発生するデータ テーブル設計でのストックデータ ストックデータは日々の業務で発生したデータを集計したデータになります。 そのため、テーブ…

やめた方がいいテーブル設計 〜重複データのカラム持ち〜

カラムによる重複データの保持(列持ち) 社員ID 社員氏名 子供1 子供2 子供3 000001 山田 太郎 山田 小太郎 山田 小次郎 山田 小三郎 上記のように子供を複数持つ場合のデータの保持を、複数のカラムを作成することで対応したものは、列持ちと言われます。 …

テーブルの主キー

主キーの特徴 主キーはテーブルの行を一意に識別できる項目であり、以下の制約を持ちます。 not null制約 主キーとなる項目は、nullにできません。 つまり、値が存在しない可能性がある項目は主キーにはできません。 一意制約 主キーとなる項目はテーブルの…

テーブルの正規化

正規化の目的 テーブル内の重複する項目を排除し、システムにおけるデータ登録または、データ更新時にデータの不整合が起きないようにする。なお、正規化をすることで1つの大きなテーブルが複数の小さなテーブルへ分離されるため、データの読み込みでは複数…

インデックスをはる参考資料となるCRUD図

CRUD図はインデックスをはるテーブルを見つけるのに便利 CRUD図は、画面ごとにアクセスするテーブルおよび、テーブルに対する操作をまとめた資料となります。 そして、CRUD図は、テーブルに対する操作を一覧でまとめているため、DB設計でインデックスをはる…

システムの要求と要件

お客様から頂く要望はすべて要件ではない 業務システムの開発では、お客様からどのようなシステムを作りたいかを伺い、お客様が必要とするシステムを開発していきます。しかし、お客様から伺うシステムの要望は、すべて実現必須ではなく、お客様にとってあっ…

やらないことを決める - システム設計で考えること

システム設計では、やらないことを決めることも大事 システムの設計が進み、ある程度仕様が固まってくると、システムに対して夢が膨らんできます。 そして、あんな機能がほしい、こんな機能がほしいとなり、システムの規模が大きく膨らんでしまいます。しか…

システムは小さく作ったほうがいい

システムを小さく作るとは 「システムを小さく作る」ということは、必要最低限の機能のみで作るということです。 つまり、最低限のことしかできないシステムを開発し、リリースするということになります。 小さく作るのは難しい システムの開発を行っている…

品質は設計で作り、テストで保証する

設計の段階で品質はほぼ決まる 情報システムの開発における設計フェーズの役割は、何をどのように作るかを決めることです。 そして、想定外を想定内にするフェーズでもあります。そのため、設計で盛り込まれなかった機能や、設計時に気づけなかった運用は、…

情報システムのリリース間際の仕様変更について

リリース間際の仕様変更はやめてほしい 業務システムの開発プロジェクトでは、時として、リリース目前での仕様変更が発生することがあります。 そして、仕様が変更となったにもかかわらず、リリース日は変わらないということが多々あります。しかし、リリー…

複雑な機能要件は絵をかいて整理するーシステム設計

絵や表を書いて、機能をわかりやすくする システムの機能には、複数の条件が影響する複雑な機能があります。 そして、そのような複雑な機能では、文章で書かれても理解しづらいことが多々あります。そのような場合は、条件を1つずつ分解し、表や絵をかいて整…

事業で扱う情報を見える化する - システム開発で必要なデータを探すために

情報システムとデータ 情報システムは、データを一元管理し、そして、必要な時に必要な形でデータを参照できるツールです。 そのため、情報システムの開発では、情報システムで扱うべき必要十分なデータを洗い出す必要があります。 システムで扱う情報を探す…

システム開発におけるシステムの輪郭

システムの輪郭とうまくいかないシステム開発 システム開発でうまくいかないときは、大体がシステムの全体像、システムの輪郭が見えてないときだと思います。 具体的には、作りたいシステムの内容を聞いても、そのシステムの絵が描けない、そもそもいつどこ…

システム設計は「かもしれない運転」で!

車の免許を取る際に、自動車学校で「だろう運転」、「かもしれない運転」という話を聞くと思います。 簡単に言うとそれぞれ、以下の内容になります。 歩行者は自分に気づいて止まってくれるだろうという、自分本位で楽観的な考えによる運転 歩行者は自分の車…

背番号”パウエル”にならないためのシステム設計

背番号”パウエル”、、、 ノンスタイルの漫才のネタにあるセリフの1つです。 (かなり前のネタです)背番号なのに人の名前であるパウエルとは、どう考えてもあり得ないと思います。 このネタでも「背番号だぞ!"p"と入るのか?」という言う突込みが入ります。しか…