You are on page 1of 23

Visual Programming

JRP/JAD Workshops, RAD, Parallel Development, Extreme Programming (XP).


Isuru Balasooriya University of Colombo School of Computing.

JRP (Joint Requirements Planning)


High-level end-users and developers

meet in a session to generate a list of initial requirements For the purpose of analyzing problems and defining requirements. JRP Participants
Sponsor
Facilitator Users and Managers Scribes

I.T. Staff

Benefits of JRP
Encouraging a partnership of business and software experts Enabling the business side to identify and define their

needs of the software Reducing design and development time by clarifying software requirements up front Driving software architecture and platform decisions Lowering deployment and maintenance costs by resolving issues early in the system life cycle Improving the quality of the solution by combining the ideas of a variety of people Increasing end user and project team knowledge of the system and satisfaction with the result

JAD (Joint Application Design)


A management process which helps

developers teams work effectively with users to develop information technology solutions Purpose: define the project, design the solution and monitor the project until it reaches completion

Benefits of JAD
The cost and time associated with data collection,

analysis, and requirements definition can be significantly reduced The input from numerous people provides different perspectives on the desired system and often generates creative ideas. Because all interested parties are represented on the JAD team, conflicts and discrepancies can be identified and resolved during the problem definition stage. Because they are involved in system planning, the participants feel a sense of system ownership.

JRP and JAD Workshops


Skills of a workshop leader
o o o o Excellent Communication skills Unbiased, neutral personality Good negotiator, diplomatic Good organizer research, documents, people o Familiar with tools for diagramming and prototyping

Should JAD and JRP be separate or

combined? Challenges of JRP and JAD?

Rapid Application Development (RAD)


a software development process that allows usable

systems to be built in as little as 60-90 days, often with some compromises


REASONS FOR USING RAD
to converge early toward a design acceptable to

the customer and feasible for the developers


to limit a project's exposure to the forces of change to save development time, possibly at the expense

of economy or product quality

The Spiral Model for Software Development

Prototyping in RAD

Types of RAD
Efficient Development
balances economy, schedule, and quality
Schedule -- faster than average Economy -- costs less than average Product -- better than average quality

Types of RAD
Sensible RAD
tilts away from economy and quality toward fastest schedule
Schedule -- much faster than average Economy -- costs a little less than average Product -- a little better than average quality

Types of RAD
All-out RAD
"code like hell"
Schedule -- fastest possible Economy -- costs more than average Product -- worse than average quality

Stages of RAD: Requirements Planning


takes one to four weeks to complete

is defined during a JRP meeting


consists of a review of the areas immediately

associated with the proposed system


produces a broad definition of the system

requirements in terms of the functions the system will support


deliverables from this stage include
an outline system area model (entity and process

model) a definition of the systems scope a cost justification for the new system

Stages of RAD: User Design


is defined during JAD meetings consists of a detailed analysis of the business

activities related to the proposed system to outline the design


The team defines entity types and creates action

diagrams defining the interactions between processes and data System procedures are designed and preliminary layouts of screens are developed Prototypes of critical procedures are built A plan for implementing the system is prepared
Together with the next stage, User Design

consists of a series of iterations

Stages of RAD: Construction


Developers, working directly with users, finalize

the design, build and test the prototype The deliverables include documentation and instructions necessary to operate the new application and procedures needed to put the system into operation Timebox and parallel development: involves monitoring progresses to complete each task quickly The prototype is reviewed by users
Requirements document can be modified, so

another iteration starts

Stages of RAD: Transition


the period during which the newly developed

system gradually replaces existing systems


User acceptance: end of iterations Developers train users to operate the new

application
objectives
Install the system in production operation with

minimal disruption of normal business activity Maximize the effectiveness of the system in supporting the intended business activities Identify potential future enhancements

The RAD team


should include both developers and users of the

system and each person can play several roles


User Coordinator: appointed by the Sponsor to oversee the project from the user perspective Requirements Planning Team: high-level users participating in the requirements planning User Design Team: participates in the design meetings User Review Board: review the system after the construction and decide if modifications are needed Training Manager: responsible for training users to work with the new system Project Manager: oversees the development effort Construction (SWAT) Team: two to six developers highly trained to work together at high speed. SWAT stands for Skilled Workers with Advanced Tools. This team builds the system and also participate in the design meetings Meeting Leader: organizes and conducts the meetings

Problems of RAD
criticized because it lacks a methodology and a

designed architecture flexibility of RAD systems decreases as applications grow RAD tends to fail when
Application must interoperate with existing

programs Performance and reliability are critical The system cannot be modularized New technologies are used

Parallel Development
attempts to address the problem of long

delays between the analysis phase and the delivery of the system. Instead of doing design and implementation in sequence, it performs a general design for the whole system and then divides the project into a series of distinct subprojects that can be designed and implemented in parallel. Once all subprojects are complete, there is a final integration of the separate pieces, and the system is delivered.

Parallel Development

Parallel Development
suffers from problems caused by paper

documents. also adds a new problem such as sometimes the subprojects are not completely independent; design decisions made in one subproject may affect another, and the end of the project may require significant integration efforts.

Extreme Programming (XP)


A type of agile software development

Iterative approach to development


having multiple short development cycles, rather

than a long Use of pair programming Writing unit tests before programming Simple design which constantly evolves Code is owned collectively TESTING LISTENING

CODING

DESIGN

Problems with XP
only works with senior-level developers

incorporates insufficient software design


can increase the risk of scope creep due to the

lack of detailed requirements documentation lack of structure and necessary documentation

You might also like