VisDev: A Multilangage Integrated Development Environment proposed by: Brett Heath-Wlaz *** Purpose & Motivation *** As software systems grow beyond a certain size, they become increasingly difficult to organize and maintain. Most projects are comprised of multiple files, and working on a certain aspect of the code can mean working with several files at once. Upkeeping recirsive makefiles can further complicate matters. This program strives to simplify the process of maintaining large, complicated projects by presenting the user with a graphical tree-based view of their project. The user can edit files, modify project options, compile, run, and debug their software within a single, powerful environment. Furthermore, the appearance and behavior of the development environment is fully customizable to suit the needs of many different types of users. *** Target Users *** This software is targeted at software developers who are working with large software systems, for which conventional editing and maintenance tools are insufficient. Anyone who feels that current tools are cumbersome, or anyone who is more productive with graphical utilities will find this program useful. *** Basic Features *** These features will definitely be implemented in the initial release of the program: * Full support for C/C++ projects: specific project options, edit/compile/run support. * Intuitive graphical interface, with menus and toolbar buttons to access major functionality. * Tree-based view of project/files, with ability to add, remove, move, edit, and organize files in the project. * Keyboard shortcuts for all major operations, and ability to customize appearance of the environment. * Ability to interface with several popular editors (emacs, vi) so that the user can choose how to edit their files. *** Optional Features *** These features may be implemented in the initial release, depending on the time schedule. They may also be implemented at a later time: * Support for Java and HTML projects. * Graphical interface to the debugger, allowing the user to debug software from within the development environment. * Support for tab completion and automatic completion of commonly used words in code. * Ability for user to define macros to automate repetitive or common tasks. * Integrated source code control achieved by interfacing with cvs or other such programs. *** Performance Standards *** The program must conform to the following standards of performance and useability: * The development environment must be able to perform all file management tasks (including loading and saving files and projects) in a timely manner (on the order of a few seconds at most). * The development environment must be able to interface with the compiler, linker, and debugger without adding a significant amount of time to the running time required by these tools. (not more than a few seconds) * This program must be kept within the scope of what can be completed by a team of cs190 students (approximately 8). The initial release of the project must be completed by the end of the spring 2000 semester. *** Testing *** In order to be considered successful, this program must conform to the performance guidelines outlined above. All implemented features must work as described above. Also, this program must be presented to a set of users, who will evaluate the program. These users must describe the program as more useful, intuitive, and customizable than not, on a quantatative scale.