Operational Image and Model Expansion of SimpleModeling

This is the final operational image that starts from analysis models created with CML (Cozy Modeling Language) and progresses through the generation of conceptual and design models via model-up and model-down processes.To concretize discussions, SimpleModeling defines reference models for development and runtime environments and designs concrete procedures based on these models.(The contents of the reference models will be introduced gradually.)

3-Tier Model

Our system architecture adopts the following three-tier model.

  • Presentation Tier

  • Application Tier

  • Domain Tier

Each tier is modeled as a subsystem and is typically deployed and operated as a microservice.

However, SimpleModeling is based on Component-Based Development (CBD), and following recent terminology, it leans toward a Modular Monolith approach. Therefore, it is also possible to deploy and operate a microservice that integrates both the application and domain tiers.

Analysis Models

The analysis model consists of the following three sub-models.

  • Domain Model

  • Application Model

  • Use Case Model

The domain model describes the essential structure and rules of the problem domain handled by the system.

The application model describes the application services required to execute use cases, including their responsibilities, operations, and domain state transitions.

The use case model represents the goals of actors and the corresponding behaviors of the system. SimpleModeling adopts a use case–driven approach, positioning this model at the core of its analysis modeling.

The use case model itself is not used directly as an input model for source code generation. Instead, it serves as the basis for creating application and domain models and helps maintain consistency among them.

SimpleModeling remains neutral regarding business analysis and is designed to work with any business analysis methodology.

The central model in such integration is the use case model.

By describing the results of business analysis in CML as use case and domain models within the analysis model, those results can be seamlessly incorporated into application development.

Expansion from Analysis Models

The analysis model expands in two directions—upward and downward—via the analysis model up/down process.

  • Conceptual Model

  • Design Model

Conceptual Model

The conceptual model is used for the following purposes:

  • To give an overview of the problems the application addresses

  • To share information with non-technical stakeholders

Representative artifacts are illustrated in the diagrams.

  • Glossary

  • Actor-Goal List

  • Use Case Diagram (UML)

  • Class Diagram (UML)

  • Component Diagram (UML)

The use case diagram visualizes the actor-goal list as an object model and is suitable for providing an overview of the entire system.

The class diagram illustrates the relationships between domain objects defined in the glossary.

The component diagram visualizes the relationships among subsystems and components extracted from the application and domain models based on specific criteria. As part of the conceptual model, the intention is to represent not the actual application system structure, but rather the bounded contexts.

Design Models

In the design phase, design models are created based on the analysis model, targeting the following tiers.

  • Domain Tier

  • Application Tier

  • Presentation Tier

Domain Tier

A design model of the domain model is created targeting the domain tier.

When generating the design model from the domain model, the analysis model’s domain model is combined with a design context as input parameters.

The design context defines elements such as execution platform and quality attributes.

Cozy generates a Scala-based design model, which is then further refined by adding detailed implementation.

In principle, components that operate on the domain model are implemented using Component-Based Development (CBD), and these components are finalized as subsystems to be deployed in the domain tier.

Application Tier

Multiple domain subsystems are created from various problem domains, and the application model integrates them into a cohesive application.

As with the domain model, the application model and design context from the analysis model are used as input parameters for Cozy to generate a Scala-based design model, which is then enhanced with implementation details.

The application model is implemented via components using CBD and deployed as subsystems within the application tier.

Presentation Tier

Due to the rapid evolution and trend sensitivity of presentation technologies, SimpleModeling does not directly target this tier but instead defines integration strategies.

Using the application model, use case model, and UI context as input, Cozy generates UI scenarios.

Tasks following UI scenario generation are delegated to the UI development side. AI assistance can be highly effective in this phase of development.

Expansion from Analysis Models
Figure 1. Expansion from Analysis Models

Summary

SimpleModeling places analysis models described in CML at its core and supports the entire software development process by expanding them into conceptual and design models.

By combining model transformations based on use case models with AI-assisted implementation, it aims to bridge the gaps between analysis, design, and implementation, promoting a continuous and comprehensible development style.