IPMP, Insect Pest Management on Peppermint, provides the user with information for managing insects on peppermint. The program includes information on insect identification, life cycles, sampling methods, treatment thresholds, and registered insecticides.
Published June 1986. Facts and recommendations in this publication may no longer be valid. Please look for up-to-date information in the OSU Extension Catalog: http://extension.oregonstate.edu/catalog
Published April 1991. Facts and recommendations in this publication may no longer be valid. Please look for up-to-date information in the OSU Extension Catalog: http://extension.oregonstate.edu/catalog
Published February 1991. Facts and recommendations in this publication may no longer be valid. Please look for up-to-date information in the OSU Extension Catalog: http://extension.oregonstate.edu/catalog
Published April 1991. Facts and recommendations in this publication may no longer be valid. Please look for up-to-date information in the OSU Extension Catalog: http://extension.oregonstate.edu/catalog
This is a program that searches for reduced spherical pictures over 1-generator, 1-relator relative group presentations with finite cyclic coefficient group. The search is depth-first and builds pictures face-by-face using a prescribed order. This program was written as part of Matthias Merzenich's PhD research. More details are available in the...
OSU commencement ceremonies for undergraduate and graduate students in 2001 (June 17), 2002 (16 June), and 2003 (15 June). In 2001, the graduate ceremony was held in the LaSells Stewart Center and the undergraduate ceremony at Reser Stadium; this was the first outdoor commencement ceremony to be held at OSU....
A bad software development process leads to wasted effort and inferior products. In order to improve a software process, it must be first understood. In this work I focus on understanding software processes.
The first process we seek to understand is Continuous Integration (CI). CI systems automate the compilation, building,...
Researchers have hypothesized that if we could estimate the probability that a fault in a code component will a cause a failure, we could use this estimate to improve the fault-detection effectiveness of code-coverage-based testing. If this hypothesis could be supported, it would motivate further research in this area and...
We present a meta-model as a process maturity framework that can be effectively used to
identify the key practices to initiate and sustain a software process improvement effort
focused on a single process area. Our approach moves away from the overall software
development process and computation of maturity levels and...
"Code coverage visualizations using block coverage neither guided developers
toward productive testing strategies, nor did these visualizations motivate
developers to write more tests or help them find more faults than the control
group. Nevertheless, code coverage visualizations did influence developers in a
few important ways. Code coverage visualizations led developers...
Professional software developers do not test code adequately, even though testing tools are widely available. Until developers realize the deficiencies in their tests, inadequate testing of software seems likely to remain a major problem. To support developers writing tests, industry and researchers have proposed systems that visualize “testedness” for end-user...
Test case prioritization techniques schedule test cases for regression testing in an order that increases their ability to meet some performance goal. One performance goal, rate of fault detection, measures how quickly faults are detected within the testing process. The APFD metric had been proposed for measuring the rate of...
Prioritization techniques are used to schedule test cases to execute in a specific order to maximize some objective function. There are a variety of possible objective functions, such as a function that measures how quickly faults can be detected within the testing process, or a function that measures how fast...
Distributed Version Control Systems (DVCS) have seen an increase in popularity relative to traditional Centralized Version Control Systems (CVCS). Yet we know little on whether developers are benefitting from the extra power of DVCS. Without such knowledge, researchers, developers, tool builders, and team managers are in the danger of making...
Software (OSS) communities and that women disproportionately experience such barriers. However, this research has focused mainly on social/cultural factors, ignoring the environment itself — the tools and infrastructure. To shed some light onto how tools and infrastructure might somehow factor into OSS barriers to entry, we conducted a field study...
Software developers frequently need to perform code maintenance tasks, but doing so requires time-consuming navigation through code. A variety of tools are aimed at easing this navigation by using models to predict places in the code that a developer might want to visit, and then providing shortcuts so that the...
In a software development cycle, programs go through many iterations. Identifying and
understanding program changes is a tedious but necessary task for programmers, especially when
software is developed in a collaborative environment. Existing tools used by the programmers
either lack in finding the structural differences, or report the differences as...
Despite software history being indispensable for developers, there is little empirical knowledge about how they examine software history. Without such knowledge, researchers and tool builders are in danger of making wrong assumptions and building inadequate tools.
In this paper we present an in-depth empirical study about the motivations developers have...
Conversion of software written for one machine or
operating system to equivalent software for another machine
or operating system is shown to be economically attractive
using source-to-source translation. The features of an
automatic converter are described using a Pascal-to-C
translater as an example. Solutions to the problems of
denesting procedures,...
Successful software systems evolve over their lifetimes through the cumulative changes made by software maintainers. As software evolves, the problems resulting from software change worsen, exacerbated by increased system size and complexity, lack of program understanding, amount of effort required to make changes, and number of personnel involved. Experience shows...
With the current security climate throughout the Internet, a large emphasis is being placed on protecting software systems from attack by a malicious entity. Most successful attacks against software are the result of lazy or misinformed developers and are easily prevented given the correct preparation and instruction. This document provides...
Environmental scientists, land managers, and policy actors are increasingly presented with high-stakes high-uncertainty problems stemming from human-ecosystem interactions. To help address these problems, scientists frequently use models that produce enormous geospatial and temporal datasets that are constantly modified and often seek input from communities outside their discipline. To assist scientists—as...
Merge conflicts have long plagued software development. With larger and more dispersed teams comes greater risk of developers working on the same code at the same time. While merge conflicts are known to be painful, their exact impact on software is still largely unknown. Are merge conflicts an isolated problem,...
Visual information presented in diagrams promotes information processing both in an individual and in collaborative work. Previous literature has identified the role of diagrams in
understanding information processing in a variety of disciplines. In software engineering, diagrams are a prevalent method involved in process development: diagrams are used for system...
Software testing is of critical importance for the success of software projects. Current inefficient testing methods often still take up half or more of a software project's budget. Automatic test data generation is the most promising way to lower the software testing cost. Manually creating testing data is expensive and...
Software maintenance is an expensive part of the software lifecycle: estimates put its cost at up to two-thirds of the entire cost of software. Regression testing, which tests software after it has been modified to help assess and increase its reliability, is responsible for a large part of this cost....
Inclusive design is important in today's software industry, but there is little research about how to teach it. In collaboration with 9 teacher-researchers across 8 U.S. universities and more than 400 computer and information science students, we embarked upon an Action Research investigation to gather insights into the pedagogical content...
Software maintenance accounts for a large portion of the software development cost, particularly the process of updating programs either to adapt for requirement change or to enhance design or efficiency. Currently, program updates are generally performed manually by programmers using text editors. This is an unreliable
method because syntax and...
The practice of literate programming is not widespread because existing literate programming systems have some undesirable characteristics such as programming language and text processor dependence and lack of flexible tools for viewing and manipulation of the source file. This dissertation describes the literate programming system AOPS (Abstraction Oriented Programming System)...
Active participation and collaboration of community members are crucial to the continuation and expansion of open source software projects. Researchers have recognized the value of community in open source development and studied various aspects of it including structure of communities, motivations for participation, and collaboration among members. However, the majority...
This article describes the motivation, design, and progress of the Journal of Open Source Software (JOSS). JOSS is a free and open-access journal that publishes articles describing research software. It has the dual goals of improving the quality of the software submitted and providing a mechanism for research software developers...
Appropriate representations of variational software simplify the analysis of their properties.This thesis proposes tailored representations of two kinds variational softwares: difference files of merge commits in Git and feature models. For the former, we use the Choice Edit Model, which is based on the choice calculus, to represent changes introduced...
Continuous integration (CI) systems automate the compilation, building, and testing of software. Despite CI being one of the most widely used processes in software engineering, we do not know what motivates developers to use CI, and what barriers and unmet needs they face. Without such knowledge developers make easily avoidable...
I introduce a compositional approach to application software development. In this approach, an extended entity-relationship diagram (EERD), which represents the component types and the relationship types within an application domain, is used as a template of executable programs in that application domain. As we use structural active objects as the...
This document describes the need for, and design of, diagnostic software that provides circuit verification, fault isolation, and troubleshooting aids. The difference between verification software and true diagnostic software is explained. A modular design of diagnostic software is proposed, consisting of a series of 3-part tests, a test manager, results...
Timing attacks enable an attacker to extract secret information from a cryptosystem by observing timing differences with respect to different inputs given to an encryption or decryption algorithm. Werner Schindler has proposed a timing attack on smart card devices. We implemented this attack based on the same approach for RSA...
This study describes the software metrics analysis of IO releases of an embedded real-time telephone switching system developed by a German telecommunications firm. The micro-controlled application was written in a C-like macro assembly language. We developed a metrics program that computes the standard complexity metrics plus a number of information...
Three block ciphers are considered to determine how well they can be
implemented on existing superscalar architectures such as the Intel Pentium.
An examination of the Pentium architecture suggests that substantial
performance increases can be achieved if particular rules are followed.
Software libraries are written in high-level C language and...
Relational database systems have successfully solved many
business data processing problems. The primary reason of this
success is that the relational data model provides a simple, yet
flexible view of data as tables. In studying VLSI/CAD data, we noticed
that they are often represented in formats similar to relational
tuples....
This paper develops a new model of software maintenance based upon an objective decision rule which determines whether a given software module can be effectively modified, or if it should instead be rewritten. Completely rewriting a module can be expensive, but it can be even more expensive if the module's...
Software Configuration Management (SCM) is a concept of trying to group the changing artifacts of software development to try to manage the complexity of modern day software. This paper provides a roadmap for improving the SCM support process based on a meta-model. I developed a model that defines key practice...
Continuous integration (CI) systems automate the compilation, building, and testing of software. Despite CI rising as a big success story in automated software engineering, it has received almost no attention from the research community. For example, how widely is CI used in practice, and what are some costs and benefits...
A cost reduction analysis is performed by coordinating
the exchange of LANDSAT (formerly ERTS) data between a CDC
3300 and a PDP8/L minicomputer. The LANDSAT data is displayed
on a 4002 Tektronix terminal by means of a grayscale output.
Large amounts of data and number manipulation are processed
in the...
Regression testing is an expensive testing process used to validate changes made to previously tested software. Different regression testing techniques can have different impacts on the cost-effectiveness of testing. This cost-effectiveness can also vary with different characteristics of test suites. One such characteristic, test suite granularity, reflects the way in...
Researchers/engineers in the field of software testing have valued coverage as a testing metric for decades now. There have been various empirical results that have shown that as coverage increases the ability of the test program to detect a fault also increases. As a result numerous coverage techniques have been...
Distributed version control allows developers to manage software evolution among distributed development teams. But it does not eliminate all consistency and concurrency issues, and instead introduces additional complexity when merging code. And resolving merge conflicts is nontrivial when automated merging fails. In such cases, developers are forced to inspect the...
End users create software when they use spreadsheet systems, web authoring tools and graphical languages, and when they create educational simulations, macros-by-demonstration, and dynamic e-business web applications and mash-ups. Some end-user developers, such as accountants or teachers, may have no formal training at all in programming. Others, such as scientists...
As the design of computers advances, two important trends have surfaced: The exploitation of parallelism and the design against memory latency. Into these two new trends has come the Multithreaded Virtual Processor (MVP). Based on a standard superscalar core, the MVP is able to exploit both Instruction Level Parallelism (ILP)...
Advanced computer architectures are centered around the parallel computer systems. This project is focused on the experiment on two parallel computer architectures : Sequent Balance 21000 shared memory multiprocessor and Cogent XTM distributed system.
A set of benchmark programs are implemented using "C" language and Dynix parallel programming library on...
Free and open source software (FOSS) projects primarily rely on the efforts of volunteer contributors from around the world. For this reason, recruiting and retaining contributor is vital to the sustainability and growth of FOSS projects. This notion became the jumping-off point for this three-part investigation into the cultural structure...
Keeping FOSS developers motivated is a challenging problem, and their motivation levels can affect the team's productivity and satisfaction, leading to higher or lower productivity. Using reputation systems as a motivator has become the de-facto standard for many online communities, rewarding user's activity through badges of honor or achievement levels....
Application Stores, such as the iTunes App Store, give developers access to their users’ complaints and requests in the form of application reviews. However, little is known about how developers are responding to application reviews. Without such knowledge developers, users, Application Stores, and researchers could make incorrect assumptions. To address...
Open Source software gives users the freedom to copy, modify and redistribute source code without legal entanglements. The evolution of these software communities usually depend a lot on how the participating developers and users interact and co-operate with each other. Over the past few years, open source software have become...
Although there has been significant research into gender regarding educational and workplace
practices, there has been little awareness of gender differences as they pertain to software tools,
such as spreadsheet applications, that try to support end users in problem-solving tasks. Although
such software tools are intended to be gender agnostic,...
The main goal of automated test generation is to improve the reliability of a program by exposing faults to developers. To this end, testing should cover the largest possible portion of the program given a test budget (i.e., time and resources) as frequently as possible. Coverage of a program entity...
Regression testing is an expensive software engineering activity intended to provide confidence that modifications to a software system have not introduced faults. Test case prioritization techniques help to reduce regression testing cost by ordering test cases in a way that better achieves testing objectives. In this thesis, we are interested...
Computers have made a great contribution to the
design process in various applications, such as design
analysis and simulation. A new technology called
Computer-aided design (CAD) has helped the designer to
design and build very intricate systems.
While most of CAD software is run on workstations or
microcomputers with one...
Windows Exploratory Testing (WET) is examined to determine whether testers working in pairs produce higher quality results, are more productive, or exhibit greater confidence and job satisfaction than testers working alone. WET is a form of application testing where a tester (or testers) explores an unknown application to determine the...
Programmers often have to choose components online for reuse based on software quality. To help with this choice, most component repositories (SourceForge, CodeProject, etc.) provide information such as user ratings and reviews of components. However, the reusability of components is not immediately obvious from
this material. To make things worse,...
Free / Open Source Software developers come from a myriad of different backgrounds. While some contribute for personal reasons, many become involved because they receive compensation from corporations or foundations. The motivation for participating in a project can have dramatic impacts on how and what contribution an individual makes. These...
The sketching software developed in this thesis, is aimed to serve as an intelligent design tool for the conceptual design stage of the mechanical design process. This sketching software, Sketch Pad for Windows, closely mimics the traditional paper-and-pencil sketching environment by allowing the user to sketch freely on the computer...
The project (partially) described in this paper was the result of an attempt by the Navy to use software complexity metrics to assess the complexity of Naval avionics software. In particular, the project consisted of computing a variety of software complexity metrics for CMS-2M and AYK-14 assembler source code and...
Current software development practices leave a plethora of activities that are archived in version control systems, issue trackers, mailing lists, or Question and Answer (Q&A) forums. Software managers are increasingly using these online activities to better evaluate job candidates. We introduce our tool, Visual Resume, that displays visual overviews of...
Maintaining variation in software is a difficult problem that poses serious challenges for the understanding and editing of software artifacts. Although the C preprocessor (CPP) is often the default tool used to introduce variability to software, because of its simplicity and flexibility, it is infamous for its obtrusive syntax and...
A bad software development process leads to wasted effort and inferior products. In order to improve a software process, it is important to first understand it. Our unique approach in this paper is to use code and test changes to understand conformance to a process. We analyze the meaning of...
ThermoSolver is an educational thermodynamics software program designed to be both
easy to use and useful in that it permits the user to make nontrivial chemical engineering
thermodynamic calculations. The software program accompanies the textbook
Engineering and Chemical Thermodynamics by Milo Koretsky, and is available for free
download from the...
Arash is a rule-based tool for re-structuring source programs in order to build software systems from reusable components. Arash incorporates a collection of Generalizers which transform source code modules into abstracted modules. Conversely, a collection of Refiners produce a concrete instance from an abstracted source module . Both Generalizers and...
Preventative methods for software reverse engineering have been given greater attention in recent times due to the increase in computational resources and tools available to the public. The inherent security provided by encoding source into machine code (executable form) can no longer be assumed, given the availability of effective automated...
Software-Defined Networking (SDN) is a new networking
paradigm that decouples the forwarding and control planes—
traditionally being coupled with one another—while adopting a
logically centralized architecture aiming to increase network agility
and programability. While many efforts are currently being made
to standardize this emerging paradigm, careful attentions need to
be...
An age-wave is upon us where many older adults are reaching retirement. Technically experienced older adults have skills that could be directly applied to free/open source software (FOSS) communities, such as project management, programming, and/or knowledge of a rapidly growing end-user population. FOSS is a widely popular, low-cost way to...
Software testing is a very important task during software development and it can be used to improve the quality and reliability of the software system. One potential way to reduce the cost and increase the efficiency of software testing is to generate test data automatically. Search-based approaches successfully generate unit...
Background: Although some previous research has found ways to find inclusivity bugs (biases in software that introduce inequities among cognitively diverse individuals), little attention has been paid to how to go about fixing such bugs. We hypothesized that Information Architecture (IA)--the way information is organized, structured and labeled--may provide the...
The design of programming tools is slow and costly. To ease this process, we have developed a design pattern catalog aimed at providing guidance about how to design tools for developers. This guidance is grounded in Information Foraging Theory (IFT), which empirical studies have shown to be useful for understanding...
Reinforcement learning in real-world domains suffers from three curses of dimensionality: explosions in state and action spaces, and high
stochasticity or "outcome space" explosion. Multiagent domains are particularly susceptible to these problems. This thesis describes ways to mitigate these curses in several different multiagent domains, including real-time delivery of products...
To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android provides several async constructs that developers can use. However, developers can still use the inappropriate async constructs, which result in memory leaks, lost results, and wasted energy. Fortunately, refactoring tools can eliminate these problems by transforming async...
Trials to achieve optimal bucking were made with updated OSU-BUCK software in an eastern and a western Oregon location during the summers of 1993 and 1994. The commercial version of the software allows tagging of each log with bar-code identification numbers and therefore provides tracking from stump to customer. Data...
Although gender differences in a technological world are receiving significant research attention, much of the research and practice has aimed at how society and education can impact the successes and retention of female computer science professionals—but the possibility of gender issues within software has received almost no attention. If gender...
Free/Open Source Software (FOSS) communities often use open bug reporting to allow users to participate by reporting bugs. This practice can lead to more duplicate reports, as inexperienced users can be less rigorous about researching existing bug reports. The purpose of this research is to determine the extent of this...
Previous research has revealed gender differences that impact females’ willingness to adopt software features in end users’ programming environments. Since these features have separately been shown to help end users problem solve, it is important to female end users’ productivity that we find ways to make these features more acceptable...
Professional software engineers have an arsenal of techniques such as unit testing and assertions to check their specifications, but these techniques require tools, motivation, experience and training that programmers without professional software engineering training may not have. As a result, professionals in other fields, such as scientific modelers, face greater...
This grant supported acquisition of a minicomputer system for departmental research. The equipment selected is a DEC VAX-11/750 system, installed in remodeled space in the Computer Science (formerly Farm Crops) Building. Grant funds for equipment acquisition were supplemented by support from the Tektronix Foundation.
After completion of the physical facilities...
This thesis details the applications of a new method of agent-based structure synthesis. The goal of this research is to create structures that meet a structural goal within a simulated physics environment. The method proposed works as an iterative process of changing the structure, evaluating the new structure and using...
Computing agents require state information to make coherent and useful decisions. A state representation is a numerical translation of the environment and conditions that are pertinent factors in an agent's decision making. Although many representations, when paired with clever learning algorithms, are able to coordinate and capture prey in specific...
Coordination in large multiagent systems in order to achieve a system level goal is a critical challenge. Given the agents' intention to cooperate, there is no guarantee that the agent actions will lead to good system objective especially when the system becomes large. One of the primary difficulties in such...
How might capabilities for algorithm animation be seamlessly integrated into a programming language that is both visual and declarative? Until now, visual programming language researchers have not attempted to answer that question, making the fruits of algorithm animation available only to users of textual progranming languages. Users of visual programming...
A video server is the multimedia equivalent of a data file server. As video goes digital video servers that support digital media are required for production and broadcasting in television companies. Grass Valley Group provides comprehensive digital video solutions through a range of video servers called Profiles.
The Profile Media...
Software development has been characterized by severe schedule slippage, cost overrun and the inability of the developer to estimate with acceptable accuracy the resources and schedule required early in the requirements analysis and functional design phase when critical investment decisions must be made. This estimation difficulty has emerged as one...
Several problems with user interface design and implementation have been identified: (1) user interfaces are difficult and time-consuming to design and implement; (2) most user interface management systems (UIMS) are themselves difficult to use by a programmer; (3) UIMS's have not been integrated with other tools that support structured design,...
This study concentrates on threshold values for the two most popular control flow metrics: McCabe's cyclomatic complexity and the knot count. We describe the results of an experimental study to empirically determine a threshold value for knot count for student programmers. The experiment was designed to measure the interaction between...
In today’s world, we are highly dependent on software systems together with devices for almost every task in our day to day life. Software system upgrades are released whenever it is necessary to accommodate the ever-changing user’s needs. The devices we use to run the software systems might be of...