John D. McGregor

Dept of Computer Science

Clemson University

Clemson, SC 29634

Phone: 864-656-5859

Cell Phone: 864-506-4872

Fax: 864-656-0145


Vision: It is possible to build high quality software in a timely manner.

I have had more than a quarter of a century experience with research and trends of software design and development. I have over a decade of substantial experience working on a wide variety of systems developed using object-oriented techniques. This experience includes distributed, real time, embedded systems as well as business information systems in a multi-tiered environment. I have worked in various domains. These include telephony, financial, personnel, medical, scientific, aerospace, and the murky regions of legal domain and expert witness testimony. My roles vary from an independent consultant mentoring corporate and project management through an actual project team member assisting with day to day tasks. I have assisted software development organizations transition their projects as they adopted new techniques such as product line development, object-oriented development, and iterative, incremental development. In addition, as an instructor I have developed and conducted classes that are highly rated by the attendees.





Ph.D. in Mathematics, Peabody College of Vanderbilt University, Nashville, TN.


M.S. in Mathematics, Peabody College of Vanderbilt University, Nashville, TN.


B.S. in Physics, Peabody College of Vanderbilt University, Nashville, TN.





I have held various full-time, tenured positions at the institutions listed below. Most faculty experience has been in computer science. Administrative experience has been at both the department and institution levels.

08/99 to Present

Visiting Scientist: Software Engineering Institute - Product Line Initiative, Carnegie Mellon University, Pittsburgh, PA.

08/89 to Present

Associate Professor of Computer Science: Clemson University, Clemson, SC.

08/83 to 07/89

Professor of Computer Science and Chairman: Murray State University, Murray, KY.

08/77 to 08/83

Associate Professor of Computer Science and Chairman: Christopher Newport College, Newport News, VA.

1973 to 1977

Assistant Professor and Associate Dean: Paine College, Augusta, GA.





Mentor - Guided Project Managers, Technical Managers, Team Leaders and Software Developers in the transition of their roles on projects that were adopting object-oriented development techniques and/ or iterative, incremental development processes. Developed strategies for successful conversion to a software product line approach.

Consultant - Defined development and/or testing processes for both ISO-certified and CMM-evaluated companies; managed domain and application analyses; mentored design and development of software, including ground support software for satellite operations and test systems for electronic hardware; defined and evaluated software architectures.

Instructor - Developed and conducted courses on the following topics:

Product line software development practices and processes

Basic object-oriented concepts

Advanced case studies

Design patterns

Testing techniques for individual components and systems, including distributed systems

Project management

Expert Witness - Assisted in strategy definition, collection and analysis of information; provided trial support and testimony.

Researcher - Applied basic research results to specific industrial strength problems, most recently in the areas of testing and metrics.


Telephony - basic services, wireless and switching software/hardware.

Financial/Insurance - widely distributed, multi-platform transaction processing systems.

Personnel/Management Information - loosely integrated frameworks for management information applications.

Medical Instrumentation - highly accurate, embedded control systems.

Scientific Computation - automatic generation of programs for solving systems of partial differential equations.

Aerospace - ground support for satellite operations.


Project Size: 2 – 1000 people.

Characteristics of projects: Multi-sited; cross-cultural; hierarchical; homogeneous.

Platforms: Unix, Windows NT, and CORBA with both standard and proprietary hardware.

Languages: Java, C++, Smalltalk, CLOS and various others.


Consulting clients have included AT&T Bell Labs, Lucent, Ericsson, Nokia, PrincipalOne Financial Group, BNR, Lotus Development, Abbott Laboratories, Sterling Winthrop Pharmaceuticals R & D, Oxford Industries and many others.






Books or Chapters


A Practical Guide to Testing Object-Oriented Software, with David A. Sykes, Addison-Wesley, 2001.


"Testing Practice Area", chapter in A Framework for Software Product Line Practice - Version 3.0, Software Engineering Institute, Carnegie Mellon University, 2000.


"Component Development Practice Area", chapter in A Framework for Software Product Line Practice - Version 3.0, Software Engineering Institute, Carnegie Mellon University, 2000.


"Capturing Framework Requirements", chapter with Granville G. Miller and Melissa L. Major in Object-Oriented Application Frameworks, John Wiley & Sons, Inc., 1999.


Object-Oriented Software Development: Engineering Software for Reuse, with David A. Sykes, International Thomson Computer Press, 1992.


Papers or Reports


Periodic column on Testing and Quality for the Journal of Object-Oriented Programming.


"The Testing Perspective", The Journal of Software Testing Professionals, v1, n4, 2000.


"A Taxonomy of Module Interaction for Object-Oriented Testing" with Allen Parrish, David Cordes and Brandon Dixon, ACIS International Journal of Computer and Information Science, Winter 2000.


"A Software Development Process for Small Projects" with Melissa L. Russ, IEEE Software, Sept/Oct 2000.


"Exploiting IO Streams to Incorporate a GUI into a Command-driven Application" with Brian Malloy and Shannon Hughes, International Journal of Computers and Applications, 2000.


"Fourth Product Line Practice Workshop Report" with Len Bass, Paul Clements, Patrick Donohoe and Linda Northrop, CMU/SEI-2000-TR-002.


"Selecting Test Cases Based on User Priorities" with Melissa L. Russ, Software Development, March 2000.


"Creating an Event Driven Simulation Infrastructure Using the RMI feature of Java", Western MultiConference ’98, January 1998.


"Using a Juried Approach for Design Pattern Validation", 7th International Conference on Software Quality, October 1997.


"A Testing Effort Metric", Proceedings of the Conference on Object-Oriented Technology, June 1996.


"Testing Object-Oriented Components" with Anuradha Kare, Proceedings of the 17th International Conference on Testing Computer Software, June 1996.


"A Component Test Strategy for Object-Oriented Software", Proceedings of the Ninth International Quality Week, May 1996.


"Let Architectural Reuse Guide Component Reuse", Object Magazine, April 1996, pp. 38 - 47.


"A Comprehensive Program Representation of Object-Oriented Software" with Brain A. Malloy and Rebecca L. Siegmund, Annals of Software Engineering, volume 2, 1996.


"Incorporating Reusability and Extensibility into the CS2 Curriculum" with Brian Malloy, Devidas Gupta and Anuradha Kare, Proceedings of the OOPSLA'95 Educators' Symposium, October 1995.


"Managing Metrics in an Iterative Environment", Object Magazine, 5(6), 1995, pp. 65 - 71.


"Strategies for Closed Laboratory Development and Implementation" with Ms. Brenda C. Parker, SIGCSE Bulletin, 1995.


"An Extensible Program Representation for Object-Oriented Software" with Brian Malloy, Anand Krishnaswamy and Murali Medikonda, SIGPLAN Notices, Dec. 1994.


"Integrating Object-oriented Testing and Development Processes" with Timothy D. Korson, Communications of the ACM, September 1994, pp. 59 - 77.


"Testing Object-Oriented Software", Proceedings of Software Development ’94.


"Constructing Functional Test Cases Using Incrementally Derived State Machines", Proceedings of Eleventh International Conference on Testing Computer Software, 1994.


"Functional Testing of Classes", Proceedings of Seventh International Software Quality Week, 1994.


"A Note on Inheritance and State Machines" with Douglas Dyer, Software Engineering Notes, Oct. 1993.


"Supporting Dimensions of Classification in Object-Oriented Design" with Timothy Korson, Journal of Object-Oriented Programming, Feb 1993.


"The Selection of State-based Test Cases" with Douglas Dyer, 1993 Pacific Northwest Software Quality Conference, 1993.


"The Implementation of a Simulation Language Using Dynamic Binding" with Brian Malloy and Mary Jean Harrold, 1993 Western Simulation MultiConference, SCS, 1993.


"Incremental Testing of Object-Oriented Class Structures" with Mary Jean Harrold, Proceedings of the Fourteenth International Conference on Software Engineering, May, 1992.


"Toward a Testing Methodology for Object-oriented Software Systems" with Mary Jean Harrold, Proceedings of the Workshop on Object-oriented Software Engineering Practice, February 1992.


"A Framework of Classes for Object-Oriented Simulation" with Brian Malloy, 23rd Annual Pittsburgh Conference on Modeling and Simulation, 1992.





Test Assets in a Software Product Line, 1/2 day tutorial presented at the SEI Software Engineering Symposium, 2000.


Test Assets in a Software Product Line, 1/2 day tutorial presented at Software Product Line Conference (SPLC1), 2000.


"Testing Object-Oriented Components, Testing Object-Oriented Systems, Testing Distributed Object Systems", OOPSLA’00, OOPSLA’99, OOPSLA’98, OOPSLA’97, OOPSLA’96, OOPSLA’95.


"Testing Object-Oriented Components", ECOOP’99, ECOOP’98, ECOOP’97.


Presentations at OTC, STAR, various SIGS conferences and others.





DARPA ($45,000) - 12 months for adding object-oriented concepts to introductory computer science courses.

DARPA ($65,000) - 12 months.

IBM & Bell Northern Research ($165,000) - 24 months.

National Science Foundation ($60,000) - 18 months grant.

National Science Foundation ($290,000) - 3 year grant.

Defense Logistics Agency ($94,904) - 25 months.

Lawrence Livermore National Laboratory ($25,000) - 8 months in Livermore, CA.





External Doctoral Dissertation Reviewer - Monash University, 1999 and 2001.

Research Proposal Reviewer - NSF, NASA's Jet Propulsion Lab, Natural Sciences and Engineering Research Council of Canada, and the Research Council of Australia.

Reviewer - NECC, ACM's Computer Science Conference, and SIGCSE Symposium.

Referee - Computing Reviews, Computer, LOPLAS and the Journal of Computing and Information Technology published in Zagreb, Croatia.

Chair or Committee Member

Conference Program Committee - Tools USA, 2000 and 2001.

Doctoral Symposium Chair - ACM's 1998 and 1997 OOPSLA Conference.

Tutorials Chair - ACM's 1993 OOPSLA Conference.

Workshop Chair - ACM's 1992 OOPSLA Conference.

Conference Chairman - National Educational Computing Conference, 1990.

Program Chair - ACM's Computer Science Conference, 1989.

Team Chair and Program Evaluator - CSAC.

Invited Speaker or Lecturer

Invited Speaker - numerous object-oriented conferences such as Object World, C++ at Work, and Object Expo.

ACM Lecturer - 1990 through 1993.

Guest Editor

Guest Editor - Annals of Software Engineering, devoted to Object-Oriented Software: Foundations and Techniques, 1996. Published by J. C. Baltzer AG Science Publishers of Basel Switzerland.

Guest editor - September issue of Communications of the ACM, 1990 and 1994.



Member - ACM's Strategic Planning Committee for Professional Development, 1990.