The 7 C' s for creating living software: A research perspective for quality-oriented software engineering

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, Certifiable models, Constructible models, Closure property of models and Controllable models. Each C is explained by the help of a set of definitions, 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] L.J. May, major Couses of Software Project Failures, http://stsc.hill.af.mil /crosstalk/1998/jul/causes.asp, 1998.
  • [2] The Standish Group, Chaos, http://www.standishgroup.com /chaos.html, 1995.
  • [3] I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison Wesley, 1999.
  • [4] OMG, http://www.omg.org.
  • [5] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy and W.Lorensen.Object-Oriented Modeling and Design, Prentice Hall, 1991.
  • [6] B. Tekinerdogan and M. Aksit, Classifying and Evaluating Architecture Design Methods, in Software Architec¬tures and Component Technology, M. Aksit (Ed.), Kluwer Academic Publishers, pp. 3 - 27, 2002.
  • [7] B. Tekinerdogan and M. Aksit, Synthesis Based Software Architecture Design, in Software Architectures and Component Technology, M. Aksit (Ed.), Kluwer Academic Publishers, pp. 143 - 173, 2002.
  • [8] B. Tekinerdogan.. Synthesis-Based Software Architecture Design, PhD Thesis, Dept. Of Computer Science, University of Twente, March 23, 2000.
  • [9] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad and M.Stal,Pattern-Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1999.
  • [10] E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns: Elements of Reusable Software, Addison Wesley, 1995.
  • [11] A.V. Aho, R. Sethi and J.D. Ullman, Compilers Principles, Techniques and Tools, Addison-Wesley, 1986.
  • [12] D.P. Gaver and G.L. Thompson, Programming and Probability Models in Operations Research, Brooks/Cole Publishing Company, 1973.
  • [13] A. Bernstein and N. Goodman, "Concurrency Control in Distributed Database Systems", ACM Transactions on Database Systems, 8(4): 484-502, 1983.
  • [14] K. Blois, The Oxford Textbook of Marketing, Oxford University press, 2000.
  • [15] M. Aksit and L. Bergmans, "Guidelines for Identifying Obstacles when Composing Distributed Systems from Components, in Software Architectures and Component Technology", M. Aksit (Ed.), Kluwer Academic Pub¬lishers, pp. 29-56, 2001.
  • [16] M. Aksit and L. Bergmans, "Obstacles in Object-Oriented Software Development", Proceedings OOPSLA '92, ACM SIGPPLAN Notices, Vol. 27, No. 10, pp. 341-358, October 1992.
  • [17] M. Aksit and B. Tekinerdogan, "Deriving Design Alternatives Based on Quality Factors, in Software Architec¬tures and Component Technology", M. Aksit (Ed.), Kluwer Academic Publishers, pp. 225-257, 2001. [18] C. Alexander, The Timeless Way of Building, Oxford University Press, 1979.
  • [19] G. Booch, J. Rumbaugh and I. Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 1999.
  • [20] B.J. Holmes, D.T. Joyce, Object-Oriented Programming with Java, Jones and Bartlett Publishers, 2001.
  • [21] K. Czarnecki, U.W. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000.
  • [22] M. Aksit (Ed.), Software Architectures and Component Technology, Kluwer Academic Publishers, 2001.
  • [23] H. Obbink, R. van Ommering, J.G. Wijnstra and P. America, "Component Oriented Platform Architecting for Software Intensive Product Families, in Software Architectures and Component Technology: The State of the Art in Research and Practice", M. Aksit (Ed.), Kluwer Academic Publishers, pp.99-142, 2001.
  • [24] M.E. Fayad, D.C. Schmidt and R. Johnson (Eds), Building Application Frameworks, Wiley, 1999.
  • [25] L. Bergmans and M. Aksit, "Composing Synchronisation and Real-Time Constraints", In Journal of Parallel and Distributed Computing, Vol. 36, No. 1, pp. 32-52, 1996.
  • [26] P.A. Bernstein and E. Newcomer, Principles of Transaction Processing, Morgan Kaufman Publishers, 1997.
  • [27] D. Ungar and R. B. Smith, "Self: The Power of Simplicity", In Proceedings OOPSLA'87, ACM SIGPLAN Notices, Vol. 22, No. 12, pp. 227-242, December 1987.
  • [28] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm and W. Griswold, Getting Started with AspectJ, CACM, Vol. 44, No. 10, pp. 59-65, October 2001.
  • [29] L. Bergmans and M. Aksit, "Composing Crosscutting Concerns Using Composition Filters", CACM, Vol. 44, No. 10, pp. 51-57, October 2001.
  • [30] J. Noppen, A methodological framework for coping with evolving software systems, MSc. Thesis description, TRESE Group, University of Twente, department of Computer Science, Enschede, The Netherlands, September 2001.
  • [31] M. Aksit and F. Mafcelloni, Deferring Elimination of Design Alternatives in Object-Oriented Methods, Concur¬rency and Computation: Practice and Experience, Vol. 13, pp. 1247-1279, John Wiley & Sons, Ltd, 2001.
  • [32] G. Kniesel, "Type-Safe Delegation for Run-Time Component Adaptation", ECOOP'99 Conference Proceedings, LNCS 1628, pp. 351-366, 1999.
  • [33] M. Aksit, L. Bergmans and S. Vural, "An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach", ECOOP '92; LNCS 615, Springer-Verlag, pp. 372-395, 1992.
  • [34] S. Matsuoka and A. Yonezawa. Inheritance Anomaly in Object-Oriented Concurrent Programming Languages, In Research Directions in Concurrent Object-Oriented Programming, G. Agha, P. Wegner and A. Yonezawa (Eds.), MIT Press, Cambridge, MA, pp. 107-150, October 1993.
  • [35] T. Elrad (moderator), M. Aksit, G. Kiczales, K. Lieberherr and H. Ossher (panelists), "Discussing Aspects of AOP", CACM, Vol. 44, No. 10, pp. 33-38, October 2001.
  • [36] K. Lieberherr, D. Orleans and J. Ovlinger, "Aspect-Oriented Programming with Adaptive Methods", CACM, Vol. 44, No. 10, pp. 39-41, October 2001.
  • [37] H. Ossher and P. Tarr, "Using Multidimensional Separation of Concerns to (re)Shape Evolving Software", CACM, Vol. 44, No. 10, pp. 43-50, October 2001.
  • [38] M. Aksit, K. Wakita, J. Bosch, L. Bergmans and A. Yonezawa, "Abstracting Object-Interactions Using Composition-Filters", In object-based distributed processing, R. Guerraoui, O. Nierstrasz and M. Riveill (Eds.), LNCS, Springer-Verlag, pp. 152-184, 1993.
  • [39] B. Tekinerdogan and M. Aksit, "Providing Automatic Support for Heuristic Rules of Methods", in Object-Oriented Technology, S. Demeyer and J. Bosch (Eds.), LNCS 1543, ECOOP'98 Workshop Reader, Springer Verlag, pp. 496-498, July 1998.
  • [40] R. Greiner, C. Darken and I. Santoso, "Efficient Reasoning", ACM Computing Surveys, Vol. 33, No. 1, pp. 1-30, March 2001.
  • [41] R. Schleiffer, H-J. Sebastian, E.K. Antonsson, "Genetic Algorithms in Fuzzy Engineering Design", Proceedings of DETC'99, September, 1999.
  • [42] G. von Bochmann, "Concepts for distributed systems design" Springer-Verlag, 1983.
  • [43] H. Ossher and P. Tarr, Multi-Dimensional Separation of Concerns and the Hyperspace Approach, in Software Architectures and Component Technology, M. Aksit (Ed.), Kluwer Academic Publishers, pp. 293 - 323, 2002.
  • 44] Software Engineering Terminology (1999), IEEE Std 610.12-1990. In: IEEE Standards Software Engineering, 1999 Edition. Volume One: Customer and Terminology Standards (ISBN 0-7381-1559-2).
  • [45] F.S. Roberts, Measurement Theory with Applications to Decision Making, Utility, and the Social Sciences, Addison-Wesley, 1979.
  • [46] ISO 9126, Information Technology, Software Product Quality - Part 1: Quality Model, International Organisa¬tion for Standardisation, FCD 1998.
  • [47] M.C. Paulk, et al., The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley (ISBN 0201546647) 1994.
  • [48] L. Osterweil et al, "Strategic Directions in Software Quality", ACM Computing Surveys, Vol. 28, No. 4, pp. 738-750, December 1996.
  • [49] L. Kleinrock, Queueing Systems Volume 1: theory, John Wiley & Sons, 1975.
  • [50] A.M. Law and W.D. Kelton, Simulation Modeling and Analysis, 3e, McGraw-Hill, 2001.
  • [51] D. Ferrari, Computer System Performance Evaluation, Prentice-Hall, 1978.
  • [52] E.M. Clarke and J.M. Wing, et al, "Formal Methods: State of the Art and Future Directions", ACM Computing Surveys, Vol. 28, No. 4, pp. 626-643, December 1996.
  • [53] D.M. Hilbert and D.F. Redmiles, Extracting Usability Information from User Interface Events, ACM Computing Surveys, Vol. 32, No. 4, pp. 384-421, December 2000.
  • [54] Quality-Oriented Software Engineering, http://trese.cs.utwente.nl/quality_ oriented_se/
  • [55] F. Schopbarteld, Dynamically Tuning Transaction Behavior in a Distributed Environment, M.Sc. Thesis, Dept. of Computer Science, University of Twente, 1999.
  • [56] R. Guerraoui, "Atomic Object Composition", In Proceedings of the European Conference on Object-Oriented Programming, LNCS 821, Springer Verlag, pp. 118-138, 1994.
  • [57] N. Lynch, M. Merritt, W. Weihl and A. Fekete, Atomic Transactions, Morgan Kaufmann Publishers, 1994. [58] D.C. Kozen, Automata and Computability, Springer-Verlag, 1997.
  • [59] A. Parkes, An Introduction to Computable Languages and Abstract Machines, International Thomson Computer press, 1996.
  • [60] K.C. Louden, Programming Languages: Principles and Practice, PWS-Kent Publishing Company, 1993.
  • [61] A. van Deursen, P. Klint and J. Visser, Domain Specific Languages: An Annotated Bibliography, CWI Report, 1998.
  • [62] G.F. Coulouris and J. Dollimore, Distributed Systems: Concepts and Design, Adison-Wesley, 1988.
  • [63] H. Ogawa, K. Shimura, S. Matsuoka, F. Maruyama, Y. Sohda, and Y. Kimura, OpenJIT: "An Open-Ended, Reflective JIT Compiler Framework for Java", ECOOP'2000 Conference Proceedings, LNCS 1950, pp. 362-387, 2000.
  • [64] Webgain, JavaCC homepage, http://www.webgam.com/products/java-cc/
  • [65] B.C. Smith. Reflection and Semantics in a Procedural Language. MIT-LCS-TR-272, Mass. Inst. of Tech. Cambridge, MA, January 1982.
  • [66]P- Maes, "Concepts and Experiments in Computational Reflection", In Proceedings OOPSLA'87, ACM SIG-PLAN Notices, Vol. 22, No. 12, pp. 147-155, December 1987.
  • [67]C.J. Date, An Introduction to Database Systems, Vol. 1, Addison-Wesley Company, 1986.
  • [68] A. Yonezawa (Ed.), "Reflection and Meta Level Architecture", Proceedings of IMSA'92, Tokyo, November 1992.
  • [69] P. Cointe (Ed.), "Meta-Architectures and Reflection", Springer Verlag LNCS 1616, St Malo, May 1999.
  • [70] K. Dutton, S. Thompson and B. Barraclough, The Art of Control Engineering, Addison-Wesley, 1997.
  • [71] B.C. Kuo, Automatic Control Systems, Prentice-hall Inc., 1995.
  • [72] A.J.N. van Breemen, Agent-Based Multi-Controller Systems, Ph.D. Thesis, Twente University Press, May 2001.
  • [73] M.M. Gupta and N.K. Sinha (Eds), "Intelligent control Systems, Theory and Applications", IEEE Press, 1996.
  • [74] M.M. Gupta and N.K. Sinha (Eds), Soft Computing and Intelligent Systems, Theory and Applications, Academic Press, 2000.
  • [75] G.S. Blair, A. Andersen, L. Blair, G. Coulson and D. Sanchez Gancedo, "Supporting Dynamic QoS Management Functions in a Reflective Middleware Platform", IEE Proceedings - Software, Vol. 147, Issue 01, February 2000.
  • [76] L. Bergmans, A. van Halteren, L. Ferreira Pires, M. van Sinderen and M. Aksit, "A QoS-Control Architecture for Object Middleware", IDMS'2000 Conference Proceedings, LNCS 1905, Springer Verlag, pp. 117-131, October 2000.
  • [77] P. Wegner, Interactive foundadtions of Computing, "Theoretical Computer Science", Vol. 192, pp. 315-351, February 1998.