見出し画像

学習メモその2:UML モデリングのエッセンス 第2版

見出しの画像はUMLの公式ロゴです。

メモの経緯

今回は第1章:UMLの概要です。

メモ

オブジェクト指向

Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

https://en.wikipedia.org/wiki/Object-oriented_design

オブジェクト指向設計は、ソフトウェアの問題を解決するために、相互作用するオブジェクトのシステムを計画するプロセスです。ソフトウェア設計の1つのアプローチである。

オブジェクト指向・オブジェクト指向設計のパターンに関する調査はこちらで行なっています。


設計方法論

MODELS VS. METHODOLOGIES

https://www.uml.org/what-is-uml.htm

英語では単に「methodology」という単語で使われていました。
意味は

体系として構築されたメソッド群。

https://www.weblio.jp/content/Methodology


Booch

Grady Booch (born February 27, 1955) is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh. He is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments.

https://en.wikipedia.org/wiki/Grady_Booch

Grady Booch(1955年2月27日生まれ)は、アメリカのソフトウェア技術者で、Ivar Jacobson、James Rumbaughとともに統一モデリング言語(UML)を開発したことで知られている。ソフトウェアアーキテクチャ、ソフトウェアエンジニアリング、共同開発環境における革新的な業績で国際的に知られている。


Rumbaugh

James E. Rumbaugh (born August 22, 1947) is an American computer scientist and object-oriented methodologist[1] who is best known for his work in creating the Object Modeling Technique (OMT) and the Unified Modeling Language (UML).

https://en.wikipedia.org/wiki/James_Rumbaugh

James E. Rumbaugh(1947年8月22日生まれ)は、アメリカのコンピュータ科学者、オブジェクト指向の方法論者で、オブジェクトモデリング技術(OMT)と統一モデリング言語(UML)を作ったことで知られている。


OMT

The object-modeling technique (OMT) is an object modeling approach for software modeling and designing. It was developed around 1991 by Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems and to support object-oriented programming. OMT describes object model or static structure of the system.

https://en.wikipedia.org/wiki/Object-modeling_technique

オブジェクトモデリング技術(OMT)は、ソフトウェアのモデリングと設計のためのオブジェクトモデリング手法の一つです。1991年頃、Rumbaugh, Blaha, Premerlani, Eddy, Lorensenによって、オブジェクト指向システムの開発およびオブジェクト指向プログラミングを支援するための手法として開発された。OMTは、システムのオブジェクトモデルや静的構造を記述する。


Jacobson

Ivar Hjalmar Jacobson (born 1939) is a Swedish computer scientist and software engineer, known as major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development and Essence.

https://en.wikipedia.org/wiki/Ivar_Jacobson

Ivar Hjalmar Jacobson(1939年生まれ)は、スウェーデンのコンピュータ科学者、ソフトウェア技術者。UML、Objectory、Rational Unified Process (RUP)、アスペクト指向ソフトウェア開発、Essenceの主要な貢献者として知られる。


モデリング言語(modeling language)

Modeling is the designing of software applications before coding.

https://www.uml.org/what-is-uml.htm

モデリングとは、コーディングの前にソフトウェアアプリケーションの設計を行うことです。

設計を表現するために方法論で使用される記法(主にグラフィカルなもの)のことを指します。

UML モデリングのエッセンス 第2版


プロセス(process)

設計を行うために踏むべき手順に関する、方法論の中の指示の部分を指します。

UML モデリングのエッセンス 第2版


RUP(Rational Unified Process)

The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.[1] RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

https://en.wikipedia.org/wiki/Rational_Unified_Process

Rational Unified Process (RUP) は、IBMの一部門であるRational Software Corporationが2003年から作成している反復型ソフトウェア開発プロセスのフレームワークである。RUPは単一の具体的な規定プロセスではなく、開発組織やソフトウェアプロジェクトチームがそのニーズに合わせて適切なプロセスの要素を選択して調整できるように意図した、適応可能なプロセスのフレームワークである。RUPはユニファイドプロセスの具体的な実装である。


記法(notation)

In linguistics and semiotics, a notation is a system of graphics or symbols, characters and abbreviated expressions, used (for example) in artistic and scientific disciplines to represent technical facts and quantities by convention. Therefore, a notation is a collection of related symbols that are each given an arbitrary meaning, created to facilitate structured communication within a domain knowledge or field of study.

https://en.wikipedia.org/wiki/Notation

言語学や記号論において、表記法とは、芸術や科学の分野で技術的な事実や量を慣習的に表すために(例えば)用いられる図形や記号、文字、省略表現などの体系である。したがって、表記法は、領域知識や研究分野の中で構造化されたコミュニケーションを促進するために作られた、それぞれに任意の意味を与えられた関連記号の集まりであると言える。


形式的アプローチ

形式的アプローチがなかなか見つからなかったので、形式手法と訳されるFormal methodsが近いように思えたので調べました。

Formal methods are techniques used to model complex systems as mathematical entities. By building a mathematically rigorous model of a complex system, it is possible to verify the system's properties in a more thorough fashion than empirical testing.

https://users.ece.cmu.edu/~koopman/des_s99/formal_methods/

形式手法とは、複雑なシステムを数学的実体としてモデル化するための技術である。複雑なシステムを数学的に厳密にモデル化することで、経験的なテストよりも綿密な方法でシステムの特性を検証することが可能となる。


メタモデル

A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling a predefined class of problems. As its name implies, this concept applies the notions of meta- and modeling in software engineering and systems engineering. Metamodels are of many types and have diverse applications.

https://en.wikipedia.org/wiki/Metamodeling

メタモデルやサロゲートモデルはモデルのモデルであり、メタモデリングはそのようなメタモデルを生成するプロセスである。したがって、メタモデリングまたはメタモデリングとは、あらかじめ定義された問題のクラスをモデル化するために適用可能かつ有用なフレーム、ルール、制約、モデル、理論の分析、構築、開発である。この概念は、その名が示すように、ソフトウェア工学やシステム工学におけるメタとモデリングの概念を応用したものである。メタモデルには多くの種類があり、その用途も多様である。


CRCカード

Class-responsibility-collaboration (CRC) cards are a brainstorming tool used in the design of object-oriented software. -略- It's often handy to have a CRC card session to explore design alternatives and then use sequence diagram to capture any interactions that you want to refer to later. CRC cards are part of the design phase within system/software development and gives a good overview if you go from use case descriptions to CRC cards and then to class diagrams. This allows a smoother transition with a greater overview and allows the developer to easier implement a system with low binding and high cohesion.
-略-
Using a small card keeps the complexity of the design at a minimum. It focuses designers on the essentials of the class and prevents them from getting into its details and implementation at a time when such detail is probably counter-productive. It also discourages giving the class too many responsibilities. Because the cards are portable, they can easily be laid out on a table and re-arranged while discussing a design.

https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card


CRC(Class-responsibility-collaboration) カードは、オブジェクト指向ソフトウェアの設計に用いられるブレーンストーミングツールである。-略- CRCカードのセッションで設計の選択肢を検討し、後で参照したいインタラクションをシーケンス図に書き出すと便利なことがよくあります。CRCカードは、システム/ソフトウェア開発の設計段階の一部であり、ユースケース記述からCRCカード、そしてクラス図へと進むと、良い概観を得ることができます。これにより、全体像を把握しながらスムーズに移行することができ、開発者は拘束力が低く、結合力の高いシステムを容易に実装することができます。
-略-
小さなカードを使うことで、デザインの複雑さを最小限に抑えることができます。設計者をクラスの本質に集中させ、その詳細や実装が逆効果になることを防ぐことができます。また、このカードは、クラスに多くの責任を負わせることもありません。カードは持ち運びができるので、テーブルの上に並べて、デザインを議論している間に簡単に並べ替えることができます。


相互作用図

相互作用図は「The Booch notation」の中に含まれこの表記は以下の表ように区別されています。


クラス図

The class diagram is the main building block of object-oriented modeling. It is used for general conceptual modeling of the structure of the application, and for detailed modeling, translating the models into programming code. Class diagrams can also be used for data modeling. The classes in a class diagram represent both the main elements, interactions in the application, and the classes to be programmed.

https://en.wikipedia.org/wiki/Class_diagram

クラス図は、オブジェクト指向のモデリングの主要な構成要素です。アプリケーションの構造を表す一般的な概念的モデリングと、モデルをプログラミング・コードに変換する詳細なモデリングに使用されます。クラス図は、データ・モデリングにも使用することができます。クラス図のクラスは、アプリケーションの主要な要素、相互作用、およびプログラミングされるクラスの両方を表します。


パターンの概念

パターンはさまざまな個所で現れる、システムで使用する主要なアイデアを記述するために使用します。

UML モデリングのエッセンス 第2版


反復型開発

反復は、機能という観点からインクリメンタル(incremental)に積み上げられていきます。それぞれの反復は以前の反復で開発されたユースケースの上に構築されます。

反復は、コードという観点からは反復型(iterative)で繰り返し実施されます。それぞれの反復には既存のコードに、より柔軟性を持たせるためのコードの書き直しも含まれます。

UML モデリングのエッセンス 第2版


ユースケース

ユースケース(use case)は、構築するシステムの、ある側面のスナップショットで、ユースケースすべてを集めたものがそのシステムを外側から見た様子を表し、そのシステムで何ができるかを説明しています。

UML モデリングのエッセンス 第2版


アクティビティ図

ワークフローを接続したり、多くの並列処理を伴う振る舞いを記述したりするのに特に役立ちます。

UML モデリングのエッセンス 第2版


リスポンシビリティ指向

responsibilityとは

意味・対訳
責任、責務、義理、(具体的な)責任、負担、重荷、信頼性、確実度

https://ejje.weblio.jp/content/responsibility

責務(リスポンシビリティ)

https://www.itmedia.co.jp/im/articles/0407/16/news081.html

The UML defines a responsibility as “a contract or obligation of a classifier”.

https://www.oreilly.com/library/view/applying-uml-and/0130925691/0130925691_ch16lev1sec2.html

UMLでは、責任を「分類子の契約または義務」と定義している。

参考;「Chain of Responsibility」


リアルタイムシステム

Real-time computing (RTC) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines".

https://en.wikipedia.org/wiki/Real-time_computing

リアルタイム・コンピューティング(RTC)とは、イベントからシステム応答まで、「リアルタイム制約」を受けるハードウェアおよびソフトウェアシステムを指すコンピュータサイエンス用語である。リアルタイム・プログラムは、指定された時間内での応答を保証しなければならず、しばしば「デッドライン」と呼ばれる。



最後までお読みいただきありがとうございます。

この記事が気に入ったらサポートをしてみませんか?