okuzawatsの日記

Android / Kotlin Enthusiast 🤖

巨大な泥団子

巨大な泥団子(Big Ball of Mud)は、Brian Foote、Joseph Yoderによって書かれた1997年の論文のタイトルです。「進化的アーキテクチャ 絶え間ない変化を支える」「ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ」でも引用されています。

この論文の中では、論文と同名の「巨大な泥団子」というソフトウェアの状態について語られています。「巨大な泥団子」とは、要するに、構造を持たず、要素間が密に結合し、ソフトウェア全体がひとつの大きな塊となっている状態です。すなわち、「認識できるアーキテクチャが不在の状態」(Mark他 (2022))と言えます。巨大な泥団子状態のソフトウェアは、構造がないため、一般に変更が困難です。

物理的な、泥団子について考えます。泥団子は、構造を持ちません。少なくともマクロな視点から認識できる構造はありません。また、要素同士が結びついており、ひと塊の物体となっています。

ソフトウェアが「巨大な泥団子」となっている時も、まさしくソフトウェアはこの泥団子のような状態になっていると言えます。「巨大な泥団子」という言葉は、このようなソフトウェアの状態を表す的確な比喩であると思います。

Reference

  1. Brian Foote, Joseph Yoder, Big Ball of Mud, 1997, retrieved from http://www.laputan.org/mud/mud.html
  2. Neal Ford, Rebecca Parsons, Patrick Kua, 進化的アーキテクチャ 絶え間ない変化を支える, 2018, オライリー・ジャパン
  3. Mark Richards, Neal Ford, ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ, 2022, オライリー・ジャパン

#Design

About me 😎

profile

茨城県つくば市在住のソフトウェアエンジニアです。専門領域はAndroidアプリ開発で、特にアーキテクチャに興味があります。某社でAndroidアプリ開発のテックリードをしています。

Jetpack ComposeによるAndroid MVVMアーキテクチャ入門の著者です。

👉 もっと詳しく

Writing 📝

Android MVVMアーキテクチャ入門

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。

👉 もっと詳しく

See Also 👀