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, distributed computing and design patterns.

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]

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. [5]

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

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, [8] and "Patterns++" column in C++ Report. [9]

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. Design patterns are commonly used to improve the flexibility of object-oriented systems.

<span class="mw-page-title-main">Kent Beck</span> American software engineer

Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

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 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 software development, code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.

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.

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."

In the field of software development, an interceptor pattern is a software design pattern that is used when software systems or frameworks want to offer a way to change, or augment, their usual processing cycle. For example, a (simplified) typical processing sequence for a web-server is to receive a URI from the browser, map it to a file on disk, open the file and send its contents to the browser. Any of these steps could be replaced or changed, e.g. by replacing the way URIs are mapped to filenames, or by inserting a new step which processes the files contents.

<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.

David S. Frankel is an American Information Technology expert and consultant, known for his work on model-driven engineering and semantic information modeling.

<span class="mw-page-title-main">Mohamed Fayad</span> Egyptian computer scientist

Mohamed Fayad is a professor of Computer Engineering at San Jose State University, and author of many publications in the area of software engineering.

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. "Obtaining ACE, TAO, CIAO, and DAnCE". Download web site. Vanderbilt University. Retrieved August 10, 2013.
  6. "PN1166 — Douglas Craig Schmidt — Department of Defense 118th Congress (2023-2024)". US Congress. February 29, 2024. Retrieved March 1, 2024.
  7. "U.S. Senate confirms Schmidt to lead operational testing and evaluation for the Department of Defense". Vanderbilt University. Retrieved March 12, 2024.
  8. "CUJ and C++ Report Columns on Distributed Object Computing". cs.wustl.edu. Archived from the original on June 14, 2018.
  9. "The Last Waltz, C++ Report, 1999". cs.wustl.edu. Archived from the original on December 5, 2010. Retrieved October 26, 2010.