Object-Oriented Analysis and Design Course for Cloud Applications

ASAMI, Tomoharu Created: 2025-07-07

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:

  1. Assess the current state of object-oriented analysis and design

  2. Introduce new technological elements and reconstruct modeling techniques

    • Cloud computing

    • DevOps

    • Functional programming

  3. 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

https://www.marulabo.net/docs/asami01/

2

Development Process

https://www.marulabo.net/docs/asami02/

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

https://www.marulabo.net/docs/asami03/

4

Static Model (1)

https://www.marulabo.net/docs/asami04/

5

Static Model (2)

https://www.marulabo.net/docs/asami05/

6

Dynamic Model

https://www.marulabo.net/docs/asami06/

7

Collaboration Model

https://www.marulabo.net/docs/asami07/

8

Functional Model

https://www.marulabo.net/docs/asami08/

9

Physical Model

https://www.marulabo.net/docs/asami09/

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

https://www.marulabo.net/docs/asami10/

11

Business Modeling

https://www.marulabo.net/docs/asami11/

12

Requirements

https://www.marulabo.net/docs/asami12/

13

Requirements / Use Cases

https://www.marulabo.net/docs/asami13/

14

Requirements / Scenarios

https://www.marulabo.net/docs/asami14/

15

Analysis

https://www.marulabo.net/docs/asami15/

16

Analysis / Component Analysis

https://www.marulabo.net/docs/asami16/

17

Analysis / Event-Driven

https://www.marulabo.net/docs/asami17/

18

Design

https://www.marulabo.net/docs/asami18/

19

Design / Architecture

https://www.marulabo.net/docs/asami19/

20

Design / Component Design (1)

https://www.marulabo.net/docs/asami20/

21

Design / Component Design (2)

https://www.marulabo.net/docs/asami21/

22

Design / Component Design (3)

https://www.marulabo.net/docs/asami22/

23

Design / Domain Design (1)

https://www.marulabo.net/docs/asami23/

24

Design / Domain Design (2)

https://www.marulabo.net/docs/asami24/

25

Design / Domain Design (3)

https://www.marulabo.net/docs/asami25/

26

Design / Domain Design (4)

https://www.marulabo.net/docs/asami26/

27

Design / Domain Design (5)

https://www.marulabo.net/docs/asami27/

28

Design / Principles

https://www.marulabo.net/docs/asami28/

29

Design / UX/UI

https://www.marulabo.net/docs/asami29/

30

Implementation (1)

https://www.marulabo.net/docs/asami30/

31

Implementation (2)

https://www.marulabo.net/docs/asami31/

32

Implementation (3)

https://www.marulabo.net/docs/asami32/

33

Testing

https://www.marulabo.net/docs/asami33/

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

https://www.marulabo.net/docs/asami34/

35

Cloud Native CBD

https://www.marulabo.net/docs/asami35/

36

Domain Subsystems

https://www.marulabo.net/docs/asami36/

37

Application Subsystems

https://www.marulabo.net/docs/asami37/

38

Presentation Subsystems

https://www.marulabo.net/docs/asami38/

39

Cloud Native Component Framework

https://www.marulabo.net/docs/asami39/

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

https://www.marulabo.net/docs/asami40/

41

Business Model

https://www.marulabo.net/docs/asami41/

42

Requirements Model

https://www.marulabo.net/docs/asami42/

43

Requirements Model / BDD

https://www.marulabo.net/docs/asami43/

44

Analysis Model

https://www.marulabo.net/docs/asami44/

45

Design Model

https://www.marulabo.net/docs/asami45/

46

Implementation

https://www.marulabo.net/docs/asami46/

47

Testing

https://www.marulabo.net/docs/asami47/

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

https://www.marulabo.net/docs/asami01/

2

Development Process

https://www.marulabo.net/docs/asami02/

3

Basic Models

https://www.marulabo.net/docs/asami03/

4

Static Model (1)

https://www.marulabo.net/docs/asami04/

5

Static Model (2)

https://www.marulabo.net/docs/asami05/

6

Dynamic Model

https://www.marulabo.net/docs/asami06/

7

Collaboration Model

https://www.marulabo.net/docs/asami07/

8

Functional Model

https://www.marulabo.net/docs/asami08/

9

Physical Model

https://www.marulabo.net/docs/asami09/

10

Disciplines

https://www.marulabo.net/docs/asami10/

11

Business Modeling

https://www.marulabo.net/docs/asami11/

12

Requirements

https://www.marulabo.net/docs/asami12/

13

Requirements / Use Cases

https://www.marulabo.net/docs/asami13/

14

Requirements / Scenarios

https://www.marulabo.net/docs/asami14/

15

Analysis

https://www.marulabo.net/docs/asami15/

16

Analysis / Component Analysis

https://www.marulabo.net/docs/asami16/

17

Analysis / Event-Driven

https://www.marulabo.net/docs/asami17/

18

Design

https://www.marulabo.net/docs/asami18/

19

Design / Architecture

https://www.marulabo.net/docs/asami19/

20

Design / Component Design (1)

https://www.marulabo.net/docs/asami20/

21

Design / Component Design (2)

https://www.marulabo.net/docs/asami21/

22

Design / Component Design (3)

https://www.marulabo.net/docs/asami22/

23

Design / Domain Design (1)

https://www.marulabo.net/docs/asami23/

24

Design / Domain Design (2)

https://www.marulabo.net/docs/asami24/

25

Design / Domain Design (3)

https://www.marulabo.net/docs/asami25/

26

Design / Domain Design (4)

https://www.marulabo.net/docs/asami26/

27

Design / Domain Design (5)

https://www.marulabo.net/docs/asami27/

28

Design / Principles

https://www.marulabo.net/docs/asami28/

29

Design / UX/UI

https://www.marulabo.net/docs/asami29/

30

Implementation (1)

https://www.marulabo.net/docs/asami30/

31

Implementation (2)

https://www.marulabo.net/docs/asami31/

32

Implementation (3)

https://www.marulabo.net/docs/asami32/

33

Testing

https://www.marulabo.net/docs/asami33/

34

Application Architecture

https://www.marulabo.net/docs/asami34/

35

Cloud Native CBD

https://www.marulabo.net/docs/asami35/

36

Domain Subsystems

https://www.marulabo.net/docs/asami36/

37

Application Subsystems

https://www.marulabo.net/docs/asami37/

38

Presentation Subsystems

https://www.marulabo.net/docs/asami38/

39

Cloud Native Component Framework

https://www.marulabo.net/docs/asami39/

40

Case Study

https://www.marulabo.net/docs/asami40/

41

Business Model

https://www.marulabo.net/docs/asami41/

42

Requirements Model

https://www.marulabo.net/docs/asami42/

43

Requirements Model / BDD

https://www.marulabo.net/docs/asami43/

44

Analysis Model

https://www.marulabo.net/docs/asami44/

45

Design Model

https://www.marulabo.net/docs/asami45/

46

Implementation

https://www.marulabo.net/docs/asami46/

47

Testing

https://www.marulabo.net/docs/asami47/

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.