Theoretical and empirical studies of software development's role as a design discipline

  • Authors:
  • Andre Van Hoek;Alexander Thomas Baker

  • Affiliations:
  • University of California, Irvine;University of California, Irvine

  • Venue:
  • Theoretical and empirical studies of software development's role as a design discipline
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is widely accepted that creating an effective piece of software requires some degree of design. But beyond this, there are major gaps in the software engineering research community’s concept of software design. There is little consensus among researchers about the role of design in the software process, and little research has been done into how software engineers, in practice, actually design. The work presented in this dissertation aims to help remedy this state of affairs, employing two main approaches.The first is theoretical: this dissertation begins with a framework for explaining design as it exists across various design disciplines. This framework is then applied to software design. The model presented here is unusual in that the entirety of the software development process, from the conception of the program to its retirement, is cast as a single, unified design process. Using this design-oriented perspective on software development, several existing software process models are reconsidered and compared, and observations about the nature of the software product are made.The second approach is empirical: this dissertation presents three studies of software designers in action. Two of these studies focus on professional software designers, who were asked to create a high-level design for a traffic simulation program. The third study examines a group of novice software designers who worked on the same problem, and compares their processes to those exhibited by the professional designers. Observations about the designers’ work are presented, and several techniques for analyzing and visualizing software design processes are also demonstrated.This dissertation aims to spur the study of software engineering as a design discipline. Its primary contributions include a novel framework for considering design in general, a new, design-oriented perspective on the software development process, a rich set of observations about the processes employed by expert and novice software designers, and numerous examples of analytical methods and visualization techniques that can be used to study software design.