Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

15
Lecture 19 Lecture 19 Rapid Application Rapid Application Development Development 19. 1 COSC4406: Software Engineering

Transcript of Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Page 1: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Lecture 19Lecture 19Rapid Application Rapid Application

DevelopmentDevelopment

19.119.1

COSC4406: Software Engineering

Page 2: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Learning ObjectivesLearning Objectives Explain the Rapid Application Development Explain the Rapid Application Development

(RAD) approach and how it differs from (RAD) approach and how it differs from traditional approaches to information systems traditional approaches to information systems developmentdevelopment

Describe the systems development Describe the systems development components essential to RADcomponents essential to RAD

Discuss the conceptual pillars that support Discuss the conceptual pillars that support the RAD approachthe RAD approach

Explain the advantages and disadvantages of Explain the advantages and disadvantages of RAD as an exclusive systems development RAD as an exclusive systems development methodologymethodology

19.219.2

Page 3: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Rapid Applications Rapid Applications Development (RAD) Development (RAD)

Systems development methodology created Systems development methodology created to radically decrease the time needed to to radically decrease the time needed to design and implement information systems design and implement information systems radically.radically.Five key factorsFive key factors

1.1. Extensive user involvementExtensive user involvement2.2. Joint Application Design sessionsJoint Application Design sessions3.3. PrototypingPrototyping4.4. Integrated CASE toolsIntegrated CASE tools5.5. Code generatorsCode generators

19.319.3

Page 4: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

The Process of Developing an The Process of Developing an Application RapidlyApplication Rapidly

RAD is a general strategy rather than a single RAD is a general strategy rather than a single methodologymethodologyGoalsGoals

– To analyze a business process rapidlyTo analyze a business process rapidly– To design a viable system solution through intense To design a viable system solution through intense

cooperation between users and developerscooperation between users and developers– To get the finished application into the hands of To get the finished application into the hands of

the users quicklythe users quickly

Traditional SDLC steps are followed, but Traditional SDLC steps are followed, but phases are combinedphases are combinedIteration is limited to design and development Iteration is limited to design and development phasesphases

19.419.4

Page 5: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Components of RADComponents of RAD

User involvement is key to successUser involvement is key to success

Prototyping is conducted in sessions Prototyping is conducted in sessions similar to Joint Application Design similar to Joint Application Design (JAD)(JAD)

Prototyping screens become screens Prototyping screens become screens within the production systemwithin the production system

CASE tools are used to design the CASE tools are used to design the prototypesprototypes

19.519.5

Page 6: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Approaches to RADApproaches to RAD

Martin’s pillars of RADMartin’s pillars of RAD– Four pillarsFour pillars

ToolsToolsPeoplePeopleMethodologyMethodologyManagementManagement

– Conversion to RAD within organization should be Conversion to RAD within organization should be done with a small group of well-trained and done with a small group of well-trained and dedicated professionals, called a RAD celldedicated professionals, called a RAD cell

– Over time, cell can grow until RAD is the Over time, cell can grow until RAD is the predominant approach of the information systems predominant approach of the information systems unitunit

19.619.6

Page 7: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Approaches to RADApproaches to RAD

McConnell’s pillars of RADMcConnell’s pillars of RAD– Four pillarsFour pillars

Avoid classic mistakesAvoid classic mistakes

Apply development fundamentalsApply development fundamentals

Manage risks to avoid catastrophic setbacksManage risks to avoid catastrophic setbacks

Apply schedule-oriented practicesApply schedule-oriented practices

– Table 19-1 lists some of McConnell’s 36 Table 19-1 lists some of McConnell’s 36 classic development mistakesclassic development mistakes

19.719.7

Page 8: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Approaches to RADApproaches to RAD

McConnell’s pillars of RAD (continued)McConnell’s pillars of RAD (continued)– Development mistakesDevelopment mistakes

Weak personnelWeak personnel– Employees that are not as well trained in skills necessary for Employees that are not as well trained in skills necessary for

success of the projectsuccess of the project

Silver-bullet syndromeSilver-bullet syndrome– Occurs when developers believe that a new and untried Occurs when developers believe that a new and untried

technology is all that is needed to cure the ills of any technology is all that is needed to cure the ills of any development projectdevelopment project

Feature creepFeature creep– More and more features are added to a system over course of More and more features are added to a system over course of

developmentdevelopment

Requirements gold-platingRequirements gold-plating– Project may have more requirements than neededProject may have more requirements than needed

19.819.8

Page 9: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Approaches to RADApproaches to RAD

Software tools Software tools – Case tools can be used forCase tools can be used for

PrototypingPrototyping

Code generationCode generation

Example: COOL:GenExample: COOL:Gen

– Visual Development EnvironmentsVisual Development EnvironmentsVisual BasicVisual Basic

DelphiDelphi

19.919.9

Page 10: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

Approaches to RADApproaches to RAD

Martin’s RAD Life CycleMartin’s RAD Life Cycle– Systems requirement determination is done in context Systems requirement determination is done in context

of a discussion of business problems and business of a discussion of business problems and business areasareas

– User DesignUser DesignEnd users and IS professionals participate in JAD workshopsEnd users and IS professionals participate in JAD workshopsCASE tools are used to support prototypingCASE tools are used to support prototyping

– ConstructionConstructionDesigner creates code using code generatorDesigner creates code using code generatorEnd user validates screens and other aspects of designEnd user validates screens and other aspects of design

– CutoverCutoverNew system is delivered to end usersNew system is delivered to end users

19.1019.10

Page 11: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

RAD Success StoriesRAD Success Stories

Inprise/Borland’s DelphiInprise/Borland’s Delphi– U.S. Navy Fleet ModernizationU.S. Navy Fleet Modernization

RequirementsRequirements– Move from three character-based systems to a unified, Move from three character-based systems to a unified,

GUI-based system based on a single databaseGUI-based system based on a single database

Reasons for choosing DelphiReasons for choosing Delphi– Support for rapid prototypingSupport for rapid prototyping– Promise of re-use of componentsPromise of re-use of components

OutcomeOutcome– System developed in 6 monthsSystem developed in 6 months– Estimated development savings of 50 percentEstimated development savings of 50 percent– New system resulted in immediate 20 percent savings due New system resulted in immediate 20 percent savings due

to reduced maintenance coststo reduced maintenance costs

19.1119.11

Page 12: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

RAD Success StoriesRAD Success Stories

Inprise/Borland’s Delphi (continued)Inprise/Borland’s Delphi (continued)– First National Bank of ChicagoFirst National Bank of Chicago

Electronic Federal Tax Payment SystemElectronic Federal Tax Payment System

Delphi enabled rapid prototyping and Delphi enabled rapid prototyping and developmentdevelopment

10 months of development time10 months of development time

125 programmers125 programmers

250 million rows of data and 55 gigabytes of 250 million rows of data and 55 gigabytes of data on-linedata on-line

19.1219.12

Page 13: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

RAD Success StoriesRAD Success Stories

VisualAge for JavaVisualAge for Java– ComdataComdata

Modular Over the Road System (MOTRS)Modular Over the Road System (MOTRS)IBM Global Services chosen as vendorIBM Global Services chosen as vendorServletsServlets

– Programming modules that expand the functions of the Web Programming modules that expand the functions of the Web serverserver

AppletsApplets– Embedded code run from client browserEmbedded code run from client browser

Nine months to completionNine months to completion– Three months of researchThree months of research– Three months of codingThree months of coding– Three months of testingThree months of testing

19.1319.13

Page 14: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

AdvantagesAdvantages DisadvantagesDisadvantagesDramatic time savings the systems Dramatic time savings the systems development effortdevelopment effort

More speed and lower cost may More speed and lower cost may lead to lower overall system qualitylead to lower overall system quality

Can save time, money and human Can save time, money and human efforteffort

Danger of misalignment of system Danger of misalignment of system developed via RAD with the developed via RAD with the business due to missing information business due to missing information

Tighter fit between user Tighter fit between user requirements and system requirements and system specificationsspecifications

May have inconsistent internal May have inconsistent internal designs within and across systemsdesigns within and across systems

Works especially well where speed Works especially well where speed of development is importantof development is important

Possible violation of programming Possible violation of programming standards related to inconsistent standards related to inconsistent naming conventions and naming conventions and inconsistent documentationinconsistent documentation

Ability to rapidly change system Ability to rapidly change system design as demanded by usersdesign as demanded by users

Difficulty with module reuse for Difficulty with module reuse for future systemsfuture systems

System optimized for users involved System optimized for users involved in RAD processin RAD process

Lack of scalability designed into Lack of scalability designed into systemsystem

Concentrates on essential system Concentrates on essential system elements from user viewpointelements from user viewpoint

Lack of attention to later systems Lack of attention to later systems administration built into systemadministration built into system

Strong user stake and ownership of Strong user stake and ownership of systemsystem

High cost of commitment on the High cost of commitment on the part of key user personnelpart of key user personnel

19.1419.14

Page 15: Lecture 19 Rapid Application Development 19.1 COSC4406: Software Engineering.

SummarySummary

Rapid Application Development Rapid Application Development Approach (RAD)Approach (RAD)

Components of RADComponents of RAD

Conceptual pillars that support RADConceptual pillars that support RAD

RAD success storiesRAD success stories

Advantages and Disadvantages of RADAdvantages and Disadvantages of RAD

19.1519.15