Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Curriculum Vitae for David Coppit
Ph.D. Computer Science. The University of Virginia, January 2003.
M.S. Computer Science. The University of Virginia, June 1998.
B.S. Computer Science. The University of Mississippi, June 1995.
B.S. Physics. The University of Mississippi, June 1995. Graduated
magna cum laude with minors in Economics and Mathematics.
Positions
Winter 2003 to present. Assistant Professor of Computer Science, The
College of William and Mary.
Fall 2002 to Winter 2003. Lecturer in Computer Science, The College of
William and Mary.
Summer 1998. Intern at Hewlett-Packard Research Laboratories.
Fall 1996 to Spring 2002. Research Assistant for Kevin J. Sullivan
(graduate student). Department of Computer Science, The University of
Virginia.
Fall 1995 to Spring 1996. Teaching Assistant. Department of Computer
Science, The University of Virginia.
Courses Taught
CSci 780: Advanced Software Engineering, Fall 2003-2004, 2006.
CSci 420/520: Software Development with Formal Methods, Fall 2005.
CSci 435/535: Software Engineering. Spring 2003-2006.
CSci 243: Discrete Structures. Fall 2002.
Research Publications
My name is in bold. Student names are in bold
italics.
Papers in Progress
David Coppit, Robert Painter, and Meghan
Revelle. Software Plans: A Multidimensional Approach for
Fine-Grained Tangling of Concerns in Code. Submitted to ICSE.
Meghan Revelle and David Coppit. Reverse Engineering
Software Plans Using Formal Concept Analysis. Submitted to AOSD.
David Coppit and Meghan Revelle. The
Intersect/Settle Algorithm for Formal Concept Analysis.
John A. Murphy and David Coppit. Random generation
of test data for complex input spaces.
Justin G. Manweiler and David Coppit. Unbiased
Random Generation of Structured Test Data.
David Coppit, Kevin J. Sullivan, Joanne Bechta Dugan, and Yong Ou.
A formally-based algorithm for solving dynamic fault trees. Completed, but
held since October 2003 by The University of Virginia pending the resolution
of intellectual property issues.
David Coppit, Robert Painter, and Meghan
Revelle. Spotlight: A Prototype Tool for Software Plans. In
Proceedings of 2007 the International Conference on Software
Engineering, Minneapolis, Minnesota, 20-26 May 2007. IEEE. Referreed
formal research demonstration paper, to appear.(21% acceptance
rate)
David Coppit and Jeixin Lian. yagg: An Easy-To-Use Generator for
Structured Test Inputs. In 20th IEEE/ACM International Conference on
Automated Software Engineering, pages 356-359, Long Beach, California,
7-11 November 2005. (22% acceptance rate)
David Coppit and Jennifer M. Haddox-Schatz. Large team projects in
software engineering courses. In Proceedings of the 36th ACM Technical
Symposium on Computer Science Education, pages 137-141, St. Louis,
Missouri, 23-27 February 2005. (32% acceptance rate)
Kevin Sullivan, Jinlin Yang, David Coppit, Sarfraz Khurshid, and
Daniel Jackson. Software
assurance by bounded exhaustive testing. Proceedings of the
International Symposium on Software Testing and Analysis. Boston,
Massachusetts, 11-14 July 2004. (28% acceptance rate)
David Coppit, Robert R. Painter, and Kevin J.
Sullivan. Shared
semantic domains for computational reliability engineering. In
Proceedings of the International Symposium on Software Reliability
Engineering, pages 168-180, Denver, Colorado, 17-20 November 2003. IEEE.
(21% acceptance rate)
David Coppit and Kevin J. Sullivan. Multiple
mass-market applications as components. In Proceedings of the 22nd
International Conference on Software Engineering, pages 273-82, Limerick,
Ireland, 4-11 June 2000. IEEE. (14% acceptance rate)
David Coppit and Kevin J. Sullivan. Galileo: A
tool built from mass-market applications. In Proceedings of the 22nd
International Conference on Software Engineering, pages 750-3, Limerick,
Ireland, 4-11 June 2000. IEEE. Referreed formal research demonstration
paper.
Joanne Bechta Dugan, Kevin J. Sullivan, and David Coppit.
Developing
a high-quality software tool for fault tree analysis. In Proceedings of
the International Symposium on Software Reliability Engineering, pages
222-31, Boca Raton, Florida, 1-4 November 1999. IEEE.
Kevin J. Sullivan, David Coppit, and Joanne Bechta Dugan.
The Galileo fault tree
analysis tool. In Proceedings of the 29th Annual International Symposium
on Fault-Tolerant Computing, pages 232-5, Madison, Wisconsin, 15-18 June
1999. IEEE.
Ragavan Manian, David Coppit, Kevin Sullivan, and Joanne Bechta
Dugan. Bridging the gap
between systems and dynamic fault tree models. In Annual Reliability and
Maintainability Symposium 1999 Proceedings, pages 105-11, Washington,
D.C., 18-21 January 1999. IEEE.
Kevin J. Sullivan, Jake Cockrell, Shengtong Zhang and David
Coppit, Package-oriented
programming of engineering tools. In Proceedings of 1997 the
International Conference on Software Engineering, pages 616-7, Boston,
Massachusetts, 17-23 May 1997. IEEE. Referreed formal research
demonstration paper.
Refereed Workshops
Robert R. Painter and David Coppit. A Model for
Software Plans. In Proceedings of the First International Workshop on the
Modeling and Analysis of Concerns in Software, pages 14-18, St. Louis, Missouri, 16 May
2005. (One of three papers selected for extended presentation.)
David Coppit and Benjamin Cox.
Software
plans for separation of concerns. In Proceedings of the Third AOSD
Workshop on Aspects, Components, and Patterns for Infrastructure Software,
Lancaster, UK, 22 March 2004. IEEE. (55% acceptance rate)
Unrefereed Publications
David Coppit. yagg: Implementation and
Evaluation. Technical Report WM-CS-2005-13, Department of Computer
Science, The College of William and Mary, Williamsburg, Virginia, November
2005.
David Coppit and Kevin J. Sullivan.
Unwrapping. Technical Report
CS-97-17, Department of Computer Science, University of Virginia, July 1997.
Research Presentations
Invited Talks
David Coppit. Using Software Plans to Separate Tangled Features in
Code, University of Delaware, March 15 2006.
David Coppit. Software Plans: A New Approach for Separating
Tangled Concerns. National Institute of Aerospace, May 13 2005.
David Coppit. Practical Techniques for Automated
Specification-Based Testing. Virginia Summit on Secure and Dependable
Computing Systems, April 20-21 2005.
Kevin J. Sullivan, Jake Cockrell, Shengtong Zhang and David
Coppit. "Package-oriented programming of engineering tools," 19th
International Conference on Software Engineering, Boston, Massachusetts, May
1997.
Workshops and Tutorials
Robert R. Painter and David Coppit, "A Model for Software
Plans," In the First International Workshop on the Modeling and Analysis
of Concerns in Software, St. Louis, Missouri, 16 May 2005. (One of three
papers selected for extended presentation.).
David Coppit and Benjamin Cox,
"Software plans for
separation of concerns," Third AOSD Workshop on Aspects, Components, and
Patterns for Infrastructure Software, Lancaster, UK, 22 March 2004.
David Coppit, Joanne Bechta Dugan, and Kevin J. Sullivan, "The
Galileo/ASSAP dynamic fault tree modeling and analysis tool," Dynamic Fault
Tree Workshop, Charlottesville, Virginia, November 2001.
David Coppit, Joanne Bechta Dugan, and Kevin J. Sullivan.
"The Galileo/ASSAP dynamic fault tree
tool," 2nd NASA Probabilistic Risk Assessment Workshop, Charlottesville,
Virginia, June 2001.
David Coppit, Kevin J. Sullivan, and Joanne Bechta Dugan. "The
Galileo/ASSAP dynamic fault tree tool," 1st NASA Probabilistic Risk Assessment
Workshop, Rockville, Maryland, October 2000.
David Coppit and Kevin J. Sullivan.
"Software engineering of
critical software tools". Tutorial presented at the annual Reliability and
Maintainability Symposium, Washington D.C., 18-20 January 1999.
Posters
David Coppit and Jeixin Lian. "yagg: An
Easy-To-Use Generator for Structured Test Inputs". 20th IEEE/ACM
International Conference on Automated Software Engineering, Long Beach,
California, 7-11 November 2005.
External Support
Grant Proposals Under Review
"Software Plans: Multi-Dimensional Representations of Source Code".
($30K, Submitted to the Jeffress Memorial Trust.)
"CAREER: Software Plans: Multi-Dimensional Separation of Concerns".
($578K, Submitted to the NSF CAREER Program.)
Grants
$328,784, "Software Plans: Multi-Dimensional Separation of Concerns", Air
Force Office of Scientific Research award number FA9550-07-1-0030, 12/1/2007
to 11/30/2009.
Subcontracts
$55,666 University of Virginia, for NASA Grant NAS1-02078. (Only $37,833
disbursed due to NASA budget shortfalls)
Software Donations
Edison Design Group C/C++ and Java compiler front ends
Justin Manweiler. Spring 2004 to Fall 2005. "Unbiased
Random Generation of Structured Test Data."
Michael Weissberger. Spring 2003 to Spring 2004. "Location-based
information dissemination."
Benjamin Cox. Spring 2003 to Spring 2004. Undergraduate honors program.
"Software plans for separation of concerns." Winner of the 1st Annual Park
Undergraduate Research Award.
Aaron Ward. Spring 2004. Independent study. "Motion capture and 3D
modeling."
Dipti Ramnarain. Fall 2002. Independent study. The "CMDB Web Application"
for Capital One of Richmond.
Masters
Jackie Murphy. Summer 2006 to present. "Random generation
of test data for complex input spaces."
Will Thomasson. Spring 2004 to Spring 2005. "An Evaluation of Software
Plans for Software Development."
Meghan Revelle. Spring 2004 to Fall 2005. "Developing Guidelines for
Identifying Concerns".
Jennifer Haddox-Schatz. January 2003 to Spring 2004. "Using Formal
Specifications to Create Effective Assertions."
Ashwin Mundra. Fall 2003 to Spring 2004. "Bounded Exhaustive Verification
With Assertions."
Robert R. Painter. Spring 2002 to Fall 2003. "Toward a Formal General
Intermediate Dependability Modeling Language."
PhD
Meghan Revelle. Fall 2005 to present. "Reverse-Engineering Software Plans
from Legacy Code."
Jiexin Lian. Summer 2004. Helped to develop yagg, software for generation
of structurally complex inputs for testing.
Robert R. Painter. Fall 2003 to present. "Software Plans for Separation
of Concerns."
Service
Panels
NSF Panelist 2005
Reviews
Transactions on Reliability 2005
Journal on Educational Resources in Computing 2005
International Journal on Software Tools for Technology Transfer 2005
SIGMETRICS Performance Evaluation Review 2005
Program Committees
Specification and Verification of Component-Based Systems Workshop.
Portland, Oregon. November 2006.
ISSRE 2006 Student Paper Program Committee. Raleigh, North Carolina.
November 2006.
First International Workshop on the Modeling and Analysis of Concerns in
Software. St. Louis, Missouri. May 2005.
PhD Committees
Robert Painter. (Advisor)
Meghan Revelle. (Advisor)
Kenneth Blakely.
Robert Marmorstein.
Radu Siminiceanu. Fall 2003. "Structural Model Checking"
Master's Committees
John Robert Hott. Spring 2007.
Jeff Walter. Spring 2005.
Hongri Jiang. Fall 2003. "Stationary Solution of Large Continuous Time
Markov Chains Using Multilevel Solution Algorithm and Memory-Efficient
Kronecker Operations"
Paul DiPalma. Fall 2003 to Fall 2004.
Departmental Committees
Graduate curriculum committee: Fall 2006 to present.
Undergraduate curriculum committee: Fall 2002 to present. Helped to
develop a new required undergraduate course, "Software Development", for the
fall of 2004.
Other Service
Judge for ACM Programming Contest at William and Mary. 2002 and
2003.
Software Written and Maintained
This section reflects my view that software engineering researchers should
actually engineer software. Such software development efforts provide research
insights, as well as case studies for research ideas. Where appropriate, I
have included a summary of the impact of my software.
Spotlight:
An Eclipse-based IDE that implements software plans. A software plan
is a view of a module that pertains to a single relevant concern, abstracting
away irrelevant concerns and simplifying the code. For example, a Java class
can be implemented in terms of multiple plans that either focus on different
features, or integrate features.
Yet another generator generator
(yagg): Given a grammar, generates a program that generates all possible
strings of a user-specified size. This software was developed to support my
research on bounded exhaustive testing.
The Nova dynamic fault tree solver: The first dynamic fault tree solver
which implements a formally-defined dynamic fault tree modeling language. Was
used to help verify the correctness of the Galileo solver.
grepmail: Searches
mailboxes for messages based on regular expressions and various types of
constraints. Included in the Debian Linux distribution, named application of
the week 11 April 2000 on Linuxcare. Used by the FTC to
scan hundreds of thousands of emails in order to find emails promoting illegal
pyramid scams.
The Galileo dynamic fault tree solver: With Ragavan Manian, helped design
and implement a DFT solver for Galileo. This solver is part of
Galileo/ASSAP, a version of Galileo developed for NASA and now sold by Exelix Corporation.
News Clipper: A file processor
that interprets expressions written in the News Clipper command language,
replacing them with data collected from the Internet. Sold by Binary Research
International in 1999, and Spinnaker Software (a company I founded) from 2000
to 2001. Most significant customer: football.com.
Java Othello: A
web-based Java server and computer player. Helped write the computer player.
Cited in Elements of
Web Design by Darcy DiNucci, Maria Giudice and Lynne Stiles.