# James Rumbaugh

James E. (Jim) Rumbaugh (born August 22, 1947) 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).

## Quotes

* The Unified Modeling Language (UML) is a general-purpose visual modeling language that is used to specify, visualize, construct, and document the artifacts of a software system. It captures decisions and understanding about systems that must be constructed. It is used to understand, design, browse, conﬁgure, maintain, and control information about such systems. It is intended for use with all development methods, lifecycle stages, application domains, and media. The modeling language is intended to unify past experience about modeling techniques and to incorporate current software best practices into a standard approach. UML includes semantic concepts, notation, and guidelines. It has static, dynamic, environmental, and organizational parts. It is intended to be supported by interactive visual modeling tools that have code generators and report writers. The UML speciﬁcation does not deﬁne a standard process but is intended to be useful with an iterative development process. It is intended to support most existing object-oriented development processes.
** James Rumbaugh, Ivar Jacobson & Grady Booch (1998) The Unified Modeling Language Reference Manual. p. 1
* I know that I disagree with many other UML experts, but there is no magic about UML. If you can generate code from a model, then it is programming language. And UML is not a well-designed programming language. The most important reason is that it lacks a well-defined point of view, partly by intent and partly because of the tyranny of the OMG standardization process that tries to provide everything to everybody. It doesn't have a well-defined underlying set of assumptions about memory, storage, concurrency, or almost anything else. How can you program in such a language? The fact is that UML and other modelling language are not meant to be executable. The point of models is that they are imprecise and ambiguous. This drove many theoreticians crazy so they tried to make UML "precise", but models are imprecise for a reason: we leave out things that have a small effect so we can concentrate on the things that have big or global effects. That's how it works in physics models: you model the big effect (such as the gravitation from the sun) and then you treat the smaller effects as perturbation to the basic model (such as the effects of the planets on each other). If you tried to solve the entire set of equations directly in full detail, you couldn't do anything.
** James Rumbaugh in Federico Biancuzzi and Shane Warden eds. (2009) Masterminds of Programming. p. 339; cited in "Quote by James Rumbaugh" on ptidej.net. Last updated 2013-04-09 by guehene; Rumbaugh is responding to the question: "What do you think of using UML to generate implementation code?"

### Object-oriented modeling and design (1990)

James R. Rumbaugh, Michael R. Blaha, William Lorensen, Frederick Eddy & William Premerlani (1990). Object-oriented modeling and design.
* If two classes express the same information, the most descriptive name should be kept. For example, although customer might describe a person taking an airline ﬂight, Passenger is more descriptive.
** p. 153; as cited in: Roger Chiang, ‎Keng Siau, ‎Bill C. Hardgrave (2009) Systems Analysis and Design. p. 163
* The name of a class should reﬂect its intrinsic nature and not a role that it plays in an association. For example, Owner would be a poor name for a class in a car manufacturer's database. What if a list of drivers is added later? What about persons who lease cars? The proper class is Person (or possibly Customer), which assumes various different roles, such as owner, driver, and lessee.
** p. 155; as cited in: Roger Chiang et al (2009, p. 165)
* Constructs extraneous to the real world should be eliminated from the analysis model. They may be needed later during design, but not now. For example, CPU subroutine, process, algorithm, and interrupt are implementation constructs for most applications [and should be excluded from the analysis model]...
** p. 155; as cited in: Roger Chiang et al (2009, p. 165)

## Quotes about James Rumbaugh

* The key books about object-oriented graphical modeling languages appeared between 1988 and 1992. Leading figures included Grady Booch [Booch,OOAD]; Peter Coad [Coad, OOA], [Coad, OOD]; Ivar Jacobson (Objectory) [Jacobson, OOSE]; Jim Odell [Odell]; Jim Rumbaugh (OMT) [Rumbaugh, insights], [Rumbaugh, OMT]; Sally Shlaer and Steve Mellor [Shlaer and Mellor, data], [Shlaer and Mellor, states] ; and Rebecca Wirfs-Brock (Responsibility Driven Design) [Wirfs-Brock].
** Martin Fowler (2004) A Brief Guide to the Standard Object Modeling Language. p. 7
* Dr. James Rumbaugh is one of the leading object-oriented methodologists. He is the chief developer of the Object Modeling Technique (OMT) and the lead author of the best-selling book Object-Oriented Modeling and Design. Before joining Rational Software Corporation in October 1994, he worked for more than 25 years at General Electric Research and Development Center in Schenectady, New York.
** Pearson Education (2013) "James Rumbaugh" at informit.com

## External links

* James Rumbaugh Biography on InformIT