Cybernetics Oriented Programming (CYBOP)
Total Page:16
File Type:pdf, Size:1020Kb
Cybernetics Oriented Programming (CYBOP) An Investigation on the Applicability of Inter-Disciplinary Concepts to Software System Development Christian Heller Cybernetics Oriented Programming (CYBOP) An Investigation on the Applicability of Inter-Disciplinary Concepts to Software System Development Ilmenau Cataloging-in-Publication Data Christian Heller. Cybernetics Oriented Programming (CYBOP): An Investigation on the Applicability of Inter-Disciplinary Concepts to Software System Development Ilmenau: Tux Tax, 2006 ISBN-10: 3-9810898-0-4 ISBN-13: 978-3-9810898-0-6 Information on Ordering this book http://www.tuxtax.de, http://www.cybop.net Written as Dissertation Supervisor 1: Prof. Dr.-Ing. habil. Ilka Philippow (Chair), Technical University of Ilmenau Supervisor 2: Prof. Dr.-Ing. habil. Dietrich Reschke, Technical University of Ilmenau, Germany Supervisor 3: Mark Lycett (PhD), Brunel University, Great Britain Submission: 2005-12-12; Presentation: 2006-10-04 Copyright c 2002-2006. Christian Heller. All rights reserved. Cover Illustration: TSAMEDIEN, D¨usseldorf Printing and Binding: Offizin Andersen Nex¨o,Leipzig/ Zwenkau Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the section entitled ”GNU Free Documentation License”. Trademark Credits Most of the software-, hardware- and product names used in this document are also trademarks or registered trademarks of their respective owners. Donations Companies planning to publish this work on a grand scale are asked to notify the author <[email protected]> and to consider donating some of their sales revenues, which will be used exclusively for the CYBOP and Res Medicinae free software projects. Text printed on recycled and acid-free paper. Printed in Germany To all kind-hearted People who contribute to Humanity; against Those whose only Aim in Life is to amass Money Contents Preface xv 1 Introduction 1 1.1 Information Science . 1 1.2 Software Crisis . 2 1.3 Motivation . 4 1.4 Cybernetics . 5 1.5 Method . 5 1.6 Example . 7 1.7 Structure . 8 I Basics 11 2 Software Engineering Process 13 2.1 Waterfall Process . 14 2.2 Iterative Process . 14 2.3 Agile Methodologies . 16 2.4 Extreme Programming . 17 2.5 Method Maturity . 19 2.6 Abstraction Gaps . 19 2.7 Software Architecture . 22 3 Physical Architecture 25 3.1 Process . 26 3.2 Application Server . 27 viii Contents 3.3 Database Server . 28 3.4 Presentation Client . 30 3.5 Web Client and Server . 31 3.6 Local Process . 32 3.7 Human User . 33 3.8 Peer Node . 34 3.9 Remote Server . 35 3.10 Legacy Host . 36 3.11 Systems Interconnection . 37 3.12 Scalability . 39 3.13 Misleading Tiers . 40 4 Logical Architecture 43 4.1 Paradigm and Language . 45 4.1.1 Language History . 45 4.1.2 Paradigm Overview . 47 4.1.3 Hardware Architecture . 48 4.1.4 Machine Language . 51 4.1.5 Assembly Language . 51 4.1.6 Structured- and Procedural Programming . 51 4.1.7 System Programming . 57 4.1.8 Typeless Programming . 58 4.1.9 Functional Programming . 58 4.1.10 Logical Programming . 60 4.1.11 Data Manipulation Language . 61 4.1.12 Markup Language . 61 4.1.13 Page Description Language . 66 4.1.14 Hardware Description Language . 67 4.1.15 Object Oriented Programming . 68 4.2 Pattern . 79 4.2.1 Architectural . 81 4.2.2 Design . 97 4.2.3 Idiomatic . 103 4.2.4 Framework . 107 4.3 Component Oriented Programming . 109 4.3.1 Inversion of Control . 110 Contents ix 4.3.2 Component Lifecycle . 111 4.3.3 Interface and Implementation . 112 4.3.4 Separation of Concerns . 113 4.3.5 Spread Functionality . 115 4.3.6 Aspect Oriented Programming . 117 4.3.7 Agent Oriented Programming . 120 4.4 Domain Engineering . 122 4.4.1 Tool & Material . 124 4.4.2 Generics . 124 4.4.3 Domain Specific Language . 125 4.4.4 Specification Language . 127 4.4.5 Generative Programming . 131 4.4.6 Model Driven Architecture . 131 4.4.7 Model and Code . 133 4.5 Knowledge Engineering . 135 4.5.1 Representation Principles . 137 4.5.2 Date and Rule . 137 4.5.3 Agent Communication Language . 138 4.5.4 Semantic Web . 141 4.6 Conceptual Network . 143 4.6.1 Ontos and Logos . 144 4.6.2 Applicability . 145 4.6.3 Two Level Separation . 145 4.6.4 Building Blocks . 146 4.6.5 Terminology . 148 4.6.6 Schemes . 149 4.6.7 Ontology . 152 4.6.8 Archetype . 153 4.6.9 Dual Model Approach . 155 4.7 Modelling Mistakes . 158 5 Extended Motivation 161 5.1 Idea . 162 5.2 Recapitulation . 163 5.3 Approach . 165 x Contents II Contribution 171 6 Statics and Dynamics 173 6.1 Virtual- and Real World . 173 6.1.1 Mind and Body . 173 6.1.2 Brain Regions . 176 6.1.3 Cell Division . 177 6.1.4 Short- and Long-Term Memory . 178 6.1.5 Information Processing Model . 180 6.1.6 Persistent and Transient . 181 6.2 System and Knowledge . 182 6.2.1 Configurable or Programmable . 182 6.2.2 Code Reduction . ..