19 research outputs found

    An ontology of agile aspect oriented software development

    Get PDF
    Both agile methods and aspect oriented programming (AOP) have emerged in recent years as new paradigms in software development. Both promise to free the process of building software systems from some of the constraints of more traditional approaches. As a software engineering approach on the one hand, and a software development tool on the other, there is the potential for them to be used in conjunction. However, thus far, there has been little interplay between the two. Nevertheless, there is some evidence that there may be untapped synergies that may be exploited, if the appropriate approach is taken to integrating AOP with agile methods. This paper takes an ontological approach to supporting this integration, proposing ontology enabled development based on an analysis of existing ontologies of aspect oriented programming, a proposed ontology of agile methods, and a derived ontology of agile aspect oriented development

    Software evolution prediction using seasonal time analysis: a comparative study

    Get PDF
    Prediction models of software change requests are useful for supporting rational and timely resource allocation to the evolution process. In this paper we use a time series forecasting model to predict software maintenance and evolution requests in an open source software project (Eclipse), as an example of projects with seasonal release cycles. We build an ARIMA model based on data collected from Eclipse’s change request tracking system since the project’s start. A change request may refer to defects found in the software, but also to suggested improvements in the system under scrutiny. Our model includes the identification of seasonal patterns and tendencies, and is validated through the forecast of the change requests evolution for the next 12 months. The usage of seasonal information significantly improves the estimation ability of this model, when compared to other ARIMA models found in the literature, and does so for a much longer estimation period. Being able to accurately forecast the change requests’ evolution over a fairly long time period is an important ability for enabling adequate process control in maintenance activities, and facilitates effort estimation and timely resources allocation. The approach presented in this paper is suitable for projects with a relatively long history, as the model building process relies on historic data

    Tracking Your Changes: A Language-Independent Approach

    Full text link

    Lupascian Non-Negativity Applied to Conceptual Modeling: Alternating Static Potentiality and Dynamic Actuality

    Full text link
    In software engineering, conceptual modeling focuses on creating representations of the world that are as faithful and rich as possible, with the aim of guiding the development of software systems. In contrast, in the computing realm, the notion of ontology has been characterized as being closely related to conceptual modeling and is often viewed as a specification of a conceptualization. Accordingly, conceptual modeling and ontology engineering now address the same problem of representing the world in a suitable fashion. A high-level ontology provides a means to describe concepts and their interactions with each other and to capture structural and behavioral features in the intended domain. This paper aims to analyze ontological concepts and semantics of modeling notations to provide a common understanding among software engineers. An important issue in this context concerns the question of whether the modeled world might be stratified into ontological levels. We introduce an abstract system of two-level domain ontology to be used as a foundation for conceptual models. We study the two levels of staticity and dynamics in the context of the thinging machine (TM) model using the notions of potentiality and actuality that the Franco-Romanian philosopher Stephane Lupasco developed in logic. He provided a quasi-universal rejection of contradiction where every event was always associated with a no event, such that the actualization of an event entails the potentialization of a no event and vice versa without either ever disappearing completely. This approach is illustrated by re-modeling UML state machines in TM modeling. The results strengthen the semantics of a static versus dynamic levels in conceptual modeling and sharpen the notion of events as a phenomenon without negativity alternating between the two levels of dynamics and staticity.Comment: 11 pages, 21 figure

    Adapting the “Staged Model for Software Evolution” to FLOSS

    Get PDF
    Research into traditional software evolution has been tackled from two broad perspectives: that focused on the how, which looks at the processes, methods and techniques to implement and evolve software; and that focused on the what/why perspective, aiming at achieving an understanding of the drivers and general characteristics of the software evolution phenomenon. The two perspectives are related in various ways: the study of the what/why is for instance essential to achieve an appropriate management of software engineering activities, and to guide innovation in processes, methods and tools, that is, the how. The output of the what/why studies is exemplified by empirical hypotheses, such as the staged model of software evolution,. This paper focuses on the commonalities and differences between the evolution and patterns in the lifecycles of traditional commercial systems and free/libre/open source software (FLOSS) systems. The existing staged model for software evolution is therefore revised for its applicability on FLOSS systems

    Evaluating Process Quality Based on Change Request Data – An Empirical Study of the Eclipse Project

    Full text link
    Abstract. The information routinely collected in change request management systems contains valuable information for monitoring of the process quality. However this data is currently utilized in a very limited way. This paper presents an empirical study of the process quality in the product portfolio of the Eclipse project. It is based on a systematic approach for the evaluation of process quality characteristics using change request data. Results of the study offer insights into the development process of Eclipse. Moreover the study allows assessing applicability and limitations of the proposed approach for the evaluation of process quality

    Structural analysis and visualization of C++ code evolution using syntax trees

    Full text link

    PRACTICAL PROCESS NON-CONFORMANCE DETECTION

    Get PDF
    This paper represents the culmination of a thorough investigation into the existing technological methodologies to solve process non-conformance detection. We explore how to develop this knowledge into an approach that offers a useable, practical solution. Process non-conformance detection research has been explored fairly sparingly and sporadically from around 1995 until now. The work presented in the literature, while technically effective at detecting non-conformance seemed to be practically unviable for a variety of reasons. In this paper we address why the detection of process non-conformance is valuable for process improvement, we examine the practical shortcomings in the existing solutions, explain why these shortcomings exist and how these approaches have failed to provide practical value in various ways. We explore the issues currently related to this research area that withhold process non-conformance detection from being practically useful, and present our own approach that addresses these issues. Our approach involves a generic and practical method of specifying rules that describe how enactment data is to be checked for any non-conformance instances that may have occurred. The approach is designed to cater for practical considerations such as timely detection, minimal interference, and minimal required effort while remaining separate from the process specification. We support this claim via two case studies that test our assertions and demonstrate how process non-conformance detection is valuable for process improvement. Furthermore, we show how a process may be improved by the approach using the result data from several hundred process enactments done both before and after the approach was integrated. The result data from these two phases is provided and discussed

    A review of software change impact analysis

    Get PDF
    Change impact analysis is required for constantly evolving systems to support the comprehension, implementation, and evaluation of changes. A lot of research effort has been spent on this subject over the last twenty years, and many approaches were published likewise. However, there has not been an extensive attempt made to summarize and review published approaches as a base for further research in the area. Therefore, we present the results of a comprehensive investigation of software change impact analysis, which is based on a literature review and a taxonomy for impact analysis. The contribution of this review is threefold. First, approaches proposed for impact analysis are explained regarding their motivation and methodology. They are further classified according to the criteria of the taxonomy to enable the comparison and evaluation of approaches proposed in literature. We perform an evaluation of our taxonomy regarding the coverage of its classification criteria in studied literature, which is the second contribution. Last, we address and discuss yet unsolved problems, research areas, and challenges of impact analysis, which were discovered by our review to illustrate possible directions for further research

    A FRAMEWORK FOR SOFTWARE RELIABILITY MANAGEMENT BASED ON THE SOFTWARE DEVELOPMENT PROFILE MODEL

    Get PDF
    Recent empirical studies of software have shown a strong correlation between change history of files and their fault-proneness. Statistical data analysis techniques, such as regression analysis, have been applied to validate this finding. While these regression-based models show a correlation between selected software attributes and defect-proneness, in most cases, they are inadequate in terms of demonstrating causality. For this reason, we introduce the Software Development Profile Model (SDPM) as a causal model for identifying defect-prone software artifacts based on their change history and software development activities. The SDPM is based on the assumption that human error during software development is the sole cause for defects leading to software failures. The SDPM assumes that when a software construct is touched, it has a chance to become defective. Software development activities such as inspection, testing, and rework further affect the remaining number of software defects. Under this assumption, the SDPM estimates the defect content of software artifacts based on software change history and software development activities. SDPM is an improvement over existing defect estimation models because it not only uses evidence from current project to estimate defect content, it also allows software managers to manage software projects quantitatively by making risk informed decisions early in software development life cycle. We apply the SDPM in several real life software development projects, showing how it is used and analyzing its accuracy in predicting defect-prone files and compare the results with the Poisson regression model
    corecore