UNIX network programming
Concurrent programming: principles and practice
Concurrent programming: principles and practice
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Teaching software architecture principles in CS1/CS2
ISAW '98 Proceedings of the third international workshop on Software architecture
An Introduction to Object-Oriented Programming
An Introduction to Object-Oriented Programming
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Design-code traceability for object-oriented systems
Annals of Software Engineering
Object Design: Roles, Responsibilities, and Collaborations
Object Design: Roles, Responsibilities, and Collaborations
Software Architecture in Practice
Software Architecture in Practice
An Introduction to Software Architecture
An Introduction to Software Architecture
Programming in context: a model-first approach to CS1
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Teaching a Course on Software Architecture
CSEET '05 Proceedings of the 18th Conference on Software Engineering Education & Training
Teaching an Advanced Design, Team-Oriented Software Project Course
CSEET '05 Proceedings of the 18th Conference on Software Engineering Education & Training
Teaching software engineering using a traceability-based development methodology
Journal of Computing Sciences in Colleges
Reflections on Software Engineering Education
IEEE Software
Teaching inheritance concepts with Java
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
A course in software development
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Teaching object oriented programming computer languages: learning based on projects
ICSEA '07 Proceedings of the International Conference on Software Engineering Advances
Continuous and automated evolution of architecture-to-implementation traceability links
Automated Software Engineering
Teaching Software Architecture Design
WICSA '08 Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
Journal of Computing Sciences in Colleges
Proceedings of the 2nd international workshop on The role of abstraction in software engineering
Teaching an iterative approach with rotating groups in an undergraduate software engineering course
Journal of Computing Sciences in Colleges
A catalogue of component connectors to support development with reuse
Journal of Systems and Software
Analyzing the role of tags as lightweight traceability links
Proceedings of the 6th International Workshop on Traceability in Emerging Forms of Software Engineering
Hi-index | 0.00 |
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.