Software Development with MDA

Software development usually starts with modelling. These models can be drawn on a flip chart or expressed in diagrams in a CASE tool. Eventually these models are transformed into programs one way or the other.

Model Driven Architecture (MDA) provides a blue print for rapid software development. It emphasizes rigorous software modelling and code generation from models. We have developed a pattern and frame based technique for UML model based code generation. The frame defines the structural layout of the program. Patterns contain code segments with parameters, which can be used as provided by parsing the proper parameters. Code patterns can be used for business rules, accessing system functions, database interactions etc. The patterns are reusable elements for both general and specific purposes.

Based on a combination of UML class and activity diagrams, our code generator can generate complete programs in COBOL, PL1, Java and VB. This figure gives an illustration of models and the generated code.

Message Interface Models (MIM) are used to define the business service interface. These models are basically UML class diagrams. Our code generator can generate the XML structure, the data object and its descriptors that contain meta-information for marshalling and unmarshalling to/from XML structure as illustrated in this figure.

In our SOA framework, composition and invocation of business services are done by the service process controller. The service process control can be modelled using state models. The control table used by the service process controller can be generated as illustrated in this figure.

Business services and their compositions to form compound business services can all be modelled and generated. The approach has been proven successfully in multiple projects (see our experience).