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

Computer Sciences Commons

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

Software engineering

Discipline
Institution
Publication Year
Publication
Publication Type
File Type

Articles 91 - 120 of 252

Full-Text Articles in Computer Sciences

Toward Productivity Improvements In Programming Languages Through Behavioral Analytics, Patrick Daleiden May 2020

Toward Productivity Improvements In Programming Languages Through Behavioral Analytics, Patrick Daleiden

UNLV Theses, Dissertations, Professional Papers, and Capstones

Computer science knowledge and skills have become foundational for success in virtually every professional field. As such, productivity in programming and computer science education is of paramount economic and strategic importance for innovation, employment and economic growth. Much of the research around productivity and computer science education has centered around improving notoriously difficult compiler error messages, with a noted surge in new studies in the last decade. In developing an original research plan for this area, this dissertation begins with an examination of the Case for New Instrumentation, draw- ing inspiration from automated data mining innovations and corporate marketing techniques …


How We Refactor And How We Document It? On The Use Of Supervised Machine Learning Algorithms To Classify Refactoring Documentation, Eman Abdullah Alomar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Marouane Kessentini, Ali Ouni May 2020

How We Refactor And How We Document It? On The Use Of Supervised Machine Learning Algorithms To Classify Refactoring Documentation, Eman Abdullah Alomar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Marouane Kessentini, Ali Ouni

Articles

Refactoring is the art of improving the structural design of a software system without altering its external behavior. Today, refactoring has become a well-established and disciplined software engineering practice that has attracted a significant amount of research presuming that refactoring is primarily motivated by the need to improve system structures. However, recent studies have shown that developers may incorporate refactoring strategies in other development-related activities that go beyond improving the design especially with the emerging challenges in contemporary software engineering. Unfortunately, these studies are limited to developer interviews and a reduced set of projects. To cope with the above-mentioned limitations, …


An Eye Tracking Replication Study Of A Randomized Controlled Trial On The Effects Of Embedded Computer Language Switching, Cole Peterson Apr 2020

An Eye Tracking Replication Study Of A Randomized Controlled Trial On The Effects Of Embedded Computer Language Switching, Cole Peterson

School of Computing: Dissertations, Theses, and Student Research

The use of multiple programming languages (polyglot programming) during software development is common practice in modern software development. However, not much is known about how the use of these different languages affects developer productivity. The study presented in this thesis replicates a randomized controlled trial that investigates the use of multiple languages in the context of database programming tasks. Participants in our study were given coding tasks written in Java and one of three SQL-like embedded languages: plain SQL in strings, Java methods only, a hybrid embedded language that was more similar to Java. In addition to recording the online …


Context Aware Data Generation Through Domain Specific Language, Caleb Druckemiller Apr 2020

Context Aware Data Generation Through Domain Specific Language, Caleb Druckemiller

Other Student Works

No abstract provided.


Composition Of Atomic-Obligation Security Policies, Danielle Ferguson Apr 2020

Composition Of Atomic-Obligation Security Policies, Danielle Ferguson

USF Tampa Graduate Theses and Dissertations

There has been significant work to date on policy-specification languages that allow specification of arbitrary obligations, but there continues to exist open challenges in the composition of these arbitrary obligations, especially when obligations can be complex (i.e. consist more than one action). There are currently no solutions that allow complete and automatic resolution of conflicts between policies and other policies' obligations or that allow policies to react to the complex obligations of other policies. In particular, there is minimal work that considers the benefits and challenges of allowing complex obligations that operate in an atomic fashion, that is that execute …


Devops: Lecture 1 - "Overview", Jeremy Andrews, Nyc Tech-In-Residence Corps Apr 2020

Devops: Lecture 1 - "Overview", Jeremy Andrews, Nyc Tech-In-Residence Corps

Open Educational Resources

Overview lecture for the "DevOps" course delivered at the City College of New York in Spring 2020 by Jeremy Andrews as part of the Tech-in-Residence Corps program.


Devops: Architecting Your Infrastructure (Syllabus), Jeremy Andrews, Nyc Tech-In-Residence Corps Apr 2020

Devops: Architecting Your Infrastructure (Syllabus), Jeremy Andrews, Nyc Tech-In-Residence Corps

Open Educational Resources

Syllabus for the "DevOps" course delivered at the City College of New York in Spring 2020 by Jeremy Andrews as part of the Tech-in-Residence Corps program.


Assessment Of Environmental Factors Affecting Software Reliability: A Survey Study, Alper Özcan, Çağatay Çatal, Cengi̇z Toğay, Bedi̇r Teki̇nerdoğan, Emrah Dönmez Jan 2020

Assessment Of Environmental Factors Affecting Software Reliability: A Survey Study, Alper Özcan, Çağatay Çatal, Cengi̇z Toğay, Bedi̇r Teki̇nerdoğan, Emrah Dönmez

Turkish Journal of Electrical Engineering and Computer Sciences

Currently, many systems depend on software, and software reliability as such has become one of the key challenges. Several studies have been carried out that focus on the impact of external environmental factors that impact software reliability. These studies, however, were all carried out in the same geographical context. Given the rapid developments in software engineering, this study aims to identify and reinvestigate the environmental factors that impact software reliability by also considering a different context. The environmental factors that have an impact on software reliability as reported in earlier studies have been analyzed and synthesized. Subsequently, a survey study …


Finalcache: Eviction Based On Implicit Entry Reachability, Adrian Veliz Jan 2020

Finalcache: Eviction Based On Implicit Entry Reachability, Adrian Veliz

Open Access Theses & Dissertations

Software caches for garbage collected systems are unaware which cache entries are referenced by a client program. Lacking this key information, software caches cannot determine the cache’s contribution to the program’s memory footprint. Furthermore, their eviction heuristics must rely on access history as a proxy for usage. Divergence between usage and access history can undermine the intention of eviction thereby resulting in problematic cache behavior.

This dissertation proposes designs for a novel family of “usage-based” software cache informed of entry reachability by the automatic memory management system. Unlike extant software caches, usage-based caches can accurately determine their memory footprint because …


A Template-Based Code Generator For Web Applications, Burak Uyanik, Veysel Harun Şahi̇n Jan 2020

A Template-Based Code Generator For Web Applications, Burak Uyanik, Veysel Harun Şahi̇n

Turkish Journal of Electrical Engineering and Computer Sciences

The importance and usage of web applications grow every day. Today from small businesses to large-scale corporations, many institutions prefer web applications for both their internal and external services. Code size and complexity of these kinds of applications grow rapidly. This brings up the question of how to improve the development process of web applications. A solution can be to use code generators. This paper introduces a template-based code generator to improve the development process of web applications. The code generator was developed and integrated into a real-life web application. Today, the web application together with the code generator is …


How Does Machine Learning Change Software Development Practices?, Zhiyuan Wan, Xin Xia, David Lo, Gail C. Murphy Aug 2019

How Does Machine Learning Change Software Development Practices?, Zhiyuan Wan, Xin Xia, David Lo, Gail C. Murphy

Research Collection School Of Computing and Information Systems

Adding an ability for a system to learn inherently adds uncertainty into the system. Given the rising popularity of incorporating machine learning into systems, we wondered how the addition alters software development practices. We performed a mixture of qualitative and quantitative studies with 14 interviewees and 342 survey respondents from 26 countries across four continents to elicit significant differences between the development of machine learning systems and the development of non-machine-learning systems. Our study uncovers significant differences in various aspects of software engineering (e.g., requirements, design, testing, and process) and work characteristics (e.g., skill variety, problem solving and task identity). …


Tests As Maintainable Assets Via Auto-Generated Spies: A Case Study Involving The Scala Collections Library's Iterator Trait, Konstantin Läufer, John O'Sullivan, George K. Thiruvathukal Jul 2019

Tests As Maintainable Assets Via Auto-Generated Spies: A Case Study Involving The Scala Collections Library's Iterator Trait, Konstantin Läufer, John O'Sullivan, George K. Thiruvathukal

Computer Science: Faculty Publications and Other Works

In testing stateful abstractions, it is often necessary to record interactions, such as method invocations, and express assertions over these interactions. Following the Test Spy design pattern, we can reify such interactions programmatically through additional mutable state. Alternatively, a mocking framework, such as Mockito, can automatically generate test spies that allow us to record the interactions and express our expectations in a declarative domain-specific language. According to our study of the test code for Scala’s Iterator trait, the latter approach can lead to a significant reduction of test code complexity in terms of metrics such as code size (in some …


Single Image Reflection Removal Beyond Linearity, Qiang Wen, Yinjie Tan, Jing Qin, Wenxi Liu, Guoqiang Han, Shengfeng He Jun 2019

Single Image Reflection Removal Beyond Linearity, Qiang Wen, Yinjie Tan, Jing Qin, Wenxi Liu, Guoqiang Han, Shengfeng He

Research Collection School Of Computing and Information Systems

Due to the lack of paired data, the training of image reflection removal relies heavily on synthesizing reflection images. However, existing methods model reflection as a linear combination model, which cannot fully simulate the real-world scenarios. In this paper, we inject non-linearity into reflection removal from two aspects. First, instead of synthesizing reflection with a fixed combination factor or kernel, we propose to synthesize reflection images by predicting a non-linear alpha blending mask. This enables a free combination of different blurry kernels, leading to a controllable and diverse reflection synthesis. Second, we design a cascaded network for reflection removal with …


Comparing The Popularity Of Testing Career Among Canadian, Chinese, And Indian Students, Luiz Fernando Capretz, Pradeep Waychal, Jingdong Jia May 2019

Comparing The Popularity Of Testing Career Among Canadian, Chinese, And Indian Students, Luiz Fernando Capretz, Pradeep Waychal, Jingdong Jia

Electrical and Computer Engineering Publications

Despite its importance, software testing is, arguably, the least understood part of the software life cycle and still the toughest to perform correctly. Many researchers and practitioners have been working to address the situation. However, most of the studies focus on the process and technology dimensions and only a few on the human dimension of testing, in spite of the reported relevance of human aspects of software testing. Testers need to understand various stakeholders’ explicit and implicit requirements, be aware of how developers work individually and in teams, and develop skills to report test results wisely to stakeholders. These multifaceted …


Multiplatform Application Development For Android And Java, Yoonsik Cheon Apr 2019

Multiplatform Application Development For Android And Java, Yoonsik Cheon

Departmental Technical Reports (CS)

Software developers of today are under increasing pressure to support multiple platforms, in particular mobile platforms. However, developing a multiplatform application is difficult and challenging due to a variety of platform differences. We propose a native approach for developing a multiplatform application running on two similar but different platforms, Java and Android. We address practical software engineering concerns attributed to native multiplatform application development, from configuration of tools to software design and development process. Our approach allows one to share 37%~40% of application code between the two platforms as well as improving the quality of the application. We believe our …


Prioritizing Interdependent Software Requirements Using Tensor And Fuzzy Graphs, Negin Misaghian, Homayun Motameni, Mohsen Rabbani Jan 2019

Prioritizing Interdependent Software Requirements Using Tensor And Fuzzy Graphs, Negin Misaghian, Homayun Motameni, Mohsen Rabbani

Turkish Journal of Electrical Engineering and Computer Sciences

Owing to the special stance of prioritizing tasks in requirements engineering processes, and as the requirements are not independent in nature, considering their dependencies is essential during the prioritizing process. Although different classifications of dependency types among requirements exist, only a few approaches in the prioritization process consider such valuable data (dependency among equirements). To achieve a practical prioritization, this study proposes a method based on the effects of the requirement dependencies (increase/decrease cost of) on the value of prioritization provided by the tensor concept. Since the strengths of dependencies are also influential factors in the act of prioritization, The …


Mobile-Cloud Cross Development (Mcx), Sachin Ahuja Nov 2018

Mobile-Cloud Cross Development (Mcx), Sachin Ahuja

International Journal of Business and Technology

There is a multitude of Mobile Operating Systems (MOSs) with iOS, Android, Windows Phone and, BlackBerry leading the space. New players continue to enter the market. Without a de-facto leader in this space, it has become necessary for businesses & developers to target multiple devices & MOSs in order to establish a relevant presence within their target audience. Cross-platform Mobile Development Tools (XMTs) were born out of this need to reduce developer effort in creating mobile applications by providing “write once run anywhere” (WORA) functionality. However, most of these tools sacrifice performance, features or maintainability in order to provide WORA …


Recommending Who To Follow In The Software Engineering Twitter Space, Abhabhisheksh Sharma, Yuan Tian, Agus Sulistya, Dinusha Wijedasa, David Lo Nov 2018

Recommending Who To Follow In The Software Engineering Twitter Space, Abhabhisheksh Sharma, Yuan Tian, Agus Sulistya, Dinusha Wijedasa, David Lo

Research Collection School Of Computing and Information Systems

With the advent of social media, developers are increasingly using it in their software development activities. Twitter is one of the popular social mediums used by developers. A recent study by Singer et al. found that software developers use Twitter to “keep up with the fast-paced development landscape.” Unfortunately, due to the general-purpose nature of Twitter, it’s challenging for developers to use Twitter for their development activities. Our survey with 36 developers who use Twitter in their development activities highlights that developers are interested in following specialized software gurus who share relevant technical tweets.To help developers perform this task, in …


A Survey Of Software Metric Use In Research Software Development, Nasir U. Eisty, George K. Thiruvathukal, Jeffrey C. Carver Oct 2018

A Survey Of Software Metric Use In Research Software Development, Nasir U. Eisty, George K. Thiruvathukal, Jeffrey C. Carver

Computer Science: Faculty Publications and Other Works

Background: Breakthroughs in research increasingly depend on complex software libraries, tools, and applications aimed at supporting specific science, engineering, business, or humanities disciplines. The complexity and criticality of this software motivate the need for ensuring quality and reliability. Software metrics are a key tool for assessing, measuring, and understanding software quality and reliability. Aims: The goal of this work is to better understand how research software developers use traditional software engineering concepts, like metrics, to support and evaluate both the software and the software development process. One key aspect of this goal is to identify how the set of metrics …


Csc 59939 Topics In Modern Software Engineering, Nikolai Avteniev, Nyc Tech-In-Residence Corps Oct 2018

Csc 59939 Topics In Modern Software Engineering, Nikolai Avteniev, Nyc Tech-In-Residence Corps

Open Educational Resources

No abstract provided.


Csc 322 Software Engineering, William Chan, Nyc Tech-In-Residence Corps Oct 2018

Csc 322 Software Engineering, William Chan, Nyc Tech-In-Residence Corps

Open Educational Resources

No abstract provided.


Csci 39549 Agile Software Development, Arylee Mcsweany, Rebecca Sliter, Nyc Tech-In-Residence Corps Oct 2018

Csci 39549 Agile Software Development, Arylee Mcsweany, Rebecca Sliter, Nyc Tech-In-Residence Corps

Open Educational Resources

No abstract provided.


Detecting Saliency By Combining Speech And Object Detection In Indoor Environments, Kiran Thapa Aug 2018

Detecting Saliency By Combining Speech And Object Detection In Indoor Environments, Kiran Thapa

Boise State University Theses and Dissertations

Describing scenes such as rooms, city streets, or routes, is a very common human task that requires the ability to identify and describe the scene sufficiently for a hearer to develop a mental model of the scene. When people talk about such scenes, they mention some objects of the scene at the exclusion of others. We call the mentioned objects salient objects as people consider them noticeable or important in comparison to other non-mentioned objects. In this thesis, we look at saliency of visual scenes and how visual saliency informs what can and should be said about a scene when …


Csci 49900 Advanced Applications: A Capstone Course For Csci Majors, Alejandro Gonzalez Sole, Jesse Greenberg, James Lin, Sabeena Lalwani, Sean Laude, Sid Wighe, Nyc Tech-In-Residence Corps Apr 2018

Csci 49900 Advanced Applications: A Capstone Course For Csci Majors, Alejandro Gonzalez Sole, Jesse Greenberg, James Lin, Sabeena Lalwani, Sean Laude, Sid Wighe, Nyc Tech-In-Residence Corps

Open Educational Resources

No abstract provided.


Artificial Intelligence And It Professionals, Sunil Mithas, Thomas Kude, Jonathan W. Whitaker Jan 2018

Artificial Intelligence And It Professionals, Sunil Mithas, Thomas Kude, Jonathan W. Whitaker

Management Faculty Publications

How will continuing developments in artificial intelligence (AI) and machine learning influence IT professionals? This article approaches this question by identifying the factors that influence the demand for software developers and IT professionals, describing how these factors relate to AI, and articulating the likely impact on IT professionals.


Mining Implicit Design Templates For Actionable Code Reuse, Yun Lin, Guozhu Meng, Yinxing Yue, Zhenchang Xing, Jun Sun, Xin Peng, Yang Liu, Wenyun Zhao, Jin Song Dong Nov 2017

Mining Implicit Design Templates For Actionable Code Reuse, Yun Lin, Guozhu Meng, Yinxing Yue, Zhenchang Xing, Jun Sun, Xin Peng, Yang Liu, Wenyun Zhao, Jin Song Dong

Research Collection School Of Computing and Information Systems

In this paper, we propose an approach to detecting project-specific recurring designs in code base and abstracting them into design templates as reuse opportunities. The mined templates allow programmers to make further customization for generating new code. The generated code involves the code skeleton of recurring design as well as the semi-implemented code bodies annotated with comments to remind programmers of necessary modification. We implemented our approach as an Eclipse plugin called MICoDe. We evaluated our approach with a reuse simulation experiment and a user study involving 16 participants. The results of our simulation experiment on 10 open source Java …


Classification-Based Parameter Synthesis For Parametric Timed Automata, Jiaying Li, Jun Sun, Bo Gao, Étienne Andre Nov 2017

Classification-Based Parameter Synthesis For Parametric Timed Automata, Jiaying Li, Jun Sun, Bo Gao, Étienne Andre

Research Collection School Of Computing and Information Systems

Parametric timed automata are designed to model timed systems with unknown parameters, often representing design uncertainties of external environments. In order to design a robust system, it is crucial to synthesize constraints on the parameters, which guarantee the system behaves according to certain properties. Existing approaches suffer from scalability issues. In this work, we propose to enhance existing approaches through classification-based learning. We sample multiple concrete values for parameters and model check the corresponding non-parametric models. Based on the checking results, we form conjectures on the constraint through classification techniques, which can be subsequently confirmed by existing model checkers for …


Apibot: Question Answering Bot For Api Documentation, Yuan Tian, Ferdian Thung, Abhishek Sharma, David Lo Nov 2017

Apibot: Question Answering Bot For Api Documentation, Yuan Tian, Ferdian Thung, Abhishek Sharma, David Lo

Research Collection School Of Computing and Information Systems

As the carrier of Application Programming Interfaces (APIs) knowledge, API documentation plays a crucial role in how developers learn and use an API. It is also a valuable information resource for answering API-related questions, especially when developers cannot find reliable answers to their questions online/offline. However, finding answers to API-related questions from API documentation might not be easy because one may have to manually go through multiple pages before reaching the relevant page, and then read and understand the information inside the relevant page to figure out the answers. To deal with this challenge, we develop APIBot, a bot that …


Improving Probability Estimation Through Active Probabilistic Model Learning, Jingyi Wang, Xiaohong Chen, Jun Sun, Shengchao Qin Nov 2017

Improving Probability Estimation Through Active Probabilistic Model Learning, Jingyi Wang, Xiaohong Chen, Jun Sun, Shengchao Qin

Research Collection School Of Computing and Information Systems

It is often necessary to estimate the probability of certain events occurring in a system. For instance, knowing the probability of events triggering a shutdown sequence allows us to estimate the availability of the system. One approach is to run the system multiple times and then construct a probabilistic model to estimate the probability. When the probability of the event to be estimated is low, many system runs are necessary in order to generate an accurate estimation. For complex cyber-physical systems, each system run is costly and time-consuming, and thus it is important to reduce the number of system runs …


A Semantics Comparison Workbench For A Concurrent, Asynchronous, Distributed Programming Language, Claudio Corrodi, Alexander Heußner, Christopher M. Poskitt Nov 2017

A Semantics Comparison Workbench For A Concurrent, Asynchronous, Distributed Programming Language, Claudio Corrodi, Alexander Heußner, Christopher M. Poskitt

Research Collection School Of Computing and Information Systems

A number of high-level languages and libraries have been proposed that offer novel and simple to use abstractions for concurrent, asynchronous, and distributed programming. The execution models that realise them, however, often change over time---whether to improve performance, or to extend them to new language features---potentially affecting behavioural and safety properties of existing programs. This is exemplified by SCOOP, a message-passing approach to concurrent object-oriented programming that has seen multiple changes proposed and implemented, with demonstrable consequences for an idiomatic usage of its core abstraction. We propose a semantics comparison workbench for SCOOP with fully and semi-automatic tools for analysing …