*
Quick Links|Home|Worldwide
Microsoft*
Search for


External Research & Programs

Excellence in Software Engineering Projects

As part of the Excellence in Software Engineering initiative, the following research projects explore software engineering practices that most consistently produce high-quality software at predictable costs. Through these efforts, we hope to increase the prominence and quality of software engineering curriculum in the education of all students who aspire to careers in the software industry and help schools improve the professional readiness of their graduates.

2004–2005 Excellence in Software Engineering Projects

Alex AikenA Course Project for Teaching Lightweight Formal Methods
Alex Aiken
Stanford University

A course organized around the technology of bug finding and verification, where the students do not write programs but rather discover problems in widely used software, can teach students important science and technology as well as practical skills for improving software quality. This course will consist of lectures on algorithms and systems for improving software quality as well as a comprehensive Capstone assignment.

Michael ErnstFormal Methods in Software Development Courses
Michael Ernst
Massachusetts Institute of Technology

The aim is to make formal methods easier to use, by building and providing tools that apply specifications to software development tasks. We will be enhancing our curriculum by integrating formal methods into two courses. Once existing core course and one new elective. These enhancements and new course structure will be in the Spring and Fall of 2005.

David GarlanFormal Models for Software Systems Design
David Garlan
Carnegie Mellon University

Creating a novel formal methods course and accompanying materials that will empower students to use the best of modern formal methods and tools available today and tomorrow, to recognize when they are and are not appropriate, and to apply them in cost-effective ways to real software systems. Professionally packaged for on-campus and distance delivery, an extensible framework, a set of benchmark case studies, and publications describing our course design and experience.

Kris HammondSoftware Engineering and Project Management—Using Formal Methods in Real World Environments
Kris Hammond
Northwestern University

An eight-week introduction to software engineering tools and techniques that will have the look and feel of a standard classroom experience with a focus on team work, specification management, and predicable projection. During this period, we will cover a variety of methods with an emphasis on our take on agile programming techniques. Our primary emphasis will be on the development of habits based on tight specification-coding-testing-verification cycles.

Robert KesslerTeam Software Engineering in the PDA Domain
Robert Kessler
University of Utah

Undergraduate team project course that stresses communication, UML Modeling, Requirements, Architecture, and Design. Course developed with the Compact Framework on HP_6315 PocketPC platform. Students are utilizing Visual Studio 2003 and Visual Studio 2005 (beta) with the Team Foundation Server technology. Single course moving to full two semester required.

Larry LeiferUnderstanding Pair Programming
Larry Leifer
Stanford University

Conducting an investigation into the physical, perceptual, and socio-cognitive factors of pair programming, a promising strategy for coping with these problems. Pair programming is known to cost-efficiently yield better software architectures with dramatically fewer defects than traditional techniques. The result of our work will be a working theory of pair programming that will enable line managers to decide precisely when and why to adopt (or avoid) pair programming.

Z. Meral OzsoyogluIntroduction to Data Management for Digital Biology
Z. Meral Ozsoyoglu
Case Western Reserve University

An undergraduate course for fundamentals of database systems specifically motivated by the database and data management needs to effectively utilize and exploit a wide array of biological/bioscience and biomedical information resources and data sets.

A. Udaya ShankarUsing SeSF to Formally Define and Test Programs Course
A. Udaya Shankar
University of Maryland

The SeSF-C# project will integrate SeSF (Services and Systems Framework) into C#, resulting in a specification and testing environment for distributed C# programs. SeSF is a compositional formalism for specification and verification of distributed systems. We will integrate SeSF into C# by treating SeSF as a markup language and deploying a testing harness.

 


©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement