TH`ESE DE DOCTORAT Software Engineering Techniques For
Total Page:16
File Type:pdf, Size:1020Kb
THESE` DE DOCTORAT de L’UNIVERSITE´ DE NICE – SOPHIA ANTIPOLIS Sp´ecialit´e SYSTEMES` INFORMATIQUES pr´esent´ee par Matthias Jung pour obtenir le grade de DOCTEUR de l’UNIVERSITE´ DE NICE – SOPHIA ANTIPOLIS Sujet de la th`ese: Software Engineering Techniques for Support of Communication Protocol Implementation Soutenu le 3 Octobre 2000 devant le jury compos´e de: Pr´esident Dr. Walid Dabbous Directeur de Recherche, INRIA Rapporteurs Dr. Wolfgang Effelsberg Professeur, Universit´e de Mannheim Dr. B´eatrice Paillassa Maˆıtre de Conf´erence, ENSEEIHT Membre Invit´e Dr. Vincent Roca Charg´e de Recherche, INRIA Directeur de Th`ese Dr. Ernst W. Biersack Professeur, Institut Eur´ecom ii Acknowledgements Thanks to my supervisor Ernst Biersack for his trust and his honesty, his encouragement, and the many things I’ve learned during the last three years. Thanks to Stefan B¨ocking and the people from Siemens Research (ZT IK2) for their financial support, which gave me the opportunity to follow my PhD studies at Eur´ecom. Thanks to the members of my jury – Walid Dabbous, Wolfgang Effelsberg, B´eatrice Paillassa, and Vincent Roca – for the time they spent to read and comment my work. Thanks to Didier Loisel and David Tr´emouillac for their permanent cooperation and competent help concerning hardware and software administration. Thanks to Evelyne Biersack, Morsy Cheikhrouhou, Pierre Conti, and Yves Roudier for reading and correcting the french part of my dissertation. Thanks to the btroup members and to all people at Eur´ecom who contributed to this unique atmosphere of amity and inspiration. Thanks to Sergio for his open ear and for never running out of cookies. Thanks to Audrey for her love, patience, and endless encouragement. Thanks to my parents for making all this possible. iii iv Contents List of Figures . xiii List of Tables . xv Acronyms . xvii 1 Introduction 1 1.1 Motivation . 1 1.2 Protocols . 2 1.2.1 What is a Protocol? . 2 1.2.2 General Purpose vs. Application-Tailored Protocols . 2 1.3 Software Engineering . 4 1.3.1 Object-Oriented Software Engineering Concepts . 5 1.3.2 UML – Unified Modeling Language . 7 1.3.3 Object-Oriented Frameworks . 9 1.3.4 Component-Based Development . 11 1.3.5 Design Patterns . 12 1.3.6 Reuse . 13 1.4 Dissertation Outline . 15 2 Modeling and Structuring Protocol Software 17 2.1 Protocol Modeling . 17 2.1.1 Tasks of Protocol Software . 17 2.1.2 Modeling Protocol Software – State of the Art . 19 2.2 Why not just applying finer granularity to layering? . 21 2.2.1 Coupling of Streams . 21 v vi CONTENTS 2.2.2 Coupling of Sender- and Receiver Functions . 22 2.2.3 Coupling of Distinct Protocol Functions . 23 2.2.4 Coupling of Header Information and Protocol Code . 24 2.2.5 Coupling of Protocol Processing and Thread-Model . 24 2.3 Modeling Protocols: A System of Structuring Principles . 27 2.3.1 Introduction . 27 2.3.2 Principle 1: Outsourced De-Multiplexing . 28 2.3.3 Principle 2: Data Path Reification . 32 2.3.4 Principle 3: Data Path Partitioning . 36 2.3.5 Principle 4: Data Path Classification . 43 2.4 Summary . 47 3 The PITOU Protocol Development Environment 51 3.1 Related Work . 51 3.2 PITOU Design Issues . 53 3.2.1 Terminology . 53 3.2.2 Framework Tasks and Goals . 54 3.2.3 Overall Organization – State of the Art . 55 3.2.4 Programming Language . 57 3.3 The Core Framework Design . 58 3.3.1 Principal Design Elements . 58 3.3.2 Applying the Structuring Principles . 58 3.3.3 Mapping Classes to Packages . 61 3.4 Implementation of Reusable Components . 63 3.4.1 Implementing Workers . 64 3.4.2 Implementing Entries . 64 3.4.3 Out-of-Band Modules . 67 3.4.4 Network Interface . 67 3.4.5 Mapping Strategy . 68 3.4.6 Interfaces to Application . 70 3.4.7 Using Timers . 71 CONTENTS vii 3.5 Assembling Components using Java-Beans . 72 3.5.1 Naming Conventions and Composition Process . 72 3.5.2 Composition of PITOU protocols . 75 3.5.3 Discussion . 76 3.6 Assembling Components – Our Own Approach . 77 3.6.1 The concept of Registrars . 77 3.6.2 A Design Approach for Component Interaction . 79 3.6.3 Discussion . 83 3.7 Other Aspects of Composition . 85 3.7.1 Defining Finite State Machines . 85 3.7.2 Specifying Thread Strategies . 89 3.7.3 Registration of SAPs . 91 3.7.4 Specifying Mapping Strategies . 91 3.7.5 Exception Handling . 91 3.7.6 Incorporating Environments in the Application . 94 3.8 Design Patterns Used . 95 3.8.1 Layers . 95 3.8.2 Configurable Architecture . 96 3.8.3 Manager . 97 3.8.4 Type Object . 97 3.8.5 Adapter . 97 3.8.6 Strategy . 98 3.8.7 Observer . 99 3.8.8 Composite . 99 3.8.9 Active Object . 100 3.9 Summary . 101 4 Tools to Support Protocol Implementation 103 4.1 Protocol Simulation . 103 4.1.1 Objectives . 103 4.1.2 Related Work............................... 104 viii CONTENTS 4.1.3 Simulation Model . 104 4.1.4 Classes Involved . 105 4.1.5 Integrating the Simulator in PITOU . 108 4.2 Protocol Edition, Validation, and Generation . 109 4.2.1 Motivation . 109 4.2.2 Overview . 109 4.2.3 Main Operations on Protocols . 110 4.2.4 Protocol Validation............................ 113 4.2.5 Code Generator . 115 4.2.6 Outlook . 115 4.3 Protocol Animator . 116 4.3.1 Related Work............................... 116 4.3.2 Architecture . 116 4.3.3 Discussion and Outlook . 123 4.4 Summary . 123 5 Case Studies 125 5.1 RTP/RTCP . 125 5.1.1 RTP/RTCP Overview . 125 5.1.2 Applying Data Path Reification and Classification . 126 5.1.3 Applying Data Path Partitioning . 127 5.1.4 Conclusion . 129 5.2TCP........................................ 130 5.2.1 TCP Overview . 130 5.2.2 Applying Data Path Reification and Classification . 131 5.2.3 Applying Data Path Partitioning . 135 5.2.4 Mapping . 137 5.2.5 Conclusion . 138 5.3 Summary . 139 6 Conclusions 141 CONTENTS ix 6.1 Introduction . 141 6.2 Evaluation of our Approach . 142 6.2.1 Productivity . 142 6.2.2 Code Quality . ..