9 research outputs found

    CRUD-DOM: a model for bridging the gap between the object-oriented and the relational paradigms : an enhanced performance assessment based on a case study

    Get PDF
    The development of database applications comprises three different tiers: application tier, database tier and finally the middle tier also known as the data access layer. The development of each tier per-se entails many challenges. Very often the most difficult challenges to be addressed derive from non-functional requirements, as productivity, usability, performance, reliability, high-availability and transparency. This paper is focused on defining and presenting a model for the data access layer aimed to integrate object-oriented application tiers and relational database tiers. The model addresses situations on which users need to explicitly write down complex static CRUD expressions and simultaneously get advantages regarding some non-functional requirements. The model, known as CRUD Data Object Model (CRUD-DOM), tackles the following non-functional requirements: performance, usability and productivity. The main contributions of this paper are threefold: 1) to present an extended model of CRUD-DOM; 2) to carry out an extended performance assessment based on a case study; 3) to present a tool, called CRUD Manager (CRUD-M), which provides automatic code generation with complementary support for software test and maintenance. The main outcome from this paper is the evidences that the pair CRUD-DOM and CRUD-M effectively addresses productivity, performance and usability requirements in the aforementioned context

    The impacts of automating manual processes in software maintenance

    Get PDF
    Abstract. The purpose of this study was to find out how automating a software maintenance task affects the software developers and end users of the information system. The study was conducted as a case study in a Finnish IT organization that provides information systems for organizations. This study focused on software maintenance tasks that are done in the production environments. The main research question was “How has the new automated process affected the stakeholders in the case?” In order to address the research question, the stakeholder groups had to be identified. Two stakeholder groups were defined and two supporting questions were formulated in order to find answers to the main question. The two supporting questions are “How do the software developers experience the changes that took place after automation?” and “How do the customers experience the changes that took place after automation?” The study utilised triangulation, combining qualitative and quantitative research methods. Qualitative data was collected with interviews and a questionnaire, and quantitative analysis was conducted to the maintenance request tickets with an MMG (Maintenance Model Graph) analysis. The findings of the quantitative MMG analysis were used to support the results found with qualitative methods. Automating a repetitive maintenance task was found to affect especially the software developers, who experienced the manual task to be time-consuming and arduous. Based on the developer interviews, four factors were found to have been affected by the automation: (1) degree of difficulty, (2) overall workload, (3) incoming maintenance requests and (4) future development. Customers were affected by the automation indirectly. The new solution was found to provide them with more accurate data and enhanced documentation, but it was also experienced to be arduous to familiarize with. Overall the results from customer questionnaire pointed out that the new solution was experienced as an upgrade. The familiarization will be handled in the case organization by providing training sessions directly to the customer organizations. The contribution of this study is the additional knowledge it provided about automating the repetitive tasks of software maintenance. As software maintenance is a very expensive part of the SW life cycle, it is beneficial to consider automating some of the most frequent tasks

    The Influence of Software Risk Management on Software Project Success

    Get PDF
    Software development project still of high failure rates. A diversity of risk management approaches are suggested by researchers and followed by organizations in order to minimize the failure rate and ensure project success. However, does risk management do always what it is supposed to do? In this research, we survey field workers and interview project managers, to investigate the influence of risk management on project success in practice, and to explore and reveal situations where risk management could lead to failure. We also try to find if there is a relation between risk management and different software project success criteria, as well as customer satisfaction. We also give some recommendations to help field workers performing a better risk management process

    Proceso para la evoluciĂłn y mantenimiento de software en las MiPymes y los departamentos de desarrollo de software en la ciudad de Pereira (Mantelasoft)

    Get PDF
    En libros y artĂ­culos como “Software Engineering: A Practitioner's Approach” (Pressman R. S., 2008)“IngenierĂ­a del Software” (Sommervile, 2011), se vienen hablando del tema de mantenimiento de software, situĂĄndolo entre el 67% y 90% del costo total del ciclo de vida del desarrollo de un sistema de informaciĂłn. A pesar del esfuerzo de estos y otros estudiosos se reportan pocas investigaciones o producciĂłn de datos sobre el tema. Hoy por hoy, el mantenimiento de software es uno de los procesos mĂĄs necesarios e importantes para las empresas, pero, simultĂĄneamente, uno de los mĂĄs complicados y costosos por lo que, en el presente trabajo, se propone una guĂ­a denominada “Mantelasoft”, enfocada en el proceso de evoluciĂłn y mantenimiento de software para las MiPymes y departamentos de desarrollo de software, corresponde a una combinaciĂłn entre el proceso Ágil Mantema y los procesos de apoyo planteados por la norma ISO/IEC 12207:2008, la cual incluye un modelo con fases, actividades, mĂ©tricas y tĂ©cnicas. En la primera fase se recolectan datos, por medio de una encuesta y un grupo focal a empresarios, sobre cĂłmo algunas empresas de Pereira realizan el mantenimiento de software a sus productos. Luego de analizar la informaciĂłn obtenida y revisar guĂ­as de mantenimiento de software ya existentes, se genera y propone “Mantelasoft”. Por Ășltimo, se aplica “Mantelasoft” en dos empresas de Pereira, donde antes y despuĂ©s de la aplicaciĂłn se hace una evaluaciĂłn del mantenimiento de software que allĂ­ se realiza, para posteriormente saber las fortalezas y puntos por mejorar de “Mantelasoft”.In books and articles such as “Software Engineering: A Practitioner's Approach” (Pressman R. S., 2008), "Software Engineering" (Sommervile, 2011), which since the 70s, have been talking about the issue of software maintenance, placing it among the 67 % and 90% of the total cost of the life cycle of the development of an information system. Despite the efforts of these and other scholars, few investigations or production of data on the subject are reported. Today, software maintenance is one of the most necessary and important processes for companies, but, simultaneously, one of the most complicated and costly, so, in the present work, a methodological guide is proposed that has been called "Mantelasoft", focused on the process of evolution and maintenance of software, specifically for MSMEs and software development departments, which corresponds to a combination between the Agil Mantema process and the support processes proposed by ISO / IEC 12207: 2008, which includes a model with phases, activities, metrics and techniques. Where in the first phase data is collected, through a survey and a focus group of entrepreneurs, on how some Pereira companies perform software maintenance on their products. After analyzing the information obtained and reviewing existing software maintenance guides, "Mantelasoft" is generated and proposed. Finally, "Mantelasoft" is applied in two companies in Pereira, where before and after the application an evaluation is made of the software maintenance performed there, to later know the strengths and points to improve of "Mantelasoft"

    AN INVESTIGATION OF COMMON CODING ERRORS IN OPEN SOURCE GRAPHICAL USER INTERFACE CODE

    Get PDF
    Introduction: This thesis investigates the occurrence of coding errors in the Open Source Software (OSS) Graphical User Interface (GUI) code. Characteristics of coding errors in the OSS GUI code are explored and analyzed so that guidelines are proposed to lower the influence of coding errors in OSS GUI software. Background: This thesis recognizes the increased prominence of, as well as the increased total volume of OSS GUI code within modern software applications. This thesis seeks to identify whether specific types of errors manifest themselves more frequently in GUI code. The rationale behind this investigation is that: if specific errors are known to occur in specific locations then they can be more easily identified; if specific errors are due to specific causes then they can be more easily recognized in earlier stages of software development. Methods: Common coding errors were selected and examined in example OSS code using an automatic code inspection. An analysis of results from this inspection identified the frequency and location (i.e. in GUI or non-GUI code) of the common coding error. An initial sample of OSS GUI projects was selected to be examined and a wider range of OSS GUI projects was randomly chosen to evaluate the results that were obtained from the initial sample. Results: It was found that there are some differences in the type of errors within differing portions of source code. Certain types of coding errors were more frequently identified in GUI code than non-GUI code and corresponding typical GUI coding error-prone behaviors were summarized. Discussion: Awareness of these differences helps predict errors during the earlier stages of software development. Comprehension of these GUI coding error-prone behaviours contributes to prevent typical GUI coding errors as much as possible during the whole lifecycle of OSS GUI projects

    Code Clone Discovery Based on Concolic Analysis

    Get PDF
    Software is often large, complicated and expensive to build and maintain. Redundant code can make these applications even more costly and difficult to maintain. Duplicated code is often introduced into these systems for a variety of reasons. Some of which include developer churn, deficient developer application comprehension and lack of adherence to proper development practices. Code redundancy has several adverse effects on a software application including an increased size of the codebase and inconsistent developer changes due to elevated program comprehension needs. A code clone is defined as multiple code fragments that produce similar results when given the same input. There are generally four types of clones that are recognized. They range from simple type-1 and 2 clones, to the more complicated type-3 and 4 clones. Numerous clone detection mechanisms are able to identify the simpler types of code clone candidates, but far fewer claim the ability to find the more difficult type-3 clones. Before CCCD, MeCC and FCD were the only clone detection techniques capable of finding type-4 clones. A drawback of MeCC is the excessive time required to detect clones and the likely exploration of an unreasonably large number of possible paths. FCD requires extensive amounts of random data and a significant period of time in order to discover clones. This dissertation presents a new process for discovering code clones known as Concolic Code Clone Discovery (CCCD). This technique discovers code clone candidates based on the functionality of the application, not its syntactical nature. This means that things like naming conventions and comments in the source code have no effect on the proposed clone detection process. CCCD finds clones by first performing concolic analysis on the targeted source code. Concolic analysis combines concrete and symbolic execution in order to traverse all possible paths of the targeted program. These paths are represented by the generated concolic output. A diff tool is then used to determine if the concolic output for a method is identical to the output produced for another method. Duplicated output is indicative of a code clone. CCCD was validated against several open source applications along with clones of all four types as defined by previous research. The results demonstrate that CCCD was able to detect all types of clone candidates with a high level of accuracy. In the future, CCCD will be used to examine how software developers work with type-3 and type-4 clones. CCCD will also be applied to various areas of security research, including intrusion detection mechanisms

    Élaboration d'un modùle d'impact du changement pour les applications Java

    Get PDF

    A step towards software preventive maintenance

    No full text
    corecore