Open Access. Powered by Scholars. Published by Universities.®

Computer Engineering Commons

Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 16 of 16

Full-Text Articles in Computer Engineering

Reflecting On Recurring Failures In Iot Development, Dharun Anandayuvaraj, James C. Davis Jan 2022

Reflecting On Recurring Failures In Iot Development, Dharun Anandayuvaraj, James C. Davis

Department of Electrical and Computer Engineering Faculty Publications

As IoT systems are given more responsibility and autonomy, they offer greater benefits, but also carry greater risks. We believe this trend invigorates an old challenge of software engineering: how to develop high-risk software-intensive systems safely and securely under market pressures? As a first step, we conducted a systematic analysis of recent IoT failures to identify engineering challenges. We collected and analyzed 22 news reports and studied the sources, impacts, and repair strategies of failures in IoT systems. We observed failure trends both within and across application domains. We also observed that failure themes have persisted over time. To alleviate …


Using Taint Analysis And Reinforcement Learning (Tarl) To Repair Autonomous Robot Software, Damian Lyons, Saba Zahra May 2020

Using Taint Analysis And Reinforcement Learning (Tarl) To Repair Autonomous Robot Software, Damian Lyons, Saba Zahra

Faculty Publications

It is important to be able to establish formal performance bounds for autonomous systems. However, formal verification techniques require a model of the environment in which the system operates; a challenge for autonomous systems, especially those expected to operate over longer timescales. This paper describes work in progress to automate the monitor and repair of ROS-based autonomous robot software written for an a-priori partially known and possibly incorrect environment model. A taint analysis method is used to automatically extract the data-flow sequence from input topic to publish topic, and instrument that code. A unique reinforcement learning approximation of MDP utility …


Towards Lakosian Multilingual Software Design Principles, Damian Lyons, Saba Zahra, Thomas Marshall Jul 2019

Towards Lakosian Multilingual Software Design Principles, Damian Lyons, Saba Zahra, Thomas Marshall

Faculty Publications

Large software systems often comprise programs written in different programming languages. In the case when cross-language interoperability is accomplished with a Foreign Function Interface (FFI), for example pybind11, Boost.Python, Emscripten, PyV8, or JNI, among many others, common software engineering tools, such as call-graph analysis, are obstructed by the opacity of the FFI. This complicates debugging and fosters potential inefficiency and security problems. One contributing issue is that there is little rigorous software design advice for multilingual software. In this paper, we present our progress towards a more rigorous design approach to multilingual software. The approach is based on the existing …


A Comprehensive Framework To Replicate Process-Level Concurrency Faults, Supat Rattanasuksun Nov 2018

A Comprehensive Framework To Replicate Process-Level Concurrency Faults, Supat Rattanasuksun

Department of Computer Science and Engineering: Dissertations, Theses, and Student Research

Concurrency faults are one of the most damaging types of faults that can affect the dependability of today’s computer systems. Currently, concurrency faults such as process-level races, order violations, and atomicity violations represent the largest class of faults that has been reported to various Linux bug repositories. Clearly, existing approaches for testing such faults during software development processes are not adequate as these faults escape in-house testing efforts and are discovered during deployment and must be debugged.

The main reason concurrency faults are hard to test is because the conditions that allow these to occur can be difficult to replicate, …


Assessing The Quality And Stability Of Recommender Systems, David Shriver May 2018

Assessing The Quality And Stability Of Recommender Systems, David Shriver

Department of Computer Science and Engineering: Dissertations, Theses, and Student Research

Recommender systems help users to find products they may like when lacking personal experience or facing an overwhelmingly large set of items. However, assessing the quality and stability of recommender systems can present challenges for developers. First, traditional accuracy metrics, such as precision and recall, for validating the quality of recommendations, offer only a coarse, one-dimensional view of the system performance. Second, assessing the stability of a recommender systems requires generating new data and retraining a system, which is expensive. In this work, we present two new approaches for assessing the quality and stability of recommender systems to address these …


Ui X-Ray: Interactive Mobile Ui Testing Based On Computer Vision, Chun-Fu Richard Chen, Marco Pistoia, Conglei Shi, Paolo Girolami, Joseph W. Ligman, Yong Wang Mar 2017

Ui X-Ray: Interactive Mobile Ui Testing Based On Computer Vision, Chun-Fu Richard Chen, Marco Pistoia, Conglei Shi, Paolo Girolami, Joseph W. Ligman, Yong Wang

Research Collection School Of Computing and Information Systems

User Interface/eXperience (UI/UX) significantly affects the lifetime of any software program, particularly mobile apps. A bad UX can undermine the success of a mobile app even if that app enables sophisticated capabilities. A good UX, however, needs to be supported of a highly functional and user friendly UI design. In spite of the importance of building mobile apps based on solid UI designs, UI discrepancies- inconsistencies between UI design and implementation-Are among the most numerous and expensive defects encountered during testing. This paper presents UI X-RAY, an interactive UI testing system that integrates computer-vision methods to facilitate the correction of …


Improving The Efficiency Of Ci With Uber-Commits, Matias Waterloo Aug 2016

Improving The Efficiency Of Ci With Uber-Commits, Matias Waterloo

Department of Computer Science and Engineering: Dissertations, Theses, and Student Research

Continuous Integration (CI) is a software engineering practice where developers break their coding tasks into small changes that can be integrated with the shared code repository on a frequent basis. The primary objectives of CI are to avoid integration problems caused by large change sets and to provide prompt developer feedback so that if a problem is detected, it can be easily and quickly resolved. In this thesis, we argue that while keeping changes small and integrating often is a wise approach for developers, the CI server may be more efficient operating on a different scale. In our approach, the …


Interactive Teachable Cognitive Agents: Smart Building Blocks For Multiagent Systems, Budhitama Subagdja, Ah-Hwee Tan Mar 2016

Interactive Teachable Cognitive Agents: Smart Building Blocks For Multiagent Systems, Budhitama Subagdja, Ah-Hwee Tan

Research Collection School Of Computing and Information Systems

Developing a complex intelligent system by abstracting their behaviors, functionalities, and reasoning mechanisms can be tedious and time consuming. In this paper, we present a framework for developing an application or software system based on smart autonomous components that collaborate with the developer or user to realize the entire system. Inspired by teachable approaches and programming-by-demonstration methods in robotics and end-user development, we treat intelligent agents as teachable components that make up the system to be built. Each agent serves different functionalities and may have prebuilt operations to accomplish its own design objectives. However, each agent may also be equipped …


Towards Real-Time, On-Board, Hardware-Supported Sensor And Software Health Management For Unmanned Aerial Systems, Johann M. Schumann, Kristin Y. Rozier, Thomas Reinbacher, Ole J. Mengshoel, Timmy Mbaya, Corey Ippolito Jun 2015

Towards Real-Time, On-Board, Hardware-Supported Sensor And Software Health Management For Unmanned Aerial Systems, Johann M. Schumann, Kristin Y. Rozier, Thomas Reinbacher, Ole J. Mengshoel, Timmy Mbaya, Corey Ippolito

Ole J Mengshoel

For unmanned aerial systems (UAS) to be successfully deployed and integrated within the national airspace, it is imperative that they possess the capability to effectively complete their missions without compromising the safety of other aircraft, as well as persons and property on the ground. This necessity creates a natural requirement for UAS that can respond to uncertain environmental conditions and emergent failures in real-time, with robustness and resilience close enough to those of manned systems. We introduce a system that meets this requirement with the design of a real-time onboard system health management (SHM) capability to continuously monitor sensors, software, …


Evaluation Of An Architectural-Level Approach For Finding Security Vulnerabilities, Mohammad Anamul Haque Jan 2015

Evaluation Of An Architectural-Level Approach For Finding Security Vulnerabilities, Mohammad Anamul Haque

Wayne State University Theses

The cost of security vulnerabilities of a software system is high. As a result,

many techniques have been developed to find the vulnerabilities at development time. Of particular interest are static analysis techniques that can consider all possible executions of a system. But, static analysis can suffer from a large number of false positives.

A recently developed approach, Scoria, is a semi-automated static analysis that requires security architects to annotate the code, typecheck the annotations, extract a hierarchical object graph and write constraints in order to find security vulnerabilities in a system.

This thesis evaluates Scoria on three systems (sizes …


Software Group Of The Openorbiter Project, Christoffer Korvald, Jeremy Straub Mar 2014

Software Group Of The Openorbiter Project, Christoffer Korvald, Jeremy Straub

Jeremy Straub

This poster provides an update regarding software development work for the OpenOrbiter project. The software development effort for the OpenOrbiter project currently consists of four teams: payload software development, operating software development, ground station software development and testing. The teams are designing and developing the software needed to create and operate a small spacecraft which can be produced for under USD $5,000 by students, faculty and others around the world. Participating students are gaining valuable real-world experience through the process of designing and developing the spacecraft. Each team is headed by a team lead that is responsible for conducting weekly …


Making Sense Of Software Development And Personality Types, Luiz Fernando Capretz, Faheem Ahmed Dr. Jul 2013

Making Sense Of Software Development And Personality Types, Luiz Fernando Capretz, Faheem Ahmed Dr.

Luiz Fernando Capretz

No abstract provided.


Model-Based Software Engineering For An Imaging Cubesat And Its Extrapolation To Other Missions, Atif Mohammad, Jeremy Straub, Christoffer Korvald, Emanuel Grant Mar 2013

Model-Based Software Engineering For An Imaging Cubesat And Its Extrapolation To Other Missions, Atif Mohammad, Jeremy Straub, Christoffer Korvald, Emanuel Grant

Jeremy Straub

Small satellites with their limited computational capabilities require that software engineering techniques promote efficient use of spacecraft resources. A model-driven approach to software engineering is an excellent solution to this resource maximization challenge as it facilitates visualization of the key solution processes and data elements.

The software engineering process utilized for the OpenOrbiter spacecraft, which is a remote sensing technology demonstrator, is presented. Key challenges presented by the Open Orbiter project included concurrent operation and tasking of five computer-on-module (COM) units and a flight computer and the associated data marshaling between local and general storage. The payload processing system (consisting …


An Empirical Study On The Procedure To Derive Software Quality Estimation Models, Jie Xu, Danny Ho, Luiz Fernando Capretz Aug 2010

An Empirical Study On The Procedure To Derive Software Quality Estimation Models, Jie Xu, Danny Ho, Luiz Fernando Capretz

Electrical and Computer Engineering Publications

Software quality assurance has been a heated topic for several decades. If factors that influence software quality can be identified, they may provide more insight for better software development management. More precise quality assurance can be achieved by employing resources according to accurate quality estimation at the early stages of a project. In this paper, a general procedure is proposed to derive software quality estimation models and various techniques are presented to accomplish the tasks in respective steps. Several statistical techniques together with machine learning method are utilized to verify the effectiveness of software metrics. Moreover, a neuro-fuzzy approach is …


Making Sense Of Software Development And Personality Types, Luiz Fernando Capretz, Faheem Ahmed Dr. Jan 2010

Making Sense Of Software Development And Personality Types, Luiz Fernando Capretz, Faheem Ahmed Dr.

Electrical and Computer Engineering Publications

No abstract provided.


Personality Types In Software Engineering, Luiz Fernando Capretz Feb 2003

Personality Types In Software Engineering, Luiz Fernando Capretz

Electrical and Computer Engineering Publications

No abstract provided.