Skip to main content

Adopting Design Practices for Programming

  • Chapter
  • First Online:
Design Thinking Research

Part of the book series: Understanding Innovation ((UNDINNO))

Abstract

Developers continuously design their programs. For example, developers strive for simplicity and consistency in their constructions like practitioners in most design fields. A simple program design supports working on current and future development tasks. While many problems addressed by developers have characteristics similar to design problems, developers typically do not use principles and practices dedicated to such problems. In this chapter we report on the adoption of design practices for programming. First, we propose a new concept for integrated programming environments that encourages developers to work with concrete representations of abstract thoughts within a flexible canvas. Second, we present continuous versioning as our approach to support the need for withdrawing changes during program design activities.

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 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Notes

  1. 1.

    http://www.microsoft.com/visualstudio

References

  • Ashby FG, Isen AM, Turken AU (1999) A neuropsychological theory of positive affect and its influence on cognition. Psychol Rev 106(3):529

    Article  Google Scholar 

  • Beck K (1997) Smalltalk best practice patterns. Prentice-Hall, Upper Saddle River

    Google Scholar 

  • Beck K (2000) Extreme programming explained: embrace change. Addison Wesley, Reading

    Google Scholar 

  • Beck K (2003) Test-driven development: by example. Addison-Wesley Professional, Boston

    Google Scholar 

  • Dorst K, Cross N (2001) Creativity in the design process: co-evolution of problem-solution. Des Stud 22(5):425–437

    Article  Google Scholar 

  • Fowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston

    Google Scholar 

  • Fowler M (2011) Opportunistic refactoring. November 2011. http://martinfowler.com/bliki/OpportunisticRefactoring.html

  • Fowler M, Highsmith J (2001) The agile manifesto. Softw Dev Mag 9(8):29–30

    Google Scholar 

  • Johnson RE, Opdyke WF (1993) Refactoring and aggregation. In: Object technologies for advanced software. First JSSST international symposium. Lecture notes in computer science, vol 742. Springer, November 1993, pp 264–278

    Google Scholar 

  • Kay A et al (2010) STEPS toward expressive programming systems, 2010 progress report submitted to the national science foundation. Technical report, Viewpoints Research Institute

    Google Scholar 

  • Ko AJ, Myers BA, Coblenz MJ, Aung HH (2006) An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans Softw Eng 32:971–987

    Article  Google Scholar 

  • Lim Y-K, Stolterman E, Tenenberg J (2008) The anatomy of prototypes: prototypes as filters, prototypes as manifestations of design ideas. ACM Trans Comput Hum Interact (TOCHI) 15(2):1–27

    Article  Google Scholar 

  • Meyer B (2000) Object-oriented software construction. Prentice Hall, Upper Saddle River

    Google Scholar 

  • Opdyke WF (1992) Refactoring object-oriented frameworks. Ph.D. thesis, University of Illinois

    Google Scholar 

  • Perscheid M, Steinert B, Hirschfeld R, Geller F, Haupt M (2010) Immediacy through interactivity: online analysis of run-time behavior. In: 17th working conference on reverse engineering. IEEE, Beverly, pp 77–86

    Google Scholar 

  • Ralph P, Wand Y (2009) A proposal for a formal definition of the design concept. In: Design requirements engineering: a ten-year perspective. Springer, Berlin/Heidelberg, pp 103–136

    Chapter  Google Scholar 

  • Schwaber K, Beedle M (2001) Agile software development with scrum, 1st edn. Alan R. Apt

    Google Scholar 

  • Shneiderman B, Plaisant C (2009) Designing the user interface: strategies for effective human-computer interaction, 5th edn. Addison Wesley, Reading

    Google Scholar 

  • Sillito J, Murphy GC, De Volder K (2008) Asking and answering questions during a programming change task. IEEE Trans Softw Eng 34:434–451

    Article  Google Scholar 

  • Simon HA (1996) The sciences of the artificial. The MIT Press, Cambridge, MA

    Google Scholar 

  • Spinellis D (2005) Version control systems. IEEE Softw 22:108–109

    Article  Google Scholar 

  • Wikipedia: the free encyclopedia (2011) Design. November 2011, http://en.wikipedia.org/wiki/Design

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Robert Hirschfeld .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Steinert, B., Taeumel, M., Cassou, D., Hirschfeld, R. (2012). Adopting Design Practices for Programming. In: Plattner, H., Meinel, C., Leifer, L. (eds) Design Thinking Research. Understanding Innovation. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31991-4_14

Download citation

Publish with us

Policies and ethics