Lecture 14
Lecture 14
Lecture 14
Prototyping
Steps in Prototyping
o Step 1: Identify the user’s basic requirements. The systems designer (usually
an information systems specialist) works with the user only long enough to
capture the user’s basic information needs.
o Step 2: Develop an initial prototype. The systems designer creates a working
prototype quickly, using tools for rapidly generating software.
o Step 3: Use the prototype. The user is encouraged to work with the system to
determine how well the prototype meets his or her needs and to make
suggestions for improving the prototype.
o Step 4: Revise and enhance the prototype. The system builder notes all
changes the user requests and refines the prototype accordingly. After the
prototype has been revised, the cycle returns to Step 3. Steps 3 and 4 are
repeated until the user is satisfied.
However, rapid prototyping can gloss over essential steps in systems development.
If the completed prototype works reasonably well, management may not see the
need for reprogramming, redesign, or full documentation and testing to build a
polished production system. Some of these hastily constructed systems may not
easily accommodate large quantities of data or a large number of users in a
production environment.
Rapid Application Development
The term rapid application development (RAD) is used to describe this process of
creating workable systems in a very short period of time. RAD can include the use of
visual programming and other tools for building graphical user interfaces, iterative
prototyping of key system elements, the automation of program code generation,
and close teamwork among end users and information systems specialists.
The RAD model is based on prototyping and iterative development with no specific
planning involved. The process of writing the software itself involves the planning
required for developing the product.
RAD focuses on gathering customer requirements through workshops or focus
groups, early testing of the prototypes by the customer using iterative concept,
reuse of the existing prototypes (components), continuous integration and rapid
delivery.
In the RAD model, the functional modules are developed in parallel as prototypes
and are integrated to make the complete product for faster product delivery. Since
there is no detailed preplanning, it makes it easier to incorporate the changes within
the development process.
RAD projects follow iterative and incremental model and have small teams
comprising of developers, domain experts, customer representatives and other IT
resources working progressively on their component or prototype.
RAD model distributes the analysis, design, build and test phases into a series of
short, iterative development cycles.
Business Modeling
The business model for the product under development is designed in terms of flow
of information and the distribution of information between various business
channels. A complete business analysis is performed to find the vital information for
business, how it can be obtained, how and when is the information processed and
what are the factors driving successful flow of information.
Data Modeling
The information gathered in the Business Modeling phase is reviewed and analyzed
to form sets of data objects vital for the business. The attributes of all data sets is
identified and defined. The relation between these data objects are established and
defined in detail in relevance to the business model.
Process Modeling
The data object sets defined in the Data Modeling phase is converted to establish
the business information flow needed to achieve specific business objectives as per
the business model. The process model for any changes or enhancements to the
data object sets is defined in this phase. 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.
The customer may need some changes after he gets to see the software. However,
the change process is quite rigid and it may not be feasible to incorporate major
changes in the product in the traditional SDLC.
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 of
non-conformance with the actual user requirements.
RAD model can be applied successfully to the projects in which clear modularization
is possible. If the project cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
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 modeling.
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.
RAD model enables rapid delivery as it reduces the overall development time due to
the reusability of the components and parallel development. RAD works well only if
high skilled engineers are available and the customer is also committed to achieve
the targeted prototype in the given time frame. If there is commitment lacking on
either side the model may fail.
Agile Model
Agile SDLC model is a combination of iterative and incremental process models
with focus on process adaptability and customer satisfaction by rapid delivery of
working software product. Agile Methods break the product into small incremental
builds. These builds are provided in iterations. Each iteration typically lasts from
about one to three weeks. Every iteration involves cross functional teams working
simultaneously on various areas like −
Planning
Requirements Analysis
Design
Coding
Unit Testing and
Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and
important stakeholders.
The most popular Agile methods include Rational Unified Process (1994), Scrum
(1995), Crystal Clear, Extreme Programming (1996), Adaptive Software
Development, Feature Driven Development, and Dynamic Systems Development
Method (DSDM) (1995). These are now collectively referred to as Agile
Methodologies, after the Agile Manifesto was published in 2001.
Agile uses an adaptive approach where there is no detailed planning and there is
clarity on future tasks only in respect of what features need to be developed. There
is feature driven development and the team adapts to the changing product
requirements dynamically. The product is tested very frequently, through the
release iterations, minimizing the risk of any major failures in future.
Agile methods are being widely accepted in the software world recently. However,
this method may not always be suitable for all products. Here are some pros and
cons of the Agile model.
Developing applications for mobile platforms is quite different from development for
PCs and their much larger screens. The reduced size of mobile devices makes using
fingers and multi-touch gestures much easier than typing and using keyboards.
Mobile apps need to be optimized for the specific tasks they are to perform, they
should not try to carry out too many tasks, and they should be designed for usability.
The user experience for mobile interaction is fundamentally different from using a
desktop or laptop PC. Saving resources— bandwidth, screen space, memory,
processing, data entry, and user gestures— is a top priority.
Outsourcing
If a firm does not want to use its internal resources to build or operate information
systems, it can outsource the work to an external organization that specializes in
providing these services. Subscribing companies use the software and computer
hardware provided by the service as the technical platform for their systems. In
another form of outsourcing, a company could hire an external vendor to design and
create the software for its system, but that company would operate the system on its
own computers. The outsourcing vendor might be domestic or in another country.
Domestic outsourcing is driven primarily by the fact that outsourcing firms possess
skills, resources, and assets that their clients do not have. In the case of offshore
outsourcing, the decision tends to be much more cost-driven. The Internet and low-
cost communications technology have drastically reduced the expense and difficulty
of coordinating the work of global teams in faraway locations. In addition to cost
savings, many offshore outsourcing firms offer world-class technology assets and
skills.
Pros of Outsourcing
1. Don’t Have to Hire More Employees
When you outsource, you can pay your help as a contractor. This allows you to avoid
bringing an employee into the company, which saves you money on everything from
benefits to training.
Cons of Outsourcing
Despite the many benefits of outsourcing, you don’t want to go down this path until
you compare these to the potential drawbacks:
1. Lack of Control
Although you can provide direction in regard to what you need to accomplish, you
give up some control when you outsource.
There are many reasons for this, including the fact that you are often hiring a
contractor instead of an employee. And since the person is not working on-site, it
can be difficult to maintain the level of control you desire.
2. Communication Issues
This doesn’t always come into play, but it’s one of the biggest potential drawbacks.
Here are several questions to ask:
o What time zone does the person live in and how does this match up with your
business hours?
o What is your preferred method of communication? Phone, email, instant
messaging?
o Does the person have access to a reliable internet connection?
A positive work culture leads to a higher level of productivity, so you don’t want to do
anything to jeopardize this. Some of the ways outsourcing can negatively affect
company culture include:
o Upset employees as they may feel they are being replaced
o Confuse employees who don’t understand why you are outsourcing
particular tasks
o Add challenges to the daily workflow of the company
Outsourcing doesn’t always have a negative impact on company culture, but you
need to protect against this before you ever take a step in this direction. This
typically means discussing your decision with any employees who could be
impacted.
There are many pros and cons of outsourcing, all of which you should carefully
consider before deciding for or against this strategy. With the ability to affect
company culture, this isn’t something to take lightly. Do you have any experience
with outsourcing? Did it benefit your company, or result in more harm than good?
Question
1. What is prototyping and what are the different steps in prototyping? Write the
advantages and disadvantages of prototyping.6
2. Explain RAD model/method with its various phases. 5-6
3. Write some application of RAD Model. 2-3
4. What (Differentiate) are the advantages and disadvantages of the RAD
Model.5
5. Graphically explain Agile model with its principles. 4-5
6. What are the advantages and disadvantages of Agile model.5
7. Define Outsourcing and write some Advantages and disadvantages of
Outsourcing.5
8. Why Mobile Application Development is popular ?3-4
9. Make a comparison table of RAD, JAD and MAD.
Case Study:
Consider you have a system. Write its prototype and draw its dataflow diagram
(DFD).