What makes software design effective

Software design is a complex cognitive process in which decision making plays a major role, but our understanding of how decisions are made is limited, especially with regards to reasoning with design problems and formulation of design solutions. In this research, we have observed software designers at work and have analysed how they make decisions during design. We report on how factors such as design planning, design context switching, problem-solution co-evolution and the application of reasoning techniques influence software design effectiveness.

[1]  Bashar Nuseibeh,et al.  Relating software requirements and architectures using problem frames , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[2]  KrasnerHerb,et al.  A field study of the software design process for large systems , 1988 .

[3]  Muhammad Ali Babar,et al.  A survey of architecture design rationale , 2006, J. Syst. Softw..

[4]  James D. Kiper,et al.  Capturing Decisions and Rationale from Collaborative Design , 2008 .

[5]  Allen Newell,et al.  Human problem solving: The state of the theory in 1970. , 1971 .

[6]  Jonathan Evans Heuristic and analytic processes in reasoning , 1984 .

[7]  Arthur J. Cropley,et al.  Fostering the growth of high ability : European perspectives , 1996 .

[8]  Vinod Goel,et al.  The Structure of Design Problem Spaces , 1992, Cogn. Sci..

[9]  Jonathan Evans In two minds: dual-process accounts of reasoning , 2003, Trends in Cognitive Sciences.

[10]  Donald A. Schön Designing: Rules, types and worlds , 1988 .

[11]  N. Epley,et al.  The Anchoring-and-Adjustment Heuristic , 2006, Psychological science.

[12]  Mary Lou Maher,et al.  Formalising Design Exploration as Co-Evolution , 1996 .

[13]  Antony Tang,et al.  Design Reasoning Improves Software Design Quality , 2008, QoSA.

[14]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[15]  R. Yin Case Study Research: Design and Methods , 1984 .

[16]  Mary Beth Rosson,et al.  Scenario-based design , 2002 .

[17]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[18]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[19]  A. Tversky,et al.  Judgment under Uncertainty: Heuristics and Biases , 1974, Science.

[20]  Karl Josef Klauer,et al.  TEACHING INDUCTIVE THINKING TO HIGHLY ABLE CHILDREN , 1992 .

[21]  H. Rittel,et al.  Dilemmas in a general theory of planning , 1973 .

[22]  John S. Gero,et al.  An approach to the analysis of design protocols , 1998 .

[23]  T. Landauer,et al.  Handbook of Human-Computer Interaction , 1997 .

[24]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[25]  B. Csapó The Development of Inductive Reasoning: Cross-sectional Assessments in an Educational Context , 1997 .

[26]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[27]  Maryanne M. Gobble,et al.  Design Thinking , 2010, The Palgrave Encyclopedia of the Possible.

[28]  Gabriela Goldschmidt,et al.  Contents and Structure in Design Reasoning , 1998 .

[29]  Nigel Cross,et al.  Expertise in Design: an overview , 2004 .

[30]  Antony Tang,et al.  Notes on design reasoning techniques , 2010 .

[31]  Nick Hammond,et al.  Argumentation-based design rationale: what use at what cost? , 1994, Int. J. Hum. Comput. Stud..

[32]  Mike Chiasson,et al.  A model of design decision making based on empirical results of interviews with software designers , 2007, Inf. Softw. Technol..

[33]  Janet L. Kolodner,et al.  Creative Design: Reasoning and Understanding , 1997, ICCBR.

[34]  Antony Tang,et al.  Software Architecture Design Reasoning: A Case for Improved Methodology Support , 2009, IEEE Software.

[35]  A. Tversky,et al.  Rational choice and the framing of decisions , 1990 .

[36]  Nigel Cross,et al.  Creativity in the design process: co-evolution of problem–solution , 2001 .

[37]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..