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 |
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.
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 |
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
Full Lecture List
This is the complete list of lectures.
| No. | Title | URL |
|---|---|---|
|
1 |
Introduction |
|
|
2 |
||
|
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 |
||
|
40 |
Case Study |
|
|
41 |
Business Model |
|
|
42 |
Requirements Model |
|
|
43 |
Requirements Model / BDD |
|
|
44 |
Analysis Model |
|
|
45 |
Design Model |
|
|
46 |
Implementation |
|
|
47 |
Testing |
References
Glossary
- UP (Unified Process)
-
A process model based on UML, characterized by iterative, use-case–driven, and architecture-centric development. It has derivatives such as the Rational Unified Process (RUP) and provides a foundation for practicing Component-Based Development (CBD).
- UML (Unified Modeling Language)
-
A standardized modeling language for object-oriented analysis and design. It represents system structures and behaviors through diagrams such as class, sequence, and use case diagrams. Serves as the foundational language for UP and CBD.
- Development Process
-
A development process is the entire set of activities involved in building, deploying, and maintaining software systems. It encompasses planning, modeling, implementation, testing, and delivery as a systematic flow of development activities.
- Component
-
A software construct that encapsulates well-defined responsibilities, contracts, and dependencies as a reusable and replaceable unit. In the logical model, it serves as an abstract structural unit; in the physical model, it corresponds to an implementation or deployment unit.
- CBD (Component-Based Development)
-
Component-Based Development (CBD) is a software development approach in which systems are constructed and reused through components that define clear responsibilities, contracts, and interfaces. Components are designed to be independent and replaceable, enabling loosely coupled architectures that improve maintainability and reusability. In the logical model, a component serves as an abstract structural unit defining functionality and contracts; in the physical model, it corresponds to implementation and deployment units.
- Cloud Native Component Framework (CNCF)
-
Cloud Native Component Framework (CNCF) is a framework for executing cloud application components using a single, consistent execution model. Centered on the structure of Component, Service, and Operation, it enables the same Operation to be reused across different execution forms such as command, server (REST / OpenAPI), client, and script. By centralizing quality attributes required for cloud applications—such as logging, error handling, configuration, and deployment—within the framework, components can focus on implementing domain logic. CNCF is designed as an execution foundation for literate model-driven development and AI-assisted development, separating what is executed from how it is invoked.
- BDD (Behavior-Driven Development)
-
Behavior Driven Development (BDD) is a development approach that focuses on specifying system behavior through scenarios written in a shared language.