SW4560 Software Evolution

This course covers the concepts, methods, techniques and tools for supporting the evolution and maintenance of software systems. Specific topics include the use of formal specifications to support software evolution, design databases, configuration management, software change merging, and software re-engineering.

Prerequisite

SW3460

Lecture Hours

3

Lab Hours

0

Course Learning Outcomes

After completing this course, student will be able to do the following:

  • Explain the role of evolution in software development.
  • Understand the concepts and techniques for specification-based software maintenance.
  • Explain how the concepts and techniques for software configuration management apply to requirements changes.
  • Apply methods and tools for computer-aided software evolution and re-engineering.
  • Apply modern software engineering principles to control and realize the evolution of software systems.
  • Apply software slicing and merging techniques to software architectures.
  • Apply machine learning/deep learning algorithms to software system modifications.
  • Write and maintain well-documented programs.