Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ユースケースリファクタリング/usecase-refactoring

tokudiro
October 23, 2019
380

 ユースケースリファクタリング/usecase-refactoring

tokudiro

October 23, 2019
Tweet

Transcript

  1. ユースケースとは? ユースケース(Use Case)は、ソフトウェア工学やシステム工学でシステム(あるいはシステムのシステム) の機能的要求を含む振舞を把握するための技法である。各ユースケースは、何らかの目的・目標/機能 に関する台本(シナリオ)での主体(アクター(actor))と呼ぶ利用者(ユーザ)とシステムのやりとりを描い ている。ユースケースのアクターはエンドユーザーの場合もあるし、別のシステムの場合もある。ユース ケースでは技術専門用語をなるべく使わず、エンドユーザーやそのビジネスの専門家に分かり易い用語 を用いる。ユースケースの作成は、ビジネスアナリストとエンドユーザーが共同で行う。ユースケースを図 にしたものがユースケース図であり、両者を厳密に区別すべき根拠はない。 1986年、後に統一モデリング言語(UML)やラショナル統一プロセス

    (RUP) で重要な役割を演じたイ ヴァー・ヤコブソンは、初めてユースケースの視覚化モデリング技法を成文化した。当初彼は usage scenarios とか usage case という用語を使用していたが、それらが英語として不自然であると気づき use case という用語を使うようになった。ヤコブソンが創始したユースケースのモデリングに対して、Kurt Bittner、アリスター・コーバーン、Gunnar Overgaard といった人々が改良を加えていった。 1990年代、ユースケースは機能要求を含む振舞を把握する手法として使われるようになってきた。発祥 の分野であるオブジェクト指向関連で顕著である。ユースケースの有効性はオブジェクト指向に限らない。 ユースケースの仕様は、オブジェクト指向とは直接的な関係がない。 システム工学において、ユースケースはソフトウェア工学よりも抽象度の高いレベルで利用され、システ ムの任務やシステム保有者の目標を描くのに使われる。より詳細な要求は SysML のリクワイアメント図 などで把握される。 「ウィキペディア」より ( https://ja.wikipedia.org/wiki/ユースケース )
  2. ユースケース実践ガイド 本書は、実際の開発プロジェクトにおいて、 ユースケースを書くための実践的な知恵、 ノウハウをまとめたものである。ユース ケースの表記法の解説書ではなく、表記 法をマスターした開発者が、実際のプロ ジェクトでユースケースを書く際に役に立 つ実践的なガイドである。UMLをひととおり マスターしている管理者、技術者に向けて 書かれているが、UMLを知らない方でも、

    システムの要件分析の実践的ガイドとして も活用できる。コーバーン氏の今までの活 動を1冊の本にまとめたものであり、地に 足のついたプラクティスを体系的に説明。 ユースケースの入門を終えた技術者が、 プロジェクトで本当に使えるための知恵、ノ ウハウを学ぶための格好の一冊。 Amazon.co.jpより
  3. (参考)FURPS 機能性 (Functionality) 機能(機能セットのサイズと一般性)、再利用性(互換性、相互運用性、 移植性)、セキュリティ(安全性と悪用性) ユーザビリティ (Usability) 人的要因、美学、一貫性、ドキュメンテーション、応答性 信頼性 (Reliability)

    可用性(障害頻度(堅牢性/耐久性/復元力)、障害の範囲と期間(回 復可能性/生存可能性))、予測可能性(安定性)、精度(頻度/エラー の重大度) パフォーマンス (Performance) 速度、効率、リソース消費(電力、RAM、キャッシュなど)、スループット、 容量、スケーラビリティ サポート性 (Supportability) テスト容易性、柔軟性(可換性、構成可能性、適応性、拡張性、モ ジュール性)、インストール可能性、ローカライズ可能性 「wikipedia」より 非機能要求
  4. (参考)フィーチャーモデルを ユースケースで表現する https://www.atmarkit.co.jp/fdotnet/softfactory/softfactory03/softfactory03_02.html フィーチャモデルのサンプル 購入者 分析 extension points 書籍を購入する 分類

    extension points カタログを管理する <<include>> 注文を処理する <<include>> カタログを検索する <<include>> カタログを分類する <<extend>> 決済 extension points 課金を処理する <<include>> データ分析をする <<extend>> クレジット決済を する <<extend>> 現金決済をする <<extend>> ユースケースでの表現