Wu-Hon
Francis Leung, Ph.D. Industry Professor of Computer Science Office: Office Hours: Tuesdays and Thursdays 2:30pm to
3:30pm Phone: 312.567.5343 Fax: 312.567.5067 Email: leung@iit.edu
What am I working on?
Teaching:
I teach two courses: a senior course on software engineering (CS487) and a
graduate course on operating systems (CS551). In CS487, students learn software
development processes and methods by working in a team to develop a software
project. The operating system course focuses on design and implementation. The
students will develop a subset of a shell, a set of useful system calls and
modify a device driver with additional useful functionalities.
Research:
I now focus on two problems in software
engineering: (1) Can we add new features (functionalities) without changing
code? (2) Can we verify software automatically based on assertions instead of
case-by-case testing? These are the two most important problems in software engineering:
an overwhelming majority of the programmers in the industry are engaged in
changing code and testing, and both activities are labor intensive and error
prone. They are among the main reasons why software development is difficult
and time consuming.
For the
first problem, many believe that when a software system churns often, it is due
to bad design. Sometimes that is the case. But often the programmers just
cannot help it. It can be shown that with existing general purpose programming
languages, implementing a feature by changing the code of other features is
inevitable for a large class of applications including those that require
exception handling (see [1] and [4]).
The use of
assertion based verifier in hardware design is becoming routine. But to do so
in software is much harder. For example, hardware assertions are Boolean
formulas but we must reason in predicate logic with software. Reducing
complexity is key to solving this problem.
The first
problem requires new programming paradigm supported by programming language to
solve. Programming language design can help to reduce the complexity of solving
the second problem. The following papers give more details on our approach to
solve these two problems. You can download some of our results and obtain more
information from the web site: www.openflx.org.
Earlier, my students and I
also worked on protocols, particularly on multicast protocols. The following is
a couple of examples of our results.
[5] T. Venketesan and W. H. Leung, ¡°Implicit Multicast Routing Protocol,¡± International Conference on Networking and Services, October, 2005.
[6] L. Nadeau and W. H. Leung, ¡°Message Ordered Multicast Using Common Building Blocks,¡± Proceedings of InfoScale June, 2006.
My background:
After receiving my Ph.D.
degree in computer science from the University of California, Berkeley, I went
to work in the industry for over twenty years, first at Bell Labs (over 15
years) and then later at Motorola. I started out as a developer and researcher.
Later, I managed both research and development projects. Some of the
development projects that I was involved in employed over a thousand
programmers. Among my proudest technical results: I was the main inventor of
the original patent on remote procedure call, my group developed the switching
software for the first packet voice field trial in the public network, and later
developed the first multimedia conference system based on packet switching
technology. I am an IEEE Fellow, cited for my contributions to operating
systems, protocols and programming methods.