Module Number: 1 Module Heading: The Systems Development Environment
Module Number: 1 Module Heading: The Systems Development Environment
Module Number: 1
Introduction:
This module discusses the modern approach to systems analysis and design that
combines the different processes and data views of systems. It also explains the different
types of information systems and the information Systems Development Life Cycle
(SDLC).
Module Objectives:
Concept Development:
Few business careers present a greater opportunity for significant and visible
impact on business as do careers in systems development. Furthermore, analyzing and
designing information systems will give you the chance to understand organizations at a
depth and breadth that might take many more years to accomplish in other careers.
According to Money magazine, the position of systems analyst will be the best job in
America (Gilbert, 1994). Money predicted that over half a million new systems analyst
jobs would be created between 1994 and 2005, more than doubling the total number of
positions available in 1994. With such promising career prospects, combined with the
challenges and opportunities of dealing with the rapid advances in information
technologies, it is difficult to imagine a more exciting career choice than systems analysis
and design.
An important (but not the only) result of systems analysis and design is
application software; that is, software designed to support a specific organizational
function or process, such as inventory management, payroll, or market analysis. In
addition to application software, the total information system includes the hardware and
systems software on which the application software runs, documentation and training
materials, the specific job roles associated with the overall system, controls, and the
people who use the software along with their work methods. Although we will address all
these various dimensions of the overall system, we will emphasize application software
development—your primary responsibility as a systems analyst.
In the early years of computing, analysis and design was considered to be an art.
Now that the need for systems and software has become so great, people in industry and
academia have developed work methods that make analysis and design a disciplined
process (similar to processes followed in engineering fields). Our goal is to help you
develop the knowledge and skills needed to understand are various methodologies,
techniques, and tools that have been developed, tested, and widely used over the years to
assist people like you during systems analysis and design.
Techniques are particular processes that you, as an analyst, will follow to help
ensure that your work is well thought-out, complete, and comprehensible to others on
your project team. Techniques provide support for a wide range of tasks including
conducting thorough interviews to determine what your system should do, planning and
managing the activities in a systems development project, diagramming the system’s
logic, and designing the reports your system will generate.
Tools are typically computer programs that make it easy to use and benefit from
the techniques and to faithfully follow the guidelines of the overall development
Although many people in organizations are responsible for systems analysis and
design, in most organizations the systems analyst has the primary responsibility. When
you begin your career in systems development, you will most likely begin as a systems
analyst or as a programmer with some systems analyst responsibilities. The primary role
of a systems analyst is to study the problems and needs of an organization in order to
determine how people, methods, and information technology can best be combined to
bring about improvements in the organization. A systems analyst helps system users and
other business managers define their requirements for new or enhanced information
services. As such, a systems analyst is an agent of change and innovation.
In the rest of the module, we will examine the systems approach to studying
organizations and the systems approach to studying analysis and design. You will learn
about the dominant complementary approaches to systems development— the data and
process-oriented approaches. You will also identify the various people who develop
systems and the different types of systems they develop. The module ends with a
discussion of some of the methodologies, techniques, and tools created to support the
systems development process.
The database, which may be relational or object-oriented, and which may have
been developed using software from firms such as Oracle, Microsoft, or Ingres, resides
on the server. Alternatively, an organization may have decided to purchase their entire
enterprise-wide system from companies such as SAP AG or PowerSoft Inc. Enterprise-
wide systems are large, complex systems that consist of a series of independent system
modules. Developers assemble systems by choosing and implementing specific modules.
Today, many aspects of the organization’s systems have been developed to interact with
the Internet or with the firm’s intranet.
organizations. One principle is the distinction between data, data flows, and processing
logic, a distinction that will be considered in the next sections.
Information – Data that have been processed and presented in a form suitable for
human interpretation, often with the purpose of revealing trends or patterns.
Data Flow – Data in motion, moving from one place in a system to another.
Processing Logic – The steps by which data are transformed or moved and a
description of the events that trigger these steps.
Every information system consists of three key components that must be clearly
understood by anyone who analyzes and designs systems: data, data flows, and
processing logic.
Data are raw facts that describe people, objects, and events in an organization,
such as a customer’s account number, the number of boxes of cereal bought, and whether
someone is a Democrat or a Republican. Every information system depends on data in
order to produce information, which is processed data presented in a form suitable for
human interpretation. Systems developers must understand what kind of data a system
uses and where the data originate.
Data flows are groups of data that move and flow through a system and include a
description of the sources and destinations for each data flow. For example, a customer’s
account number may be captured when he or she uses a credit card to pay for a purchased
item. The account number may then be stored in a file within the system until needed to
compile a billing statement or prepare a mailing address for a sales circular. When
needed, the account number can be extracted from storage and used to complete a system
function. Figure 1-1 illustrates data flows with directional lines that connect rounded
rectangles which represent the processing steps that accept input data flows and produce
output data flows.
Processing logic, the third component, describes the steps in the transformation of
the data and the events that trigger these steps. For example, processing logic in a credit
card application will explain how to compute available credit given the current credit
balance and the amount of the current transaction. Processing logic will also indicate that
the computation of the new credit balance will occur when a clerk presses a key on a
credit card scanner to confirm the sales transaction. Figure 1-1, using an English-like
language, illustrates the rules for calculating an employee’s pay and the event (receipt of
a new hours-worked value) that causes this calculation to be made.
Figure 1-1 Differences among data, data flow, and processing logic
Traditionally, an information system’s design was based upon what the system
was supposed to do, such as billing and inventory control: the focus was on output and
processing logic. Although the data the system used as input were important, data were
subordinate to the application. The assumption was that we could anticipate all outputs
and the proper processing steps with their need for data. Therefore, we could easily
derive all data requirements from all known system deliverables. Furthermore, each
application contained its own files and data storage capacity. The data had to match the
specifications established in each application, and each application was considered
separately.
Data processing managers soon realized that there were problems with analyzing
and designing systems using only a process-oriented approach. One result was the
existence of several specialized files of data, each locked within different applications
and programs. Many of the files in these different applications contained the same data
elements (see Figure 1-2a). When a single data element changed, it had to be changed in
each of these files. If, for example, such a system were in effect at your university and
your address changed, it would have to be changed in the files of the library, the
registrar’s office, the financial aid office, and every other place your address was stored.
It also became difficult to combine specialized data files. Even if the files contained the
same data elements, each file might use a different name and format for the data. Since it
was important to standardize how data elements were represented, data processing
managers gradually came to separate the application programs and the data these
programs used.
Project
Project
Payroll
Payroll Management
Management
System
System Systems
Systems
Personnel
Personnel Personnel
Personnel Projects
Projects
Tax
Tax Data
Data Data
Data Data
Data Data
Data
Personnel
Tax Data Data Projects Data
Table 1-1 highlights some of the key distinctions between process-oriented and
the data-oriented approaches to systems development. Although we highlight these two
approaches as separate competing orientations, we do so only to emphasize the
differences and unique contributions to systems analysis and design to give you a sense
of the historical evolution of systems analysis and design methodologies. As either
approach is, by itself, inadequate, this module will cover the techniques and tools you
will need to analyze and design both process and data aspects of systems.
The central point of application independence is that data and applications arc
separate.
For the data-oriented approach to be effective, however, another change in the system
design is needed: Organizations that have centrally managed repositories of
organizational data must design new applications to work with existing databases.
Organizations that do not have centrally managed repositories of organizational data must
design databases that will support both current and future applications.
In an organization that develops its own information systems internally, there are
several types of jobs involved. In medium to large organizations, there is usually a
separate Information Systems (IS) department. Depending on how the organization is set
up, the IS department may be a relatively independent unit, reporting to the organization’s
top manager. Alternatively, the IS department may be part of another functional
department1 such as Finance, or there may even be an IS department in several major
business units. In any of these cases, the manager of an IS department will be involved in
systems development. If the department is large enough, there will be a separate division
for systems development, which would be homebase for systems analysts and another
division for programming, where programmers would be based (See Figure 1-3) . The
people for whom the systems are designed are located in the functional departments and
are referred to as users or end users.
A good team has certain characteristics, some that are a result of how the group is
assembled and others that must be acquired through effort on the part of team members
(See Table 1-2). A good team is diverse and tolerant of diversity:
• A diverse team has representation from all the different groups interested in a
system, and the representation of these groups on the team increases the likelihood of
acceptance of the changes a new system will cause.
• Diversity exposes team members to new and different ideas, ideas they might
never think of were all team members from the same background, with the same skills
and goals.
• New and different ideas can help a team generate better solutions to its
problems and defend the course of action it chooses.
• Team members must be able to entertain new ideas without being overly
critical, without dismissing new ideas out of hand simply because they are new.
In order to work well together, a good team must strive to communicate clearly
and completely with its members. Team members will communicate more effectively if
they trust each other. Trust, in turn, is built on mutual respect and an ability to place one’s
own goals and views secondary to the goals and views of the group. To help ensure that a
team will work well together, management needs to develop a reward structure that
promotes shared responsibility
and accountability within the team. In addition to rewards for individual efforts, team
members must be rewarded by IS managers for their work as members of an effective
work unit.
Team success depends not only on how a team is assembled or the efforts of the
group but also on the management of the team. Reward systems are one part of good
team management. Effective project management is another key element of successful
teams. Project management includes devising a feasible and realistic work plan and
schedule, monitoring progress against this schedule, coordinating the project with its
sponsors, allocating resources to the project, and sometimes even deciding whether and
when a project should be terminated before completing the system.
The characteristics of each systems analysis and design project will dictate which
types of individuals should be on the project team. In general, those involved in systems
development include IS managers, systems analysts, programmers, end users, and
business managers as well as additional IS managers, technicians, and specialists. We will
now preview the role of each of these players and other stakeholders in systems
development.
Systems analysts are the key individuals in the systems development process. To
succeed as a systems analyst, you will need to develop four skills: analytical, technical,
managerial, and interpersonal. Analytical skills enable you to understand the organization
and its functions, to identify opportunities and problems, and to analyze and solve
problems. One of the most important analytical skills you can develop is systems
thinking, or the ability to see organizations and information systems as systems. Systems
thinking provides a framework from which to see the important relationships among
information systems, the organizations they exist in, and the environment in which the
organizations themselves exist. Technical skills help you understand the potential and the
limitations of information technology. As an analyst, you must be able to envision an
information system that will help users solve problems and that will guide the system’s
design and development. You must also be able to work with programming languages,
various operating systems, and computer hardware platforms. Management skills help
you manage projects, resources, risk, and change. Interpersonal skills help you work with
end users as well as with other analysts and programmers. As a systems analyst, you will
play a major role as a liaison among users, programmers, and other systems
professionals. Effective written and oral communication, including competence in leading
meetings, interviewing, and listening, is a key skill analysts must master. Effective
analysts successfully combine these four skills, as Figure 1-4, a typical advertisement for
a systems analyst position, illustrates.
SYSTEMS ANALYST
Distribution Center
We are the world’s leading manufacturer of women’s intimate apparel products.
Our organization in the Far East has an opening for a Systems Analyst.
Requirements:
The successful candidate will provide primary interface for all user problems, answer
technical questions and requests within the applications development group; work with
user areas to establish priorities; and provide recommendations and directions for
process improvement through automation; skills in an Asian language is a plus.
As with any profession, becoming a good systems analyst takes years of study and
experience. Once hired by an organization, you will generally be trained in the
development methodology used by the organization. There is usually a career path for
systems analysts that allows them to gain experience and advance into project
management and further IS or business management. Many academic IS departments
train their undergraduate students to be systems analysts. As your career progresses, you
may get the chance to become a manager inside or outside the IS area. In some
organizations, you can opt to follow a technical career advancement ladder. As an analyst,
you will become aware of a consistent set of professional practices, many of which are
governed by a professional code of ethics, similar to other professions
Programmers convert the system specifications given to them by the analysts into
instructions the computer can understand. Writing a computer program is sometimes
called writing code, or coding. Programmers also write program documentation and
programs for testing systems. For many years, programming was considered an art.
However, computer scientists found that code could be improved if it were structured, so
they introduced what is now called structured programming (Bohm and Jacopini, 1966).
In structured programming, all computing instructions can be represented through the use
of three simple structures: sequence, repetition, and selection. Becoming a skilled
programmer takes years of training and experience. Many computer information systems
undergraduates begin work as programmers or programmer/analysts.
use the same computer at the same time, it became technically possible for end users to
develop their own systems. As education and experience made end users aware of these
technologies and they became skillful in using them, many users, impatient for their
requested projects to be scheduled, developed their own applications. Consequently, a
significant role for systems analysts and other IS professionals is to help end users
develop their own systems, which are often stand-alone systems or data distribution
systems designed to enhance an existing system developed by IS professionals.
available to assist end users and to answer questions or perform more complicated
systems development work whenever end users have difficulties. Finally, IS professionals
must continue to maintain the data capture and transfer applications that manage the
databases from which end
users extract the data needed in the systems they build.
Up until now we have been talking about information systems in generic terms,
but there are actually several different types or classes of information systems. In general,
these types are distinguished from each other on the basis of what
the system does or by the technology used to construct the system. As a systems analyst,
part of your job will be to determine which kind of system will best address the
organizational problem or opportunity on which you are focusing. In addition, different
classes of systems may require different methodologies, techniques, and tools for
development.
From your prior studies and experiences with information systems, you are
probably aware of at least four classes of information systems:
• Expert systems
The analysis and design of a TPS means focusing on the firm’s current procedures
for processing transactions, whether those procedures are manual or automated. The
focus on current procedures implies a careful tracking of data capture, flow, processing,
and output. The goal of TPS development is to improve transaction processing by
speeding it up, using fewer people,
improving efficiency and accuracy, integrating it with other organizational information
systems, or providing information not previously available.
A management information system (MIS) takes the relatively raw data available
through a TPS and converts them into a meaningful aggregated form that managers need
to conduct their responsibilities. Developing an MIS calls for a good understanding of
what kind of information managers require and how managers use information in their
jobs. Sometimes managers themselves may not know precisely what they need or how
they will use information. Thus, the analyst must also develop a good understanding of
the business and the transaction processing systems that provide data for an MIS.
Management information systems often require data from several transaction
processing systems (for example, customer order processing, raw material purchasing,
and employee timekeeping). Development of an MIS can, therefore, benefit from a data-
orientation, in which data are considered an organization resource separate from the TPS
in which they are captured. Because it is important to be able to draw on data from
various subject areas, developing a comprehensive and accurate model of data is essential
in building an MIS.
The systems analysis and design for a DSS often concentrates on the three main
DSS components: database, model base, and user dialogue. As with an MIS, a data
orientation is most often used for understanding user requirements. In addition, the
systems analysis and design project will carefully document the mathematical rules that
define inter-relationships among different data. These relationships are used to predict
future data or to find the best solutions to decision problems. Thus, decision logic must
be carefully understood and documented. Also, since a decision maker typically interacts
with a DSS, the design of easy-to-use yet thorough user dialogues and screens is
important. Because a DSS often deals with situations not encountered every day or
situations that can be handled in many different ways, there can be considerable
uncertainty on what a DSS should actually do. Thus, systems developers often use
methods that prototype the system and iteratively and rapidly redevelop the system based
on trial use.
The development of a DSS, hence, often does not follow as formal a project plan as is
done for a TI’S or MIS, since the software deliverable is more uncertain at the beginning
of the project.
Expert Systems
Different from any of the other classes of systems we have discussed so far, an
expert system (ES) attempts to codify and manipulate knowledge rather than information.
if-then-else rules or other knowledge representation forms describe the way an expert
would approach situations in a specific domain of problems. Typically, users
communicate with an ES through an interactive dialogue. The ES asks questions (that an
expert would ask) and the end user supplies the answers. The answers are then used to
determine which rules apply and the ES provides a recommendation based on the rules.
Many information systems you build or maintain will contain aspects of each of
the four major types of information systems. Thus, as a systems analyst, you will likely
employ specific methodologies, techniques, and tools associated with each of the four
information system types. Table 1-3 summarizes the general characteristics and
development methods for each type.
of detail.
Although any life cycle appears at first glance to be a sequentially ordered set of
phases, it actually is not (See Figure 1-5). The specific steps and their sequence are meant
to be adapted as required for a project, consistent with management approaches. For
example, in any given SOLC phase, the project can return to an earlier phase if necessary.
Similarly, if a commercial product does not perform well just after its introduction, it may
be temporarily removed from the market and improved before being re-introduced. In
the systems development life cycle, it is also possible to complete some activities in one
phase in parallel with some activities of another phase. Sometimes the life cycle is
iterative; that is, phases are repeated as required until an acceptable system is found. Such
an iterative approach is especially characteristic of rapid application development
methods, such as prototyping, which we introduce later in the module (See Figure 1-6).
Some people consider the life cycle to be a spiral, in which we constantly cycle through
the phases at different levels of detail (See Figure 1-7).
The life cycle can also be thought of as a circular process in which the end of the
useful life of one system leads to the beginning of another project that will develop a new
version or replace an existing system altogether. However conceived, the systems
development life cycle used in an organization is an orderly set of activities conducted
and planned for each development project. The skills required of a systems analyst apply
to all life cycle models. Software is the most obvious end product of the life cycle; other
essential outputs include documentation about the system and how it was developed as
well as training for users.
Every medium to large corporation and every custom software producer will have
its own specific, detailed life cycle or systems development methodology in place (See
Figure 1-8). Even if a particular methodology does not look like a cycle, you will
probably discover that many of the SDLC steps are performed and SDLC techniques and
tools are used. Learning about systems analysis and design from the life cycle approach
will serve you well no matter which systems development methodology you use.
When you begin your first job, you are likely to spend several weeks or months
learning your organization’s SDLC and its associated methodologies, techniques, arid
tools. The model resembles a staircase with arrows connecting each step to the step
before it and to the step after it. This representation of the SDLC is sometimes referred to
as the waterfall model. We use this SDLC as one example of a methodology but, more
importantly, as a way to arrange the topics of systems analysis and design. Thus, what
you learn in this book you can apply to almost any life cycle you might follow. As we
describe this SDLC throughout the book, you will see that each phase has specific
outcomes and deliverables that feed important information to other phases. At the end of
each phase (and sometimes within phases for intermediate steps), a systems development
project reaches a milestone and, as deliverables are produced, they are often reviewed by
parties outside the project team. In the rest of this section we provide a brief overview of
each SDLC phase. At the end of the section we summarize this discussion in a table
listing the main deliverables or outputs from each SDLC phase.
The first phase in the SDLC is called project identification and selection. In this
phase, someone identifies the need for a new or enhanced system. In larger organizations,
this recognition may be part of a corporate and systems planning process. Information
needs of the organization as a whole are examined, and projects to meet these needs are
proactively identified. The organization’s information system needs may result from
requests to deal with problems in current procedures, from the desire to perform
additional tasks, or from the realization that information technology could be used to
capitalize on an existing opportunity. These needs can then be prioritized and translated
into a plan for the IS department, including a schedule for developing new major systems.
In smaller organizations (as well as in large ones), determination of which systems to
develop may be affected by ad hoc user requests submitted as the need for new or
enhanced systems arises as well as from a formalized information planning process. In
either case, during project identification and selection, an organization determines
whether or not resources should be devoted to the development or enhancement of each
information system under consideration. The outcome of the project identification and
The second phase is project initiation and planning. The two major activities in
this phase are the formal, yet still preliminary, investigation of the system problem or
opportunity at hand and the presentation of reasons why the system should or should not
be developed by the organization. A critical step at this point is determining the scope of
the proposed system. The project leader and initial team of systems analysts also produce
a specific plan for the proposed project which the team will follow using the remaining
SDLC steps. This baseline project plan customizes the standardized SDLC and specifies
the time and resources needed for its execution. The formal definition of a project is
based on the likelihood that the organization’s IS department is able to develop a system
that will solve the problem or exploit the opportunity and determine
whether the costs of developing the system outweigh the benefits it could provide. The
final presentation of the business case for proceeding with the subsequent project phases
is usually made by the project leader and other team members to someone in management
or to a special management committee with the job of deciding which projects the
organization will undertake.
The next phase is analysis. During this phase, the analyst thoroughly studies the
organization’s current procedures and the information systems used to perform
organizational tasks. Analysis has several sub-phases. The first is requirements
determination. in this sub-phase, you and other analysts work with users to determine
what the users want from a proposed system. This sub-phase usually involves a careful
study of any current systems, manual and computerized, that might be replaced or
enhanced as part of this project. Next, you study the requirements and structure them
according to their inter-relationships and eliminate any redundancies. Third, you generate
alternative initial designs to match the requirements. Then you compare these alternatives
to determine which best meets the requirements within the cost, labor, and technical
levels the organization is willing to commit to the development process. The output of the
analysis phase is a description of (but not a detailed design for) the alternative solution
recommended by the analysis team. Once the recommendation is accepted by those with
funding authority, you can begin to make plans to acquire any hardware and system
software necessary to build or operate the system as proposed.
The fourth and fifth phases are devoted to designing the new or enhanced system.
During design, you and the other analysts convert the description of the recommended
alternative solution into logical and then physical system specifications. You must design
all aspects of the
system from input and output screens to reports, databases, and computer processes.
Design occurs in two SDLC phases: logical design and physical design.
Logical design is not tied to any specific hardware and systems software
platform. Theoretically, the system could be implemented on any hardware and systems
software. The idea is to make sure that the system functions as intended. Logical design
concentrates on the business aspects of the system (which is why some life cycles call
this phase business design).
In physical design, you turn the logical design into physical, or technical,
specifications. For example, you must convert diagrams that map the origin, flow, and
processing of data in a system into a structured systems design that can then be broken
down into smaller and smaller units for conversion to instructions written in a
programming language. You design the various parts of the system to perform the
physical operations necessary to facilitate data capture, processing, and information
output. During physical design, the analyst team decides which programming languages
the computer instructions will be written in, which database systems and file structures
will be used for the data, and which hardware platform, operating system, and network
environment the system will run under. These decisions finalize the hardware and
software plans initiated at the end of the analysis phase. Now you can proceed with
acquiring any new technology not already present in the organization. The final product
of the design phase is the physical system specifications in a form ready to be turned over
to programmers and other system builders for construction.
The physical system specifications are turned over to programmers as the first
part of the implementation phase. During implementation, you turn system
specifications into a working system that is tested and then put into use. Implementation
includes coding, testing, and
installation. During coding, programmers write the programs that make up the system.
During testing, programmers and analysts test individual programs and the entire system
in order to find and correct errors. During installation, the new system becomes a part of
the daily activities of the organization. Application software is installed, or loaded, on
existing or new hardware and users are introduced to the new system and trained. Begin
planning for both testing and installation early as the project initiation and planning
phase, since both testing and installation require extensive analysis in order to develop
exactly the right approach.
Implementation activities also include initial user support such as the finalization
of documentation, training programs, and ongoing user assistance. Note that
documentation and training programs are finalized during implementation;
documentation is produced throughout the life cycle, and training (and education) occur
from the inception of a project. Implementation can continue for as long as the system
exists since ongoing user support is also part of implementation. Despite the best efforts
of analysts, managers, and programmers, however, installation is not always a simple
process. Many well-designed systems have failed because the installation process was
faulty. Our point is that even a well-designed system can fail if implementation is not
well managed. Since the management of implementation is usually done by the project
team, we stress implementation issues throughout this book.
problems with how it works and often think of better ways to perform its functions. Also,
the organization’s needs with respect to the system change over time. In maintenance,
programmers make the changes that users ask for and modify the system to reflect
changing business conditions. These changes are necessary to keep the system running
and useful. In a sense, maintenance is not a separate phase but a repetition of the other
life cycle phases required to study and implement the needed changes. Thus, you might
think of maintenance as an overlay to the life cycle rather than a separate phase. The
amount of time and effort devoted to maintenance depends a great deal on the
performance of the previous phases of the life cycle. There inevitably comes a time,
however, when an information system is no longer performing as desired, when
maintenance costs become prohibitive, or when an organization’s needs have changed
substantially. Such problems indicate that it is time to begin designing the system’s
replacement, thereby completing the loop and starting the life cycle over again. Often the
distinction between major maintenance and new development is not clear, which is
another reason maintenance often resembles the life cycle itself.
Throughout the systems development life cycle, the systems development project
itself needs to be carefully planned and managed. The larger the systems project, the
greater the need for project management. Several project management techniques have
been developed in this century and many have been made more useful through
automation. Module 2 contains a more detailed treatment of project planning and
management techniques. Next, we will discuss some of the criticisms of the systems
development life cycle and alternatives developed to address those criticisms.
There are several criticisms of the traditional life cycle approach to systems
development as followed exactly as outlined in Figure 1-5. One criticism relates to the
way the life cycle is organized. Although we know that phases of the life cycle can
sometimes overlap, traditionally one phase ended and another began once a milestone
had been reached. The milestone usually took the form of some deliverable or pre-
specified output from the phase. For example, the design deliverable is the set of detailed
physical design specifications. Once the milestone had been reached and the new phase
initiated, it became difficult to go back. Even though business conditions continued to
change during the development process and analysts were pressured by users and others
to alter the design to match changing conditions, it was necessary for the analysts to
freeze the design at a particular point and go forward. The enormous amount of effort and
time necessary to implement a specific design meant that it would be very expensive to
make changes in a system once it was developed. There were no CASE tools, no code
generators, and no fourth generation languages when the SDLC was popularized in the
1960s. If the design was not frozen, the system would never be completed, as
programmers would no sooner be done with coding one design than they would receive
requests for major changes. The traditional life cycle, then, had the property of locking in
users to requirements that had been previously determined, even though those
requirements might have changed.
Another criticism of the way the traditional life cycle is often used is that it tends
to focus too little time on good analysis and design. The result is a system that does not
match users’ needs and one that requires extensive maintenance, unnecessarily increasing
development costs. According to some estimates, maintenance costs account for as much
as 70 percent of the system development costs (Aktas, 1987). Given these problems,
people working in systems development began to look for better ways to conduct systems
analysis and design.
Yourdon & Constantine, 1979). The life cycle used in this module is faithful to these
structured principles.
A more recent approach to systems development that is becoming more and more
popular is object-oriented analysis and design (OOAD) (we elaborate on this approach on
Module 7). OOAD is often called the third approach to systems development, after the
process-oriented and data-oriented approaches. The object-oriented approach combines
data and processes (call methods) into single entities called objects. Objects usually
correspond to the real things an information system deals with, such as customers,
suppliers, contracts, and rental agreements. Putting data and processes together in one
place recognizes the fact that there are a limited number of operations for any given data
structure. Putting data and processes together makes sense even though typical systems
development keeps data and processes independent of each other. The goal of OOAD is
to make system elements more reusable, thus improving system quality and the
productivity of systems analysis and design.
As you might expect, you need a computer programming language that can create
and manipulate objects and classes of objects in order to create object-oriented
information systems. Several object-oriented programming languages have been created
(e.g., C++, Eiffel, and ObjectPAL—for Paradox for Windows). In fact, object-oriented
languages were developed first and object-oriented analysis and design techniques
followed. Because OOAD is still relatively new, there is little consensus or
standardization among the many OOAD techniques available. In general, the primary
task of object-oriented analysis is identifying objects, defining their structure and
behavior, and defining their relationships. The primary tasks of object-oriented design are
modeling the details of the objects’ behavior and communication with other objects so
that system requirements are met and re-examining and redefining objects to better take
advantage of inheritance and other benefits of object-orientation.
In the continuing effort to improve the systems analysis and design process,
several different approaches have been developed. We will describe the more important
alternatives in more detail in later modules. Attempts to make system development less of
an art and more of a science are usually referred to as systems engineering or software
engineering. As the names indicate, rigorous engineering techniques are applied to
systems development. A very influential practice borrowed from engineering is called
prototyping. We will discuss prototyping next, followed by introductions to Joint
Application Design and Participatory Design.
Prototyping
Using prototyping as a development technique (See Figure 1-9), the analyst works
with users to determine the initial or basic requirements for the system. The analyst then
quickly builds a prototype. When the prototype is completed, the users work with it and
tell the analyst what they like and do not like about it. The analyst uses this feedback to
improve the prototype and takes the new version back to the users. This iterative process
continues until the users are relatively satisfied with what they have seen. Two key
advantages of the prototyping technique are the large extent
to which prototyping involves the user in analysis and design and its ability to capture
requirements in concrete, rather than verbal or abstract, form. In addition to being used
stand-alone, prototyping may also be used to augment the SDLC. For example, a
prototype of the final system may be developed early in analysis to help the analysts
identify what users want. Then the final system is developed based on the specifications
of the prototype.
Figure 1-9 The Prototyping Methodology (Adapted from “Prototyping: The New
Paradigm for Systems Development,” by Naumann and Jenkins)
Participatory Design
Other efforts to improve the system development process have taken advantage of
the benefits offered by computing technology itself. The result has been the creation and
fairly widespread use of computer-aided software engineering or CASE tools. CASE
tools have been developed for internal use and for sale by several leading firms, including
Intersolv (ExceleratorTM), Oracle (Designer/2000), and Sterling Software (COOL:
Stuff), to name only a few.
CASE tools are built around a central repository for system descriptions and
specifications, including information about data names, format, uses, and locations. The
idea of a central repository of information about the project is not new—the manual form
of such a repository is called a project dictionary or workbook. The difference is that
CASE tools automate the repository for easier updating and for consistency. CASE tools
also include diagramming tools for data flow diagrams and other graphical aids, screen
and report design tools, and other special-purpose tools. CASE helps programmers and
analysts do their jobs more efficiently and more effectively by automating routine tasks.
Evaluation: