Ongoing Projects
The Software Engineering Research Group has several ongoing projects.  
Completed Projects

 

YearMQP TitleDescription
2002 Web-based Meeting Scheduling System Contact heineman@cs.wpi.edu
2000 Scripts for managing ACM regional programming contest  Contact heineman@cs.wpi.edu

 

Active Undergraduate Projects

YearMQP TitleStudentsSponsor#
2000 Instrumenting and Extending Static Code Libraries Richard Nordin   2000
 
Completed Student Projects

Completed IQPs

YearIQP TitleStudents#
2001 Improving Efficiency at PSI with PDA's
A Personal Digital Assistant (PDA) is an electronic device that combines scheduling and organizational tools with the benefits of technology. Our project implemented a pilot program where field employees of Piping Systems, Inc., a mechanical contracting firm, used PDAs to improve efficiency in their daily work. Significant parts of our project included transferring the company's commonly used forms onto the PDA, training the employees on using PDAs, and evaluating our
project with a post-survey. 
Mark Aikens
Megan Lolly
Maylene (Natashs) Waltz
I012
2000 Trust and Component-based Software Engineering
Software productivity has been a problem since the 1960's. Projects are often delayed, over budget or even canceled. Component-based software development, as a means of code reuse, has been viewed as a way to help improve the state of software engineering, but a marketplace for software components currently does not exist. It is our assertion that trust is a necessary but not a sufficient preconditon for the development of a software component marketplace. To this end, we examine a variety of ways that trust can be engendered in components: creating a profession of software engineering, product certification, and process assessment. 
Anthony Andrade
Paul Calnan
I011
1998 Campus Communication Methods
This project investigates the various methods of communication between WPI organizations and students to identify and categorize different methods. We present the results of two surveys to study the effectiveness of current methods. We identify the most important criteria in selecting a method for advertising events and present a decision tree that selects the most effective means of advertising based upon these criteria. 
Robert McDonald
Jason Alexander
98CC

Completed MQPs

YearMQP Title/DescriptionStudentsSponsor#
2002 Component-based Evolution
This project focused on developing a methodology to support the semi-automatic evolution of a database application. As a case study, we implemented an Enterprise JavaBeans (EJB) application that persisted its data to a MySQL database. Changes were then made to the database structure and we applied our methodology to evolve the application. We determined that entity beans with container-managed persistence were most friendly to schema evolution; as a result, we recommend that most business logic be placed inside session beans.
Shamus Mulhall
Nick Minka
  0201
2002 Analysis of Component Model
Component-based software engineering (CBSE) has emerged as an attempt to build software with reusable parts. The objectives of this project were to examine the leading component models and explore the difference between them by implementing an identical test application from which the structure methodologies behind, performance, and actual source code content of the implementations was examined. While neither model is clearly better, the EJB model provides features that fulfill the marketplace expectations of what a modern component model provides. 
Chad Pytel
Calvin Swaim
Matthew Tucker
  0101
2001 FTS Plug-in for Sybase Central
Sybase Inc. has sponsored this project to develop a graphical, intuitive interface to replace the cumbersome, often non-intuitive system administration of the Full Text Specialty Data Store (FTS). A plug-in was written for Sybase Central, which is another Sybase product that provides an extensible graphical interface for communicating with the user. The plug-in has been developed as a prototype for a product that will become part of Sybase's Adaptive Server Enterprise 12.5 production release.
Zachary Lawson Sybase, Inc. 0002
2000 Distributed Chess Playing Engine
This project developed a distributed game-tree search engine The system is capable of evaluating game-trees using multiple agents located over a local area network or the Internet. We implemented the following features: load balancing, plug-in technology and job scheduling. The main features of our system include adaptability through the plug-in technology, scalability through the use of distributed computing, and robustness through agent failure recovery.
Peter Golaszewski
Sebastian Jastrzebski
Timothy O'Brien
  99CH
2000 Component Based Approach to Feature Interaction
We have researched, designed and implemented a framework to address feature interaction in a software system. The Feature Interaction problem occurs when a new feature is added to an existing software system. The problem has been extensively studied within the telecommunication domain With the support from Natural MicroSystems, Inc., we have created a component-based solution to solving the feature interaction problem. We have developed a prototype PBX system by redesigning Natural MicroSystems software.
Uri Braun
Nate Wilfert
Matt Driscoll
Open Telecom.org sponsored by
Natural Microsystems
9901
2000 Component Based Development Environment
This project investigated the modification of an open source UML editor. We attempted to modify the system to support Active Interfaces, and achieved mixed results. 
Jonathan Bourgeois ---  0001
2000 Voice Enabled Browsing
Voice-enabled browsing allows users to operate their web browser using a website to include content allowing users to navigate the site using spoken words. Our project focused on the design of two prototypes: a media server and a voice browser component to communicate with it. A CG 6000 telephony board provided by Natural Microsystems (NMS) powered the media server. The prototype designed by this project will interoperate with Edwin Jacques' MQP, also sponsored by NMS. 
George Huntington
Charles Knutson
Joel Navaroli
Natural Microsystems 0003
1999 Virtual World
Using Java 1.2, we successfully created a virtual environment in which multiple users could simultaneously manipulate characters upon a two-dimensional world-map which contained a variety of terrain types and items, through a client-server connection, via the TCP protocol. One of the most exciting features of our world was the inclusion of 'agents', or non-human characters that could be programmed by users with an adequate knowledge of Java, to perform an open-ended variety of tasks. 
Jeffrey Israelian
David Markle
--- 9811
1998 Distributed Object Brokerage
Intellution Inc. provides software, which maps logical names to physical devices in a factory setting. Increasing factory complexity compounds the problem of managing these devices. We propose a distributed middleware solution, the Distributed Object Brokerage, which manages the mappings between logical names and physical devices in a factory. This paper explores the design considerations necessary to implement such a system in an efficient and scalable manner. In addition a prototype was implemented to test the feasibility of the concepts presented. 
Andy Bucher
Matthew Young
Intellution 98I3
1998 Interoperability of Software Component Models
Software Engineers continually make efforts to make software development more efficient. Reusing software allows more concentration to be placed on solving the task at hand, rather than fixing old problems. Software components are a solution to this problem, by allowing parts of a program to be reused or interchanged with other programs as necessary. This Major Qualifying Project examines JavaBeans an ActiveX terms of their construction, their usability and their interoperability with each other. 
Daniel Barsum --- 9701
1998 Automating testing of software for telephony boards
Natural Microsystems builds telephony boards with specialized software libraries. This project helps automate Natural Microsystems' software engineering test procedures, which currently are very human intensive. Expect Scripts, generated from a Graphical User Interface tool, replace engineer interaction in these testing procedures. This tool helps Natural Microsystems create repeatable, automated tests for running the test procedures for their telephony boards. 
Teddy Goodwin Natural Microsystems, Inc. 98N1
1998 Evaluation of FarGo System
FarGo allows for the developing and running of applications with mobile software components. Mobile component applications are distributed applications in which the components that constitute the program are able to move between the machines involved during runtime. This MQP reviews how well FarGo accomplishes this task. This project also describes the technologies behind distributed and mobile computing as well as component models such as Sun's JavaBeans, Microsoft's COM and the OMG's CORBA.
Joseph Gee --- 9820
1997 Secure Systems Programming
Secure systems should not unintentionally provide information or privileged access to unauthorized users. This is increasingly important as the Internet allows arbitrary and often anonymous access to computers on the network. We investigate common security problems found in software and develop a process to construct programs without these flaws. To demonstrate our approach, we develop a simplified secure mail server suitable for a novice Unix systems administrator. 
David Costantino
Karl Paxton
--- 9701
1997 Synchronous Parallel Idempotent Computing Environment
Spice combines many complementary but isolated research efforts. It comprises a virtual machine model that isolates the program from the execution environment and a runtime system that realizes this model on the Web. Load distribution and fault masking are provided by the runtime system transparent to the programmer. Spice provides distributed shared memory without relying on operating system support. It is implemented in Java without any native code, thus providing the same level of security, heterogeneity, and portability as Java. 
Scott Waller --- 9704
1997 THE JAVABEANS COMPONENT ARCHITECTURE
JavaBeans is a component object model proposed by Sun Microsystems to aid developers in constructing applications from components. This research paper
describes JavaBeans as an example of a software architecture style. It also provides a foundation for anyone who is interested in working with JavaBeans or
developing their own beans.
Dinh Hang
Steven Kaldeck.
--- 9702
1996 Traffic Management Consultation Kenneth Danila, Joel Waterman --- 9703

 Company-sponsored Undergraduate Projects
There are many opportunities for undergraduates to work on projects sponsored by various companies in the local area.

In-progress

YearMQP TitleStudentsSponsor#
         
       


Other MQP ideas
  1. A graphical tool for constructing component-based software applications -- Many applications are being constructed from components, and there are many tiresome details that are best described using visual metaphors, such as connections between components and initialization routines.

    This MQP would design and implement a graphical tool, written in Java, for guiding users through the process of constructing applications from components (also described as JavaBeans).

MQP philosophy

For all MQPs, I require all students to have completed CS3733, Software Engineering. Knowledge of C++ or Java is a benefit, but not a requirement. All programming projects must undergo thorough analysis and design.

Since most MQPs are three terms long, I expect most students will follow this sort of schedule:

Term 1

  • This first term is a time of exploration. At the outset, an MQP is nothing more than some rough ideas. During this term, the students will research appropriate background areas to determine what questions to ask (and what needs to be answered).
  • At the end of the first term, the MQP group will submit a five page proposal that will outline the goals/objectives of the MQP. At the conclusion of the MQP, the final MQP report will be compared against this initial proposal
  • In the first term, the group should conduct a thorough analysis and design of the needs of their project. No coding should be done this term. The goal is to ensure that the appropriate requirements have been clearly specified.
Term 2:
  • I expect most of the real programming work will happen in this phase. By the beginning of the term, the work to be done will be broken up into relatively independent sub-problems that each of the group members can attack.
  • The project should be essentially completed by the end of this second term.
Term 3:
  • At the beginning of the third and final term the group must submit a rough draft of their MQP writeup. This rough draft is exactly that: ROUGH. It should be at least twenty pages long.
  • The goal of the rough draft is to organize the MQP to show what needs to be completed. The primary activity in the third term is writing, re-writing, writing.
I will hold weekly meetings with all group members in my office, and I expect that the group meets together at least one other time per week. Teams should set up these meetings at the beginning of every term to guarantee that they will constantly be making forward progress. If, for whatever reason, a team cannot make a particular weekly meeting, they must reschedule another meeting for the same week. This will ensure that progress will continue to be made.

Potential IQPs

  1. Software Components and the issue of trust.
  2. The Information Age and its negative impact on productivity.
  3. In 1995, Thomas K. Landauer published a remarkable book called The Trouble with Computers (in the library under QA76.3 L3226/1995). In this book, Dr. Landauer considers the paradox that the trillion dollar investment in computers has done little to improve the productivity of industry; in fact, at times it has had a negative impact.

    This IQP will delve more into the issues of when to make an investment in using computer technology.

  4. Software and Patent Technology
  5. This will investigate the history of software patents, a contentious problem in the industry. Do software patents protect anyone's interest, or do they unfairly hinder the advance of technology? This IQP will open your eyes to the way in which patents are used. Consider looking at the following two articles to see if you're interested.