We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byAnthony Phillips
Modified over 2 years ago
© 2007 Grady Booch The Promise The Limits The Beauty of Software Grady Booch IBM Fellow
© 2007 Grady Booch 2 Our civilization runs on software. Bjarne Stroustrup
© 2007 Grady Booch 3 You have riches and freedom here but I feel no sense of faith or direction. You have so many computers, why dont you use them in the search for love? Lech Walesa Epstein, J., Yale Book of Quotations, New Haven, Connecticut: Yale University Press, 2006
© 2007 Grady Booch 4 Software-intensive systems can amplify human intelligence –They cannot replace human judgment Software-intensive systems can fuse, coordinate, classify, and analyze information –They cannot create knowledge The Promise Software-intensive systems can amplify human intelligence Software-intensive systems can fuse, coordinate, classify, and analyze information
© 2007 Grady Booch 5 Not everything we want to build can be built –There exist pragmatic theoretical and technical limits Not everything we want to build should be built –There exist moral, economic, social, and political limits The Limits Not everything we want to build can be built Not everything we want to build should be built
© 2007 Grady Booch 6 Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –Software is invisible to most of the world –The best software is simple, elegant, and full of drama as manifest in the cunning patterns that form its structure and command its behavior The Beauty Software-intensive systems are perhaps the most intellectually complex artifacts created by humans
© 2007 Grady Booch 7 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –The Internet provides an environment where terrorists and other criminal enterprises can operate with little fear of detection The Internet changes the way that individuals communicate and businesses collaborate Internet Mapping
© 2007 Grady Booch 8 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –The Web creates a greater opportunity for the exploitation of children as well as fraud and theft directed against individuals and organizations The Web provides unprecedented mechanisms for social networking Britney
© 2007 Grady Booch 9 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –Software-intensive systems can erode personal privacy and other basic human rights Software-intensive systems permit real time and distributed access to information
© 2007 Grady Booch 10 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans – and the aging of digital archives threatens the preservation of history and other software-intensive mechanisms increase the velocity of communication Project
© 2007 Grady Booch 11 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –Piracy disrupts the economic underpinnings of traditional media companies and can dilute the intellectual property of artists Software-intensive systems create new forms of artistic expression
© 2007 Grady Booch 12 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –Software-intensive systems are at the center of a new generation of offensive and defensive weapons Software-intensive systems enable and accelerate scientific research Entrez Genome
© 2007 Grady Booch 13 The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –The complexity of software-intensive systems continues to grow; this complexity impacts its users as well as the stakeholders who develop, deploy, operate, and evolve them Software is a part of the very fabric of civilization, living in its interstitial spaces Annual U.S. Patent Applications/Awards Applications Awards
© 2007 Grady Booch 14 Alan Turing: The Promise I believe that in about 50 years time it will be possible to program computers…to make them play the imitation game so well that an average interrogator will not have more than 70% chance of making the right identification after five minutes of questioning. Alan Turing Turing, A., Computing Machinery and Intelligence, Mind, vol. 49, 1950
© 2007 Grady Booch 15 Alan Turing: The Limits This special property of digital computers, that they can mimic any discrete-state machine, is described by saying that they are universal machines. Alan Turing Turing, A., On Computable Numbers, Proceedings of the London Mathematical Society, Series 2, 42, 1936
© 2007 Grady Booch 16 Alan Turing: The Beauty Mathematics, rightly viewed, possesses not only truth but supreme beauty, a beauty cold and austere like that of sculpture. Alan Turing The Alan Turing
© 2007 Grady Booch 17 Alan Turing: The Contradiction Software-intensive systems are perhaps the most intellectually complex artifacts created by humans –Later in his life, Turing himself faced personal oppression by the society he helped preserve With his work in cryptanalysis, Turing helped defeat Hitlers oppressive forces
© 2007 Grady Booch 18 Alan Turing: The Discoveries 1935: Quantum mechanics, probability, logic : Turing machine, computability : Logic, algebra, number theory : Bombe (machine for Enigma decryption) : Computer and software design 1948: Programming, neural nets, AI 1950: First serious mathematical use of computer 1952: Non-linear theory of biological growth Hodges, A., Alan Turing: The Enigma, New York, New York: Walker & Company, 2000
© 2007 Grady Booch 19 The Limits of Software Laws of physics Laws of software Challenge of algorithms Difficulty of distribution & concurrency Problems of design Importance of organization Impact of economics Influence of politics Limits of human imagination Fundamental Human
© 2007 Grady Booch 20 Laws of Physics The speed of light –Has pragmatic implications for distributed systems Relativistic effects –There is no such thing as absolute time Quantum effects –There are theoretical as well as practical limits to information density Thermodynamic effects –Software is weightless/containers for software are not –Computation dissipates heat
© 2007 Grady Booch 21 Laws of Software Sometimes we cant do it –Halting problem –Gödel's theorem/highly non-computable problems Sometimes we cant afford to do it –Sorting problem/Towers of Hanoi/chess –Exponential time Sometimes we just dont know –Traveling salesman/scheduling/bin packing –NP complete Harel, D., Computers, Ltd: What they Really Cant Do, Oxford, England: Oxford University Press, 2003
© 2007 Grady Booch 22 Challenge of Algorithms Compression Photorealistic rendering Speech recognition Simulation Knowledge representation Intimate/massive parallelism Halo
© 2007 Grady Booch 23 Difficulty of Distribution/Concurrency A distributed system is one in which the failure of a computer you didnt even know existed can render your computer unusable (Leslie Lamport) The average developer does not have, as a core competency, the ability to develop secure, concurrent, and distributed systems
© 2007 Grady Booch 24 Problems of Design The entire history of software engineering is that of the rise in levels of abstraction The limitations of human understandability Building for resilience Sometimes worse is better The discovery of patterns
© 2007 Grady Booch 25 Importance of Organization All meaningful development is formed by the resonance of activities that beat at different rhythms –The activities of the individual developer –Social dynamics among small sets of developers –Dynamics among teams of teams Work products and work flows Parallel development The cacophony of stakeholders The tension of high and low ceremony processes
© 2007 Grady Booch 26 Impact of Economics Performance = Effort or time Complexity = Volume of human-generated code Process = Methods, notations, maturity Team = Skill set, experience, motivation Tools = Software process automation Performance = ( Complexity ) (Process) * ( Team ) * ( Tools )
© 2007 Grady Booch 27 Influence of Politics Success as defined by the software development team is sometimes misaligned with success as defined by the management team Software as a strategic weapon Software as a pawn
© 2007 Grady Booch 28 Limits of Human Imagination The visionaries –Alan Kay, Danny Hillis, Marvin Minsky, Rodney Brooks, Bill Joy, Bill Gates, Adele Goldburg, Tim Berners-Lee, Nicholas Negroponte… The dreamers –Arthur C. Clarke, Neal Stephenson
© 2007 Grady Booch 29 Software development has been, is, and will remain fundamentally hard
© 2007 Grady Booch 30 What We Know Fundamentals –Craft crisp and resilient abstractions –Maintain a good separation of concerns –Create a balance distribution of responsibilities Process –Grow a systems architecture through the incremental and iterative release of testable executables
© 2007 Grady Booch 31 What We Know Reuse Patterns Languages Architectural codification of certain domains
© 2007 Grady Booch 32 Representing Software Architecture Logical View End-user Functionality Implementation View Programmers Configuration management Process View Performance Scalability Throughput System integrators Deployment View System topology Communication Provisioning System engineering ConceptualPhysical Use Case View Kruchen, P. The 4+1 Model View, IEEE Computer, vol. 12 (6), November 1995
© 2007 Grady Booch 33 Gallery of Software Architecture: Air Traffic Control Gallery of Software
© 2007 Grady Booch 34 Gallery of Software Architecture: C3I Gallery of Software
© 2007 Grady Booch 35 Gallery of Software Architecture: Games Gallery of Software
© 2007 Grady Booch 36 Gallery of Architecture: Games Gallery of Software
© 2007 Grady Booch 37 Gallery of Software Architecture: Google Gallery of Software
© 2007 Grady Booch 38 Gallery of Software Architecture: Pathfinder Gallery of Software
© 2007 Grady Booch 39 Gallery of Software Architecture: Speech Recognition Gallery of Software
© 2007 Grady Booch 40 Movements in Web-centric Architectures Simple documents Colorful clients Simple scripting Rise of middleware Rise of simple frameworks Emergence of dynamic frameworks Semantic web
© 2007 Grady Booch 41 Handbook of Software Architecture No architectural reference exists for software-intensive systems Goals of the handbook –Codify the architecture of a large collection of interesting software- intensive systems –Study these architectural patterns in the context of the engineering forces that shaped them –Satisfy my curiosity Handbook of Software
© 2007 Grady Booch 42 Preservation Of Classic Software No comprehensive and intentional activity has yet been undertaken to preserve the industrys seminal software artifacts There are a number of reasons to act now –Many of the authors of such systems are still alive –Many others may have the source code or design documents for these systems collecting dust in their offices or garages –Time is our enemy Computer History
© 2007 Grady Booch 43 How We Got Here 1910s beginning of automation 1920s beginning of expansion 1930s beginning of dependence 1940s beginning of von Neuman machines 1950s rise of the machines 1960s rise of the languages and methods 1970s death of the mainframe 1980s age of the personal computer 1990s age of the Internet and new methods 2000s retrenchment
© 2007 Grady Booch 44 The Current State The typical software-intensive system is –Continuously evolving –Connected, distributed & concurrent –Multilingual and multiplatform –Secure –Autonomic Most systems are actually systems of systems –Services and other messaging mechanisms dominate
© 2007 Grady Booch 45 Where We Are Going 2010s age of transparency 2020s total dependence 2030s rise of the machines
© 2007 Grady Booch 46 The Future State Every advance leading to the future state of the world requires the presence of software yet- unwritten as of today
© 2007 Grady Booch 47 Languages & Algorithms Most programmers still write algorithmic snippets in the context of a sea of objects Legacy XML, Java, C++, and UML persist Some algorithmic breakthroughs have emerged –Searching massive quantities of information is still a bit of a struggle Domain-specific frameworks are mainstream
© 2007 Grady Booch 48 Platforms Moores law has died The typical personal computer contains multiple processors, a petabyte of main memory, an exabyte of external memory, and untethered terabit connectivity Virtual high resolution displays dominate; 3D windows, mice, gestures, and voice are the usual mechanisms for interaction Form factors will change such that most personal computers will be wearable or embedded; most software is embedded in devices
© 2007 Grady Booch 49 Operating Systems & Middleware Operating systems have largely been commoditized Middleware that does transaction isolation, load balancing, resource management, and data access still dominates –but it too has largely been commoditized, forcing the platform vendors to keep growing the value pile
© 2007 Grady Booch 50 Connection More than ever, the network is the computer –Monolithic -> client/server -> Web -> grid Network access is a global utility Not everything is an enterprise system, but most applications are connected to several
© 2007 Grady Booch 51 Security New kinds of cybercrime have arisen –Unlimited piles of money still do not yield secure systems –Air gaps are still not enough Rolling failures still plague some systems
© 2007 Grady Booch 52 Autonomics No computer has yet passed the Turing Test (but we have come close) Most interesting systems exhibit signs of agency and self-repair Star
© 2007 Grady Booch 53 Developer Experience Most developers have grown up believing that the Internet has always existed Most programming occurs on the edge of a system and in the interstitial spaces among systems Most programming is now done by domain- specific developers who only incidentally know how to program There have been only incremental improvements in programmer productivity and the programming model –CLI-> IDE -> XDE -> CDE
© 2007 Grady Booch 54
© 2007 Grady Booch 55 It is a tremendous privilege to be a software professional it is also a tremendous responsibility
© 2007 Grady Booch 56 The Promise The Limits The Beauty of Software Grady Booch IBM Fellow
Manchester Computing Cross Council ICT Conference For e-Science & GRID May 2004 End to End Services to support an e-Science Community Professor M.
Chapter 7 – Design and Implementation 1Chapter 7 Design and implementation Note: These are a modified version of Ch 7 slides available from the authors.
10-1 McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
The Future of Computing Performance: Samuel H. Fuller, Chair March 22, 2011 Computer Science and Telecommunications Board (CSTB) National Research Council.
The Importance of Information Systems Management Chapter 1 Information Systems Management In Practice 7E McNurlin & Sprague PowerPoints prepared by Michael.
Bioinspired Computing Overview & Biased History Lecture 1:
© Negnevitsky, Pearson Education, Lecture 1 Introduction to knowledge-base intelligent systems Intelligent machines, or what machines can do Intelligent.
1 Thriving in the New Information Profession The Fundamentals of Knowledge Services Guy St. Clair Dale Stanley SMR InternationalGenentech New York NYSan.
Software Engineering Model Driven Architecture Software Engineering 2011 Department of Computer Science Ben-Gurion university Based on the book: MDA Explained:
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Software Re-use IS301 – Software.
1 LECTURE 8 Amare Michael Desta Decision Support & Executive Information Systems:
Chapter 6 Architectural Design Slide 1 Chapter 6 Architectural Design.
Knowledge Management Thomas J. Froehlich, Ph.D. Program Director, IAKM Professor, SLIS.
1 GREY BOX TESTING Web Apps & Networking Session 10 Boris Grinberg
Chapter 13 Artificial Intelligence. 2 Thinking Machines A computer can do some things better --and certainly faster--than a human can: Adding a thousand.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
1 Software Architecture in Practice Architectural Design.
Chapter 1: Introduction to the World of Computers.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 4 Slide 1 Requirements Engineering u Establishing what the customer requires from a software.
The Whirlwind Tour Chapter 1a. 2 Transactions: Where It All Started [Cuneiform] documents now number about half a million, three- quarters of them more.
Semantics in Declarative System The Evolution of Business Unit Empowerment Dan McCreary Dan McCreary & Associates Wednesday, 5/23/2007 8:00 AM - 9:00 AM.
1 GREY BOX TESTING Web Apps & Networking Session 7 Boris Grinberg
DCS209: Introduction to Database Management (I) prepared and delivered by Iya Abubakar Computer Centre (IACC)Ahmadu Bello University, Zaria M-Auwal Gene.
Chapter 4 Slide 1 Original 33 slides by Prof. Anita Beecroft, Kwantlen Polytechnic University 16 slides added Feb 2011 by Prof. Tim Richardson, University.
© Bharati Vidyapeeths Institute of Computer Applications and Management, New Delhi-63 1 Principles and Practices of Management.
Copyright 2011 John Wiley & Sons, Inc Business Data Communications and Networking 11th Edition Jerry Fitzgerald and Alan Dennis John Wiley & Sons, Inc.
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Configuration Management IS301.
© 2016 SlidePlayer.com Inc. All rights reserved.