Computer Science Department CS 470 Fall I



Similar documents
Information Technology (IT) Introduction to System Analysis and Design. Information System. Information System Components

White Paper IT Methodology Overview & Context

Chapter 1: Introduction to Rapid Application Development (RAD) 1. Introductions

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

The Spiral development model is a risk-driven process model generator. It

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Development Methodologies Compared

SDLC Models. Waterfall Model

Systems analysis is the dissection of a system into its component pieces to study how those component pieces interact and work.

Introduction to Systems Analysis and Design

Agile Projects 7. Agile Project Management 21

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Software Development Process

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

How To Model Software Development Life Cycle Models

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Lesson 1 Introduction to Rapid Application Development using Visual Basic

Fourth generation techniques (4GT)

2.1 The RAD life cycle composes of four stages:

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

BI Dashboards the Agile Way

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Alternative Development Methodologies

Taking the first step to agile digital services

Joint Application Development Presentation. CSSE591 Summer 01 Tony Thai

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

CHAPTER 11 REQUIREMENTS

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

Software Development Life Cycle (SDLC)

Large Scale Systems Design G52LSS

The Basics of Scrum An introduction to the framework

Chapter 8 Approaches to System Development

Foundations for Systems Development

Announcements. Project status demo in class

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

The Software Development Life Cycle (SDLC)

LECTURE 1. SYSTEMS DEVELOPMENT

Writing a Requirements Document For Multimedia and Software Projects

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

COMP 354 Introduction to Software Engineering

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

SELECTING A DEVELOPMENT APPROACH Original Issuance: February 17, 2005 Revalidated: March 27, 2008

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

A Capability Maturity Model (CMM)

This paper was presented at the 1995 CAUSE annual conference. It is part of the proceedings of that conference, "Realizing the Potential of

To introduce software process models To describe three generic process models and when they may be used

Agile for Project and Programme Managers

Software Development Life Cycle

(Refer Slide Time: 01:52)

Software Development Processes. Software Life-Cycle Models

Building Software in an Agile Manner

Instructional Design for Online Learning

Agile Software Development

Prototyping and Rapid. Contents. Application Development (RAD) What is RAD. RAD - Background. Definitions Anecdotal advantages! Anecdotal problems!

INTRODUCTION. Chapter Motivation

Rapid Software Development

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

Managing TM1 Projects

CDC UNIFIED PROCESS PRACTICES GUIDE

Governments information technology

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Software Development Life Cycle & Process Models

A Survey of Software Development Process Models in Software Engineering

A system is a set of integrated components interacting with each other to serve a common purpose.

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

SOFTWARE PROCESS MODELS

Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?

A Software Engineering Model for Mobile App Development

Web Application Development Process

Chapter 13: Program Development and Programming Languages

A Review of an MVC Framework based Software Development

Transitioning from Waterfall: The Benefits of Becoming Agile. ASPE Web Seminar Friday, February 27 th, 2015

how can I deliver better services to my customers and grow revenue?

Reinforcing Agile Software Development in the Cloud

CMSC 435: Software Engineering Course overview. Topics covered today

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

The most suitable system methodology for the proposed system is drawn out.

Umbrella: A New Component-Based Software Development Model

Agile Development Calls for an Agile Suite Solution

Chapter 1 System Development Environment

Agile Development Overview

The Blending of Traditional and Agile Project Management

Software Engineering. What is a system?

Chapter 12 Programming Concepts and Languages

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

The Phios Whole Product Solution Methodology

Agile Software Development Methodologies and Its Quality Assurance

AGILE SOFTWARE TESTING

WHITE PAPER. The 7 Deadly Sins of. Dashboard Design

Transcription:

Computer Science Department CS 470 Fall I RAD: Rapid Application Development By Sheldon Liang

CS 470 Handouts Rapid Application Development Pg 1 / 5 0. INTRODUCTION RAD: Rapid Application Development By Sheldon Liang Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. The methodology involves ICU -- I - iterative development, -- C - construction of prototypes, and -- U -use of Computer-aided software engineering (CASE) tools. ICU: Intensive Care Unit (for survival not for better) Traditionally the rapid application development approach involves compromises in usability, features, and/or execution speed. It is described as a process through which the development cycle of an application is expedited. Rapid Application Development thus enables quality products to be developed faster, saving valuable resources. Pros 1. Increased speed of development through methods including rapid prototyping, virtualization of system related routines, the use of CASE tools, and other techniques. 2. Decreased end-user functionality (arising from narrower design focus), hence reduced complexity 3. Larger emphasis on simplicity and usability of GUI design Cons 1. Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application 2. Reduced features occur due to time boxing when features are pushed to later versions in order to finish a release in a short amount of time 1. WHAT IS RAD 1.1 What is Rapid Application Development (Definition & Methodology) DEFINITION - RAD (rapid application development) is a concept that products can be developed faster and of higher quality through (methodology): Gathering requirements using workshops or focus groups Prototyping and early, reiterative user testing of designs The re-use of software components A rigidly paced schedule that defers design improvements to the next product version Less formality in reviews and other team communication Some companies offer products that provide some or all of the tools for RAD software development. These products include requirements gathering tools, prototyping tools, computeraided software engineering tools, language development environments such as those for the Java

CS 470 Handouts Rapid Application Development Pg 2 / 5 platform, groupware for communication among development members, and testing tools. RAD usually embraces object-oriented programming methodology, which inherently fosters software re-use. The most popular object-oriented programming languages, C++ and Java, are offered in visual programming packages often described as providing rapid application development. 1.2 What is used for Rapid Application Development A programming system that enables programmers to quickly build working programs. In general, RAD systems provide a number of tools to help build graphical user interfaces that would normally take a large development effort. Two of the most popular RAD systems for Windows are Visual Basic and Delphi. Historically, RAD systems have tended to emphasize reducing development time, sometimes at the expense of generating efficient executable code. Nowadays, though, many RAD systems produce extremely fast code. Conversely, many traditional programming environments now come with a number of visual tools to aid development. Therefore, the line between RAD systems and other development environments has become blurred. 2. BETTER UNDERSTANDING OF RAD 2.1 Comparison and Further understanding: RAD and JAD RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles. This has a number of distinct advantages over the traditional sequential development model. RAD projects are typically staffed with small integrated teams comprised of developers, end users, and IT technical resources. Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management. Rapid Application Development - Development Methodology (RAD) We highly recommend this book for additional information on rapid application development. By clicking on the book, you will be sent to Amazon.com where you can purchase the book for $28 which is a 20% savings. The traditional software development cycle follows a rigid sequence of steps with a formal signoff at the completion of each. A complete, detailed requirements analysis is done that attempts to capture the system requirements in a Requirements Specification. Users are forced to "signoff" on the specification before development proceeds to the next step. This is followed by a complete system design and then development and testing. But, what if the design phase uncovers requirements that are technically unfeasible, or extremely expensive to implement? What if errors in the design are encountered during the build phase? The elapsed time between the initial analysis and testing is usually a period of several months. What if business requirements or priorities change or the users realize they overlooked critical needs during the analysis phase? These are many of the reasons why software development projects either fail or don t meet the user s expectations when delivered.

CS 470 Handouts Rapid Application Development Pg 3 / 5 RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles. This has a number of distinct advantages over the traditional sequential development model. Iteration allows for effectiveness and self-correction. Studies have shown that human beings almost never perform a complex task correctly the first time. However, people are extremely good at making an adequate beginning and then making many small refinements and improvements. We should encourage and exploit this rather than fight it. RAD projects are typically staffed with small integrated teams comprised of developers, end users, and IT technical resources. Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management. An important, fundamental principle of iterative development is that each iteration delivers a functional version of the final system. It is a properly engineered, fully working portion of the final system and is not the same as a prototype. For example, the first iteration might deliver 100% of 10%, the second iteration 100% of 25%, etc. 2.2 Joint Application Development (JAD) Methodology Joint Application Design, or JAD, is a process originally developed for designing a computerbased system. It brings together business area people (users) and IT (Information Technology) professionals in a highly focused workshop. The advantages of JAD include a dramatic shortening of the time it takes to complete a project. It also improves the quality of the final product by focusing on the up-front portion of the development lifecycle, thus reducing the likelihood of errors that are expensive to correct later on. The Joint Application Development (JAD) methodology aims to involve the client in the design and development of an application. This is accomplished through a series of collaborative workshops called JAD sessions. Two employees of IBM, Chuck Morris and Tony Crawford,

CS 470 Handouts Rapid Application Development Pg 4 / 5 developed the JAD methodology in the late 1970s and began teaching the approach in to the 1980s. In contrast to the Waterfall approach, JAD is thought to lead to shorter development times and greater client satisfaction, both of which stem from the constant involvement of the client throughout the development process. On the other hand, with the traditional approach to systems development, the developer investigates the system requirements and develops an application, with client input consisting of a series of interviews. Rapid application development (RAD), a variation on JAD, attempts to create an application more quickly through strategies that include fewer formal methodologies and reusing software components. Development Methodology - Joint Application Development (JAD) The JAD process does for computer systems development what Henry Ford did for the manufacture of automobiles (a method of organizing machinery, materials, and labor so that a car could be put together much faster and cheaper than ever before the assembly line). The goal in systems development is to identify what the users really need and then set up a system or process that will provide it. Traditional methods have several built-in delay factors that get worse as more people become involved. The following description of the Traditional Systems Design process is from "Joint Application Development" by Jane Wood and Denise Silver ¹. It may sound familiar. In most organizations, the systems development life cycle begins with the identification of a need, assignment of a project leader and team, and often the selection of a catchy acronym for the project. The leader pursues a series of separate meetings with the people who will use the system or be affected by it. The leader continues these meetings over time. Often the key people involved are not so easy to reach. But eventually, having documented everything possible, the leader translates copious notes into a personal terminology. That s when it becomes apparent that the requirements from, say Accounting, don t mesh with what the Sales department wants. So the leader calls Sales and finds out the contact there is in the field and will not be back until tomorrow. Next day the leader reaches Sales, gets the information, calls Accounting, and of course the person in Accounting is now out of the office, and so on. When everyone is finally in agreement, alas, the leader discovers that even more people should have been consulted because their needs require something entirely different. In the end, everyone is reluctant to "sign off" on the specifications. Other times, signing off comes easily. But when the system is delivered, it often has little to do with what the users really need: "A user sign off is a powerless piece of paper"² when matched against the fury of top management.

CS 470 Handouts Rapid Application Development Pg 5 / 5 Slow communication and long feedback time is one reason the traditional process is so timeconsuming. You can see why the communication problem grows worse as more people must be brought into consensus. JAD centers around a structured workshop session. Everyone gets together in a room and talks it out. Everyone hears what the rest of the group has to say. There s no delay between question and answer, no "telephone tag" or waiting for memos to come back. JAD eliminates many of the problems with traditional meetings. Meetings are not well regarded as a productive form of work. JAD turns meetings into workshops. They are less frequent, more structured, and more productive. An agenda provides the structure, a facilitator directs the process, visual aids clarify concepts being discussed and the group dynamics, with constant feedback, stimulates creativity. JAD sessions are: 1. Very focused 2. Conducted in a dedicated environment 3. Quickly drive major requirements and interface "look & feel" 4. JAD participants typically include: * Facilitator facilitates discussions, enforces rules * End users 3 to 5, attend all sessions * Developers 2 or 3, question for clarity * Tie Breaker Senior manager. Breaks end user ties, usually doesn t attend * Observers 2 or 3, do not speak * Subject Matter Experts limited number for understanding business & technology