Chapter Four
Chapter Four
Chapter Four
Economic feasibility:
• Economic feasibility determines if the project is an acceptable financial risk and if the
organization can afford the expense and time needed to complete the project.
• Economic feasibility addresses two primary questions: Do the benefits outweigh the costs
of the project? Can the project be completed as scheduled?
• Three commonly used methods to determine economic feasibility are breakeven analysis,
return on investment (ROI), and net present value (NPV).
• Breakeven analysis determines the amount of time required for the cumulative cash flow
from a development project to equal its initial and ongoing investment.
• Return on investment is the ratio of the net cash inflows from a project divided by the cash
outflows of the project.
• The net present value is the net amount by which project savings exceed project expenses,
after allowing for the cost of capital and the time value of money.
• The cost of capital is the minimum desired rate of return on an investment and is the
average cost of funds used to finance the operations of the business
Cont..
2. Systems Analysis
• Systems analysis is the examination of the business problem that the
organization plans to solve with an information system.
• This stage defines the business problem, identifies its causes, specifies the
solution, and identifies the information requirements that the solution must
satisfy.
• Understanding the business problem requires understanding the various
processes involved.
• These can often be quite complicated and interdependent.
• Analysts have a variety of tools that support this analysis. E.g. Modern process
modeling tool.
Cont..
• Organizations have three basic solutions to any business problem:
(1) Do nothing and continue to use the existing system unchanged.
(2) Modify or enhance the existing system.
(3) Develop a new system.
• The main purpose of the systems analysis stage is to gather information about the
existing system, to determine which of the three basic solutions to pursue, and to
determine the requirements for an enhanced or new system.
• The end product (the “deliverable”) of this stage is a set of systems requirements.
• Arguably the most difficult task in systems analysis is to identify the specific
information requirements that the system must satisfy.
• Information requirements specify what information, how much information, for
whom, when, and in what format.
Cont..
• Systems analysts use many different techniques to obtain the information
requirements for the new system.
• These techniques include structured and unstructured interviews with users, and
direct observation.
• Structured interviews have questions written in advance.
• In unstructured interviews, the analyst does not have predefined questions but
uses experience to elicit the problems of the existing system from the user. With
direct observation, analysts observe users interacting with the existing system.
• In developing information requirements, analysts must be careful not to let any
preconceived ideas they have interfere with their objectivity and analysts must be
unobtrusive
• There are problems associated with eliciting information requirements, regardless
of the method used by the analyst.
• First, the business problem may be poorly defined.
Cont..
• Second, the users may not know exactly what the problem is, what they want, or
what they need.
• Third, users may disagree with each other about business procedures or even
about the business problem.
• Finally, the problem may not be information related, but may require other
solutions, such as a change in management or additional training.
• The systems analysis stage produces the following information:
Strengths and weaknesses of the existing system
Functions that the new system must have to solve the business problem
User information requirements for the new system
• Armed with this information, systems developers can proceed to the
systems design stage.
Cont..
Systems Design
• Systems analysis describes what a system must do to solve the business
problem, and systems design describes how the system will accomplish this task.
• The deliverable of the systems design phase is the technical design that specifies
the following:
System outputs, inputs, and user interfaces
Hardware, software, databases, telecommunications, personnel, and procedures
How these components are integrated?
• This output is the set of system specifications.
• Systems design encompasses two major aspects of the new system:
Logical systems design states what the system will do, with abstract specifications.
Physical systems design states how the system will perform its functions, with actual
physical specifications.
Cont..
• Logical design specifications include the design of outputs, inputs, processing,
databases, telecommunications, controls, security, and IS jobs.
• Physical design specifications include the design of hardware, software, database,
telecommunications, and procedures.
Programming
• Systems developers utilize the design specifications to acquire the software
needed for the system to meet its functional objectives and solve the business
problem. These structured programming techniques include the following
restrictions:
Each module has one, and only one, function.
Each module has only one entrance and one exit. That is, the logic in the computer
program enters a module in only one place and exits in only one place.
There are no GO TO statements allowed.
Cont..
Testing
• Thorough and continuous testing occurs throughout the programming stage.
• Testing checks to see if the computer code will produce the expected and desired results under
certain conditions.
• Testing requires a large amount of time, effort, and expense to do properly. However, the costs of
improper testing, which could possibly lead to a system that does not meet its objectives, are
enormous.
• Testing is designed to detect errors (“bugs”) in the computer code. These errors are of two types:
syntax errors and logic errors.
• Syntax errors (e.g., a misspelled word or a misplaced comma) are easier to find and will not
permit the program to run.
• Logic errors permit the program to run, but result in incorrect output. It is more difficult to
detect, because the cause is not obvious.
• The programmer must follow the flow of logic in the program to determine the source of the
error in the output.
• As software increases in complexity, the number of errors increases, making it almost impossible
to find them all.
Cont..
Implementation
• Implementation is the process of converting from the old system to the new
system.
• Organizations use four major conversion strategies: parallel, direct, pilot, and
phased.
• In a parallel conversion process, the old system and the new system operate
simultaneously for a period of time.
• That is, both systems process the same data at the same time, and the outputs are
compared.
• This type of conversion is the most expensive, but also the least risky.
• Most large systems have a parallel conversion process to lessen the risk.
Cont..
• In a direct conversion process, the old system is cut off and the new system is turned
on at a certain point in time.
• This type of conversion is the least expensive, but the riskiest if the new system
doesn’t work as planned.
• Few systems are implemented using this type of conversion, due to the risk involved.
• The pilot conversion process introduces the new system in one part of the
organization, such as in one plant or in one functional area.
• The new system runs for a period of time and is assessed.
• After the new system works properly, it is introduced in other parts of the
organization.
• The phased conversion process introduces components of the new system, such as
individual modules, in stages.
• Each module is assessed, and, when it works properly, other modules are introduced,
until the entire new system is operational.
Cont..
Operation and Maintenance
• Once the new system’s operations are stabilized, audits are performed during
operation to assess the system’s capabilities and determine if it is being used
correctly.
• Systems need several types of maintenance.
• The first type is debugging the program, a process that continues throughout the
life of the system.
• The second type is updating the system to accommodate changes in business
conditions.
• These corrections and upgrades usually do not add any new functionality; they
are necessary in order for the system to continue meeting its objectives.
• The third type of maintenance adds new functionality to the system.
• This process involves adding new features to the existing system without
disturbing its operation.
Cont..
Prototyping
• Prototyping is the process of building model for a system.
• Using the prototyping approach, systems developers first obtain only a general idea of user
requirements.
• That is, the developers do not try to obtain a complete set of user specifications for the system
and do not plan to develop the system all at once.
• Instead, they quickly develop a prototype, which either contains parts of the new system of
most interest to the users, or is a small-scale working model of the entire system.
• The prototype is given to the users, who are able to use it and make suggestions for improving
it.
• The developers review the prototype with the users and use the suggestions to refine the
prototype.
• This process continues through several iterations until either the users approve the system or
it becomes apparent that the system cannot meet users’ needs.
• If the system is viable, the developers can use the prototype on which to build the full system.
• Developing screens that a user will see and interact with is a typical use of prototyping.
Cont..
• The main advantage of prototyping is that this approach speeds up the development
process.
• In addition, prototyping gives users the opportunity to clarify their information
requirements as they review iterations of the new system.
• Prototyping is useful in the development of decision support systems and executive
information systems, where user interaction is particularly important.
• Prototyping also has disadvantages.
• It can largely replace the analysis and design stages of the SDLC in some projects.
• As a result, systems analysts may not produce adequate documentation for the
programmers.
• This lack of documentation can lead to problems after the system becomes
operational and needs maintenance.
• In addition, prototyping can result in an excess of iterations, which can consume
the time that prototyping should be saving.
Cont..
Joint application design (JAD)
• Joint application design (JAD) is a group-based method for collecting user
requirements and creating system designs.
• JAD is most often used within the systems analysis and systems design stages of the
SDLC.
• In the traditional SDLC, systems analysts interview or directly observe potential
users of the new information system individually to understand each user’s needs.
• The analysts will obtain many similar requests from users, but also many conflicting
requests.
• The analysts must then consolidate all requests and go back to the users to resolve the
conflicts, a process that usually requires a great deal of time.
• In contrast to the SDLC requirements analysis, JAD has a group meeting in which all
users meet simultaneously with analysts.
• During this meeting, all users jointly define and agree upon systems requirements.
This process saves a tremendous amount of time.
Cont..
• The JAD approach to systems development has several advantages:
• The group process involves more users in the development process while still
saving time.
• This involvement leads to greater support for, and acceptance of, the new system
and can produce a system of higher quality.
• This involvement also may lead to easier implementation of the new system and
lower training costs.
• The JAD approach also has disadvantages.
• First, it is very difficult to get all users to the JAD meeting.
• Second, the JAD approach has all the problems caused by any group process.
• To alleviate these problems, JAD sessions usually have a facilitator, who is
skilled in systems analysis and design as well as in managing group meetings and
processes.
Cont..
Rapid application development (RAD)
• Rapid application development (RAD) is a systems development method that can combine JAD,
prototyping, and integrated CASE tools to rapidly produce a high-quality system.
• RAD is an iterative approach similar to prototyping, in which requirements, designs, and the system
itself are developed with sequential refinements.
• RAD and prototyping are iterative and emphasize speed of development.
• However, prototyping typically uses specialized languages, such as fourth-generation languages
(4GLs) and screen generators, whereas RAD packages include different tools with similar capabilities.
• With RAD tools, developers enhance and extend the initial version through multiple iterations until it
is suitable for operational use.
• The tools work together as part of an integrated package.
• RAD produces functional components of a final system, rather than limited-scale versions. With RAD,
users are intensively involved early in the development process.
• Initially, JAD sessions are used to collect system requirements.
• ICASE tools (discussed next) are then used to quickly structure requirements and develop prototypes.
• As the prototypes are developed and refined, users review them in additional JAD sessions.
Cont..
• RAD methods and tools enable systems developers to build applications faster,
such as systems where the user interface is important or systems that involve
rewriting legacy applications. Typical RAD packages include:
• Graphical user development environment: The ability to create many aspects
of an application by drag-and-drop applications.
• Reusable components: A library of common, standard “objects” such as buttons
and dialog boxes. The developer drags and drops these items into the application.
• Code generator: After the developer drags and drops components into the
design, the package automatically writes computer programs to implement the
reports, input screens, buttons, and dialog boxes.
• Programming language: Such as Visual Basic or C++. This package includes an
integrated development environment (IDE) for creating, testing, and debugging
computer code.
Cont..
• The main advantage of RAD is the active involvement of users in the development
process.
• Active user involvement means that the new system has a better chance of meeting
user needs, eases implementation of the new system, and can reduce training costs.
• RAD also speeds the development process, reduces development costs, and can
create applications that are easier to maintain and modify.
• RAD have disadvantages. The method’s accelerated approach to systems analysis
may result in systems with limited functionality and flexibility for change.
• RAD’s accelerated development process may produce systems that are not of the
highest quality.
• RAD packages can result in an endless iterative process.
• RAD packages do provide features that enable developers to document the system,
but developers may ignore these features in the accelerated process.
Cont..
Object-oriented development
• Object-oriented development is based on a fundamentally different view of computer
systems than that found in traditional SDLC development approaches.
• Traditional approaches provide specific step-by-step instructions in the form of computer
programs, in which programmers must specify every procedural detail.
• An object-oriented (OO) system begins not with the task to be performed, but with the
aspects of the real world that must be modeled to perform that task.
• The OO approach to software development offers many advantages:
• It reduces the complexity of systems development and leads to systems that are easier and
quicker to build and maintain, because each object is relatively small and self-contained.
• It improves programmers’ productivity and quality.
• Once an object has been defined, implemented, and tested, it can be reused in other systems.
• Systems developed with the OO approach are more flexible.
• These systems can be modified and enhanced easily, by changing some types of objects or
by adding new types.
Cont..
• The OO approach allows the systems analyst to think at the level of the real-
world systems (as users do) and not at the level of the programming language.
• The basic operations of an enterprise change much more slowly than the
information needs of specific groups or individuals.
• Therefore, software based on generic models (which the OO approach is) will
have a longer life span than programs written to solve specific, immediate
problems.
• The OO approach is also ideal for developing Web applications.
• The OO approach depicts the various elements of an information system in user
terms (i.e., business or real-world terms), and therefore, the users have a better
understanding of what the new system does and how it meets its objectives.
Cont..
• The OO approach does have disadvantages.
• OO systems, especially those written in Java, generally run more slowly than
those developed in other programming languages.
• Also, many programmers have little skill and experience with OO languages,
necessitating retraining.
THANK YOU