Case Study: An Enterprise System
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 ...