|
Projects
Fall 2013 Spring 2013 Older Courses Fall 2012 Spring 2012 Fall 2011 Spring 2011 Fall 2010 Spring 2010 Fall 2009 Spring 2009
Fall 2008
Spring 2008
Fall 2007 HOWTOs |
SoftwareDesignStudioFall200891.580.202 Software Design Studio OverviewYou will develop significant software applications as part of a multi-person team, using contemporary software technologies and source code/project management tools. Course projects include a combination of desktop, web-based, database, embedded, and mobile technologies. Student work will be tightly integrated into a real-world software system. In addition to software development, the class includes reading, discussion, and reflective and research-based writing assignments. ProjectsThe class will work on extending the iSENSE project -- Internet System for Networked Sensor Experimentation (see http://isenseproject.org). iSENSE allows users distributed around the world to connect sensors (e.g., environmental sensors) to their desktop computers and have their data aggregated in a central database. Then, they (or other users) can create visualizations of these data, allowing people to conduct distributed science investigations. iSENSE also supports importing of data from remote data-collector devices. For more, please see this project overview. We will have many options for extending the system in the class:
Class StructureThe class will be based on a shared software engineering practical (the studio aspect). In other words, while each of us will have his/her own projects, we will continuously share in each others' work and make contributions to it. All software will be kept in a central SVN server, and we will explicitly arrange that every student can personally build the code and make contributions to all parts of it. In terms of technology, the iSENSE system makes use of MySQL for the backend database, with a Java servlet to communicate to clients written in Java, JavaScript, and PHP (running in a web browser). There is a Java applet that communicates with the Scratch/Pico Board via a serial connection. A build script written in Ant is used to compile the servlet and applets. Implementation work will be done using rapid-prototyping and iterative design principles (also known as agile design). The class will have the following organization: Phase 1. Introduction to existing iSENSE system, trivial build projects to get familiar with the system, selection of small implementation projects, execution and evaluation of such projects. Discussion of readings. |