660,515 research outputs found
Teaching Software Engineering through Robotics
This paper presents a newly-developed robotics programming course and reports
the initial results of software engineering education in robotics context.
Robotics programming, as a multidisciplinary course, puts equal emphasis on
software engineering and robotics. It teaches students proper software
engineering -- in particular, modularity and documentation -- by having them
implement four core robotics algorithms for an educational robot. To evaluate
the effect of software engineering education in robotics context, we analyze
pre- and post-class survey data and the four assignments our students completed
for the course. The analysis suggests that the students acquired an
understanding of software engineering techniques and principles
National Wildlife Refuges and Intensive Management in Alaska: Another Case for Preemption
Developing high quality software is difficult. Traditional software engineering methods emphasizes on structured and linear workflow of activities methods that have been criticized due to their rigid and inflexible nature. Recently, agile software engineering approaches such as Scrum have gained popularity in the software industry. These methods emphasize flexibility, speed, transparency, and teamwork aspects. In this thesis, investigation and comparison of three modern production practices and principles done, these include; Kanban, the 5S workplace organization method and Toyota Production System (TPS). The goal has been to identity features of these production philosophies and analyzed how they might contribute to software engineering processes, particularly to improve Scrum. The study indicates that many principles from these production approaches have been implemented in Scrum. However, the Kanban, 5S and TPS principles of Visibility are just partially implemented in Scrum. Scrum overlooks many aspects of programming that need to be visualized such as code quality aspects (testing) and representations of the actual software structure under development
Recommended from our members
Machine Learning for Software Engineering: Models, Methods, and Applications
Machine Learning (ML) is the discipline that studies methods for automatically inferring models from data. Machine learning has been successfully applied in many areas of software engineering ranging from behaviour extraction, to testing, to bug fixing. Many more applications are yet be defined. However, a better understanding of ML methods, their assumptions and guarantees would help software engineers adopt and identify the appropriate methods for their desired applications. We argue that this choice can be guided by the models one seeks to infer. In this technical briefing, we review and reflect on the applications of ML for software engineering organised according to the models they produce and the methods they use. We introduce the principles of ML, give an overview of some key methods, and present examples of areas of software engineering benefiting from ML. We also discuss the open challenges for reaching the full potential of ML for software engineering and how ML can benefit from software engineering methods
Recommended from our members
Requirements for software engineering languages
This paper analyzes the concepts of software construction embodied in the Draco system. The analysis relates specific mechanisms in Draco to particular software engineering (SE) principles and suggests future research needed to extend the approach. The purpose of the analysis is to help researchers understand Draco better and thus be able to direct in productive directions future research on this type of software engineering tool
Management of Software Engineering, The - Part I: Principles of Software Engineering
Software engineering may be defined as the systematic design and development of software products and the management of the software process. The general principles of software engineering are set forth in Part I, in which the author relates software engineering to the whole field of the system development process--system engineering, hardware engineering, software engineering, and system integration. Presented briefly are overviews of the major aspects of software engineering--design, development, and management
- …