Rapid Application Development [RAD]

Similar documents
COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Specifying and Prototyping

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Software Development Process Models

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Validating customer demand

Systems Analysis & Design

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

S/W Programming & Languages

Agile Development

App Development. Mobile Media Innovation Module 6

Dilbert Scott Adams. CSc 233 Spring 2012

Adopting Agile Practices

Systems Analysis and Design in a Changing World, Fourth Edition

Information Systems. Software Engineering. MCQ - Part 2

Usable Privacy and Security Introduction to HCI Methods January 19, 2006 Jason Hong Notes By: Kami Vaniea

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Title: Episode 11 - Walking through the Rapid Business Warehouse at TOMS Shoes (Duration: 18:10)

18-642: Software Development Processes

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Shift Left Testing: are you ready? Live Webinar, Sept 19

The SAP HANA Project Guide. Mathias Pöhling Ingo Brenckmann

User-Centered Development

Meltem Özturan

Assignments. Assignment 2 is due TODAY, 11:59pm! Submit one per pair on Blackboard.

MD-HQ Utilizes Atlantic.Net s Private Cloud Solutions to Realize Tremendous Growth

System Development Life Cycle Methods/Approaches/Models

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

How to Build an Appium Continuous Testing Pipeline

INTRODUCTION. 2. User-centred interface design.

Process of Interaction Design and Design Languages

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

Chapter 2 Web Development Overview

Top of Minds Report series Data Warehouse The six levels of integration

SEMANTIC NETWORK AND SEARCH IN VEHICLE ENGINEERING

Adventures of a Development DBA: Iterative Development

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

5.0 Interaction Design PRODUCT DESIGN

The Process of Interaction Design DECO1200

Topic 01. Software Engineering, Web Engineering, agile methodologies.

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV

Architectural Documentation 1

Enabling the Future of Connectivity. HITEC 2016 Tech Talk

ICAgile Learning Roadmap Agile Testing Track

Deliverable 17.3 Test Report on MD-Paedigree Release

SaaS Providers. ThousandEyes for. Summary

RevStream Case Study: LANDESK

CMSC 435: Software Engineering Section 0201

Ready for Scrum? Steve Hutchison DISA T&E

Announcements. Usability. Based on material by Michael Ernst, University of Washington. Outline. User Interface Hall of Shame

Managing Change and Complexity

Why you should design your data hub top-down vs. bottom-up

Design, prototyping and construction

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

A Tale of Continuous Testing

Usability. CSE 331 Spring Slides originally from Robert Miller

Systems Analysis and Design

Qlik Sense Desktop. Data, Discovery, Collaboration in minutes. Qlik Sense Desktop. Qlik Associative Model. Get Started for Free

BACHELOR OF COMPUTER APPLICATION

SE420 - Software Quality Assurance

TDDD04 Software Testing

IPM 15/16 T2.1 Prototyping

Going Modular: Turning Legacy Docs into User Story-Based Content. Open Source Summit Europe 2017

Extreme programming XP 6

The importance of monitoring containers

Intelligent Mobile App Testing

Lecture Notes CPSC 491 (Fall 2018) Topics. Peer evals. UI Sketches. Homework. Quiz 4 next Tues. HW5 out. S. Bowers 1 of 11

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

This exam is open book / open notes. No electronic devices are permitted.

SOFTWARE LIFE-CYCLE MODELS 2.1

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

The Red Hat Way. Lee Miles General Manager, Red Hat Middle East, Turkey & Africa

Software Testing Tools

DIGGING INTO THE SOFTWARE DEFINED DATA CENTER

Software Engineering Lifecycles. Controlling Complexity

A CONFUSED TESTER IN AGILE WORLD

Hello everyone, how are you enjoying the conference so far? Excellent!

11/8/ th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010

Introduction to Computing and Systems Architecture

[PDF] Agile Project Management & Scrum QuickStart Guides

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

ThousandEyes for. Application Delivery White Paper

Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD

4 KEY FACTORS FOR DATA QUALITY ON A DATA LAKE (OR: HOW TO AVOID THE DATA SWAMP) JOSH HERRITZ MIOSOFT CORPORATION MIOsoft Corporation.

PANASAS TIERED PARITY ARCHITECTURE

I keep hearing about DevOps What is it?

Lecture 7: Software Processes. Refresher: Software Always Evolves

What s the Value of Your Data? The Agile Advantage

Human-Computer Interaction. CA357 Lecture 7 More on Prototyping

Computer Graphics. Prof. Feng Liu. Fall /14/2016

Requirement Engineering within an Agile Environment BY KEJI GIWA. Digital Bananas Technology

Prototyping. Oct 3, 2016

The Agile Samurai: How Agile Masters Deliver Great Software PDF

Helix Test Case Management Best Practices

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Introduction to the Active Everywhere Database

Exception Safety. CS 311 Data Structures and Algorithms Lecture Slides Wednesday, October 28, Glenn G. Chappell. continued

Understanding prototype fidelity What is Digital Prototyping? Introduction to various digital prototyping tools

SFU CMPT week 11

Testing in Agile Software Development

Transcription:

Rapid Application Development [RAD] RAD In Solution Delivery,, Beyond Prototypes www.lytecube.com Author: Girish Bellalcheru CTO, Lytecube.com

Abstract Rapid application development has traditionally been used in building prototypes, There are not many success stories of using RAD tools in building complete solutions because of their inherent limitations. This paper looks at how RAD tools could use a more holistic approach to build solutions rather than being a code generation technology. And finally a few benefits of using LyteRAD a new generation RAD framework for database technology. Rapid App Development Friend or foe The world needs faster ways of doing things. Machines crunch numbers faster, hard disks spin faster, networks transport bits faster, and the real bottleneck seems to be creating software faster. Development teams are trying out innovative techniques to get new products into consumer s hands quickly. We are limited by how fast we can code. No matter how many code generation tools are available, the developer community is so obsessed with knowing every line of code that was ever written. That is our real speed bump, the human mind can process only so much information and assistive tools are a necessity to move faster. One of the keys to successful Rapid Application Development (RAD) in solution delivery is innovative tools. To deliver a solution fast enough, we need tools to analyze, design and build systems quickly. RAD tools have always been built on the assumption that the tool is just an assistive technology to developers and generated code should be editable. That defeats the purpose of rapid application development, It s like assigning the human mind an extra task of trying to make sense of alien code and then modify it. A better approach is to generate components that can be treated as individual building blocks, and not chunks of code that needs editing. Better still the whole solution should be as easily editable and creatable.

Various attempts have been made in the online world in the guise of mashables and web 2.0 content. But the real power of RAD will be when you can build solutions to everyday problems. RAD and the software models Software development methodologies can be categorized into pipeline or waterfall like models and evolutionary models. Today evolutionary approaches like prototype, spiral and scrum models dominate the landscape. The need to constantly adapt to changing requirements and clarify requirements on the go make the later models more attractive. Building prototypes is a well accepted practice in evolutionary models. They help clarify requirements and sometimes validate uses cases. Many times prototypes are built to be thrown away, which makes sense in some cases, but largely building prototypes as extensible pieces that can later become a complete solution is where the most payoff lies. And it is here that RAD tools play an important role. Prototyping the future When customers see a well developed prototype they easily mistake it to be a working alpha or beta solution. And there is no reason why a well developed prototype should not be be ready to use. There are many advantages in building strong usable prototypes. It saves a lot of time in re-implementing the actual solution. Developers resist writing strong extensible prototypes because of the throw away factor, and the throw away factor comes in because of the non-extensibility of code over a few iterations. Its like a chicken or egg problem. RAD tools as component c frameworks If RAD tools can provide a set of reusable components that can be readily used in a solution, it can dramatically enhance productivity and reduce development time. An big advantage of using such component frameworks is that you get to test a solution as you build it, which is a dream come true for many developers. It is obvious that code cannot be completely validated until it is fully functional. But with the components approach, each block is fully functional by itself making it easy to test drive the solution as it is built. Starting with something that already works, developers reduce development time. Imagine adding a forms component, and then immediately adding a few records, or adding a reports component and

verifying what it generates. You could add and try out components on the fly and end up with a complete and fully validatedd solution within a few iterations. In a typical database driven solution, this approach would shift the emphasis from coding to better understanding of the problem domain. Designing the right solution would be more about identifying the data domain, designing schema and charts to be reusable. Figure 1 Building the solution would be more about choosing the right components. By using components from a RAD framework, developers can be assured that the code is tested, validated and ready for use on the first day or click, and the solution can definetely be extended over iterations by adding or removing components. The big catch is that the component palette should be complete and ready to use. Redefining productivity In the RAD world, Productivity can no longer be measured in lines of code, it would be more like features per hour or applications per week. Even RAD sounds out of place, The right term would be Rapid Component Integration. From simplicity comes cr reativity With that kind of simple tools to build solutions, we can start putting together custom solutions to every little problem we come across. The day is not far when packaged software would be considered an alternative to DIY solutions and not the other way round.

It is exactly this line of thought that has gone into the making of lyterad, which addresses the need for DIY database solutions. Click select and build complete solutions in minutes, you can always add components or modify the solution with zero coding. That is when programmer productivity is measured in features per hour. Or TPS as the lyterad team wants to put it. Delivering Solutions using LyteRAD L LyteRAD is a lightweight database component framework to quickly build complete database applications without writing any code. The framework has a base runtime which provides the runtime environment for the components. The component palette addresses commonly used features of database driven solution, like creating tables, data forms, reports charts and a few other analysis tools. Solutions Solutions Components Base Runtime Database Access The IDE is designed to mimic the typical design flow of a database solution. As shown in figure 1, The tool allows the solution designer to create tables and relationships which will later be utilised by charts and reports. Each component provides a specific feature of a solution like the ability to add records to a table or a visual graph of table data. The final solution is a collection of components and widgets which make use of these data sources. Adding new features to a solution is as simple as adding a new component to the solution. Component reusability is enabled by the use of a base runtime. The added advantage of a runtime is that any defect fixes and enhancements to a component are available to all solutions immediately. Lytecube is the maker of LyteRAD a new generation database RAD tool. The company also provides a gallery of ready to use solutions built using the framework. For more information visit www.lytecube.com