Design Comprehension of Embedded Real-Time Systems
Total Page:16
File Type:pdf, Size:1020Kb
Die approbierte Originalversion dieser Dissertation ist an der Hauptbibliothek der Technischen Universität Wien aufgestellt (http://www.ub.tuwien.ac.at). The approved original version of this thesis is available at the main library of the Vienna University of Technology (http://www.ub.tuwien.ac.at/englweb/). DISSERTATION Design Comprehension of Embedded Real-Time Systems ausgefuhrt¨ zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften unter der Leitung von O.Univ.-Prof. Dr. Hermann Kopetz Institut fur¨ Technische Informatik 182 eingereicht an der Technischen Universit¨at Wien Fakult¨at fur¨ Informatik von Bernhard Rumpler Matr. - Nr. 9725344 Michael Bernhard-Gasse 4/Top 3 1120 Wien Wien, im Juni 2008 ................................. Design Comprehension of Embedded Real-Time Systems Abstract Complexity management is a hot topic in the current computer science literature. However, usually shallow explanations at the technical level are used as arguments for specific complexity management techniques and com- plexity metrics. This dissertation aims at bridging the gap between computer science on the one side and the cognitive and learning sciences on the other side with an interdisciplinary approach to design comprehension. A special focus is put on high-criticality systems where latent design errors caused by highly complex development tasks cannot be tolerated. This work focuses on the cognitive complexity of development tasks, which denotes the amount of cognitive resources that are required for a given task. Overload of the human working memory system is a major fac- tor that affects cognitive performance. Those tasks where many relational aspects must be considered simultaneously are especially complex. The basic goal of this work is the development of cognitive support theo- ries for various system development approaches. Design for simplicity is an important principle to keep the cognitive complexity of design and mainte- nance tasks at a manageable level. Various techniques to achieve a simple and understandable system structure are presented. A special focus is put on the characteristics of component interfaces, as it is the characteristics and the placement of the interfaces that affects the cognitive effort of system comprehension. It must be possible to develop and verify each component independent- ly and then integrate the components with just minimal effort. The design concept of near-independence can be used to minimize relational aspects in large systems. Nearly-independent components represent units of design with a high degree of self-containedness. They are a key technique to mi- nimize global interdependencies. Temporal firewalls together with a sparse global time-base represent suitable techniques to support a high degree of temporal and conceptual decoupling between components. The presented approach supports determinism at the application level by the provision of various architectural services. Determinism enables de- ductive reasoning, which is essential for the rational analysis of behavior. Designverstehen von eingebetteten Echtzeitsystemen Kurzfassung Obwohl Komplexit¨atsmanagement ein zentrales Thema der Informatik ist, wird es in der Literatur nur sehr oberfl¨achlich behandelt. Erkenntnisse aus den Kognitions- und Lernwissenschaften finden kaum Beachtung. Daher verfolgt diese Dissertation einen interdisziplin¨aren Ansatz zur Verbesserung des Designverstehens von eingebetteten Echtzeitsystemen fur¨ sicherheitskri- tische Anwendungen. In diesen Systemen k¨onnen latente Designfehler, ver- ursacht durch hohe Komplexit¨at von Entwicklungsaufgaben, nicht toleriert werden. Einen zentralen Aspekt dieser Arbeit stellt die kognitive Komplexit¨at der Entwicklungaufgaben dar, welche das Ausmaß an kognitiven Ressour- cen beschreibt, die fur¨ die Aufgaben ben¨otigt werden. Die beschr¨ankte Kapa- zit¨at des menschlichen Arbeitsged¨achtnisses stellt einen zentraler Faktor fur¨ mentale Einschr¨ankungen dar. Jene Aufgaben, wo viele Aspekte gleichzeitig betrachtet werden mussen,¨ sind besonders komplex. Ein wesentliches Ziel der Arbeit ist die Betrachtung von verschiedenen Ans¨atzen zum Systemdesign hinsichtlich ihrer Komplexit¨at. Die Eigenschaf- ten von Schnittstellen zwischen den Systemkomponenten sind dabei von zentraler Bedeutung, da sie die Verst¨andlichkeit eines Systems wesentlich beeinflussen. Um die Komplexit¨at eines Systems beherrschen zu k¨onnen ist es erfor- derlich, dass die Systemkomponenten weitgehend unabh¨angig voneinander entwickelt und verifiziert werden k¨onnen. Dazu ist es notwendig, die relatio- nalen Abh¨angigkeiten innerhalb des Systems zu minimieren. Das Kompo- nentenmodell dieser Arbeit, das auf Temporal Firewalls, in Kombination mit einem speziellen globalen Zeitmodell basiert, erm¨oglicht eine weitgehende zeitliche und konzeptionelle Entkopplung der Komponenten. Die Integrati- on der Komponenten wird dadurch vereinfacht, dass sich die Eigenschaften der Komponenten durch die Integration nicht ver¨andern. Der pr¨asentierte Ansatz erm¨oglicht Determinismus auf der Applikati- onsebene. Dies unterstutzt¨ die Verst¨andlichkeit, da sich das Verhalten des Systems durch Deduktion logisch ableiten l¨asst. Danksagung Besonderer Dank gilt meinem Betreuer O.Univ.Prof. Dr.phil. Dr.h.c. Hermann Kopetz, der der interdisziplin¨aren Forschung zwischen Informa- tik und kognitiver Psychologie einen hohen Stellenwert beimisst und mir die Arbeit am Institut fur¨ Technische Informatik erm¨oglichte. Er stand mir stets mit hilfreichen Anregungen zur Seite und trug maßgeblich zum Gelingen der Arbeit bei. Ein großes Dankesch¨on m¨ochte ich auch meiner Zweitbegutachterin Frau Ao.Univ.Prof. Mag.rer.soc.oec. Dr.phil. Margit Pohl aussprechen, fur¨ die wertvollen Diskussionen und Vorschl¨age zum kognitionswissenschaftlichen Teil dieser Arbeit. Ganz besonders m¨ochte ich mich bei meinen Eltern Hannelore und Her- bert bedanken, welche mir mein Studium erm¨oglicht und mich stets mit allen Kr¨aften unterstutzt¨ haben. Besonderer Dank gilt auch Martina, die mich besonders bei der Fertig- stellung der Arbeit motiviert hat. Mein Dank gilt auch dem ¨osterreichischen Bundesministerium fur¨ Ver- kehr, Innovation und Technologie (BMVIT), welches diese Arbeit im Rah- men des FIT-IT Programms (Projektnummer 809442) unterstutzt¨ hat. Contents 1 Introduction 1 1.1 What is Design? . 1 1.1.1 A Definition of Design . 1 1.1.2 Design Problems { Definition and Characteristics . 2 1.1.3 Trial-and-Error vs. Guided Design . 3 1.2 What is Complexity? . 3 1.2.1 Definitions as System Characteristics . 4 1.2.2 Cognitive Complexity . 4 1.3 Embedded Real-Time Systems and Complexity . 5 1.3.1 Factors Specific to Embedded Real-Time Systems . 5 1.3.2 Factors for Growing Complexity . 6 1.3.3 Problems Caused by Complexity . 6 1.4 Improving Understandability . 7 1.4.1 Advances in the Cognitive Sciences . 7 1.4.2 Design Comprehension . 8 1.5 Scope and Objectives . 9 1.5.1 Focus on High-Criticality Real-Time Systems . 9 1.5.2 Design for Simplicity . 9 1.5.3 Cognitive Support Theories . 10 1.5.4 Near-Independence and Composability . 10 1.6 Related Work . 10 1.6.1 Information Visualization and Human Computer In- teraction . 11 1.6.2 Program Comprehension . 12 1.6.3 Software Engineering . 13 1.6.4 Complexity Metrics . 13 1.7 Overview . 14 2 Cognitive Processes of Understanding 15 2.1 The Cognitive Perspective . 15 2.1.1 The Sciences of the Mind . 15 2.1.2 Mental Representations . 16 2.2 Memory . 17 i 2.2.1 Working Memory . 17 2.2.2 Long-Term Memory . 19 2.2.3 Encoding, Storing and Retrieving Information . 19 2.3 Semantic Memory . 20 2.3.1 Rule-Governed Concepts . 21 2.3.2 Object Concepts . 21 2.3.3 Schemata and Concept-Driven Processing . 23 2.3.4 Abstract Thinking . 24 2.4 Expertise . 24 2.4.1 Expert/Novice Differences . 24 2.4.2 Becoming an Expert . 25 2.5 Chapter Summary . 26 3 Cognitive Complexity 29 3.1 Cognitive Characteristics . 30 3.1.1 Limits of Working Memory . 30 3.1.2 Biased Thinking and Heuristics . 30 3.1.3 Probabilistic Reasoning . 31 3.1.4 Oversimplification . 31 3.1.5 Dependency on Domain Knowledge . 31 3.1.6 Dependency on Metacognition . 32 3.2 Characteristics of Complex Problems . 32 3.2.1 Conceptual Complexity . 32 3.2.2 Dimensions of Difficulty . 32 3.2.3 Emergent Views . 34 3.2.4 Complex Causality . 34 3.2.5 Cognitive Load . 35 3.2.6 Relational Complexity . 35 3.2.7 Complex Mental Models . 36 3.3 Assessing Cognitive Complexity . 37 3.3.1 Well-Defined Problems . 37 3.3.2 Design Problems . 38 3.3.3 Component Interface Level . 38 3.3.4 Component Implementation Level . 39 3.4 Chapter Summary . 39 4 Real-Time Systems Concepts 43 4.1 System Model . 43 4.1.1 Architectures . 43 4.1.2 Systems and Components . 44 4.1.3 Application Structure . 44 4.1.4 Component Behavior . 45 4.1.5 System State . 45 4.1.6 Composability . 46 4.2 Models of Time . 46 4.2.1 Dense Time vs. Sparse Time . 47 4.2.2 Global Time . 48 ii 4.3 Real-Time Entities and Real-Time Images . 48 4.3.1 Real-Time Entities . 48 4.3.2 Real-Time Images . 49 4.4 Interfaces . 49 4.4.1 Interface Properties . 50 4.4.2 Interface Types . 51 4.4.3 Open vs. Closed Components . 52 4.5 Specifications . 52 4.5.1 Specification of Semantics . 53 4.5.2 Varying Degrees of Formalism . 53 4.5.3 Formal Specifications . 53 4.5.4 Interface Specifications . 54 4.5.5 Uses of Specifications . 55 4.6 Interaction Styles . 55 4.6.1 Client-Server Interactions . 56 4.6.2 Publish/Subscribe . 56 4.6.3 Data Passing via a Repository . 57 4.7 Interaction Contents . 57 4.7.1 Implicit vs. Explicit Interaction Content . 58 4.7.2 Atomic vs. Composite Interaction Content . 58 4.7.3 State Information vs. Event Information . 59 4.8 Dependability . 59 4.8.1 Fault - Error - Failure . 59 4.8.2 Fault-Tolerance . 60 4.8.3 Error Containment . 60 4.8.4 Dependability Attributes of Interactions . 61 4.8.5 Replica Determinism . 61 4.9 Time- vs.