System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
UNIT I
Lesson 3 - System Development Life Cycle (SDLC)
Learning Objectives
3.1 Introduction
In the last lesson we have seen thoroughly about the concept of System and its components. Let
us have some insight now into the Development and Implementation of such systems as one of the major
responsibilities of any Manager is to develop the system through which he can exercise the functions of
management.
We know that information is an organizational resource which must be managed as carefully as
other resources. Costs are associated with information processing. It must be managed to take full
advantage of its potential.
The following paragraphs will give you some fundamentals you need to keep in mind while
developing information Systems.
• A system is a combination of resources working together to transform inputs into usable outputs.
• An information system is an arrangement of people, data, processes, interfaces, networks, and
technology that interact to support and improve both day-to-day operations (data processing,
transaction processing), as well as support the problem-solving and decision-making needs of
management (information services, management information systems, executive support).
• A computer application is a computer-based solution to one or more business problems or
needs. One or more computer applications are typically contained within an information system.
I could say that development of systems will begin with identifying the problems and ending with
the implementation and its maintenance.
• Systems Analysis and Design is a systematic approach to identifying problems,
opportunities, and objectives; analyzing the information flows in organizations; and designing
computerized information systems to solve a problem. Systems Analysts act as outside
consultants to businesses, as supporting experts within a business, and as change agents.
Analysts are problem solvers, and require good communication skills.
• A problem is an undesirable situation that prevents the organization from fully achieving its
purpose, goals, and objectives. An opportunity is the chance to improve the organization
even in the absence of specific problems. (Some might argue that any unexploited
opportunity is, in reality, a problem.) A directive is a new requirement imposed by
management, government, or some external influence. (Some might argue that a directive
until it is fully complied with is, in reality, a problem.)
formal approach is known as the systems development life cycle (SDLC). Large organizations that
develop several systems use this method to coordinate the teams, evaluate progress, and ensure quality
development. Most organizations have created their own versions of SDLC. Any major company that
uses SDLC also has a manual that is several inches thick (or comparable online documentation) that lays
out the rules that MIS designers have to follow. Although these details vary from firm to firm, all of the
methods have a common foundation. The goal is to build a system by analyzing the business processes
and breaking the problem into smaller, more manageable pieces.
Improvements in technology improve the development process. The powerful features of
commercial software make it easier to build new applications. Programmers and designers can work with
larger, more powerful objects. For example, instead of programming each line in Java, a report can be
created in a few minutes using a database management system or a spreadsheet. Prototyping is a design
technique that takes advantage of these new tools. The main objective of proto typing is to create a
working version of the system as quickly as possible, even if some components are not included in the
early versions. The third method of creating systems, end-user development relies on users to create
their own systems. This method typically uses advanced software (such as spreadsheets and database
management systems) and requires users who have some computer skills.
It is important to be careful when you implement any new system. Case studies show that major
problems have arisen during implementation of systems. In fact, some organizations have experienced so
many problems that they will deliberately stick with older, less useful systems just to avoid the problems
that occur during implementation. Although changes can cause problems, there are ways to deal with
them during implementation.
There have been some spectacular failures in the development of computer systems. Projects
always seem to be over budget and late. Worse, systems are sometimes developed
A systems analyst facilitates the development of information systems and computer applications.
The systems analyst performs systems analysis and design. Systems analysis is the study of a business
problem or need in order to recommend improvements and specify the requirements for the solution.
System design is the specification or construction of a technical, computer-based solution as specified by
the requirements identified in a systems analysis.
Personal qualities helpful to systems analysts include:
• Problem-solving abilities
• Communication skills
• Computer/IT experience
• Self-discipline and Self-motivation
• Project management capabilities
Systems are enhanced for a number of reasons:
• adding features to the system
• business and government requirements change over time
• technology, hardware and software are rapidly changing
If we are analyzing these stages we might come across the following activities done in
developing, implementing and maintaining a system. These activities are sequential in happening during
the process of developing any type of systems.
1. Identify problems, opportunities, and objectives
2. Determine Information Requirements
3. Analyze System Needs
4. Design the Recommended System
5. Develop and Document the Software
6. Implement and Evaluate the System
7. Maintain the System
Once we know the activities involved in the Development of Systems, it becomes necessary to
know how these activities are carried out by the companies. There are various methods or options a
company can have for developing and implementing its information systems. Let us see some of the
practices mainly followed by many of the successful companies.
Although most of the companies capable enough to develop their own systems, an increasingly
popular alternative is to acquire systems developed by an outside vendor.
The advantage of developing your own system in-house is that it can be customized to the exact
requirements of your own organization. When you purchase it from an outside party it may be a bit more
generic and the organization may have to adapt its ways to the limitations of the software and other tools
used.
However, by purchasing systems off the shelf or from a vendor the organization avoids the costs
of in-house development. To some extent the development costs are spread out among all of the vendor's
customers. Also, the organization may have the benefit of buying systems that already has a proven track
record in similar organizations.
Even so, selection of new system for an organization is never a trivial matter. Alternative
solutions must be evaluated carefully, studying costs and benefits and making a determination of
feasibility. The same knowledge and experience that an analyst would use to design a new system must be
used to select a system that most closely meets the needs and objectives of the organization. And,
regardless of whether the software is written in-house or purchased from the outside, the transition to a
new system is always a serious challenge for any organization.
A more recent variation is the idea of neither building nor buying, but rather "renting" solutions
from an Application Service Provider (ASP). Unlike traditional software licensing in which an
organization takes possession of a copy of the software and runs it on its own computer, the
distinguishing characteristic of renting this from an ASP is that the system remains at the vendor's site,
runs on the vendor's hardware, and is used over a wide-area network or the Internet. An Application
Service Provider, then, is an independent third-party provider of software-based services which are
delivered to customers across a network. An ASP is a supplier who makes applications available on a
subscription basis. An ASP rents the use of an application, providing all aspects of deployment and
maintenance.
While this kind of arrangement frees the organization from having to be concerned about the
expense (in money, time, and human resources) of software upgrades and maintenance, a major concern
becomes network bandwidth. Since the application is run across the network, instead of on a local
machine, any network congestion or slowdown will directly affect response time for the end user.
Another concern is data security. Businesses are sensitive to the matter of personal customer data
and proprietary information traveling over network lines. And, depending on the nature of the application,
unless it is possible to isolate or partition the executable from the data, an organization's data may end up
being stored on off-site computers. If so, is the data secure and protected against loss or improper access?
Now you are having a clear idea about the ways we can develop our information systems and the
areas to consider in making a decision about it. Let us now proceed with the System Development
Activities in Detail.
Professional system developers and the customers they serve share a common goal of building
information systems that effectively support business process objectives. In order to ensure that cost-
effective, quality systems are developed which address an organization’s business needs, developers
employ some kind of system development Model to direct the project’s life cycle. Typical activities
performed include the following:
• System conceptualization
• System requirements and benefits analysis
• Project adoption and project scoping
• System design
• Specification of software requirements
• Architectural design
• Detailed design
• Unit development
• Software integration & testing
• System integration & testing
• Installation at site
• Site testing and acceptance
• Training and documentation
• Implementation
• Maintenance
After seeing all the above activities, it is time to know about the methodology or approach which
can be used in System Development. All these methodologies are using some of the above tasks through
which they all achieve 100 % in System Development.
• Testing. As the software is created and added to the developing system, testing is performed to
ensure that it is working correctly and efficiently. Testing is generally focused on two areas:
internal efficiency and external effectiveness. The goal of external effectiveness testing is to
verify that the software is functioning according to system design, and that it is performing all
necessary functions or sub-functions. The goal of internal testing is to make sure that the
computer code is efficient, standardized, and well documented. Testing can be a labor-intensive
process, due to its iterative nature.
Problems associated with the Waterfall Model
Although the Waterfall Model has been used extensively over the years in the production of many
quality systems, it is not without its problems. In recent years it has come under attack, due to its rigid
design and inflexible procedure. Let me tell you the problems associated with the waterfall model below:
• Real projects rarely follow the sequential flow that the model proposes.
• At the beginning of most projects there is often a great deal of uncertainty about requirements and
goals, and it is therefore difficult for customers to identify these criteria on a detailed level. The
model does not accommodate this natural uncertainty very well.
• Developing a system using the Waterfall Model can be a long, painstaking process that does not
yield a working version of the system until late in the process.
3.6.4 Prototyping
The Prototyping Model was developed on the assumption that it is often difficult to know all of
your requirements at the beginning of a project. Typically, users know many of the objectives that they
wish to address with a system, but they do not know all the nuances of the data, nor do they know the
details of the system features and capabilities. The Prototyping Model allows for these conditions, and
offers a development approach that yields results without first requiring all information up-front.
When using the Prototyping Model, the developer builds a simplified version of the proposed
system and presents it to the customer for consideration as part of the development process. The customer
in turn provides feedback to the developer, who goes back to refine the system requirements to
incorporate the additional information. Often, the prototype code is thrown away and entirely new
programs are developed once requirements are identified.
There are a few different approaches that may be followed when using the Prototyping Model:
creation of the major user interfaces without any substantive coding in the background in order to give the
users a “feel” for what the system will look like, development of an abbreviated version of the system that
performs a limited subset of functions; development of a paper system (depicting proposed screens,
reports, relationships etc.), or use of an existing system or system components to demonstrate some
functions that will be included in the developed system.
Now, we will see the various steps involved in Prototyping.
• Requirements Definition/Collection. It is Similar to the Conceptualization phase of the
Waterfall Model, but not as comprehensive. The information collected is usually limited to a
subset of the complete system requirements.
• Design. Once the initial layer of requirements information is collected, or new information is
gathered, it is rapidly integrated into a new or existing design so that it may be folded into the
prototype.
• Prototype Creation/Modification. The information from the design is rapidly rolled into a
prototype. This may mean the creation/modification of paper information, new coding, or
modifications to existing coding.
• Assessment. The prototype is presented to the customer for review. Comments and suggestions
are collected from the customer.
• Prototype Refinement. Information collected from the customer is digested and the prototype is
refined. The developer revises the prototype to make it more effective and efficient.
• System Implementation. In most cases, the system is rewritten once requirements are
understood. Sometimes, the Iterative process eventually produces a working system that can be
the cornerstone for the fully functional system.
then rapid iterations are used to quickly incorporate suggested changes and build a usable system. A
distinguishing characteristic of the Exploratory Model is the absence of precise specifications. Validation
is based on adequacy of the end result and not on its adherence to pre-conceived requirements.
The Exploratory Model is extremely simple in its construction; it is composed of the following
steps:
• Initial Specification Development. Using whatever information is immediately available, a brief
System Specification is created to provide a rudimentary starting point.
• System Construction/Modification. A system is created and/or modified according to whatever
information is available.
• System Test. The system is tested to see what it does, what can be learned from it, and how it
may be improved.
• System Implementation. After many iterations of the previous two steps produce satisfactory
results, the system is dubbed as “finished” and implemented.
Due to the relative newness of the Spiral Model, it is difficult to assess its strengths and
weaknesses. However, the risk assessment component of the Spiral Model provides both developers and
customers with a measuring tool that earlier Process Models do not have. The measurement of risk is a
feature that occurs everyday in real-life situations, but (unfortunately) not as often in the system
development industry. The practical nature of this tool helps to make the Spiral Model a more realistic
Process Model than some of its predecessors.
In many cases, parts and procedures from various Process Models are integrated to support
system development. This occurs because most models were designed to provide a framework for
achieving success only under a certain set of circumstances. When the circumstances change beyond the
limits of the model, the results from using it are no longer predictable. When this situation occurs it is
sometimes necessary to alter the existing model to accommodate the change in circumstances, or adopt or
combine different models to accommodate the new circumstances.
The selection of an appropriate Process Model hinges primarily on two factors: organizational
environment and the nature of the application. Frank Land, from the London School of Economics,
suggests that suitable approaches to system analysis, design, development, and implementation be based
on the relationship between the information system and its organizational environment.
There are four categories of relationships are identified which I am explaining below:
• The Unchanging Environment. Information requirements are unchanging for the lifetime of the
system (e.g. those depending on scientific algorithms). Requirements can be stated
unambiguously and comprehensively. A high degree of accuracy is essential. In this environment,
formal methods (such as the Waterfall or Spiral Models) would provide the completeness and
precision required by the system.
• The Turbulent Environment. The organization is undergoing constant change and system
requirements are always changing. A system developed on the basis of the conventional Waterfall
Model would be, in part; already obsolete by the time it is implemented. Many business systems
fall into this category. Successful methods would include those, which incorporate rapid
development, some throwaway code (such as in Prototyping), the maximum use of reusable code,
and a highly modular design.
• The Uncertain Environment. The requirements of the system are unknown or uncertain. It is not
possible to define requirements accurately ahead of time because the situation is new or the
system being employed is highly innovative. Here, the development methods must emphasize
learning. Experimental Process Models, which take advantage of prototyping and rapid
development, are most appropriate.
• The Adaptive Environment. The environment may change in reaction to the system being
developed, thus initiating a changed set of requirements. Teaching systems and expert systems
fall into this category. For these systems, adaptation is key, and the methodology must allow for a
straightforward introduction of new rules.
So far, we have discussed about the various models and approaches in System Development.
Most of the models are developed around the basic activities in System Development what we have seen
earlier. Now, for clear and complete understanding we will see them in detail.
3.7.1 Problem Detection, Initial Investigation, Feasibility Study
The system development cycle is driven by the realization that there are deficiencies in the
system and these problems need to be addressed. A problem is a gap (variance) between expectation and
reality; variance is large enough that it falls outside defined tolerance limits, and therefore is worth the
effort/resources/cost needed to be expended to fix it.
There are two major problems for which we could do system development.
• Maintenance: on an existing system
• Development: building a new or replacement system
If the development cycle is driven by the detection of problems, how do we detect them?
When we observe:
• lack of relevancy lack of completeness lack of correctness (accuracy)
• lack of security lack of timeliness lack of economy
• lack of efficiency lack of reliability lack of usability
• throughput: number of error-free transactions per unit of time.
How do we observe these things?
• users may tell us (complaints)
• take surveys (e.g., questionnaires)
• managers may tell us (complaints)
• audits by outsiders
Information Gathering
After done the feasibility study, we can realize whether the project or proposed system is feasible
to be developed. Then, the next step is to collect information required for developing the new system.
This particular activity will be done with an objective of the available data and the future requirements of
the organisation to be collected. This can be done by employing the following methods:
Interviews
• a planned, formal, scheduled meeting. (make an appointment)
Why indirect probes? Measurement itself can affect what is being measured. Direct investigation
can be an interruption to the process or a distraction. Human factors: direct (overt) observation can impact
on the performance of the workers.
In order to prepare the systems proposal in an effective way, systems analysts must use a
systematic approach to identify hardware and software needs – ascertaining hardware and software needs,
identifying and forecasting costs and benefits, comparing costs and benefits, and choosing the most
appropriate alternative.
In ascertaining hardware and software needs, systems analysts may take the following steps:
1. Inventory computer hardware already available in the organization.
2. Estimate both current and projected workload for the system.
3. Evaluate the performance of hardware and software using some predetermined criteria.
4. Choose the vendor according to the evaluation.
5. Acquire the hardware and software from the selected vendor.
When inventorying computer hardware, systems analysts should check such items as type of
equipment, status of the equipment (on order, in use, in storage, in need of repair), estimated age of
equipment, projected life of equipment, physical location of equipment, department or individual
responsible for equipment, and financial arrangement for equipment (owned, leased, rented).
When evaluating hardware, the involved persons, including management, users, and systems
analysts, should take the following criteria into consideration: time required for average transactions
(including time for input and output), total volume capacity of the system, idle time of the central
processing unit, and size of memory provided.
When evaluating hardware vendors, the selection committee needs to consider hardware support,
software support, installation and training support, maintenance support, and the performance of the
hardware.
When evaluating software packages, the selection committee needs to take the following factors
into consideration as well as total dollar amount to purchase them. They are: performance effectiveness,
performance efficiency, ease of use, flexibility, quality of documentation, and manufacturer support.
Systems analysts should take tangible costs, intangible costs, tangible benefits, and intangible
benefits into consideration to identify costs and benefits of a prospective system. To select the best
alternative, systems analysts should compare costs and benefits of the prospective alternatives.
Through the use of effectively organizing the content, writing in a professional style, and orally
presenting the proposal in an informative way, the analyst can create a successful systems proposal.
After analyzing all these aspects, now being a system analyst or a MIS manager, you have to
develop a System Proposal which comprises of the following:
1. Cover letter
2. Title page of project
3. Table of contents
4. Executive summary (including recommendation)
5. Outline of systems study with appropriate documentation
6. Detailed results of the systems study
7. Systems alternatives (3 or 4 possible solutions)
8. Systems analysts’ recommendations
9. Summary
10. Appendices (assorted documentation, summary of phases, correspondence, etc.)
When writing a systems proposal, systems analysts should use examples, illustrations, diagrams,
tables, figures, and graphs to support main points of the proposal.
Some guidelines for effective use of tables:
• Type only one table per page and integrate it into the body of the proposal.
Systems design is the evaluation of alternative solutions and the specification of a detailed
computer-based solution. It is also called physical design).
The key to understanding the design phase is to realize you are shifting your focus from
understanding the problem to figuring out a cost-effective solution to the problem. Design is especially
challenging because you usually have to devise a solution despite all sorts of constraints. For example,
you might be told the solution can’t cost more than $100,000, or that it must be implemented in 4 months,
or that it must run across the Win, Mac, and Unix platforms, etc.
You normally proceed with design in two major steps. First you need to determine a general
direction such as building a custom technology solution or buying a packaged one (general design).
Second you need to figure out all the details for going ahead with your general direction such as how to
integrate the purchased application into your existing environment or how to build it to meet requirements
in a way that minimizes cost of system over its full life cycle (detailed design). This includes both the cost
of initial implementation and much larger cost of long term support.
At this stage of Design, we should consider the following important concepts which will avoid
the flaws in our design. Majority of the system failures happening today are only due to the poor design
of systems.
• Modularity is important because: (1) it allows assignment of different programmers and analysts
to separate tasks; (2) small sections can be developed independently; and (3) maintenance causes
minimal disruption.
• Cohesion is how well activities within a single module are related to one another.
• Optimizing is the process of seeking the perfect solution. Satisfying is the process of seeking a
better, but not necessarily perfect, solution.
• There are no perfect systems. And, there are always constraints. So, satisfying, not optimizing is
the goal of system design.
Four categories of system flaws
• Major anticipated flaws are system functions that were not included in the design because of
constraints such as time or cost.
• Major unanticipated flaws are the most serious type of system shortcoming which indicates major
design and testing deficiencies.
• Minor unanticipated flaws are the most prevalent of system shortcomings and are handled by
maintenance.
• Minor anticipated flaws should not exist.
Three tactics to use for giving a system design a future orientation:
• Build redundancy into the current system.
• Maintain a future file on every system.
• Develop documentation.
After considering all these concepts, we could proceed with the system design which is
happening in two phases. The first part is to develop a blueprint of the system and to define the dataflow
and controls in the form of diagrams and other representations. After that we will write the computer
programs to physically create the system as software package. In this part we will design the form of
input, output and the user interface. Let us see them in brief below:
Logical design
• Produces a system blueprint
• General rather than technical format
Physical design
• Converts the blueprint into the specific detail required to construct the code
• Includes specifying complete descriptions of files, input, and output.
The systems blueprint may include charts, graphs, and data layouts that describe output
documents and reports, input documents that the system will process, computer records required to store
processed data, and the sequence and method by which output, input, and storage are linked. Output is the
primary purpose of any system. A senior systems analyst is usually in charge of project scheduling for
systems design in the case of small projects; a project leader for larger projects. Users should always
participate in the design phase because it fosters ownership. Clerical users should be involved in the
design of business information systems. At periodic intervals managers and supervisors should give their
stamp of approval.
The advantage of design teams is that design can be completed in modules. Structured
walkthroughs are valuable because they force the analyst to explain step-by-step logic of design; design
colleagues provide new ideas or spot flaws that the analyst has overlooked/not noticed; provides an
opportunity for analyst to practice explaining the system.
Joint Application Design (JAD) is the design of systems by groups of people meeting together in
multiple sessions. Design teams are cross-functional and include both users and designers. Designs are
completed more quickly with JAD than through traditional sequential methods. JAD involves a
significant amount of planning and coordination.
CASE design aids include: graphics (data flow diagrams, structure charts, etc.), screen and
document design, file design, rapid prototyping, and code generation.
Standard information systems are applicable across a wide range of industries. Tailored
information systems must match the specific characteristics of a firm or individual decision makers within
the firm. In the top-down approach the designer begins with the total concept and decomposes to further
levels of detail.
Modules
A module is a bounded contiguous group of statements having a single name and that can be
treated as a unit. In other words, a single block in a pile of blocks can be called as Module. Cohesion: how
well the activities within a single module relate to one another. Separate modules should be relatively
independent (loosely coupled). This facilitates development, maintenance by teams; reduces chance of
unintended ripple effects on other modules when changes made to a module.
Guidelines for Modularity
• Make sure modules perform a single task, have a single entry point, and have a single exit point.
• Isolate input-output (I-O) routines into a small number of standard modules that can be shared
system-wide.
• Isolate system-dependent functions (e.g., getting date or time) in the application to ease possible
future conversions to other computer platforms or to accommodate future operating system
revisions.
Any system always represents some kind of tradeoff between functionality (meeting the business
needs) and the resources available (constraints). The goal of design is an improved system, one that better
meets the needs of the organization.
• Two ways to design output for strategic purposes are (1) make it compatible with processes
outside the immediate scope of the system, and (2) turn action documents into turnaround
documents.
• People often receive reports they do not need because the number of reports received is perceived
as a measure of power.
• Fields on a report should be selected carefully to provide uncluttered reports, facilitate 80-column
remote printing, and reduce information (data) overload.
• The types of fields which should be considered for business output are: key fields for access to
information, fields for control breaks, fields that change, and exception fields.
• Output may be designed to aid future change by stressing unstructured reports, defining field size
for future growth, making field constants into variables, and leaving room on summary reports for
added ratios and statistics.
• Output can now be more easily tailored to the needs of individual users because inquiry-based
systems allow users themselves to create ad hoc reports.
• An output intermediary can restrict access to key information and prevent unauthorized access.
• An information clearinghouse (or information center) is a service center that provides
consultation, assistance, and documentation to encourage end-user development and use of
applications.
• The specifications needed to describe the output of a system are: data flow diagrams, data flow
specifications, data structure specifications, and data element specifications.
Output Documents
Printed Reports
• External Reports: for use or distribution outside the organization; often on preprinted forms.
• Internal Reports: for use within the organization; not as "pretty", stock paper, greenbar, etc.
• Periodic Reports: produced with a set frequency (daily, weekly, monthly, every fifth Tuesday,
etc.)
• Ad-Hoc (On Demand) Reports: irregular interval; produced upon user demand.
• Detail Reports: one line per transaction.
• Summary Reports: an overview.
• Exception Reports: only shows errors, problems, out-of-range values, or unexpected conditions or
events.
Input Design
• A source document differs from a turnaround document in that the former contains data that
change the status of a resource while the latter is a machine readable document.
• Transaction throughput is the number of error-free transactions entered during a specified
time period.
• A document should be concise because longer documents contain more data and so take longer to
enter and have a greater chance of data entry errors.
• Numeric coding substitutes numbers for character data (e.g., 1=male, 2=female); mnemonic
coding represents data in a form that is easier for the user to understand and remember. (e.g.,
M=male, F=female).
• The more quickly an error is detected, the closer the error is to the person who generated it and so
the error is more easily corrected.
• An example of an illogical combination in a payroll system would be an option to eliminate
federal tax withholding.
• By "multiple levels" of messages, I mean allowing the user to obtain more detailed explanations
of an error by using a help option, but not forcing a lengthy message on a user who does not want
it.
• An error suspense record would include the following fields: data entry operator identification,
transaction entry date, transaction entry time, transaction type, transaction image, fields in error,
error codes, date transaction reentered successfully.
• A data input specification is a detailed description of the individual fields (data elements) on an
input document together with their characteristics (i.e., type and length).
• Be specific and precise, not general, ambiguous, or vague.
(BAD: Syntax error, Invalid entry, General Failure)
• Don't JUST say what's wrong---- Be constructive; suggest what needs to be done to correct the
error condition.
• Be positive; Avoid condemnation. Possibly even to the point of avoiding pejorative terms such as
"invalid" "illegal" or "bad."
• Be user-centric and attempt to convey to the user that he or she is in control by replacing
imperatives such as "Enter date" with wording such as "Ready for date."
• Consider multiple message levels: the initial or default error message can be brief but allow the
user some mechanism to request additional information.
• Consistency in terminology and wording.
o place error messages in the same place on the screen
o use consistent display characteristics (blinking, color, beeping, etc.)
User Interface
• The primary differences between an interactive and batch environment are:
o interactive processing is done during the organization's prime work hours
o interactive systems usually have multiple, simultaneous users
o the experience level of users runs from novice to highly experienced
o developers must be good communicators because of the need to design systems with
error messages, help text, and requests for user responses.
• The seven step path that marks the structure of an interactive system is
1. Greeting screen (e.g., company logo)
2. Password screen -- to prevent unauthorized use
3. Main menu -- allow choice of several available applications
4. Intermediate menus -- further delineate choice of functions
5. Function screens -- updating or deleting records
6. Help screens -- how to perform a task
7. Escape options -- from a particular screen or the application
• An intermediate menu and a function screen differ in that the former provides choices from a set
of related operations while the latter provides the ability to perform tasks such as updates or
deletes.
• The difference between inquiry and command language dialogue modes is that the former asks
the user to provide a response to a simple question (e.g., "Do you really want to delete this file?")
where the latter requires that the user know what he or she wants to do next (e.g., MS-DOS C:>
prompt; VAX/VMS $ prompt; Unix shell prompt). GUI Interface (Windows, Macintosh) provide
Dialog Boxes to prompt user to input required information/parameters.
• Directions for designing form-filling screens:
o Fields on the screen should be in the same sequence as on the source document.
o Use cuing to provide the user with information such as field formats (e.g., dates)
o Provide default values.
o Edit all entered fields for transaction errors.
o Move the cursor automatically to the next entry field
o Allow entry to be free-form (e.g., do not make the user enter leading zeroes)
o Consider having all entries made at the same position on the screen.
• A default value is a value automatically supplied by the application when the user leaves a field
blank. For example, at SXU the screen on which student names and addresses are entered has a
default value of "IL" for State since the majority of students have addresses in Illinois. At one
time "312" was a default value for Area Code, but with the additional Area Codes now in use
(312, 773, 708, 630, 847) providing a default value for this field is no longer as useful.
• The eight parts of an interactive screen menu are:
0. Locator -- what application the user is currently in
1. Menu ID -- allows the more experienced user access without going through the entire
menu tree.
2. Title
3. User instructions
4. Menu list
5. Escape option
6. User response area
7. System messages (e.g., error messages)
• Highlighting should be used for gaining attention and so should be limited to critical information,
unusual values, high priority messages, or items that must be changed.
• Potential problems associated with the overuse of color are:
o Colors have different meanings to different people and in different cultures.
o A certain percentage of the population is known to have color vision deficiency.
o Some color combinations may be disruptive.
• Information density is important because density that is too high makes it more difficult to
discern the information presented on a screen, especially for novice users.
• Rules for defining message content include:
o Use active voice.
o Use short, simple sentences.
o Use affirmative statements.
o Avoid hyphenation and unnecessary punctuation.
o Separate text paragraphs with at least one blank line.
o Keep field width within 40 characters for easy reading.
o Avoid word contractions and abbreviations.
o Use non threatening language.
o Avoid godlike language.
o Do not patronize.
o Use mixed case (upper and lower case) letters.
o Use humor carefully.
• Symmetry is important to screen design because it is aesthetically pleasing and thus more
comforting.
• Input verification is asking the user to confirm his or her most recent input (e.g., "Are you sure
you want to delete this file?")
• Adaptive models are useful because they adapt to the user's experience level as he or she moves
from novice to experienced over time as experience with the system grows.
• "Within User" sources of variation include: warm up, fatigue, boredom, environmental
conditions, and extraneous events.
• The elements of the adaptive model are:
o Triggering question to determine user experience level
o Differentiation among user experience
o Alternative processing paths based on user level
o Transition of casual user to experienced processing path
o Transition of novice user to experienced processing path
o Allowing the user to move to an easier processing path
• Interactive tasks can be designed for closure by providing the user with feedback indicating that a
task has been completed.
• Internal locus of control is making users feel that they are in control of the system, rather than
that the system is in control of them.
• Examples of distracting use of surprise are:
o Highlighting
o Input verification
o Flashing messages
o Auditory messages
• Losing the interactive user can be avoided by using short menu paths and "You are here"
prompts.
• Some common user shortcuts are: direct menu access, function keys, and shortened response
time.
The quality of data input determines the quality of information output. Systems analysts can
support accurate data entry through achievement of three broad objectives: effective coding, effective and
efficient data capture and entry, and assuring quality through validation. Coding aids in reaching the
objective of efficiency, since data that are coded require less time to enter and reduce the number of items
entered. Coding can also help in appropriate sorting of data during the data transformation process.
Additionally, coded data can save valuable memory and storage space.
In establishing a coding system, systems analysts should follow these guidelines:
• Keep codes concise.
• Keep codes stable.
• Make codes that are unique.
• Allow codes to be sortable.
• Avoid confusing codes.
• Keep codes uniform.
• Allow for modification of codes.
• Make codes meaningful.
The simple sequence code is a number that is assigned to something if it needs to be numbered.
It therefore has no relation to the data itself. Classification codes are used to distinguish one group of
data, with special characteristics, from another. Classification codes can consist of either a single letter or
number. The block sequence code is an extension of the sequence code. The advantage of the block
sequence code is that the data are grouped according to common characteristics, while still taking
advantage of the simplicity of assigning the next available number within the block to the next item
needing identification.
A mnemonic is a memory aid. Any code that helps the data-entry person remember how to enter
the data or the end-user remember how to use the information can be considered a mnemonic. Mnemonic
coding can be less arbitrary, and therefore easier to remember, than numeric coding schemes. Compare,
for example, a gender coding system that uses "F" for Female and "M" for Male with an arbitrary numeric
coding of gender where perhaps "1" means Female and "2" means Male. Or, perhaps it should be "1" for
Male and "2" for Female? Or, why not "7" for Male and "4" for Female? The arbitrary nature of numeric
coding makes it more difficult for the user.
Date Formats
An effective format for the storage of date values is the eight-digit YYYYMMDD format as it
allows for easy sorting by date. Note the importance of using four digits for the year. This eliminates any
ambiguity in whether a value such as 01 means the year 1901 or the year 2001. Using four digits also
insures that the correct sort sequence will be maintained in a group of records that include year values
both before and after the turn of the century (e.g., 1999, 2000, 2001).
Remember, however, that the date format you use for storage of a date value need not be the same
date format that you present to the user via the user interface or require of the user for data entry. While
YYYYMMDD may be useful for the storage of date values it is not how human beings commonly write
or read dates. A person is more likely to be familiar with using dates that are in MMDDYY format. That
is, a person is much more likely to be comfortable writing the date December 25, 2001 as "12/25/01" than
"20011225."
Fortunately, it is a simple matter to code a routine that can be inserted between the user interface
or data entry routines and the data storage routines that read from or write to magnetic disk. Thus, date
values can be saved on disk in whatever format is deemed convenient for storage and sorting while at the
same time being presented in the user interface, data entry routines, and printed reports in whatever
format is deemed convenient and familiar for human users.
Data Entry Methods
• keyboards
• optical character recognition (OCR)
• magnetic ink character recognition (MICR)
• mark-sense forms
• punch-out forms
• bar codes
• intelligent terminals
Tests for validating input data include: test for missing data, test for correct field length, test for
class or composition, test for range or reasonableness, test for invalid values, test for comparison with
stored data, setting up self-validating codes, and using check digits. Tests for class or composition are
used to check whether data fields are correctly filled in with either numbers or letters. Tests for range or
reasonableness do not permit a user to input a date such as October 32. This is sometimes called a sanity
check.
Database
A database is a group of related files. This collection is usually organized to facilitate efficient
and accurate inquiry and update. A database management system (DBMS) is a software package that is
used to organize and maintain a database.
Usually when we use the word "file" we mean traditional or conventional files. Sometimes we
call them "flat files." With these traditional, flat files each file is a single, recognizable, distinct entity on
your hard disk. These are the kind of files that you can see cataloged in your directory.
Commonly, these days, when we use the word "database" we are not talking about a collection of
this kind of file; rather we would usually be understood to be talking about a database management
system. And, commonly, people who work in a DBMS environment speak in terms of "tables" rather than
"files."
DBMS software allows data and file relationships to be created, maintained, and reported. A
DBMS offers a number of advantages over file-oriented systems including reduced data duplication,
easier reporting, improved security, and more rapid development of new applications.
The DBMS may or may not store a table as an individual, distinct disk file. The software may
choose to store more than one table in a single disk file. Or it may choose to store one table across several
distinct disk files, or even spread it across multiple hard disks. The details of physical storage of the data
is not important to the end user who only is concerned about the logical tables, not physical disk files.
In a hierarchical database the data is organized in a tree structure. Each parent record may have
multiple child records, but any child may only have one parent. The parent-child relationships are
established when the database is first generated, which makes later modification more difficult.
A network database is similar to a hierarchical database except that a child record (called a
"member") may have more than one parent (called an "owner"). Like in a hierarchical database, the
parent-child relationships must be defined before the database is put into use, and the addition or
modification of fields requires the relationships to be redefined.
In a relational database the data is organized in tables that are called "relations." Tables are
usually depicted as a grid of rows ("tuples") and columns ("attributes"). Each row is a record; each
column is a field. With a relational database links between tables can be established at any time provided
the tables have a field in common. This allows for a great amount of flexibility.
Systems implementation is the construction of the new system and its delivery into ‘production’
or day-to-day operation.
The key to understanding the implementation phase is to realize that there is a lot more to be done
than programming. During implementation you bring your process, data, and network models to life with
technology. This requires programming, but it also requires database creation and population, and
network installation and testing. You also need to make sure the people are taken care of with effective
training and documentation. Finally, if you expect your development skills to improve over time, you
need to conduct a review of the lessons learned.
During both design and implementation, you ought to be looking ahead to the support phase.
Over the long run, this is where most of the costs of an application reside.
Systems implementation involves installation and changeover from the previous system to the
new one, including training users and making adjustments to the system. Many problems can arise at this
stage. You have to be extremely careful in implementing new systems. First, users are probably nervous
about the change already. If something goes wrong they may never trust the new system. Second, if major
errors occur, you could lose important business data.
A crucial stage in implementation is final testing. Testing and quality control must be performed
at every stage of development, but a final systems test is needed before staff entrust the company's data
to the new system. Occasionally, small problems will be noted, but their resolution will be left for later.
In any large system, errors and changes will occur, the key is to identify them and determine which ones
must be fixed immediately. Smaller problems are often left to the software maintenance staff.
Change is an important part of MIS. Designing and implementing new systems often causes
changes in the business operations. Yet, many people do, not like changes. Changes require learning new
methods, forging new relationships with people and managers, or perhaps even loss of jobs. Changes
exist on many levels: in society, in business, and in information systems. Changes can occur because of
shifts in the environment, or they can be introduced by internal change agents. Left to themselves, most
organizations will resist even small changes. Change agents are objects or people who cause or facilitate
changes. Sometimes it might be a new employee who brings fresh ideas; other times changes can be
mandated by top-level management. Sometimes an outside event such as arrival of a new competitor or a
natural disaster forces an organization to change. Whatever the cause, people tend to resist change.
However, if organizations do not change, they cannot survive. The goal is to implement systems in a
manner that recognizes resistance to change but encourages people to accept the new system. Effective
implementation involves finding ways to reduce this resistance. Sometimes, implementation involves the
cooperation of outsiders such as suppliers.
Because implementation is so important, several techniques have been developed to help
implement new systems. Direct cutover is an obvious technique, where the old system is simply dropped
and the new one started. If at all possible, it is best to avoid this technique, because it is the most
dangerous to data. If anything goes wrong with the new system, you run the risk of losing valuable
information because the old system is not available.
In many ways, the safest choice is to use parallel implementation. In this case, the new system is
introduced alongside the old one. Both systems are operated at the same time until you determine that the
new system is acceptable. The main drawback to this method is that it can be expensive because data has
to be entered twice. Additionally, if users are nervous about the new system, they might avoid the change
and stick with the old method. In this case, the new system may never get a fair trial.
If you design a system for a chain of retail stores, you could pilot test the first implementation in
one store. By working with one store at a time, there are likely to be fewer problems. But if problems do
arise, you will have more staff members around to overcome the obstacles. When the system is working
well in one store, you can move to the next location. Similarly, even if there is only one store, you might
be able to split the implementation into sections based on the area of business. You might install a set of
computer cash registers first. When they work correctly, you can connect them to a central computer and
produce daily reports. Next, you can move on to annual summaries and payroll. Eventually the entire
system will be installed.
Let us now see the Process of Implementation which involves the following steps:
• Internal or outsourcing (trend is "outsourcing")
• Acquisition: purchasing software, hardware, etc.
• Training: employee (end-users) training, technical staff training. SQL training in 5 days costs
around $2000, + airplane, hotel, meals, rental car ($3000 to 5000); evaluation
• Testing:
o a bigger system requires more testing time
o a good career opportunity for non-technical people who wish to get in the door in the
IT jobs.
• Documentation:
o backup
o knowledge management system
• Actual Installation
• Conversion: Migration from the old system to a new system
• Maintenance: very important; if you don't maintain the new system properly, it's useless to
develop a new system.
o monitor the system,
o upgrade,
o trouble-shooting,
o continuous improvement
Once the system is installed, the MIS job has just begun. Computer systems are constantly
changing. Hardware upgrades occur continually, and commercial software tools may change every year.
Users change jobs. Errors may exist in the system. The business changes, and management and users
demand new information and expansions. All of these actions mean the system needs to be modified. The
job of overseeing and making these modifications is called software maintenance.
The pressures for change are so great that in most organizations today as much as 80 per cent of
the MIS staff is devoted to modifying existing programs. These changes can be time consuming and
difficult. Most major systems were created by teams of programmers and analysts over a long period. In
order to make a change to a program, the programmer has to understand how the current program works.
Because the program was written by many different people with varying styles, it can be hard to
understand. Finally, when a programmer makes a minor change in one location, it can affect another area
of the program, which can cause additional errors or necessitate more changes
One difficulty with software maintenance is that every time part of an application is modified,
there is a risk of adding defects (bugs). Also, over time the application becomes less structured and more
complex, making it harder to understand. These are some of the main reasons why the year 2000
alterations were so expensive and time consuming. At some point, a company may decide to replace or
improve the heavily modified system. There are several techniques for improving an existing system,
ranging from rewriting individual sections to restructuring the entire application.. The difference lies in
scope-how much of the application needs to be modified. Older applications that were subject to
modifications over several years tend to contain code that is no longer used, poorly documented changes,
and inconsistent naming conventions. These applications are prime candidates for restructuring, during
which the entire code is analyzed and reorganized to make it more efficient. More important, the code is
organized, standardized, and documented to make it easier to make changes in the future.
An important phase in any project is evaluating the resulting system. As part of this evaluation, it
is also important to assess the effectiveness of the particular development process. There are several
questions to ask. Were the initial cost estimates accurate? Was the project completed on time? Did users
have sufficient input? Are maintenance costs higher than expected?
Evaluation is a difficult issue. How can you as a manager tell the difference between a good
system and a poor one? In some way, the system should decrease costs, increase revenue, or provide a
competitive advantage. Although these effects are important, they are often subtle and difficult to
measure. The system should also be easy to use and flexible enough to adapt to changes in the business. If
employees or customers continue to complain about a system, it should be reexamined. .
A system also needs to be reliable. It should be available when needed and should produce
accurate output. Error detection can be provided in the system to recognize and avoid common problems.
Similarly, some systems can be built to tolerate errors, so that when errors arise, the system recognizes the
problem and works around it. For example, some computers exist today that automatically switch to
backup components when one section fails, thereby exhibiting fault tolerance.
Managers concern to remember when dealing with new systems is that the evaluation mechanism
should be determined at the start. The question of evaluation is ignored until someone questions the value
of the finished product. It is a good design practice to ask what would make this system a good system
when it is finished or how we can tell a good system from a bad one in this application. Even though
these questions may be difficult to answer, they need to be asked. The answers, however incomplete, will
provide valuable guidance during the design stage.
Recall that every system needs a goal, a way of measuring progress toward that goal, and a
feedback mechanism. Traditionally, control of systems has been the task of the computer programming
staff. Their primary goal was to create error-free code, and they used various testing techniques to find
and correct errors in the code. Today, creating error-free code is not a sufficient goal.
We have all heard the phrase, "The customer is always right." The meaning behind this phrase is
that sometimes people have different opinions on whether a system is behaving correctly. When there is a
conflict, the opinion that is most important is that of the customer. In the final analysis, customers are in
control because they can always take their business elsewhere. With information systems, the users are
the customers and the users should be the ones in control. Users determine whether a system is good. If
the users are not convinced that the system performs useful tasks, it is not a good system.
Feasibility comparison
Cost and budget Compare actual costs to budget estimates
Time estimates Revenue effects Was project completed on time?
Maintenance costs Does system produce additional revenue?
The primary purpose of the SDLC method of designing systems is to provide guidance and
control over the development process. As summarized in the following table, there are strengths and
weaknesses to this methodology. SDLC management control is vital for large projects to ensure that the
individual teams work together. There are also financial controls to keep track of the project expenses.
The SDLC steps are often spelled out in great detail. The formality makes it easier to train employees and
to evaluate the progress of the development. It also ensures that steps are not skipped, such as user
approval, documentation, and testing. For large, complex projects, this degree of control is necessary to
ensure the project can be completed. Another advantage of SDLC is that by adhering to standards while
building the system, programmers will find the system easier to modify and maintain later. The internal
consistency and documentation make it easier to modify. With 80 percent of MIS resources spent on
maintenance, this advantage can be critical.
In some cases the formality of SDLC causes problems. Most important, it increases the cost of
development and lengthens the development time. Remember that often less than 25 percent of the time is
spent on actually writing programs. A great deal of the rest of the time is spent filling out forms and
drawing diagrams
The formality of the SDLC also causes problems with projects that are hard to define. SDLC
works best if the entire system can be accurately specified in the beginning. That is, users and managers
need to know exactly what the system should do long before the system is created. That is not a serious
problem with transaction-processing systems. However, consider the development of a complex decision
support system. Initially, the users may not know how the system can help. Only through working with
the system on actual problems will they spot errors and identify enhancements.
Although some large projects could never have been completed without SDLC, its rigidity tends
to make it difficult to develop many modern applications. Additionally, experience has shown that it has
not really solved the problems of projects being over budget and late. As a result of this criticism, many
people are searching for alternatives. One possibility is to keep the basic SDLC in place and use
technology to make it more efficient. Other suggestions have been to replace the entire process with a
more efficient development process, such as prototyping. Consider the assistance of technology first
Strengths Weaknesses
Control Increased development time
Increased development costs Systems must be
Monitor large projects
defined up front Rigidity
Hard to estimate costs, project overruns User
Detailed steps
input sometimes limited
Evaluate costs and completion targets
Documentation
Well-defined user input
Ease of maintenance
Development and design standards Tolerates changes
in MIS staffing
3.9 Summary
The evolution of system development Process Models has reflected the changing needs of
computer customers. As customers demanded faster results, more involvement in the development
process, and the inclusion of measures to determine risks and effectiveness, the methods for developing
systems changed. In addition, the software and hardware tools used in the industry changed (and continue
to change) substantially. Faster networks and hardware supported the use of smarter and faster operating
systems that paved the way for new languages and databases, and applications that were far more
powerful than any predecessors. Numerous changes in the system development environment
simultaneously spawned the development of more practical new Process Models and the demise of older
models that were no longer useful.
Points to Ponder
___________________________________
System Development Life Cycle ___________________________________
Obsolete solution
Planning
Problem to be solved
___________________________________
___________________________________
Related problem to be solved
___________________________________
Support Analysis
___________________________________
New solution
Implementation
error
to same problem ___________________________________
to be fixed
Problem analysis
and
Implemented
Solution requirements
solution
Implemen- Acceptable
Design
tation solution
___________________________________
FAST Methodology ___________________________________
System
___________________________________
1 Is Project worth pursuing?
Planning
Preliminary
Investigation
Est. Project Charter (scope, constraints,
participants ___________________________________
2
___________________________________
Understand problem
Problem
Set Objectives
Analysis ___________________________________
Define requirements
3 - Data ___________________________________
Requirements - Process
Analysis - Interface
4 Compare alternatives
Decision Select hardware &
Analysis software
___________________________________
FAST Methodology (cont) ___________________________________
Design implementation of ___________________________________
5 - Network
Design - Database ___________________________________
- Programming
___________________________________
6 Build & Test
Construction
___________________________________
7
___________________________________
Install, Train, Convert
Implementation
___________________________________
Mapping FAST to SDLC ___________________________________
1
Preliminary
Investigation ___________________________________
Obsolete solution Problem to be solved
Planning
2
___________________________________
Problem
7 Implemen- Acceptable
Design
tation solution
Implementation
6 5
Construction Design
___________________________________
Principles for Systems
___________________________________
Development
• Get owners and users involved ___________________________________
• Use a problem-solving approach ___________________________________
– Understand problem and its context
___________________________________
– Identify candidate solutions and select best
– Design/implement solution ___________________________________
– Evaluate
___________________________________
• Establish phases and activities
– Milestones
___________________________________
Principles for Systems
___________________________________
Development
• Establish standards ___________________________________
– For documenting
___________________________________
– For programming
• Justify systems as capital investments ___________________________________
• Don’t be afraid to cancel project ___________________________________
• Divide and conquer
– Understand sub-systems to learn systems ___________________________________
• Design systems for growth and change
Review Questions
Discussion Questions
1. What are some of the reasons organisations choose outsourcing as a method of system
development?
2. Why should a manager prepare a request for System Proposal for new Information Systems?
3. Name three factors that must be considered in determining whether an information system can
be created using a software package, prototyping, or user development. Suggest the benefits and
problems associated with each method.
4. What kinds of human factors can cause resistance to the System Implementation? Find out the
ways to overcome it.
Application Exercises
1. Find at least three B2B sites. Hint: you will probably need to use a magazine or newspaper
search. You will not have access to most of the sites. Identify the current status of the site and
whether it is a common means of conducting business in that industry, or merely a secondary
channel. Where possible, identify the costs and which participant pays them.
2. Choose a local retail firm and identify three models that could be used by the manager to run
the company. Which of these models is the most important to this firm? List the assumptions,
input and output variables, and processes involved for this model.