
AN ABSTRACT OF THE DISSERTATION OF Charles D. Knutson for the degree of Doctor of Philosophy in Computer Science presented on January 9, 1998. Title: Pattern Systems and Methodologies for Multiparadigm Analysis and Design. Abstract approved: ______________________________________________________ Curtis R. Cook In this research, we have captured, in pattern form, key elements of programming and design in four programming paradigms (imperative, object-oriented, functional and logical) as well as multiparadigm programming. These pattern sets have formed a foundation upon which we were able to build a deeper understanding of multiparadigm programming and design. For each paradigm, we identified sets of programming patterns. We then identified design patterns for those paradigms that already have design methodologies (imperative and object-oriented). For those that do not (functional and logical), we created design pattern sets that may yet play a seminal role in formal design methodologies for those paradigms. From the relationships between programming and design patterns, we were able to identify and record methodological patterns that provide generative mappings between programming patterns and design patterns. From the sets of programming patterns, we were able to derive a pattern set for multiparadigm programming. We were also able to perform a critical analysis of the multiparadigm programming language Leda using this pattern set. Finally, we were able to apply the methodological patterns to this multiparadigm programming pattern set to aid in our search for multiparadigm design patterns. We were also able to derive insight into multiparadigm design patterns by studying the pattern sets for each of the four paradigms studied. Armed with this rich pattern system, we then created and presented a new pattern-based methodology for multiparadigm design. Finally, we applied our methodology and our pattern sets to three common design problems. We found that this new methodology lent new insights into software design, and suggested the role that multiparadigm programming and design can play in many aspects of software creation. © Copyright by Charles D. Knutson January 9, 1998 All Rights Reserved Pattern Systems and Methodologies for Multiparadigm Analysis and Design by Charles D. Knutson A DISSERTATION submitted to Oregon State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy Presented January 9, 1998 Commencement June 1998 Doctor of Philosophy dissertation of Charles D. Knutson presented on January 9, 1998 Approved: ____________________________________________________________________ Major Professor, representing Computer Science ____________________________________________________________________ Head of Department of Computer Science ____________________________________________________________________ Dean of Graduate School I understand that my dissertation will become part of the permanent collection of Oregon State University libraries. My signature below authorizes release of my dissertation to any reader upon request. ____________________________________________________________________ Charles D. Knutson, Author ACKNOWLEDGEMENT This work represents a collaborative effort between many people, whether directly associated with this research or not. First of all, I owe a tremendous debt of gratitude to my advisors, Dr. Curtis Cook and Dr. Tim Budd. They have spent many hours with me providing counsel, insight, and feedback as this work has progressed. They have become advisors and mentors to me in the fullest sense. Working with Dr. Cook and Dr. Budd as a researcher and as a student has provided many of the highlights of my doctoral experience at Oregon State University. To my other committee members, Dr. Paul Cull, Dr. Gregg Rothermel and Dr. Jim Lundy, I give my thanks and appreciation for their time, their support, and their encouragement. I also wish to express my thanks to Dr. Evan Ivie and Dr. Scott Woodfield of Brigham Young University whose examples as educators and researchers planted some of the earliest seeds in my heart and mind more than a decade ago of what I could achieve in Computer Science. This research effort is, in some ways, a fruit of those early seeds which they helped nurture in me. I wish to express my deep love and respect for my wife’s parents, Dr. and Mrs. Don and Eleanore Kartchner. They have been a constant source of support, encouragement and inspiration to me throughout my education. To my own parents, Allen and Marjorie Knutson, I owe some of the most profound debts that can be incurred in this life. Their support and encouragement have strengthened me in times of struggle. I love them will all my heart and give them the gift of knowing that I am finally done with school! My deepest love and appreciation are to my wife, Alana, and our six beautiful children, Aubrey, Brooke, Brad, Christopher, Eric and Sarah. Alana has supported me in my studies almost our entire marriage, and has struggled and suffered in ways that only she and I understand. My children have suffered from my absence during most of their young years. To my wife and children I can finally say, “Dad’s coming home!” Finally, I wish to express my thanks to a loving Heavenly Father who has more than once lifted our family up, dusted us off, inspired us, strengthened us, guided us, and grew us into something none of us were when we started. TABLE OF CONTENTS Page 1. Introduction .....................................................................................................................1 1.1 Problem Statement .................................................................................................... 1 1.1.1 Programming Paradigms .................................................................................... 2 1.1.2 Imperative Programming.................................................................................... 2 1.1.3 Object-Oriented Programming........................................................................... 3 1.1.4 Functional Programming.................................................................................... 3 1.1.5 Logical Programming......................................................................................... 4 1.1.6 Multiparadigm Programming............................................................................. 5 1.1.7 Programming Languages Evolve Over Time ..................................................... 5 1.1.8 Programming Languages Rise with Design Methodologies .............................. 7 1.1.9 Multiparadigm Languages and Design............................................................... 8 1.2 Language and Design Foundations ........................................................................... 9 1.3 Design Patterns........................................................................................................ 10 1.4 Design Methodology............................................................................................... 12 1.5 Case Studies ............................................................................................................ 14 1.6 Summary ................................................................................................................. 14 2. Imperative Programming Patterns.................................................................................16 3. Imperative Analysis and Design Patterns......................................................................38 4. Object-Oriented Programming Patterns ........................................................................59 5. Object-Oriented Analysis and Design Patterns .............................................................73 6. Functional Programming Patterns.................................................................................93 7. Functional Analysis and Design Patterns....................................................................112 8. Logical Programming Patterns....................................................................................126 9. Logical Analysis and Design Patterns.........................................................................141 10. Methodological Patterns............................................................................................150 TABLE OF CONTENTS, Continued Page 11. Multiparadigm Programming Patterns ......................................................................163 11.1 Introduction ......................................................................................................... 163 11.2 Adoptive versus Hybrid Combination................................................................. 163 11.3 Programmatic Equivalence Classes and Inherent Commonality......................... 164 11.4 “Multiple Paradigm” versus “Multiparadigm” ................................................... 165 11.5 An Analysis of Leda Using Multiparadigm Programming Patterns.................... 196 12. Multiparadigm Analysis and Design Patterns ...........................................................200 12.1 Introduction ......................................................................................................... 200 12.2 Creating a Pattern Set for Multiparadigm Design............................................... 201 12.3 Results of Top-to-Bottom Evaluation ................................................................. 202 12.4 Results of Left-to-Right Evaluation ...................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages309 Page
-
File Size-