設計

ADRを書くときに抑えておくべきポイント

アーキテクチャ

ADR(Architecture Decision Record)は、ソフトウェアアーキテクチャに関する重要な意思決定を記録するためのドキュメントである。 ADRを書く内容が決まっていても実際書いてみると人によって内容がバラついたり、そもそも何を書けば良いのか分からなかったりして、形骸化してしまうことがある。 私の経験上大事だと思うことを4つにまとめた。 1:意思決定を一つに絞る(Atomicit...

Architecture Decision Record 設計 アーキテクチャ

要件と制約の違い

アーキテクチャ

ソフトウェア開発の現場で、「要件(Requirements)」と「制約(Constraints)」の違いに悩んだことはないだろうか。 私は設計を考える際に、この2つの概念を混同してしまうことがあった。 適切な設計を行うために、これらの違いを明確に理解することが大事であると感じたので、これらの違いについてシステム工学の国際標準である ISO/IEC/IEEE 29148 の定義をベースに整理してみた...

制約 要件 要求 設計 アーキテクチャ

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則

アーキテクチャ

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則を読んだ。 この本は結合をテーマにした珍しい本で、アーキテクチャ設計の複雑性をどう管理するかを理論的に学べる本。 複雑性をどう管理するかはアーキテクチャの寿命を決めるようなものだと思っているが、そのための分析観点として結合について深く学ぶことができる。 一回読んだだけでは頭に入り切らなかったので、設計するときなど辞書的に参照で...

設計

クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集

アーキテクチャ

クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集を読んだ。 本全体を通して、全単射と偶発的複雑さの概念について教えてくれる本であり、コードの設計と品質を改善するテクニックを学ぶことができる。 よく見知った法則なども網羅的に書かれているので、手元に置いておきたい一冊。 ...

設計

データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて

アーキテクチャ

データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けてを読んだ。 帳簿という概念を軸に、基幹系システムを分散・疎結合化するためのデータモデリング手法を体系的に解説した本。 活動系(SoA)と経営管理系(SoM)という二分類やユースケース非依存の帳簿設計や「残」という新しい概念を提唱している。 単なるDB設計書では触れられない領域を掘り下げ、DDDやマイクロサービス化を進める上...

モデリング 設計 システム設計

システムアーキテクチャ構築の実践手法

アーキテクチャ

システムアーキテクチャ構築の実践手法を読んだ。 実務でアーキテクチャ設計に取り組む技術者のための実践ガイド。 前著システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考が「なぜ」に焦点を当てていたのに対し、本書は「どのように」を解説している。 要求定義から論理設計、物理設計までを一貫して扱い、ビューによる文書化、再利用可能なアセットの活用、判断記録の残し方など、現場で役立つ具体的な...

アーキテクティング アーキテクチャ戦略 アーキテクチャ アーキテクト 設計 システム設計

アーキテクチャ・アーキテクト・アーキテクティングについて

アーキテクチャ

概要 システムアーキテクチャ構築の実践手法 (IT Architects’Archive ソフトウェア開発の実践)の第2章を参考に、アーキテクチャ、アーキテクト、アーキテクティングの定義とそれらの持つ要素を整理する。 アーキテクチャとは「構造」である IEEE 1471-2000において、アーキテクチャは以下のように定義されている。 コンポーネント、それら相互のまたは環境との関係、およびその設計...

システム設計 設計 アーキテクチャ アーキテクト アーキテクティング

凝集度と結合度

アーキテクチャ

概要 ソフトウェア設計において品質を測る基本的な指標として、**凝集度(Cohesion)と結合度(Coupling)**がある。これらは、モジュール化、保守性、再利用性などを考慮する際に重要な概念である。 凝集度(Cohesion)とは 凝集度とは、モジュール内の構成要素(関数や変数など)がどれほど密接に関連しているかを表す指標である。 高凝集(High Cohesion) モジュール内の要素...

設計 システム設計

設計の賞味期限を考える

アーキテクチャ

概要 システム設計に「間違い」はあっても「正解」は存在しない。あるのは、そのときの状況に応じた“最適な妥協”である。 設計とは、さまざまな制約の中で意思決定を行い、将来に向けて形を与える行為である。 「設計の賞味期限」という観点を通じて、どのように設計の寿命を見積もり、制約と向き合うべきかを考察する。 設計の賞味期限とはなにか? 「いつまで持てばよい設計なのか?」 この問いを意識することで、設計は...

設計 システム設計 アーキテクチャ戦略 アーキテクチャ

自分的システムの仕様書の構成

アーキテクチャ

概要 システムの仕様をドキュメントに書き出したい時にどういった構成であるべきか考えることが偶にある。 自分的システム仕様書の構成を記す。 新しいプロジェクトの設計フェーズはもちろん、既存システムの仕様理解のためにもなる構成になっているはず。 構成 01_overview.md # 全体概要 02_system_architecture.md # システム構成 03_dat...

システム設計 設計 Tips