Linking usability to software architecture patterns through general scenarios

Usability is an important quality attribute to be considered during software architecture design. Up to this point, usability has been served only by separating a system's user interface from its functionality to support iterative design. However, this has the effect of pushing revisions to achieve usability toward the end of the software development life cycle. Many usability benefits link directly to a variety of architectural tactics in addition to separation of the user interface and these benefits can be discovered early in the life cycle. For each of 27 scenarios, we identified potential usability benefits a user could realize and an architectural pattern that supports achievement of those benefits. We organized the scenarios into an emergent hierarchy of potential benefits to the user and into an emergent hierarchy of architectural tactics used in the supporting patterns. The range of architectural tactics identified in this hierarchy demonstrates that separation is far from the only architectural tactic necessary to support usability. We present techniques that permit important usability issues to be addressed proactively at architecture design time instead of retroactively after user testing.

[1]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[2]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[3]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[4]  Dan R. Olsen,et al.  User Interface Management Systems: Models and Algorithms , 1991 .

[5]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[6]  Srdjan Kovacevic,et al.  UIDE—an intelligent user interface design environment , 1991 .

[7]  Leonard J. Bass,et al.  Achieving usability through software architectural styles , 2000, CHI Extended Abstracts.

[8]  Jan O. Borchers A pattern approach to interaction design , 2001, DIS '00.

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Gilbert Cockton,et al.  Design Principles for Interactive Software , 1997, IFIP — The International Federation for Information Processing.

[11]  Leonard J. Bass,et al.  Quality Attribute Design Primitives and the Attribute Driven Design Method , 2001, PFE.

[12]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[13]  Ben Shneiderman,et al.  Designing the user interface (videotape) , 1987 .

[14]  Karen Holtzblatt,et al.  Contextual design , 1997, INTR.

[15]  D. A. Duce,et al.  Proceedings of the workshop on user interface management systems and environments on User interface management and design , 1991 .

[16]  Len Bass,et al.  Achieving usability through software architecture , 2001, ICSE 2001.

[17]  Ben Shneiderman,et al.  Designing The User Interface , 2013 .

[18]  Leonard J. Bass,et al.  Developing software for the user interface , 1991, The SEI series in software engineering / Software Engineering Institute.

[19]  Mik Lamming,et al.  Interactive system design , 1995 .