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

Software Engineering Commons™

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

Articles 1 - 17 of 17

Full-Text Articles in Software Engineering

Advanced Security Analysis For Emergent Software Platforms, Mohannad Alhanahnah Dec 2019

Advanced Security Analysis For Emergent Software Platforms, Mohannad Alhanahnah

School of Computing: Dissertations, Theses, and Student Research

Emergent software ecosystems, boomed by the advent of smartphones and the Internet of Things (IoT) platforms, are perpetually sophisticated, deployed into highly dynamic environments, and facilitating interactions across heterogeneous domains. Accordingly, assessing the security thereof is a pressing need, yet requires high levels of scalability and reliability to handle the dynamism involved in such volatile ecosystems.

This dissertation seeks to enhance conventional security detection methods to cope with the emergent features of contemporary software ecosystems. In particular, it analyzes the security of Android and IoT ecosystems by developing rigorous vulnerability detection methods. A critical aspect of this work is the …


Formal Modeling And Analysis Of A Family Of Surgical Robots, Niloofar Mansoor Dec 2019

Formal Modeling And Analysis Of A Family Of Surgical Robots, Niloofar Mansoor

School of Computing: Dissertations, Theses, and Student Research

Safety-critical applications often use dependability cases to validate that specified properties are invariant, or to demonstrate a counterexample showing how that property might be violated. However, most dependability cases are written with a single product in mind. At the same time, software product lines (families of related software products) have been studied with the goal of modeling variability and commonality and building family-based techniques for both modeling and analysis. This thesis presents a novel approach for building an end to end dependability case for a software product line, where a property is formally modeled, a counterexample is found and then …


Design And Implementation Of A Stand-Alone Tool For Metabolic Simulations, Milad Ghiasi Rad Dec 2017

Design And Implementation Of A Stand-Alone Tool For Metabolic Simulations, Milad Ghiasi Rad

School of Computing: Dissertations, Theses, and Student Research

In this thesis, we present the design and implementation of a stand-alone tool for metabolic simulations. This system is able to integrate custom-built SBML models along with external user’s input information and produces the estimation of any reactants participating in the chain of the reactions in the provided model, e.g., ATP, Glucose, Insulin, for the given duration using numerical analysis and simulations. This tool offers the food intake arguments in the calculations to consider the personalized metabolic characteristics in the simulations. The tool has also been generalized to take into consideration of temporal genomic information and be flexible for simulation …


Semeo: A Semantic Equivalence Analysis Framework For Obfuscated Android Applications, Zhen Hu Dec 2016

Semeo: A Semantic Equivalence Analysis Framework For Obfuscated Android Applications, Zhen Hu

School of Computing: Dissertations, Theses, and Student Research

Software repackaging is a common approach for creating malware. In this approach, malware authors inject malicious payloads into legitimate applications; then, to ren- der security analysis more difficult, they obfuscate most or all of the code. This forces analysts to spend a large amount of effort filtering out benign obfuscated methods in order to locate potentially malicious methods for further analysis. If an effective mechanism for filtering out benign obfuscated methods were available, the number of methods that must be analyzed could be reduced, allowing analysts to be more productive. In this thesis, we introduce SEMEO, a highly effective and …


Using Software Testing Techniques To Infer Biological Models, Mikaela Cashman Dec 2016

Using Software Testing Techniques To Infer Biological Models, Mikaela Cashman

School of Computing: Dissertations, Theses, and Student Research

Years of research in software testing has given us novel ways to reason about and test the behavior of complex software systems that contain hundreds of thousands of lines of code. Many of these techniques have been inspired by nature such as genetic algorithms, swarm intelligence, and ant colony optimization. However, they use a unidirectional analogy – taking from nature without giving back.

In this thesis we invert this view and ask if we can utilize techniques from testing and modeling of highly-configurable software systems to aid in the emerging field of systems biology which aims to model and predict …


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

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

School of Computing: 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 …


Why Do Record/Replay Tests Of Web Applications Break?, Mouna Hammoudi May 2016

Why Do Record/Replay Tests Of Web Applications Break?, Mouna Hammoudi

School of Computing: Dissertations, Theses, and Student Research

Software engineers often use record/replay tools to enable the automated testing of web applications. Tests created in this manner can then be used to regression test new versions of the web applications as they evolve. Web application tests recorded by record/replay tools, however, can be quite brittle; they can easily break as applications change. For this reason, researchers have begun to seek approaches for automatically repairing record/replay tests. To date, however, there have been no comprehensive attempts to characterize the causes of breakages in record/replay tests for web applications. In this work, we present a taxonomy classifying the ways in …


Sonifying Git History, Kevin J. North May 2016

Sonifying Git History, Kevin J. North

School of Computing: Dissertations, Theses, and Student Research

Version control is a technique that software developers use in industry to manage their source code artifacts. One benefit of using version control is that it produces a history of every change made to a codebase, which developers frequently analyze in order to aid the software development process. However, version control history contains highly multidimensional and temporal data. State of the art techniques can show several of these dimensions, but they cannot show a large number of dimensions simultaneously without becoming difficult to understand. An alternative technique to understand temporal data with high dimensionality is sonification. Sonification maps information to …


A Roadmap To Safe And Reliable Engineered Biological Nano-Communication Networks, Justin W. Firestone Apr 2016

A Roadmap To Safe And Reliable Engineered Biological Nano-Communication Networks, Justin W. Firestone

School of Computing: Dissertations, Theses, and Student Research

Synthetic biology has the potential to benefit society with novel applications that can improve soil quality, produce biofuels, grow customized biological tissue, and perform intelligent drug delivery, among many other possibilities. Engineers are creating techniques to program living cells, inserting new logic, and leveraging cell-to-cell communication, which result in changes to a cell's core functionality. Using these techniques, we can now create synthetic biological organisms (SBOs) with entirely new (potentially unseen) behaviors, which, similar to silicon devices, can sense, actuate, perform computation, and interconnect with other networks at the nanoscale level. SBOs are programmable evolving entities, and can be likened …


Discovery Over Application: A Case Study Of Misaligned Incentives In Software Engineering, Eric F. Rizzi Jul 2015

Discovery Over Application: A Case Study Of Misaligned Incentives In Software Engineering, Eric F. Rizzi

School of Computing: Dissertations, Theses, and Student Research

In this thesis, we present evidence that there is an under-emphasis on the application of software systems in Software Engineering research, affecting the advancement of the field as a whole. Specifically, we perform a case-study on KLEE, a tool with over 1000 citations. We made improvements that consisted of fixing performance bugs and implementing optimizations that have become common practice, increasing KLEE's performance by 2-11X. To understand how techniques proposed in the literature would be affected by these improvements, we analyzed 100 papers that cited the original KLEE paper. From this analysis we found two things. First, it is clear …


Simexplorer: A Testing Framework To Detect Elusive Software Faults, Tingting Yu Jun 2014

Simexplorer: A Testing Framework To Detect Elusive Software Faults, Tingting Yu

School of Computing: Dissertations, Theses, and Student Research

Modern computer software systems are prone to various classes of runtime faults due to their reliance on features such as concurrency and peripheral devices such as sensors. Testing remains a common method for uncovering faults in these systems. However, commonly used testing techniques that execute the program with test inputs and inspect program outputs to detect failures are often ineffective on these systems. In addition, existing testing techniques focus primarily on single applications, neglecting elusive faults that occur at the whole-system level due to complex system event interactions.

This research provides a framework, SIMEXPLORER, that allows engineers to effectively test …


A Self-Adaptive Framework For Failure Avoidance In Configurable Software, Jacob Swanson May 2014

A Self-Adaptive Framework For Failure Avoidance In Configurable Software, Jacob Swanson

School of Computing: Dissertations, Theses, and Student Research

Many software systems today are highly-configurable, meaning the user can customize their instance of the application, adding and removing features as needed. However, this configurability makes it harder to ensure that faults will not escape testing and manifest as failures in the field. This is because many failures are configuration-dependent; they will appear under certain combinations of features configurations, but not others. Once faults are found and reported in the field, there can be a long lag time (days, weeks or even months) until patches are created and released to fix them. In the meantime, users will continue to use …


Automated Test Case Generation To Validate Non-Functional Software Requirements, Pingyu Zhang Aug 2013

Automated Test Case Generation To Validate Non-Functional Software Requirements, Pingyu Zhang

School of Computing: Dissertations, Theses, and Student Research

A software system is bounded by a set of requirements. Functional requirements describe what the system must do, in terms of inputs, behavior, and outputs. We define non-functional requirements to be how well these functional requirements are satisfied, in terms of qualities or constraints on the design or on the implementation of a system. In practice, the validation of these kinds of requirements, does not receive equal emphasis. Techniques for validating functional requirements target all levels of software testing phases, and explore both black-box and white-box approaches. Techniques for validating non-functional requirements, on the other hand, largely operate in a …


Solving The Search For Source Code, Kathryn T. Stolee Aug 2013

Solving The Search For Source Code, Kathryn T. Stolee

School of Computing: Dissertations, Theses, and Student Research

Programmers frequently search for source code to reuse using keyword searches. When effective and efficient, a code search can boost programmer productivity, however, the search effectiveness depends on the programmer's ability to specify a query that captures how the desired code may have been implemented. Further, the results often include many irrelevant matches that must be filtered manually. More semantic search approaches could address these limitations, yet existing approaches either do not scale, are not flexible enough to find approximate matches, or require complex specifications.

We propose a novel approach to semantic search that addresses some of these limitations and …


Dynamic Data Race Detection And Healing, Du Li Dec 2012

Dynamic Data Race Detection And Healing, Du Li

School of Computing: Dissertations, Theses, and Student Research

Perpetual availability is an important operational goal in today's computer systems. However, achieving this goal is challenging because modern software systems contain faults that can cause them to fail. For example, multi-threading is widely used in modern software to fully utilize the computing capability of multicore processors. However, employing multi-threading can lead to concurrency faults such as deadlock and data race that are notoriously difficult to to isolate, detect, and repair.Data races, which involves two concurrent accesses to the same data where at least one is a write, are the most common concurrency faults.

As our first step, we investigate …


Cogtool-Helper: Leveraging Gui Functional Testing Tools To Generate Predictive Human Performance Models, Amanda Swearngin May 2012

Cogtool-Helper: Leveraging Gui Functional Testing Tools To Generate Predictive Human Performance Models, Amanda Swearngin

School of Computing: Dissertations, Theses, and Student Research

Numerous tools and techniques for human performance modeling have been introduced in the field of human-computer interaction. With such tools comes the ability to model legacy applications. Models can be used to compare design ideas to existing applications, or to evaluate products against those of competitors. One such mod- eling tool, CogTool, allows user interface designers and analysts to mock up design ideas, demonstrate tasks, and obtain human performance predictions for those tasks. This is one step towards a simple and complete analysis process, but it still requires a large amount of manual work. Graphical user interface (GUI) testing tools …


Use Of Constraint Solving For Testing Software Product Lines, Jiangfan Shi Dec 2011

Use Of Constraint Solving For Testing Software Product Lines, Jiangfan Shi

School of Computing: Dissertations, Theses, and Student Research

A new software engineering methodology, software product line (SPL) engineering, has been increasingly studied in academia and adopted inindustry in the past decade. It allows the delivery of similar, but customized, software products to customers in the same domain within a short timeperiod. Software product line engineering produces an SPL by defining feature commonality and variability, and is supported by a well-managed asset base. SPL engineering can improve productivity from three to ten times, however, we require more efficient testing methods, so that we canensure the correctness of SPLs with the same resource allocation percentage as in the traditional software …