A "refinement" is a functionality addition to a software project that can affect multiple dispersed implementation entities (functions, classes, etc.). In this paper, we...
Much of what we know about how programmers refactor in the wild is based on studies that examine just a few software projects. Researchers have rarely taken the time to replicate ...
Emerson R. Murphy-Hill, Chris Parnin, Andrew P. Bl...
This paper discusses the use of C++ for the design of digital systems. The paper distinguishes a number of different approaches towards the use of programming languages for digita...
Diederik Verkest, Joachim Kunkel, Frank Schirrmeis...
Abstract. We study two textbooks for teaching undergraduate softineering, both focusing on software design and data abstraction in particular. We describe the differences in their...
Relationships between objects are almost as important to designs as the objects themselves. Most programming languages do not support relationships well, so programmers must imple...