Object-Oriented Analysis and Design Course for Cloud Applications
We have launched a 47-part lecture series titled “Object-Oriented Analysis and Design for Cloud Applications” at the General Incorporated Association MaruLabo.
This page provides an overview of the course and links to each session.
Note: This course content is mainly written in Japanese. English translations are provided for reference.
Purpose
UML (Unified Modeling Language) was officially released by the OMG (Object Management Group) in 1997, followed by the emergence of the Unified Process (UP) in the early 2000s as the standard process for object-oriented analysis and design.
Nearly a quarter of a century has passed since then, and software development has evolved significantly by incorporating new technological trends such as agile development, cloud computing, DevOps, and functional programming.
UML/UP, which represents the pinnacle of object-oriented technologies, has a comprehensive and heavyweight specification that covers the entire object-oriented methodology. As a result, it has been losing visibility in environments where agile development is widely adopted.
Nevertheless, modern software development is undoubtedly grounded in object-oriented technologies, and it remains necessary to incorporate them effectively.
Originally, UML/UP was designed to define a profile by selecting only the models necessary for each project from a comprehensive specification, and to use this profile for modeling software systems.
From this perspective, the aim of this course is to define a modern object-oriented technology profile while ensuring a robust foundation based on traditional UML/UP.
The objectives of this course can be summarized in the following three points:
-
Assess the current state of object-oriented analysis and design
-
Introduce new technological elements and reconstruct modeling techniques
-
Cloud computing
-
DevOps
-
Functional programming
-
-
Present practical modeling techniques tailored to each project
We aim to define profiles that can be realistically applied in actual development and present “practically usable object-oriented design methods.”
Course Structure
This course is structured into the following five sections:
-
Overview: Basics of UML/UP and the positioning of this course
-
Basic Models: Fundamental UML modeling techniques such as use case models, class diagrams, and statecharts
-
Disciplines: Explanation and organization of UP disciplines (business modeling, requirements, analysis, design, implementation, testing, etc.)
-
Application Architecture: Organizing software architecture for cloud-based applications and considering the application of UML
-
Case Study: Defining a profile and attempting practical modeling based on a realistically scaled application
Overview
Sessions 1 and 2 provide an overview of the course.
No. | Title | URL |
---|---|---|
1 |
Introduction |
|
2 |
Development Process |
This section introduces the fundamental concepts of UML and the Unified Process (UP), and raises key issues around how to reinterpret them in the context of modern cloud application development.
-
Historical background and significance of UML/UP
-
Criticism and reevaluation of heavyweight modeling techniques
-
Connection with modern technologies (cloud, DevOps, functional programming)
-
Objectives of this course and guidelines for its overall structure
This section serves as an introduction and is intended to support the foundational understanding for all 47 sessions of the course.
Basic Models
Sessions 3 through 9 explain object models used in object-oriented analysis and design.
No. | Title | URL |
---|---|---|
3 |
Basic Models |
|
4 |
Static Model (1) |
|
5 |
Static Model (2) |
|
6 |
Dynamic Model |
|
7 |
Collaboration Model |
|
8 |
Functional Model |
|
9 |
Physical Model |
This section explains the basic modeling techniques based on the three perspectives offered by UML: structure, behavior, and interaction.
-
Use case diagrams (clarifying functional requirements)
-
Class diagrams (foundation of structural modeling)
-
Object diagrams (representation of instance relationships)
-
Sequence and communication diagrams (depicting dynamic interactions)
-
Statechart and activity diagrams (visualizing behavior)
This section emphasizes how to express design intentions rather than just learning notation. The focus is on practical guidance—what diagram to use, at what level of detail, and at what stage in the development process.
In addition to covering all standard UML models, a functional model is also introduced.
Disciplines
Sessions 10 through 33 explain each discipline involved in executing object-oriented analysis and design development.
No. | Title | URL |
---|---|---|
10 |
Disciplines |
|
11 |
Business Modeling |
|
12 |
Requirements |
|
13 |
Requirements / Use Cases |
|
14 |
Requirements / Scenarios |
|
15 |
Analysis |
|
16 |
Analysis / Component Analysis |
|
17 |
Analysis / Event-Driven |
|
18 |
Design |
|
19 |
Design / Architecture |
|
20 |
Design / Component Design (1) |
|
21 |
Design / Component Design (2) |
|
22 |
Design / Component Design (3) |
|
23 |
Design / Domain Design (1) |
|
24 |
Design / Domain Design (2) |
|
25 |
Design / Domain Design (3) |
|
26 |
Design / Domain Design (4) |
|
27 |
Design / Domain Design (5) |
|
28 |
Design / Principles |
|
29 |
Design / UX/UI |
|
30 |
Implementation (1) |
|
31 |
Implementation (2) |
|
32 |
Implementation (3) |
|
33 |
Testing |
This section introduces the various disciplines in the Unified Process (UP) and clarifies how modeling fits into each.
-
Business modeling: Clarifying business domains and system boundaries
-
Requirements definition: Organizing use cases and actors
-
Analysis: Conceptual modeling and assignment of responsibilities
-
Design: Architectural layers and application of design patterns
-
Implementation & Testing: Connection to code and design support from a test-driven perspective
Rather than a rigid waterfall-style process, this section emphasizes the flexible application of processes suitable for iterative and evolutionary development.
Application Architecture
Sessions 34 through 39 cover the topic of application architecture.
No. | Title | URL |
---|---|---|
34 |
Application Architecture |
|
35 |
Cloud Native CBD |
|
36 |
Domain Subsystems |
|
37 |
Application Subsystems |
|
38 |
Presentation Subsystems |
|
39 |
Cloud Native Component Framework |
This section examines common architectural patterns in modern application development (particularly cloud-based), and proposes corresponding modeling strategies.
-
Relationship to architectural structures such as layered architecture, clean architecture, and DDD
-
Components in cloud-native environments (microservices, CI/CD, IaC, etc.)
-
Perspectives needed for integration with DevOps and SRE (operations, monitoring, resiliency, etc.)
-
Alignment with the functional paradigm (state management, immutability, separation of concerns)
Given that the “targets” of UML modeling have evolved, this section considers redesigning the appropriate levels and granularity of modeling.
Case Study
Sessions 40 through 47 present a case study, modeling a realistic application scenario.
No. | Title | URL |
---|---|---|
40 |
Case Study |
|
41 |
Business Model |
|
42 |
Requirements Model |
|
43 |
Requirements Model / BDD |
|
44 |
Analysis Model |
|
45 |
Design Model |
|
46 |
Implementation |
|
47 |
Testing |
Through building models for a hypothetical real-world system, this section examines how theoretical techniques can be practically applied.
-
Begins with requirements analysis of the target system and proceeds step-by-step through model construction
-
Profile definition: selecting only diagrams that suit the purpose, rather than using all models
-
Concrete examples of maintaining model consistency and managing scope
-
Clarifies the role of the design model as a bridge to implementation
This section explores what constitutes a "necessary and sufficient" model, and what remains when design techniques are streamlined—shedding light on both the feasibility and limits of reconstructing UML/UP.
Full Lecture List
This is the complete list of lectures.
No. | Title | URL |
---|---|---|
1 |
Introduction |
|
2 |
Development Process |
|
3 |
Basic Models |
|
4 |
Static Model (1) |
|
5 |
Static Model (2) |
|
6 |
Dynamic Model |
|
7 |
Collaboration Model |
|
8 |
Functional Model |
|
9 |
Physical Model |
|
10 |
Disciplines |
|
11 |
Business Modeling |
|
12 |
Requirements |
|
13 |
Requirements / Use Cases |
|
14 |
Requirements / Scenarios |
|
15 |
Analysis |
|
16 |
Analysis / Component Analysis |
|
17 |
Analysis / Event-Driven |
|
18 |
Design |
|
19 |
Design / Architecture |
|
20 |
Design / Component Design (1) |
|
21 |
Design / Component Design (2) |
|
22 |
Design / Component Design (3) |
|
23 |
Design / Domain Design (1) |
|
24 |
Design / Domain Design (2) |
|
25 |
Design / Domain Design (3) |
|
26 |
Design / Domain Design (4) |
|
27 |
Design / Domain Design (5) |
|
28 |
Design / Principles |
|
29 |
Design / UX/UI |
|
30 |
Implementation (1) |
|
31 |
Implementation (2) |
|
32 |
Implementation (3) |
|
33 |
Testing |
|
34 |
Application Architecture |
|
35 |
Cloud Native CBD |
|
36 |
Domain Subsystems |
|
37 |
Application Subsystems |
|
38 |
Presentation Subsystems |
|
39 |
Cloud Native Component Framework |
|
40 |
Case Study |
|
41 |
Business Model |
|
42 |
Requirements Model |
|
43 |
Requirements Model / BDD |
|
44 |
Analysis Model |
|
45 |
Design Model |
|
46 |
Implementation |
|
47 |
Testing |