skip to main content
research-article

Software Theater—Teaching Demo-Oriented Prototyping

Authors Info & Claims
Published:11 July 2018Publication History
Skip Abstract Section

Abstract

Modern capstone courses use agile methods to deliver and demonstrate software early in the project. However, a simple demonstration of functional and static aspects does not provide real-world software usage context, although this is integral to understand software requirements. Software engineering involves capabilities such as creativity, imagination, and interaction, which are typically not emphasized in software engineering courses. A more engaging, dynamic way of presenting software prototypes is needed to demonstrate the context in which the software is used. We combine agile methods, scenario-based design, and theatrical aspects into software theater, an approach to present visionary scenarios using techniques borrowed from theater and film, including props and humor.

We describe the software theater workflow, provide examples, and explain patterns to demonstrate its potential. We illustrate two large case studies in which we teach students with varying levels of experience to apply software theater: a capstone course involving industrial customers with 100 students and an interactive lecture-based course with 400 students. We empirically evaluated the use of software theater in both courses. Our evaluations show that students can understand and apply software theater within one semester and that this technique increases their motivation to prepare demonstrations even early in the project. Software theater is more creative, memorable, dynamic, and engaging than normal demonstration techniques and brings fun into education.

References

  1. Russell Abbott. 1983. Program design by informal English descriptions. Commun. ACM 26, 11 (1983), 882--894. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Christopher Alexander, Sara Ishikawa, Murray Silverstein, Joaquim Romaguera i Ramió, Max Jacobson, and Ingrid Fiksdahl-King. 1977. A Pattern Language. Gustavo Gili.Google ScholarGoogle Scholar
  3. Lukas Alperowitz. 2017. ProCeeD—A Framework for Continuous Prototyping. Ph.D. Dissertation. Technical University Munich, Germany.Google ScholarGoogle Scholar
  4. Larry Apfelbaum and John Doyle. 1997. Model based testing. In Proceedings of the Software Quality Week Conference. 296--300.Google ScholarGoogle Scholar
  5. Jonathan Arnowitz, Michael Arent, and Nevin Berger. 2010. Effective Prototyping for Software Makers. Morgan Kaufmann. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Victor Basili. 1996. The role of experimentation in software engineering: Past, current, and future. In Proceedings of the 18th International Conference on Software Engineering. IEEE, 442--449. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. K. Beck, M. Beedle, A. Van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, and others. 2001. Manifesto for agile software development. The Agile Alliance (2001). http://agilemanifesto.org.Google ScholarGoogle Scholar
  8. Kent Beck and Ward Cunningham. 1989. A laboratory for teaching object oriented thinking. In Sigplan Notices, Vol. 24. ACM, 1--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Barry Boehm. 2000. Requirements that handle IKIWISI, COTS, and rapid change. Computer 33, 7 (2000), 99--102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Charles Bonwell and James Eison. 1991. Active Learning: Creating Excitement in the Classroom. ASHE-ERIC Higher Education Reports.Google ScholarGoogle Scholar
  11. Bernd Bruegge and Allen Dutoit. 2009. Object Oriented Software Engineering Using UML, Patterns, and Java (3rd ed.). Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bernd Bruegge, Stephan Krusche, and Lukas Alperowitz. 2015. Software engineering project courses with industrial clients. ACM Transactions on Computing Education 15, 4 (2015), 17:1–17:31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Bernd Bruegge, Stephan Krusche, and Martin Wagner. 2012. Teaching tornado: From communication models to releases. In Proceedings of the 8th Edition of the Educators’ Symposium. ACM, 5--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. 1996. A system of patterns: Pattern-oriented software architecture. Addison Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Lan Cao and Balasubramaniam Ramesh. 2008. Agile requirements engineering practices: An empirical study. IEEE Software 25, 1 (2008), 60--67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. John Carroll. 1995. Scenario-based Design: Envisioning Work and Technology in System Development. John Wiley 8 Sons, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. John Carroll. 2000. Making Use: Scenario-based Design of Human-computer Interactions. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dora Dzvonyar, Stephan Krusche, and Lukas Alperowitz. 2014. Real projects with informal models. In Proceedings of the 10th Edition of the Educators’ Symposium.Google ScholarGoogle Scholar
  19. Christiane Floyd. 1984. A systematic look at prototyping. In Approaches to Prototyping. Springer, 1--18.Google ScholarGoogle Scholar
  20. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ron Garland. 1991. The mid-point on a rating scale: Is it desirable. Marketing Bulletin 2, 1 (1991), 66--70.Google ScholarGoogle Scholar
  22. Orit Hazzan. 2002. The reflective practitioner perspective in software engineering education. Journal of Systems and Software 63, 3 (2002), 161--171. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Matthias Jarke, Ralf Klamma, Klaus Pohl, and Ernst Sikora. 2010. Requirements engineering in complex domains. Graph Transformations and Model-driven Engineering (2010), 602--620. http://dblp.uni-trier.de/rec/bibtex/conf/birthday/JarkeKPS10.Google ScholarGoogle Scholar
  24. Matthias Jarke and Klaus Pohl. 1993. Establishing visions in context: Towards a model of requirements processes. In Proceedings of the 14th ICIS.Google ScholarGoogle Scholar
  25. Stephen Kline and Nathan Rosenberg. 1986. An overview of innovation. In The Positive Sum Strategy: Harnessing Technology for Economic Growth. National Academy Press, 275--305.Google ScholarGoogle Scholar
  26. Bent Bruun Kristensen. 1995. Object-oriented modelling with roles. In OOIS. 57--71.Google ScholarGoogle Scholar
  27. Stephan Krusche. 2016. Rugby - A Process Model for Continuous Software Engineering. Ph.D. Dissertation. Technical University Munich, Germany.Google ScholarGoogle Scholar
  28. Stephan Krusche and Lukas Alperowitz. 2014. Introduction of continuous delivery in multi-customer project courses. In Proceedings of the 36th International Conference on Software Engineering. IEEE, 335--343. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Stephan Krusche, Lukas Alperowitz, Bernd Bruegge, and Martin Wagner. 2014. Rugby: An agile process model based on continuous delivery. In Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering. ACM, 42--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Stephan Krusche, Mjellma Berisha, and Bernd Bruegge. 2016. Teaching code review management using branch based workflows. In Companion Proceedings of the 38th International Conference on Software Engineering. IEEE, 384--393. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Stephan Krusche, Andreas Seitz, Jürgen Börstler, and Bernd Bruegge. 2017. Interactive learning: Increasing student participation through shorter exercise cycles. In Proceedings of the 19th Australasian Computing Education Conference. ACM, 17--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Brenda Laurel. 1993. Computers as Theatre (2nd ed.). Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Meir Lehman and Laszlo Belady. 1985. Program Evolution: Processes of Software Change. Academic Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Yang Li, Stephan Krusche, Christian Lescher, and Bernd Bruegge. 2016. Teaching global software engineering by simulating a global project in the classroom. In Proceedings of the 47th SIGCSE. ACM, 187--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Tim Mackinnon, Steve Freeman, and Philip Craig. 2000. Endo-testing: Unit testing with mock objects. In Extreme Programming Examined. ACM, 287--301. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Martin Mahaux, Patrick Heymans, and Neil Maiden. 2010. Making it all up: Getting in on the act to improvise creative requirements. In Proceedings of the 18th International Requirements Engineering Conference. IEEE, 375--376. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Martin Mahaux and Neil Maiden. 2008. Theater improvisers know the requirements game. IEEE Software 25, 5 (2008), 68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Robert Martin. 1996. The dependency inversion principle. C++ Report 8, 6 (1996), 61--66.Google ScholarGoogle Scholar
  39. Jakob Nielsen. 1994. Usability Engineering. Elsevier.Google ScholarGoogle Scholar
  40. Donald Norman. 2013. The Design of Everyday Things (Revised and Expanded Edition). Basic Books.Google ScholarGoogle Scholar
  41. Donald Norman and Stephen Draper. 1986. User centered system design: New perspectives on human-computer interaction. CRC Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Tom Nurkkala and Stefan Brandle. 2011. Software studio: Teaching professional software engineering. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education. ACM, 153--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Klaus Pohl. 2010. Requirements Engineering: Fundamentals, Principles, and Techniques. Springer. Google ScholarGoogle ScholarCross RefCross Ref
  44. Roger Pressman. 2009. Software Engineering: A Practitioner’s Approach. McGraw-Hill. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Mark Rice, Alan Newell, and Maggie Morgan. 2007. Forum theatre as a requirements gathering methodology in the design of a home telecommunication system for older adults. Behaviour 8 Information Technology 26, 4 (2007), 323--331. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Colette Rolland, C. Ben Achour, Corine Cauvet, Jolita Ralyté, Alistair Sutcliffe, Neil Maiden, Matthias Jarke, Peter Haumer, Klaus Pohl, Eric Dubois, and P. Heymans. 1998. A proposal for a scenario classification framework. Requirements Engineering 3, 1 (1998), 23–47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Ken Schwaber and Mike Beedle. 2002. Agile Software Development with Scrum. Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Helen Sharp. 2003. Interaction Design. John Wiley 8 Sons.Google ScholarGoogle Scholar
  49. Mary Shaw, Bernd Bruegge, and John Cheng. 1991. A software engineering project course with a real client. Carnegie Mellon University Pittsburgh Software Engineering Institute.Google ScholarGoogle Scholar
  50. Mary Shaw, Jim Herbsleb, Ipek Ozkaya, and Dave Root. 2006. Deciding what to design: Closing a gap in software engineering education. 28--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Alistair Sutcliffe. 1997. A technique combination approach to requirements engineering. In Proceedings of the 3rd International Symposium on Requirements Engineering. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. James Tomayko. 1987. Teaching a Project-intensive Introduction to Software Engineering. Technical Report CMU/SEI-87-TR-20. DTIC Document.Google ScholarGoogle Scholar
  53. Klaus Weidenhaupt, Klaus Pohl, Matthias Jarke, and Peter Haumer. 1998. Scenarios in system development: Current practice. IEEE Software 15, 2 (1998), 34--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Jim Whitehead. 2007. Collaboration in software engineering: A roadmap. FOSE 7, 214--225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Han Xu, Oliver Creighton, Naoufel Boulila, and Bernd Bruegge. 2013. User model and system model: The yin and yang in user-centered software development. In Proceedings of the International Symposium on New Ideas, New Paradigms, and Reflections on Programming 8 Software (Onward!). ACM, 91--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Han Xu, Stephan Krusche, and Bernd Bruegge. 2015. Using software theater for the demonstration of innovative ubiquitous applications. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering. ACM, 894--897. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Software Theater—Teaching Demo-Oriented Prototyping

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM Transactions on Computing Education
                ACM Transactions on Computing Education  Volume 18, Issue 2
                Special Issue on Capstone Projects
                June 2018
                116 pages
                EISSN:1946-6226
                DOI:10.1145/3239167
                Issue’s Table of Contents

                Copyright © 2018 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 11 July 2018
                • Accepted: 1 August 2017
                • Received: 1 April 2017
                Published in toce Volume 18, Issue 2

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article
                • Research
                • Refereed

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader