要件定義からつながりで理解できる外部設計の基礎|研修コースに参加してみた
今回参加したコースは 要件定義からつながりで理解できる外部設計の基礎 です。
要件定義、外部設計ともに IT エンジニアの腕の見せどころとも言われる工程ですが、「多岐にわたりすぎる + 業界標準がない」ということがネックになり、とても難しいものです。 実は、研修も実施しにくいもので、各社でテンプレートが違うだけでなく、言葉の定義も異なり、設計業務を眺めるだけでも一苦労です。
そんな設計業務を一冊にまとめ、好評を得ているのが 「はじめての設計をやり抜くための本 第2版 概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで」(翔泳社 刊) です。
このコースでは、その著者、 吉原 庄三郎 さんに登壇いただき、外部設計を一通り説明いただくとともに、現場に即した各設計の進め方、注意ポイントを紹介いただきました。
設計に銀の弾丸は無いものの、このコースで礎となる輪郭は掴めました!
では、どのような内容だったのか、レポートします!
コース情報
想定している受講者 | 基本的な Web システムの知識がある方が理解しやすい |
---|---|
受講目標 | 要件定義の手法や開発の手法も企業によりさまざまであるため、できるだけ汎用的な説明をすることで応用可能であることを目指す |
講師紹介
この「参加してみた」レポートでは初登場となる 吉原 庄三郎 さんが登壇されました。
吉原 庄三郎
IT アーキテクトとして数多くのミッションクリティカルシステムの再構築を手掛けた後、 IT コンサルタントとして独立。大手自動車会社のグローバル基幹システムの再構築に携わるなど、エンタープライズ領域におけるシステム開発を多数行う。 その後、大手出版社や大手物流会社にアジャイル開発を導入するなど、アジャイル開発の実践も行っている。最近は幾つもの会社の CTO や役員を行いながら、ビジネス変革を起こすためのエンジニア組織の立ち上げを中心に行っている。
2020 年に株式会社アッパーレイルを設立。 情報経営イノベーション専門職大学(iU)客員教授、株式会社 リピスト 代表取締役社長 を兼務
主な著書
「 はじめての設計をやり抜くための本 第2版 概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで 」(翔泳社 刊) など
まずはコースの狙いから紹介いただいて、スタートしました。
- 外部設計は要件定義の内容を実現する
- 要件定義からのつながりが重要
外部設計とは
まずは外部設計とは何をするのか、概要を紹介いただきました。
なお、研修では 90 ページ弱の資料をご用意いただき、吉原さんに丁寧にご説明いただいたのですが、このレポートではかいつまんで紹介します。 ここでは紹介しきれないノウハウを説明いただいたので、興味がある方はぜひコースにご参加ください!
- 外部設計とは
- 要件定義の内容を実現する方法を検討する
- 要件定義で 明確になっていない要求を明らかにする
- 要件定義とは
- 要件定義では開発工数を見積もる、ということが暗黙の第一義になっている
- 要件を全部出しきれていない
- 機能要件と非機能要件にわかれる
- 要件定義では開発工数を見積もる、ということが暗黙の第一義になっている
- 設計に必要な入力と出力
- 入力は要件定義の成果物
- 要件定義が不十分であれば前工程に差し戻すか、自身で追加
- 出力は設計書
- 入力は要件定義の成果物
- 外部設計には業務知識が必要
- ただし会社によって異なる( ex. 会計ルール)
随所に要件 / 要求の漏れに関して言及されていて、それだけ起こりやすい、ということがわかりますね。 また最後の業務知識は厄介すぎます。 会社独自ルールの読み替えとか大変 … 。
外部設計の成果物
外部設計の出力となる設計書ですが、どんなものがあるのでしょうか。
- 成果物の例
- ユーザーストーリー / ユースケース分析 // 要件定義に入ることもある
- 概念モデリング // 要件定義に入ることもある
- 画面設計
- その他(帳票など)
- データベース論理設計
多い! 一つひとつが大変な設計なのに、これが多種類にも渡るとなると、「複数人でやる + 定義がずれない漏れない」となって、めちゃくちゃムズい。
機能要件
ここからは先程の設計書を詳細に見てみましょう。 まずはユーザーストーリーなどで明らかにする機能要件についてです。
- 業界標準は ない
- 2 つの代表的な記述方法がある
- ユーザーストーリー
- アジャイルでよく使われる
- INVEST で考えると良い
- Independent (独立している)
- Negotiable (交渉できる [代替策と])
- Valuable (価値がある)
- Estimable (見積もり可能)
- Small (サイズが小さい)
- Testable (テスト可能)
- ユースケース
- UML のユースケース図やユースケース記述(シナリオ)
- ユーザーストーリー
- どちらとも制約条件を書けない
- ビジネスルールという記述で制約条件が書ける
- 概念モデル がある
- 概念モデルは色々な書き方があるが、 UML のクラス図でもかける
ユーザーストーリーなりユースケースを書くときに悩むことの一つが、その大きさや粒度なのですが、なるほど、 INVEST で考えると適切になりそうです。
演習しよう
ここまでの内容をもとに機能要件を設計書にする演習をしてみます。
- Amazon の以下業務を題材にユーザーストーリーとユースケースを抽出
- 対象業務はログイン~商品検索~決済~注文確認~配送
なお、図を書くにあたって以下の定番ツールをオススメされました。 GitHub などとも連動できて便利です。
画面設計
機能要件の設計に続き、外部設計のアウトプットとなる設計書の 2 つめとして画面設計を取り上げます。
- システムとデザインの中間。 デザインではない
- 画面の種類は Web ブラウザ or スマートフォンアプリ
- 作るもの
- UI 設計ポリシー
- 統一感のあるユーザビリティを実現する目的
- 前提としてブラウザや解像度、文字コードなども決める
- 画面レイアウトのパターン(ヘッダやフッタ、ボディなど)
- 画面機能やパターン(検索や一覧)
- 画面項目(ex. 都道府県をリスト表示)など
- 統一感のあるユーザビリティを実現する目的
- 画面遷移図
- これまでの設計ポリシーなどを使って、図で表現する
- 画面は名前だけでなく ID 管理すると良い
- 画面モックアップ
- ワイヤーフレームやモックアップツール( Figma など)を使う
- 画面入力チェック仕様
- モックアップをもとに入力項目の入力ルールを決める
- UI 設計ポリシー
“システムとデザインの間” とは、とてもいい表現ですね。 toB のアプリケーションとなると、同じような画面が多いので、 UI 設計ポリシーなどがあると、とても理解が進みますし、合意が取りやすいですね。
その他の外部設計
そのほか帳票設計やデータベース論理設計にもふれていただきました。
- 外部システムインターフェース
- ex. EC と 基幹システムや決済代行などとのインターフェースの設計
- 同期 / 非同期なのか、まず決めよう
- それにより WebAPI (同期)なのか、 pub/sub (非同期)なのかなどが決まっていく
- 非同期ならバッチを使うのかどうかなど
- その前に仕様確認と疎通テストをしよう
- バッチ設計
- 主には実行タイミング、ジョブ制御、トランザクション、リカバリなどを考える
- 難しいのがパフォーマンスと例外処理
外部システムインターフェイスは、モダンな開発では肝になる部分なので、進め方の参考になりますね。
非機能要件
最後に大ボスの非機能要件です。
- 運用してからなので、気づきにくい
- IPA から 非機能要求グレード が発表されていて、かなり汎用的に使える
- ただし、とても検討項目が多いので、網羅しようと思わないこと
- SLI / SLO / SLA を決める場合もある
- SLI (Service Level Indicators): 可用性、レイテンシ、スループットなど計測する指標を定義する
- SLO (Service Level Objectives): SLI で定義した項目の目標値( ex. 可用性 min 99.99 % )
- SLA (Service Level Agreements): SLO の項目の中からユーザと契約する項目を決める
SLI / SLO / SLA は Google が発表した SRE 本で一気にメジャーになりましたね。
この非機能要件を説明いただいたところで、このコースは修了しました。
まとめ
外部設計でアウトプットする設計書ごとに、どのように進めるべきなのか、解説いただきました。 各設計書を作成する際、困るだろうなというポイントが紹介されたので、とても参考になりました。
それにしても外部設計はとっても決める範囲が広いですね … 。 気になって、研修の最後の質問コーナーで吉原さんに聞いてみました。
Q. 一番よく使う機能、画面から設計、レビューをもらってから進めるなど上手いやり方がありそうに思いますが、そういったテクニックをまとめたものがあれば、教えてもらえますでしょうか?
A. 残念ながら、銀の弾丸はありません。 強いていうと DDD やクリーンアーキテクチャなどは参考になるかも知れません。
これは腰を据えて設計スキルを積み上げるほかないですね。 それだけ IT エンジニアとして腕の見せどころなのかも知れません。
はじめて外部設計に取り組むという方にはとてもオススメのコースでした!
label SEカレッジを詳しく知りたいという方はこちらから !!
IT専門の定額制研修 月額28,000円 ~/ 1社 で IT研修 制度を導入できます。
年間 900 コースをほぼ毎日開催中!!
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。