Graduate Coursework
- 18-540 Distributed Embedded Systems
- Final project: Analysis and evaluation of UML documentation for an Elevator System [PDF]
A distributed real-time system - an elevator control system - is specified, designed, built, and simulated in this project. From the existing UML documentations for this elevator system, it is not clear whether UML really captures the key design decision of distributed systems. A more rigorous UML documentation package is provided, based on current system design. Various viewpoints, focusing on object architecture, software architecture and system architecture correspondingly, are given in this report. The contribution each viewpoint gives to the system design is also analyzed.
- Final project: Analysis and evaluation of UML documentation for an Elevator System [PDF]
- 17-751 Models for Software Systems
- Final project: Formal Specifications of Calendar Scheduler - the Z and CSP approach [PDF]
Formal specification methods, such as Zed and CSP, provide a mathematical framework that allows system design to be specified without ambiguity and inconsistency. This project applies Z and CSP to the calendar scheduler system, while in Z specification the states of a system is described, the CSP spec. provides support for concurrency and specifies events and transitions of the same system. A comparison of the two formal modeling techniques is also given in this report.
- Final project: Formal Specifications of Calendar Scheduler - the Z and CSP approach [PDF]
- 15-744 Computer Networking
- Final project: Adjacent Cell Interference in Wireless Networks [PDF]
At the beginning of this project, we raised the question: is it always true that hosts operating in one wireless cell do not degrade the capacity of the channel in neighbor cells? Our hypothesis was that there is degradation of the channel's capacity induced by a mobile host operating in adjacent cell. During the semester, we designed and conducted three groups of experiments. From the data we obtained, it is proved that our hypothesis is correct when the adjacent access points use the same channel. We conclude from our experiments that the capacity degradation of a channel is a function of distance between mobile hosts and the position of the hosts within the cell, when the adjacent access points are operating in the same frequency.
- Final project: Adjacent Cell Interference in Wireless Networks [PDF]
- 17-755 Architecture for Software Systems
- Final project 1: Investigating the Consensus Problem in HLA Bridge [PDF]
The High-Level Architecture (HLA) provides a common architecture for distributed modeling and simulation. In its original form the HLA allows a number of simulations to be joined together into a federation using a single run-time infrastructure (RTI). Recently there has been an interest in joining multiple such federations together using a mediating unit, called the HLA Bridge. Several problems exist with the HLA Bridge. In this project, we investigate the Consensus problem, demonstrate its existence, and elaborate on one of its proposed solutions by using a model-checking method. We use Wright, an Architecture Description Language (ADL), to specify the HLA Bridge architecture; translate the specification into CSP; and model-check it using FDR2. - Final project 2: Scalable Bio-Surveillance System Architecture [PDF]
The objectives of the Bio-Surveillance System is to develop and validate a scalable bio-surveillance system, the system is used to alert the Department of Defense and Civilian Public Health authorities against suspected outbreak of diseases. In this term project, we developed a scalable bio-surveillance architecture from its requirement document and evaluated our architecture employing an ATAM-based approach.
- Final project 1: Investigating the Consensus Problem in HLA Bridge [PDF]
- 17-939 What Makes Good Research in Software Engineering
- Final project: Sofotware Testing Techniques - Technology Maturation and Research Strategy [PDF]
Testing has been widely used as a way to help engineers developo high-quality systems, and the techniques for testing have evolved from an ad hoc activities means of small group of programmers. This report emplies the technology maturation model given by Redwine and Riddle and studies how software testing techniques get formulated, preliminarily used, developed, and get extended into a broader solution. The research strategies for software testing are evaluated using Shaw's framework of software engineering research paradigm.
- Final project: Sofotware Testing Techniques - Technology Maturation and Research Strategy [PDF]
- 15-853 Algorithms in the Real World
- 17-910 Business Models for Software Development Method
- Final project: The Business Prospects of Open Source [PDF]
Open source software is not the end of the commercial software industry but it is clearly changing some areas of the industry's landscape. In this paper we examine the open source development method as it exists in practice today from a technical and social context. We find similar licenses, leadership by meritocracy, and tool-based collaboration across eleven projects and three development portals surveyed. We propose a "walled server" model to describe open source project information flow and control. We further examine the social context of open source communication and intragroup conflict. We describe five business models observed in today's open source industry and evaluate when a business should choose to use open source methods over other approaches. We conclude by proposing four areas for future research: open source patronage, competition between open source and proprietary software, open source use as off-the-shelf (OTS) software, and transplanting the open source software development method.
- Final project: The Business Prospects of Open Source [PDF]
- 05-811 Cognitive Modeling for HCI
- Final project: Predicting Task Execution Time on Handheld Devices Using the Keystroke-Level Model [PDF]
The Keystroke-Level Model (KLM) has been studied in many areas of user interaction with computers, but it has not been applied to estimate user performance time in mobile environments. This paper investigates and verifies the applicability of KLM on handheld tasks. A user study on 10 participants has show that KLM can accurately predict task execution time on handheld devices with less than 8% prediction error.
- Final project: Predicting Task Execution Time on Handheld Devices Using the Keystroke-Level Model [PDF]
Software Engineering Practicum
An integral part of the ISR research program is ongoing interaction with industrial-strength software development in a real (not just realistic) setting for hands-on education. The first report below is based on my one-year industrial experience, while the second is based on a semester-long part-time work with local industry.
- Evolving Architecture for Adaptability [PDF]
Software development methodologies are confronted with frequently changing customer needs and rapidly developing technologies. It is critical for an organization to minimize the design cost and time to market of its software products, through innovation in technical, business, and organizational aspects. In this report, I present an industrial case study on a startup company that has successfully built an adaptable software framework to address different customer needs. As a reflection of this study, I present several real-world software engineering issues in hope to provide useful ideas for future reference.
- Is Object-Oriented the Panacea? [PDF]
The reengineering of legacy systems is considered as one of the most significant challenges facing software engineers. Object-oriented analysis and design methodologies are often chosen by design-teams to re-engineer large complex legacy systems. Failure to reengineer can hinder an organization’s attempt to remain competitive. How effective are object-oriented methods for a specific system? What are the design tradeoffs on performance, deployment costs and market window? What are the organizational issues involved? There have not been many pragmatic examples that designers can refer to answer these questions when being under similar circumstances.
In this report, I present a case study on the re-engineering process of a large complex real-time software system using object-oriented design and analysis. Several software engineering issues are addressed from this real-world experience and the lessons learned from the analysis are summarized.