You are here: Home Basic Research Software Engineering Available Master's topics What is the impact of software design attributes in a maintenance process?

What is the impact of software design attributes in a maintenance process?

1-2 short or long theses

 

Background:

Relying only on code measures does not offer clear guidance to developers about how to improve maintainability of a system. For instance if you have a maintainability index of 3, how would you improve the software to get a 5? Our motivation for integrating structural symptoms (more known as Code Smells, Design Smells and Design Principle Violations) to maintainability analysis is that for each of these symptoms, re-design strategies (e.g., refactoring, use of design patterns and design heuristics) can be used to improve the software. However the cost of implementing such strategies must be related to the cost of having such flaws in the system. We want to explore the implications of the presence of these symptoms in a real life project.

 

What you will do:

You will help to carry out a Controlled, multiple case study, where several programmers will be asked to conduct a series of maintenance tasks in several versions of a web-based information system (each of them with similar functionality but very different design). Some of the responsibilities (not limited to) will include:

 

1.       Preparation for Pilot study

-          Conduct a trial test for the description of the maintenance tasks to be given to the participants

-          Help in miscellaneous activities such as configuration management and study repository management

 

2.       Help to draw a profile of the participants of the study by either extracting already available data or conducting interviews to verify if the following concepts are known by the participants:

·         Refactoring

·         Design Patterns

·         Design Smells

·         Design Principle Violations

 

3.       Conduct a literature review on implications of code measures and structural symptoms on maintenance tasks and help to build a pattern of expected results from the maintenance project based on the available information on the design attributes of the systems to be maintained.

 

4.       Help to perform different data collection techniques (e.g., observational analysis, think-aloud protocols, repository-based data collection) and preliminary analysis of the data. The main focus will be on observing how the programmers undertake their tasks amongst the different systems and what type of practical issues they might face due to the design of the software.

 

You will from this thesis:

·         Learn how to conduct a case study with industry practitioners and how to analyze data

·         Learn how to use a research methodology called Pattern Matching

·         Get insight on different factors and management issues involved in a software project (more specifically a maintenance project)

·         Learn about code smells (also part of Agile Methodology) and re-design strategies and how they can impact software projects

·         Establish contacts with software industry at international and local level

For more information please contact Aiko Yamashita
Personal tools