1. Introduction
This document defines requirements for a Prototyping Tool. The Prototyping Tool is designed for use by undergraduates in software engineering courses.
1.1. Problem Statement
At Cal Poly State University, students in the undergraduate software engineering courses need a complete, easy to use tool for quickly creating a customized user interface. The prototyping tool allows the user to draw pictures or objects and make them behave like buttons or active components.
1.2. System Personnel
The primary users of the proposed system are undergraduate students in the software engineering sequence.
The system development personnel for the Inferno project are graduate and advanced undergraduate students at Cal Poly University, under the direction of Gene Fisher. The project has
been developed in graduate software engineering courses, special project courses, senior project courses, and Master Thesis study. The most recent author of this document is James C. Irwin.
In academic years prior to 1998-99, undergraduate students completed the Software Engineering courses in the junior or senior year of study. Curriculum in Fall 1998 moved the Software
Engineering sequence to the beginning of the sophomore year. Hence, the environment should be tailored for students at the sophomore level of study. The typical users will be 2nd year Computer Science, Computer Engineering and Software Engineering majors at California State Polytechnic University, San Luis Obispo. They will use this program in their CSC 205 Introduction to Software Engineering class.
1.3. Operational Setting
At Cal Poly university, the Software Engineering course is a two-quarter sequence in which students are taught a reasonably standard software engineering curriculum. At
present, students use an ad hoc collection of computer-based tools. The program development tools run on UNIX and PC workstations. Modest support for graphical design tools is
available on UNIX, however tools on PC and Macintosh platforms are frequently used by students given their superior functionality. In the prototype developement arena there only exists very standardized or very complex graphical user interface builders. This tool will fill the gap by providing a simple design that provides built in standard tools, and the flexibility to be creative and free-thinking in the design of interfaces.
1.4. Impacts
The desired positive impacts are (1) less learning time for the prototype developement tool, (2) more freedom in the design of user interfaces and (3) improved student understanding of course material. If the environment is adequately implemented, it will provide support to make it easier for students to produce higher-quality prototypes with less effort than is required in the current environment.
1.5. Related Systems
There are several commercially availible programs graphical interface builders and programming languages that could be used to build prototypes for software packages. These range from programming languages like C++, JAVA and Basic to interface builders that use these languages such as Visual Cafe, Visual Basic, Forte and others.
The products named above all share the common thread that they are full featured application developement tools. This is a good thing in that there will be no limits on what the user can make the prototype do. The downside to this is that because of their fully featured toolkits, the tools and programming languages can be complicated to learn and require special training and take weeks or months to learn. In a 10 week long class by the time the prototype needs to be turned in the developement team will just be getting the basics of the developement tool in hand. The other downside to these tools is that they, in their simpler forms (GUI Builders), can limit the creativity of the designer by only allowing traditional commands such as menus and buttons.
The goal of this project is to create a prototyping tool that will fill this void by having enough features to allow a potential user to work with and get a feel for the user interface of the program, without requiring the developer to know a programming language and all of the nuciances of actually creating a working user interface, such as putting months into its design.
1.6 Current Status
I am designing a program that will allow software engineers to rapidly prototype new user interfaces in a way that is not currently possible. This will be done by combining elements of a graphical user interface builder with a drawing editor. None of these concepts is new, but there is no tool that combines these features. There will be no limiting of the user to "standard" buttons or ways of doing things. I will not be implementing the program anymore than necessary for me to create the screenshots that are viewable on the web page. I will try to make it clear on the webpage what is under construction so that there will be no confusion.
These words and images are property of James C. Irwin, jcirwin@calpoly.edu
05/27/2002