Shaw: Confidence Strategies for End Users 1 Helping Everyday Users Establish Confidence for Everyday Applications Mary Shaw Institute for Software Research, School of Computer Science Carnegie Mellon University, Pittsburgh PA mary.shaw@cs.cmu.edu January 2007 Abstract End users obtain their desired results by combining elements of information and computation from different applications. Software engineering provides little support for identifying, selecting, or combining these elements – that is, for helping end users to design computational support for their own tasks. Software engineering provides even less support to help end users to decide whether the resulting system is sufficiently dependable –whether it will meet their expectations. Many users, especially end users, base judgments about software on informal and undependable information, and they draw conclusions with informal rather than rational decision methods. We have been developing support for everyday dependability, with an emphasis on expressing expectations in abstractions familiar to the user and on obtaining software behavior that reasonably satisfies those expectations. In this Dagstuhl I would like to explore the differences between everyday informal reasoning and the rational processes of computer science in order to develop means for establishing credible indications of confidence for end users. Everyday Dependability for Everyday Users “Dependability” is an overarching property of software systems that includes, to various viewers and to various extents, elements of correctness, reliability, fault-tolerance, performance, security, usability (without surprises), robustness, accuracy, and numerous other properties. Everyday dependability provides enough assurance to carry out ordinary activities. Everyday software systems may be undependable, but the consequences of that undependability are not catastrophic, a human will probably notice and intervene before the effects spread, and the number of people affected is modest. For everyday software, it is generally not difficult to recover from failures. Everyday users are not computing professionals; they create small software systems from available information and computing elements, they use abstractions drawn from their problem domains, theybare ill-equipped to evaluate the elements they use, and they are often mystified by the behavior and requirements of their software. We focus on their design and use of suites of these information and computing elements elements, applications, data sources, web pages, and other distribugted content rather than on correct programming within an application. Within my group, • Orna Raz explored dependability of online data feeds. The semantics of these data feeds sometimes goes awrt\y, but different users are sensitive to erroneous values to different extents. Raz developed a technique for end users to describe their individual expectations about a data feed and to translate those expectations to predicates that could monitor the data feed dynamically and adapt themselves to certain kinds of gradual systematic change in the data feeds. • Vahe Poladian is exploring ways to provide users of mobile devices with the most satisfactory service given the limited resources of the device. Using a “task level” abstraction, he selects a Dagstuhl Seminar Proceedings 07081 End-User Software Engineering http://drops.dagstuhl.de/opus/volltexte/2007/1096 In Dagstuhl Seminar Proceedings, End-User Software Engineering 07081, Schloss Dagstuhl, Germany, Margaret H. Burnett,Gregor Engels, Brad A. Myers and Gregg Rothermel (eds.) January 2007