6 research outputs found

    Supporting feature-level software maintenance

    Get PDF
    Software maintenance is the process of modifying a software system to fix defects, improve performance, add new functionality, or adapt the system to a new environment. A maintenance task is often initiated by a bug report or a request for new functionality. Bug reports typically describe problems with incorrect behaviors or functionalities. These behaviors or functionalities are known as features. Even in very well-designed systems, the source code that implements features is often not completely modularized. The delocalized nature of features makes maintaining them challenging. Since maintenance tasks are expressed in terms of features, the goal of this dissertation is to support software maintenance at the feature-level. We focus on two tasks in particular: feature location and impact analysis via feature coupling.;Feature location is the process of identifying the source code that implements a feature, and it is an essential first step to any maintenance task. There are many existing techniques for feature location that incorporate various types of analyses such as static, dynamic, and textual. In this dissertation, we recognize the advantages of leveraging several types of analyses and introduce a new approach to feature location based on combining dynamic analysis, textual analysis, and web mining algorithms applied to software. The use of web mining for feature location is a novel contribution, and we show that our new techniques based on web mining are significantly more effective than the current state of the art.;After using feature location to identify a feature\u27s source code, maintenance can be completed on that feature. Impact analysis should then be performed to revalidate the system and determine which other features may have been affected by the modifications. We define three feature coupling metrics that capture the relationship between features based on structural information, textual information, and their combination. Our novel feature coupling metrics can be used for impact analysis to quantify the strength of coupling between pairs of features. We performed three empirical studies on open-source software systems to assess the feature coupling metrics and established three major results. First, there is a moderate to strong statistically significant correlation between feature coupling and faults. Second, feature coupling can be used to correctly determine about half of the other features that would be affected by a change to a given feature. Finally, we found that the metrics align with developers\u27 opinions about pairs of features that are actually coupled

    Case Study Of Phased Model For Software Change In A Multiple-Programmer Environment

    Get PDF
    The aim of this thesis is to perform an empirical study comparing programmers completing software changes assisted by the recently published software process Phased Model for Software Change (PMSC) to those completing software changes without any assistance. There have been numerous researches on software change, but most of them focused more on individual phases of the software change process in lieu of the software change process as a whole. For that reason, this thesis explores the impact of the PMSC process on programmers\u27 performance. The subjects of this study are graduate students with different level of experience. The results of the experiment show that following the PMSC process improves the performance of both less experienced and more experienced programmers by reducing the amount of time spent to complete software changes by about half. This improvement is noticeable in both code analysis and code implementation activities. We also talk about ways to refine PMSC

    Semantic Web Enabled Software Engineering

    Get PDF
    Ontologies allow the capture and sharing of domain knowledge by formalizing information and making it machine understandable. As part of an information system, ontologies can capture and carry the reasoning knowledge needed to fulfill different application goals. Although many ontologies have been developed over recent years, few include such reasoning information. As a result, many ontologies are not used in real-life applications, do not get reused or only act as a taxonomy of a domain. This work is an investigation into the practical use of ontologies as a driving factor in the development of applications and the incorporation of Knowledge Engineering as a meaningful activity into modern agile software development. This thesis contributes a novel methodology that supports an incremental requirement analysis and an iterative formalization of ontology design through the use of ontology reasoning patterns. It also provides an application model for ontology-driven applications that can deal with nonontological data sources. A set of case studies with various application specific goals helps to elucidate whether ontologies are in fact suitable for more than simple knowledge formalization and sharing, and can act as the underlying structure for developing largescale information systems. Tasks from the area of bug-tracker quality mining and clone detection are evaluated for this purpose

    An experience report of the solo iterative process

    Get PDF
    The field of software engineering is over 50 years old; originally, mathematicians and engineers thought software development was more of an art form than a defined process. These first software engineers managed to produce a variety of complex, working software; however, many software engineers today use agile processes. This thesis is an experience report in an agile process called the Solo Iterative Process. In this thesis, previous research is reviewed in previous solo processes, team processes, individual phases of software evolution and software evolution tools. Then the Solo Iterative Process is defined. To begin the experience report a subject software, a change request and the tools and technologies are identified. Then 9 change requests are performed on the subject software. The discussion looks at matters of individual phases that occur over a set of change requests
    corecore