408,261 research outputs found
Industry Best Practices in Robotics Software Engineering
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
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
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
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
[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
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
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
- …