Скачать презентацию Conquering Complexity Professor Mike Hinchey 1 Complex Скачать презентацию Conquering Complexity Professor Mike Hinchey 1 Complex

7f1588a53fc5d69f7525a45b81c252cc.ppt

  • Количество слайдов: 48

Conquering Complexity Professor Mike Hinchey 1 Conquering Complexity Professor Mike Hinchey 1

Complex vs. Complicated Com`plex a. 1. Composed of two or more parts; composite, not Complex vs. Complicated Com`plex a. 1. Composed of two or more parts; composite, not simple. 2. Involving many parts, complicated, intricate. Com´pli`cate a. 1. Composed of two or more parts united; complex; complicated involved. 2. (Bot. ) Folded together or on itself, with the fold running lengthwise. 9

Complex vs. Complicated 10 Complex vs. Complicated 10

Ideas thus made up of several simple ones put together, I call complex; such Ideas thus made up of several simple ones put together, I call complex; such as beauty, gratitude, a man, an army, the universe. John Locke 11

Complexity Today, “complexity” is a word that is much in fashion. We have learned Complexity Today, “complexity” is a word that is much in fashion. We have learned very well that many of the systems that we are trying to deal with in our contemporary science and engineering are very complex indeed. They are so complex that it is not obvious that the powerful tricks and procedures that served us for four centuries or more in the development of modern science and engineering will enable us to understand deal with them. . . … We are learning that we need a science of complex systems and we are beginning to develop it. Herbert A. Simon 12

Software vs. Hardware • Abstract as opposed to “concrete”; • Pervasive yet non-obvious; • Software vs. Hardware • Abstract as opposed to “concrete”; • Pervasive yet non-obvious; • Perceived to be “easy to change”’ • Easy-to-change means often changed; • Not visibly deteriorating. 13

Wear versus Deterioration 14 Wear versus Deterioration 14

Architecture 1. the profession of designing buildings, open areas, communities, and other artificial constructions Architecture 1. the profession of designing buildings, open areas, communities, and other artificial constructions and environments, usually with some regard to aesthetic effect. Architecture often includes design or selection of furnishings and decorations, supervision of construction work, and the examination, restoration, or remodeling of existing buildings. 2. the character or style of building: the architecture of Paris; Romanesque architecture. 3. the action or process of building; construction. 4. the result or product of architectural work, as a building. 5. buildings collectively. 6. a fundamental underlying design of computer hardware, software, or both. 7. the structure of anything: the architecture of a novel. 15

An Example 16 An Example 16

Maintenance 17 Maintenance 17

Abstraction Progress will only be achieved in programming if we are willing to temporarily Abstraction Progress will only be achieved in programming if we are willing to temporarily fully ignore the interconnection between our programs (in textual form) and their implementation as executable code… In short: for the effective understanding of programs, we must learn to abstract from the existence of computers. Edsger W. Dijkstra

Software Change Software is supposed to change… otherwise it would be in the hardware Software Change Software is supposed to change… otherwise it would be in the hardware ! 19

Real Estate 1. Location 2. Location 3. Location 20 Real Estate 1. Location 2. Location 3. Location 20

Requirements 1. Requirements 2. Requirements 3. Requirements 21 Requirements 1. Requirements 2. Requirements 3. Requirements 21

Size of Modern Applications Source: Ebert & Jones, Computer, April 2009 22 Size of Modern Applications Source: Ebert & Jones, Computer, April 2009 22

Requirements Effort vs. Cost Overrun 23 Requirements Effort vs. Cost Overrun 23

Were Does Complexity Come From? • Time • Space • Size 24 Were Does Complexity Come From? • Time • Space • Size 24

Were Does Complexity Come From? • Time • Space / Domain • Size 25 Were Does Complexity Come From? • Time • Space / Domain • Size 25

Were Does Complexity Come From? • Size • Space / Domain • Time 26 Were Does Complexity Come From? • Size • Space / Domain • Time 26

Increasing Size Source: Ebert & Jones, Computer, April 2009 27 Increasing Size Source: Ebert & Jones, Computer, April 2009 27

Size Source: Bowen and Hinchey, Ten Commandments of Formal Methods… Ten Years Later, Computer, Size Source: Bowen and Hinchey, Ten Commandments of Formal Methods… Ten Years Later, Computer, January 2007. 28

Size • Many electric razors have more code than the Shuttle PASS. • Many Size • Many electric razors have more code than the Shuttle PASS. • Many high-end automobiles have 70+ processors. • Available processing power can result in unnecessary inefficiency which ultimately means complexity. • Of course, sometimes size just cannot be avoided…. 29

Caveat There are two ways of constructing a software design. One way is to Caveat There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies. C. A. R. Hoare

Domain • There is no substitute for domain experience, tool experience, etc. • Domain Domain • There is no substitute for domain experience, tool experience, etc. • Domain Experts know many of the pitfalls. • Having an expert on hand can reduce problems “down the road”. • Extra communication overhead in itself causes complexity. 31

Time • Demand for new functionality / requirements. • Non-functional requirements are often now Time • Demand for new functionality / requirements. • Non-functional requirements are often now “functional”. • Increasing demand for new releases, and reduced schedules. • Change causes complexity. 32

Runaways Source: R. L. Glass, Software Runaways, 1998. 33 Runaways Source: R. L. Glass, Software Runaways, 1998. 33

Wear versus Deterioration causes complexity! 34 Wear versus Deterioration causes complexity! 34

Were Does Complexity Come From? • Size • Space / Domain • Time • Were Does Complexity Come From? • Size • Space / Domain • Time • Humans! 35

How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) 36 How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) 36

The “best” Representation 37 The “best” Representation 37

It is a severe mistake to think that the programmer’s products are the programs It is a severe mistake to think that the programmer’s products are the programs he writes; the programmer has to produce trustworthy solutions, and he has to produce and present them in the form of convincing arguments. Edsger W. Dijkstra 38

How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) • How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) • Abstraction • Patterns • Software Product Lines 39

Software Product Line 40 Lero© 2008 Software Product Line 40 Lero© 2008

Feature Model 41 Feature Model 41

How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) • How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) • Abstraction • Patterns • Software Product Lines • Certification Problem 42

How Can We Control Complexity? • Appropriate Engineering Underpinnings 43 How Can We Control Complexity? • Appropriate Engineering Underpinnings 43

Correctness 44 Correctness 44

Appropriateness But two permissible and correct models of the same external objects may yet Appropriateness But two permissible and correct models of the same external objects may yet differ in respect of appropriateness. Heinrich Hertz

How Can We Control Complexity? • Appropriate Engineering Underpinnings • Automated code generation • How Can We Control Complexity? • Appropriate Engineering Underpinnings • Automated code generation • Model-Driven Development • R 2 D 2 C 46

Requirements to Design to Code (R 2 D 2 C) Requirements expressed as scenarios Requirements to Design to Code (R 2 D 2 C) Requirements expressed as scenarios (reversed) Models Mathematical laws of concurrency Existing code generating tools Code Existing model extraction (reverse engineering) tools 47

How Can We Control Complexity? • Appropriate Engineering Underpinnings • Automated code generation • How Can We Control Complexity? • Appropriate Engineering Underpinnings • Automated code generation • Model-Driven Development • R 2 D 2 C • ASSL 48

How Can We Control Complexity? • Tools • Technology Readiness Level • Start-up • How Can We Control Complexity? • Tools • Technology Readiness Level • Start-up • Expertise • Self-management / Automation 49

Autonomic Computing Inspiration from the human/mammalian autonomic nervous system. Fight or Flight sympathetic (Sy. Autonomic Computing Inspiration from the human/mammalian autonomic nervous system. Fight or Flight sympathetic (Sy. NS) Rest and Digest parasympathetic (Pa. NS) 50

How Can We Control Complexity? • Tools • Technology Readiness Level • Start-up • How Can We Control Complexity? • Tools • Technology Readiness Level • Start-up • Expertise • Self-management / Automation • KISS 51

Conclusions … We are learning that we need a science of complex systems and Conclusions … We are learning that we need a science of complex systems and we are beginning to develop it. Herbert A. Simon 52

Caveat / 53 Caveat / 53

Complexity Any intelligent fool can make things bigger and more complex … It takes Complexity Any intelligent fool can make things bigger and more complex … It takes a touch of genius and a lot of courage to move in the opposite direction. Albert Einstein 54

Thank You! 55 Thank You! 55