Abstract
Arguably programming involves design: computational logic – the program – is constantly reorganized to keep complexity manageable and provide for current and future coding activities to be feasible. However, design practices have gained less attention in the field of programming, even though decades of research on design have led to a large body of knowledge about theories, methods, and best practices. This chapter reports on the first results of our research efforts to transfer and apply design knowledge to programming activities. We improved tool support for software developers in two respects, both of which are based on key concepts in design practices: continuous feedback and ease of exploration.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
The evaluation of CST is described in the original paper [29].
- 3.
The empirical evaluation of this approach is described in the original paper [22].
- 4.
A screencast is available online at http://www.hpi.uni-potsdam.de/swa/projects/pathfinder/
References
T. Apiwattanapong, A. Orso, and M.J. Harrold. JDiff: A differencing technique and tool for object-oriented programs. Automated Software Engineering, 14(1):3–36, 2007.
T. Ball. On the limit of control flow analysis for regression test selection. ACM SIGSOFT Software Engineering Notes, 23(2):134–142, 1998.
T. Ball. The Concept of Dynamic Analysis. In ESEC/FSE, pages 216–234, 1999.
V.R. Basili. Evolving and packaging reading technologies. J. Syst. Software, 38(1):3–12, 1997.
K. Beck. Test-driven Development: By Example. Addison-Wesley Professional, 2003.
J. Bible, G. Rothermel, and D.S. Rosenblum. A comparative study of coarse- and fine-grained safe regression test-selection techniques. ACM Transactions on Software Engineering and Methodology, 10(2):149–183, 2001.
J. Brant, B. Foote, R.E. Johnson, and D. Roberts. Wrappers to the Rescue. In ECOOP, pages 396–417, 1998.
Y.F. Chen, D.S. Rosenblum, and K.P. Vo. TestTube: A system for selective regression testing. In Proceedings of 16th International Conference on Software Engineering, 1994, pages 211–220, 1994.
T.A. Corbi. Program Understanding: Challenge for the 1990s. IBM Systems Journal, 28(2):294–306, 1989.
N. Cross. Designerly Ways of Knowing: Design Discipline Versus Design Science. Design Issues, 17(3):49–55, 2001.
M. Fowler. Refactoring: improving the design of existing code. Addison-Wesley Professional, 1999.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.
A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1983.
T. Gschwind and J. Oberleitner. Improving Dynamic Data Analysis with Aspect-Oriented Programming. In CSMR, pages 259–268, 2003.
M.J. Harrold, J.A. Jones, T. Li, D. Liang, A. Orso, M. Pennings, S. Sinha, S.A. Spoon, and A. Gujarathi. Regression Test Selection for Java software. In Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 312–326. ACM New York, NY, USA, 2001.
M.J. Harrold and A. Orso. Retesting Software During Development and Maintenance. Frontiers of Software Maintenance, 2008. FoSM 2008., pages 99–108, 2008.
S. Huang, Y. Chen, J. Zhu, Z.J. Li, and H.F. Tan. An optimized change-driven regression testing selection strategy for binary Java applications. In Proceedings of the 2009 ACM symposium on Applied Computing, pages 558–565. ACM New York, NY, USA, 2009.
D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself. In OOPSLA, pages 318–326, 1997.
K. Beck and C. Andres. Extreme Programming Explained: Embrace Change. Addison- Wesley, 2004.
A.J. Ko, R. DeLine, and G. Venolia. Information Needs in Collocated Software Development Teams. In ICSE, pages 344–353, 2007.
G. Meszaros. XUnit Test Patterns: Refactoring Test Code. Prentice Hall, 2006.
M. Perscheid, B. Steinert, R. Hirschfeld, F. Geller, and M. Haupt. Immediacy through Interactivity: Online Analysis of Run-time Behavior. In 17th Working Conference on Reverse Engineering, pages 77–86, Beverly, USA, 2010. IEEE.
R. Hirschfeld, B. Steinert, J. Lincke. Agile software development in virtual collaboration environments. In Larry Leifer Hasso Plattner, Christoph Meinel, editor, Design Thinking – Understand, Improve, Apply, pages 197–218. Springer, 2011.
G. Rothermel and M.J. Harrold. Analyzing regression test selection techniques. IEEE Transactions on Software Engineering, 22(8):529–551, 1996.
G. Rothermel and M.J. Harrold. A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology (TOSEM), 6(2):173–210, 1997.
G. Rothermel, M.J. Harrold, and J. Dedhia. Regression Test Selection for C++ Software. Software Testing, Verification & Reliability, 10(2):77–109, 2000.
D. Saff and M.D. Ernst. Reducing wasted development time via continuous testing. In ISSRE, page 281, 2003.
B. Schneiderman. Designing the User Interface. Addison-Wesley, 1992.
B. Steinert, M. Haupt, R. Krahn, and R. Hirschfeld. Continuous Selective Testing. In XP, pages 132–146, 2010.
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., Hirschfeld, R. (2012). Applying Design Knowledge to 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-21643-5_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-21643-5_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21642-8
Online ISBN: 978-3-642-21643-5
eBook Packages: Business and EconomicsBusiness and Management (R0)