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
A 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.
Formal
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.
Formal 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.
Software
Engineering and Project ManagementUsing 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.
Team
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.
Understanding
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.
Introduction 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.
Using 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.
|