408,261 research outputs found

    Industry Best Practices in Robotics Software Engineering

    Full text link
    Robotics software is pushing the limits of software engineering practice. The 3rd International Workshop on Robotics Software Engineering held a panel on "the best practices for robotic software engineering". This article shares the key takeaways that emerged from the discussion among the panelists and the workshop, ranging from architecting practices at the NASA/Caltech Jet Propulsion Laboratory, model-driven development at Bosch, development and testing of autonomous driving systems at Waymo, and testing of robotics software at XITASO. Researchers and practitioners can build on the contents of this paper to gain a fresh perspective on their activities and focus on the most pressing practices and challenges in developing robotics software today.Comment: 10 pages, 0 figure

    Applying project-based learning to teach software analytics and best practices in data science

    Get PDF
    Due to recent industry needs, synergies between data science and software engineering are starting to be present in data science and engineering academic programs. Two synergies are: applying data science to manage the quality of the software (software analytics) and applying software engineering best practices in data science projects to ensure quality attributes such as maintainability and reproducibility. The lack of these synergies on academic programs have been argued to be an educational problem. Hence, it becomes necessary to explore how to teach software analytics and software engineering best practices in data science programs. In this context, we provide hands-on for conducting laboratories applying project-based learning in order to teach software analytics and software engineering best practices to data science students. We aim at improving the software engineering skills of data science students in order to produce software of higher quality by software analytics. We focus in two skills: following a process and software engineering best practices. We apply project-based learning as main teaching methodology to reach the intended outcomes. This teaching experience shows the introduction of project-based learning in a laboratory, where students applied data science and best software engineering practices to analyze and detect improvements in software quality. We carried out a case study in two academic semesters with 63 data science bachelor students. The students found the synergies of the project positive for their learning. In the project, they highlighted both utility of using a CRISP-DM data mining process and best software engineering practices like a software project structure convention applied to a data science project.This paper was partly funded by a teaching innovation project of ICE@UPC-BarcelonaTech (entitled ‘‘Audiovisual and digital material for data engineering, a teaching innovation project with open science’’), and the ‘‘Beatriz Galindo’’ Spanish Program BEA-GAL18/00064.Peer ReviewedPostprint (published version

    Building Reusable Software Component For Optimization Check in ABAP Coding

    Full text link
    Software component reuse is the software engineering practice of developing new software products from existing components. A reuse library or component reuse repository organizes stores and manages reusable components. This paper describes how a reusable component is created, how it reuses the function and checking if optimized code is being used in building programs and applications. Finally providing coding guidelines, standards and best practices used for creating reusable components and guidelines and best practices for making configurable and easy to use.Comment: 9 pages, 6 figure

    Teaching Software Development to Non-Software Engineering Students

    Get PDF
    This paper argues that although the object-oriented programming (OOP) paradigm is appropriate for students taking programming modules on Higher Education (HE) software engineering course, this paradigm is not as relevant for students from other courses who study programming modules. It is also asserts that adopting another paradigm when teaching programming to non-software engineering students need not prevent the encouragement of good software engineering practices The paper discusses the software development model, procedures, techniques and programming language that the author requires non-software engineering students to employ when developing their software. This discussion also includes consideration of implementation issues in an educational context. The paper concludes that his alternative approach has been successfully implemented, that it requires the student to adopt a rigorous approach to development and that it encourages best software engineering practices. The conclusions also note that delivering this alternative offers the opportunity to include good educational practice, such as role-play

    Process capability assessments in small development firms

    Get PDF
    [Abstract}: Assessment-based Software Process Improvement (SPI) programs such as the Capability Maturity Model (CMM), Bootstrap, and SPICE (ISO/IEC 15504) are based on formal frameworks and promote the use of systematic processes and management practices for software development. These approaches identify best practices for the management of software development and when applied, enable organizations to understand, control and improve development processes. The purpose of a SPI assessment is to compare the current processes used in an organization with a list of recommended or ‘best’ practices. This research investigates the adoption of SPI initiatives by four small software development firms. These four firms participated in a process improvement program which was sponsored by Software Engineering Australia (SEA) (Queensland). The assessment method was based on SPICE (ISO/IEC 15504) and included an initial assessment, recommendations, and a follow-up meeting. For each firm, before and after snapshots are provided of the capability as assessed on eight processes. The discussion which follows summarizes the improvements realized and considers the critical success factors relating to SPI adoption for small firms

    Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study

    Full text link
    Developing robot agnostic software frameworks involves synthesizing the disparate fields of robotic theory and software engineering while simultaneously accounting for a large variability in hardware designs and control paradigms. As the capabilities of robotic software frameworks increase, the setup difficulty and learning curve for new users also increase. If the entry barriers for configuring and using the software on robots is too high, even the most powerful of frameworks are useless. A growing need exists in robotic software engineering to aid users in getting started with, and customizing, the software framework as necessary for particular robotic applications. In this paper a case study is presented for the best practices found for lowering the barrier of entry in the MoveIt! framework, an open-source tool for mobile manipulation in ROS, that allows users to 1) quickly get basic motion planning functionality with minimal initial setup, 2) automate its configuration and optimization, and 3) easily customize its components. A graphical interface that assists the user in configuring MoveIt! is the cornerstone of our approach, coupled with the use of an existing standardized robot model for input, automatically generated robot-specific configuration files, and a plugin-based architecture for extensibility. These best practices are summarized into a set of barrier to entry design principles applicable to other robotic software. The approaches for lowering the entry barrier are evaluated by usage statistics, a user survey, and compared against our design objectives for their effectiveness to users

    Towards Sustainable Digital Humanities Software

    Get PDF
    Our work in software quality for digital humanities was borne of an effort to address sustainable practices in scientific software development, where the speaker (Thiruvathukal) co-authored a position paper on the case for software engineering in scientific software development as part of an all-encompassing strategy to create more sustainable scientific software (an example of a well-known scientific software package is LINPACK). In this position paper, we addressed how “progress in scientific research is dependent on the quality and accessibility of software at all levels . This progress depends on embracing the best traditional--and emergent--practices in software engineering, especially agile practices that intersect with the more formal tradition of software engineering. Although this paper was about scientific software development, it could just as easily have been about any interdisciplinary software development community. Our interest in applying what we’ve learned to DH, however, comes from work Thiruvathukal and Hayward have done and/or supervised in DH, especially WoolfOnline and a Richmond Times Dispatch viewer, where more software engineering could have been helpful
    • …
    corecore