Computer Science and Software Engineering 371

Software Requirements and Specification

Fall 2005

Exam 3 Review Solution

  

1.    From page 12 of the Interaction Design text:

 

a.    Developing alternative designs that meet those requirements.

b.  Building interactive versions of the designs so that they can be communicated and assessed.

c.    Evaluating what is being built throughout the process.

 

2.    From page 47 of the Interaction Design text:

 

This is manipulating-and-navigating.  According to Ben Schneiderman, who invented it, the benefits are:

 

a.    Helps beginners learn basic functionality rapidly.

b.    Experienced users can work rapidly on a wide range of tasks.

c.    Infrequent users can remember how to carry out operations over time.

d.    No need for error messages, except very rarely.

e.    Users can immediately see if their actions are furthering their goals and if not do something else.

f.     Users experience less anxiety.

g.    Users gain confidence and mastery and feel in control.

 

3.    From pages 94-95 of the Interaction Design text:

 

In theory, OO and ID should give the same answers here, in the sense that our goal in OO is to make objects function the way users and others would want them to function to accomplish their goals, and OO analysis and design are supposed to model and enable that.  So, if the users want to see how and why some device or feature works when they push a button, we can provide that kind of user verification and make those functions transparent via OO methods.

 

However, if we apply just the idea of whether or not making things “transparent” is a good idea, in OO design and programming, then we see that it’s not the same as the concept of transparency in ID.  OO is all about simplification via information hiding, making it as obvious as possible what everything does while making invisible how they accomplish that.  OO is inherently a land of magic widgets.  So, following those rules, an equivalent interface should hide everything from the user except the intended paths.  We would assume that the designer knew exactly what should be public and private, and not let the user see the private stuff, for fear of their messing it up.

 

In the situation we are requesting you consider here, maintenance, it is likely that this OO approach would not work so well, because, after all, things are already messed up, and the person fixing is likely going to have to pick through some amount of information, looking for a cause.   The necessity for the designer following the OO model to anticipate legitimate use, and to close off unintended uses, would seem counterproductive.

 

In ID, the idea of design transparency really is that there is an “easy to understand system image…providing useful feedback in response to user input and easy-to-understand and intuitive ways of interacting with the system.”  Additionally, the transparency concept says the designer should provide “the right kind and level of information in the right form,” including clear and easy-to-follow instructions,” … and “context-sensitive guidance, set at their level of experience.”   This design idea of transparency might in fact be a very good thing for a maintenance user, to help make clear what is going on through revealing the most important things – bringing those to the user’s attention as they try to fix the software.  But the ID person would surely account for the fact that the route followed toward a successful fix could not all be anticipated by the designer.

 

So, if the question is, how does this compare with what you could call OO transparency?  The answer is, they are a lot different!

 

4     From page 112 of the Interaction Design text:

 

a.  Lack of adequate bandwidth has plagued video communication, resulting in poor-quality images that frequently break-up, judder, have shadows, and appear as unnatural images.

b.  It is difficult to establish eye contact (normally an integral and subconscious part of face-to-face conversations) in CVEs, video conferencing, and videophones.

c.  Having the possibility of hiding behind a persona, a name, or an avatar in a chatroom gives people the opportunity to behave differently.  Sometimes this can result in people becoming aggressive or intrusive.

 

5.    From page 149 of the Interaction Design text:

 

Ideally, error messages should be treated as how-to-fix-it messages.  Instead of explicating what has happened, they should state the cause of the problem and what the user needs to do to fix it.  Schneiderman’s recommendations are:

 

a.    Rather than condemn users, messages should be courteous, indicating what users need to do to set things right.

b.    Avoid using terms like FATAL, ERROR, INVALID, BAD, and ILLEGAL.

c.    Avoid long code numbers and uppercase letters.

d.    Audio warnings should be under the user’s control, since they can cause much embarrassment.

e.    Messages should be precise rather than vague.

f.     Messages should provide a help icon or command to allow users to get context-sensitive help.

g.    Messages should be provided at multiple levels, so that short messages can be supplemented with longer explanations.

 

6.    Full user immersion, and the strengths thereof:  Almost all of Ch 6 argues that the ID development cycle must cycle because of the error-prone nature of learning about users and how they will use the system.  Thus, they don’t know what they want until they use it, and what are the odds the thing you developed is it, unless they got to see it ahead of time?   This is a lot like XP, where designs are exposed to users throughout the development cycle.  The related aspect of XP is that designs are improved continuously.  Some good things about their common recommendation for user involvement are these:

 

a.  While it’s true that users will continue trying to add-on new features, they also will react strongly to the usability of what they see at each point, a preview of their reaction to the real product.  And,

 

b.  They can’t do this critique until they see something.  Just talking about it, for example, isn’t close enough to the real thing for most users’ “judgment” about that to kick-in.

 

Then also add at least one way XP development model and the recommended ID model of Chapter 6 would differ:

 

Differences between ID and XP models:  These methods really aren’t the same, because XP tries hard to get a feature “right” and then go on to develop another feature, with most of the upgrade being refactoring and other internal change to support growth.  But it’s close!  ID people would argue that, even with XP, you are unlikely to get it right the first time, on anything new involving users.  So the reasons for wanting such close user interaction are similar, if not exactly the same. 

 

7.    The problem is that user closeness guarantees a continuous flow of new requirements.  The developer distance guarantees they want something to stop and think about, then work from. And there is a limited channel of communication between them (probably you!).  Possible ways to resolve the problem (many from you):

 

1.        Get users to agree to a set of baselined requirements, after which changes are formalized and cost more.  They may be convinced this is a good idea because their stream of changes is preventing project progress.

2.        Get the users and developers closer to one another.  For example, a user “representative” onsite where the developers are, or regular “developer visits” to the customer’s shop.

3.        Talk everyone into an incremental plan, so that the developers can proceed with something!

4.        Set up a JAD-type workshop where they all work together for a few days to get it right.

5.        Educate the users so they know better what they want.

6.        Get users and developers into an “exchange” program where they learn more about each others’ cultures informally.

7.        Get something working fast, then show it to the users to get them to focus on perfecting that part instead of wildly new stuff.

8.        Developers could work on some non-user-related aspects of the system while you’re trying to work this side of the project.

 

8.    One intent would be to market high profit items to a very wide audience at the same time!  To get people to put up with such things (like the dancing pig), the actual free information people are looking for must be high quality and easy to use.  Aside from the pig, the other suggestive features are a mixture of helpful tips (like finding “what’s nearby”) and much more targeted ads (like the car rentals).

 

“Wizard of Oz” has a human replacing some of the computerized interactions here, during prototyping or test marketing.  A Wizard of Oz for this screen might ask people to say what locations, products or services they are interested in relative to this map, and then pretend to offer those up to a focus group, etc.  In this way, MapsOnUs might discover that people looking for this address really want to see next a map of the Rose-Hulman campus, for example.

 

Another alternative would be to see how users use physical maps, and try to emulate that, or get users to tell the human observer what they are looking for, and what else they’d like to see.

 

Having humans in the loop might tell MapsOnUs whether or not they need to move to a more direct interaction model, such as users get with Yahoo Maps, for instance (with landmarks shown directly on the map).

 

For such a graphical application it’s certainly more difficult to have a human behind the scenes inventing new things, which several people mentioned.