Welcome to Fall 2004
SENG 480A/SENG 520
Software Evolution
Changes to software over long periods of time. Methods, techniques, and tools employed by software engineers when developing and maintaining evolving software. Reverse engineering, reengineering, and migration approaches which involve capturing, preserving, and extending knowledge about software, analyzing and understanding software, and finally changing, improving, and evolving software. Topics include static and dynamic source code analysis, software visualization, and program transformation tools.
Prerequisite: SENG 265
Topics
- Large-system engineering: Separate compilation; design issues; verification and validation; integrating components; documentation
- Advanced issues in object-oriented programming; parallelism; event-centered programming; common design patterns; software reuse
- The Laws of Software Evolution
- Client-server computing: Software support needed for client and server implementation; varieties of server structures
- Program understanding and software visualization
- Reverse engineering and reverse engineering tools
- Recognizing software architecture and design patterns in existing software systems
- Software transformation, migration, and reengineering
- Recovering software components for reuse
|
|
Office hours
Mon 10:30-11:30
Thu 11:30-12:30
EOW 337
Lectures
MTh 8:30-10:00
CLE A311
Markers
Adeniyi Onabajo
onabajo@cs.uvic.ca
SENG Courses
The University of Victoria is committed to promoting, providing, and protecting a positive, and supportive and safe learning and working environment for all its members.
|