Evolvability of Software Systems
Independent thesis Advanced level (degree of Master (Two Years))Student thesisAlternative title
Evolvability av programvarusystem (Swedish)
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
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.
Place, publisher, year, edition, pages
2008. , 69 p.
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
Computer Science Software Engineering
IdentifiersURN: urn:nbn:se:bth-4053Local ID: oai:bth.se:arkivexB4150D997AA9E1ABC125750C0078F6C8OAI: oai:DiVA.org:bth-4053DiVA: diva2:831373