Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lecture 14

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Lecture-14

Building Information Systems

Prototyping

Prototyping consists of building an experimental system rapidly and inexpensively


for end users to evaluate. By interacting with the prototype, users can get a better
idea of their information requirements. The prototype endorsed by the users can be
used as a template to create the final system. The prototype is a working version of
an information system or part of the system, but it is meant to be only a preliminary
model. The process of building a preliminary design, trying it out, refining it, and
trying again has been called an iterative process of systems development because
the steps required to build a system can be repeated over and over again.

Steps in Prototyping

A four-step model of the prototyping process, which consists of the following:

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.

When no more iteration is required, the approved prototype then becomes an


operational prototype that furnishes the final specifications for the application.
Sometimes the prototype is adopted as the production version of the system.
The following figure shows the steps of prototyping (Flowchart):

Advantages and Disadvantages of Prototyping

Prototyping is most useful when there is some uncertainty about requirements or


design solutions and often used for designing an information system’s end-user
interface (the part of the system with which end users interact, such as online
display and data entry screens, reports, or Web pages). Because prototyping
encourages intense end-user involvement throughout the systems development life
cycle, it is more likely to produce systems that fulfill user requirements.

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 Design

RAD model distributes the analysis, design, build and test phases into a series of
short, iterative development cycles.

Following are the various phases of the RAD Model −

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.

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.

The following illustration describes the RAD Model in detail.


RAD Model Vs Traditional SDLC
The traditional SDLC follows a rigid process models with high emphasis on
requirement analysis and gathering before the coding starts. It puts pressure on the
customer to sign off the requirements before the project starts and the customer
doesn’t get the feel of the product as there is no working build available for a long
time.

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 - Application

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 - Pros and Cons

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.

The advantages of the RAD Model are as follows −


 Changing requirements can be accommodated.
 Progress can be measured.
 Iteration time can be short with use of powerful RAD tools.
 Productivity with fewer people in a short time.
 Reduced development time.
 Increases reusability of components.
 Quick initial reviews occur.
 Encourages customer feedback.
 Integration from very beginning solves a lot of integration issues.

The disadvantages of the RAD Model are as follows −


 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.
 High dependency on modeling skills.
 Inapplicable to cheaper projects as cost of modeling and automated code
generation is very high.
 Management complexity is more.
 Suitable for systems that are component based and scalable.
 Requires user involvement throughout the life cycle.
 Suitable for project requiring shorter development times.

Joint Application Design (JAD) Model


Sometimes a technique called joint application design (JAD) is used to accelerate
the generation of information requirements and to develop the initial systems design.
JAD brings end users and information systems specialists together in an interactive
session to discuss the system’s design. Properly prepared and facilitated, JAD
sessions can significantly speed up the design phase and involve users at an
intense level.

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.

Here is a graphical illustration of the Agile Model −


The Agile thought process had started early in the software development and
started becoming popular with time due to its flexibility and adaptability.

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.

Following are the Agile Manifesto principles −


 Individuals and interactions − In Agile development, self-organization and
motivation are important, as are interactions like co-location and pair
programming.
 Working software − Demo working software is considered the best means
of communication with the customers to understand their requirements,
instead of just depending on documentation.
 Customer collaboration − As the requirements cannot be gathered
completely in the beginning of the project due to various factors, continuous
customer interaction is very important to get proper product requirements.
 Responding to change − Agile Development is focused on quick responses
to change and continuous development.

Agile Vs Traditional SDLC Models


Agile is based on the adaptive software development methods, whereas the
traditional SDLC models like the waterfall model is based on a predictive approach.
Predictive teams in the traditional SDLC models usually work with detailed planning
and have a complete forecast of the exact tasks and features to be delivered in the
next few months or during the product life cycle.

Predictive methods entirely depend on the requirement analysis and


planning done in the beginning of cycle. Any changes to be incorporated go
through a strict change control management and prioritization.

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.

Customer Interaction is the backbone of this Agile methodology, and open


communication with minimum documentation are the typical features of Agile
development environment. The agile teams work in close collaboration with each
other and are most often located in the same geographical location.

Agile Model - Pros and Cons

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.

The advantages of the Agile Model are as follows −


 Is a very realistic approach to software development?
 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Enables concurrent development and delivery within an overall planned
context.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.

The disadvantages of the Agile Model are as follows −


 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 An overall plan, an agile leader and agile PM practice is a must without which
it will not work.
 Strict delivery management dictates the scope, functionality to be delivered,
and adjustments to meet the deadlines.
 Depends heavily on customer interaction, so if customer is not clear, team
can be driven in the wrong direction.
 There is a very high individual dependency, since there is minimum
documentation generated.
 Transfer of technology to new team members may be quite challenging due
to lack of documentation.

Agile development focuses on rapid delivery of working software by breaking a


large project into a series of small subprojects that are completed in short periods of
time using iteration and continuous feedback. This helps to minimize the overall risk,
and allows the project to adapt to changes more quickly. Agile methods emphasize
face-to-face communication over written documents, encouraging people to
collaborate and make decisions quickly and effectively.

Mobile Application Development (MAD)

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.

The Pros and Cons of Outsourcing

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.

2. Access to a Larger Talent Pool


When hiring an employee, you may only have access to a small, local talent pool.
This often means you have to compromise. Many companies have found
that outsourcing gives them access to talent in other parts of the world. If you need
specialized help, it often makes sense to expand your search.

3. Lower Labor Cost


Every company has its own reason for doing this, with many chasing lower labor
costs. You don’t want to trade quality for price, but outsourcing often allows you to
get the best of both worlds. By searching a global talent pool, it’s easier to find the
right talent at the right price.

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?

3. Problems with Quality


Despite all the benefits of outsourcing, it is only a good thing if you’re receiving the
quality you expect. Anything less than this will be a disappointment.
This isn’t to say you can’t successfully outsource particular tasks, but you need to
discuss the expected quality upfront.

Impact on Company Culture


As a business owner, it’s easy to focus on the benefits of outsourcing, all without
considering the impact it can have on your company as a whole. If you plan on
outsourcing, you need to take steps to ensure that it doesn’t have a negative effect
on company culture.

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).

You might also like