Thinking Object Oriented

Total Page:16

File Type:pdf, Size:1020Kb

Thinking Object Oriented Chapter 1 Thinking Ob ject Oriented Ob ject-oriented programming has b ecome exceedingly p opular in the past few years. Soft- ware pro ducers rush to release ob ject-oriented versions of their pro ducts. Countless b o oks and sp ecial issues of academic and trade journals have app eared on the sub ject. Students strive to b e able somehow to list \exp erience in ob ject-oriented programming" on their re- sumes. To judge from this frantic activity, ob ject-oriented programming is b eing greeted with an even greater p opularity than wehave seen in the past heralding earlier revolutionary ideas, such as \structured programming" or \exp ert systems". My intent in this rst chapter is to investigate and explain the basic principles of ob ject oriented programming, and in doing so to illustrate the following two prop ositions: OOP is a revolutionary idea, totally unlikeanything that has come b efore in program- ming. OOP is an evolutionary step, following naturally on the heels of earlier programming abstractions. 1.1 Why is Ob ject-Oriented Programming Popular? To judge from much of the p opular press, the following represent a few of the p ossible reasons why Ob ject-oriented programming has, in the past decade, b ecome so p opular: The hop e that it will quickly and easily lead to increased pro ductivity and improved reliability help solve the software crises. The desire for an easy transition from existing languages. The resonant similarity to techniques of thinking ab out problems in other domains. 1 2 CHAPTER 1. THINKING OBJECT ORIENTED Ob ject-Oriented programming is just the latest in a long series of solutions that have b een prop osed to help solve the \software crises". At heart, the software crises simply means that our imaginations, and the tasks wewould like to solve with the help of computers, almost always nearly outstrip our abilities. But, while ob ject-oriented techniques do facilitate the creation of complex software sys- tems, it is imp ortant to rememb er that OOP is not a \silver bullet", a term made p opular byFred Bro oks [Bro oks 87]. Programming a computer is still one of the most dicult tasks ever undertaken byhumankind; b ecoming pro cient in programming requires talent, creativity,intelligence, logic, the ability to build and use abstractions, and exp erience { even when the b est of to ols are available. I susp ect another reason for the particular p opularity of languages such as C++ and Ob ject Pascal as opp osed to languages such as Smalltalk and Beta is that managers and programmers alikehopethataCorPascal programmer can b e changed into a C++ or Ob ject Pascal programmer with no more e ort than the addition of twocharacters to the programmer's job title. Unfortunately, this hop e is a long way from b eing realized. Ob ject- Oriented programming is a new way of thinking ab out what it means to compute, ab out how we can structure information inside a computer. To b ecome pro cient in ob ject-oriented techniques requires a complete reevaluation of traditional software development techniques. 1.2 Language and Thought \Human b eings do not live in the ob jectiveworld alone, nor alone in the world of so cial activity as ordinarily understo o d, but are very much at the mercy of the particular language which has b ecome the medium of expression for their so ciety. It is quite an illusion to imagine that one adjusts to reality essentially without the use of language and that language is merely an incidental means of solving sp eci c problems of communication or re ection. The fact of the matter is that the `real world' is to a large extent unconsciously built up on the language habits of the group.... We see and hear and otherwise exp erience very largely as we do b ecause the language habits of our community predisp ose certain choices of interpretation." Edward Sapir quoted in [Whorf 56] This quote emphasizes the fact that the languages we sp eak in uence directly the wayin whichwe view the world. This is true not only for natural languages, such as the kind studied by the early 20th century American linguists Edward Sapir and Benjamin Lee Whorf, but also for arti cial languages such as those we use in programming computers. 1.2.1 Eskimos and Snow An almost universally cited example of the phenomenon of languages in uencing thought, although also an erroneous one see [Pullum 91] is the \fact" that Eskimo or Inuit lan- 1.2. LANGUAGE AND THOUGHT 3 guages have manywords to describ e various typ es of snow{wet, u y, heavy, icy, and so on. This is not surprising. Any community with common interests will naturally develop a sp ecialized vo cabulary for concepts they wish to discuss. What is imp ortant is to not over generalize the conclusion we can draw from this simple observation. It is not that the Eskimo eyeisinany signi cant resp ect di erent from my own, or that Eskimos can see things that I can not p erceive. With time and training I could do just as well at di erentiating typ es of snow. But the language I sp eak namely, English do es not force me into doing so, and so it is not natural to me. A di erent language such as Inuktitut thus can lead one but do es not require one to view the world in a di erent fashion. To make e ective use of ob ject oriented principles requires one to view the world in a new fashion. But simply using an ob ject oriented language such as C++ do es not, by itself, force one to b ecome an ob ject oriented programmer. While the use of an ob ject oriented language will simplify the development of ob ject oriented solutions, it is true, as it has b een quipp ed, that \FORTRAN programs can b e written in any language." 1.2.2 An Example from Computer Languages The relationship we noted b etween language and thought for natural human languages is even more pronounced in the realm of arti cial computer languages. That is, the language in which a programmer thinks a problem will b e solved will color and alter, in a basic fundamental way, the fashion in which an algorithm is develop ed. An example will help illustrate this relationship b etween computer language and problem solution. Several years ago a studentworking in genetic researchwas faced with a task involved in the analysis of DNA sequences. The problem could b e reduced to a relatively simple form. The DNA is represented as a vector of N integer values, where N is very large on the order of tens of thousands. The problem was to discover whether any pattern of length M, where M was a xed and small constant say ve or ten is ever rep eated in the vector of values. ACTCGGATCTTGCATTTCGGCAATTGGACCCTGACTTGGCCA ... The programmer dutifully sat down and wrote a simple and straightforward FORTRAN program, something like the following: DO 10 I = 1, N-M DO 10 J = 1, N-M FOUND = .TRUE. DO 20 K = 1, M 20 IF X[I+K-1] .NE. X[J+K-1] THEN FOUND = .FALSE. IF FOUND THEN ... 10 CONTINUE 4 CHAPTER 1. THINKING OBJECT ORIENTED The studentwas somewhat disapp ointed when trial runs indicated his program would need signi cantly many hours to complete. He discussed his problem with a second student, who happ ened to b e pro cient in the programming language APL. The second student said that she would like to try writing a program for this problem. The rst studentwas dubious. After all, FORTRAN was known to b e one of the most \ecient" programming languages. It was compiled, after all, and APL was only interpreted. Therefore it was with a certain amount of incredulity that he discovered the APL programmer was able to write an algorithm that worked in a matter of minutes, not hours. What the APL programmer had done was to rearrange the problem. Rather than work- ing with a vector of N elements, she reorganized the data into a matrix with roughly N rows and M columns: A C T C G G p ositions 1 to M C T C G G A p ositions 2 to M +1 T C G G A T p ositions 3 to M +2 C G G A T T p ositions 4 to M +3 G G A T T C p ositions 5 to M +4 G A T T C T p ositions 6 to M +5 . T G G A C C G G A C C C . The APL programmer then sorted this matrix byrows. If any pattern was rep eated, then two adjacentrows in the sorted matrix would have identical values. T G G A C C T G G A C C . It was a trivial matter to check for this condition. The reason the APL program was faster had nothing to do with the sp eed of APL versus FORTRAN, but was simply b ecause 2 the FORTRAN program employed an algorithm that was O M N , whereas the sorting solution used by the APL programmer required approximately O M N log N op erations. The p oint of this story is not to indicate that APL is in anyway a \b etter" programming language than FORTRAN, but to ask whyitwas that the APL programmer was naturally led to discover a b etter solution.
Recommended publications
  • QATAR ASW ONLINE SCRIPT V.8.0 Pages
    “DEXIGN THE FUTURE: Innovation for Exponential Times” ARNOLD WASSERMAN COMMENCEMENT ADDRESS VIRGINIA COMMONWEALTH UNIVERSITY IN QATAR 2 MAY 2016 مساء الخير .Good afternoon It is an honor to be invited to address you on this important day. Today you artists and designers graduate into the future. Do you think about the future? Of course you do. But how do you think about the future? Is the future tangible - or is it intangible ? Is it a subject for rational deliberation? Or is it an imagined fantasy that forever recedes before us? Is the future simply whatever happens to us next? Or is it something we deliberately create? Can we Dexign the Future? What I would like us to think about for the next few moments is how creative professionals like yourselves might think about the future. What I have to say applies as much to art as it does to design. Both are technologies of creative innovation. I will take the liberty here of calling it all design. My speech is also available online. There you can follow a number of links to what I will talk about here. The future you are graduating into is an exponential future. What that means is that everything is happening faster and at an accelerating rate. For example, human knowledge is doubling every 12 months. And that curve is accelerating. An IBM researcher foresees that within a few years knowledge will be doubling every 12 hours as we build out the internet of things globally. This acceleration of human knowledge implies that the primary skill of a knowledge worker like yourself is research, analysis and synthesis of the not-yet-known.
    [Show full text]
  • Edsger Dijkstra: the Man Who Carried Computer Science on His Shoulders
    INFERENCE / Vol. 5, No. 3 Edsger Dijkstra The Man Who Carried Computer Science on His Shoulders Krzysztof Apt s it turned out, the train I had taken from dsger dijkstra was born in Rotterdam in 1930. Nijmegen to Eindhoven arrived late. To make He described his father, at one time the president matters worse, I was then unable to find the right of the Dutch Chemical Society, as “an excellent Aoffice in the university building. When I eventually arrived Echemist,” and his mother as “a brilliant mathematician for my appointment, I was more than half an hour behind who had no job.”1 In 1948, Dijkstra achieved remarkable schedule. The professor completely ignored my profuse results when he completed secondary school at the famous apologies and proceeded to take a full hour for the meet- Erasmiaans Gymnasium in Rotterdam. His school diploma ing. It was the first time I met Edsger Wybe Dijkstra. shows that he earned the highest possible grade in no less At the time of our meeting in 1975, Dijkstra was 45 than six out of thirteen subjects. He then enrolled at the years old. The most prestigious award in computer sci- University of Leiden to study physics. ence, the ACM Turing Award, had been conferred on In September 1951, Dijkstra’s father suggested he attend him three years earlier. Almost twenty years his junior, I a three-week course on programming in Cambridge. It knew very little about the field—I had only learned what turned out to be an idea with far-reaching consequences. a flowchart was a couple of weeks earlier.
    [Show full text]
  • A New Golden Age for Computer Architecture: Domain-Specific
    A New Golden Age for Computer Architecture: Domain-Specific Hardware/Software Co-Design, Enhanced Security, Open Instruction Sets, and Agile Chip Development John Hennessy and David Patterson Stanford and UC Berkeley 13 June 2018 https://www.youtube.com/watch?v=3LVeEjsn8Ts 1 Outline Part I: History of Part II: Current Architecture - Architecture Challenges - Mainframes, Ending of Dennard Scaling Minicomputers, and Moore’s Law, Security Microprocessors, RISC vs CISC, VLIW Part III: Future Architecture Opportunities - Domain Specific Languages and Architecture, Open Architectures, Agile Hardware Development 2 IBM Compatibility Problem in Early 1960s By early 1960’s, IBM had 4 incompatible lines of computers! 701 ➡ 7094 650 ➡ 7074 702 ➡ 7080 1401 ➡ 7010 Each system had its own: ▪ Instruction set architecture (ISA) ▪ I/O system and Secondary Storage: magnetic tapes, drums and disks ▪ Assemblers, compilers, libraries,... ▪ Market niche: business, scientific, real time, ... IBM System/360 – one ISA to rule them all 3 Control versus Datapath ▪ Processor designs split between datapath, where numbers are stored and arithmetic operations computed, and control, which sequences operations on datapath ▪ Biggest challenge for computer designers was getting control correct Control Instruction Control Lines Condition?▪ Maurice Wilkes invented the idea of microprogramming to design the control unit of a PC processor* Datapath Registers Inst. Reg. ▪ Logic expensive vs. ROM or RAM ALU Busy? Address Data ▪ ROM cheaper than RAM Main Memory ▪ ROM much faster
    [Show full text]
  • Reinventing Education Based on Data and What Works • Since 1955
    Reinventing Education Based on Data and What Works • Since 1955 Carnegie Mellon is reinventing education and the way we think about leveraging technology through its study of the science of learning – an interdisciplinary effort that we’ve been tackling for more than 50 years with both computer scientists and psychologists. CMU's educational technology innovations have inspired numerous startup companies, which are helping students to learn more effectively and efficiently. 1955: Allen Newell (TPR ’57) joins 1995: Prof. Kenneth R. Koedinger (HSS Prof. Herbert Simon’s research team as ’88,’90) and Anderson develop Practical a Ph.D. student. Algebra Tutor. The program pioneers a new form of computer-aided instruction for high 1956: CMU creates one of the world’s first school students based on cognitive tutors. university computation centers. With Prof. Alan Perlis (MCS ’42) as its head, it is a joint 1995: Prof. Jack Mostow (SCS ’81) undertaking of faculty from the business, develops Project LISTEN, an intelligent tutor Simon, Newell psychology, electrical engineering and that helps children learn to read. The National mathematics departments, and the Science Foundation included Project precursor to computer science. LISTEN’s speech recognition system as one of its top 50 innovations from 1950-2000. 1956: Simon creates a “thinking machine”—enacting a mental process 1995: The Center for Automated by breaking it down into its simplest Learning and Discovery is formed, led steps. Later that year, the term “artificial by Prof. Thomas M. Mitchell. intelligence” is coined by a small group Perlis including Newell and Simon. 1998: Spinoff company Carnegie Learning is founded by CMU scientists to expand 1956: Simon, Newell and J.
    [Show full text]
  • The Advent of Recursion & Logic in Computer Science
    The Advent of Recursion & Logic in Computer Science MSc Thesis (Afstudeerscriptie) written by Karel Van Oudheusden –alias Edgar G. Daylight (born October 21st, 1977 in Antwerpen, Belgium) under the supervision of Dr Gerard Alberts, and submitted to the Board of Examiners in partial fulfillment of the requirements for the degree of MSc in Logic at the Universiteit van Amsterdam. Date of the public defense: Members of the Thesis Committee: November 17, 2009 Dr Gerard Alberts Prof Dr Krzysztof Apt Prof Dr Dick de Jongh Prof Dr Benedikt Löwe Dr Elizabeth de Mol Dr Leen Torenvliet 1 “We are reaching the stage of development where each new gener- ation of participants is unaware both of their overall technological ancestry and the history of the development of their speciality, and have no past to build upon.” J.A.N. Lee in 1996 [73, p.54] “To many of our colleagues, history is only the study of an irrele- vant past, with no redeeming modern value –a subject without useful scholarship.” J.A.N. Lee [73, p.55] “[E]ven when we can't know the answers, it is important to see the questions. They too form part of our understanding. If you cannot answer them now, you can alert future historians to them.” M.S. Mahoney [76, p.832] “Only do what only you can do.” E.W. Dijkstra [103, p.9] 2 Abstract The history of computer science can be viewed from a number of disciplinary perspectives, ranging from electrical engineering to linguistics. As stressed by the historian Michael Mahoney, different `communities of computing' had their own views towards what could be accomplished with a programmable comput- ing machine.
    [Show full text]
  • Simula Mother Tongue for a Generation of Nordic Programmers
    Simula! Mother Tongue! for a Generation of! Nordic Programmers! Yngve Sundblad HCI, CSC, KTH! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Inspired by Ole-Johan Dahl, 1931-2002, and Kristen Nygaard, 1926-2002" “From the cold waters of Norway comes Object-Oriented Programming” " (first line in Bertrand Meyer#s widely used text book Object Oriented Software Construction) ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula concepts 1967" •# Class of similar Objects (in Simula declaration of CLASS with data and actions)! •# Objects created as Instances of a Class (in Simula NEW object of class)! •# Data attributes of a class (in Simula type declared as parameters or internal)! •# Method attributes are patterns of action (PROCEDURE)! •# Message passing, calls of methods (in Simula dot-notation)! •# Subclasses that inherit from superclasses! •# Polymorphism with several subclasses to a superclass! •# Co-routines (in Simula Detach – Resume)! •# Encapsulation of data supporting abstractions! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula example BEGIN! REF(taxi) t;" CLASS taxi(n); INTEGER n;! BEGIN ! INTEGER pax;" PROCEDURE book;" IF pax<n THEN pax:=pax+1;! pax:=n;" END of taxi;! t:-NEW taxi(5);" t.book; t.book;" print(t.pax)" END! Output: 7 ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad!
    [Show full text]
  • Alan M. Turing – Simplification in Intelligent Computing Theory and Algorithms”
    “Alan Turing Centenary Year - India Celebrations” 3-Day Faculty Development Program on “Alan M. Turing – Simplification in Intelligent Computing Theory and Algorithms” Organized by Foundation for Advancement of Education and Research In association with Computer Society of India - Division II [Software] NASSCOM, IFIP TC - 1 & TC -2, ACM India Council Co-sponsored by P.E.S Institute of Technology Venue PES Institute of Technology, Hoskerehalli, Bangalore Date : 18 - 20 December 2012 Compiled by : Prof. K. Rajanikanth Trustee, FAER “Alan Turing Centenary Year - India Celebrations” 3-Day Faculty Development Program on “Alan M. Turing – Simplification in Intelligent Computing Theory and Algorithms” Organized by Foundation for Advancement of Education and Research In association with Computer Society of India - Division II [Software], NASSCOM, IFIP TC - 1 & TC -2, ACM India Council Co-sponsored by P.E.S Institute of Technology December 18 – 20, 2012 Compiled by : Prof. K. Rajanikanth Trustee, FAER Foundation for Advancement of Education and Research G5, Swiss Complex, 33, Race Course Road, Bangalore - 560001 E-mail: [email protected] Website: www.faer.ac.in PREFACE Alan Mathison Turing was born on June 23rd 1912 in Paddington, London. Alan Turing was a brilliant original thinker. He made original and lasting contributions to several fields, from theoretical computer science to artificial intelligence, cryptography, biology, philosophy etc. He is generally considered as the father of theoretical computer science and artificial intelligence. His brilliant career came to a tragic and untimely end in June 1954. In 1945 Turing was awarded the O.B.E. for his vital contribution to the war effort. In 1951 Turing was elected a Fellow of the Royal Society.
    [Show full text]
  • Design and Implementation of an Optionally-Typed Functional Programming Language
    Design and Implementation of an Optionally-Typed Functional Programming Language Shaobai Li Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2017-215 http://www2.eecs.berkeley.edu/Pubs/TechRpts/2017/EECS-2017-215.html December 14, 2017 Copyright © 2017, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Design and Implementation of an Optionally-Typed Functional Programming Language by Patrick S. Li A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Engineering { Electrical Engineering and Computer Sciences in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Koushik Sen, Chair Adjunct Professor Jonathan Bachrach Professor George Necula Professor Sara McMains Fall 2017 Design and Implementation of an Optionally-Typed Functional Programming Language Copyright 2017 by Patrick S. Li 1 Abstract Design and Implementation of an Optionally-Typed Functional Programming Language by Patrick S. Li Doctor of Philosophy in Engineering { Electrical Engineering and Computer Sciences University of California, Berkeley Professor Koushik Sen, Chair This thesis describes the motivation, design, and implementation of L.B. Stanza, an optionally- typed functional programming language aimed at helping programmers tackle the complexity of architecting large programs and increasing their productivity across the entire software development life cycle.
    [Show full text]
  • Wake up with CPS 006 Program Design and Methodology I Computer Science and Programming What Is Computer Science? Computer Scienc
    Computer Science and Programming z Computer Science is more than programming ¾ The discipline is called informatics in many countries ¾ Elements of both science and engineering • Scientists build to learn, engineers learn to build Wake up with CPS 006 – Fred Brooks Program Design and Methodology I ¾ Elements of mathematics, physics, cognitive science, music, art, and many other fields z Computer Science is a young discipline Jeff Forbes ¾ Fiftieth anniversary in 1997, but closer to forty years of research and development ¾ First graduate program at CMU (then Carnegie Tech) in http://www.cs.duke.edu/courses/cps006/current 1965 http://www.cs.duke.edu/csed/tapestry z To some programming is an art, to others a science, to others an engineering discipline A Computer Science Tapestry 1.1 A Computer Science Tapestry 1.2 What is Computer Science? Computer Science What is it that distinguishes it from the z Artificial Intelligence thinking machines separate subjects with which it is related? z Scientific Computing weather, cars, heart, modelling What is the linking thread which gathers these z Theoretical CS analyze algorithms, models disparate branches into a single discipline? My answer to these questions is simple --- it is z Computational Geometry theory of animation, 3-D models the art of programming a computer. It is the art z Architecture hardware-software interface of designing efficient and elegant methods of z Software Engineering engineering, science getting a computer to solve problems, z Operating Systems the soul of the machine theoretical or practical, small or large, simple z Graphics from Windows to Hollywood or complex. z Many other subdisciplines C.A.R.
    [Show full text]
  • A Model of Inheritance for Declarative Visual Programming Languages
    An Abstract Of The Dissertation Of Rebecca Djang for the degree of Doctor of Philosophy in Computer Science presented on December 17, 1998. Title: Similarity Inheritance: A Model of Inheritance for Declarative Visual Programming Languages. Abstract approved: Margaret M. Burnett Declarative visual programming languages (VPLs), including spreadsheets, make up a large portion of both research and commercial VPLs. Spreadsheets in particular enjoy a wide audience, including end users. Unfortunately, spreadsheets and most other declarative VPLs still suffer from some of the problems that have been solved in other languages, such as ad-hoc (cut-and-paste) reuse of code which has been remedied in object-oriented languages, for example, through the code-reuse mechanism of inheritance. We believe spreadsheets and other declarative VPLs can benefit from the addition of an inheritance-like mechanism for fine-grained code reuse. This dissertation first examines the opportunities for supporting reuse inherent in declarative VPLs, and then introduces similarity inheritance and describes a prototype of this model in the research spreadsheet language Forms/3. Similarity inheritance is very flexible, allowing multiple granularities of code sharing and even mutual inheritance; it includes explicit representations of inherited code and all sharing relationships, and it subsumes the current spreadsheet mechanisms for formula propagation, providing a gradual migration from simple formula reuse to more sophisticated uses of inheritance among objects. Since the inheritance model separates inheritance from types, we investigate what notion of types is appropriate to support reuse of functions on different types (operation polymorphism). Because it is important to us that immediate feedback, which is characteristic of many VPLs, be preserved, including feedback with respect to type errors, we introduce a model of types suitable for static type inference in the presence of operation polymorphism with similarity inheritance.
    [Show full text]
  • Reading List
    EECS 101 Introduction to Computer Science Dinda, Spring, 2009 An Introduction to Computer Science For Everyone Reading List Note: You do not need to read or buy all of these. The syllabus and/or class web page describes the required readings and what books to buy. For readings that are not in the required books, I will either provide pointers to web documents or hand out copies in class. Books David Harel, Computers Ltd: What They Really Can’t Do, Oxford University Press, 2003. Fred Brooks, The Mythical Man-month: Essays on Software Engineering, 20th Anniversary Edition, Addison-Wesley, 1995. Joel Spolsky, Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity, APress, 2004. Most content is available for free from Spolsky’s Blog (see http://www.joelonsoftware.com) Paul Graham, Hackers and Painters, O’Reilly, 2004. See also Graham’s site: http://www.paulgraham.com/ Martin Davis, The Universal Computer: The Road from Leibniz to Turing, W.W. Norton and Company, 2000. Ted Nelson, Computer Lib/Dream Machines, 1974. This book is now very rare and very expensive, which is sad given how visionary it was. Simon Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Anchor, 2000. Douglas Hofstadter, Goedel, Escher, Bach: The Eternal Golden Braid, 20th Anniversary Edition, Basic Books, 1999. Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 2nd Edition, Prentice Hall, 2003.
    [Show full text]
  • ESD.33 -- Systems Engineering Session #1 Course Introduction
    ESD.33 -- Systems Engineering Session #4 Axiomatic Design Decision-Based Design Summary of Frameworks Phase Dan Frey Follow-up on Session #3 • Mike Fedor - Your lectures and readings about Lean Thinking have motivated me to re-read "The Goal" by Eliyahu M. Goldratt • Don Clausing – Remember that although set-based design seems to explain part of Toyota’s system, it also includes a suite of other powerful tools (QFD, Robust Design) • Denny Mahoney – What assumptions are you making about Ops Mgmt? Plan for the Session • Why are we doing this session? • Axiomatic Design (Suh) • Decision-Based Design (Hazelrigg) • What is rationality? • Overview of frameworks • Discussion of Exam #1 / Next steps Claims Made by Nam Suh • “A general theory for system design is presented” • “The theory is applicable to … large systems, software systems, organizations…” • “The flow diagram … can be used for many different tasks: design, construction, operation, modification, … maintenance … diagnosis …, and for archival documentation.” • “Design axioms were found to improve all designs without exceptions or counter-examples… When counter-examples or exceptions are proposed, the author always found flaws in the arguments.” Claims Made by Hazelrigg • “We present here … axioms and … theorems that underlie the mathematics of design” • “substantially different from … conventional … eng design” • “imposes severe conditions on upon design methodologies” • “all other measures are wrong” • “apply to … all fields of engineering … all products, processes, and services,
    [Show full text]