<<

85

RAPID PROTOTYPING FOR SOFTWARE PROJECTS WITH INTERFACES

Ali Tizkar SADABADI1, Naser M. TABATABAEI2 1State Engineering University of Armenia (SEUA), Department of Systems and Informatics 2 Seraj Higher Education Institute, Iran [email protected], [email protected]

Key words: rapid prototyping, software, development ,

Abstract: Rapid prototyping is a process for creating a realistic model of a product’s user . A rapid prototyped is easy to change and gets customers involved early in the design of the product. To prototype successfully, you should pick a rapid prototyping that meets your needs, form a small prototyping team, get lots of customer , and iterate until customers are delighted with your user interface. A prototype typically implements only a small subset of the features of the eventual program, and the implementation may be completely different from that of the eventual product. Prototyping has several benefits: The software desig ner and implementer can obtain feedback from the users early in the project. The client and the contractor can compare if the software made matches the software specification, according to which the software program is built. It also allows the software engineer some insight into the accuracy of initial project estimates and whether the deadlines and milestones proposed can be successfully met. The degree of completeness and the techniques used in the prototyping have been in development and debate since its proposal in the early 1970's.

1. INTRODUCTION 2. ELEMENTS OF SUCCESSFUL RAPID PROTOTYPING The process of prototyping involves the following steps: Successful rapid prototyping is performed: 1.Identify basic requirements: Determine •Quickly – The first pass must be done basic requirements including the input and quickly, and subsequent improvements should output information desired. Details, such as be incorporated immediately. While the security, can typically be ignored. prototype needs to give customers a realistic feel 2.Develop Initial Prototype: The initial for the product, it does not need to include prototype is developed that includes only user special or computational interfaces. that require a lot of time and effort to create. 3.Review: The customers, including end- •Iteratively – The prototyped user interface is users, examine the prototype and provide reviewed, commented upon, improved, and feedback on additions or changes. reviewed again in a repeating cycle. No one 4.Revise and Enhancing the Prototype: Using creates a perfect design the first time. This the feedback both the specifications and the iterative cycle allows you to gradually improve prototype can be improved. Negotiation about the user interface. These cycles can be what is within the scope of the contract/product completed more quickly if the prototype is easily may be necessary. If changes are introduced then changed. a repeat of steps #3 ands #4 may be needed. •Using domain experts – Ideally, the prototype should be built by a domain expert.

ISSN – 1453 – 1119 86 UNIVERSITY OF PITESTI – AND SCIENCE, SCIENTIFIC BULLETIN, No. 9, Vol.2, 2009

Domain experts are familiar with the user – his requirements. In rapid prototyping, customers or her job, expectations, requirements, jargon, are involved directly throughout the and priorities. These people may have done the development process. Also, the traditional user’s job in the past. Domain experts can do the process goes from requirements, to design, to best job of incorporating user requirements into development in a fixed series of steps. In rapid the prototype. If your prototyping tool is too prototyping, the process is iterative. This makes difficult for the domain expert to use, make sure it easier to change or add requirements that will that the domain expert works closely with the make the product more popular with customers. programmer. There are two obvious differences between the traditional product development process and 3. TRADITIONAL DEVELOPMENT the rapid prototyping process shown in Figure 1. PROCESS VERSUS RAPID These differences are customer involvement and PROTOTYPING PROCESS iterative design. Customers are involved only indirectly at the beginning of the traditional The traditional process used to develop a process, when marketing and planning specify product follows the general steps shown in requirements. In rapid prototyping, customers Figure 1. During Step 1, “Analyze Proposed are involved directly throughout the System,” marketing and planning identify a development process. Also, the traditional customer need and determine whether the process goes from requirements, to design, to company can develop a product that will development in a fixed series of steps. In rapid profitably meet that need. In Step 2, “Specify prototyping, the process is iterative. This makes Requirements,” marketing and planning draft it easier to change or add requirements that will general requirements for the proposed product. make the product more popular with customers. In Step 3, “Design System,” development writes detailed specifications for the proposed product. 3.1. Types of prototyping: Throwaway In Step 4, “Develop System,” development prototyping creates the product. In Step 5, “Release Product,” the company releases the product. Throwaway or Rapid Prototyping refers to There are two obvious differences between the creation of a model that will eventually be the traditional product development process and discarded rather than becoming part of the the rapid prototyping process shown in Figure 1. finally delivered software. After preliminary These differences are customer involvement and requirements gathering is accomplished, a iterative design. Customers are involved only simple working model of the system is indirectly at the beginning of the traditional constructed to visually show the users what their process, when marketing and planning specify requirements may look like when they are requirements. In rapid prototyping, customers implemented into a finished system. are involved directly throughout the Rapid Prototyping involved creating a development process. Also, the traditional working model of various parts of the system at process goes from requirements, to design, to a very early stage, after a relatively short development in a fixed series of steps. In rapid investigation. The method used in building it is prototyping, the process is iterative. This makes usually quite informal, the most important factor it easier to change or add requirements that will being the speed with which the model is make the product more popular with customers. provided. The model then becomes the starting There are two obvious differences between point from which users can re-examine their the traditional product development process and expectations and clarify their requirements. the rapid prototyping process shown in Figure 1. When this has been achieved, the prototype These differences are customer involvement and model is 'thrown away', and the system is iterative design. Customers are involved only formally developed based on the identified indirectly at the beginning of the traditional requirements. process, when marketing and planning specify

ISSN – 1453 – 1119 ALI TIZKAR SADABADI, NASER M. TABATABAEI Rapid Prototyping For Software Projects With User Interfaces 87

Figure 1. Traditional and Rapid Prototyping Product Development Processes

The most obvious reason for using Making changes early in the development Throwaway Prototyping is that it can be done lifecycle is extremely cost effective since there is quickly. If the users can get quick feedback on nothing at that point to redo. If a project is their requirements, they may be able to refine changed after a considerable work has been done them early in the development of the software. then small changes could require large efforts to ISSN – 1453 – 1119 88 UNIVERSITY OF PITESTI – ELECTRONICS AND COMPUTERS SCIENCE, SCIENTIFIC BULLETIN, No. 9, Vol.2, 2009 implement since software systems have many dependencies. Speed is crucial in implementing 3.2.Types of prototyping: Evolutionary a throwaway prototype, since with a limited prototyping budget of time and money little can be expended on a prototype that will be discarded. Evolutionary Prototyping (also known as Another strength of throwaway prototyping is breadboard prototyping) is quite different from its ability to construct interfaces that the users Throwaway Prototyping. The main goal when can test. The user interface is what the user sees using Evolutionary Prototyping is to build a very as the system, and by seeing it in front of them, robust prototype in a structured manner and it is much easier to grasp how the system will constantly refine it. "The reason for this is that work. the Evolutionary prototype, when built, forms It is asserted that revolutionary rapid the heart of the new system, and the prototyping is a more effective manner in which improvements and further requirements will be to deal with user requirements-related issues, built. and therefore a greater enhancement to software When developing a system using productivity overall. Requirements can be Evolutionary Prototyping, the system is identified, simulated, and tested far more quickly continually refined and rebuilt. and cheaply when issues of evolvability, "…evolutionary prototyping acknowledges maintainability, and software structure are that we do not understand all the requirements ignored. This, in turn, leads to the accurate and builds only those that are well understood." specification of requirements and the subsequent This technique allows the development team construction of a valid and usable system from to add features, or make changes that couldn't be the user's perspective via conventional software conceived during the requirements and design development models. phase. Prototypes can be classified according to the For a system to be useful, it must evolve fidelity with which they resemble the actual through use in its intended operational product in terms of appearance, interaction and environment. A product is never "done;" it is timing. One method of creating a low fidelity always maturing as the usage environment Throwaway Prototype is Paper Prototyping. The changes…we often try to define a system using prototype is implemented using paper and our most familiar frame of reference---where we pencil, and thus mimics the function of the are now. We make assumptions about the way actual product, but does not look at all like it. business will be conducted and the technology Another method to easily build high fidelity base on which the business will be implemented. Throwaway Prototypes is to use a GUI Builder A plan is enacted to develop the capability, and, and create a click dummy, a prototype that looks sooner or later, something resembling the like the goal system, but does not provide any envisioned system is delivered. functionality. Evolutionary Prototyping have an advantage Not exactly the same as Throwaway over Throwaway Prototyping in that they are Prototyping, but certainly in the same family, is functional systems. Although they may not have the usage of storyboards, animatics or drawings. all the features the users have planned, they may These are non-functional implementations but be used on an interim basis until the final system show how the system will look. is delivered. In summary, this approach to protyping is "It is not unusual within a prototyping constructed with idea that it would be discarded environment for the user to put an initial and financial system would be built from the prototype to practical use while waiting for a scratch.The steps in this approach are: more developed version…The user may decide 1. Write prelim requirements that a 'flawed' system is better than no system at 2. Design the prototype all." 3. User experiences/uses the prototype, In Evolutionary Prototyping, developers can specifies new requirements. focus themselves to develop parts of the system 4. Writing final requirements that they understand instead of working on 5. Developing the real product developing a whole system. ISSN – 1453 – 1119 ALI TIZKAR SADABADI, NASER M. TABATABAEI Rapid Prototyping For Software Projects With User Interfaces 89 To minimize risk, the developer does not to use those . Tools used in prototyping can implement poorly understood features. The vary from individual tools like 4th generation partial system is sent to customer sites. As users programming languages used for rapid work with the system, they detect opportunities prototyping to complex integrated CASE tools. for new features and give requests for these 4th generation programming languages like features to developers. Developers then take Visual Basic are frequently used since they are these enhancement requests along with their own cheap, well known and relatively easy and fast to and use sound configuration-management use. CASE tools, like the Requirements practices to change the software-requirements Engineering Environment are often developed or specification, update the design, recode and selected by the military or large organizations. retest Object oriented tools are also being developed like LYMB from the GE Research and 3.3. Types of prototyping: Incremental Development Center. prototyping 4.2. Screen generators, design tools & The final product is built as separate Software Factories prototypes. At the end the separate prototypes are being merged in an overall design. Also commonly used are screen generating programs that enable prototypers to show users systems that don't function, but show what the 4. CONCLUSIONS screens may look like. Developing Human Computer Interfaces can sometimes be the It has been argued that prototyping, in some critical part of the development effort, since to form or another, should be used all the time. the users the interface essentially is the system. However, prototyping is most beneficial in Software Factories are Code Generators that systems that will have many interactions with allow you to model the domain model and then the users. drag and drop the UI. Also they enable you to It has been found that prototyping is very run the prototype and use basic effective in the analysis and design of on-line functionality. This approach allows you to systems, especially for transaction processing, explore the domain model and make sure it is in where the use of screen dialogs is much more in sync with the GUI prototype. Also you can use evidence. The greater the interaction between the the UI Controls that will later on be used for real computer and the user, the greater the benefit is development. that can be obtained from building a quick system and letting the user play with it. 4.3. Visual Basic Systems with little user interaction, such as or systems that mostly do One of the most popular tools for Rapid calculations benefit little from prototyping. Prototyping is Visual Basic (VB). Microsoft Sometimes, the coding needed to perform the Access, which includes a Visual Basic system functions may be too intensive and the extensibility module, is also a widely accepted potential gains that prototyping could provide prototyping tool that is used by many non- are too small. technical business analysts. Although VB is a Prototyping is especially good for designing it has many features that good human-computer interfaces. "One of the most facilitate using it to create prototypes, including: productive uses of rapid prototyping to date has •An interactive/visual been as a tool for iterative user requirements tool. engineering and human-computer interface design. •Easy connection of user interface components to underlying functional behavior. 4.1. Tools •Easy to learn and use implementation language (i.e. Basic). Efficiently using prototyping requires that an •Modifications to the resulting software are organization have proper tools and a staff trained easy to perform. ISSN – 1453 – 1119 90 UNIVERSITY OF PITESTI – ELECTRONICS AND COMPUTERS SCIENCE, SCIENTIFIC BULLETIN, No. 9, Vol.2, 2009

- Validation that requirements so derived are 4.4. Requirements Engineering an accurate reflection of user needs. Environment In 1996, Rome Labs contracted Software Productivity Solutions (SPS) to further enhance "The Requirements Engineering Environment REE to create "a commercial quality REE that (REE), under development at Rome Laboratory supports requirements specification, , since 1985, provides an integrated toolset for user interface prototyping, mapping of rapidly representing, building, and executing requirements to hardware architectures, and code models of critical aspects of complex systems." generation…"This system is named the Requirements Engineering Environment is Advanced Requirements Engineering currently used by the Air Force to develop Workstation or AREW. systems. It is an integrated set of tools that LYMB allows systems analysts to rapidly build LYMB is an object-oriented development functional, user interface, and performance environment aimed at developing applications prototype models of system components. These that require combining graphics-based user modeling activities are performed to gain a interfaces, , and rapid prototyping. greater understanding of complex systems and PSDL lessen the impact that inaccurate requirement PSDL is a prototype description language, to specifications have on cost and scheduling describe the real-time software during the system development process. Models can be constructed easily, and at varying levels of abstraction or granularity, depending on the REFERENCES specific behavioral aspects of the model being exercised. [1].C. MELISSA MCCLENDON, LARRY REE is composed of three parts. The first, REGOT, GERRI AKERS: “The Analysis and called Proto is a CASE tool specifically designed Prototyping of Effective Graphical User to support rapid prototyping. The second part is Interfaces”, October 1996. called the Rapid Interface Prototyping System or [2].D.A. STACY: “Lecture notes on Rapid RIP, which is a collection of tools that facilitate Prototyping”, University of Guelph. Guelph, the creation of user interfaces. The third part of Ontario, August, 1997. REE is a user interface to RIP and proto that is [3].ALAN M. DAVIS: Operational graphical and intended to be easy to use. Prototyping: A new Development Approach. Rome Laboratory, the developer of REE, IEEE Software, September 1992. Page 71 intended that to support their internal [4].JOHN CRINNION, “Evolutionary Systems requirements gathering methodology. Their Development, a practical guide to the use of method has three main parts: prototyping within a structured systems - Elicitation from various sources (users, methodology”, Plenum Press, New York, pg. 18, interfaces to other systems), specification, and 1991. consistency checking; [5].LAWRENCE J. NAJJAR, “Rapid - Analysis that the needs of diverse users Prototyping”, IBM Corp. Software taken together do not conflict and are technically Department R16B Atlanta, GA 30328, April and economically feasible; 1990.

ISSN – 1453 – 1119