Software architecture critics in the Argo design environment

Software architectures are high-level design representations of software systems which focus on composition of software components and how those components interact. Software architectures abstract the details of implementation and allow the designer to focus on essential design decisions. Regardless of notation, designers are faced with the task of making good design decisions which demand a broad range of knowledge of the problem and solution domains. In this paper we describe Argo, a software architecture design environment that supports designers by addressing several cognitive challenges of design. Argo's critiquing infrastructure supports decision making by automatically supplying knowledge that is timely and relevant to decisions at hand. Our discussion centers on a five-phase critiquing process that we use to motivate Argo's features, structure a usage scenario and characterize related work.

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

[2]  Raymond McCall,et al.  Making Argumentation Serve Design , 1996, Hum. Comput. Interact..

[3]  Jonathan Grudin,et al.  Why CSCW applications fail: problems in the design and evaluationof organizational interfaces , 1988, CSCW '88.

[4]  Willemien Visser,et al.  More or Less Following a Plan During Design: Opportunistic Deviations in Specification , 1990, Int. J. Man Mach. Stud..

[5]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[6]  Eric Horvitz,et al.  Agents With Beliefs: Reflections on Bayesian Methods for User Modeling , 1997 .

[7]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[8]  D. Schoen,et al.  The Reflective Practitioner: How Professionals Think in Action , 1985 .

[9]  Frank M. Shipman,et al.  Seeding, evolutionary growth and reseeding: supporting the incremental development of design environments , 1994, CHI '94.

[10]  Alexander Repenning,et al.  Using Agentsheets to create a voice dialog design environment , 1992, SAC '92.

[11]  Robert Fox Third largest manufacturing industry , 1997 .

[12]  Gerhard Fischer,et al.  A Cooperative Problem Solving System for User Interface , 1990 .

[13]  Tamara Sumner,et al.  Supporting evaluation in design , 1996 .

[14]  Stefanie N. Lindstaedt,et al.  From domain modeling to collaborative domain construction , 1995, Symposium on Designing Interactive Systems.

[15]  Gregory Alan Bolcer,et al.  User interface design assistance for large-scale software development , 1994, Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference.

[16]  Webb Stacy,et al.  Cognitive bias in software engineering , 1995, CACM.

[17]  W Kintsch,et al.  Understanding and solving word arithmetic problems. , 1985, Psychological review.

[18]  Bonnie L. Webber,et al.  TraumaTIQ: Online Decision Support for Trauma Management , 1998, IEEE Intell. Syst..

[19]  Ted Selker,et al.  COACH: a teaching agent that learns , 1994, CACM.

[20]  Jason E. Robbins,et al.  Extending design environments to software architecture design , 1996, Proceedings of the 11th Knowledge-Based Software Engineering Conference.

[21]  Gerhard Fischer,et al.  Supporting Software Designers with Integrated Domain-Oriented Design Environments , 1992, IEEE Trans. Software Eng..

[22]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[23]  Donald A. Schön Designing as reflective conversation with the materials of a design situation , 1992, Knowl. Based Syst..

[24]  John R. Anderson,et al.  Cognitive Tutors: Lessons Learned , 1995 .

[25]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[26]  M. Polanyi Chapter 7 – The Tacit Dimension , 1997 .

[27]  Gerhard Fischer,et al.  Supporting the evolution of design artifacts with representations of context and intent , 1995, Symposium on Designing Interactive Systems.

[28]  Steven J. Plimpton,et al.  Massively parallel methods for engineering and science problems , 1994, CACM.

[29]  A.P.J. Jarczyk,et al.  Design rationale for software engineering: a survey , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[30]  Ian Rogers The use of an automatic “To Do” list to guide structured interaction , 1995, CHI '95.

[31]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[32]  D. Christopher Dryer,et al.  Wizards, guides, and beyond: rational and empirical methods for selecting optimal intelligent user interface agents , 1997, IUI '97.

[33]  Tamara Sumner,et al.  The cognitive ergonomics of knowledge-based design support systems , 1997, CHI.

[34]  Pattie Maes,et al.  Agents that reduce work and information overload , 1994, CACM.

[35]  Barry G. Silverman,et al.  Expert Critics in Engineering Design: Lessons Learned and Research Needs , 1992, AI Mag..

[36]  Donald A. Schön The reflective practitioner : how professionals think in action , 1986 .

[37]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[38]  Gerhard Fischer,et al.  Embedding computer-based critics in the contexts of design , 1993, INTERCHI.

[39]  Jintae Lee,et al.  Design Rationale Systems: Understanding the Issues , 1997, IEEE Expert.

[40]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[41]  R. J. Bogumil,et al.  The reflective practitioner: How professionals think in action , 1985, Proceedings of the IEEE.

[42]  L. Suchman Plans and situated actions , 1987 .