Skip to main content

Crunch: Automated Assessment of Microservice Architecture Assignments with Formative Feedback

  • Conference paper
  • First Online:
Software Architecture (ECSA 2018)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11048))

Included in the following conference series:

Abstract

Microservice architectures and the DevOps development practices have become essential as companies strive to provide reliable and robust software systems supporting millions of users at the same time as new features are released and defects corrected and deployed in hours rather in months or years. It is therefore relevant to teach the microservice architectural style as well as the DevOps practices to our students. A central tenet of DevOps is fast feedback which pose a problem when it comes to providing formative feedback on exercises handed in by students. In this paper, we present the architectural design challenges in assessing student solutions embodying microservice systems as well as our analysis and solutions to them. We present our implementation, Crunch, and present student and instructor evaluation of having this support in a concrete course.

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 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight 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.

    https://hub.docker.com/.

  2. 2.

    www.junit.org.

  3. 3.

    In Denmark, grades A–E are mapped to a numerical scale, A = 12, B = 10; C = 7, D = 4, and E = 2).

References

  1. Anderson, Charles: Docker. IEEE Software, pp. 102–105 (2015)

    Google Scholar 

  2. Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables DevOps: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)

    Article  Google Scholar 

  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley, Boston (2012)

    Google Scholar 

  4. Biggs, J., Tang, C.: Teaching for Quality Learning at University. Open University Press, McGraw-Hill, New York City (2007)

    Google Scholar 

  5. Buschmann, F., Henney, K., Schmidt, D.C.: Pattern Oriented Software, vol. 4. Wiley, Hoboken (2007)

    Google Scholar 

  6. Caspersen, M.E., Bennedsen, J.: Instructional design of a programming course: a learning theoretic approach. In: Proceedings of the Third International Workshop on Computing Education Research, ICER 2007, pp. 111–122. ACM, New York (2007)

    Google Scholar 

  7. Christensen, H.B.: A story-telling approach for a software engineering course design. In: Proceedings of the 14th Annual ACM SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2009, pp. 60–64. ACM, New York (2009)

    Google Scholar 

  8. Christensen, H.B.: Cloud Computing and Architecture, E16 Website. (2016). http://users-cs.au.dk/baerbak/c/cloud-e16/menu1.html

  9. Christensen, H.B.: Teaching DevOps and cloud computing using a cognitive apprenticeship and story-telling approach. In: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2016, pp. 174–179. ACM, New York (2016)

    Google Scholar 

  10. Daly, C., Horgan, J.M.: An automated learning system for Java programming. IEEE Trans. Educ. 47(1), 10–17 (2004)

    Article  Google Scholar 

  11. Docker. Docker web site (2017). www.docker.com

  12. Fowler, M.: Window driver (2004). https://www.martinfowler.com/eaaDev/WindowDriver.html

  13. Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley, Boston (2010)

    Google Scholar 

  14. Insa, D., Silva, J.: Semi-automatic assessment of unrestrained Java code: a library, a DSL, and a workbench to assess exams and exercises. In: Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2015, pp. 39–44. ACM, New York (2015)

    Google Scholar 

  15. Jerz, D.G.: Somewhere nearby is Colossal cave: examining will crowther’s original "Adventure" in Code and in Kentucky. Digit. Humanities Q. 1(2), 2 (2007)

    Google Scholar 

  16. Keuning, H., Jeuring, J., Heeren, B.: Towards a systematic review of automated feedback generation for programming exercises. In: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2016, pp. 41–46. ACM, New York (2016)

    Google Scholar 

  17. Keuning, H., Jeuring, J., Heeren, B.: Towards a systematic review of automated feedback generation for programming exercises - extended version. Technical report, Department of Information and Computing Sciences, Utrecht, The Netherlands, March 2016

    Google Scholar 

  18. Le, N.-T., Pinkwart, N.: Towards a classification for programming exercises. In: Workshop on AI-supported Education for Computer Science, pp. 51–60 (2014)

    Google Scholar 

  19. Lewis, J., Fowler, M.: Microservices (2014). https://www.martinfowler.com/articles/microservices.html

  20. Meszaros, G.: xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, Boston (2007)

    Google Scholar 

  21. Nygard, M.T.: Release It! Design and Deploy Production-Ready Software, 2nd edn. Pragmatic Bookshelf (2018). https://pragprog.com/

  22. Sykes, E.R.: Qualitative evaluation of the Java intelligent tutoring system. J. Syst. Cybern. Inform. 3(5), 49–60 (2006)

    Google Scholar 

  23. Truong, N., Roe, P., Bancroft, P.: Static analysis of students’ Java programs. In: Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30, ACE 2004, pp. 317–325. Australian Computer Society, Inc., Darlinghurst (2004)

    Google Scholar 

  24. Wikipedia. DevOps (2016). www.wikipedia.org. Accessed Jan 2016

Download references

Acknowledgements

Daniel Damgaard contributed to the architectural analysis.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Henrik Bærbak Christensen .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Christensen, H.B. (2018). Crunch: Automated Assessment of Microservice Architecture Assignments with Formative Feedback. In: Cuesta, C., Garlan, D., PĂ©rez, J. (eds) Software Architecture. ECSA 2018. Lecture Notes in Computer Science(), vol 11048. Springer, Cham. https://doi.org/10.1007/978-3-030-00761-4_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-00761-4_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-00760-7

  • Online ISBN: 978-3-030-00761-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics