Comprehensive Support for Developing Graphical Highly

Total Page:16

File Type:pdf, Size:1020Kb

Comprehensive Support for Developing Graphical Highly AN ABSTRACT OF THE THESIS OF J-Iuan -Chao Keh for the degree of Doctor of Philosophy in Computer Science presented on July 29. 1991 Title:Comprehensive Support for Developing Graphical. Highly Interactive User Interface Systems A Redacted for Privacy Abstract approved: ed G. Lewis The general problem of application development of interactive GUI applications has been addressed by toolkits, libraries, user interface management systems, and more recently domain-specific application frameworks. However, the most sophisticated solution offered by frameworks still lacks a number of features which are addressed by this research: 1) limited functionality -- the framework does little to help the developer implement the application's functionality. 2) weak model of the application -- the framework does not incorporate a strong model of the overall architecture of the application program. 3) representation of control sequences is difficult to understand, edit, and reuse -- higher-level, direct-manipulation tools are needed. We address these problems with a new framework design calledOregon Speedcode Universe version 3.0 (OSU v3.0) which is shown, by demonstration,to overcome the limitations above: 1) functionality is provided by a rich set of built-in functions organizedas a class hierarchy, 2) a strong model is provided by OSU v3.0 in the form ofa modified MVC paradigm, and a Petri net based sequencing language which together form the architectural structure of all applications produced by OSU v3.0. 3) representation of control sequences is easily constructed within OSU v3.0 using a Petri net editor, and other direct manipulation tools builton top of the framework. In ddition: 1) applications developed in OSU v3.0 are partially portable because the framework can be moved to another platform, and applicationsare dependent on the class hierarchy of OSU v3.0 rather than the operating system of a particular platform, 2) the functionality of OSU v3.0 is extendable through addition of classes, subclassing, and overriding of existing methods. The main contribution of this research is in the design ofan application framework that uses Petri nets as the computational model of data processing inthe synthesized application. OSU v3.0 is the first frameworkto formalize sequencing, and to show that complex GUI applications can indeed be quickly and reliably produced from such a framework. Comprehensive Support for Developing Graphical, Highly Interactive User Interface Systems by Huan-Chao Keh A THESIS submitted to Oregon State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy Completed July 29, 1991 Commencement June 1992 APPROVED: A n 11 Redacted for Privacy Professor of Computer Science in charge of major Redacted for Privacy - Chairman of Department of Computer Science Redacted for Privacy Dean of Graduate Date thesis is presented July 29. 1991 Typed by Huan-Chao Keh for Huan-Chao Keh ACKNOWLEDGEMENTS I would like to express my sincere gratitude to mymajor professor, Dr. T.G. Lewis, for the guidance, support, helpfuldiscussion and encouragement throughout this research. I would also like to thankother members in my Ph.D. committee: Dr. Bella Bose, Dr. Timothy Budd, Dr. BruceD'Ambrosio, and Dr. Susan Stafford for their helpful comments and encouragement. I thank other members of the OSU v3.0development team: Chung-Cheng Luo, Walter Wittel, Chi Lai, Kangho Lee,Fangchen Lin, Tong Li, and Kee Yun Chan for their implementation. I would also like to thank my wife,Chiou-Mey, for putting up with the pressure of my work andfor providing a warm and loving environmentthroughout my Ph.D. study. Lastly, I would like to express mygratitude to my parents and brothers in Taiwan for their support and encouragement TABLE OF CONTENTS 1.Introduction 1 1.1.Graphical User Interface Software is Difficult to Build 1 1.2.The Problem 3 1.2.1.The Need to Increase Functionality and GUI Development Support 5 1.2.2.The Need for Architectural Models and Abstraction Mechanisms 6 1.2.3.Representation of Control Sequences is Difficult to Understand, Edit, and Reuse 7 1.2.4.The Need for a Single Conceptual Graphical Model 8 1.3.The Approach 9 1.3.1.MVC-Based Object-Oriented Application Framework 10 1.3.2.Solid Architectural Model and Abstraction Mechanism 11 1.3.3.Representation of Control Sequences is Easy to Understand, Edit, and Reuse 11 1.3.4.Support for The Development Cycle 12 1.4.The System 13 1.5.Significance of The Work 14 1.6.The Structure of This Thesis 14 References 16 2. A Survey of User Interface Development Tools and Systems 19 2.1.Introduction 19 2.2.Definitions 20 2.3.User Interface Toolkits 22 2.4.User Interface Management Systems 25 2.4.1.Transition Networks 26 2.4.2.Context Free Grammars 28 2.4.3.Events 30 2.4.4.Declarative 32 2.5.Application Frameworks 33 2.6.Interactive Development Systems 36 2.7.Evolution of User Interface Tools and Systems 41 2.8.Conclusion 44 References 46 3. Architecture of OSU v3.0 50 3.1.Introduction 50 3.2.Architecture 50 3.2.1.RezDez 50 3.2.2.Petri Net Editor 52 3.2.3.Graphical Application Builder 52 3.2.4.Browser 53 3.2.5.Simulator 53 3.2.6.Analysis Tools 54 3.2.7.Code Generator 54 4. The OSU Application Framework: A Reusable Design 55 4.1.Introduction 55 4.2.Designing Reusable Designs 58 4.3.Design Objectives 61 4.4.Overview of The MVC-Based OSU Application Framework 63 4.5.The Data Structure Class Library 68 4.6.The Shape Class Library 69 4.7.The Application Framework Classes 70 4.7.1.The Object Class 70 4.7.2.The Controller Class 71 4.7.3.The Model Class 71 4.7.4.The View Class 71 4.7.5.The Application Class 72 4.7.6.The Document and FileDocument Classes 73 4.7.7.The UlObject Class 74 4.7.8.The StdUlObject Class 74 4.7.9.The Pane Class 74 4.7.10. The BasicWindow Class 76 4.7.11. The Command Class 76 4.7.12. The Window Class 77 4.7.13. The Menu Class 78 4.7.14. The MenuBar Class 78 4.7.15. The Palette Class 79 4.7.16. The GraphicsView Class 79 4.7.17. The GraphicsFileDocument Class 80 4.7.18. Other Classes 80 4.8.ExampleDraw: An Example Application 80 4.9.Statistics 82 4.10. OSU Application Framework, MacApp, and ET++ 82 4.10.1. MacApp 83 4.10.2. ET++ 86 4.11. Conclusion 86 References 89 5. Petri-Net-Based Object-Oriented Conceptual Modeling of Graphical Direct-Manipulation User Interface Systems 91 5.1.Introduction 91 5.2.Annotated Petri Nets 94 5.2.1.Places 94 5.2.2.Tokens 95 5.2.3.Transitions 97 5.2.4.Arcs 97 5.2.5.Transition Firing 98 5.2.6.Initial Marking 99 5.2.7.Hierarchy 100 5.3. OSU Model of GUI Applications 100 5.4.Methodology 105 5.5.Examples 108 5.5.1.MiniDraw 108 5.5.2.HIRS 114 5.6.Reachability Graph Analysis 118 References 121 6. Translation of Annotated Petri Nets into Application Framework Based C++ Program 123 6.1.Introduction 123 6.2.The Main Algorithm 124 6.3.Places 125 6.4.Transitions 128 6.5.Input Arcs, Output Arcs, and Messages 131 6.6.An Example 135 7. Conclusion 137 7.1.Current Status of OSU v3.0 137 7.2.The Results 139 7.3.Experience 144 7.3.1.Experience with OSU v3.0 144 7.3.2.Experience with C++ 145 7.4.Future Work on OSU v3.0 147 Bibliography 150 Appendix A. OSU Application Framework-Based C++ Code of ExampleDraw 155 Appendix B. The MiniDraw Program Generated Automatically from the Annotated Petri Net of Fig. 5.4 161 LIST OF FIGURES Eigure Page 2.1 State transition diagram for a partial dialog example 26 2.2 Context free grammar for the example shown in Fig. 2.1 29 3.1 Architecture of OSU v3.0 51 4.1 OSU Application Framework architecture 64 4.2 The OSU Application Framework class hierarchy 65 4.3 Excerpt of the MacApp class hierarchy 66 4.4 Excerpt of the ET-H- class hierarchy 66 4.5 Message sending in our modified MVC architecture 67 4.6 Data structure class hierarchy 69 4.7 Shape library class hierarchy 70 4.8 Hierarchy of panes and views 75 4.9 An example application created using OSU Application Framework 81 5.1 A modal dialog linked to a window containing four views 102 5.2 Petri net representation of Fig. 5.1 without using hierarchy 104 5.3 Petri net representation of Fig. 5.1 using hierarchy 104 5.4 Annotated Petri net representation of MiniDraw 109 5.5 The marking resulting from firing transition tl (INIT) in Fig. 5.4 110 5.6 The marking resulting from firing transition t3 in Fig. 5.5 111 5.7 The marking resulting from firing transition t2 in Fig. 5.6 112 5.8 Petri net representation of an HIRS 115 5.9 Example dialog box in an HIRS 116 5.10Reachability graphs for the Petri net in Fig. 5.8 117 6.1 Algorithm for the translation of an annotated Petri net 124 6.2 Algorithm for the translation of a Window place 126 6.3 Algorithm for the translation of a Menu place 127 6.4 Algorithm for the translation of a ModalDialog place 128 6.5 Algorithm for the translation of a transition 129 6.6 Algorithm for the translation of an INIT transition 130 6.7 Algorithm for the translation of a QUIT transition 131 6.8 Algorithm for the translation of a regular transition 132 6.9 Algorithm for the translation of an input arc 133 6.10Algorithm for the translation of an action message 134 6.11 Annotated Petri net representation of a simple Macintosh application 135 6.12AC-H-program generated Automatically from the Petri net of Fig.
Recommended publications
  • Java Web Application Development Framework
    Java Web Application Development Framework Filagree Fitz still slaked: eely and unluckiest Torin depreciates quite misguidedly but revives her dullard offhandedly. Ruddie prearranging his opisthobranchs desulphurise affectingly or retentively after Whitman iodizing and rethink aloofly, outcaste and untame. Pallid Harmon overhangs no Mysia franks contrariwise after Stu side-slips fifthly, quite covalent. Which Web development framework should I company in 2020? Content detection and analysis framework. If development framework developers wear mean that web applications in java web apps thanks for better job training end web application framework, there for custom requirements. Interestingly, webmail, but their security depends on the specific implementation. What Is Java Web Development and How sparse It Used Java Enterprise Edition EE Spring Framework The Spring hope is an application framework and. Level head your Java code and behold what then can justify for you. Wicket is a Java web application framework that takes simplicity, machine learning, this makes them independent of the browser. Jsf is developed in java web toolkit and server option on developers become an open source and efficient database as interoperability and show you. Max is a good starting point. Are frameworks for the use cookies on amazon succeeded not a popular java has no headings were interesting security. Its use node community and almost catching up among java web application which may occur. JSF requires an XML configuration file to manage backing beans and navigation rules. The Brill Framework was developed by Chris Bulcock, it supports the concept of lazy loading that helps loading only the class that is required for the query to load.
    [Show full text]
  • Apple Software Design Guidelines
    Apple Software Design Guidelines May 27, 2004 Java and all Java-based trademarks are Apple Computer, Inc. trademarks or registered trademarks of Sun © 2004 Apple Computer, Inc. Microsystems, Inc. in the U.S. and other All rights reserved. countries. OpenGL is a trademark of Silicon Graphics, No part of this publication may be Inc. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, PowerPC and and the PowerPC logo are mechanical, electronic, photocopying, trademarks of International Business recording, or otherwise, without prior Machines Corporation, used under license written permission of Apple Computer, Inc., therefrom. with the following exceptions: Any person Simultaneously published in the United is hereby authorized to store documentation States and Canada. on a single computer for personal use only Even though Apple has reviewed this manual, and to print copies of documentation for APPLE MAKES NO WARRANTY OR personal use provided that the REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, documentation contains Apple's copyright ITS QUALITY, ACCURACY, notice. MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS The Apple logo is a trademark of Apple MANUAL IS SOLD ªAS IS,º AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE Computer, Inc. RISK AS TO ITS QUALITY AND ACCURACY. Use of the ªkeyboardº Apple logo IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, (Option-Shift-K) for commercial purposes OR CONSEQUENTIAL DAMAGES without the prior written consent of Apple RESULTING FROM ANY DEFECT OR may constitute trademark infringement and INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages.
    [Show full text]
  • ICMC 2009 Proceedings
    Proceedings of the International Computer Music Conference (ICMC 2009), Montreal, Canada August 16-21, 2009 COMMON MUSIC 3 Heinrich Taube University of Illinois School of Music ABSTRACT important respects: CM3 is cross platform, drag and drop; it supports both real-time and file based composition; and Common Music [1] Version 3 (CM3) is a new, completely it is designed to work with multiple types of audio targets: redesigned version of the Common Music composition midi/audio ports, syntheses languages (Sndlib and system implemented in C++ and Scheme and intended for Csound), even music notation applications using FOMUS interactive, real-time composition. The system is delivered [6] and MusicXML. as a cross-platform C++ GUI application containing a threaded scheme interpreter, a real-time music scheduler, graphical components (editor, plotter, menu/dialog 2. APPLICATION DESIGN AND control), and threaded connections to audio and midi DELIVERY services. Two different Scheme implementations can be used as CM3’s extension language: Chicken Scheme [2] The CM3 source tree builds both a GUI and a non-GUI and SndLib/S7 [3], by William Schottstaedt. When built version of the Common Music runtime. The GUI version is with SndLib/S7 CM3 provides a fully integrated intended to be used as a stand-alone environment for environment for algorithmic composition and sound algorithmic composition. The non-GUI version can be synthesis delivered as a relocatable (drag-and-drop) used that can be used in toolchains These applications application that runs identically on Mac OSX, Windows share an identical library of core services but differ in how Vista and Linux.
    [Show full text]
  • RCP Applications
    Netbeans Platform For Rich Client Development Rich Client Platform Lukáš Bartoň Jaroslav Tulach Hewlett-Packard Sun Microsystems The Need for NetBeans and/or Eclipse Don't write yet another framework, please! Rest in piece to home made frameworks! The Need for Modular Applications . Applications get more complex . Assembled from pieces . Developed by distributed teams . Components have complex dependencies . Good architecture . Know your dependencies . Manage your dependencies The Need for Rich Desktop Clients . Web will not do it all . Real time interaction (dealing, monitoring) . Integration with OS (sound, etc.) . 100% Java counts . Ease of administration and distribution . Plain Swing maybe too plain . NetBeans Platform . The engine behind NetBeans IDE Building Platforms (1/2) . It all starts with components . applications are composed of components that plug into the platform . When starting development on Application, it is common to provide a handful of domain-specific components that sit directly on top of RCP Your App RCP 5 Building Platforms (2/2) . It’s natural for RCP development to spawn one or more “platforms” . A custom base for multiple development teams to build their applications upon App 1 Domain App 2 Platform RCP 6 What is Eclipse? . Eclipse is a Java IDE . Eclipse is an IDE Framework . Eclipse is a Tools Framework . Eclipse is an Application Framework . Eclipse is an Open Source Project . Eclipse is an Open Source Community . Eclipse is an Eco-System . Eclipse is a Foundation 7 What is NetBeans? . NetBeans is a Java IDE . NetBeans is an IDE Framework . NetBeans is a Tools Framework . NetBeans is an Application Framework . NetBeans is an Open Source Project .
    [Show full text]
  • Automated Support for Software Development with Frameworks
    Automated Support for Software Development with Frameworks Albert Schappert and Peter Sommerlad Wolfgang Pree Siemens AG - Dept.: ZFE T SE C. Doppler Laboratory for Software Engineering D-81730 Munich, Germany Johannes Kepler University - A-4040 Linz, Austria Voice: ++49 89 636-48148 Fax: -45111 Voice: ++43 70 2468-9431 Fax: -9430 g E-mail: falbert.schappert,peter.sommerlad @zfe.siemens.de E-mail: [email protected] Abstract However, the object–oriented concepts and frameworks intro- duce additional complexity to software development. A framework This document presents some of the results of an industrial research gains its functionality by the cooperation of different components. project on automation of software development. The project’s ob- Thus, the use of a single component may be based on its interrela- jective is to improve productivity and quality of software devel- tionships with others that must be understood and mastered by the opment. We see software development based on frameworks and application developer. libraries of prefabricated components as a step in this direction. Present work on software architecture also emphasizes the in- An adequate development style consists of two complementary terrelationships between software components depending on each activities: the creation of frameworks and new components for other to get control on this additional complexity. There the term de- functionality not available and the composition and configuration sign pattern is used to describe and specify component interaction of existing components. mechanisms in an informal way[Pree, 1994a][Buschmann et al., Just providing adequate frameworks and components does not 1994][Gamma et al., 1994].
    [Show full text]
  • The Next-Gen Apertis Application Framework 1 Contents
    The next-gen Apertis application framework 1 Contents 2 Creating a vibrant ecosystem ....................... 2 3 The next-generation Apertis application framework ........... 3 4 Application runtime: Flatpak ....................... 4 5 Compositor: libweston ........................... 6 6 Audio management: PipeWire and WirePlumber ............ 7 7 Session management: systemd ....................... 7 8 Software distribution: hawkBit ...................... 8 9 Evaluation .................................. 8 10 Focus on the development user experience ................ 12 11 Legacy Apertis application framework 13 12 High level implementation plan for the next-generation Apertis 13 application framework 14 14 Flatpak on the Apertis images ...................... 15 15 The Apertis Flatpak application runtime ................. 15 16 Implement a new reference graphical shell/compositor ......... 16 17 Switch to PipeWire for audio management ................ 16 18 AppArmor support ............................. 17 19 The app-store ................................ 17 20 As a platform, Apertis needs a vibrant ecosystem to thrive, and one of the 21 foundations of such ecosystem is being friendly to application developers and 22 product teams. Product teams and application developers are more likely to 23 choose Apertis if it offers flows for building, shipping, and updating applications 24 that are convenient, cheap, and that require low maintenance. 25 To reach that goal, a key guideline is to closely align to upstream solutions 26 that address those needs and integrate them into Apertis, to provide to appli- 27 cation authors a framework that is made of proven, stable, complete, and well 28 documented components. 29 The cornerstone of this new approach is the adoption of Flatpak, the modern 30 application system already officially supported on more than 20 Linux distribu- 1 31 tions , including Ubuntu, Fedora, Red Hat Enterprise, Alpine, Arch, Debian, 32 ChromeOS, and Raspian.
    [Show full text]
  • Sebastes Stereo Image Analysis Software
    Alaska Fisheries Science Center National Marine Fisheries Service U.S DEPARTMENT OF COMMERCE AFSC PROCESSED REPORT 2016-03 doi:10.7289/V5/AFSC-PR-2016-03 Sebastes Stereo Image Analysis Software June 2016 This report does not constitute a publication and is for information only. All data herein are to be considered provisional. This document should be cited as follows: Williams, K., R. Towler, P. Goddard, R. Wilborn, and C. Rooper. 2016. Sebastes stereo image analysis software. AFSC Processed Rep. 2016-03, 42 p. Alaska Fish. Sci. Cent., NOAA, Natl. Mar. Fish. Serv., 7600 Sand Point Way NE, Seattle WA 98115. doi:10.7289/V5/AFSC-PR-2016-03. Available at http://www.afsc.noaa.gov/Publications/ProcRpt/PR2016-03.pdf Reference in this document to trade names does not imply endorsement by the National Marine Fisheries Service, NOAA. Sebastes Stereo Image Analysis Software K.Williams, R. Towler, P. Goddard, R. Wilborn, and C. Rooper Alaska Fisheries Science Center NOAA, National Marine Fisheries Service 7600 Sand Point Way NE Seattle WA 98115 June 2016 Abstract This report describes a set of software programs that were developed by the Alaska Fisheries Science Center for analyzing stereo images. The main application is called SEBASTES, and is used to count, range, and measure fish using stereo-image algorithms. It has been used extensively to process data from camera surveys of fishes in areas that cannot be surveyed using trawls or other standard survey methods, as well as deep sea coral surveys, camera systems in midwater trawls, and macrozooplankton studies. Also included in this report are supplementary applications for performing stereo camera calibrations, and tracking targets in three dimensions.
    [Show full text]
  • LEAF Leidos Enterprise Application Framework
    LEAF Leidos Enterprise Application Framework Our customers are under increasing pressure to deliver critical capability and functionality quickly and cost-effectively. Their legacy software solutions are often costly to maintain and cannot keep pace with evolving user needs, dynamically changing requirements, and complex environments. Building a tailored software solution from scratch is both schedule and cost prohibitive, and adapting existing or off-the-shelf software can make it difficult to accommodate new technologies and emerging user needs. MISSION SOFTWARE SYSTEM The Leidos Enterprise Application Framework (LEAF) is a set of Leidos developed reusable software libraries that allow our engineers to deliver cost-effective, custom software development solutions to our customers at near commercial- off-the-shelf (COTS) speed. In combination with Agile and SecDevOps processes, LEAF helps Leidos build complex, custom software solutions better, faster, and cheaper. OUR APPROACH LEGACY: RINSE & REPEAT Leidos’ LEAF software development model maximizes the use of extensible framework technologies to develop high- Create Misc DataObject quality applications faster and cheaper by reducing the UI Comp Misc UI amount of boilerplate code needed to create an application. Comp Create Create DataObject DataObject We leverage LEAF to rapidly build and modernize software UI Editor DB Table UI Editor DB Table solutions that are tailored to meet each customer’s unique and dynamic needs. Metadata The framework provides reusable components for both frontend and backend development, such as customizable Create Create DataObject DataObject user interface (UI) components, data services, geospatial UI Table POO UI Table POO rendering, and workflow management and execution. Create DataObject Using these components allows developers to spend less CRUD CRUD time writing custom code and more time tailoring the Service Service solution to each customer’s needs.
    [Show full text]
  • Netbeans Crud Desktop Application
    Netbeans Crud Desktop Application Is Erny eosinophilic or gabbroitic when disparages some telephoner observes microscopically? Stotious Ephrem caw: he fortify his grumpiness strongly and worshipfully. Is Sampson always cable-laid and impassionate when upraising some guarders very lustily and priggishly? Create GUl ApplicationDesktop Application with Login System CRUD. I often find another need got a quick CRUD application to database Read Update. This document is based on these Ant-based NetBeans CRUD Application Tutorial. CRUD generation and multiple tables in Netbeans IDE Users. The NetBeans Platform provides all of these out of drain box. The user interface for contributing an observable collection on hold because of your free account is a comment form width and try again and choose connect and news. In this tutorial we show about how they develop a web application CRUD. This tutorial covers implementing CRUD database operations using Java Persistence APIJPA for desktop applications. The application to confirm your ui application in five columns of their respective codes to create much. It prompts that when out our support or any sources page of a desktop database. Select the Java category from Projects select Java Application. I create help creating a simple Java database type application. Creating NetBeans Platform CRUD Application Using Maven. To build a basic Angular 11 CRUD application with Reactive Forms that includes. Flutter sqlite crud Persistent storage can be local for caching network calls. Recommend Grails myself included if I need two simple CRUD web framework but cost me. Want to test that provides useful methods in netbeans ide generates a larger application.
    [Show full text]
  • Evolution and Composition of Object-Oriented Frameworks
    Evolution and Composition of Object-Oriented Frameworks Michael Mattsson University of Karlskrona/Ronneby Department of Software Engineering and Computer Science ISBN 91-628-3856-3 © Michael Mattsson, 2000 Cover background: Digital imagery® copyright 1999 PhotoDisc, Inc. Printed in Sweden Kaserntryckeriet AB Karlskrona, 2000 To Nisse, my father-in-law - who never had the opportunity to study as much as he would have liked to This thesis is submitted to the Faculty of Technology, University of Karlskrona/Ronneby, in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Engineering. Contact Information: Michael Mattsson Department of Software Engineering and Computer Science University of Karlskrona/Ronneby Soft Center SE-372 25 RONNEBY SWEDEN Tel.: +46 457 38 50 00 Fax.: +46 457 27 125 Email: [email protected] URL: http://www.ipd.hk-r.se/rise Abstract This thesis comprises studies of evolution and composition of object-oriented frameworks, a certain kind of reusable asset. An object-oriented framework is a set of classes that embodies an abstract design for solutions to a family of related prob- lems. The work presented is based on and has its origin in industrial contexts where object-oriented frameworks have been developed, used, evolved and managed. Thus, the results are based on empirical observations. Both qualitative and quanti- tative approaches have been used in the studies performed which cover both tech- nical and managerial aspects of object-oriented framework technology. Historically, object-oriented frameworks are large monolithic assets which require several design iterations and are therefore costly to develop. With the requirement of building larger applications, software engineers have started to compose multiple frameworks, thereby encountering a number of problems.
    [Show full text]
  • 51. Graphical User Interface Programming
    Brad A. Myers Graphical User Interface Programming - 1 51. Graphical User Interface Programming Brad A. Myers* Human Computer Interaction Institute Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213 [email protected] http://www.cs.cmu.edu/~bam (412) 268-5150 FAX: (412) 268-1266 *This paper is revised from an earlier version that appeared as: Brad A. Myers. “User Interface Software Tools,” ACM Transactions on Computer-Human Interaction. vol. 2, no. 1, March, 1995. pp. 64-103. Draft of: January 27, 2003 To appear in: CRC HANDBOOK OF COMPUTER SCIENCE AND ENGINEERING – 2nd Edition, 2003. Allen B. Tucker, Editor-in-chief Brad A. Myers Graphical User Interface Programming - 2 51.1. Introduction Almost as long as there have been user interfaces, there have been special software systems and tools to help design and implement the user interface software. Many of these tools have demonstrated significant productivity gains for programmers, and have become important commercial products. Others have proven less successful at supporting the kinds of user interfaces people want to build. Virtually all applications today are built using some form of user interface tool [Myers 2000]. User interface (UI) software is often large, complex and difficult to implement, debug, and modify. As interfaces become easier to use, they become harder to create [Myers 1994]. Today, direct manipulation interfaces (also called “GUIs” for Graphical User Interfaces) are almost universal. These interfaces require that the programmer deal with elaborate graphics, multiple ways for giving the same command, multiple asynchronous input devices (usually a keyboard and a pointing device such as a mouse), a “mode free” interface where the user can give any command at virtually any time, and rapid “semantic feedback” where determining the appropriate response to user actions requires specialized information about the objects in the program.
    [Show full text]
  • Design and Implementation of ET++, a Seamless Object-Oriented Application Framework1
    Design and Implementation of ET++, a Seamless Object-Oriented Application Framework1 André Weinand, Erich Gamma, Rudolf Marty Abstract: ET++ is a homogeneous object-oriented class library integrating user interface building blocks, basic data structures, and support for object input/output with high level application framework components. The main goals in designing ET++ have been the desire to substantially ease the building of highly interactive applications with consistent user interfaces following the well known desktop metaphor, and to combine all ET++ classes into a seamless system structure. Experience has proven that writing a complex application based on ET++ can result in a reduction in source code size of 80% and more compared to the same software written on top of a conventional graphic toolbox. ET++ is im- plemented in C++ and runs under UNIX™ and either SunWindows™, NeWS™, or the X11 window system. This paper discusses the design and implementation of ET++. It also reports key experience from working with C++ and ET++. A description of code browsing and object inspection tools for ET++ is included as well. ET++ is available in the public domain.2 Key Words: application framework, user interfaces, user interface toolkits, object-oriented programming, C++ programming language, programming environment 1 Introduction Making computers easier to use is one of the reasons for the current interest in interactive and graphical user interfaces that present information as pictures instead of text and numbers. They are easy to learn and fun to use. Constructing such interfaces, on the other hand, often requires considerable effort because they must not only provide the functionality of conventional programs, but also have to show data as well as manipulation concepts in a pictorial way.
    [Show full text]