The 7 C's for Creating Living Software: A Research Perspective for Quality-Oriented Software Engineering

This article proposes the 7 C's for realizing quality-oriented software engineering practices. All the desired qualities of this approach are expressed in short by the term living software. The 7 C's are: Concern-oriented processes, Canonical models, Composable models, Certiable models, Constructible models, Closure property of models and Controllable models. Each C is explained by the help of a set of denitions, a short overview of the background work and the problems that software engineers may experience in realizing the corresponding C. Further, throughout the article, a software development example is presented for illustrating the realization of the 7 C's. Finally, this article concludes by infomally justifying the necessity of the 7 C's.

[1]  F. Roberts Measurement Theory with Applications to Decisionmaking, Utility, and the Social Sciences: Measurement Theory , 1984 .

[2]  Gordon S. Blair,et al.  Supporting dynamic QoS management functions in a reflective middleware platform , 2000, IEE Proc. Softw..

[3]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[4]  Rachid Guerraoui Atomic Object Composition , 1994, ECOOP.

[5]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[6]  Russell Greiner,et al.  Efficient reasoning , 2001, CSUR.

[7]  Satoshi Matsuoka,et al.  OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java , 2000, ECOOP.

[8]  Naresh K. Sinha,et al.  Intelligent Control Systems: Theory and Applications , 1995 .

[9]  Bedir Tekinerdogan,et al.  Deriving Design Alternatives based on Quality Factors , 2002 .

[10]  Bedir Tekinerdogan,et al.  Providing Automatic Support for Heuristic Rules of Methods , 1998, ECOOP Workshops.

[11]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[12]  Lodewijk Bergmans,et al.  Composing Synchronization and Real-Time Constraints , 1995, J. Parallel Distributed Comput..

[13]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[14]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[15]  Daniel T. Joyce,et al.  Object-Oriented Programming with Java , 2000 .

[16]  Hans-Jürgen Sebastian,et al.  GENETIC ALGORITHMS IN FUZZY ENGINEERING DESIGN , 1999 .

[17]  Francesco Marcelloni,et al.  Deferring elimination of design alternatives in object‐oriented methods , 2001, Concurr. Comput. Pract. Exp..

[18]  Bedir Tekinerdogan,et al.  Classifying and evaluating architecture design methods , 1999 .

[19]  Leon J. Osterweil,et al.  Strategic directions in software quality , 1996, CSUR.

[20]  Mehmet Aksit,et al.  Software Architectures and Component Technology , 2001 .

[21]  Lodewijk Bergmans,et al.  Obstacles in object-oriented software development , 1992, OOPSLA.

[22]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[23]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[24]  Stéphane Bressan,et al.  Introduction to Database Systems , 2005 .

[25]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[26]  Ken Dutton,et al.  The art of control engineering , 1988 .

[27]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[28]  Leonard Kleinrock,et al.  Queueing Systems: Volume I-Theory , 1975 .

[29]  Bedir Tekinerdogan,et al.  Synthesis - Based Software Architecture Design , 2001 .

[30]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[31]  A. S. Sir Parkes An Introduction to computable languages and abstract machines , 1996 .

[32]  Mehmet Aksit,et al.  Guidelines for Identifying Obstacles when Composing Distributed Systems from Components , 2001 .

[33]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[34]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[35]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[36]  J. Rogers Chaos , 1876 .

[37]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[38]  David F. Redmiles,et al.  Extracting usability information from user interface events , 2000, CSUR.

[39]  Philip A. Bernstein,et al.  Principles of Transaction Processing , 1996 .

[40]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[41]  A.K. Agrawal,et al.  Concepts for distributed systems design , 1986, Proceedings of the IEEE.

[42]  Dexter Kozen,et al.  Automata and Computability , 1997, Undergraduate Texts in Computer Science.

[43]  Jan Gerben Wijnstra,et al.  Component Oriented Platform Architecting for Software Intensive Product Families , 2002 .

[44]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[45]  A. TUSTIN,et al.  Automatic Control Systems , 1950, Nature.

[46]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[47]  Luís Ferreira Pires,et al.  A QoS-Control Architecture for Object Middleware , 2000, IDMS.

[48]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[49]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[50]  Patricia Adams,et al.  Programming Languages: Principles and Practice , 1993 .

[51]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.

[52]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[53]  S. B. Kiselev,et al.  The capability maturity model: guidelines for improving the software process , 1995 .

[54]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[55]  Gregor Kiczales,et al.  Discussing aspects of AOP , 2001, CACM.

[56]  R. M. Hayes,et al.  Measurement theory, with applications to decision-making, utility, and the social sciences: Fred S. Roberts, Vol. 7 of the encyclopedia of mathematics and its applications. Addison-Wesley, advanced book program, Reading, Mass., 1979, pp. 420, $24.50 , 1980 .

[57]  Gerald L. Thompson,et al.  Programming and probability models in operations research , 1973 .