プリンキピア

第10章エンタープライズアーキテクチャーとソリューションアーキテクチャーの管理

10.1 Patterns Management10.1 パターンの管理

Learning Objectives学習目標
By the end of this section, you will be able to:
この節を終えると、次のことができるようになる。
• Understand how to apply patterns at various levels of scope
• さまざまな適用範囲の水準で、パターンを適用する方法を理解する
• Organize patterns in hierarchies and leverage pattern catalogs and pattern languages
• パターンを階層に整理し、パターンカタログとパターン言語を活用する
• Relate to the current state of patterns management
• パターン管理の現状を理解し、関連付けて考える
A pattern documents a recurring problem and provides a reusable template in the form of a problem-solution pair within a given context. A pattern is not only a pairing of problem and solution, it provides the rationale that binds the problem and the solution together. Each pattern deals with a specific recurring problem in the design or implementation of a business solution. Patterns can be used to construct architectures at various levels of scope to guarantee specific properties. Patterns also capture existing, well-proven experience in solution development and help promote good design practice.
英語のヒント
パターンは、繰り返し発生する問題を記録し、ある状況での問題と解決策の組という形で、再利用できるテンプレートを提供する。単なる問題と解決策の組み合わせではなく、両者を結び付ける根拠も提供する。各パターンは、事業向けの仕組みを設計・実装するときに繰り返し生じる、特定の問題を扱う。パターンを使えば、さまざまな適用範囲の水準でアーキテクチャを構築し、特定の性質を保証できる。また、仕組みの開発で十分に実証された既存の経験を記録し、優れた設計の実践を促す助けにもなる。

Pattern Hierarchyパターンの階層

Patterns range from abstract to concrete. Abstract patterns represent concepts without physical references (i.e., are not available to the senses). Concrete refers to objects that are available to the senses. For example, freedom is abstract, but the book (on freedom) is concrete.
英語のヒント
パターンには、抽象的なものから具体的なものまである。抽象的なパターンは、物理的な参照対象を持たない、すなわち感覚では捉えられない概念を表す。具体的とは、感覚で捉えられる対象を指す。たとえば、自由は抽象的だが、自由について書かれた本は具体的である。
Design-centric patterns are organized in a pattern hierarchy that includes architectural styles, architectural patterns, and design patterns. An abstract pattern located at the top of the pattern hierarchy is called an architectural style; it captures a set of characteristics and features that make a structure identifiable. Styles are designed to capture knowledge of effective design for achieving specified goals within a particular context. An architectural pattern conforms to specific architectural styles and embodies architecture design decisions that are applicable to recurring design problems. They provide parameterized templates that can be adapted to provide solutions that are suitable to different development context. Design patterns conform to specific architectural patterns and provide granular design components to articulate them.
英語のヒント
設計を中心とするパターンは、アーキテクチャスタイル、アーキテクチャパターン、デザインパターンを含む、パターン階層に整理される。階層の最上部にある抽象的なパターンを、アーキテクチャスタイルという。ある構造を見分けられるようにする、一連の特性や特徴を捉えたものである。スタイルは、特定の状況で所定の目標を達成するための、効果的な設計の知識を記録するよう作られている。アーキテクチャパターンは、特定のアーキテクチャスタイルに従い、繰り返し生じる設計上の問題に適用できる、アーキテクチャ設計上の判断を具体化する。パラメーター化したテンプレートを提供し、それを調整することで、異なる開発状況に適した解決策を作れる。デザインパターンは、特定のアーキテクチャパターンに従い、それを具体的に表現するための、より細かい設計部品を提供する。
1 Divide the problem into subproblems and then combine the subproblem solutions to a final solution.
1 問題を小さな問題に分割し、それぞれの解決策を組み合わせて、最終的な解決策にする。
Once a technology stack that picks specific technologies that should be used to implement the solution has been selected, design-centric patterns can be implemented. Each technology stack has a corresponding implementation-centric pattern hierarchy2 that includes implementation styles, implementation patterns, and idioms. An idiom is a phrase or expression whose meaning cannot be inferred from the literal definitions of its individual words, but instead is understood through common usage within a language.
英語のヒント
仕組みの実装に使う具体的な技術を選んだ技術スタックが決まると、設計を中心とするパターンを実装できる。各技術スタックには、実装スタイル、実装パターン、イディオムを含む、対応した実装中心のパターン階層がある2。イディオムとは、個々の語の文字どおりの定義からは意味を推測できず、その言語で一般的にどう使われるかによって理解される語句や表現である。
Solution architects create several complex processes to successfully implement a business solution. These steps are:
ソリューションアーキテクトは、事業向けの仕組みをうまく実装するために、いくつもの複雑なプロセスを作る。その手順は次のとおりである。
1. Study the elements of technology that can be applied to solve a specific problem.
1. 特定の問題の解決に適用できる、技術の要素を調べる。
2. Propose a combination of building blocks for the best possible fix to the problem.
2. 問題を可能な限り最もうまく解決するための、構成要素の組み合わせを提案する。
3. Design a solution and manage the implementation.
3. 解決策を設計し、その実装を管理する。
After the solution architect finalizes the design and implementation of the solution, the enterprise architects verify that the information technology strategy is aligned with the enterprise mission by analyzing the business properties. Enterprise and solution architects use pattern hierarchies to create best practices for business and technical architectures that guide the implementation of solutions to business problems. Generalization and information hiding are used to keep more abstract patterns at the top of the hierarchy. The technology that allows the management of architecture results from decades of research in patterns management and frameworks used to plan and deliver solutions that meet business and technology strategies.
英語のヒント
ソリューションアーキテクトが仕組みの設計と実装を仕上げると、エンタープライズアーキテクトは事業の性質を分析し、情報技術の戦略が企業の使命と整合していることを検証する。双方のアーキテクトは、パターン階層を使って業務面と技術面のアーキテクチャの優れた実践方法を作り、事業上の問題への解決策の実装を導く。一般化と情報隠蔽によって、より抽象的なパターンを階層の上部に置く。アーキテクチャの管理を可能にする技術は、パターン管理と、事業・技術の戦略を満たす仕組みを計画・提供する枠組みについての、数十年にわたる研究の成果である。
TECHNOLOGY IN EVERYDAY LIFE日常生活の中の技術
Patterns in Everyday Life日常生活の中のパターン
Patterns help us to organize our life activities. For example, using patterns, we can establish our daily activities using process patterns such as “start my day” and decompose this pattern into more specific process patterns such as waking up, eating breakfast, and getting ready for work. It is never the case that specific actions that correspond to these activity patterns occur the same way every day.
英語のヒント
パターンは、日々の活動を整理する助けになる。たとえば「一日を始める」のようなプロセスパターンで日常の活動を定め、それを、起床、朝食、出勤の準備といった、より具体的なプロセスパターンへ分解できる。こうした活動パターンに対応する具体的な行動が、毎日まったく同じように起こるわけではない。
How does the knowledge of patterns help people in everyday life? Provide a couple of illustrative scenarios to explain your opinion. Your scenarios should not be limited to integrating software patterns but rather describe scenarios where people can refer to patterns to analyze real-life situations.
英語のヒント
パターンを知ることは、日常生活でどう役立つだろうか。自分の意見を説明するために、分かりやすい状況例を二つほど示そう。ソフトウェアのパターンを組み合わせることだけに限らず、人々がパターンを参照して現実の状況を分析する場面を述べること。