Page 217 -
P. 217

202     PASTOR,  MOLINA,  AND  IBORRA
                    were larger in size and complexity as well as to increase the quality, maintainability, and lifespan
                    of software applications.
                      Today developers regard this evolution as something natural, and no one marvels at programs
                    that can automate the transformation of a program written in one programming language to an
                    equivalent program in a different programming language that is closer to the machine. In fact,
                    every step in this evolution of software development has been characterized by raising the level of
                    abstraction required to define the systems to be developed in a language that abstracts away details
                    of the language in which the system would be implemented, and automating the transformation
                    of programs written in the higher-level language to the lower-level language.
                      It is therefore only natural for the next step in this evolutionary path to assist developers in
                    overcoming today’s challenges in software development. “Today’s software systems are signifi-
                    cantly large, complex and critical, that only through the use of automated approaches can such
                    systems be developed and evolve in an economic and timely manner” (Grünbacher and Ledru,
                    2004, page 12),
                      This goal may well be reached through the adoption of Model-Driven Development (MDD)
                    techniques in general, and specifically by leveraging the Model-Driven Architecture (MDA)
                    approach (MDA, 2007; Miller and Mukerji, 2003). After numerous attempts in this direction
                    (Mellor and Balcer, 2002; Mellor, Clark, and Futagami, 2003; Selic, 2003; Völter et al., 2006),
                    the time seems to be right for going one step forward in the process of automating the software
                    production process itself. MDA is not the only proposal that is leading researchers in that direc-
                    tion. Proposals such as Extreme Non-programming in response to Extreme Programming (XNP;
                    Morgan, 2002), or Conceptual Schema-Centric Development (CSCD; Olivé, 2005) are centered
                    on the idea that in order to develop an information system, it is both necessary and sufficient to
                    create its conceptual schema.

                    Conceptual Schema-Centric Development

                    Olivé promoted these concepts even further when he presented his CSCD approach as a grand
                    challenge for information systems research (Olivé, 2005). Similar to the central ideas of MDA
                    and XNP, CSCD is based on the assumption that the definition of the conceptual schema is all
                    that is required to develop an information system.
                      Since the advancement of science and engineering is the primary purpose of the formulation
                    and promulgation of a grand challenge, the approach proposed here focuses on the advance-
                    ment of IS engineering toward automation. Even if this is not at all a new, disruptive proposal
                    (Teichroew and Sayani [1971] argued the importance of confronting the challenge of the automa-
                    tion of systems building to improve the software production process), the fact is that, forty years
                    later, this goal of automated systems building has not yet been achieved. Despite the definite
                    progress that has been made, the design, programming, and testing activities for most projects
                    still require a substantial amount of manual effort. Not even in the two most popular develop-
                    ment environments (Visual Studio or Eclipse) does the automation of system building play a
                    significant role. Programming continues to be the central activity and most (if not all) of the
                    tool improvements are directed toward helping with the complex task of writing a program, but
                    not with the task of compiling a conceptual model to avoid the repetitive, tedious, and complex
                    task of programming.
                      Many have begun to question the usefulness of pursuing this goal. Is it perhaps a waste of
                    time to continue trying? As researchers in this area, we firmly believe that it is not. Even though
                    numerous problems remain to be solved (technical problems, problems related to the maturity of
   212   213   214   215   216   217   218   219   220   221   222