Software Maintenance and Evolution

  • Software Engineering |

Description

Whereas many software engineering courses focus on building new systems from scratch, in industrial practice software developers are often confronted with already existing software systems that need to be maintained, reused, or evolved. This requires specific skills to understand the design and implementation of an existing system and which parts need to be modified, to build software systems that are easier to maintain, and to design systems with reuse and evolution in mind from the very start. This course will thus study a variety of techniques, tools and methodologies to help building software systems that are easier to understand, maintain, reuse and evolve.

Program

Software Engineering 144 CRs

Objectives

  • Students completing successfully this course will be able to:
    1. Understand the difficulties of developing code in a change context as opposed to 'green field' development.
    2. Assess the impact of a change request to an existing product of medium size.
    3. Describe techniques, coding idioms and other mechanisms for implementing designs that are more maintainable.
    4. Understand how design patterns can improve the design of a software system.
    5. Refactor an existing software implementation to improve some aspect of its design.
    6. Identify the principal issues associated with software evolution and explain their impact on the software lifecycle.'
    7. Discuss the advantages and disadvantages of different types of software reuse.

Textbook

Priyadarshi Tripathy and Kshirasagar Naik. Software Evolution and Maintenance: A Practitioner's Approach. Wiley.

Course Content

content serial Description
1Software comprehension and concern location
2Change impact analysis
3Reverse engineering
4Best programming practices
5Coding standards
6Design principles and heuristics
77th week examination
8Design patterns
9Refactoring
10Reengineering
11The laws of software evolution
1212th week examination
13Reuse techniques and design for reuse
14Libraries vs. application frameworks
15Software product lines
16Final Examination

Markets and Career

  • Generation, transmission, distribution and utilization of electrical power for public and private sectors to secure both continuous and emergency demands.
  • Electrical power feeding for civil and military marine and aviation utilities.
  • Electrical works in construction engineering.

Start your application

Start The your journey to your new career.