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,...
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...
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...
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,...
"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...
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...
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...
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...
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...