ISAM 5635 Parthenopi Konstantinou RAPID APPLICATION DEVELOPMENT Parthenopi Konstantinou ISAM 5635 ABSTRACT Today, many development organizations are adopting iterative development methodologies emphasized by Rapid Application Development (RAD) cycles. Unlike waterfall development life cycles, where testing is done at the end of the project, iterative life cycles specify testing at multiple points during development. It is easy to understand the importance of including system performance analysis and predictive tuning in the process. Identifying the addressing flows early, especially performance limitations, has as advantage the cuts of the cost to fix them and at the same time minimizes the impact on the project schedule. RAD has been proven to be a valuable software strategy. However, it is not without pitfalls and risks. RAD incorporates some defects that we need to adjust. Research and capitalization should be invested in order to minimize them and use them as of companies’ advantage. (Source from www.credata.com) 1 ISAM 5635 Parthenopi Konstantinou INTRODUCTION Rapid Application Development (RAD) is a new, highly interactive systems development approach that emerged in the 1990s. RAD is a concept that products can be developed faster and of higher quality. In addition RAD attempts to address both weaknesses of the structured development methodologies, which are: long development times and the difficulty in understanding a system from a paper-based description. RAD methodologies adjust the Systems Development Life Cycle (SDLC) phases to get some part of the system developed quickly and into the hands of the users. What lies beneath this approach is to get the users to better understand the system through interactive and simultaneous revisions, which bring the system closer to what is needed. How to use RAD Most RAD methodologies recommend that analysts use special techniques and computer tools to speed up the analysis, design, and implementation phases, such as CASE (Computer-Aided Software Engineering) tools, JAD (Joint Application Design) sessions, fourth-generation/visual programming languages that simplify the speed up programming (e.g., Visual Basic), and code generators that automatically produce programs from design specifications. It is the combination of the changed SDLC phases and the use of theses tools and techniques that improves the speed and quality of systems development. There are process-centered, data-centered, and object-oriented methodologies that follow the basic approaches RAD. Two common methodologies of RAD are phased development and prototyping [5]. 2 ISAM 5635 Parthenopi Konstantinou Phased Development: The Phased development methodology breaks the overall system into a series of versions that are developed sequentially. The analysis phase identifies the overall system concept, and the project team, users, and system sponsors, then categorize the requirement into a series of version. The most important and fundamental requirements are bundled into the first version of the system. The analysis phase then leads into design and implementation, but only with a set of requirements identifies for version 1. Once version 1 is implemented, work begins won version 2 and follows the steps, and so on. In the same way, any additional requirements identified during testing of the older version are implemented in the next version. With this way the system gets in the hands of the users very quickly [7]. Prototyping: The prototyping methodology performs the analysis, design, and implementation phases concurrently, and all three phases are performed repeatedly in a cycle until the system is completed. In this case, the users of the system are an active participant of the system development process. The prototype is handed to the users for testing and to provide comments; which are the reanalyzed and redesigned, and a second prototype is developed. The process continues in a cycle until the users and developers agree to a final system [7]. 3 ISAM 5635 Parthenopi Konstantinou Purpose and Objectives High Speed, High Quality, and Lower Cost Those are primary concepts in the RAD environment. Systems developed using the RAD development path meet the needs of their users effectively and have low maintenance cost. The quality of a system is defined as the degree to which the system meets business requirements (or user requirements) at the time it begins operation. This is fundamentally different from the more usual definition of quality as the degree to which a system conforms to written specifications. Rapid development, high quality and lower costs go hand-in-hand if an appropriate development methodology is used [2] Factors for Rapid Development Fast development does not mean a “quick and dirty” process. There should be no compromise between speed of development and quality. Several factors contribute to the success of rapid development by improving both the quality of delivered system and the speed of delivery. Important factors for rapid development include: Gathering requirements using workshops or focus groups. Prototyping and early, reiterative user testing of designs. The re-use of software components: Use of a CASE repository to facilitated the re-use of proven templates, components, and systems. The use of integrated CASE toolset to enforce technical integrity in modeling and designing the system, as well as, to generate bug-free code from fully validated design. 4 ISAM 5635 Parthenopi Konstantinou A rigidly paced schedule that defers design improvements to the next product version. Intensive involvement of the end user in the design of the systems. The early, effective and continued involvement of users in the development process is critical to the success of RAD. The involvement of users is an important factor in the early detection of errors, and in general, the earlier a defect is found, the less time and expense required to correct it. The relative cost of correcting errors varies over the development life cycle. It is much less expensive to catch the error early than at the last stage of the system development [1]. Stages of RAD The Rapid Application Development path may be adapted to different CASE tools and development environments. This section briefly describes the four stages of RAD. Requirements Planning The Requirements Planning stage consists of a review of the areas immediately associated with the proposed system. This review produces a broad definition of the system requirements in terms of the functions the system will support. The deliverables from the Requirements Planning stage include an outline system area model (entity and process models) of the area under study, a definition of the system's scope, and a cost justification for the new system [7]. 5 ISAM 5635 Parthenopi Konstantinou User Design The User Design stage consists of a detailed analysis of the business activities related to the proposed system. Key users, meeting in workshops, decompose business functions and define entity types associated with the system. They complete the analysis by creating action diagrams defining the interactions between processes and data. Following the analysis, the design of the system is outlined. System procedures are designed, and preliminary layouts of screens are developed. Prototypes of critical procedures are built and reviewed. A plan for implementing the system is prepared [7]. Construction In the Construction stage, a small team of developers, working directly with users, finalizes the design and builds the system. The software construction process consists of a series of "design-and-build" steps in which the users have the opportunity to fine-tune the requirements and review the resulting software implementation. This stage also includes preparing for the cutover to production. In addition to the tested software, Construction stage deliverables include documentation and instructions necessary to operate the new application, and routines and procedures needed to put the system into operation [7]. Implementation The implementation stage involves implementing the new system and managing the change from the old system environment to the new one. This may include implementing bridges between existing and new systems, converting data, and training users. User acceptance is the end point of the implementation stage [7]. 6 ISAM 5635 Parthenopi Konstantinou Evaluation of RAD RAD has proven to be valuable software strategy. However, it is not without pitfalls and risks. It has various advantages and disadvantages that we need to address. Advantages of RAD First of all RAD is designed to help deliver the systems faster with minimize cost, and insured quality. Deliverables sometimes are easier to port because they make greater use of high-level abstraction, scripts and intermediate code. Also, the development is conducted at a higher level of abstraction because RAD tools operate at that level. RAD offers its users early visibility because of prototyping, greater flexibility because developers can redesign at will, and reduction of the manual coding because of wizards, code generators, code reuse. In addition, RAD tends to shorten the development cycles and minimize defects because CASE tools may generate much of the code or other predesigned applications. (Source from Article: Taking the Risk out of Rapid Application Development) 7 ISAM 5635 Parthenopi Konstantinou Disadvantages of RAD On the other hand, RAD might cause some adequate problems. The cost of the integrated toolset and hardware covers a sufficient amount of money. It might be harder to gauge progress because there are no classic milestones, or could less efficient because code isn’t hand crafted. In addition, there is the possibility of the loss of scientific precision because no formal methods are used, or may accidentally empower a return to the uncontrolled practices of the early days of software development. Also there is the danger the requirements may not converge because the interests of customers may diverge from one iteration to the next ([3] and [4]). Danger of Rapid Development: The Nature of the Danger Rapid application development is becoming increasingly essential to business survival. There is, however, a danger inherent in rapid development. Enterprises are often tempted to use RAD techniques to build-stand alone systems to solve a particular problem isolation. Such systems if they meet users needs, they become institutionalized. If and enterprise builds many such isolated systems to solve particular problems, the result is a large, undisciplined mass of applications that do not work together. In practice, most business applications are closely related to other applications and share database with them, making a common infrastructure essential. In addition, as computing systems grow, they become even more complex, and such systems are difficult to change unless they have been created within skillfully designed architectures that allow one piece to be 8 ISAM 5635 Parthenopi Konstantinou changed without changing the other pieces. Hence, the solution to any problem is to develop a carefully planned set of architectures. The approach that develops systems within an architectural environment is known as “Information Engineering” [6]. CONCLUSION RAD has been proven to be a valuable software strategy. It is not without pitfalls and risks. It requires the right mix of methodologies, tools, personnel and management. Its use depends upon complexity of the domain or application, the organizational environment, the skills of staff and management and the architectures and infrastructures available. RAD is worthy of continued research and capitalization. 9 ISAM 5635 Parthenopi Konstantinou REFERENCES 1. Article on line from the Web Developer’s Journal, Web Site On Line at http://www.webdevelopersjournal.com/article/rad.htm 2. Web Site On Line, Creative Data by Steve C McConnell, Rapid Development: Timing Wild Software Schedules at http://credata.com/research/rad.html 3. Web Site On Line at http://csweb.cs.edu/maner/domains/RAD/.htm 4. Newsletter on line, Web Site On Line at http://www.pragmaticsw.com/Pragmatic/Newsletters/newsletter_2002_08.htm 5. Software Tech News Web Site On Line By Morton A. Hirschberg-U.S Army Research Laboratory at http://www.dacs.dtic.mil/awareness/newsletters/technews2-1/rad.html 6. Compuware Corporation, Article on line: Taking the risk out of rapid application development at http://www.compuware.com 7. Alan Dennis and Barbara Haley Wixom, Systems Analysis and Design, Ch.1 (p.8-14) 10