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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ashby FG, Isen AM, Turken AU (1999) A neuropsychological theory of positive affect and its influence on cognition. Psychol Rev 106(3):529
Beck K (1997) Smalltalk best practice patterns. Prentice-Hall, Upper Saddle River
Beck K (2000) Extreme programming explained: embrace change. Addison Wesley, Reading
Beck K (2003) Test-driven development: by example. Addison-Wesley Professional, Boston
Dorst K, Cross N (2001) Creativity in the design process: co-evolution of problem-solution. Des Stud 22(5):425–437
Fowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston
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
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
Kay A et al (2010) STEPS toward expressive programming systems, 2010 progress report submitted to the national science foundation. Technical report, Viewpoints Research Institute
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
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
Meyer B (2000) Object-oriented software construction. Prentice Hall, Upper Saddle River
Opdyke WF (1992) Refactoring object-oriented frameworks. Ph.D. thesis, University of Illinois
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
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
Schwaber K, Beedle M (2001) Agile software development with scrum, 1st edn. Alan R. Apt
Shneiderman B, Plaisant C (2009) Designing the user interface: strategies for effective human-computer interaction, 5th edn. Addison Wesley, Reading
Sillito J, Murphy GC, De Volder K (2008) Asking and answering questions during a programming change task. IEEE Trans Softw Eng 34:434–451
Simon HA (1996) The sciences of the artificial. The MIT Press, Cambridge, MA
Spinellis D (2005) Version control systems. IEEE Softw 22:108–109
Wikipedia: the free encyclopedia (2011) Design. November 2011, http://en.wikipedia.org/wiki/Design
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-3-642-31991-4_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-31990-7
Online ISBN: 978-3-642-31991-4
eBook Packages: Business and EconomicsBusiness and Management (R0)