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

Theses/Dissertations

Software Engineering

Institution
Keyword
Publication Year
Publication

Articles 1 - 30 of 55

Full-Text Articles in Programming Languages and Compilers

Web Based Management System For Housing Society, Likhitha Reddy Eddala Aug 2023

Web Based Management System For Housing Society, Likhitha Reddy Eddala

Electronic Theses, Projects, and Dissertations

Web Based Management System for Housing Society plays a major role in our day-to-day life. We develop a global web dependent application using AngularJS, Node JS and MySQL, with Xampp as the server to make an effective management system. This system is designed to provide a user-friendly and efficient platform for managing all the details of daily notices, monthly meetings, events, payments, maids etc., This system mainly consists of three modules, they are: Admin, User and Security. Each module here serves specific features and functionalities present within society. Admin module provides the features for managing user, houses, security, maids, notices, …


Restaurant Management Website, Akhil Sai Gollapudi Aug 2023

Restaurant Management Website, Akhil Sai Gollapudi

Electronic Theses, Projects, and Dissertations

In the ever-evolving corporate landscape of today, it is crucial to respond to customer needs as efficiently and in a timely manner as possible. The project's primary objective is to create a method for clients to make reservations for restaurants online. This makes life easier for busy customers in their daily life.

Today, people are looking for comfort thanks to rapidly developing technology. As we can see, people invent and implement new technologies in all fields according to customer needs.

We got a unique restaurant idea that helps people save time. People prefer quick methods to get things done. With …


Contactless Food Ordering System, Rishivar Kumar Goli Aug 2023

Contactless Food Ordering System, Rishivar Kumar Goli

Electronic Theses, Projects, and Dissertations

Contactless food ordering has revolutionized the way a customer interacts with restaurants by allowing them to place orders and make transactions. Through these web-based platforms, customers can now browse menus, customize orders, and make payments seamlessly. By scanning the restaurant’s QR code, customers can reserve a table. If the table is available, then automatically it will be reserved. However, if the table is occupied the customer will be added to the waiting list. Once the customer selects desired food then they can securely make payments based on ordered food items. The food will be delivered straight to the customer's table. …


Mapping Programs To Equations, Hessamaldin Mohammadi May 2023

Mapping Programs To Equations, Hessamaldin Mohammadi

Dissertations

Extracting the function of a program from a static analysis of its source code is a valuable capability in software engineering; at a time when there is increasing talk of using AI (Artificial Intelligence) to generate software from natural language specifications, it becomes increasingly important to determine the exact function of software as written, to figure out what AI has understood the natural language specification to mean. For all its criticality, the ability to derive the domain-to-range function of a program has proved to be an elusive goal, due primarily to the difficulty of deriving the function of iterative statements. …


Visualized Algorithm Engineering On Two Graph Partitioning Problems, Zizhen Chen May 2023

Visualized Algorithm Engineering On Two Graph Partitioning Problems, Zizhen Chen

Computer Science and Engineering Theses and Dissertations

Concepts of graph theory are frequently used by computer scientists as abstractions when modeling a problem. Partitioning a graph (or a network) into smaller parts is one of the fundamental algorithmic operations that plays a key role in classifying and clustering. Since the early 1970s, graph partitioning rapidly expanded for applications in wide areas. It applies in both engineering applications, as well as research. Current technology generates massive data (“Big Data”) from business interactions and social exchanges, so high-performance algorithms of partitioning graphs are a critical need.

This dissertation presents engineering models for two graph partitioning problems arising from completely …


Code Generation Based On Inference And Controlled Natural Language Input, Howard R. Dittmer Apr 2023

Code Generation Based On Inference And Controlled Natural Language Input, Howard R. Dittmer

College of Computing and Digital Media Dissertations

Over time the level of abstraction embodied in programming languages has continued to grow. Paradoxically, most programming languages still require programmers to conform to the language's rigid constructs. These constructs have been implemented in the name of efficiency for the computer. However, the continual increase in computing power allows us to consider techniques not so limited. To this end, we have created CABERNET, a Controlled Natural Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This syntax enables increased programmer efficiency.

CNLs have previously been used to document requirements. We have taken this …


Comparative Analysis Of Fullstack Development Technologies: Frontend, Backend And Database, Qozeem Odeniran Jan 2023

Comparative Analysis Of Fullstack Development Technologies: Frontend, Backend And Database, Qozeem Odeniran

Electronic Theses and Dissertations

Accessing websites with various devices has brought changes in the field of application development. The choice of cross-platform, reusable frameworks is very crucial in this era. This thesis embarks in the evaluation of front-end, back-end, and database technologies to address the status quo. Study-a explores front-end development, focusing on angular.js and react.js. Using these frameworks, comparative web applications were created and evaluated locally. Important insights were obtained through benchmark tests, lighthouse metrics, and architectural evaluations. React.js proves to be a performance leader in spite of the possible influence of a virtual machine, opening the door for additional research. Study b …


Task-Based Runtime Optimizations Towards High Performance Computing Applications, Qinglei Cao Aug 2022

Task-Based Runtime Optimizations Towards High Performance Computing Applications, Qinglei Cao

Doctoral Dissertations

The last decades have witnessed a rapid improvement of computational capabilities in high-performance computing (HPC) platforms thanks to hardware technology scaling. HPC architectures benefit from mainstream advances on the hardware with many-core systems, deep hierarchical memory subsystem, non-uniform memory access, and an ever-increasing gap between computational power and memory bandwidth. This has necessitated continuous adaptations across the software stack to maintain high hardware utilization. In this HPC landscape of potentially million-way parallelism, task-based programming models associated with dynamic runtime systems are becoming more popular, which fosters developers’ productivity at extreme scale by abstracting the underlying hardware complexity.

In this context, …


Rasm: Compiling Racket To Webassembly, Grant Matejka Jun 2022

Rasm: Compiling Racket To Webassembly, Grant Matejka

Master's Theses

WebAssembly is an instruction set designed for a stack based virtual machine, with an emphasis on speed, portability and security. As the use cases for WebAssembly grow, so does the desire to target WebAssembly in compilation. In this thesis we present Rasm, a Racket to WebAssembly compiler that compiles a select subset of the top forms of the Racket programming language to WebAssembly. We also present our early findings in our work towards adding a WebAssembly backend to the Chez Scheme compiler that is the backend of Racket. We address initial concerns and roadblocks in adopting a WebAssembly backend and …


A Study Of Software Development Methodologies, Kendra Risener May 2022

A Study Of Software Development Methodologies, Kendra Risener

Computer Science and Computer Engineering Undergraduate Honors Theses

Software development methodologies are often overlooked by software engineers as aspects of development that are handled by project managers alone. However, if every member of the team better understood the development methodology being used, it increases the likelihood that the method is properly implemented and ultimately used to complete the project more efficiently. Thus, this paper seeks to explore six common methodologies: the Waterfall Model, the Spiral Model, Agile, Scrum, Kanban, and Extreme Programming. These are discussed in two main sections in the paper. In the first section, the frameworks are isolated and viewed by themselves. The histories, unique features, …


Towards A Large-Scale Intelligent Mobile-Argumentation And Discovering Arguments, Controversial Topics And Topic-Oriented Focal Sets In Cyber-Argumentation, Najla Althuniyan Jul 2021

Towards A Large-Scale Intelligent Mobile-Argumentation And Discovering Arguments, Controversial Topics And Topic-Oriented Focal Sets In Cyber-Argumentation, Najla Althuniyan

Graduate Theses and Dissertations

User-generated content (UGC) platforms host different forms of information, such as audio, video, pictures, and text. They have many online applications, such as social media, blogs, photo and video sharing, customer reviews, debate, and deliberation platforms. Usually, the content of these platforms is provided and consumed by users. Most of these platforms, mainly social media and blogs, are often used for online discussion. These platforms offer tools for users to share and express opinions. Commonly, people from different backgrounds and origins discuss opinions about various issues over the Internet. Furthermore, discussions among users contain substantial information from which knowledge about …


Asynchronous Validations Using Programming Contracts In Java, Rahul Shukla May 2021

Asynchronous Validations Using Programming Contracts In Java, Rahul Shukla

Master's Projects

Design by Contract is a software development methodology based on the idea of having contracts between two software components. Programming contracts are invariants specified as pre-conditions and post-conditions. The client component must ensure that all the pre-conditions are satisfied before calling the server component. The server component must guarantee the post-conditions are met before the call returns to the client component. Current work in Design by Contract in Java focuses on writing shorthand contracts using annotations that are processed serially.

Modern software systems require a lot of business rules validations on complicated domain objects. Often, such validations are in the …


City Goers: An Exploration Into Creating Seemingly Intelligent A.I. Systems, Matthew Brooke May 2021

City Goers: An Exploration Into Creating Seemingly Intelligent A.I. Systems, Matthew Brooke

Computer Science and Computer Engineering Undergraduate Honors Theses

Artificial Intelligence systems have come a long way over the years. One particular application of A.I. is its incorporation in video games. A key goal of creating an A.I. system in a video game is to convey a level of intellect to the player. During playtests for Halo: Combat Evolved, the developers at Bungie noticed that players deemed tougher enemies as more intelligent than weaker ones, despite the fact that there were no differences in behavior in the enemies. The tougher enemies provided a greater illusion of intelligence to the players. Inspired by this, I set out to create a …


Source Code Comment Classification Artificial Intelligence, Cole Sutyak Jan 2021

Source Code Comment Classification Artificial Intelligence, Cole Sutyak

Williams Honors College, Honors Research Projects

Source code comment classification is an important problem for future machine learning solutions. In particular, supervised machine learning solutions that have largely subjective data labels but are difficult to obtain the labels for. Machine learning problems are problems largely because of a lack of data. In machine learning solutions, it is better to have a large amount of mediocre data than it is to have a small amount of good data. While the mediocre data might not produce the best accuracy, it produces the best results because there is much more to learn from the problem.

In this project, data …


Using Applications To Guide Data Management For Emerging Memory Technologies, Timothy C. Effler Aug 2020

Using Applications To Guide Data Management For Emerging Memory Technologies, Timothy C. Effler

Doctoral Dissertations

A number of promising new memory technologies, such as non-volatile, storage-class memories and high-bandwidth, on-chip RAMs, are emerging. Since each of these new technologies present tradeoffs distinct from conventional DRAMs, many high performance and scientific computing systems have begun to include multiple tiers of memory storage, each with their own type of devices. To efficiently utilize the available hardware, such systems will need to alter their data management strategies to consider the performance and capabilities provided by each tier. This work aims to understand and increase the effectiveness of application data management for emerging complex memory systems. A key realization …


Novel Deep Learning Methods Combined With Static Analysis For Source Code Processing, Duy Quoc Nghi Bui Aug 2020

Novel Deep Learning Methods Combined With Static Analysis For Source Code Processing, Duy Quoc Nghi Bui

Dissertations and Theses Collection (Open Access)

It is desirable to combine machine learning and program analysis so that one can leverage the best of both to increase the performance of software analytics. On one side, machine learning can analyze the source code of thousands of well-written software projects that can uncover patterns that partially characterize software that is reliable, easy to read, and easy to maintain. On the other side, the program analysis can be used to define rigorous and unique rules that are only available in programming languages, which enrich the representation of source code and help the machine learning to capture the patterns better. …


Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison Jul 2020

Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison

University Honors Theses

Programming in a baremetal environment, directly on top of hardware with very little to help manage memory or ensure safety, can be dangerous even for experienced programmers. Programming languages can ease the burden on developers and sometimes take care of entire sets of errors. This is not the case for a language like C that will do almost anything you want, for better or worse. To operate in a baremetal environment often requires direct control over memory, but it would be nice to have that capability without sacrificing safety guarantees. Rust is a new language that aims to fit this …


A Virtualization Based System Infrastructure For Dynamic Program Analysis, Jiaqi Hong Jun 2020

A Virtualization Based System Infrastructure For Dynamic Program Analysis, Jiaqi Hong

Dissertations and Theses Collection (Open Access)

Dynamic malware analysis schemes either run the target program as is in an isolated environment assisted by additional hardware facilities or modify it with instrumentation code statically or dynamically. The hardware-assisted schemes usually trap the target during its execution to a more privileged environment based on the available hardware events. The more privileged environment is not accessible by the untrusted kernel, thus this approach is often applied for transparent and secure kernel analysis. Nevertheless, the isolated environment induces a virtual address gap between the analyzer and the target, which hinders effective and efficient memory introspection and undermines the correctness of …


V-Slam And Sensor Fusion For Ground Robots, Ejup Hoxha Jan 2020

V-Slam And Sensor Fusion For Ground Robots, Ejup Hoxha

Dissertations and Theses

In underground, underwater and indoor environments, a robot has to rely solely on its on-board sensors to sense and understand its surroundings. This is the main reason why SLAM gained the popularity it has today. In recent years, we have seen excellent improvement on accuracy of localization using cameras and combinations of different sensors, especially camera-IMU (VIO) fusion. Incorporating more sensors leads to improvement of accuracy,but also robustness of SLAM. However, while testing SLAM in our ground robots, we have seen a decrease in performance quality when using the same algorithms on flying vehicles.We have an additional sensor for ground …


Android Game, Ryan Weston Jan 2020

Android Game, Ryan Weston

Williams Honors College, Honors Research Projects

The purpose of this project was to create an endless runner game for Android coded in Java and XML and developed in Android Studio. In the game, the player controls a frog that jumps from lily pad to lily pad to avoid logs moving toward the player. The player must also maneuver the lily pads as they can randomly disappear. There are three difficulties in the game that vary the disappearance rate of lily pads as well as the frequency and acceleration rate of the log obstacles. The game also has a scoring system and saves the high score locally …


Multimodal Mobile Sensing Systems For Physiological And Psychological Assessment, Nguyen Phan Sinh Huynh Dec 2019

Multimodal Mobile Sensing Systems For Physiological And Psychological Assessment, Nguyen Phan Sinh Huynh

Dissertations and Theses Collection (Open Access)

Sensing systems for monitoring physiological and psychological states have been studied extensively in both academic and industry research for different applications across various domains. However, most of the studies have been done in the lab environment with controlled and complicated sensor setup, which is only suitable for serious healthcare applications in which the obtrusiveness and immobility can be compromised in a trade-off for accurate clinical screening or diagnosing. The recent substantial development of mobile devices with embedded miniaturized sensors are now allowing new opportunities to adapt and develop such sensing systems in the mobile context. The ability to sense physiological …


Exploiting Approximation, Caching And Specialization To Accelerate Vision Sensing Applications, Nguyen Loc Huynh Sep 2019

Exploiting Approximation, Caching And Specialization To Accelerate Vision Sensing Applications, Nguyen Loc Huynh

Dissertations and Theses Collection (Open Access)

Over the past few years, deep learning has emerged as state-of-the-art solutions for many challenging computer vision tasks such as face recognition, object detection, etc. Despite of its outstanding performance, deep neural networks (DNNs) are computational intensive, which prevent them to be widely adopted on billions of mobile and embedded devices with scarce resources. To address that limitation, we
focus on building systems and optimization algorithms to accelerate those models, making them more computational-efficient.
First, this thesis explores the computational capabilities of different existing processors (or co-processors) on modern mobile devices. It recognizes that by leveraging the mobile Graphics Processing …


Pantry: A Macro Library For Python, Derek Pang Dec 2018

Pantry: A Macro Library For Python, Derek Pang

Master's Projects

Python lacks a simple way to create custom syntax and constructs that goes outside of its own syntax rules. A paradigm that allows for these possibilities to exist within languages is macros. Macros allow for a shorter set of syntax to expand into a longer set of instructions at compile-time. This gives the capability to evolve the language to fit personal needs.

Pantry, implements a hygienic text-substitution macro system for Python. Pantry achieves this through the introduction of an additional preparsing step that utilizes parsing and lexing of the source code. Pantry proposes a way to simply declare a pattern …


Funqual: User-Defined, Statically-Checked Call Graph Constraints In C++, Andrew P. Nelson Jun 2018

Funqual: User-Defined, Statically-Checked Call Graph Constraints In C++, Andrew P. Nelson

Master's Theses

Static analysis tools can aid programmers by reporting potential programming mistakes prior to the execution of a program. Funqual is a static analysis tool that reads C++17 code ``in the wild'' and checks that the function call graph follows a set of rules which can be defined by the user. This sort of analysis can help the programmer to avoid errors such as accidentally calling blocking functions in time-sensitive contexts or accidentally allocating memory in heap-sensitive environments. To accomplish this, we create a type system whereby functions can be given user-defined type qualifiers and where users can define their own …


Algorithmic Music Generation For Pedagogy Of Sight Reading, Ryan Stephen Davis Jan 2018

Algorithmic Music Generation For Pedagogy Of Sight Reading, Ryan Stephen Davis

Electronic Theses and Dissertations

Autodeus is the name of the program that has been developed and was designed to aid guitar students in the attainment and betterment of musical notation sight reading skills. Its primary goal is to provide a very flexible tool that has the ability to generate virtually endless types of sight reading exercises at many various skill levels.

A complimentary 2 year-long comprehensive guitar sight-reading course syllabus can be implemented via Autodeus as it is capable of generating all the necessary exercises. It is able to generate these exercises quickly and efficiently through the use of a back tracking algorithm that …


Testing And Debugging: A Reality Check, Pavneet Singh Kochhar Jul 2017

Testing And Debugging: A Reality Check, Pavneet Singh Kochhar

Dissertations and Theses Collection

Testing and debugging are important activities during software development and maintenance. Testing is performed to check if the code contains errors whereas debugging is done to locate and fix these errors. Testing can be manual or automated and can be of different types such as unit, integration, system, stress etc. Debugging can also be manual or automated. These two activities have drawn attention of researchers in the recent years. Past studies have proposed many testing techniques such as automated test generation, test minimization, test case selection etc. Studies related to debugging have proposed new techniques to find bugs using various …


Real-Time Bursty Topic Detection And Virality Forecasting In Microblogs, Wei Xie Jul 2017

Real-Time Bursty Topic Detection And Virality Forecasting In Microblogs, Wei Xie

Dissertations and Theses Collection

Microblogs such as Twitter have become the largest social platforms for users around the world to share anything happening around them with friends and beyond. A bursty topic in microblogs is one that triggers a surge of relevant tweets within a short period of time, which often reflects important events of mass interest. How to leverage microblogs for early detection and further impact analysis of bursty topics has, therefore, become an important research problem with immense practical value.


Fusing Mobile, Wearable And Infrastructure Sensing For Immersive Daily Lifestyle Analytics, Sougata Sen Jun 2017

Fusing Mobile, Wearable And Infrastructure Sensing For Immersive Daily Lifestyle Analytics, Sougata Sen

Dissertations and Theses Collection

With the prevalence of sensors in public infrastructure as well as in personal devices, exploitation of data from these sensors to monitor and profile basic activities (e.g., locomotive states such as walking, and gestural actions such as smoking) has gained popularity. Basic activities identified by these sensors will drive the next generation of lifestyle monitoring applications and services. To provide more advanced and personalized services, these next-generation systems will need to capture and understand increasingly finer-grained details of various common daily life activities. In this dissertation, I demonstrate the possibility of building systems using offthe- shelf devices, that not only …


Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit May 2017

Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit

Master's Projects

Today many large and complex software systems are being developed in Java. Although, software always has bugs, it is very important that these developed systems are more reliable despite these bugs.

One way that we can help achieve this is the Design by Contract (DbC) paradigm, which was first introduced by Bertrand Meyer, the creator of Eiffel. The concept of DbC was introduced for software developers so that they can produce more reliable software systems with a little extra cost. Using programming contracts allows developer to specify details such as input conditions and expected output conditions. Doing this makes it …


Programming Models' Support For Heterogeneous Architecture, Wei Wu May 2017

Programming Models' Support For Heterogeneous Architecture, Wei Wu

Doctoral Dissertations

Accelerator-enhanced computing platforms have drawn a lot of attention due to their massive peak computational capacity. Heterogeneous systems equipped with accelerators such as GPUs have become the most prominent components of High Performance Computing (HPC) systems. Even at the node level the significant heterogeneity of CPU and GPU, i.e. hardware and memory space differences, leads to challenges for fully exploiting such complex architectures. Extending outside the node scope, only escalate such challenges.

Conventional programming models such as data- ow and message passing have been widely adopted in HPC communities. When moving towards heterogeneous systems, the lack of GPU integration causes …