A Study of Patterns in an ATC System
Total Page:16
File Type:pdf, Size:1020Kb
Department of Mathematics, Statistics and Computer Science Reports from MASDA - Rapporter från MASDA A Study of Patterns in an ATC System Mattias Blåman Robert Pratz Aug MASDA Report 9984 1999 Växjö University ISSN 1400-1942 S-351 95 VÄXJÖ ISRN VXU/MASDA/DA/E/--9984--SE Abstract The differences between an experienced software developer and a novice are knowledge and experience. There has always been a need for an effective way of passing along the knowledge and experiences of senior software developers to novices. A remedy to this problem lies in the use of patterns. Patterns help software developers build systems on the collective experience of expert software developers. Patterns encapsulate well-proven design solutions in software development in a reusable way and help to promote good design practice. Patterns distill and provide a means to reuse the design knowledge gained by experienced software developers. The importance and extent of software in defense systems constantly increases. FMV, the Swedish Defense Material Administration, has an interest in decreasing the costs of software system development and saving time and money. An attempt to achieve this is to introduce the use of patterns in the associated software development organizations. As an initial step in this project, FMV is examining a number of existing defense systems developed by different suppliers. One of these suppliers is Enator Telub AB in Växjö, which has developed the ATC (Air Traffic Control) system SIGMA/AMP. In this master thesis, we examine the SIGMA/AMP system to investigate whether patterns have been used during the development work or not. We will also discuss whether or not patterns are really useful in passing along knowledge and experience from one person to another. Preface During the spring and fall academic terms of 1999 we have conducted a thorough investigation of the formal topic of software patterns and then we have turned that knowledge to practical use by investigating the exact usage of patterns in a major software system development effort. We have mainly examined patterns on two different levels of abstraction; design and architecture. The outcome of this work has resulted in this computer science master thesis. Our target using organization was the Swedish Defense Material Administration and the assignment was conducted at Enator Telub AB in Växjö, Sweden. We would especially like to thank our tutor Per Christensen at Telub who has supported us the whole way. We would also like to thank Göran Henningsson at Telub and Torbjörn Svärd at Södra Skogsägarna in Växjö who were part of the original development team and who aided us in our interviews. Finally, we thank Ulf Cederling who has been our tutor at Växjö University and has commented on, and made useful suggestions about, the contents of this thesis. Växjö 06-08-99 Mattias Blåman Robert Pratz ã 1999 Mattias Blåman & Robert Pratz 1. Introduction ............................................................. 4 1.1 Background .......................................................................4 1.2 Problem ............................................................................4 1.3 Purpose.............................................................................4 1.4 Expectations ......................................................................5 1.5 Limitations ........................................................................5 1.6 Method .............................................................................5 2. Method .................................................................... 6 2.1 Philosophy of Science..........................................................6 2.1.1 Positivism .....................................................................6 2.1.2 Hermeneutics................................................................7 2.1.3 Phenomenology .............................................................7 2.2 Qualitative and Quantitative Methods....................................8 2.3 Data Collection Methods ......................................................8 2.3.1 Case Studies .................................................................9 2.3.2 Observations.................................................................9 2.3.3 Interviews ....................................................................9 2.3.4 Literature Studies ..........................................................9 2.4 Reliability and Validity....................................................... 10 2.5 Conclusions ..................................................................... 10 3. Introduction to Patterns ............................................12 3.1 Patterns Overview ............................................................ 12 3.2 What Patterns do.............................................................. 14 3.3 What patterns consist of.................................................... 15 3.4 Architectural Patterns ....................................................... 15 3.5 Design Patterns................................................................ 16 3.6 Implementation Patterns ................................................... 16 3.7 Differences between Architectural, Design, and Implementation patterns ................................................................................. 17 4. Architectural and Design Patterns ..............................18 4.1 Architectural Patterns ....................................................... 18 4.2 From Mud to Structure Patterns ......................................... 19 4.3 Distributed Systems Patterns ............................................. 19 4.4 Interactive Systems Patterns ............................................. 20 4.5 Adaptable Systems Patterns .............................................. 20 4.6 The Model-View-Controller Pattern ..................................... 20 4.6.1 MVC ........................................................................... 21 4.6.2 Problem...................................................................... 21 4.6.3 Solution...................................................................... 21 4.6.4 Consequences ............................................................. 22 4.7 Design Patterns................................................................ 24 4.8 Creational Patterns ........................................................... 25 4.9 Structural Patterns............................................................. 26 4.10 Behavioral Patterns .......................................................... 26 1 4.11 Design Pattern Description Models...................................... 26 4.12 Comparison between Description Models ............................. 28 4.13 The Singleton Pattern ....................................................... 28 4.13.1Intent......................................................................... 29 4.13.2Motivation................................................................... 29 4.13.3Applicability ................................................................ 29 4.13.4Structure .................................................................... 29 4.13.5Participants................................................................. 29 4.13.6Collaborations ............................................................. 30 4.13.7Consequences ............................................................. 30 4.13.8Implementation ........................................................... 30 4.13.9Known Uses ................................................................ 32 4.13.10 Related Patterns........................................................ 32 5. The SIGMA System ..................................................33 5.1 SIGMA Versions ............................................................... 33 5.2 SIGMA Product Platform .................................................... 34 5.3 The SIGMA/AMP Server..................................................... 36 5.4 The SIGMA/AMP Clients..................................................... 37 5.5 SIGMA Client Architecture ................................................. 38 6. Problems and Solutions in the SIGMA/AMP Client .........40 6.1 The Configuration Problem ................................................ 40 6.2 The Solution of the Configuration Problem ........................... 41 6.2.1 BasePage Functionality ................................................. 41 6.2.2 BaseSheet Functionality................................................ 42 6.2.3 BaseView Functionality ................................................. 42 6.2.4 BaseDocument Functionality ......................................... 42 6.3 Client Object Model........................................................... 42 7. Patterns in the SIGMA/AMP System............................45 7.1 Design Structures in the SIGMA/AMP Client ......................... 45 7.2 The Observer Pattern........................................................ 46 7.2.1 Area of Application....................................................... 47 7.2.2 Consequences ............................................................. 47 7.2.3 Structure .................................................................... 48 7.3 The Chain-of-Responsibility Pattern .................................... 48 7.3.1 Area of Application....................................................... 49 7.3.2 Consequences ............................................................