Skip to main content

Pluggable Programming Language Features for Incremental Code Quality Enhancement

  • Conference paper
Evaluation of Novel Approaches to Software Engineering (ENASE 2010)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 230))

  • 729 Accesses

Abstract

Evolutionary prototyping is an incremental software development method in which a proof of concept is, step by step, extended towards the final product. This article pleads for a programming approach termed “incremental code quality enhancement” when developing software incrementally. However, current programming languages are not well suited for incremental code quality enhancement. They are inflexible regarding their use of language features like typing, access control, contracts, etc. In some languages, the programmer is forced to use them, in others he may not. This article introduces pluggable programming language features, a concept that allows greater flexibility for application programmers without losing control over the use of those features. The approach is demonstrated exemplary by interface specifications for a business information system.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison Wesley, Reading (2005)

    Google Scholar 

  2. Berger, H., Beynon-Davies, P., Cleary, P.: The Utility of a Rapid Application Development (RAD) approach for a large complex Information Systems Development. In: Proceedings of the 13th European Conference on Information Systems (ECIS 2004), Turku, Finland (2004)

    Google Scholar 

  3. Bracha, G.: Pluggable type systems. In: OOPSLA Workshop on Revival of Dynamic Languages (2004)

    Google Scholar 

  4. Bracha, G., Griswold, D.: Strongtalk: Typechecking Smalltalk in a production environment. In: Proc. of the ACM Conf. on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 1993 (1993)

    Google Scholar 

  5. Broy, M., Jarke, M., Nagl, M., Rombach, H.D.: Dagstuhl-Manifest zur Strategischen Bedeutung des Software Engineering in Deutschland. In: Perspectives Workshop Dagstuhl, Germany (2006)

    Google Scholar 

  6. Floyd, C.: A systematic look at prototyping. In: Approaches to Prototyping, pp. 1–18 (1984)

    Google Scholar 

  7. Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston (1999)

    MATH  Google Scholar 

  8. Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall PTR, Upper Saddle River (2002)

    MATH  Google Scholar 

  9. Gordon, V.S., Bieman, J.M.: Reported Effects of Rapid Prototyping on Industrial Software Quality (1993)

    Google Scholar 

  10. Hekmatpour, S.: Experience with evolutionary prototyping in a large software project. SIGSOFT Softw. Eng. Notes 12(1), 38–41 (1987)

    Article  Google Scholar 

  11. ISO. TR 9126-4: Software Quality (2004), http://www.iso.org/iso/catalogue_detail.htm?csnumber=39752

  12. Kelter, U., Monecke, M., Schild, M.: Do we need ’agile’ Software Development Tools? In: NetObjectDays (2002)

    Google Scholar 

  13. Kiczales, G., Lamping, J., Mendhekar, Videira Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)

    Google Scholar 

  14. Lichter, H., Schneider-Hufschmidt, M., Züllighoven, H.: Prototyping in industrial software projects—bridging the gap between theory and practice. In: ICSE 1993: Proceedings of the 15th International Conference on Software Engineering, pp. 221–229. IEEE Computer Society Press, Los Alamitos (1993)

    Chapter  Google Scholar 

  15. Liggesmeyer, P.: Software-Qualität. Testen, Analysieren und Verifizieren von Software. Spektrum Akademischer Verlag (2002)

    Google Scholar 

  16. Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, Englewood Cliffs (2002)

    Google Scholar 

  17. McCarthy, J.: Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Communications of the ACM 3(4), 184–195 (1960)

    Article  MATH  Google Scholar 

  18. Meijer, E., Drayton, P.: Static Typing Where Possible, Dynamic Typing When Needed. In: Workshop on Revival of Dynamic Languages (2005)

    Google Scholar 

  19. Meyer, B.: Object-Oriented Software Construction, 1st edn. Prentice-Hall, Inc., Upper Saddle River (1988)

    MATH  Google Scholar 

  20. Odersky, M.: An Overview of the Scala Programming Language: EPFL Technical Report IC/2004/64 (2004)

    Google Scholar 

  21. Sommerville, I.: Software Engineering, 7th edn. International Computer Science Series. Addison Wesley, Reading (2004)

    MATH  Google Scholar 

  22. Szyperski, C.: Component software. Addison-Wesley, Harlow (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Humm, B.G., Engelschall, R.S. (2011). Pluggable Programming Language Features for Incremental Code Quality Enhancement. In: Maciaszek, L.A., Loucopoulos, P. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2010. Communications in Computer and Information Science, vol 230. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23391-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-23391-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-23390-6

  • Online ISBN: 978-3-642-23391-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics