Skip to main content
ケーススタディ
2024年10月24日
浅海智晴
クラウドアプリケーションのための
オブジェクト指向分析設計講座
第40回
SimpleModeling2021
• オブジェクト指向分析設計での共通範囲
• UML/UP
• 本講座で使用するUMLプロファイル
• プロファイル:SimpleModeling2021 (SM2021)
• オブジェクト指向分析設計の基本からの拡張部を明確化
• アジャイル開発
• Communication
• Embrace Change
• Travel Light
• Scaling
• Component-Based Development
• クラウド・アプリケーション
• モデル駆動開発
SM2021
Travel Light
Embrace Change
Cloud
Model-Driven
Scaling
CBD
Testability
Serviceability
• 非機能要件
• Testability
• Serviceability
第1部 基本編の構成(1)
• 概論 [第1回]
• 開発プロセス [第2回]
• 基本モデル [第3回]
• 静的モデル(1) [第4回]
• 静的モデル(2) [第5回]
• 動的モデル [第6回]
• 協調モデル [第7回]
• 関数モデル [第8回]
• 物理モデル [第9回]
• 作業分野 [第10回]
• ビジネス・モデリング [第11回]
• 要求 [第12回]
• 要求/ユースケース [第13回]
• 要求/シナリオ [第14回]
• 分析 [第15回]
• 分析/コンポーネント分析 [第16回]
• 分析/イベント駆動 [第17回]
• 作業分野
• 設計 [第18回]
• 設計/アーキテクチャ設計 [第19回]
• 設計/コンポーネント設計(1) [第20回]
• 設計/コンポーネント設計(2) [第21回]
• 設計/コンポーネント設計(3) [第22回]
• 設計/ドメイン設計(1) [第23回]
• 設計/ドメイン設計(2) [第24回]
• 設計/ドメイン設計(3) [第25回]
• 設計/ドメイン設計(4) [第26回]
• 設計/ドメイン設計(5) [第27回]
• 設計/原理 [第28回]
• 設計/ UX/UI設計 [第29回]
• 実装(1) [第30回]
• 実装(2) [第31回]
• 実装(3) [第32回]
• テスト [第33回]
第1部 基本編の構成(2)
• アプリケーション・アーキテクチャ [第34回]
• Cloud Native CBD [第35回]
• ドメイン・サブシステム [第36回]
• アプリケーション・サブシステム [第37回]
• プレゼンテーション・サブシステム [第38回]
• Cloud Native Component Framework [第39回]
• ケーススタディ[第40回]
• ビジネス・モデル [第41回]
• 要求モデル [第42回]
• 分析モデル [第43回]
• 設計モデル [第44回]
• 実装 [第45回]
• テスト [第46回]
本講座のアプローチ
• オブジェクト指向分析設計の基本を確認
• UML + UP(Unified Process)
• CBD (Component-Based Development)
• 最新技術でアップデート
• クラウド・コンピューティング
• イベント駆動、分散・並列
• ビッグデータ、AI、IoT
• コンテナ
• 関数型
• OFP(Object-Functional Programming), Reactive Streams
• ルール, AI
• DevOps
• アジャイル開発
• DX (Digital Transformation)
第25回 アプリケーション・アーキテクチャ
第2回 開発プロセス
第9回 物理モデル
第11回 ビジネス・モデリング
第2部 クラウド・アプリケーション編
第21回 設計/ドメイン設計
第20回 設計/コンポーネント設計
第2部 クラウド・アプリケーション編
原理 (Principle)
• Agile Software Development [ASD]
• SRP (The Single Responsibility Principle)
• OCP (The Open-Close Principle)
• LSP (The Liskov Substitution Principle)
• …
• GRASP (General Responsibility Assignment Software Patterns or principles)
• Low Coupling
• High Cohesion
• …
• Writing Effective Use Cases [WEUC]
• Scope
• …
パターン (Pattern)
• Design Patterns [DP]
• Observer, Strategy, …
• Domain Driven Design [DDD]
• Ubiquitous Language, Intention-
Revealing Interfaces, …
• Analysis Patterns [AP]
• Party, Quantity, …
• Pattern-Oriented Software
Architecture [POSA]
• Layers, Pipes and Filters, …
• Patterns of Enterprise
Application Architecture [PEAA]
• Unit of Work, Data Transfer Object,
…
• Enterprise Integration Patterns
[EIP]
• Message Bus, Aggregator, …
• Patterns for Effective Use
Cases [PEUC]
• CompleteSingleGoal,
VerbPhraseName, …
• AntiPatterns [AnP]
• Stovepipe System, Analysis
Paralysis, …
内容
• ケーススタディ
• Essence
• 開発プロセス
ケーススタディ
ここまでの流れ
• オブジェクト・モデル
• UML (Unified Modeling Language)
• 開発プロセス
• UP (Unified Process)
• アジャイル開発
• CBD (Component-Based Development)
• Cloud Native CBD
第2回 開発プロセス
目的
• UML/UPでオブジェクト指向開発の作業手順、モデル構築の全
体像を把握
• UPではこれらの作業手順、使用するモデルをプロジェクト毎にチュー
ニングしてマイ開発プロセス化する
• アジャイル開発&Cloud Nativeに対応したマイ開発プロセスへ
の頭出し
• 仮想のミニ・プロジェクトを題材にしてマイ開発プロセスの
ベースとなるアジャイル開発、Cloud Nativeを実現する必要最
小限の開発プロセスを定義する
ケーススタディ
• ブック・カフェPieris Booksの販売システム
• 新刊・古本などの書籍に加えてアクセサリーや日用品などのセ
レクト商品を販売
• もともと新刊・古本の販売も行うブックカフェでしたが、新し
くアクセサリーや日用品のセレクト商品販売を併設することに
した
• セレクト商品は見本品の展示を基本と考えており、見本品に対
してECでオーダをする方式を主に考えている
• 見本品はECサイトでの販売も行う
開発体制
• 背景
• オブジェクト指向分析設計に興味を持つ関係者がいない環境
• クラウド・アプリケーション開発、アジャイル開発、
• 自分一人でアジャイル開発によるオブジェクト指向開発を進める
• 登場人物
• A(私) : バックエンド開発
• 開発プロセスをマスターして、より大きな規模の開発につなげたい
• Uさん:フロントエンド開発
• 手練れのUIエンジニア。モデリングには興味がなくプログラミング中心で開発を行う
• Bさん:ブック・カフェPieris Booksの店長
• ビジネスでやりたいことは明確にもっているが、ビジネス・モデリング的なアプロー
チには興味がない
Essence
Essence
• 開発プロセスの記述言語
• カーネル
• 骨組みを定義
• プラクティス
• 具体的な活動を定義
• カーネル+プラクティス群で開発プロセスを定義する
• OMG標準
• Essence 1.2 (2018-07)
• Essence 2.0beta (2024-06)
• OMG
• https://www.omg.org/spec/Essence
• SEMAT
• https://semat.org/
• Ivar Jacobson International
• https://www.ivarjacobson.com/
Essenceの構成
• Alpha
• ソフトウェア開発の重要項目
• Alpha State
• Alphaの状態
• Areas of Concern
• 関心分野
• Activity Space
• アクティビティ空間
• Activity
• 開発活動
• Work Product
• 成果物
• Competency
• 開発を遂行する能力
• Pattern
• Essenceの枠組みにはまらない
要素をパターンとして表現
• Practice
• Essenceを拡張する枠組み
Areas of Concern
• 3つの関心分野を定義
• Customer
• 開発の起点となるビジネスの理解と価値の提供
• Solution
• ソフトウェア開発活動本体
• Endeavor
• 開発の進め方
Alpha
• ソフトウェア開発における計測可能な重要項目
• Alphaの状態(Alpha State)でソフトウェア開発の状況を観測
• Customer
• Opportunity : ソフトウェア開発でやりたいこと
• Stakeholders : 利害関係者
• Solution
• Requirements : 要求仕様
• Software System : 開発対象のソフトウェアシステム
• Endeavor
• Work : 開発作業
• Team : 開発チーム
• Way of Working : 開発の進め方
Areas of ConcernとAlpha
Activity Space
• Activityを束ねる空間
• すべきことを定義
• Essence Standardの定義
• Customer
• Explore Possibilities
• Understand Stakeholder Needs
• Ensure Stakeholder Satisfaction
• Use the System
• Solution
• Understand the Requirements
• Shape the System
• Implement the System
• Test the System
• Deploy the System
• Operate the System
• Endeavor
• Prepare To Do the Work
• Coordinate Activity
• Support the Team
• Track Progress
• Stop the Work
Activity
• ソフトウェア開発の活動
• UP(Unified Process)のActivityとは目的が異なる
Competency
• Activityを遂行するための能力
• レベル
• Assists, Applies, Masters, Adapts, Innovates
• Customer
• Stakeholder Representation
• Solution
• Analysis, Development, Testing
• Endeavor
• Leadership, Management
Pattern
• Essenceの枠組みにはまらない要素をパターンとして表現
• Patternの例
• Role : 開発参加者のロール
• Checkpoint : 開発の取り組み(Endeavor)のチェックポイント
Work Product
• Activityの結果作成される成果物
• UMLの成果物(Artifact)に相当
Practice
• Essenceを拡張する枠組み
• 開発プロセスに追加する仕組みを束ねる
• Practiceは主に以下の要素から構成される
• Alpha, Activity, Work Product, Competency, Pattern
主なPracticeとAlpha
• Scrum
• Endeavor
• Sprint
• Daily
• User Stories
• Solution
• User Story
• Use Cases
• Solution
• Use Case
• Use Case Slice
• Microservices
• Solution
• Microservice
PracticeのActivity
開発プロセス
開発プロセス
• アジャイル開発、Cloud Nativeを実現する必要最小限の開発プ
ロセスを定義する
• Essence Framework
• Practice
• 標準Practice
• 改変Practice
• 本講座拡張Practice
標準Practice
• Use Cases
改変Practice
• Scrum Solo
• Scrumより
本講座拡張Practice
• Business Modeling Solo
• ITシステムの利用文脈を整理する目的の軽量ビジネス・モデリング
• Cloud Native CBD
• クラウド・アプリケーションの分析・設計・実装
• User Environment Solo
• ITシステムの利用環境を整備
• CI/CD Pipeline
• CI/CDパイプラインの構築と運用
• DevOpsSec Solo
• DevOpsSecの構築と運用
PracticeのActivity
(マイ開発プロセス版)
まとめ
• ケーススタディ
• ブック・カフェPieris Booksの販売システム
• Essenceを使って開発プロセスを定義
• 講義用の一人プロセス
• 本講座では以下のPracticeを使用する
• Business Modeling Solo
• Cloud Native CBD
• User Environment Solo
• CI/CD Pipeline
• DevOpsSec Solo
• Use Case (Essence)
• Scrum Solo (Essence改)
参考文献
• The Unified Modeling Language Reference
Manual, 2nd (Rumbaugh他, 2004)
• The Unified Modeling Language User Guide,
2nd (Booch他, 2004)
• The Unified Software Development Process
(Jacobson他, 1999)
• The Object Constraint Language, 2nd (Warmer
他, 2003)
• UML 2 and the Unified Process: Practical
Object-Oriented Analysis and Design (Arlow
他, 2005)
• OMG Unified Modeling Language Version 2.5
(OMG, 2015)
• 上流工程UMLモデリング (浅海, 2008)
• The Essentials of Modern Software
Engineering: Free the Practices from the
Method Prisons! (Jacobson他, 2019)