Information to Users
Total Page:16
File Type:pdf, Size:1020Kb
INFORMATION TO USERS This manuscript has been reproduced from the microfilm master. UMI films the text directly firom the orignal or copy submitted. Thus, some thesis and dissertation copies are in typewriter 6 c e , while others may be firom any type o f computer printer. The quality of this reproduction is dependent upon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleedthrough, substandard margins, and improper alignment can adversely afifect reproduction. In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion. Oversize materials (e.g., maps, drawings, charts) are reproduced by sectioning the original, beginning at the upper left-hand comer and continuing fi*om left to right in equal sections with small overlaps. Each original is also photographed in one exposure and is included in reduced form at the back o f the book. Photographs included in the original manuscript have been reproduced xerographically in this copy. Higher quality 6” x 9” black and white photographic prints are available for any photographs or illustrations appearing in this copy for an additional charge. Contact UMI directly to order. UMI A Bell & Howell Information Company 300 North Zeeb Road, Ann Arbor MI 48106-1346 USA 313/76M700 800/521-0600 CONCEPTUAL PROGRAM EDITORS: DESIGN AND FORMAL SPECIFICATION DISSERTATION Presented in Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the Graduate School of The Ohio State University By Paolo Bucci, M.S. ***** The Ohio State University 1997 Dissertation Committee: Approved by Dr. Timothy J. Long, Co-adviser r9~ Dr. Bruce W. Weide, Co-adviser Dr. Neelam Soundarajan Co-advisers Department of Computer and Information Science ÜMI Number: 9801653 UMI Microform 9801653 Copyright 1997, by UMI Company. All rights reserved. This microform edition is protected against unauthorized copying under Title 17, United States Code. UMI 300 North Zeeb Road Ann Arbor, MI 48103 © Copyright by Paolo Bucci 1997 ABSTRACT When a programmer uses a program editor, his/her view of what programs are and how they are built is affected by the editor itself. This is a special case of a more general phenomenon; namely, that all artifacts have an impact on the way users think of them and of the activities they perform with them. Research in human-machine interaction has explored the ramifications of this insight with respect to how it affects the design of tools and their user interface. In this dissertation we investigate the implications of this work for the design of program editors. We note that existing program editors convey a low-level, often inconsistent and incomplete conceptual model of programs and program construction. This hides the high-level conceptual view of programs, imposes excessive responsibilities on the programmer, and tends to make the programming task harder and more error prone. We propose a new class of program editors that we call “conceptual editors”. These editors are based on a specific, precise, high-level conceptual model of programs and program construction, and the editor and its user interface can be designed and built to convey the model in a consistent fashion. A conceptual editor, by design, supports, promotes, and even enforces an “appropriate” conceptual view of software through this model. 11 To show the feasibility of this approach to program editors, we formally specify an editor for a small, but significant (in terms of key concepts) subset of a programming language. By example, this demonstrates a precise description of a conceptual model and of a corresponding editor’s capabilities. We also discuss how this design could be extended and generalized to an editor for a full-fledged programming language. Ill To my parents IV ACKNOWLEDGMENTS First, I would like to thank my advisers, Tim Long and Bruce Weide. They both have followed my work closely, and their guidance has been invaluable. Their support and confidence in me has always exceeded my expectations. I am very lucky to have been able to work with them during the past four years. I also thank Neelam Soundarajan for many valuable comments and constructive suggestions. I am grateful to past and current members of the Reusable Software Research Group at The Ohio State University, and especially Bill Ogden, for numerous discussions and helpful insights. Many friends have shared and shaped my life during the past nine years. Most of them have come and gone while I struggled to find my way out of this seemingly inescapable maze. They are the reason I can now look back on this long experience and believe it was worth the time and suffering. In more or less chronological order, I would like to thank Hal and Eva McMillan, Wayne Heym, Ming-Jye Sheu, Sanjay Gupta, Manas Mandai, David Gibson, Bharat Kumar, Sergey Zhupanov, Lena Grayfer, Zafar Ali, and, last but not least, Bhavana Nagendra. In spite of the distance that separates us and the lack of effort on my part, some old friends have simply refused to give up on me and our friendship. They are Fabio Besta, Paolo Rollino, and Filippo and Andrea Tampieri. I thank them from the bottom of my heart because they showed with their actions how much they care about me. For the past five years one thing more than anything has helped me survive the stress and pressure of graduate school and that is my almost daily aerobic workouts with the Buck-I-Robics program at The Ohio State University. I wish to thank the program coordinator, Liz Davis, and all past and current Buck-I-Robics instructors for helping me become fit and healthy both physically and mentally. Finally, and most importantly, I wish to thank my parents, Giovanni and Adele Bucci, my brother, Mario, and my sister, Valeria, for their unconditional love and unwavering support. VI VITA November 30,1962 ................................Bom - Ferrara, Italy. 1986 .........................................................Laurea in Scienze dell’Informazione, Université degli Studi, Milan, Italy. 1986 .........................................................Research Staff Member, CISE, Italy. 1987 - 1988 ............................................ Consultant, Eidos, Spa, Italy. 1988 .........................................................Consultant, Unicad, Spa, Italy. 1988 - 1989...............................................University Fellow, The Ohio State University. 1989 .........................................................M.S. Computer and Information Science, The Ohio State University. 1989 - present........................................... Graduate Teaching and Research Associate, The Ohio State University. PUBLICATIONS P. Bucci. “Conceptual Program Editors.” Proceedings o f the Eight Workshop on Software Reuse, March 1997. P. Bucci. “A Program Editor to Promote Reuse.” Proceedings of the Seventh Workshop on Software Reuse, September 1995. P. Bucci, I.E. Hollingsworth, J. Krone, and B.W. Weide. “Implementing Components in ^JESOINE." ACM SIGSOFT Software Engineering Notes, 19(4):40-52, October 1994. Vll FIELDS OF STUDY Major Field: Computer and Information Science Studies in: Software Engineering Prof. Bruce W. Weide Theory of Computation Prof. Timothy J. Long Computer Graphics Prof. Richard E. Parent V lll TABLE OF CONTENTS Page DEDICATION........................................................................................................................ iv ACKNOWLEDGMENTS....................................................................................................... v VITA........................................................................................................................................vii LIST OF nOURES ............................................................................................................... xii CHAPTERS: 1. INTRODUCTION......................................................................................................... 1 1.1 The Problem.......................................................................................................1 1.2 The Thesis...........................................................................................................2 1.3 The Proposed Approach ...................................................................................6 1.4 Formal Specification of a Type Declaration Conceptual Editor ....................8 1.5 Contributions ...................................................................................................10 1.6 Organization .....................................................................................................11 2. CONCEPTUAL EDITORS........................................................................................13 2.1 Introduction .......................................................................................................13 2.2 Conceptual Models of Programming ............................................................ 16 2.2.1 Component vs. File/Class .................................................................. 17 2.2.2 Conceptual Relationships vs. Inheritance .........................................20 2.2.3 Operation Abstract Description vs. Function Prototype ................ 22 2.2.4 Abstract Parameter Mode vs. Parameter Passing Mechanism . 22 2.2.5 Chain_Position_Template vs. Pointers ...........................................