Grady Booch

Last updated
Grady Booch
Grady Booch, CHM 2011 2 cropped.jpg
Grady Booch in 2011
Born (1955-02-27) February 27, 1955 (age 69)
Amarillo, Texas, U.S.
Education U.S. Air Force Academy (B.S.)
University of California, Santa Barbara (M.S.)
Known for
Awards
Scientific career
Institutions
Website researcher.watson.ibm.com/researcher/view.php?person=us-gbooch

Grady Booch (born February 27, 1955) is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh. He is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments. [1] [2] [3] [4]

Contents

Education

Booch earned his bachelor's degree in 1977 from the United States Air Force Academy and a master's degree in electrical engineering in 1979 from the University of California, Santa Barbara. [5]

Career and research

Booch worked at Vandenberg Air Force Base after he graduated. He started as a project engineer and later managed ground-support missions for the space shuttle and other projects. After he gained his master's degree he became an instructor at the Air Force Academy. [6]

Booch served as Chief Scientist of Rational Software Corporation from its founding in 1981 through its acquisition by IBM in 2003, where he continued to work until March 2008. After this he became Chief Scientist, Software Engineering in IBM Research and series editor for Benjamin Cummings.

Booch has devoted his life's work to improving the art and the science of software development. In the 1980s, he wrote one of the more popular books on programming in Ada. He is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh in the 1990s.

IBM 1130

Booch got his first exposure to programming on an IBM 1130. [7]

... I pounded the doors at the local IBM sales office until a salesman took pity on me. After we chatted for a while, he handed me a Fortran [manual]. I'm sure he gave it to me thinking, "I'll never hear from this kid again." I returned the following week saying, "This is really cool. I've read the whole thing and have written a small program. Where can I find a computer?" The fellow, to my delight, found me programming time on an IBM 1130 on weekends and late-evening hours. That was my first programming experience, and I must thank that anonymous IBM salesman for launching my career. Thank you, IBM.

Booch method

Class diagram Booch-diagram.png
Class diagram

Booch developed the 'Booch method of software development, which he presents in his 1991/94 book, Object Oriented Analysis and Design With Applications. [8] Is is an iterative object-oriented development process, [9] and a set of recommended practices. [10] It is composed of an object modeling language, [11] an iterative object-oriented development process, [9] and a set of recommended practices. [10]

He advises adding more classes to simplify complex code. The Booch method is a technique used in software engineering. It is an object modeling language and methodology that was widely used in object-oriented analysis and design. The method was authored by [Booch when he was working for Rational Software (acquired by IBM), published in 1992 and revised in 1994. It was widely used in software engineering for object-oriented analysis and design and benefited from ample documentation and support tools. [12]

The Booch notation is characterized by cloud shapes to represent classes and distinguishes the following diagrams:

ModelTypeDiagramUML correspondence
LogicalStaticClass diagram Class diagram
Object diagram Object diagram
DynamicState transition diagram State chart diagram
Interaction diagram Sequence diagram
PhysicalStaticModule diagram Component diagram
Process diagram Deployment diagram

The process is organized around a macro and a micro process. [8]

The macro process identifies the following activities cycle:

The micro process is applied to new classes, structures or behaviors that emerge during the macro process. It is made of the following cycle:

The notation aspect of the Booch method has now been superseded by the Unified Modeling Language (UML), which features graphical elements from the Booch method along with elements from the object-modeling technique (OMT) and object-oriented software engineering (OOSE).

Methodological aspects of the Booch method have been incorporated into several methodologies and processes, the primary such methodology being the Rational Unified Process (RUP).

Design patterns

Booch is also an advocate of design patterns. For instance, he wrote the foreword to Design Patterns , an early and highly influential book in the field.

IBM Research - Almaden

He now is part of IBM Research - Almaden, serving as Chief Scientist for Software Engineering, where he continues his work on the "Handbook of Software Architecture" and also leads several long-term projects in software engineering. Grady has served as architect and architectural mentor for numerous complex software-intensive systems around the world.

Publications

Grady Booch published several articles and books. A selection:

  • Software Engineering with Ada . [13]
  • Object Solutions: Managing the Object-Oriented Project. [14]
  • The Unified Software Development Process. With Ivar Jacobson and James Rumbaugh. [15]
  • The Complete UML Training Course. With James Rumbaugh and Ivar Jacobson. [16]
  • The Unified Modeling Language Reference Manual, Second Edition. With James Rumbaugh and Ivar Jacobson. [17]
  • The Unified Modeling Language User Guide, Second Edition. With James Rumbaugh and Ivar Jacobson. [18]
  • Object-Oriented Analysis and Design with Applications. [19]

Awards and honors

Booch at the IEEE Computer Society's first TechIgnite conference GradyBoochAtIEEETechIgnite2017.jpg
Booch at the IEEE Computer Society's first TechIgnite conference

In 1995, Booch was inducted as a Fellow of the Association for Computing Machinery. [20] He was named an IBM Fellow in 2003, soon after his entry into IBM, and assumed his current role on March 18, 2008. He was recognized as an IEEE Fellow in 2010. [21] In 2012, Booch was awarded the Lovelace Medal for 2012 by the British Computer Society [22] and gave the 2013 Lovelace Lecture. [23] He gave the Turing Lecture in 2007. He was awarded the IEEE Computer Society Computer Pioneer award in 2016 for his pioneering work in Object Modeling that led to the creation of the Unified Modeling Language (UML). [24]

Related Research Articles

<span class="mw-page-title-main">Object-modeling language</span> Component in software development

An object-modeling language is a standardized set of symbols used to model a software system using an object-oriented framework. The symbols can be either informal or formal ranging from predefined graphical templates to formal object models defined by grammars and specifications.

<span class="mw-page-title-main">Unified Modeling Language</span> Software system design modeling tool

The unified modeling language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system.

<span class="mw-page-title-main">Object-modeling technique</span> Object modeling approach for software modeling

The object-modeling technique (OMT) is an object modeling approach for software modeling and designing. It was developed around 1991 by Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems and to support object-oriented programming. OMT describes object model or static structure of the system.

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

In software and systems engineering, a use case is a potential scenario in which a system receives an external request and responds to it. A use case is a list of actions or event steps typically defining the interactions between a role and a system to achieve a goal. The actor can be a human or another external system. In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals. The detailed requirements may then be captured in the Systems Modeling Language (SysML) or as contractual statements.

<span class="mw-page-title-main">Computer-aided software engineering</span> Domain of software tools

Computer-aided software engineering (CASE) is a domain of software tools used to design and implement applications. CASE tools are similar to and are partly inspired by computer-aided design (CAD) tools used for designing hardware products. CASE tools are intended to help develop high-quality, defect-free, and maintainable software. CASE software was often associated with methods for the development of information systems together with automated tools that could be used in the software development process.

James E. Rumbaugh is an American computer scientist and object-oriented methodologist who is best known for his work in creating the Object Modeling Technique (OMT) and the Unified Modeling Language (UML).

<span class="mw-page-title-main">Ivar Jacobson</span> Swedish computer scientist and software engineer

Ivar Hjalmar Jacobson is a Swedish computer scientist and software engineer, known as a major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development, and Essence.

A stereotype is one of three types of extensibility mechanisms in the Unified Modeling Language (UML), the other two being tags and constraints. They allow designers to extend the vocabulary of UML in order to create new model elements, derived from existing ones, but that have specific properties that are suitable for a particular domain or otherwise specialized usage. The nomenclature is derived from the original meaning of stereotype, used in printing. For example, when modeling a network you might need to have symbols for representing routers and hubs. By using stereotyped nodes you can make these things appear as primitive building blocks.

The Shlaer–Mellor method, also known as object-oriented systems analysis (OOSA) or object-oriented analysis (OOA) is an object-oriented software development methodology introduced by Sally Shlaer and Stephen Mellor in 1988. The method makes the documented analysis so precise that it is possible to implement the analysis model directly by translation to the target architecture, rather than by elaborating model changes through a series of more platform-specific models. In the new millennium the Shlaer–Mellor method has migrated to the UML notation, becoming Executable UML.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

<span class="mw-page-title-main">Activity diagram</span> Graphical representation of a workflow

Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration, and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and organizational processes, as well as the data flows intersecting with the related activities. "Object nodes hold data that is input to and output from executable nodes, and moves across object flow edges. Control nodes specify sequencing of executable nodes via control flow edges." In other words, although activity diagrams primarily show the overall control flow, they can also include elements showing the data flow between activities through one or more data stores.

UML Partners was a consortium of system integrators and vendors convened in 1996 to specify the Unified Modeling Language (UML). Initially the consortium was led by Grady Booch, Ivar Jacobson, and James Rumbaugh of Rational Software. The UML Partners' UML 1.0 specification draft was proposed to the Object Management Group (OMG) in January 1997. During the same month the UML Partners formed a Semantics Task Force, chaired by Cris Kobryn, to finalize the semantics of the specification and integrate it with other standardization efforts. The result of this work, UML 1.1, was submitted to the OMG in August 1997 and adopted by the OMG in November 1997.

<span class="mw-page-title-main">Unified process</span> Object oriented software development process framework

The unified software development process or unified process is an iterative and incremental software development process framework. The best-known and extensively documented refinement of the unified process is the rational unified process (RUP). Other examples are OpenUP and agile unified process.

Metadata modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable to and useful for some predefined class of problems.

<span class="mw-page-title-main">RUP hump</span>

A RUP ‘hump’ is a plot of effort spent over time during a particular Rational Unified Process (RUP) discipline. The RUP hump chart consists of a collection of humps for all RUP disciplines. This diagram was created in 1993 during a workshop on architecture and process and was inspired by work by Grady Booch and Boehm. It has been part of the Rational Objectory Process after reviews by Dyrhage and Bylund and moved on to play a more important role in the RUP in 1998 when it served as the initial page for using the digital version of the process. Its final form was published by Philippe Kruchten in 1998. An older version as later used by Jacobson, Booch and Rumbaugh and an altered version was used by Royce.

Information technology (IT) architecture is the process of development of methodical information technology specifications, models and guidelines, using a variety of information technology notations, for example Unified Modeling Language (UML), within a coherent information technology architecture framework, following formal and informal information technology solution, enterprise, and infrastructure architecture processes. These processes have been developed in the past few decades in response to the requirement for a coherent, consistent approach to delivery of information technology capabilities. They have been developed by information technology product vendors and independent consultancies, such as for example the Open Group, based on real experiences in the information technology marketplace and collaboration amongst industry stakeholders. Best practice information technology architecture encourages the use of open technology standards and global technology interoperability. Information technology architecture can also be called a high-level map or plan of the information assets in an organization, including the physical design of the building that holds the hardware.

UML is a modeling language used by software developers. UML can be used to develop diagrams and provide users (programmers) with ready-to-use, expressive modeling examples. Some UML tools generate program language code from UML. UML can be used for modeling a system independent of a platform language. UML is a graphical language for visualizing, specifying, constructing, and documenting information about software-intensive systems. UML gives a standard way to write a system model, covering conceptual ideas. With an understanding of modeling, the use and application of UML can make the software development process more efficient.

<span class="mw-page-title-main">Use case diagram</span> Graphical depiction of system interactions

A use case diagram is a graphical depiction of a user's possible interactions with a system. A use case diagram shows various use cases and different types of users the system has and will often be accompanied by other types of diagrams as well. The use cases are represented by either circles or ellipses. The actors are often shown as stick figures.

The entity–control–boundary (ECB), or entity–boundary–control (EBC), or boundary–control–entity (BCE) is an architectural pattern used in use-case–driven object-oriented programming that structures the classes composing high-level object-oriented source code according to their responsibilities in the use-case realization.

References

  1. "Software Engineering Radio – The Podcast for Professional Software Developers". se-radio.net.
  2. ""The Promise, The Limits, The Beauty of Software" talk at Yahoo!". Archived from the original on 2007-06-01.
  3. "There is joy in software. Podcast".
  4. "Grady Booch On Architecture podcast series". Archived from the original on 2018-08-03. Retrieved 2010-08-05.
  5. Swaine, Michael (2007-03-09). "Dr. Dobb's Excellence in Programming Award". Dr. Dobb's Journal.
  6. Murphy, Kieron. "Grady Booch: A man of methods". developer.com. Archived from the original on 10 March 2003. Retrieved 13 August 2020.
  7. Booch, Grady (2003-04-03). "Quote from interview: Grady Booch polishes his crystal ball". IBM . Retrieved 2007-01-16.
  8. 1 2 Booch, Grady (1993). Object-oriented Analysis and Design with Applications (2nd ed.). Redwood City: Benjamin Cummings. ISBN   0-8053-5340-2.
  9. 1 2 Booch, Grady (1994). "Chapter 6:The process". Object-Oriented Analysis and Design with Applications (2nd ed.). Addison-Wesley. ISBN   0-8053-5340-2.
  10. 1 2 Booch, Grady (1994). "Chapter 7:Pragmatics". Object-Oriented Analysis and Design with Applications (2nd ed.). Addison-Wesley. ISBN   0-8053-5340-2.
  11. Booch, Grady (1994). "Chapter 5:Notation". Object-Oriented Analysis and Design with Applications (2nd ed.). Addison-Wesley. ISBN   0-8053-5340-2.
  12. Martin, Robert Cecil (1995). Designing Object-Oriented C++ Applications using the Booch Method. Prentice-Hall. ISBN   0-13-203837-4.
  13. Benjamin/Cummings (1983) ISBN   0-8053-0604-8.
  14. Pearson Education (1995) ISBN   0-8053-0594-7.
  15. Prentice Hall (1999) ISBN   978-0-201-57169-1.
  16. Prentice Hall (2000) ISBN   0-13-087014-5.
  17. Addison-Wesley (2004) ISBN   978-0-321-24562-5.
  18. Addison-Wesley (2005) ISBN   978-0-321-26797-9.
  19. Addison-Wesley (2007) ISBN   0-201-89551-X.
  20. "ACM: Fellows Award / Grady Booch". Fellows.acm.org. Archived from the original on 2012-05-27. Retrieved 2013-03-19.
  21. "Fellow Class of 2010". IEEE. Archived from the original on 2013-05-16. Retrieved 2013-03-19.
  22. "Grady Booch presented with BCS Lovelace Medal". BCS. 29 May 2012. Archived from the original on 2015-09-23. Retrieved 11 December 2013.
  23. "Trends in programming". BCS. Grady Booch, who gave 2013's BCS Lovelace Lecture, has, ...
  24. "Grady Booch | IEEE Computer Society". 11 April 2018. Retrieved 2019-06-06.