Douglas C. Schmidt

Last updated

Douglas C. Schmidt (born July 18, 1962) is a computer scientist and author in the fields of object-oriented programming, reactive programming, distributed computing, design patterns and generative AI. He is the inaugural Dean of the School of Computing, Data Sciences & Physics at William & Mary.

Contents

Biography

In August 1994 he joined the faculty of Washington University in St. Louis. [1] From August 1999 to December 2002 he was associate professor with tenure at the University of California, Irvine. During much of this time he worked for DARPA managing US federal funded research programs. In 2003 he became professor of computer Science at Vanderbilt University, and associate chair of computer science and engineering in December 2004. [2] In August 2010 he became a deputy director, research, and chief technology officer at Software Engineering Institute. [3] In April 2013 he became a director at Real-Time Innovations. [4] In January 2025 he became the inaugural Dean of the School of Computing, Data Sciences & Physics at William & Mary. [5]

He led teams that developed an Adaptive Communication Environment (ACE), The ACE ORB (TAO), a component-integrated ACE ORB (CIAO), and an implementation of the Deployment and Configuration standard built on top of TAO (DAnCE). "ORB" refers to a key piece of the Common Object Request Broker Architecture. They were made available as open-source software. [6]

On February 8, 2024, Schmidt was approved by the U.S. Senate Armed Services Committee to become the Director, Operational Test and Evaluation for the Department of Defense. [7] He was confirmed by the full Senate on February 29, 2024. [8]

Publications

Articles

Douglas C. Schmidt published articles in C++ Report and C/C++ Users Journal . He edited "Object Interconnections" column in C/C++ Users Journal, [9] and "Patterns++" column in C++ Report. [10]

Books

Related Research Articles

A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering.

The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, programming languages, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the distributed object paradigm.

In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:

The Adaptive Communication Environment (ACE) is an open source software framework used for network programming. It provides a set of object-oriented C++ classes designed to help address the inherent complexities and challenges in network programming by preventing common errors.

In computing, an abstraction layer or abstraction level is a way of hiding the working details of a subsystem. Examples of software models that use layers of abstraction include the OSI model for network protocols, OpenGL, and other graphics libraries, which allow the separation of concerns to facilitate interoperability and platform independence.

James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.

In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions.

In software engineering, concurrency patterns are those types of design patterns that deal with the multi-threaded programming paradigm.

In computer science, the reentrant mutex is a particular type of mutual exclusion (mutex) device that may be locked multiple times by the same process/thread, without causing a deadlock.

In software engineering, inversion of control (IoC) is a design principle in which custom-written portions of a computer program receive the flow of control from an external source. The term "inversion" is historical: a software architecture with this design "inverts" control as compared to procedural programming. In procedural programming, a program's custom code calls reusable libraries to take care of generic tasks, but with inversion of control, it is the external source or framework that calls the custom code.

William F. "Bill" Opdyke is an American computer scientist and enterprise architect at JPMorgan Chase, known for his early work on code refactoring.

Kevlin Henney is an English author, presenter, and consultant on software development. He has written on the subject of computer programming and development practice for many magazines and sites, including Better Software, The Register, C/C++ Users Journal, Application Development Advisor, JavaSpektrum, C++ Report, Java Report, EXE, and Overload. He is a member of the IEEE Software Advisory Board. Henney is also coauthor of books on patterns and editor of 97 Things Every Programmer Should Know.

Domain engineering, is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse and product line engineering. A key idea in systematic software reuse is the domain. Most organizations work in only a few domains. They repeatedly build similar systems within a given domain with variations to meet different customer needs. Rather than building each new system variant from scratch, significant savings may be achieved by reusing portions of previous systems in the domain to build new ones.

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.

The active object design pattern decouples method execution from method invocation for objects that each reside in their own thread of control. The goal is to introduce concurrency, by using asynchronous method invocation and a scheduler for handling requests.

Software analysis patterns or analysis patterns in software engineering are conceptual models, which capture an abstraction of a situation that can often be encountered in modelling. An analysis pattern can be represented as "a group of related, generic objects (meta-classes) with stereotypical attributes, behaviors, and expected interactions defined in a domain-neutral manner."

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

Linda Rising is an American author, lecturer, independent consultant. Rising is credited as having played a major role in having "moved the pattern approach from design into corporate change." She also contributed to the book 97 Things Every Software Architect Should Know, edited by Kevlin Henney and published by O´Reilly in 2009 (ISBN 059652269X).

Michael Stal is German computer scientist. He received a Ph.D. title from the University of Groningen which appointed him an honorary professorship for software engineering in 2010. Stal is currently working for the corporate technology department of Siemens AG and as a professor at University of Groningen. He is editor-in-chief of the Java programming language magazine JavaSPEKTRUM.

References

  1. "Douglas C. Schmidt's Welcome Page". Faculty web site. Washington University in St. Louis. Archived from the original on May 30, 2018. Retrieved August 10, 2013.
  2. "Douglas C. Schmidt". Faculty web page. Vanderbilt University. Retrieved August 10, 2013.
  3. "SEI Announces New Chief Technology Officer Dr. Douglas C. Schmidt". sei.cmu.edu. August 3, 2010.
  4. "RTI Welcomes New Board Member". rti.com. Archived from the original on April 8, 2014. Retrieved April 8, 2014.
  5. "Renowned computer scientist, alumnus to lead W&M's new School of Computing, Data Sciences & Physics". W&M News. Retrieved October 7, 2024.
  6. "Obtaining ACE, TAO, CIAO, and DAnCE". Download web site. Vanderbilt University. Retrieved August 10, 2013.
  7. "PN1166 — Douglas Craig Schmidt — Department of Defense 118th Congress (2023-2024)". US Congress. February 29, 2024. Retrieved March 1, 2024.
  8. "U.S. Senate confirms Schmidt to lead operational testing and evaluation for the Department of Defense". Vanderbilt University. Retrieved March 12, 2024.
  9. "CUJ and C++ Report Columns on Distributed Object Computing". cs.wustl.edu. Archived from the original on June 14, 2018.
  10. "The Last Waltz, C++ Report, 1999". cs.wustl.edu. Archived from the original on December 5, 2010. Retrieved October 26, 2010.