You are on page 1of 7

Waterfall model:

Requirement analysis – System design – Implementation – Testing – Deployment – Maintenance.

Each phase must be completed before the next phase can begin with no overlap between the
phases. Each phase is designed for performing specific activity during the SDLC phase

When use?

 Requirements are not changing frequently


 Application is not complicated and big
 Project is short
 Requirement is clear
 Environment is stable
 Technology and tools used are not dynamic and is stable
 Resources are available and trained

Joint application Design: JAD

 It collects requirements side by side as per business needs while developing new
information systems for a company that means JAD involves the client or end-users in
designing and development process.
 Since client is involved throughout the development process it leads to faster development
times and greater client satisfaction.

Advantages of Joint Application Development:

 Produce a design from the customer’s perspective.


 The teamwork between company and client helps to remove all risks.
 Due to the close interactions, progress is faster.
 JAD helps to accelerate design and also to enhance quality.
 JAD cheers the team to push each other which leads them to work faster and also to deliver
on time.
Challenges faced in Joint Application Development

Sometimes opinions within the team members may differ which make difficult to align goals and
maintain focus. Depending upon size of the project, in JAD people may have to spent significant
amount of time.

RAD-Rapid application development

The RAD (Rapid Application Development) model is based on prototyping and iterative development
with no specific planning involved. The most important aspect for this model to be successful is to
make sure that the prototypes developed are reusable.

What is a prototype?

A prototype is a working model that is functionally equivalent to a component of the product.

Steps in RAD:

Business Modelling: Phase involves finding the flow of information and the distribution of
information between various business channels.

Data Modelling: The information gathered in the Business Modelling phase is reviewed and analyzed
to form sets of data objects vital for the business.

Process Modelling: The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific business objectives as per the
business model. Process descriptions for adding, deleting, retrieving or modifying a data object are
given

Application Generation: The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.

Testing and Turnover: The overall testing time is reduced in the RAD model as the prototypes are
independently tested during every iteration. However, the data flow and the interfaces between all
the components need to be thoroughly tested with complete test coverage. Since most of the
programming components have already been tested, it reduces the risk of any major issues.

RAD Model Vs Traditional SDLC

The traditional SDLC follows a rigid process model with high emphasis on requirement analysis and
gathering before the coding starts. The RAD model focuses on iterative and incremental delivery of
working models to the customer. This results in rapid delivery to the customer and customer
involvement during the complete development cycle of product reducing the risk

When use RAD?

 RAD should be used only when a system can be modularized to be delivered in an


incremental manner.
 It should be used if there is a high availability of designers for Modelling.
 It should be used only if the budget permits use of automated code generating tools.
 RAD SDLC model should be chosen only if domain experts are available with relevant
business knowledge.
 Should be used where the requirements change during the project and working prototypes
are to be presented to customer in small iterations of 2-3 months.
Difficulties of using RAD:

 Dependency on technically strong team members for identifying business requirements.


 Only system that can be modularized can be built using RAD.
 Requires highly skilled developers/designers.

Agile Methodology:

“Incremental” and “Iterative” and divided into cycles

The customers are satisfied because after every Sprint working feature of the software is delivered
to them. Customers can have a look of the working feature which fulfilled their expectation.

Disadvantages of the Agile Methodology:

 In Agile methodology the documentation is less.


 Sometimes in Agile methodology the requirement is not very clear hence it’s difficult to
predict the expected result.

Agile model Vs RAD model?

Agile projects logically break down the solution into features that are incrementally developed and
delivered. The developers using the RAD model focus on developing all the features of an application
by first doing it badly and then successively improving the code.

The Agile team only demonstrate completed work to the customer after each iteration. Whereas
RAD teams demonstrate to customers screen mock up and prototypes, that may be based on
simplifications such as table lookup rather than actual computations.

The Agile model does not recommend developing prototypes but emphasizes the systematic
development of each incremental feature at the end of each iteration. The central theme of RAD is
based on designing quick and dirty prototypes, which are then refined into production quality code.

Nut shell – Agile breaks logically first but RAD builds the entire prototype and makes it better.

 The extreme programming model recommends taking the best practices that have worked
well in the past in program development projects to extreme levels.
 It suggests pair programming as coding and reviewing of written code carried out by a pair of
programmers who switch their works between them every hour.
 Testing code helps to remove errors and improves its reliability. XP suggests test-driven
development (TDD) to continually write and execute test cases. In the TDD approach test
cases are written even before any code is written.

Applications of Extreme Programming (XP):


 
Some of the projects that are suitable to develop using XP model are given below:

 Small projects: XP model is very useful in small projects consisting of small teams as face-to-
face meeting is easier to achieve.
 Projects involving new technology or Research projects: This type of projects face changing
of requirements rapidly and technical problems. So, XP model is used to complete this type
of projects.

CASE TOOLS

CASE stands for Computer Aided Software Engineering. It means, development and maintenance of
software projects with help of various automated software tools.

 CASE tools are set of software application programs, which are used to automate SDLC
activities. CASE tools are used by software project managers, analysts and engineers to
develop software system.
 It has a case repository which can serve as a source of common, integrated and consistent
information.
 Central repository is a central place of storage where product specifications, requirement
documents, related reports and diagrams, other useful information regarding management
is stored. Central repository also serves as data dictionary.

Diagramming Tools:

It helps in diagrammatic and graphical representations of the data and system processes. It
represents system elements, control flow and data flow among different software
components and system structure in a pictorial form.
For example, Flow Chart Maker tool for making state-of-the-art flowcharts.

Use of case tools?

 The overall quality of the product is improved as an organized approach is


undertaken during the process of development.

 Chances to meet real-world requirements are more likely and easier with a
computer-aided software engineering approach.

 Providing continuity between life cycle phases

 To assess the impact of maintenance

Caselet:

Suppose that you are an analyst for the ABC Company, a large consulting firm with offices around
the world. The company wants to build a new knowledge management system that can identify and
track the expertise of individual consultants anywhere in the world on the basis of their education
and the various consulting projects on which they have worked. Assume that this is a new idea that
has never before been attempted in ABC or elsewhere. ABC has an international network, but the
offices in each country may use somewhat different hardware and software. ABC management
wants the system up and running within a year. Question: What methodology would you
recommend that ABC Company use? Why?

< Depends justify for your type> JAD and waterfall are eliminated, RAD or Agile can be used
1) According to the problem statement the given system is new and is going to require some further
development in the future as actual use is being considered.
2) After analyzing the requirement “system prototyping” seems like a best way to approach this
project.
3) We can develop different prototypes for different regions and rebuild each system using past data
in such a way that to optimize the overall efficiency of each prototype.

4) Ultimately based on the prototypes build a larger scale system that is compatible with the entire
system.

Caselet: Example of system request: If you were building a web-based system for course enrollment
/ registration,

Caslet

A company is trying to decide between using an off-the-shelf software product or developing a


custom program for its Inventory Management. The off-the-shelf product is less expensive than the
custom solution and still has most of the needed functionality. The CEO believes that the missing
capability can be addressed through tweaking the program once it is purchased. As the CIO of the
company, what are your concerns and recommendations to the CEO?

I would like to go for an off the shelf product rather than a customed one here as mainly said most of
the functionality is met. So, it is almost 90% feasible. A lot of time and resource has to be spent for
customer software. The development team needs to take into account not just the initial design,
built and test and implementation costs but also the life time cost required to maintain it. While
developing might seem fun but developmental tasks can seem a distraction from core focus. The It
team might be involved in routine tasks and development work can pose a drag on efficiency. Also,
off the shelf will be designed in an agile manner with best practices. They also keep in touch with the
latest technology and and test extensively to avoid glitches. So, a little amount of tweaking will not
shoot the cost up. Since there is no extensive customization needed I as a CIO would recommend to
go for off the shelf but I would also emphasize on buying a modular and matured software which
won’t clog the systems.

END

You might also like