解法パターン一覧

解法パターン名 概要
Architecture

開発対象を複数のビューで図表化して、ビジネスとテクノロジをつなぐものです。

BOSS-STS構造

上位モジュール(BOSS)が、源泉モジュール(S)、変換モジュール(T)、吸収モジュール(S)に指示を出す設計構造です。

Design

開発プロセスや品質に関する解法パターンを記載します。

Module

関心事を分離して、識別できる単位にすることです。

STS分割

源泉モジュール(S)、変換モジュール(T)、吸収モジュール(S)に分割することです。

Task

動的ビューの設計原則です。並行性やパフォーマンスを改善します。

WhatとHowの分離

何をするのか(What)と、どのように動くのか(How)を切り分けて考える。

イベント駆動の原則

イベントは一箇所で受け取り、アクションは走り切る。

インタフェースと実装の分離

外部から利用される手続きと、内部の実装を分離することです。

カプセル化

変数を隠蔽し、サービス関数を提供することです。

キー変数

問題ドメインの特徴を持つ変数。状態変数やモード変数がキーとなることが多い。

コンポーネント構造図

全体を俯瞰する構造図。アーキテクチャ設計では静的構造図とも呼びます。

シンプルで厳密

良い設計は、シンプル厳密を両立させたものです。

スコーピング

開発の適用範囲を決めること。

セマンティックシフト

異なる問題ドメイン間で、使う用語の意味が変わること。

タスク構造図

動的ビューの構造図です。タスクや割込みという実行要素を構図化して表現します。

ドメイン分割

意味論の異なる問題ドメインの単位に分割することです。

ビューの原則

複数ビューで図表化することで、アーキテクチャを定義します。

ビューポイント特定
フレームワーク

固定部から変動部を呼び出す形式のソフトウェア。

プラットフォーム化
プロダクトライン開発
モデル化の原則
ライブラリ
レベル化

上位が下位のサービスを利用するという依存性を形成すること。

ロールバック設計

戻る単位をあらかじめ設計していくこと。

上位スケジューラ

タイミング合わせは上位で行う。処理内部のdelayでアナログ的な調整をしない。

並行性の原則
例外の原則
分析の原則

WhatとHowを意識して、問題ドメインの本質を探索する思考です。

創発ビューポイント
動的ビュー
単一責務
単方向依存
名前付け

Whatの名称を付ける。

垂直パーティション化
変動点マネジメント
変数スコープの限定
実装ビュー
形状の原則

全体を水平分割垂直分割して、そのルールでコンポーネントを配置する。

情報隠蔽

モジュール内の情報はそのモジュールだけで取り扱うことです。利用のためのインタフェースを公開します。

抽象化と概念化

問題ドメインの本質を見つけて、それに名称を付けて、言語化することです。

捨象

抽象化では本質に着目し、枝葉を捨てます。枝葉を捨てることを「捨象(しゃしょう)」と呼びます。

方針ビュー
概念ビュー
横断的関心

初期化やエラーなど、正常系の設計構造を横断して実現することです。

横断的関心の分離
水平レイヤー化
求心・遠心

求心とは物理値が、徐々に意味づけされ、上位に伝わること。遠心とは、論理値が、徐々に物理値になり、下位へ伝わること。

状態連動

複数の状態遷移が連動して、全体の動きになる設計です。

状態遷移図
異ドメインの分離
疎結合

モジュール間の結合を弱くする。

箱の原則
線の原則
複数ビューポイント

ビューポイントとは視座のことです。複数の視座で観察し図表化することで、製品やシステムのアーキテクチャを表現します。

設計の定石格言

ソフトウェア設計の教訓(Lessons Learned)を列挙しています。

資産化の原則
走り切り

制御スレッドの入口だけでイベント待ちを行い、制御スレッドの途中で待たずに、入口に戻ること。

部品化

インタフェース定義を有し、置換可能なプログラム。

部品化再利用

コンポーネント単位やレイヤー単位で提供インタフェースを開示して、それを利用してアプリケーション開発を行う。

配置の原則
静動分離

静的な論理モジュールと動的な実行モジュールの両面で設計し、一貫性が取れていること。

静的ビュー
高凝集