Software Re-Engineering

This course introduces students to the principles, techniques, and strategies of software re-engineering. Students will learn how to analyze existing software systems, identify maintenance and design issues, and apply modern re-engineering methods to enhance, maintain, and modify software effectively. The course covers reverse engineering, data re-engineering, process models, and strategies to detect and mitigate evolutionary software problems. By the end of the course, students will be equipped to understand, apply, and evaluate re-engineering practices for improving software quality and maintainability.

Certificate on Completion

About Course

Software Re-Engineering is a specialized course that focuses on analyzing, improving, and transforming existing software systems to meet modern requirements. It covers key topics such as software maintenance, legacy system modernization, reverse engineering, restructuring, and migration techniques. Students learn how to enhance software quality, performance, security, and maintainability while preserving core functionality. The course also emphasizes documentation, testing, and risk management during system upgrades. It prepares learners to handle real-world challenges in evolving outdated software into efficient and reliable solutions.

Authorship and Attribution

This course has been curated by Riphah International University faculty and staff using publicly available third-party content and Open Educational Resources (OER) for self-paced learning. Learners will engage with curated open-access materials to achieve the course learning outcomes. All third-party content is used under open-access or fair-use policies, while any original materials are developed specifically for this learning experience.

Source and Credits:

  • Instructor: Booming Software Engineers
  • Provider: YouTube (@BSEss)
  • License: Standard YouTube

What You'll Learn

On successful completion of the course, students will be able to:

  • Understand the concepts and technique of software re-engineering. 

  • Apply re-engineering techniques to maintain and modify software. 

  • Analyze maintenance issues associated with software systems. 

  • Identify solutions to mitigate software maintenance issues

Prerequisites

To be successful in this course, learners should have:

To succeed in this course, you should have a basic understanding of Software Engineering, software development principles, programming languages (such as Java, C++, or Python), and software design concepts. Familiarity with software development life cycle (SDLC) models, databases, and object-oriented programming will also help you fully grasp the course content.

Who Can Take This Course?

This course is designed for undergraduate or graduate students in computer science, software engineering, or related fields, as well as early-career software developers and professionals who want to understand, maintain, and improve existing software systems. It is ideal for learners interested in software maintenance, reverse engineering, and improving software quality and maintainability.

Course Outline

Concepts & Techniques

Software Re-Engineering-Introduction & Concepts (Video)

Software Re-Engineering -Techniques and Motivation (Video)

Approaches in Software Re-Engineering (Video)

Techniques and Case Overview (Video)

Strategies and Models

Engg Strategies & Re.Engg Process Models (Video)

R.E Process Models & Other Models (Video)

Phase R.E Model for Software Re-Engineering (Video)

Data Re-Engineering

Re-Engineering-Data (Video)

Reverse Engineering & Visualization

Reverse Engineering (Video)

Visualization Techniques (Video)

Lexical Analysis – Core Concepts for Re-Engineering (Video)

Maintenance Issues & Solutions

Design Problems & Detecting Evolutionary Smells (Video)

Skills You Will Gain

Legacy System Analysis Reverse Engineering Code Refactoring Software Maintenance System Migration Quality Improvement Testing Techniques Documentation SkillsRisk Management Performance Optimization

Course Information

Duration

Approximately 4.7 Hours

Course Information

Difficulty Level

Intermediate

Learning Mode

Fully Online (Asynchronous)

Learning Type

Self Paced

Language

Instructor/Curator

Course Instructor