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

Physical Sciences and Mathematics Commons

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

Articles 1 - 9 of 9

Full-Text Articles in Physical Sciences and Mathematics

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 …


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 Jun 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

George K. Thiruvathukal

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 …


Cloud Workload Allocation Approaches For Quality Of Service Guarantee And Cybersecurity Risk Management, Soamar Homsi Mar 2019

Cloud Workload Allocation Approaches For Quality Of Service Guarantee And Cybersecurity Risk Management, Soamar Homsi

FIU Electronic Theses and Dissertations

It has become a dominant trend in industry to adopt cloud computing --thanks to its unique advantages in flexibility, scalability, elasticity and cost efficiency -- for providing online cloud services over the Internet using large-scale data centers. In the meantime, the relentless increase in demand for affordable and high-quality cloud-based services, for individuals and businesses, has led to tremendously high power consumption and operating expense and thus has posed pressing challenges on cloud service providers in finding efficient resource allocation policies.

Allowing several services or Virtual Machines (VMs) to commonly share the cloud's infrastructure enables cloud providers to optimize resource …


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

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

George K. Thiruvathukal

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 …


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 …