Separating Data from Instructions: Investigating a New Programming ParadigmUniversal-Publishers, 2002 - 220 Seiten We have experienced different theories of software construction paradigms in the last few decades; such as ``structured programming'' in the 1970's and "object-oriented programming" in the 1980's. The object-oriented paradigm is considered a standard for many software development activities, from the analysis phase to various support phases. There is little quantitative research, however, regarding the question whether object-oriented programming improves productivity. Many assume that object-oriented programming is more productive than traditional structured programming. This assumption lacks concrete, empirical data that support such belief. This dissertation identifies problems in the current object-oriented programming practice, and then presents an alternative paradigm to help overcome these problems. This paradigm separates the declaration of data structures from program executable instructions. We call this paradigm {\it the separation principle}. We first tried to understand what this paradigm means in practice. We developed example programs in a variety of application areas. We found that the separation principle is a viable paradigm for practical program construction. In order to demonstrate the validity of this paradigm, we have conducted both theoretical and empirical studies. The theoretical study consists of complexity measurements. The empirical study constitutes human understanding measurement; its purpose is to show statistical significance. The results give evidence of the effectiveness of the separation principle for practical software construction. |
Inhalt
1 | |
5 | |
6 | |
7 | |
23 Structured Programming and Functions | 10 |
24 Encapsulation and Ada Packages | 12 |
25 ObjectOriented Programming | 16 |
Problems with the ObjectOriented Paradigm | 18 |
55 Weather Polling | 78 |
56 Mathematical Objects | 81 |
57 Airport Simulation Example | 82 |
58 Painting Gallery Management | 89 |
Direct Measurement of Complexity | 92 |
61 Cyclomatic Complexity | 93 |
62 Halstead Complexity Measures | 94 |
63 Maintainability Index | 97 |
32 ObjectOriented Programs Are Difficult to Reuse | 20 |
33 OOP Concepts Are Difficult to Learn | 22 |
34 OOP Lacks Objective Studies on Productivity | 24 |
The Separation Principle | 26 |
42 Caves Solution | 27 |
Selection Sort | 31 |
43 Simplicity | 32 |
431 Traditional Scope Rules | 34 |
432 Simplicity by Using the Separation Principle | 37 |
44 Software Design and the Separation Principle | 39 |
How It Is Applied | 42 |
452 Application to ObjectOriented Design | 46 |
Suitable Problems | 49 |
47 Three Dimensions of this Thesis | 51 |
Examples | 53 |
51 Sequential File Processing | 57 |
52 Restaurant Ordering | 60 |
53 Simple Encryption | 62 |
54 ProducerConsumer | 77 |
64 Function Point Analysis | 99 |
65 Applying Complexity Measures to the Examples | 100 |
66 Analysis of the Results | 101 |
67 Assembly Codes Produced from the Examples | 110 |
Measuring Understandability | 116 |
71 Measuring Understandability through Experiments | 117 |
72 The Experiment | 119 |
73 Subjective Reactions | 126 |
74 Analysis of the Results | 129 |
75 Additional Experiment | 130 |
Software Reuse and Design Patterns | 136 |
Conclusion and Future Works | 141 |
Separation Principle Version of Airport Simulation Program | 145 |
OOP Version of Airport Simulation Program | 151 |
Separation Principle Version of Painting Gallery Management Program | 158 |
OOP Version of Painting Gallery Management Program | 173 |
190 | |
Andere Ausgaben - Alle anzeigen
Separating Data from Instructions: Investigating a New Programming Paradigm Yasushi Kambayashi Eingeschränkte Leseprobe - 2002 |
Häufige Begriffe und Wortgruppen
abstract data type abstraction aircraft airplane airplane_class airport simulation program assembly code assembly language call instructions complexity measures component of date cout ctype.h Cyclomatic Complexity data from instructions data members data module Data Module namespace DATE_TYPE date1 date2 Design Diagram endl example programs experiment Extended Cyclomatic Complexity file_name float fout function is removed.\n gallery file gallery management program Halstead measures identi imperative programming in_file input instruction modules int i=0 maintainability index member functions menu month1 nition NULL number of correct object-oriented programming Object-Oriented Style out_file output painting gallery management painting gallery program Producer/Consumer prog_clock programming languages programming paradigm queue reuse scope Selection Sort Program separation principle separation principle paradigm separation principle version shown in Figure signicant software construction software metrics Software Science Sort Program Written strcmp strcpy string structured programming subjects temp variables void Written Using Object-Oriented written using OOP year1