Page 216 -
P. 216

ChaptEr 11




                                                OO-METHOD



                           A Conceptual Schema-Centric Development Approach




                       osCar pastor, Juan Carlos molina, and Emilio iborra




                    Abstract: During the past two decades, extensive research and industrial work (object-oriented
                    methods, formal specification languages, component-based software production, etc.) have been
                    oriented toward the goal of generating code from a high-level systems specification, which is
                    normally represented as a conceptual schema. However, the numerous failures in the achieve-
                    ment of this goal have resulted in overall skepticism when any new approach offering a “press the
                    button, get all the code” strategy is proposed. In spite of this reticence, the current hype around
                    model-driven architecture has given new momentum to these strategies. The new methods propose
                    appropriate model transformations that must cover all the steps of a sound software production
                    process from an information systems engineering point of view. These must include organizational
                    modeling, requirements engineering, conceptual modeling, and model-based code-generation
                    techniques. The conceptual primitives must be precisely and formally defined, and the conversion
                    between the different models involved and their corresponding software counterparts must be done
                    in a well-defined way in order to make the full automation of the process possible through the use
                    of “model compilers.” The objectives of this chapter are: to discuss which conceptual primitives
                    should be present in a system specification; to analyze how to use UML to represent them; and to
                    reduce the current complexity of the proposal by identifying only those diagrams and modeling
                    constructs that are really necessary to create a conceptual schema. This chapter also explains in
                    detail how to accomplish the transformation process between the problem space and the solution
                    space. Tool support is also included to make the discussion more practical.

                    Keywords: Model-Driven Development, Conceptual Modeling, Model-Based Code Generation

                    INTRODUCTION

                    The history of software development can be viewed as a succession of increments in the level
                    of abstraction of a path that moves the activity of “programming” toward representations in the
                    problem space and away from the sphere of the solution space. Computers were first “programmed”
                    by wiring, and then programmed through the use of machine code, then through the assembler
                    language, then by the creation of the first compilers for procedural languages, then through object-
                    oriented programming and component-based development techniques. At each evolutionary step,
                    the subsequent increase in the level of abstraction allowed developers to deal with problems that


                                                         201
   211   212   213   214   215   216   217   218   219   220   221