Tool Support for Collaborative Software Prototyping
Total Page:16
File Type:pdf, Size:1020Kb
TOOL SUPPORT FOR COLLABORATIVE SOFTWARE PROTOTYPING Elliot A Shefrin y James M Purtilo z Computer Science Department University of Maryland College Park MD Decemb er ABSTRACT Prototyping is a means by which requirements for software pro jects can b e dened and rened b efore they are committed to rm sp ecications for the nished software pro duct By this pro cess costly and timeconsuming errors in sp ecication can b e avoided or minimized Reconguration is the concept of altering the program co de bindings b etween program mo d ules or logical or physical distribution of software comp onents while allowing the continuing execution of the software b eing changed Combining these two notions suggests the p otential for a development environment where requirements can b e quickly and dynamically evolved This pap er discusses recongurationbased prototyping RBP that is the simultaneous consideration of requirements software b ehavior and user feedback within a running system in order to derive a clear sp ecication of an intended pro duct To ols enabling RBP can co ordinate the eorts of designers prototyp ers users and sub ject matter sp ecialists as they work towards concensus on an applications sp ecication by means of a prototyp e The authors describ e the scop e of the mo dications that can b e eected by an integration of prototyping and reconguration proto cols and they then demonstrate that the technology exists to create such an environment They conclude by describing a software development environment based on RBP KEYWORDS Reconguration Prototyping M Technology y Elliot Shefrins research has b een supp orted by the Longitudinal Studies Branch Gerontol ogy Research Center National Institute on Aging National Institutes of Health United States Public Health Service He can b e contacted at mazelcsumdedu z With oversight by the Oce of Naval Research James Purtilos research has b een supp orted by ARPA in conjunction with the Common Prototyping Language pro ject contract numb er NC He can b e contacted at purtilocsumdedu INTRODUCTION During the development of software systems a prototyping phase is often employed to ne tune various asp ects of the system or to discover user requirements preferences or op erational imp er atives PFW These asp ects may include development of the user interface testing of various structures for the database or optimizing internal algorithms From this viewp oint prototyping can b e regarded as an information acquisition activity whose principal goal is to reinforce the condence of the system develop er and the user in the correctness of the system sp ecication In Pur the author describ es the traditional approach to the tuning pro cedure as an iterative pro cess of program execution halting mo dication and restarting Such a technique can b e timeconsuming and frustrating esp ecially when the system takes a while to reach a steadystate or when each iteration of the tuning lo op requires many steps A pivotal p oint illustrated in PFW is that a prototyp e need not implement the underlying algorithms of the system under development Rather all relevant data may b e loaded from tables and pro cessing on that data may b e simulated Furthermore not all asp ects of a design require a prototyp e It is up to the designer to identify the elements of risk the areas of uncertainty that can b e reduced by the implementation of a prototyp e The ingenuity then of the system develop er lies in deciding which asp ects of the design need to b e prototyp ed and what information is to b e extracted from the prototyp e A further challenge is to involve the user to such a level that they feel they have a vested interest in pro ducing the b est pro duct p ossible Stated another way it is the ends and not the means that concern the prototyp e develop er The observation that platforms and scenarios can b e contrived to elicit necessary information leads to the useful conclusion that the to ols and vehicles used to construct the prototyp e do not need to b e the same as those used to construct the nished pro duct Indeed since it can b e built on a simplied testb ed the prototyp e should b e capable of cutting quickly to the core of the problem and can b e emp owered to use whatever technology is most ecient and eective to obtain the information that is the end pro duct of that particular prototyp e This p oint obtains relevance b ecause we will contend that there is no need to justify the choice of a prototyping host technology or to b e concerned with the applicabili ty of the technology used in the prototyp e to the design pro ject at large The traditional approach to prototyping can b e compared to attempting to tune the engine of an automobile by the following series of steps start the car observe the output on an engine analyzer stop the engine make an adjustment restart the car to see how close we have come to the correct setting This aords no ability to receive realtime feedback from the engine the ob ject under study In contrast the way it is done in practice is that the technician observes the output of the engine analyzer while the motor is running in steadystate and he is making incremental adjustments In this actual practice the technician is reconguring the op eration of the engine while it continues to run Applied to software we b elieve that the concept of reconguration dynamically mo difying an executing piece of software can b e employed to advantage in order to make the tuning pro cess more ecient The current state of understanding regarding reconguration is summarized in Pur It is stated that the options for reconguration are limited to those anticipated by the develop er of the software Fundamental problems arise b ecause to ols for reconguration are weak and the steadystate may b e easily disturb ed by those to ols that do exist However in this pap er we will describ e an approach to reconguration that allows a great amount of exibility We will outline the framework that should b e employed in order to attain this level of adaptability and we will demonstrate that it is in fact achievable In the next section we will illustrate our p osition and motivation regarding the desirability of a synthesis of prototyping and reconguration A discussion of language issues relating to our work will comprise section In section we will describ e the elements which underlie the concept of recongurability and link them to the prototyping pro cess Then we will describ e a metho dology which enables a develop er to avoid the requirement of anticipating all p ossible p oints of mo dication and demonstrate how easy it is to accomplish a high level of recongurability Section will describ e the course of research by which we are validating our assertions We will draw our conclusions in section MOTIVATION We b elieve that the broadening of the prototyping pro cess to incorp orate reconguration tech nology will result in a more ecient discovery of the needed information Furthermore if the user can b e actively involved in the pro cess then the outcome is more likely to b e acceptable some of the mystery of problem resolution will have b een mitigated and the user will have a p ersonal interest in the quality of the end pro duct The development cycle that we anticipate is illustrated in Figure Starting from an initial design sp ecication the develop er identies zones of risk or uncertainty These are the elements of the design that must b e rened in order for the nal pro duct to have the greatest acceptability and utility to the user Having identied these areas the designer must articulate alternatives along with a metho dology for evaluating these alternatives The goal is to arrive at a rened sp ecication and a decision as to whether the pro cess is complete or needs another iteration The metho dology employed by the designer subsumes several critical comp onents The rst is a suite of test data or a hyp othetical problem to b e solved using each alternative of the system under test These problems must b e formulated to provide the user the opp ortunity to make contributions to the renement and evaluation of the alternatives this is the critical stage where the user b ecomes a partner in the design pro cess A means must b e sp ecied to quantify the merit of each outcome so that alternatives can b e ob jectively compared We shall use the term discriminant function to refer to this evaluation proto col that will allow the user and the develop er to quantify dierences in the identied alternatives assign a merit value to each and recognize when the ob jective has b een reached And nally diering scenarios must b e envisioned so that the design will in fact meet the sp ecications over the entire op erational domain A critical part of this prototyping metho d is the ability to interactively and dynamically re congure the executing software in order to p erform the test and evaluation We are working on a proto col that sp ecies and implements prototyping in a development environment that in corp orates dynamic software reconguration Such a RecongurationBased Prototyping RBP mo del as describ ed in greater detail in section is b eing constructed with design concepts and software to ols using suciently p owerful and exible languages as discussed in section RBP includes the capability to mo dify parameters algorithms interfaces and database structure thereby enhancing the prototyping eort in a manner outlined in section Figure Prototyping Reconguration Development Cycle BACKGROUND The concept of prototyping