skip to main content
10.1145/1411732.1411736acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Patterns and traceability in teaching software architecture

Published:09 September 2008Publication History

ABSTRACT

Courses on software architecture and software engineering need to explain the role of non-functional properties in software design, and they often use student projects to highlight their interrelations. Despite its critical importance in software development, the property of traceability has so far been mostly neglected.

This paper examines the role of traceability for teaching software architecture and describes the objectives and structure of two consecutive courses given by the author at the University of Tübingen. The courses build on architectural patterns as blueprints for achieving particular non-functional properties. The vehicle for improving traceability is a sequence of small-scale projects, each of which includes the phases of requirements analysis, design, and implementation. This iterative approach allows students to learn from their experiences and to integrate the feedback on their solutions into the next project.

References

  1. Abbott, R., and Sun, C. Abstraction abstracted. In ROA '08: Proceedings of the 2nd international workshop on The role of abstraction in software engineering (New York, NY, USA, 2008), ACM, pp. 23--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Alrifai, R. A project approach for teaching software architecture and web services in a software engineering course. J. Comput. Small Coll. 23, 4 (2008), 237--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andrews, G. R. Concurrent Programming: Principles and Practice. Addison-Wesley, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Antoniol, G., Caprile, B., Potrich, A., and Tonella, P. Design-code traceability for object-oriented systems. Ann. Softw. Eng. 9, 1--4 (2000), 35--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bass, Clements, and Kazman. Software Architecture in Practice, 2nd ed. Addison-Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bennedsen, J., and Caspersen, M. E. Programming in context: a model-first approach to CS1. In SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science education (New York, NY, USA, 2004), ACM, pp. 477--481. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bennedsen, J., and Caspersen, M. E. Teaching object-oriented programming -- towards teaching a systematic programming process. In Eighth Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts (Oslo, Norway, June 14, 2004). Affiliated with 18th European Conference on Object-Oriented Programming, ECOOP 2004 (June 2004).Google ScholarGoogle Scholar
  8. Bergin, J. Fourteen pedagogical patterns. http://pclc.pace.edu/~bergin/PedPat1.3.html.Google ScholarGoogle Scholar
  9. Bucci, P., Long, T. J., and Weide, B. W. Teaching software architecture principles in CS1/CS2. In ISAW '98: Proceedings of the third international workshop on Software architecture (New York, NY, USA, 1998), ACM, pp. 9--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Budd, T. A. An Introduction to Object-Oriented Programming, 3rd ed. Addison-Wesley, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. Pattern-oriented Software Architecture: A System of Patterns, vol. 1. Wiley & Sons, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Doc, A. A. Request processing in apache 2.0. http://httpd.apache.org/docs/2.0/developer/request.html.Google ScholarGoogle Scholar
  13. The Eclipse workbench. http://www.eclipse.org.Google ScholarGoogle Scholar
  14. Ferreira, G. M., Nascimento, M. Z., Assis, K. D. R., and Ramos, R. P. Teaching object oriented programming computer languages: learning based on projects. In ICSEA '07: Proceedings of the International Conference on Software Engineering Advances (Washington, DC, USA, 2007), IEEE Computer Society, p. 81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns -- Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Garlan, D., and Shaw, M. An introduction to software architecture. Tech. Rep. CMU-CS-94-166, School of Computer Science, Carnegie Mellon University, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jarzabek, S., and Eng, P.-K. Teaching an advanced design, team-oriented software project course. In CSEET '05: Proceedings of the 18th Conference on Software Engineering Education & Training (Washington, DC, USA, 2005), IEEE Computer Society, pp. 223--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Lago, P., and Van Vliet, H. Teaching a course on software architecture. In CSEET '05: Proceedings of the 18th Conference on Software Engineering Education & Training (Washington, DC, USA, 2005), IEEE Computer Society, pp. 35--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Lea, D. Concurrent Programming in Java: Design Principles and Patterns, 2nd ed. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Männistö, T., Savolainen, J., and Myllärniemi, V. Teaching software architecture design. In WICSA '08: Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008) (Washington, DC, USA, 2008), IEEE Computer Society, pp. 117--124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Manson, J., Pugh, W., and Adve, S. V. The java memory model. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (New York, NY, USA, 2005), ACM Press, pp. 378--391. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mitra, S., Rao, T. M., and Bullinger, T. A. Teaching software engineering using a traceability-based development methodology. J. Comput. Small Coll. 20, 5 (2005), 249--259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Murta, L. G., Hoek, A., and Werner, C. M. Continuous and automated evolution of architecture-to-implementation traceability links. Automated Software Engg. 15, 1 (2008), 75--107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Noonan, R. E., and Hott, J. R. A course in software development. SIGCSE Bull. 39, 1 (2007), 135--139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Schmidt, D., Stal, M., Rohnert, H., and Buschmann, F. Pattern-oriented Software Architecture: Patterns for concurrent and networked objects, vol. 2. Wiley & Sons, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Schmolitzky, A. Teaching inheritance concepts with Java. In PPPJ '06: Proceedings of the 4th international symposium on principles and practice of programming in Java (New York, NY, USA, 2006), ACM, pp. 203--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Stevens, W. R. Unix Network Programming. Prentice-Hall, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sun. Java2 Standard Edition API. http://java.sun.com/j2se/1.5.0/docs/api/, 2004.Google ScholarGoogle Scholar
  29. Van Vliet, H. Reflections on software engineering education. IEEE Softw. 23, 3 (2006), 55--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Wirfs-Brock, R., and McKean, A. Object Design: Roles, Responsibilities, Collaborations. Pearson Education, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Patterns and traceability in teaching software architecture

    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
    • Published in

      cover image ACM Conferences
      PPPJ '08: Proceedings of the 6th international symposium on Principles and practice of programming in Java
      September 2008
      198 pages
      ISBN:9781605582238
      DOI:10.1145/1411732
      • Conference Chairs:
      • Luis Veiga,
      • Vasco Amaral

      Copyright © 2008 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 ACM 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: 9 September 2008

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate29of58submissions,50%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader