【読書メモ】モデルベース要件定義テクニック

# 要件定義の作業フロー

![business_model.RDRA.全体 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/db59ee68-0fb1-b68e-00cb-ee9cd4cf7d98.png)

## システム価値の整理

システムを使って生み出す価値を整理する。

### 作業の流れ

![business_model.RDRA.システム価値.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/9453dba1-d24d-205e-4258-0ffe54a29006.png)

### 使用するモデル

![object_model.システム価値.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/0cee70b9-6456-428a-d444-42ed62767fbb.png)

モデル記法については下記を参照。

* [コンテキストモデル](#コンテキストモデル)
* [要求モデル](#要求モデル)

## システム外部環境の整理

システムを取り巻く環境を整理する。

### 作業の流れ

![business_model.RDRA.システム外部環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/019f3d14-e07c-fabc-e4cb-842a27983c0a.png)

### 使用するモデル

![object_model.システム外部環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/2358f508-5ea3-1c6c-a00c-f9bffe9cbb08.png)

モデル記法については下記を参照。

* [業務モデル](#業務モデル)
* [利用シーンモデル](#利用シーンモデル)
* [概念モデル](#概念モデル)

## システム境界の整理

システムとの接点を整理する。

### 作業の流れ

![business_model.RDRA.システム境界 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/ebdc7d88-5287-b857-6a86-4d0d80c8577b.png)

### 使用するモデル

![object_model.システム境界.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/c7889fd8-9e67-bf7e-07e7-f0e45a472636.png)

モデル記法については下記を参照。

* [ユースケースモデル](#ユースケースモデル)
* [画面モデル](#画面モデル)
* [イベントモデル](#イベントモデル)
* [プロトコルモデル](#プロトコルモデル)

## システムそのものの整理

システムそのものを整理する。

### 作業の流れ

![business_model.RDRA.システム.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/92f6c61f-9062-f279-5845-0e9a5f309e2b.png)

### 使用するモデル

![object_model.システム.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/f9fc0c10-7197-e388-1c2f-b2caf6ae079d.png)

モデル記法については下記を参照。

* [機能モデル](#機能モデル)
* [データモデル](#データモデル)
* [ドメインモデル](#ドメインモデル)

# モデル記法

## コンテキストモデル

![context_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/17db2c3d-0a9b-d022-8ca5-760cb210d1c8.png)

## 要求モデル

![requirements_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/5b2662ad-cd4b-1420-e5f6-28467ef8751f.png)

## 業務モデル

![business_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/56e99007-70f6-c5e8-1071-ffd794718eb3.png)

## 利用シーンモデル

![scene_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/57b828f3-0c3f-d3eb-6ef1-e2afc2f618e2.png)

## 概念モデル

対象業務で使用されている用語や概念を [クラス図](https://qiita.com/JhonnyBravo/items/b87804df792406818a95#%E3%82%AF%E3%83%A9%E3%82%B9%E5%9B%B3) を使用して表現する。

## ユースケースモデル

システム化する範囲と、システムに関わる関係者を [ユースケース図](https://qiita.com/JhonnyBravo/items/b87804df792406818a95#%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E5%9B%B3) を使用して表現する。

## 画面モデル

![screen_documents_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/ceb498a5-37b8-fbca-c7cc-277907810049.png)

## イベントモデル

![event_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/d520151e-a980-c5d7-d8a2-55922ea94ce8.png)

## プロトコルモデル

データ入出力と状態遷移を [ステートマシン図](https://qiita.com/JhonnyBravo/items/b87804df792406818a95#%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%9E%E3%82%B7%E3%83%B3%E5%9B%B3) を使用して表現する。

## データモデル

システム上で使用されるデータとデータの関係を [クラス図](https://qiita.com/JhonnyBravo/items/b87804df792406818a95#%E3%82%AF%E3%83%A9%E3%82%B9%E5%9B%B3) を使用して表現する。

## ドメインモデル

複雑な情報構造を [クラス図](https://qiita.com/JhonnyBravo/items/b87804df792406818a95#%E3%82%AF%E3%83%A9%E3%82%B9%E5%9B%B3) を使用して表現する。

## 機能モデル

![function_model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98355/09bbae33-04fd-6370-3d56-0905b8f6e46e.png)

# 参考資料

|著者|書名|出版社|出版年|
|---|---|---|---|
|神崎善司|モデルベース要件定義テクニック|秀和システム|2018|