😽

【上流_2日目_4回目】システム設計1冊目

2024/03/23に公開

こんにちは投資ロウトです。

背景

今まで開発側にいることが多く、設計をバリバリやっていた訳ではないですが、初の要件定義をやることになったためと、今後社員ができた際にきちんと教育指導が行えるように成長することが求められています。

学習アウトプット

画面入力

ジェイコム事件のように、誤発注が起きてしまった事件は画面入力のチェック等があれば、防げていたとのこと。オペレーターのミスとはいえ、システム屋はトラブルが起きないための仕組みを考えていく必要があるとのことでした。

https://www.shippai.org/fkd/cf/CZ0200714.html

データベース設計

MySQLやOracleなどで、どのような設定が必要になってくるかが変わるとのことなので、それらを考慮して適切なデータベースを探さないといけないとのことです。

またgoogleの本であったのですが、なるべく費用がかからないように実現していく方法を模索していく必要があり、特段求められる要求がないのであれば、費用が抑えられる必要があると思われます。

https://solutions.system-exe.co.jp/oracle-cloud/blog/price-comparison-of-on-premise-and-cloud-oracle-database

ER図を書く際に、正規化が行えているかは重要ですが、細かくし過ぎるとパフォーマンス等にも影響が及ぼとのことなので、使い勝手の観点からどのように設計をすべきかは考慮していかないといけないとのことでした。

https://products.sint.co.jp/topsic/blog/database-normalization

ユースケース図

目的・・・利用者とシステムがどのように連携するかを明確にすることによって、何の機能があればいいかを明確化する

やる意味・・・どのような機能が必要かを洗い出すために行う

やらなくていい場合・・・業務フローなどがあって、やりたい機能が明確になっていれば不必要

アクティビティ図

目的・・・システムを視覚的に判断するため

クラス図

目的・・・javaなどを始めとしたオブジェクト志向のプログラミングを活用することによって、システムを構築する場合、クラスという概念が存在するが、そのクラス自身にどのような役割を持たせるかなどを検討しやすくするために用いられるとのこと

過去に自分もjavaを用いた開発を行っていましたが、そのシステムもクラスシーケンス図みたいなものを使って図示していました。

シーケンス図

目的・・・オブジェクト設計をしやすくするためとのこと。システムよりな設計とのことでした。

マイクロサービスなどを構築する際に、各API(Micro Service)の流れを書く場合にとても有効ですよね。様々なAPIが責務を行っていますが、それらのシステムを理解した上で、構築できるように用いられたりしていました。

またMicro Serviceはとても有効で、秘匿の部分に関しては権限付与によってアクセスができたりするという制約が設けられるのも良いとのことです。以前googleかどこかは忘れたのですが、検索エンジン?か何かの超秘匿部分は、一部の人しか見られないようになっており、コアな部分はそのMicro Serviceの情報を絞ることで、行うことができます。

フローチャート

目的・・・プログラミング開発ができる状態にする

要件定義でもその機能を実装(開発は外部)してもらうために、フローチャートみたいなもので、詳細に定義したりなどありました。

処理設計

目的・・・プログラムを日本語にしただけのようなもので、開発者が迷わず開発できるようにしたようなもの

クラウドの恩恵

物理ってきな設置、結線などの作業から解放されること

サーバープロダクト構成書

目的・・・脆弱性の問題が出た際に、どのバージョンやソフトウェアを使っていたか確認できるため

サーバー稼働サービス一覧

目的・・・現在運用しているサービスを確認するためのもの。

AWSを使用している際に、自社サービスが増えていくと、何がどのサービスなのかなどがわからず、コスト削減等も行いづらくなります。そのためこういったものがあると稼働しているものが何なのかがわかって、良いかもしれませんね。

障害対応手順書

目的・・・障害が起こった際でも迅速に対応ができるとのこと

昔自分は化学工場のプラントで働いていましたが、プラントが安定して運用できるように、トラブルがあった際に、どのようにプラントを止めていくかなどの手順書はありました。障害時に全てのケースを手順書かは難しいですが、あると安心して対応できるかもしれませんね。

設計書に関して

システムの影響調査や社員の教育にはとても重要なものになるとのこと、必ずドキュメント整備は実施していかなければならないとのことでした。

また最新の状態でなければ、最新の状態までメンテを入れる必要があるとのことでした。

また設計書を教育用に使うのが良いとのことでした。今年中にもし新入社員が雇用できれば、システムについての研修用に自社サービスの解説をして、スキルアップが図れるように教育をしていきたいと思います。

まとめ

以上でシステム設計の学習を終えたいと思います。今まで設計したことのあるドキュメントもあれば、携わってきたことのないドキュメントも多数ありました。今後新入社員が入った時に色々な業務やITの事を解説できるように、学習をしていきたいと思います。ご精読ありがとうございました。焦らずコツコツ頑張っていきたいと思います。

Discussion