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 2008 Publication 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.
[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.
[3]
Andrews, G. R. Concurrent Programming: Principles and Practice. Addison-Wesley, 1991.
[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.
[5]
Bass, Clements, and Kazman. Software Architecture in Practice, 2nd ed. Addison-Wesley, 2003.
[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.
[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).
[8]
Bergin, J. Fourteen pedagogical patterns. http://pclc.pace.edu/~bergin/PedPat1.3.html.
[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.
[10]
Budd, T. A. An Introduction to Object-Oriented Programming, 3rd ed. Addison-Wesley, 2002.
[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.
[12]
Doc, A. A. Request processing in apache 2.0. http://httpd.apache.org/docs/2.0/developer/request.html.
[13]
The Eclipse workbench. http://www.eclipse.org.
[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.
[15]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns -- Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, 1995.
[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.
[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.
[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.
[19]
Lea, D. Concurrent Programming in Java: Design Principles and Patterns, 2nd ed. Addison-Wesley, 1999.
[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.
[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.
[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.
[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.
[24]
Noonan, R. E., and Hott, J. R. A course in software development. SIGCSE Bull. 39, 1 (2007), 135--139.
[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.
[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.
[27]
Stevens, W. R. Unix Network Programming. Prentice-Hall, 1990.
[28]
Sun. Java2 Standard Edition API. http://java.sun.com/j2se/1.5.0/docs/api/, 2004.
[29]
Van Vliet, H. Reflections on software engineering education. IEEE Softw. 23, 3 (2006), 55--61.
[30]
Wirfs-Brock, R., and McKean, A. Object Design: Roles, Responsibilities, Collaborations. Pearson Education, 2003.

Cited By

View all

Index Terms

  1. Patterns and traceability in teaching software architecture

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 09 September 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. software architecture
    2. software engineering education

    Qualifiers

    • Research-article

    Conference

    PPPJ08
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 29 of 58 submissions, 50%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 29 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media