8,612 research outputs found

    Tracing complexity from requirements to implementation

    Get PDF
    Complexity metrics are useful measurements to ascertain the quality of software. However, the metrics are only applied and isolated in one specific development phase and they can not trace the quality (and the evolution) of the same software artifacts in all development phases within the context of the software lifecycle. In this paper, we propose a methodology to use a traceable metric to measure software artifacts from requirements to implementation in a system. We validate our approach on transactions defined in use cases and implemented in source code. Some initial results show that our approach can solve the problem of tracing software artifacts during the software development process.Presentado en el VIII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Configuration management and software measurement in the Ground Systems Development Environment (GSDE)

    Get PDF
    A set of functional requirements for software configuration management (CM) and metrics reporting for Space Station Freedom ground systems software are described. This report is one of a series from a study of the interfaces among the Ground Systems Development Environment (GSDE), the development systems for the Space Station Training Facility (SSTF) and the Space Station Control Center (SSCC), and the target systems for SSCC and SSTF. The focus is on the CM of the software following delivery to NASA and on the software metrics that relate to the quality and maintainability of the delivered software. The CM and metrics requirements address specific problems that occur in large-scale software development. Mechanisms to assist in the continuing improvement of mission operations software development are described

    An investigation of the utility and value of process patterns in the management of software development projects.

    Get PDF
    Pattern theory has engendered much controversy in the field of architecture; yet it has brought new insights to the field of software engineering. Patterns continue to play an important role in software engineering in general, and in software development in particular. In this study, two preliminary surveys, focusing on the two fields of architecture and software engineering, were carried out to investigate the role and effect of patterns. The surveys indicate that while, patterns are unpopular within the architecture community and are criticised for stifling creativity, software patterns are popular within the software community and a high proportion of software development companies use them in their development practice. The results however show that in the vast majority of cases, pattern usage is limited to design-based problems, involving a single type of pattern (i.e. design patterns). The results further show that process-based patterns are seldom used in the software development industry, which prompted the topic of the main investigation of this research to evaluate the effect and utility of process patterns. A controlled experimental research method was designed and used to evaluate the utility and value of process patterns in the management of software development projects. In this '2x2 factorial design' experiment, the subjects were divided in two groups of experimental and control, where the experimental groups were given a set of process patterns to use in their software development projects. Overall, there were over 750 subjects involved in this experiment and a total of 260 software development projects (individual and group projects) were investigated. Measurements of a number of appropriate software attributes were taken during the life of the projects though a devised goal-based measurement process. A further number of attributes were measured after the projects were completed. Using metrics, a number of software attributes across the four major phases of the development lifecycle (i.e. Requirement Analysis, Design, Implementation, and Delivery) were measured and statistically analysed. In addition to these specific measurement data, official marks awarded to the projects by the tutors were also used in the analysis. The objective was to determine if the experimental groups produced software projects that were of higher quality, in terms of the measured software attributes, than the control groups. The experiment results show that, in the case of thirteen measured attributes, the treated groups scored significantly higher than the control groups. The improvements are across all the four major development phases, with at least two attribute in each phase, showing significant improvement. The experiment, therefore, confirms that the application of process patterns in software development projects, improves the quality of the projects in terms of a number of specific attributes such as productivity and defect density. The results further show that the treated subjects in the group projects performed significantly better than those in the individual projects. This, therefore, confirms that while the application of process patterns significantly improves the quality of both group and individual projects, the improvement is more prominent in the case of team projects. Process patterns are thus shown to be more effective on team projects in improving the quality of software development projects

    Illegal Russian Crab: An Investigation of Trade Flow

    Get PDF
    WWF investigated the trade flow of legal and illegal crab harvested in Russian waters throughout the North Pacific to better understand the impact on the global seafood market. Analysis used primary sources such as Russian crab stock assessments, publically accessible trade and customs data, satellite imagery of fishing boat movements, and interviews with experts to obtain a unique picture of the harvest of legal and illegal crab products

    Software verification plan for GCS

    Get PDF
    This verification plan is written as part of an experiment designed to study the fundamental characteristics of the software failure process. The experiment will be conducted using several implementations of software that were produced according to industry-standard guidelines, namely the Radio Technical Commission for Aeronautics RTCA/DO-178A guidelines, Software Consideration in Airborne Systems and Equipment Certification, for the development of flight software. This plan fulfills the DO-178A requirements for providing instructions on the testing of each implementation of software. The plan details the verification activities to be performed at each phase in the development process, contains a step by step description of the testing procedures, and discusses all of the tools used throughout the verification process

    From a Domain Analysis to the Specification and Detection of Code and Design Smells

    Get PDF
    Code and design smells are recurring design problems in software systems that must be identified to avoid their possible negative consequences\ud on development and maintenance. Consequently, several smell detection\ud approaches and tools have been proposed in the literature. However,\ud so far, they allow the detection of predefined smells but the detection\ud of new smells or smells adapted to the context of the analysed systems\ud is possible only by implementing new detection algorithms manually.\ud Moreover, previous approaches do not explain the transition from\ud specifications of smells to their detection. Finally, the validation\ud of the existing approaches and tools has been limited on few proprietary\ud systems and on a reduced number of smells. In this paper, we introduce\ud an approach to automate the generation of detection algorithms from\ud specifications written using a domain-specific language. This language\ud is defined from a thorough domain analysis. It allows the specification\ud of smells using high-level domain-related abstractions. It allows\ud the adaptation of the specifications of smells to the context of\ud the analysed systems.We specify 10 smells, generate automatically\ud their detection algorithms using templates, and validate the algorithms\ud in terms of precision and recall on Xerces v2.7.0 and GanttProject\ud v1.10.2, two open-source object-oriented systems.We also compare\ud the detection results with those of a previous approach, iPlasma

    SANTO: Social Aerial NavigaTion in Outdoors

    Get PDF
    In recent years, the advances in remote connectivity, miniaturization of electronic components and computing power has led to the integration of these technologies in daily devices like cars or aerial vehicles. From these, a consumer-grade option that has gained popularity are the drones or unmanned aerial vehicles, namely quadrotors. Although until recently they have not been used for commercial applications, their inherent potential for a number of tasks where small and intelligent devices are needed is huge. However, although the integrated hardware has advanced exponentially, the refinement of software used for these applications has not beet yet exploited enough. Recently, this shift is visible in the improvement of common tasks in the field of robotics, such as object tracking or autonomous navigation. Moreover, these challenges can become bigger when taking into account the dynamic nature of the real world, where the insight about the current environment is constantly changing. These settings are considered in the improvement of robot-human interaction, where the potential use of these devices is clear, and algorithms are being developed to improve this situation. By the use of the latest advances in artificial intelligence, the human brain behavior is simulated by the so-called neural networks, in such a way that computing system performs as similar as possible as the human behavior. To this end, the system does learn by error which, in an akin way to the human learning, requires a set of previous experiences quite considerable, in order for the algorithm to retain the manners. Applying these technologies to robot-human interaction do narrow the gap. Even so, from a bird's eye, a noticeable time slot used for the application of these technologies is required for the curation of a high-quality dataset, in order to ensure that the learning process is optimal and no wrong actions are retained. Therefore, it is essential to have a development platform in place to ensure these principles are enforced throughout the whole process of creation and optimization of the algorithm. In this work, multiple already-existing handicaps found in pipelines of this computational gauge are exposed, approaching each of them in a independent and simple manner, in such a way that the solutions proposed can be leveraged by the maximum number of workflows. On one side, this project concentrates on reducing the number of bugs introduced by flawed data, as to help the researchers to focus on developing more sophisticated models. On the other side, the shortage of integrated development systems for this kind of pipelines is envisaged, and with special care those using simulated or controlled environments, with the goal of easing the continuous iteration of these pipelines.Thanks to the increasing popularity of drones, the research and development of autonomous capibilities has become easier. However, due to the challenge of integrating multiple technologies, the available software stack to engage this task is restricted. In this thesis, we accent the divergencies among unmanned-aerial-vehicle simulators and propose a platform to allow faster and in-depth prototyping of machine learning algorithms for this drones

    Julia Programming Language Benchmark Using a Flight Simulation

    Get PDF
    Julias goal to provide scripting language ease-of-coding with compiled language speed is explored. The runtime speed of the relatively new Julia programming language is assessed against other commonly used languages including Python, Java, and C++. An industry-standard missile and rocket simulation, coded in multiple languages, was used as a test bench for runtime speed. All language versions of the simulation, including Julia, were coded to a highly-developed object-oriented simulation architecture tailored specifically for time-domain flight simulation. A speed-of-coding second-dimension is plotted against runtime for each language to portray a space that characterizes Julias scripting language efficiencies in the context of the other languages. With caveats, Julia runtime speed was found to be in the class of compiled or semi-compiled languages. However, some factors that affect runtime speed at the cost of ease-of-coding are shown. Julias built-in functionality for multi-core processing is briefly examined as a means for obtaining even faster runtime speed. The major contribution of this research to the extensive language benchmarking body-of-work is comparing Julia to other mainstream languages using a complex flight simulation as opposed to benchmarking with single algorithms

    Analyzing the impact of changing software requirements: a traceability-based methodology

    Get PDF
    Software undergoes change at all stages of the software development process. Changing requirements represent risks to the success and completion of a project. It is critical for project management to determine the impact of requirement changes in order to control the change process. We present a requirements traceability based impact analysis methodology to predictively evaluate requirement changes for software development projects. Trace-based Impact Analysis Methodology (TIAM) is a methodology utilizing the trace information, along with attributes of the work products and traces, to define a requirement change impact metric for determining the severity of a requirement change. We define the Work product Requirements trace Model (WoRM) to represent the information required for the methodology, where WoRM consists of the models Work product Information Model (WIM) for the software product and Requirement change Information Model (RIM) for requirement changes. TIAM produces a set of classes of requirement changes ordered from low to high impact. Requirement changes are placed into classes according their similarity. The similarity between requirement changes is based on a fuzzy compatibility relation between their respective requirement change impact metrics. TIAM also identifies potentially impacted work products by generating a set of potentially impacted work products for each requirement change. The experimental results show a favorable comparison between classes of requirement changes based on actual impact and the classes based on predicted impact
    • …
    corecore