Syllabus Schedule Project Evaluation Checklist Handouts My home page

SWE 632: User Interface Design and Development
Project Assignment
Fall 2018

Technology is the knack of arranging the world so that we don't have to experience it.
- Max Frisch (Swiss playwright)

The project this semester is to design and build software to “uber-ize” some activity. Consider how Uber changed the user experience for hiring a car when compared with a cab. To hire a cab, we have to first find one. In a crowded city, we can wave our arm at the street and a cab will soon come by. At an airport, we wait in line for the next cab to appear. At a fancy hotel, we ask the desk clerk and a cab quickly appears. If we are in the suburbs, we find a phone number for a particular company, then call to schedule a pickup, which may take up to an hour (typically 45 minutes from GMU or my house). Once in the car, we tell the driver where to go, and often give directions during the trip. We pay with a credit card, if the machine works, or cash. Twice I’ve had to drive to an ATM because the card reader was broken and I didn’t have enough cash.

Uber is quite different. We create an account (once), and attach a method of payment, either a credit card or paypal (yay Elon Musk!). When we need a ride we open the app, enter the destination, and are told when a driver will appear. It’s the same process no matter where we are, and the arrival time is usually 5 minutes or less, even in distant suburbs. We also can rate drivers and they can rate passengers.

Uber drivers also earn less money, drivers are not licensed and their cars are not subject to safety inspections (beyond what is required for our private cars), the company does not own or pay for maintenance on the cars, and the company does not pay road usage fees. These shortcuts save money for the customers and allows Uber to make more money than a taxi company. These economic considerations are NOT important for your project. We only care about the user experience, regardless of cost and ethics.

Your project this semester is to think of a service for which the user experience can be changed by software. Then design the UI to support that service and build a working initial system that I can evaluate, and potentially demo to your classmates.

You may not simply copy Uber’s UI. You can use some of its ideas, but create your own design. You may discuss possible services to Uber-ize with your classmates or anyone else. You may also use any technologies you want and design the UI and software as you wish. You are free to make as many assumptions and decisions as you like within the parameters given. Be creative and have fun!

If you do not like this project and have your own idea, you may choose to suggest your own project. See Alternative Project below.

Project Requirements and Schedule

More freedom: You may deploy your system on any computer, and build your UI with any software support or package. Your interface may be of any style (mobile, WUI, GUI, menu, command line). The important thing is that you follow the principles we discuss in class. You may use Unix computers, PCs, Macs, or mobile platforms, and you may use J2EE, PHP, Java, Motif, X, Powerbuilder, VisualBasic, HTML, or whatever languages or development platforms are comfortable. For those who wish to use J2EE or PHP, I will arrange for accounts to be created on VSE’s J2EE application server. If you wish to use a database, we can make arrangements to use the VSE oracle server or mysql.

You are responsible for making your project available to me to evaluate ... if I cannot access it, you will lose points. I must be able to see your project run on campus (no house calls). You may make it available over the web, through the campus network, in a campus lab, or as a last option, bring a laptop to my office for an in-person evaluation. I will not install software on my computers; if you use a PC, you are responsible for finding a PC to show me or installing it on a PC in one of the labs. If you need, we can probably arrange for a dedicated PC in one of the VSE labs at the end of the semester. You are also responsible for ensuring that any support software you need is available.

I encourage you to work with one partner, although you may also work alone. If you choose to work with a partner, the requirements will be the same, and I will expect each partner to submit a one page evaluation of the other partner at the end of the project. These evaluations may be used as part of your grade determination.

This project will have six milestones The due dates are listed on the course schedule web page). Note that the first four are fairly small and not time consuming.

  1. First you must submit a one page statement of intent as a bullet list that gives your name (or names if you have a partner), your project, what development computer you plan to use, what deployment computer you plan to use, how you will make the project available for grading, and what software you plan to use (HTML, CGI, Java, etc.). (Note that this is not a contract—that is, if you change your mind later, that is okay, just let me know.)
  2. Turn in a short user profile containing a description of the users of your system. This description should have two components. The first should describe whether your primary users will be novice, knowledgeable intermittent, or expert. This description should consider the users in terms of syntactic, task semantic, and computer semantic knowledge. The second component should consider characteristics of the users that we discuss in class, including work experience, computer experience, age, etc. Please refrain from including information about design; think of this as part of the requirements. Design will come later.
  3. Submit a statement of interface goals, which will (1) describe user interface goals in terms of Shneiderman’s five criteria, and (2) describe all the features you plan to implement in your system. Please refrain from including information about design; think of this as part of the requirements. Design will come later.
  4. Build and submit a very small and simple technology demonstration interface using the same platform, implementation package, and interface style that your final project will use. The purpose of the technology demo is to ensure that you can use the software you plan to use and make it available to me. This is NOT a prototype of your project.
  5. Submit an initial interface screen design on paper—the screens and a description of the interaction. Include a copy of the statement of intent and the user profile with the design with any changes noted. (These documents will give me context of your project.)
  6. Finally, you will turn in a short written report and either provide me with a location where I can evaluate your project or specify that you must schedule an in-person evaluation. Note that the project and final report is due a week earlier if we need to arrange a meeting for an in-person evaluation.

    The final short written report must include:

    1. Your name or both partners’ names
    2. A one or two sentence description of your project
    3. A paragraph describing the software you used to build your interface
    4. A short description of how I can use and run your project
    5. A short description of the software design
    6. Any notes or problems that I should be aware of (including things that aren’t finished, are broken, or that were planned but not implemented).

Alternative Project

The project suggested here has the advantages of being small enough so that you can understand the system in a reasonably short time, being complex enough to present a reasonable interface challenge, and not requiring a lot of software underneath the interface. However, you may propose a different project, provided it is of a reasonable size (not too big and not too small). Note that grading is based entirely on the usability of the system; you will not get credit for developing large amounts of software that is not part of an interface, and you will not get credit for learning new technology to build your interface. Important: Every milestone delivery needs to include 1 or 2 sentences reminding me what your project is.

Subject Choice - Statement of Intent

For the next class, give me your project choice as a statement of intent. Please see above for the contents of this document (one page with a bullet list should be enough).

The grading will be approximately:
User profile   5%
Interface goals   5%
Technology demo   5%
Designs 10%
Final submission 75%
     Interface quality     40%
     Features & functionality     25%
     Evaluation     10%