7 research outputs found
Recommended from our members
Integrating the MVC paradigm into an object-oriented framework to accelerate GUI application development
Applications supporting a graphical user interface (GUI) are difficult to write. While existing tools can accelerate software development, they suffer from a number of problems that limit their helpfulness. They offer too little functionality, and support only a small part of the GUI software development task. They lack architectural models and abstraction mechanisms to support large GUI applications. Their user interface specifications are difficult to understand. edit, and reuse. They lack a single conceptual, graphical model to be used as a medium for integrating specification, documentation, design, simulation, validation, and rapid prototyping.
We present an approach that solves many of these problems with existing systems by supporting a larger part of the development task, providing a unifying conceptual graphical model, and providing tools for graphical specification and manipulation of oar underlying architectural model. Our approach uses the MVC paradigm, an application framework, reusable classes, and pluggable and adaptable domain specific views to offer greater functionality and to support a greater part of the development task. Our object-oriented approach encourages the reuse of code. An architectural model for large GUI applications is supported by the reusable design embodied in our framework and by the visual Petri net with net hierarchy (subnets). The use of a visual Petri net also makes user interface and design specifications easier to understand, edit, and reuse. By using an annotated Petri net we are able to provide a single conceptual graphical model that integrates specification, documentation, design. validation, and rapid prototyping.
Oregon Speedcode Universe version 3.0 (OSU v3.0) is a second generation experimental object-oriented tool for GUI software development currently under construction at Oregon State University. It consists of an MVC-based application framework, a class library of reusable code, and a set of integrated tools for specification, modeling, simulation, validation, and rapid prototyping of GUI applications. It is written in C++ on the Macintosh and produces C++ code that can be compiled to produce stand-alone applications. This paper presents an overview of the OSU v3.0 approach and focuses on the MVC-based framework as a way of supporting added functionality, greater reuse of code, and a higher level of abstraction to the task of developing GUI applications. My responsibility in this project was implementation of the MVC, application, and window classes. These are detailed in the final section and an example of their use is included
Recommended from our members
Comprehensive support for developing graphical highly interactive user interface systems
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 called Oregon 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 organized as a class hierarchy, 2) a strong model is provided by OSU v3.0 in the form of a 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 built on 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 applications are 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 of an application framework that uses Petri nets as the computational model of data processing in the synthesized application. OSU v3.0 is the first framework to formalize sequencing, and to show that complex GUI applications can indeed be quickly and reliably produced from such a framework
Site Controller: A System for Computer-Aided Civil Engineering and Construction
A revolution\0\0\0 in earthmoving, a $100 billion industry, can be achieved with three components: the GPS location system, sensors and computers in bulldozers, and SITE CONTROLLER, a central computer system that maintains design data and directs operations. The first two components are widely available; I built SITE CONTROLLER to complete the triangle and describe it here. SITE CONTROLLER assists civil engineers in the design, estimation, and construction of earthworks, including hazardous waste site remediation. The core of SITE CONTROLLER is a site modelling system that represents existing and prospective terrain shapes, roads, hydrology, etc. Around this core are analysis, simulation, and vehicle control tools. Integrating these modules into one program enables civil engineers and contractors to use a single interface and database throughout the life of a project
Generating Multiple User Interfaces for Multiple Application Domains
This Ph.D. dissertation presents a classification scheme for User Interface Development Environments (UIDEs) based on the multiplicity of user interfaces and application domains that can be supported. The SISD, SIMD and MISD [S= Single, I= user Interface(s), M= Multiple, D= application Domain(s)] generator classes encompass most of the UIDEs described in the literature. A major goal of this research is to allow any user to develop a personalized interface for any interactive application, that is, the development of an MIMD UIDE.
Fundamental to the development of such a UIDE is the complete separation of the user interface component from the application component. This separation necessitates devising less tightly coupled models of the application and user interface than have been reported to date. The main features of the MIMD UIDE model are as follows.
[1] Interactive applications are modeled as editors providing a set of functions that manipulate 2-dimensional graphical objects.
[2] Interactive data structures are introduced for maintaining and manipulating both the internal and external representation(s) of application information as a single unit. These external representations form the basis for presenting internal information to the user.
[3] Since interaction with the user must be the sole responsibility of the user interface component, function interaction is modeled as follows. Application functions are modeled as a set of services. Each service processes a (set of) parameter(s) independently. For each service in the application, a corresponding service Interface object is defined in the user interface component. The service interface object interacts with the user to specify the required (set of) parameter(s), calls the associated service within the application, and displays the result of the service to the user.
Using the above model, the user interface component is modeled to allow personalized specifications at all levels; including the internal entities of the interactive system, the characteristics of the display of information, and the interaction tasks, techniques and devices used for parameter specification
Critical Programming: Toward a Philosophy of Computing
Beliefs about the relationship between human beings and computing machines and their destinies have alternated from heroic counterparts to conspirators of automated genocide, from apocalyptic extinction events to evolutionary cyborg convergences. Many fear that people are losing key intellectual and social abilities as tasks are offloaded to the everywhere of the built environment, which is developing a mind of its own. If digital technologies have contributed to forming a dumbest generation and ushering in a robotic moment, we all have a stake in addressing this collective intelligence problem. While digital humanities continue to flourish and introduce new uses for computer technologies, the basic modes of philosophical inquiry remain in the grip of print media, and default philosophies of computing prevail, or experimental ones propagate false hopes. I cast this as-is situation as the post-postmodern network dividual cyborg, recognizing that the rational enlightenment of modernism and regressive subjectivity of postmodernism now operate in an empire of extended mind cybernetics combined with techno-capitalist networks forming societies of control. Recent critical theorists identify a justificatory scheme foregrounding participation in projects, valorizing social network linkages over heroic individualism, and commending flexibility and adaptability through life long learning over stable career paths. It seems to reify one possible, contingent configuration of global capitalism as if it was the reflection of a deterministic evolution of commingled technogenesis and synaptogenesis. To counter this trend I offer a theoretical framework to focus on the phenomenology of software and code, joining social critiques with textuality and media studies, the former proposing that theory be done through practice, and the latter seeking to understand their schematism of perceptibility by taking into account engineering techniques like time axis manipulation. The social construction of technology makes additional theoretical contributions dispelling closed world, deterministic historical narratives and requiring voices be given to the engineers and technologists that best know their subject area. This theoretical slate has been recently deployed to produce rich histories of computing, networking, and software, inform the nascent disciplines of software studies and code studies, as well as guide ethnographers of software development communities. I call my syncretism of these approaches the procedural rhetoric of diachrony in synchrony, recognizing that multiple explanatory layers operating in their individual temporal and physical orders of magnitude simultaneously undergird post-postmodern network phenomena. Its touchstone is that the human-machine situation is best contemplated by doing, which as a methodology for digital humanities research I call critical programming. Philosophers of computing explore working code places by designing, coding, and executing complex software projects as an integral part of their intellectual activity, reflecting on how developing theoretical understanding necessitates iterative development of code as it does other texts, and how resolving coding dilemmas may clarify or modify provisional theories as our minds struggle to intuit the alien temporalities of machine processes