Chapter 17

Case Study: An Enterprise System

17.1 Overview

This chapter serves as an extended example for some of the advanced ideas in MDSD. This includes cascaded MDSD (Section 8.2.8), the integration of MDSD and CBD as explained Section 7.8, as well as the architectural process described in Section 13.4. This chapter is structured along the lines of that architectural process.

The example describes a fairly typical enterprise system that contains various subsystems such as customer management, billing, and catalogs. In addition to managing the data using a database, input forms and the like, we also have to manage the associated long-running business processes.

17.2 Phase 1: Elaboration

17.2.1 Technology-Independent Architecture

We decide that our example system will be built from components. Each component can provide a number of interfaces. It can also use a number of interfaces provided by other components. Communication is synchronous and is also restricted to be local: no remoting is supported on this level. We design components to be stateless.

Data types can either be simple types (string, int, Boolean) or complex. A complex data type is basically like a struct, in that it has named and typed attributes. There are two kinds of complex data types:

  • Persistent entities that have a well-defined identity and can thus be searched and have relationships to other entities.
  • Data transfer objects that have no identity and are not persistent.

In addition to components we also explicitly ...

Get Model-Driven Software Development: Technology, Engineering, Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.