Inlämning av Examensarbete / Submission of Thesis

Muhammad-Iftikhar Nasir; Rizwan Iqbal MCS-2008-36, pp. 69. TEK/avd. för programvaruteknik, 2008.

The work

Författare / Author: Muhammad-Iftikhar Nasir, Rizwan Iqbal,
Titel / Title: Evolvability of Software Systems
Översatt titel / Translated title: Evolvability av programvarusystem
Abstrakt Abstract:

Software evolvability, meeting the future requirements of the customer is one of the emerging challenges which software industry is facing nowadays. Software evolvability is the ability of software system to accommodate future requirements. Studies have shown that software evolvability has large economic benefits but at the same time it’s difficult to assess. Over the time many methods have been derived to assess the software evolvability. Software evolvability depends upon various characteristics of the software system.
In this paper we will discuss different characteristics of the software systems on which software evolvability depends. We will also have a look on hierarchy of these characteristics based on their role in the evolvability of software system. Moreover we will find out that what level of qualifications is appropriate for an expert to assess the software evolvability of a software system

Populärvetenskaplig beskrivning / Popular science summary: Software evolvability plays an important role in the software life cycle. It is ease with which software system can be modified for future requirements. There are different methods for assessing the software evolvability. Mainly, structural measures; expert assessment and combined approach. Structural approach focus on the class level measures i.e. inheritance, modularity, coupling etc. Whereas, the expert assessment approach utilizes experts opinion regarding the software system i.e. how much it is evolvable? Combined approach is a combination of structural measures and expert assessment. According to David E. Peercy software evolvability depends upon six factors i.e. modularity, descriptiveness, consistency, simplicity, expandability and instrumentation. However, David A. Sunday considered five factors which are modularity, descriptiveness, consistency, testability and changeability.

Moreover, there are other factors which also influence the software evolvability i.e. skills and qualification of the maintainer, organizational support to evolvability and characteristics of the methods being used for maintenance. The importance of research methodology can't be neglected because it gives us thought about our research before start. It has a positive impact on research. We are able to understand the structure of our work and have rough idea about research procedure. Our research methodology on theme evolvability of software systems is consistent of few steps. These steps are literature review, informal discussions and then development of a questionnaire. Subsequently questionnaire is distributed to the subjects and conclusions are drawn, based on their feedback and analysis of results.

We visited different software houses and discussed all the factors related to the survey. Experienced and qualified professionals were selected as subjects. To get the survey feedback we made phone calls, email reminders and personal meetings. Which result in high survey response i.e. 75%. Questionnaire was designed into three parts namely as personal information, characteristics of software evolvability and qualifications required for an expert. Pre-test was also designed to assure that the questions for the survey were properly defined and participants had no difficulty in understanding them. Participants of the survey included software developers, team leads, software testers and research students. Special consideration was given to the ethical issues in design and conduction of survey.

We discussed about the response behavior of the participants analysis of the data we collected from survey. Analysis was conducted by different means like standard deviation, mean, medium, mode and variance in survey results. First part of the analysis is about what characteristics of the software which effect software evolvability and their priority. In this part we concluded that there are total eleven characteristics of the software evolvability out of which design and architecture is highly prioritized while technical platform and comments are least prioritized characteristics. In the second part of the analysis we concluded that technical training and quality assurance management experience are most important criteria for an expert while development experience and testing experience is least important

In the last part of the thesis we discussed the research work, validity assessment of results and answers to the questions. We used A Lincoln‘s and Cuba’s criterion for validation assessment to support the validity of results. Validity is judged by four aspects credibility, transferability, dependability and conformability.
Ämnesord / Subject: Datavetenskap - Computer Science\Software Engineering
Datavetenskap - Computer Science\Computersystems
Datavetenskap - Computer Science\General
Nyckelord / Keywords: Software evolvability, Software evolvability characteristics priority, assessment of software evolvability, qualifications of an expert, Software system, Maintainability of Software, Choice of classes, Design, Architecture, Components, Encapsulation, Inheritance, Class Libraries, Simplicity, Naming, Comments, and Technical Platform

Publication info

Dokument id / Document id:
Program:/ Programme Dataingenjör/Computer Engineer
Registreringsdatum / Date of registration: 11/25/2008
Uppsatstyp / Type of thesis: Masterarbete/Master's Thesis (120 credits)


Handledare / Supervisor: Conny Johansson
Examinator / Examiner: Guohua Bai
Organisation / Organisation: Blekinge Institute of Technology
Institution / School: TEK/avd. för programvaruteknik
S-372 25 Ronneby
+46 455 38 50 00

Files & Access

Bifogad uppsats fil(er) / Files attached: thesis mcs 2008 36.pdf (668 kB, öppnas i nytt fönster)