第2章計算論的思考と設計の再利用性
2.2 Architecting Solutions with Adaptive Design Reuse in Mind2.2 適応的な設計の再利用を念頭に置いた解決策の構築
Learning Objectives学習目標
By the end of this section, you will be able to:
この節を終えると、次のことができるようになる。
• Describe how business solutions design heuristics and how patterns are used
• ビジネスソリューションの設計におけるヒューリスティクスと、パターンの使い方を説明する。
• Discuss the role of enterprise architecture (EA) and related architecture domains
• エンタープライズアーキテクチャー(EA)と、関連するアーキテクチャー領域の役割を論じる。
• Differentiate between enterprise and solution architecture
• エンタープライズアーキテクチャーとソリューションアーキテクチャーを区別する。
While computational thinking commonly employs a bottom-up strategy for crafting well-structured components, adaptive design reuse adopts a top-down methodology, emphasizing the creation and assembly of business solutions by combining existing design components. A design component is a reusable element within a larger system that serves a specific purpose. These components, akin to low-level solution building blocks, necessitate minimal modifications. This approach, often termed computing in the large, diverges from individual algorithmic instructions. Instead of composing instructions for the execution of specific actions through computational thinking’s decomposition, adaptive design reuse identifies fitting components based on the articulated requirements of the business solution’s potential users, commonly referred to as stakeholders. The method(s) used to identify these needs will be discussed in detail in Chapter 9 Software Engineering. While adaptive design reuse typically considers algorithmic designs as building blocks, it uses similar techniques (i.e., decomposition, logical thinking and pattern recognition, abstraction/generalization, componentization, testing, and debugging) to identify and reuse building blocks.
英語のヒント
計算論的思考では、構造の整った部品を作るために、一般にボトムアップの戦略をとる。それに対して、適応的な設計の再利用はトップダウンの方法を採用し、既存の設計部品を組み合わせてビジネスソリューションを作り、組み立てることを重視する。設計部品とは、より大きなシステムの中で特定の目的を果たす、再利用できる要素である。低水準の解決策の構成部品に相当するこれらの部品は、わずかな修正で使える。この方法は、しばしば大規模な単位でのコンピューティングと呼ばれ、アルゴリズムの個々の指示とは異なる。計算論的思考の分解によって特定の動作を実行する指示を組み立てる代わりに、適応的な設計の再利用では、ビジネスソリューションを使う可能性のある人々、一般にステークホルダーと呼ばれる関係者が明示した要件に基づき、適合する部品を見つける。こうしたニーズを特定する方法は、第9章「ソフトウェア工学」で詳しく説明する。適応的な設計の再利用は、通常、アルゴリズムの設計を構成部品として扱うが、部品の特定と再利用には、分解、論理的思考とパターン認識、抽象化・一般化、部品化、テスト、デバッグといった、計算論的思考と似た技法を使う。
The structural designs that stem from the top-down adaptive design reuse approach to business solution design are referred to as business solutions architecture models. A business solution architecture is a structural design that is meant to address the needs of prospective solution users. When a structural design meets these needs, it is considered “architecturally sound” for the problem at hand. Furthermore, to accelerate the putting together of complete solutions, the adaptive design reuse approach relies on architectural models or component assemblies that were developed from previous designs. When the granularity of these architectural models is at the level of subsystems, they are referred to as system family architectures or architectural patterns. An architectural pattern is a reusable solution to a recurring problem in software architecture design. Chapter 10 Enterprise and Solution Architectures Management provides more detail about the various levels of patterns and how to organize them and bookkeep them into pattern catalogs to facilitate reuse.
英語のヒント
ビジネスソリューションの設計に、トップダウンの適応的な設計の再利用を適用して得られる構造設計を、ビジネスソリューションのアーキテクチャーモデルという。ビジネスソリューションのアーキテクチャーとは、将来の利用者のニーズに応えるための構造設計である。そのニーズを満たす設計は、目の前の問題に対して「アーキテクチャーとして適切」であるとされる。さらに、完成した解決策をより速く組み立てるため、この再利用の方法は、過去の設計から開発されたアーキテクチャーモデルや部品の組み合わせを利用する。アーキテクチャーモデルの粒度がサブシステムの水準にある場合、それらはシステムファミリーアーキテクチャー、またはアーキテクチャーパターンと呼ばれる。アーキテクチャーパターンとは、ソフトウェアのアーキテクチャー設計で繰り返し現れる問題に対する、再利用可能な解決策である。第10章「エンタープライズアーキテクチャーとソリューションアーキテクチャーの管理」では、パターンのさまざまな水準と、再利用を容易にするためにパターンを整理し、パターンカタログに記録・管理する方法を詳しく扱う。
Business Solutions Design Patternsビジネスソリューションのデザインパターン
Business solutions are strategies/systems created to solve specific challenges in a business. They aim to make operations more efficient, improve decision-making, and contribute to overall success. Creating business solutions is a multifaceted and intricate process, demanding knowledge in different technological domains and the relevant business sector. A crucial step in this procedure is outlining the solution’s architecture, serving as a master blueprint, and guiding the entire design and implementation process. A blueprint is a detailed plan or design that outlines the structure, components, and specifications of a building, product, system, or process.
英語のヒント
ビジネスソリューションは、事業の特定の課題を解決するために作る戦略やシステムである。業務を効率化し、意思決定を改善し、全体の成功に貢献することを目指す。その作成は、多面的で複雑な過程であり、さまざまな技術分野と、関係する業種についての知識を必要とする。重要な手順の一つは、全体の設計図として設計・実装の過程を導く、解決策のアーキテクチャーを描くことである。設計図とは、建物、製品、システム、過程の構造、構成要素、仕様を示す詳細な計画や設計をいう。
Computational thinking and adaptive design reuse are simply methods used to bootstrap and/or accelerate the design of business solutions by providing a comprehensive set of methods for developing software solutions to business problems—for example, gathering solutions needs, building, and deploying turnkey solutions. These solutions will be discussed in detail in Chapter 9 Software Engineering.
英語のヒント
計算論的思考と適応的な設計の再利用は、ビジネスソリューションの設計を始動させたり、加速したりするための方法である。たとえば、解決策に求められるニーズの収集、構築、すぐに使える完成済みソリューションの導入など、ビジネス上の問題に対するソフトウェアの解決策を開発するための、包括的な方法の一式を提供する。これらの解決策は、第9章「ソフトウェア工学」で詳しく扱う。
As explained earlier, the computational thinking and adaptive design reuse approach only provide high-level techniques to help create or reuse components. As a result, one of the typical criticisms is that these approaches are too vague, as it is sometimes not clear how they differ from other forms of thought. This is why experts at applying these methods are usually seasoned architects who can instinctively recognize when various types of components may be reused. When you ask Thoughtworks’ enterprise architecture expert Martin Fowler why a particular business solution architecture is sound in a given context, he will often reply that it simply “smells good” to him.
英語のヒント
先に説明したように、計算論的思考と適応的な設計の再利用が提供するのは、部品の作成や再利用を支援する高水準の技法に限られる。そのため、ほかの思考法とどう異なるのかがはっきりしないこともあり、曖昧すぎるという批判がよくなされる。これらの方法を使いこなす専門家が、通常、さまざまな種類の部品をいつ再利用できるか直感的に見抜ける、経験豊かな設計者であるのは、そのためである。Thoughtworksのエンタープライズアーキテクチャーの専門家マーティン・ファウラーに、ある状況で特定のビジネスソリューションのアーキテクチャーが適切なのはなぜかを尋ねると、単に「良い匂いがする」からだと答えることが多い。
Rather than looking at computational thinking and adaptive design reuse as a best practice set of techniques, it is best to consider them as process patterns that may be applied and adapted to help create a business solution architecture model, which represents the content of the application architecture. Process patterns may, in turn, leverage other process patterns that are more focused. When process patterns that are an inherent part of the process of creating a work product become rules of thumb, they are referred to as heuristics.
英語のヒント
計算論的思考と適応的な設計の再利用は、最良の実践とされる技法の集まりと見るよりも、適用・調整してビジネスソリューションのアーキテクチャーモデルを作るのに役立つ、プロセスパターンと捉えるのがよい。このモデルは、アプリケーションアーキテクチャーの内容を表す。プロセスパターンは、さらに焦点を絞った別のプロセスパターンを利用することもある。成果物を作る過程に本来備わっているプロセスパターンが、経験的な目安になったものを、ヒューリスティクスという。