CSC 411 - System Analysis and Design
CSC 411 - System Analysis and Design
COURSE CONTENT
System Concept; System Development Life Cycle
System Analysis: Fact gathering Techniques, data flow diagrams, Process description data
modeling.
System Design: Structure Charts, form designs, security, automated Tools for design. UML
modelling
MODULE ONE
This materials provides a basic understanding of system characteristics, system design, and
its development processes. It is a good introductory guide that provides an overview of all
the concepts necessary to build a system.
Systems analysis
Systems design
1|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
System analysis is conducted for the purpose of studying a system or its parts in order to
identify its objectives. It is a problem solving technique that improves the system and
ensures that all the components of the system work efficiently to accomplish their purpose.
Systems
Processes
Technology
The word System is derived from Greek word Systema, which means an organized
relationship between any set of components to achieve some common cause or objective.
A system is “an orderly grouping of interdependent components linked together according to a plan
to achieve a specific goal.”
Constraints of a System
A system must have three basic constraints −
A system must have some structure and behavior which is designed to achieve a
predefined objective.
Interconnectivity and interdependence must exist among the system components.
The objectives of the organization have a higher priority than the objectives of its
subsystems.
For example, traffic management system, payroll system, automatic library system, human
resources information system.
2|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
1.2 Properties of a System
A system has the following properties −
Organization
Organization implies structure and order. It is the arrangement of components that helps to
achieve predetermined objectives.
Interaction
It is defined by the manner in which the components operate with each other.
Interdependence
Interdependence means how the components of a system depend on one another. For
proper functioning, the components are coordinated and linked together according to a
specified plan. The output of one subsystem is the required by other subsystem as input.
Integration
Integration is concerned with how a system components are connected together. It means
that the parts of the system work together within the system even if each part performs a
unique function.
Central Objective
The objective of system must be central. It may be real or stated. It is not uncommon for an
organization to state an objective and operate to achieve another.
The users must know the main objective of a computer application early in the analysis for
a successful design and conversion.
3|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
1.3 Elements of a System
The following diagram shows the elements of a system −
Control
The control element guides the system.
It is the decision–making subsystem that controls the pattern of activities governing
input, processing, and output.
The behavior of a computer System is controlled by the Operating System and
software. In order to keep system in balance, what and how much input is needed is
determined by Output Specifications.
Feedback
Feedback provides the control in a dynamic system.
Positive feedback is routine in nature that encourages the performance of the system.
Negative feedback is informational in nature that provides the controller with
information for action.
4|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
Environment
The environment is the “supersystem” within which an organization operates.
It is the source of external elements that strike on the system.
It determines how a system must function. For example, vendors and competitors of
organization’s environment, may provide constraints that affect the actual
performance of the business.
Boundaries and Interface
A system should be defined by its boundaries. Boundaries are the limits that identify
its components, processes, and interrelationship when it interfaces with another
system.
Each system has boundaries that determine its sphere of influence and control.
The knowledge of the boundaries of a given system is crucial in determining the
nature of its interface with other systems for successful design.
5|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
1.4.5 Natural and Manufactured System
Natural systems are created by the nature. For example, Solar system, seasonal
system.
Manufactured System is the man-made system. For example, Rockets, dams, trains.
1.4.6 Deterministic or Probabilistic System
Deterministic system operates in a predictable manner and the interaction between
system components is known with certainty. For example, two molecules of
hydrogen and one molecule of oxygen makes water.
Probabilistic System shows uncertain behavior. The exact output is not known. For
example, Weather forecasting, mail delivery.
1.4.7 Social, Human-Machine, Machine System
Social System is made up of people. For example, social clubs, societies.
In Human-Machine System, both human and machines are involved to perform a
particular task. For example, Computer programming.
Machine System is where human interference is neglected. All the tasks are
performed by the machine. For example, an autonomous robot.
1.4.8 Man–Made Information Systems
It is an interconnected set of information resources to manage data for particular
organization, under Direct Management Control (DMC).
This system includes hardware, software, communication, data, and application for
producing information according to the need of an organization.
Man-made information systems are divided into three types −
Formal Information System − It is based on the flow of information in the form of
memos, instructions, etc., from top level to lower levels of management.
Informal Information System − This is employee based system which solves the
day to day work related problems.
Computer Based System − This system is directly dependent on the computer for
managing business applications. For example, automatic library system, railway
reservation system, banking system, etc.
6|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
A flow system model shows the orderly flow of the material, energy, and
information that hold the system together.
Program Evaluation and Review Technique (PERT), for example, is used to abstract
a real world system in model form.
1.5.3 Static System Models
They represent one pair of relationships such as activity–time or cost–quantity.
The Gantt chart, for example, gives a static picture of an activity-time relationship.
1.5.4 Dynamic System Models
Business organizations are dynamic systems. A dynamic model approximates the
type of organization or application that analysts deal with.
It shows an ongoing, constantly changing status of the system. It consists of −
o Inputs that enter the system
o The processor through which transformation takes place
o The program(s) required for processing
o The output(s) that result from processing.
o
7|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
1.6.1 Strategic Information
This information is required by topmost management for long range planning
policies for next few years. For example, trends in revenues, financial investment,
and human resources, and population growth.
This type of information is achieved with the aid of Decision Support System (DSS).
1.6.2 Managerial Information
This type of Information is required by middle management for short and
intermediate range planning which is in terms of months. For example, sales
analysis, cash flow projection, and annual financial statements.
It is achieved with the aid of Management Information Systems (MIS).
1.6.3 Operational information
This type of information is required by low management for daily and short term
planning to enforce day-to-day operational activities. For example, keeping employee
attendance records, overdue purchase orders, and current stocks available.
It is achieved with the aid of Data Processing Systems (DPS).
8|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
MODULE TWO
Systems Development
Process
2.1 System Development Life Cycle - (SDLC)
This chapter covers the following topics:
An information system consists of several components (or modules) all working together to
accomplish the system’s objectives. The modules interact with one another to perform the
various business functions. For example, the output from one module may become the
9|Page – CSC 411 – SYS TEM ANALYS IS & DES IGN - FOA
input to another module. Each module does a specific task or a set of related tasks. It may
also use data stores (files) to store and/or retrieve information.
Information system
Boundary
Hardware, Software,
Inputs Tools, Procedures, Outputs
Standards, Data,
People
Preliminary
investigation
Analysis and
Maintenance requirements
SDLC capture
Implementation Design
requirements
design
implementation
testing
deployment
operations
maintenance
PRELIMINARY
INVESTIGATION
11 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
2.2.1 Preliminary Investigation
In this phase, the system analyst (with the cooperation of the customer) investigates
the current or existing system to determine if the system is adequate (perhaps only
needing some minor modifications) or there is a need for a new system.
If the analyst is convinced that there is a need for a new system then this phase will
look into its feasibility – whether it is feasible from the financial, technical, social
and legal points of view.
If the proposed system is not feasible, it is dropped and the system development
stops. However, if the analyst feels that there is definitely a need for the system and
that the system is feasible, system development moves on to the next phase.
To get detailed information about the system, the analyst will typically ask probing
questions that start with what, why, when, where, who and how? The analyst
analyses the responses to these questions to determine the bottlenecks or problems
inherent in the system.
To analyze the system, the analyst may use techniques such as Data Flow Diagram
(DFD) and Entity-Relationship Diagram (ERD). These techniques will be discussed
later in this material.
A Data Flow Diagram (DFD) is used to present this information graphically. It uses
the following four symbols:
Data flow
12 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Input / Output
Process
Storage
Entity-Relationship Diagram (ERD) – Relate the functional enties and dfine the
relationship between them
One way to analyze the system is to look at all the system modules and for each
module, determine what (input) goes into that module, what processing
13 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
(transformation) takes place, what data stores (files) are used, and where the output
goes.
The analysis will reveal shortcomings in the existing system in meeting current and
future requirements.
Once the analysis is completed, the analyst (in consultation with the customer)
validates and establishes the system requirements.
Functional requirements. This refers to functional input and output items (e.g., data
entry and validation, computations, queries and reports) that the client needs in order to
do business. The client will not accept the new system unless it includes all these
functions.
The final system will be evaluated against these requirements. All the functional
requirements as well as all or most of non-functional requirements must be present
in the new system before the client will accept the system.
A system that does not meet the requirements will be considered a failure.
System design is concerned with how the final system will work.
It includes process design, database design, interface design and network design as
shown below.
14 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Process Database Interface Network
There are several parts in system design: process design, database design, interface
design and network design.
System design includes all these parts except possibly the last one, which is not
needed for a stand-alone system.
In this approach, the system (or application) is decomposed (or broken up) into
several high-level modules. Then each of these high-level modules is further broken
up into lower-level modules, and so on.
This is done so that each module is small and manageable, and does a specific task
(or a set of related tasks).
A Structure Chart (SC) is typically used to show the hierarchy of the modules in a
system. The higher-level modules describe higher-level functionality while the
lower-level modules describe the detailed functionality. The higher-level modules
invoke or call the lower-level modules to perform needed tasks.
A system must also show where the sources of data, who or which system will
eventually receive the output, how the data flows through the system (processes),
what each process does to the data and what files or data stores it will use.
The logic for each process must also be included. This usually takes the form of Structured
English. Each process describes the input it receives (from the data source or from other
processes), the processing it does, the files it uses, and the output it sends to the destination
or other processes.
Process design thus captures the functionalities of a system. Eventually process design
leads to the production of code.
15 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
(ii). Database Design
Database design is concerned with identifying the business entities relevant to the
application, and how they are related to one another (i.e., the business rules). It is also
concerned with identifying the attributes needed for each of the entities.
The entities are then converted to a set of a set of tables and their relationships (one-
to-one, one-to-many, etc) established - RM. If the tables are not in normal form, they
are normalized so that they are free from insertion, deletion and update anomalies.
(Data normalization will be discussed in detail later.).
The main concern in database design is to ensure that the database is in normal form.
However, if performance is critical, there may be a need to de-normalize the
database.
Databases must be designed so that they maintain entity integrity, domain integrity
and referential integrity.
Usability is the main concern in interface design. Users must find the interface simple and
easy to use. It must appeal to users, easy to navigate, minimize errors, easy to undo, is
consistent, and causes less strain to the body.
16 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
2.2.4 Implementation
Implementation is concerned with writing code for the various modules and then testing them for
errors. A suitable language (e.g., Visual Basic, Visual C++, Java) is selected and code is written for
each of the modules. The code is written according to accepted coding standards.
Testing is usually performed in stages. First, each module is tested using appropriate test data. This
is called module or unit testing. There are several approaches available for testing modules such as
statement testing, branch testing and path testing.
After all the modules have been successfully tested individually, they are integrated and tested
again to detect any errors that may occur while linking the modules. This is called integration
testing. Again, there are several approaches available to perform integration testing such as bottom-
up, top-down, or a combination of both.
After the integration test is complete, the system is also tested to see if it meets all the functional and
performance requirements. These are called functional testing and performance testing.
After the database has been designed and code for the modules have been written and tested, the
system is ready for installation. The current system (if any) is replaced with the new system. This
may be done using the parallel, phased, pilot or direct approach.
2.2.5 Maintenance
Although maintenance is not part of system development, it is nevertheless an important phase in
the system development lifecycle (SDLC). Studies have shown that about 60 to 70 percent of all IT
budget goes to maintenance.
Systems undergo changes for several reasons such as errors in the system (not discovered during
testing), new business requirements, need for performance improvement or changes in the
environment. So the system must be modified to accommodate these requirements as and when
17 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
needed throughout its life. This is called system maintenance. That means adequate resources must
be committed to maintain the system until the system becomes obsolete and a new system is built.
SUMMARY
18 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Implementation
Implement the design into source code through coding.
Combine all the modules together into training environment that detects errors and
defects.
A test report which contains errors is prepared through test plan that includes test
related tasks such as test case generation, testing criteria, and resource allocation for
testing.
Integrate the information system into its environment and install the new system.
Maintenance/Support
Include all the activities such as phone support or physical on-site support for users
that is required once the system is installing.
Implement the changes that software might undergo over a period of time, or
implement any new requirements after the software is deployed at the customer
location.
It also includes handling the residual errors and resolve any issues that may exist in
the system even after the testing phase.
Maintenance and support may be needed for a longer time for large systems and for
a short time for smaller systems.
19 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Life Cycle of System Analysis and Design
The following diagram shows the complete life cycle of the system during analysis and
design phase.
20 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
MODULE THREE
DESIGN STRATEGIES
It is also referred to as the top-down strategy, uses the modular approach to develop
the design of a system.
21 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
In this technique, the highest-level module or main module for developing the
software is identified. The main module is divided into several smaller and simpler
submodules or segments based on the task performed by each module. Then, each
submodule is further subdivided into several submodules of next lower level. This
process of dividing each module into several submodules continues until the lowest
level modules, which cannot be further subdivided, are not identified.
22 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
The object-oriented approach uses the Unified Modelling Language or UML (due
to Booch, Jacobson and Rumbaugh) to specify the various aspects of a system. The
UML is a specification language; it is used to specify the different aspects of a
system. It has its own notations and covers all the phases.
Bottom-Up Strategy follows the modular approach to develop the design of the
system. It is called so because it starts from the bottom or the most basic level
modules and moves towards the highest level modules.
In this technique,
The modules at the most basic or the lowest level are identified.
These modules are then grouped together based on the function performed by
each module to form the next higher-level modules.
Then, these modules are further combined to form the next higher-level
modules.
This process of grouping several simpler modules to form higher level
modules continues until the main module of system development process is
achieved.
3.2.1 Modularity
23 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
3.2.2 Coupling
Coupling refers to the degree of dependency that exists between modules. Two
modules are said to be tightly coupled if each depends on the other for its proper
functioning. That means a bug in one module may affect or infect the other module.
If one module is modified, the other may also need to be modified. Thus, high
coupling between modules should be avoided. System developers should build
modules that are loosely coupled.
(ii). Stamp coupling. Two modules are said to be stamp coupled if their data
communication takes the form of an entire data structure or record. Stamp coupling
may result in passing redundant or tramp data, which will increase the dependency.
(iii). Control coupling. Two modules are said to be control coupled if their
dependency is based on passing control information or flags. Control coupled
modules represent a higher level of dependency since they need to coordinate with
one another by passing control information.
24 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
(iv). Common coupling. Two modules are said to be common coupled if they both
use the same global data or variables (e.g., the values of variables declared before the
main() function in a C/C++ program). Common coupled modules also represent a
higher level of dependency as any inadvertent modification of these data by one
module can cause problems to other modules.
(v). Content coupling. Two modules are said to be content coupled if one module
modifies the contents of the other module (e.g., a module using a pointer to modify
the value of variable in another module in a C/C++ program). Content coupling
represents the highest level of dependency.
The above types are ordered from the best (loosely coupled) to the worst (tightly
coupled) with data coupling having the least dependency and content coupling
having the highest dependency.
Quality checks for coupling can be performed on modules appearing in the DFD or
Structure Chart.
3.2.3 Cohesion
A module is said to be cohesive if all the instructions in the module are aimed at
accomplishing a single task or a small set of related tasks (i.e., the instructions are
functionally related). A cohesive module is easy to understand, code, debug,
document and maintain. A module that is not cohesive, i.e., one that performs
several different tasks) is more difficult to understand, code, debug, document and
maintain.
25 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
There are several levels or types of cohesion (from the most desirable to the least
desirable):
26 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
(v). Temporal cohesion. Refers to modules whose instructions are grouped
together because of time factor. An example of temporal cohesion would be a
module that performs start-up operations such as displaying a greeting message,
declaring and initialling variables, and opening files.
Quality checks for cohesion can be performed on modules in the DFDs or Structure
Charts.
27 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
3.3.1 Coupling
Coupling is the measure of the independence of components. It defines the degree of
dependency of each module of system development on the other. In practice, this
means the stronger the coupling between the modules in a system, the more difficult
it is to implement and maintain the system.
Each module should have simple, clean interface with other modules, and that the
minimum number of data elements should be shared between modules.
(i). High Coupling
These type of systems have interconnections with program units dependent on each
other. Changes to one subsystem leads to high impact on the other subsystem.
28 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Figure 3.4: Low coupling component
3.3.2 Cohesion
Cohesion is the measure of closeness of the relationship between its components. It
defines the amount of dependency of the components of a module on one another.
In practice, this means the systems designer must ensure that −
They do not split essential processes into fragmented modules.
29 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
They do not gather together unrelated processes represented as processes on
the DFD into meaningless modules.
The best modules are those that are functionally cohesive. The worst modules are
those that are coincidentally cohesive.
30 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
MODULE 4
Methodology, Tools & Techniques
Methodology System
Tools
Developmen
Techniques
4.1 Methodology. The client may specify which methodology (e.g., structured,
object-oriented) to use. Each methodology has its own strengths and weaknesses. So
the client and developer must discuss and select a methodology that is suitable for
the application and the organization. The methodology selected may determine
which tool or techniques to use.
31 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
In structured designing, the system specifications act as a basis for graphically
representing the flow of data and sequence of processes involved in a software
development with the help of DFDs. After developing the DFDs for the software
system, the next step is to develop the structure chart.
32 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Figure 4.3: Structure Chart
4.2 Case tools. Case tools (e.g., System Architect, Visible Analyst, Rational Rose)
help system developers to simplify and speed up the system development process.
They also help to reduce the system development cost. Systems developed using
33 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
case tools are usually of a higher quality because they follow accepted standards for
coding and documentation. There are several features available in a case tool such as
diagramming, design checking and code generation.
Exercise 2
2.3 What is data modeling? Discuss the technique you would use to model business
data.
2.4 List and discuss the five software life cycle models.
2.5 Why is the purpose of (a) methodology, (b) tool and (c) technique in system
development?
34 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
MODULE FIVE
Software Life Cycle Models
Software development paradigms are still the subject of research but it is now clear
that a number of different general paradigms (models) of software development can
be identified, each exhibiting strengths and weaknesses, but all having a series of
generic phases in common (definition, development, and maintenance).
In this section, we will look at the following software life cycle models:
35 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Build
first
Maintenance
Retirement
Development
Although the build and fix model may appear simple and inexpensive, it is totally
unsatisfactory, as the effort and cost of changes during the later stages of system
development as well as during system maintenance will be extremely high. This is
because of the unstructured nature of the model.
The waterfall model was first put forward by Royce in 1970. A modified version of
the model is shown in Figure 2.4. In this model, first the system requirements are
determined and checked by the customers, system developers and the software
quality assurance (SQA) group. Then the specifications for the software are drawn
up. That is, a document is produced stating what the software is expected to do. This
phase is complete once the client and the SQA group approve the software
specification. Once the client has signed off the specification document, the planning
phase commences and a detailed timetable for developing the software is drawn.
This plan is also checked for correctness by the SQA group. After the client has
approved the developer's duration and cost estimates for the software, the design
36 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
phase begins. The software specification document tells what the software must do
while the design document tells how the software will do it.
This model recognizes the importance of backtracking (feedback) and iteration in the
software process. From each stage, the system developer can go back to the previous
stages should there be any errors. For example, during implementation, errors in
specification (e.g., omissions, inconsistencies) may surface requiring backtracking.
The model allows the developer to go back to the requirements and specifications
stage to fix those errors, then redesign the system, and then implement it.
It is obvious that errors detected late are the most expensive to correct. Therefore,
each stage should be properly verified and validated (against user requirements) to
avoid expensive iterations.
It implies that any stage should be frozen before continuing with the later stages
(resulting in premature requirements, design, coding, etc.)
37 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Requirements
analysis and
specification
Design
Implementation
Maintenance
Retirement
Development
Rapid prototyping is a process that enables the developer to create a model of the
software to be built. It is a working model that is functionally equivalent to a subset
of the target software. The subset usually consists of data input screens (or forms),
user interface (menus, dialog box, etc) and reports.
In this model, the system developer first builds a rapid prototype and then lets the
customer (or user) interact and experiment with it. If the rapid prototype does what
the customer wants and the customer is happy with it, the developer draws up a
specification with the assurance that the product meets the customer's real needs.
38 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
The software process then continues on with the design and implementation stages.
Figure 5.3 illustrates the rapid prototyping model.
Rapid prototype
Specification
Design
Implementation
Maintenance
Retirement
Development
Maintenance
A model that depicts human-computer interaction in a form that enables the user to
understand how such interaction will occur.
39 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Both types of prototype can be used to help users express their requirements more
precisely.
**
40 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
customer while at the same time enabling the developer to better understand what
needs to be done.
The prototype is used as a tool for requirement analysis. After evaluation the
prototype is thrown away and the actual production of the operational system
begins.
The prototyping process and the production process are clearly separated.
The benefits of developing a throwaway prototype early in the software process are:
The prototype serves as a basis for writing the specification for a production quality
system.
If the customer and developer do not agree that the prototype is intended to
serve as a mechanism for defining requirements and that it would be discarded
(at least part of it), the customers may force the developer to convert the
prototype to the working system using a few fixes. Similarly, the developer may
become familiar with the prototype and may be reluctant to discard it.
41 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
5.5 Evolutionary Prototyping
In this approach the prototyping and the production process are merged. This
means the prototype gradually evolves to become the final product. This model is
useful in situations when it is extremely difficult (or impossible) to establish detailed
user requirements such as in user interface design and AI applications.
specification
Deliver System
system adequate
42 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
Systems are usually poorly structured. Continual change tends to corrupt the
software structure. Maintenance is therefore likely to be difficult and costly.
Define
requirement
No
43 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
5.6.1 The advantages of the incremental model include:
Developing software this way avoids the big bang effect. Instead of building
software, the software grows. With the incremental approach the user is closely
involved in planning the next step.
Another non-technical problem is that this approach does not fit well with
established contractual models for software developers. Many organizations that
use traditional engineering models for software procurement find it impossible to
adapt to the form of contract, which this approach requires.
There is risk involved in all system development. The following are some possible
risks:
Key project personnel leave the project, causing the project to stall or be
abandoned.
There may be a similar product that is superior to the current product being
developed causing it to be obsolete.
The spiral model aims to minimize risk through the use of prototypes and other
means. Risk analysis is performed at each phase of system development. Before
44 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
commencing each phase, an attempt is made to control or resolve the identified
risks. The project is terminated if it is impossible to resolve all the significant risks
identified.
To illustrate, consider the risk of not capturing the user requirements correctly. This
could be due to lack of competence of the system analyst, lack of user participation,
or absence of requirements’ review. These problems can be overcome by employing
personnel who have good communication skills and who are familiar with the
application, by involving users, and by conducting reviews. Similarly, if there is a
high risk of staff turnover, the organization may preempt the problem by offering
competitive salaries and successful project completion bonus, by making them sign a
contract that they cannot leave the project until the project is completed.
45 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A
5.7.1 Some of the advantages of spiral model are:
The model is suitable only for internal or in-house development of large software
where the client and developer belong to the same organization. This is because if
the significant risks cannot be resolved, the project can be terminated. However,
this is difficult if the client is another organization since this may involve a breach
of contract and legal implications arising from that breach.
It is not always easy to analyze the project risks accurately. It takes competent
analysts to assess the risks involved.
This section discussed several software life cycle models. All of them include the
main generic stages, but the logic of the software process is different in each model.
Besides the above mentioned software lifecycle models, there is also the object-
oriented software lifecycle model. The object oriented software process model places
a lot of emphasis on software reusability. Building systems from reusable
components is likely to change the traditional view of the software development
process. The software development process will become one of assembly rather than
one of creation. We encourage the reader to explore this new software process
paradigm on his own.
46 | P a g e – C S C 4 1 1 – S Y S T E M A N A L Y S I S & D E S I G N - F O A