Post on 05-Jan-2016
Lecture 19Lecture 19Rapid Application Rapid Application
DevelopmentDevelopment
19.119.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
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
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
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
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
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
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
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
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
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
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
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
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
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