Some Well-known computer scientists

76
Some Well-known Computer Scientists Yann-Gaël Guéhéneuc Département de génie informatique et de génie logiciel This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License [email protected] Version 1.0 2013/04/22

description

Brief presentations of some of the women and men who made the history of computer science

Transcript of Some Well-known computer scientists

Page 1: Some Well-known computer scientists

Some

Well-known

Computer Scientists

Yann-Gaël Guéhéneuc

Département de génie informatique et de génie logiciel

This work is licensed under a Creative

Commons Attribution-NonCommercial-

ShareAlike 3.0 Unported License

[email protected]

Version 1.0

2013/04/22

Page 2: Some Well-known computer scientists

Any questions/comments are welcome at

2/76

Any questions/comments are welcome at

[email protected]

Page 3: Some Well-known computer scientists

Why Is It Important? (1/2)

“Those who cannot remember the past are

condemned to repeat it”

3/76

—By George Santayanain Life of Reason, Reason in

Common Sense, Scribner's,

1905, page 284

Page 4: Some Well-known computer scientists

Why Is It Important? (2/2)

� Pythagoras’ theorem

� Ohm’s law

� …

4/76

� …

� You know the Nobel Prizes…

… do you know the Turing Awards?

Page 5: Some Well-known computer scientists

How to Choose? (1/2)

� Hundreds of women and men made and are

making the history of computer science

– Difficult choice, impossible choice

5/76

– Inclusion criteria

• Historical importance

• Historical continuity

• Link to software engineering

– No exclusion criteria!

Page 6: Some Well-known computer scientists

How to Choose? (2/2)

� Suggestions for other computer scientists to

appear here

– Please send an e-mail to Yann-Gaël Guéhéneuc

6/76

[email protected]

Page 7: Some Well-known computer scientists

Some Well-known Computer Scientists

1936 Alan Turing

1948 Claude Elwood Shannon

1950 Grace Murray Hopper

1960 John McCarthy

1966 Frances E. Allen

1972 Dave Parnas

1974 Manny Lehman

1975 Frederick Brooks

1986 Edward Yourdon

1987 Barbara Liskov

7/76

1966 Frances E. Allen

1967 Dahl et Nygaard

1969 Charles A. R. Hoare

1970 Edgar F. Codd

1987 Barbara Liskov

1994 Erich Gamma

1997 Grady Booch

Page 8: Some Well-known computer scientists

Alan Turing

� Alan Mathison Turing

– Born June 23rd, 1912, died June 7th, 1954

– Turing machines, undecidability, halting problem, computability

Alan Turing

*1912 †1954

8/76

problem, computability

The Turing Award is given in his honour

IEEE Milestone

– http://en.wikipedia.org/wiki/Alan_Turing

Page 9: Some Well-known computer scientists

Alan Turing

� 1928

– Hilbert introduced the decision problem

9/76

� 1931

– Gödel give results on the limits of proofs and computability

Page 10: Some Well-known computer scientists

Alan Turing

� 1936

– Turing introduce a concept of machines now known as “Turing machines”

– Turing prove with his machines that the halting

10/76

– Turing prove with his machines that the halting problem is undecidable

Page 11: Some Well-known computer scientists

Alan Turing

� Halting problem

– First problem proven undecidable

– Used to prove that other problems are undecidable by reduction

11/76

undecidable by reduction

Page 12: Some Well-known computer scientists

Alan Turing

� Generalisation ≠ particular cases

– Correctness proofs are posibles but on particular problems and not automatically in the general case

12/76

general case

� Formal methods ≠ tests

– Prove the correctness of a particular algorithm

– Prove the presence of errors

Page 13: Some Well-known computer scientists

Alan Turing

� 1938−1945

– Work at Bletchley Park

• British Government Code and Cypher School

• Five major contributions

13/76

• Five major contributions

– Decode the Enigma code of the German army

– Decode the indicator procedure of the Enigma use by the

German navy

– Develop a statistical method to make the “Bombe”

more efficient

– Develop a procedure to decode the

Lorenz SZ 40/42 machines

– Develop a voice scrambler

Page 14: Some Well-known computer scientists

Alan Turing

� 1952

– Turing test

� 1966

– ELIZAJoseph Weizenbaum

*1923 †12008

14/76

Page 15: Some Well-known computer scientists

Claude Elwood Shannon

� Claude Elwood Shannon

– Born April 30th, 1916, died February 24th, 2001

– Father of the information theory

Claude Elwood Shannon

*1916 †12001

15/76

– Father of the information theory

National Medal of Science in the USA in 1966

IEEE Medal of Honor in 1966

– en.wikipedia.org/wiki/Claude_Shannon

Page 16: Some Well-known computer scientists

Claude Elwood Shannon

� 1830s

– Telegraph – Morse Code

16/76

Page 17: Some Well-known computer scientists

Claude Elwood Shannon

� 1830s

– A form of lossless compression

17/76

Page 18: Some Well-known computer scientists

Claude Elwood Shannon

� 1948

« The fundamental problem of communication is that of reproducing at one point, either exactly or

18/76

that of reproducing at one point, either exactly or approximately, a message selected at another point. »

—Shannon, in A Mathematical

Theory of Communication, 1948

Page 19: Some Well-known computer scientists

Claude Elwood Shannon

� 1948

– Probabilistic theory quantifying the average information content of a message

19/76

– Entropy

– Code theory

• Compression

• Detection et correction of errors

– All electronic “communication”!

– Cryptography

Page 20: Some Well-known computer scientists

Grace Murray Hopper

� Grace Murray Hopper (rear admiral)

– Born the 9th of December, 1906, died the 1st of January, 1992

– Mother of the first compiler, of the term

Grace Hopper

*1906 †1992

20/76

– Mother of the first compiler, of the term “debugging”, of COBOL and of standards

Defense Distinguished Service Medal in the USA in 1986

– Cf. http://en.wikipedia.org/wiki/Grace_Hopper

Page 21: Some Well-known computer scientists

Grace Murray Hopper

� 1944

– WWII is almost over

– Computers showed their usefulness

21/76

• Dehomag D11 (Germany/USA, 1930s):

handling of identify cards

• Zuse Z3 (Germany, 1941): flutter

(dynamic aeroelasticity of wings)

• Colossus Mark 1 (Grande Bretagne,

1943): decoding of messages

• Harvard Mark I (USA, 1944): production

of calculus tables for the Navy

Page 22: Some Well-known computer scientists

Grace Murray Hopper

� Principle of the first computers

– Electromechanical or

electromagnetic relays

22/76

electromagnetic relays

– Two active relays make

a third relay active

• Relays “3” et “6” make

relay “9” active for a sum

1947

Page 23: Some Well-known computer scientists

Grace Murray Hopper

� 1950

– Computers become programmable with higher-level languages than microcode or assembly

• UNIVAC I: census

23/76

• UNIVAC I: census

• A-0 (Arithmetic Language version 0)

• Loader or linker more than a compiler

� 1954

– B-0 (Business Language version 0) also known as FLOW-MATIC

Page 24: Some Well-known computer scientists

Grace Murray Hopper

� 1959

– Conference CODASYL (Conference on Data Systems Languages)

– COBOL as successor of FLOW-MATIC

24/76

– COBOL as successor of FLOW-MATIC

– Close to English

� 1970s

– Advocated standards tests for programming languages, FORTRAN in particular

Page 25: Some Well-known computer scientists

John McCarthy

� John McCarthy

– Born the 4th of September, 1927

– Died on the 24 October, 2011

– Father of artificial intelligence, LISP, contributor to time-

John McCarthy

*1927 †2011

25/76

– Father of artificial intelligence, LISP, contributor to time-

sharing computing, inventor of “SaaS”

ACM Turing Award in 1971

National Medal of Science in the USA in 1991

– Cf. http://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)

Page 26: Some Well-known computer scientists

John McCarthy

� Artificial intelligence, 1956

– Champion of logic programming

– Collaboration with Marvin Minsky

26/76

� Inventor of LISP, 1960

– Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I, 1960

– Lambda calculus

– Garbage collection

Page 27: Some Well-known computer scientists

John McCarthy

� Time-sharing systems

– Multiprogramming and multitasking

– Most important change of paradigm in computer science in 1970

DEC PDP-1, c. 1960

27/76

science in 1970

• Sharing of resources to avoid “waiting computation

time (cycles)”

– SaaS

• Software as a Service

• Architecture/engineering based on services

Page 28: Some Well-known computer scientists

Frances E. Allen

� Frances E. Allen

– Born on the 4th of August, 1932

– Pioneer of optimising compilation, code optimisation, and parallelisation

Frances E. Allen

*1932

28/76

optimisation, and parallelisation

AWC Augusta Ada Lovelace Award en 2002

ACM Turing Award en 2006

– Cf. http://en.wikipedia.org/wiki/Frances_E._Allen

Page 29: Some Well-known computer scientists

Frances E. Allen

� Before 1966

– Since the 1930s

• Programmable computers

– Since the 1950s

29/76

– Since the 1950s

• First compilers by Grace Murray Hopper

• Programming languages

– FORTRAN: first complete compiler

– COBOL: first programming language compiled for different

computer architectures (UNIVAC II et RCA 501)

Page 30: Some Well-known computer scientists

Frances E. Allen

� Before 1966

– In 1955

• Context-free grammar invented by Noam Chomsky

– In 1966

30/76

– In 1966

• LR Parsing invented by Donald Knuth

Page 31: Some Well-known computer scientists

Frances E. Allen

� In 1966

– Program Optimization

• Use of graphs to describe programs and to allow their

optimisations

31/76

� In 1970

– Control Flow Analysis et A Basis for Program

Optimization

• Intervals for control-flow analyses

� In 1974

– Interprocedural data flow analysis

• Interprocedural analyses of whole programs

Page 32: Some Well-known computer scientists

Dahl–Nygaard

� Ole-Johan Dahl

– Born 12 October 1931, †29 June 2002

– Co-inventor of the object-oriented paradigm

Ole-Johan Dahl

*1931 †2002

32/76

– ACM Turing Award in 2001

– IEEE J. von Neumann in 2002

– Cf. http://www.olejohandahl.info/

– Cf. http://en.wikipedia.org/wiki/Ole-Johan_Dahl

Page 33: Some Well-known computer scientists

Dahl–Nygaard

� Kristen Nygaard

– Born 27 August 1926, †10 August 2002

– Co-inventor of the object-oriented paradigm

Kristen Nygaard

*1926 †2002

33/76

– ACM Turing Award in 2001

– IEEE J. von Neumann in 2002

– Cf. http://www.ifi.uio.no/in_memoriam_kristen/

– Cf. http://en.wikipedia.org/wiki/Kristen_Nygaard

Page 34: Some Well-known computer scientists

Dahl–Nygaard

� Object-oriented paradigm

– Context

• 1961

– Algol imperative programming

34/76

– Algol imperative programming

– Classes, objects, encapsulation, inheritance, polymorphism

• Simula I

• Simula 67

Page 35: Some Well-known computer scientists

Dahl–Nygaard

� Object-oriented programming

– Smalltalk

• Xerox Parc, 1970–1983

– GUI

35/76

– GUI

– Icons

– WYSIWYG

– Mouse (cf. Stanford Research Institute)

• Dynamic typing

• Reflection

• Garbage collection

Page 36: Some Well-known computer scientists

Dahl–Nygaard

� Object-oriented programming

– C++

• AT&T Bell Labs

• Bjarne Stroustrup

36/76

• Bjarne Stroustrup

• 1980

• Static typing

• Multiple inheritance

• Cf. http://www.approximity.com/ruby/

Comparison_rb_st_m_java.html

Page 37: Some Well-known computer scientists

Dahl–Nygaard

� Object-oriented programming

– Oberon

• ETH Zurich

• Niklaus Wirth

37/76

• Niklaus Wirth

• 1986

• Static typing

• Garbage collection

• Array bounds checking

Page 38: Some Well-known computer scientists

Charles A. R. Hoare

� Sir Charles Antony Richard Hoare

– Born January 11th, 1934

– Inventor of QuickSort

Sir Charles Antony Richard Hoare

*1934

38/76

– Inventor of the Hoare logic

– ACM Turing Award in 1980

– IEEE J. von Neumann in 2011

– Cf. http://en.wikipedia.org/wiki/C._A._R._Hoare

Page 39: Some Well-known computer scientists

Charles A. R. Hoare

� QuickSort

– Context

• 1960

– In Soviet Union, Hoare works at Moscow State University in

39/76

– In Soviet Union, Hoare works at Moscow State University in

automatic translation

– He must sort words to be translated to map them with words

already translated

– QuickSort

• O(n × log(n)) in average, O(n2) worst case

• Works well with a cache

Page 40: Some Well-known computer scientists

Charles A. R. Hoare

� Hoare logic

– Context

• 1969

– Study program correctness

40/76

– Study program correctness

– Original idea sown by Robert Floyd in 1967

– Verification of the correctness of a program

• Hoare triplet: {P} C {Q}

• Pre-condition P, instruction C, post-condition Q

• Set of rules for imperative languages…

Page 41: Some Well-known computer scientists

Edgar F. Codd

� Edgar Frank “Ted” Codd

– Born August 23rd, 1913, died April 18th, 2003

– Father of relational algebra

Edgar F. Codd

*1923 †12003

41/76

– Father of relational algebra

ACM Turing Award en 1999

– http://en.wikipedia.org/wiki/Edgar_F._Codd

Page 42: Some Well-known computer scientists

Edgar F. Codd

� 1960s

– Databases become possible

• Direct-access storages

– No standard data models or query models

42/76

– No standard data models or query models

– Two dominant models

• CODASYL, network model

– “Manual” traversal

• IBM/IMS, hierarchical model

– Relations 1:n only

(Microsoft Windows Registry)

Page 43: Some Well-known computer scientists

Edgar F. Codd

� 1970

– “A Relational Model of Data for Large Shared Data Banks”

• Limits of the CODASYL approach

Lawrence Joseph "Larry" Ellison

*1944

43/76

• Limits of the CODASYL approach

• Introduction of the concept of tables

• Introduction of the concept of relation (keys)

– IBM Future Systems includes SEQUEL in 1975

– Relational Software Inc. release Oracle in 1979

(SEQUEL becomes SQL at the end of the ’70s)

Page 44: Some Well-known computer scientists

Edgar F. Codd

� Today

– SQL is a standard

• ANSI since 1986

• ISO since 1987

44/76

• ISO since 1987

– Implemented by almost all existing databases

– Interoperability

• Careful with proprietary extensions

• Careful with ambiguities

Page 45: Some Well-known computer scientists

Edgar F. Codd

45/76

Page 46: Some Well-known computer scientists

Edgar F. Codd

� NoSQL

– http://nosql-database.org/

– http://www.10gen.com/nosql

46/76

Page 47: Some Well-known computer scientists

Dave Parnas

� Dave Parnas

– Born February 10th, 1941

– Father of the criteria to divide a program into modules in a modular design

Dave Parnas

*1941

47/76

modules in a modular design

IEEE Computer Society 60th Anniversary Award in 2007

– Cf. http://en.wikipedia.org/wiki/David_Parnas

Page 48: Some Well-known computer scientists

Dave Parnas

� Modular design

– Context

• 1972

– Procedural and object

48/76

– Procedural and object

programming languages

– Flow diagrams

– Decomposition of

programs in modules,

classes…

Page 49: Some Well-known computer scientists

Dave Parnas

– Criteria

• “[I]t is almost always incorrect to begin the

decomposition of a system into modules on the basis

of a flowchart. We propose instead that one begins

49/76

of a flowchart. We propose instead that one begins

with a list of difficult design decisions or design

decisions which are likely to change. Each module is then designed to hide such a decision from the others”

• Information hiding = Encapsulation

Page 50: Some Well-known computer scientists

Dave Parnas

– Rewriting of the criteria in terms of

• Cohesion

• Coupling

50/76

• Concepts “invented” by Larry Constantine in 1968

and published in 1972 in W. Stevens, G. Myers, L.

Constantine, "Structured Design", IBM Systems

Journal, 13 (2), 115-139, 1974.

• A module must have a strong cohesion and be weakly coupled to other modules

Page 51: Some Well-known computer scientists

Manny Lehman

� Meir M. “Manny” Lehman

– Died December 29th, 2010

– Father of the laws of software evolution

Manny Lehman

*1925 †2010

51/76

Stevens Award in 2003

– Cf. http://www.doc.ic.ac.uk/news/archive/story/ manny-lehman

– Cf. http://www.ieeeghn.org/wiki/index.php/Oral-History:Meir_Lehman

Page 52: Some Well-known computer scientists

Manny Lehman

� Laws of software evolution

– Context

• 1974

– IBM OS/360 et OS/370

52/76

– IBM OS/360 et OS/370

• Types of programs

– S: can be formally specified

– P: follow an iterative development process

– E: are embedded in our environment

Page 53: Some Well-known computer scientists

Manny Lehman

– Eight laws

1. Continuing change: E-type systems must be continually

adapted or they become progressively less satisfactory

2. Increasing complexity: As an E-type system evolves its

complexity increases unless work is done to maintain or

53/76

complexity increases unless work is done to maintain or

reduce it

3. Self regulation: E-type system evolution process is self

regulating with distribution of product and process measures

close to normal

4. Conservation of organisational stability: The average

effective global activity rate in an evolving E-type system is

invariant over product lifetime

Page 54: Some Well-known computer scientists

Manny Lehman

– Eight laws

5. Conservation of familiarity: As an E-type system evolves all

associated with it must maintain mastery of its content and

behaviour to achieve satisfactory evolution. The average

incremental growth remains invariant as the system evolves

54/76

incremental growth remains invariant as the system evolves

6. Continuing growth: The functional content of E-type systems

must be continually increased to maintain user satisfaction

over their lifetime

7. Declining quality: The quality of E-type systems will appear

to be declining unless they are rigorously maintained and

adapted to operational environment changes

8. Feedback system: E-type evolution processes constitute

multi-level, multi-loop, multi-agent feedback systems and must

be treated as such to achieve significant improvement over

any reasonable base

Page 55: Some Well-known computer scientists

Frederick Brooks

� Frederick Brooks

– Born April 19th, 1931

– Father of Brooks’ Law

Frederick Brooks

*1931

55/76

– IEEE J. von Neumann Medal in 1993

– ACM Turing Award in 1999

– Cf. http://en.wikipedia.org/wiki/Fred_Brooks

Page 56: Some Well-known computer scientists

Frederick Brooks

� Principle of Brooks’ Law

– Context

• 1956–1964

– Manager of the IBM OS/360 development project

56/76

– Manager of the IBM OS/360 development project

– Delays in the delivery

– Book

• The Mythical Man-Month: Essays on Software

Engineering

– Principle

• Adding manpower to a late software project makes it later

Page 57: Some Well-known computer scientists

Frederick Brooks

– Rationale

• It takes some time for the people added to a project to become productive. Brooks calls this the

"ramp up" time. New workers must first become

57/76

"ramp up" time. New workers must first become

educated about the work that has preceded them;

also integrate with a team composed of multiple

engineers who must educate the new worker in their

area of expertise in the code base, day by day

• Communication overheads increase as the number of people increases. The number of

different communication channels increases along

with the square of the number of people

Page 58: Some Well-known computer scientists

Frederick Brooks

– Comments, solutions

• Brooks' Law applies to projects that are already late

• The quantity, quality and role of the people added to

the project also must be taken into consideration

58/76

the project also must be taken into consideration

• Good management and development practices also

help to minimize the impact of Brooks' Law

• Rather than depending on heroes to carry the day

with extraordinary efforts, Wiegers argues that a team

of ordinarily-skilled individuals can repeatedly deliver

timely results in the right work environment

Page 59: Some Well-known computer scientists

Frederick Brooks

– Critics

“How to quadruple your productivity with an army of

student interns”

59/76

• Tolerate a little crowding

• Locate next to a deep pool of hackers

• Know who the best people are and only hire them

• Pay well

• Divide tasks to be as loosely-coupled as possible

• Design your intern projects in advance

Page 60: Some Well-known computer scientists

Edward Yourdon

� Edward Yourdon

– Born April 20th, 1944

– “Inventor” of seven types of cohesion

Edward Yourdon

*1944

60/76

– Cf. http://en.wikipedia.org/wiki/Edward_Yourdon

Page 61: Some Well-known computer scientists

Edward Yourdon

� Modular design

– Context

• 1972

– Procedural and object

61/76

– Procedural and object

programming languages

– Flow diagrams

– Decomposition of

programs in modules,

classes…

• 1987

– Object-oriented

programming is

increasingly popular

Page 62: Some Well-known computer scientists

Edward Yourdon

– Cohesion criteria

1. Accidental: the weakest cohesion in which their is

no links between methods or their link is based on a

useless criteria

62/76

useless criteria

– Utility classes

2. Logic: when methods are linked logically by one or

more common criteria

– All classes pertaining to I/O, to user interactions...

3. Temporal: when methods must be called within a

common time-frame

– A method and the method called in on of its catch

statement, and so on

Page 63: Some Well-known computer scientists

Edward Yourdon

– Cohesion criteria

4. Procedural: when methods must be called in a

specific order

– One method that check user rights and one method that

63/76

– One method that check user rights and one method that

opens a file subsequently

5. Communicational: when methods process the

dame set of data

– All classes pertaining to dates...

Page 64: Some Well-known computer scientists

Edward Yourdon

– Cohesion criteria

6. Sequential: when methods that process the same

set of data must be called in a specific order

– A parser: inputs to one class are the outputs of another

64/76

– A parser: inputs to one class are the outputs of another

7. Functional: highest level of cohesion, when a class

or module is dedicated to a unique task

– Classes that contribute in implementing some

requirements

Page 65: Some Well-known computer scientists

Barbara Liskov

� Barbara Liskov

– Born November 7th, 1939

– Mother of the Liskov’s substitution principle

Barbara Liskov

*1939

65/76

– IEEE J. von Neumann Medal in 2004

– ACM Turing Award in 2008

– Cf. http://en.wikipedia.org/wiki/ Liskov_substitution_principle

Page 66: Some Well-known computer scientists

Barbara Liskov

� Liskov’s substitution principle

– Context

• 1987

– Object-oriented programming is increasingly popular

66/76

– Object-oriented programming is increasingly popular

– Principle

• Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T

Page 67: Some Well-known computer scientists

Barbara Liskov

– Principle

• Behavioural sub-typing is different and stronger than

the concept of sub-typing in type theory

• In type theory

67/76

• In type theory

– Contravariance of parameters: a parameter of type T can

accept object of type S, where S is a sub-type of T

– Covariance of return type: the return type can be “enlarged”

from T to S

• In addition

– Pre-conditions cannot be stronger in a sub-type

– Post-conditions cannot be weaker in a sub-type

– The sub-type S must preserve the invariants of type T

Page 68: Some Well-known computer scientists

Barbara Liskov

– Implementation in Java

• Java < 1.5

– Redefinition

/* Mother class */ public T foo(String a, String b) {...}

68/76

/* Daughter class */ public T foo(String a, String b) {...}

– Overriding

/* Mother class */ public T foo(String a, String b) {...}

/* Daughter class */ public T foo(String a, Integer c) {...}

• Java > 1.5

– Redefinition/* Mother class */ public T foo(String a, String b) {...}

/* Daughter class */ public S foo(String a, String b) {...}

Page 69: Some Well-known computer scientists

Erich Gamma

� Erich Gamma

– Born in 1961

– Father of the software design patterns

Erich Gamma

*1961

69/76

Dahl-Nygaard Prizes in 2006

– Cf. http://en.wikipedia.org/wiki/Erich_Gamma

– Cf. http://c2.com/cgi/wiki?ErichGamma

Page 70: Some Well-known computer scientists

Erich Gamma

� Software design patterns

– Context

• 1977 et 1979

– Christopher Alexander

70/76

– Christopher Alexander

– A Pattern Language: Towns, Buildings, Construction and the

idea of generative patterns

– The Timeless Way of Building and the idea of perfection in

architecture

• 1990

– Object-oriented programs are becoming mainstream

Page 71: Some Well-known computer scientists

Erich Gamma

� A Pattern Language: Towns, Buildings, Construction

– 253 patterns

– Generative grammar

– “At the core... is the idea that people should design for

themselves their own houses, streets and communities.

71/76

themselves their own houses, streets and communities.

This idea... comes simply from the observation that most of

the wonderful places of the world were not made by

architects but by the people”

� Design Patterns: Elements of Reusable Object-Oriented Software

– 23 patterns

– Not a language?

– “Dynamic, highly parameterized software is harder to

understand and build than more static software”

Page 72: Some Well-known computer scientists

Erich Gamma

� Design Patterns: Elements of Reusable Object-Oriented Software

72/76

Software

– Dahl-Nygaard Prizes à

• Ralph Johnson

• Richard Helm

• Erich Gamma

• † John Vlissides

Page 73: Some Well-known computer scientists

Grady Booch

� Grady Booch

– Born February 27th, 1955

– Father of the UML with Jacobson et Rumbaugh

Grady Booch

*1955

73/76

Stevens Award in 2003

– Cf. http://en.wikipedia.org/wiki/Grady_Booch

Page 74: Some Well-known computer scientists

Grady Booch

� UML

– Context

74/76

Page 75: Some Well-known computer scientists

Grady Booch

– Three Amigos and their methods

• Grady Booch,

– Booch Method (design)

• Ivar Jacobson

75/76

• Ivar Jacobson

– Object Oriented Software Engineering, OOSE (use cases)

• James Rumbaugh

– Object Modeling Technique, OMT (analysis)

• Rational Software Corporation

– UML

Page 76: Some Well-known computer scientists

To Be Continued

� ACM A. M. Turing Award

– Cf. http://awards.acm.org/homepage.cfm? awd=140

AITO Dahl-Nygaard Prize

76/76

� AITO Dahl-Nygaard Prize

– http://www.aito.org/Dahl-Nygaard/

� IEEE J. von Neumann Medal

– Cf. http://www.ieee.org/about/awards/bios/ vonneumann_recipients.html