
7f1588a53fc5d69f7525a45b81c252cc.ppt
- Количество слайдов: 48
Conquering Complexity Professor Mike Hinchey 1
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
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 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; • Perceived to be “easy to change”’ • Easy-to-change means often changed; • Not visibly deteriorating. 13
Wear versus Deterioration 14
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
Maintenance 17
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 ! 19
Real Estate 1. Location 2. Location 3. Location 20
Requirements 1. Requirements 2. Requirements 3. Requirements 21
Size of Modern Applications Source: Ebert & Jones, Computer, April 2009 22
Requirements Effort vs. Cost Overrun 23
Were Does Complexity Come From? • Time • Space • Size 24
Were Does Complexity Come From? • Time • Space / Domain • Size 25
Were Does Complexity Come From? • Size • Space / Domain • Time 26
Increasing Size Source: Ebert & Jones, Computer, April 2009 27
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 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 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 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 “functional”. • Increasing demand for new releases, and reduced schedules. • Change causes complexity. 32
Runaways Source: R. L. Glass, Software Runaways, 1998. 33
Wear versus Deterioration causes complexity! 34
Were Does Complexity Come From? • Size • Space / Domain • Time • Humans! 35
How Can We Control Complexity? • Domain • Expertise • Lingua Franca (DSLs) 36
The “best” Representation 37
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) • Abstraction • Patterns • Software Product Lines 39
Software Product Line 40 Lero© 2008
Feature Model 41
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
Correctness 44
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 • Model-Driven Development • R 2 D 2 C 46
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 • Model-Driven Development • R 2 D 2 C • ASSL 48
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. NS) Rest and Digest parasympathetic (Pa. NS) 50
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 we are beginning to develop it. Herbert A. Simon 52
Caveat / 53
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