SESSION 9
DEVELOPING A IS
Build or Buy ?
In-house
software package
Onshore
Offshore
DEVELOPING IN-HOUSE SOFTWARE
Satisfying unique business requirements
Meeting constraints of interfacing with existing systems
Minimize changes in business procedures
Internal resources and capabilities
PURCHASING SOFTWARE PACKAGE
Lower costs
Less implementation time
Reliability
Lower Internal capability (less technical staff)
Future upgrades
Implement best practices
HOW TO CHOOSE A SOFTWARE VENDOR
Price
Accessibility
Willingness to customize
Responsiveness
Size
Market share of the vendor.
Domain expertise of the vendor.
Existing and past clients of the vendor.
Vendor reputation.
Suppliers of the vendor.
Scalability.
SYSTEM DEVELOPMENT (SOFTWARE DEVELOPMENT LIFE
CYCLE)
System Planning
System Analysis
System Design
System Implementation
System Maintenance / Support
SYSTEMS PLANNING
Feasibility Study
1. Operational
2. Technical
3. Economic
4. Schedule
OPERATIONAL FEASIBILITY
Does the Management support the project?
Will the system result in workforce reduction?
Will the new system require training of the employees?
Are there ethical issues?
TECHNICAL FEASIBILITY
Does the company have the technical expertise?
Does the company have the hardware, software and network
resources?
Does the company have the capacity for future needs?
Will the software integrate well with other systems?
ECONOMIC FEASIBILITY
Tangible Benefits
1. Reduction of time
2. Reduction of clerical staff
3. Reduction of delays
Intangible Benefits
1. User friendly system
2. Employee satisfaction
Cost of
1. formal + informal training
2. License + fees
3. Hardware + equipment
NPV Analysis
SCHEDULE FEASIBILITY
Has the management set some timeline for the project?
What conditions must be satisfied during the development of the
system
Will an accelerated schedule pose risks?
Can the company take care of all the factors that affect the project
schedule?
MODELING
Requirements Modeling
Data and Process Modeling
Object Modeling
PROTOTYPING
A prototype is an early working version of the proposed
information system.
Benefits
1. Users and developers can avoid misunderstandings.
2. Developers can get accurate specifications.
3. Working model can be evaluated.
4. Can be used for testing and training procedures.
5. Reduces risk of failure of the final system.
TESTING
Black box vs white box vs gray box
Unit
System
Integration
Regression
Acceptance testing
1. Alpha
2. Beta
TESTING
Unit Testing: It is a software verification and validation method in
which a programmer tests if individual units of source code are fit
for use. A unit is the smallest testable part of an application. In
procedural programming a unit may be an individual program,
function, procedure, etc.
Integration Testing: It is an activity where the individual software
modules are combined and tested as a group.
System Testing: System testing of software or hardware is testing
conducted on a complete, integrated system to evaluate the
system's compliance with its specified requirements.
SOFTWARE TESTING
Regression Testing: Regression testing is any type of software
testing which seeks to uncover software regressions. Such
regressions occur whenever software functionality that was
previously working correctly, stops working as intended.
Acceptance Testing: Black box testing carried out prior to the final
delivery of the product.
SOFTWARE TESTING
Alpha testing takes place at developers' sites, and involves testing
of the operational system by internal staff, before it is released to
external customers.
Beta testing takes place at customers' sites, and involves testing by
a group of customers who use the system at their own locations
and provide feedback, before the system is released to other
customers
SYSTEM CHANGEOVER
It is the process of putting the new information system online and
retiring the old system.
Changeover strategies
1. Direct cutover
2. Parallel operation
3. Pilot Operation
4. Staged Operation
DIRECT CUTOVER
Direct cutover – The approach causes to changeover immediately
when the new system becomes operational.
Drawbacks
1. More risks.
2. More volume of live data.
3. One cannot revert to the old system.
Used for commercial software packages as they are of less risk.
PARALLEL OPERATION
Both the new and old systems operate simultaneously.
Data is fed into both the old and new system and the outputs can
be compared.
Benefits
1. Lower risks as one can take backup.
2. Comparison is possible.
Drawbacks
1. Very high cost
2. The employees need to work on both the systems for sometime
and this increases workload.
3. Infeasible if the two systems are incompatible.
PILOT OPERATION
Involves implementation of the new system at some specific
locations.
Site where the new system becomes functional is called pilot site.
Old system continues to operate at other sites and also in the pilot
site.
Benefits
Reduces the risk of system failure.
Operating both the old and new systems at a pilot site is less
expensive.
STAGED OPERATION
The new system is implemented in stages (Module by Module).
Part of the system is given to all users.
Advantages
1. Reduces the risk of failures.
2. Less expensive than full operation of the system.
Drawbacks
1. Expensive if the system has large number of stages.
2. Infeasible if the system cannot be divided into modules.
SYSTEM MAINTENANCE
Coercive Maintenance (used to fix errors)
Adaptive Maintenance (Used to add new feature into the system)
Perfective Maintenance (Used to improve efficiency of the system)
– Needs software reengineering.
Preventive Maintenance (Used to reduce the possibility of system
failure) – Replacing the server hardware etc