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.
- Russell Abbott. 1983. Program design by informal English descriptions. Commun. ACM 26, 11 (1983), 882--894. Google ScholarDigital Library
- Christopher Alexander, Sara Ishikawa, Murray Silverstein, Joaquim Romaguera i Ramió, Max Jacobson, and Ingrid Fiksdahl-King. 1977. A Pattern Language. Gustavo Gili.Google Scholar
- Lukas Alperowitz. 2017. ProCeeD—A Framework for Continuous Prototyping. Ph.D. Dissertation. Technical University Munich, Germany.Google Scholar
- Larry Apfelbaum and John Doyle. 1997. Model based testing. In Proceedings of the Software Quality Week Conference. 296--300.Google Scholar
- Jonathan Arnowitz, Michael Arent, and Nevin Berger. 2010. Effective Prototyping for Software Makers. Morgan Kaufmann. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Kent Beck and Ward Cunningham. 1989. A laboratory for teaching object oriented thinking. In Sigplan Notices, Vol. 24. ACM, 1--6. Google ScholarDigital Library
- Barry Boehm. 2000. Requirements that handle IKIWISI, COTS, and rapid change. Computer 33, 7 (2000), 99--102. Google ScholarDigital Library
- Charles Bonwell and James Eison. 1991. Active Learning: Creating Excitement in the Classroom. ASHE-ERIC Higher Education Reports.Google Scholar
- Bernd Bruegge and Allen Dutoit. 2009. Object Oriented Software Engineering Using UML, Patterns, and Java (3rd ed.). Prentice Hall. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. 1996. A system of patterns: Pattern-oriented software architecture. Addison Wesley. Google ScholarDigital Library
- Lan Cao and Balasubramaniam Ramesh. 2008. Agile requirements engineering practices: An empirical study. IEEE Software 25, 1 (2008), 60--67. Google ScholarDigital Library
- John Carroll. 1995. Scenario-based Design: Envisioning Work and Technology in System Development. John Wiley 8 Sons, Inc. Google ScholarDigital Library
- John Carroll. 2000. Making Use: Scenario-based Design of Human-computer Interactions. MIT Press. Google ScholarDigital Library
- Dora Dzvonyar, Stephan Krusche, and Lukas Alperowitz. 2014. Real projects with informal models. In Proceedings of the 10th Edition of the Educators’ Symposium.Google Scholar
- Christiane Floyd. 1984. A systematic look at prototyping. In Approaches to Prototyping. Springer, 1--18.Google Scholar
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley. Google ScholarDigital Library
- Ron Garland. 1991. The mid-point on a rating scale: Is it desirable. Marketing Bulletin 2, 1 (1991), 66--70.Google Scholar
- Orit Hazzan. 2002. The reflective practitioner perspective in software engineering education. Journal of Systems and Software 63, 3 (2002), 161--171. Google ScholarDigital Library
- 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 Scholar
- Matthias Jarke and Klaus Pohl. 1993. Establishing visions in context: Towards a model of requirements processes. In Proceedings of the 14th ICIS.Google Scholar
- 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 Scholar
- Bent Bruun Kristensen. 1995. Object-oriented modelling with roles. In OOIS. 57--71.Google Scholar
- Stephan Krusche. 2016. Rugby - A Process Model for Continuous Software Engineering. Ph.D. Dissertation. Technical University Munich, Germany.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Brenda Laurel. 1993. Computers as Theatre (2nd ed.). Addison-Wesley. Google ScholarDigital Library
- Meir Lehman and Laszlo Belady. 1985. Program Evolution: Processes of Software Change. Academic Press. Google ScholarDigital Library
- 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 ScholarDigital Library
- Tim Mackinnon, Steve Freeman, and Philip Craig. 2000. Endo-testing: Unit testing with mock objects. In Extreme Programming Examined. ACM, 287--301. Google ScholarDigital Library
- 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 ScholarDigital Library
- Martin Mahaux and Neil Maiden. 2008. Theater improvisers know the requirements game. IEEE Software 25, 5 (2008), 68. Google ScholarDigital Library
- Robert Martin. 1996. The dependency inversion principle. C++ Report 8, 6 (1996), 61--66.Google Scholar
- Jakob Nielsen. 1994. Usability Engineering. Elsevier.Google Scholar
- Donald Norman. 2013. The Design of Everyday Things (Revised and Expanded Edition). Basic Books.Google Scholar
- Donald Norman and Stephen Draper. 1986. User centered system design: New perspectives on human-computer interaction. CRC Press. Google ScholarDigital Library
- 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 ScholarDigital Library
- Klaus Pohl. 2010. Requirements Engineering: Fundamentals, Principles, and Techniques. Springer. Google ScholarCross Ref
- Roger Pressman. 2009. Software Engineering: A Practitioner’s Approach. McGraw-Hill. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Ken Schwaber and Mike Beedle. 2002. Agile Software Development with Scrum. Prentice Hall. Google ScholarDigital Library
- Helen Sharp. 2003. Interaction Design. John Wiley 8 Sons.Google Scholar
- 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 Scholar
- Mary Shaw, Jim Herbsleb, Ipek Ozkaya, and Dave Root. 2006. Deciding what to design: Closing a gap in software engineering education. 28--58. Google ScholarDigital Library
- Alistair Sutcliffe. 1997. A technique combination approach to requirements engineering. In Proceedings of the 3rd International Symposium on Requirements Engineering. IEEE. Google ScholarDigital Library
- James Tomayko. 1987. Teaching a Project-intensive Introduction to Software Engineering. Technical Report CMU/SEI-87-TR-20. DTIC Document.Google Scholar
- Klaus Weidenhaupt, Klaus Pohl, Matthias Jarke, and Peter Haumer. 1998. Scenarios in system development: Current practice. IEEE Software 15, 2 (1998), 34--45. Google ScholarDigital Library
- Jim Whitehead. 2007. Collaboration in software engineering: A roadmap. FOSE 7, 214--225. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Software Theater—Teaching Demo-Oriented Prototyping
Recommendations
Software Engineering Project Courses with Industrial Clients
Special Issue on Team Projects in Computing EducationThere is an acknowledged need for teaching realistic software development in project courses. The design space for such courses is wide, ranging from single-semester to two-semester courses, from single-client to multicustomer courses, from local to ...
Teaching Computational Thinking Using Agile Software Engineering Methods: A Framework for Middle Schools
Computational Thinking (CT) has been recognized as one of the fundamental skills that all graduates should acquire. For this reason, motivational concerns need to be addressed at an early age of a child, and reaching students who do not consider ...
Engaging theatre audiences before the play: the design of playful interactive storytelling experiences
Inputs-Outputs '13: Proceedings of the 2013 Inputs-Outputs Conference: An Interdisciplinary Conference on Engagement in HCI and PerformanceIn this paper I present Mobile Stories, a design-led project that explored ways of playfully motivating and engaging theatre audiences in their journey before the premiere of a theatrical play. The project used the art of storytelling and mobile ...
Comments