note - You must work in groups of 2 or 3.
Software design is all around us. It governs large systems like financial markets and also subtle experiences such as how we select a song on an MP3 player. Software affects us in countless ways everyday. It is our responsibility to participate in envisioning its future.
Imagine: you have been provided with 10 gazillion dollars of venture capital and a crack team of engineers and computer programmers who can make anything you design.
The Challenge: develop a novel software design. You will prepare a technical and conceptual proposal for a new piece of software as well as a small prototype or component of this project realized in code. The emphasis will be on the conceptual design which must be thorough and well-conceived. The prototype does not need to be a fully functional piece of software, but should demonstrate a grasp of basic computer programming principles and best practices. You will demo this prototype for the class. You will work collaboratively in design teams on this project.
Any idea is welcome - you just have to make your case.
Project Proposal – due November 23
In this section, write a few paragraphs that describe what the project or software will do. What is the problem it is trying to solve? Why does it need to exist? Who will use it? By answering these questions, you establish the scope of your design.
Design Document – Rough Draft due November 30
How did the idea for this software come about? What is the problem it is trying to solve? Why does it need to exist? Who will use it?
Specifically address:
Competitive Analysis - Assess current alternatives/options. What are their strengths and weaknesses? How does your idea fit into the current landscape? You should case study at least 2 other software products in this section.
What is the look and feel for this project? How can specific design decisions make this software appealing and usable to your target audience?
What is a suitable development platform for your project? What kinds of existing technologies can you leverage (open-source code, hardware)? What kinds of new software/hardware needs to be developed to realize your project? You should present your research on the pros and cons of at least 2 different technologies that could be used in developing your project.
A use case is a description of how users will perform tasks with your software. Who can do what?
A use case includes two main parts:
Each use case captures:
You should write at least two use cases for your software. You should write each a use case as a mini-narrative.
A prototype is a draft version of your software. Prototypes allow you to explore your ideas before investing time and money into development. A prototype can be anything from drawings on paper (low-fidelity), click-through of a few images or pages, or fully functioning software (high-fidelity).
You will create 2 prototypes: a UI prototype and a software prototype.
UI Prototype
This can be done with photoshop/illustrator to create a series of pages that will simulate how a user will interact with your creation. You can think of this as a storyboard or flowchart. The storyboard should represent important UI features (menus, buttons, etc) and demonstrate the ways that a user can interact with your software. These can be presented as a series of PowerPoint slides or in the form of a simple website. For your rough draft, this can be in the form of sketches on paper.
Software Prototype
You will determine a suitable aspect of your project and attempt to prototype it in Processing. I’ll work with each group individually to determine the appropriate part of your project to implement. Please turn in the code for this part of the project. This is not due for the rough draft.
Presentation & Final Design Document – due Last Class
A 10 minute presentation in the form of Power Point or a webpage/blog. Please turn in either a copy burned to CD or a URL.
The presentation should incorporate the following:
!!! your device/service does not have to completely work - but you need to explain how it would work.