CSC 311 System Analysis and Design
CSC 311 System Analysis and Design
Normally, users, who demand reliable and cost-effective systems to manage their businesses, may not
be fully aware of the capabilities and limitations of contemporary computer technology. On the other
hand, application developers/programmers may not also understand how to satisfy the users of their
applications. In all, this brought about a communication gap (lapse or divide) between the users and the
developers of systems. Thus, in order to bridge this gap, there is the need for system analysis and
design.
What is a system?
System is a collection of interacting or interrelated elements or components which form a unified entity
or body operating harmoniously.
Elements of a System
Input-------Processing-------output
Control
-----------------------------------------
Feedback
Properties of a System
Organization
- Implies structure and order
- Arrangement of components that helps to achieve predetermined
objectives
Interaction: defined by the manner in which the components operate with
each other
Interdependence: how the components of a system depend on one another
Integration: how a system’s components are connected together
Central objective: the objective of a system must be central, which means it
must have a major goal
Types of Systems
There are various types of systems; classification of systems can be
done in many ways. Some of these categories are:
● physical or abstract: systems we can touch and feel, e.g. desks
and chairs are part of a computer centre which are static
● open or closed systems
● natural and manufactured: natural e.g., solar system;
manufactured = man-made system
● man-made information systems: e.g., political system,
educational system, transport system, etc.
Automated Systems
This type of man made system is based on electrical/electronic technology. Some of the common
components are:
Hardware CPU, RAM, HDD, Storage devices, video cards, sound cards
Software – Systems software [operating system] and applications software.
Users of the system.
Data facts required for processing by the system.
Policies and regulations governing the normal operation of the system
Information Systems
An information system accepts data as input. After processing such data, information is produced for
decision making or it is fed back into the system as another form of input. The main features of an
information system are data input, control/processing, storage and information output. Typically,
information systems contain databases (where records of data are stored permanently on various
storage devices for future reference/access).
Information Reporting Systems – produce reports for decision makers in organizations (for day-to-
day
running of such organizations).
Transaction Processing Systems – store and process records from business transactions. These
systems
also provide relevant information about the growth of the company.
Executive Information System – are used for strategic studies of organizations operations; thus giving
the management highly critical and summarized information.
Office Automation System provide effective and efficient office communication via the use of office
software products, such as Microsoft Office.
Process Control Systems – play a vital role in monitoring as well as controlling physical process in
factories. Example of such systems is the auto-pilot software in sophisticated airplanes.
Decision-Support Systems – guide managers in decision making by providing information from the
collections of fragmented facts.
Systems Analysis
A process of collecting and interpreting facts, identifying the
problems, and recommending feasible suggestions for improving
system functioning. It is conducted for the purpose of studying a system or its parts in order
to identify its objectives.
Systems Design
It is a process of planning a new business system or replacing an existing
system by defining its components or modules to satisfy the specific
requirements. Before planning, you need to understand the old system thoroughly and
determine how computers can best be used in order to operate efficiently. System Design focuses
on how to accomplish the objectives of the system.
The Management
The management most times is the financier of the project. That is, they could be the managers of the
users of the system. They usually provide firsthand knowledge about the need for a new/upgraded
system and also give the system analyst relevant information, such as the nature of the working
environment (networked or not, ), number of staff, nature of business, number of transactions per day,
etc.
The System Analyst
The role of the system analyst in project realization is very crucial since he is a mediator who bridges
the communication gap/lapse between the various members of the team. His role has become very vital
considering the approach previously used in system development; prior to the introduction of system
analysis and design.
1. System development was only about generating codes which produce the application.
2. Programs were developed based on code-as-you-think principle without adequate commentaries,
documentation and algorithms; thereby, making such codes difficult to understand (even by the
programmers after some time).
3. More than one programmer could not develop an application, since there is no documentation
describing the design and implementation specifications of the system. Such applications will not
satisfy the needs of the user.
4 Thus, the system analyst will study the present system identifying its setbacks and then give
recommendations (and alternatives) for developing a new system. He produces a document containing
the logical models of what the current system does and what the new proposed system will do. Most
times, the system analyst is the project manager/leader.
Modeling
Business model
Requirements model
Process model
Data model
Object model
Network model
Prototyping
Early working versions of information systems
Speeds up the development process significantly
Important decisions might be made too early, before business or IT issues are
thoroughly understood
A prototype based on careful fact-finding and modeling techniques can be an
extremely valuable tool
Structured Analysis
Time-tested and easy to understand
Uses phases called the Systems Development Life Cycle (SDLC)
Predictive approach
Uses process models to describe a system graphically
1. Waterfall Model: is one of the first software development model also known as the classical model,
the waterfall model is intended to be irreversible but there are variations because you might need to go
back in the previous phase in the waterfall.
Merits
Each phase has a deliverable
phases are processed one at a time
works well for smaller projects where requirements are clearly defined
simple and easy to understand
simple to manage due to rigidity
DE-Merits
It takes time to develop depending on how complex it is.
Once its in a testing stage it can not be possible to jump back.
Its not suitable for project where requirement its not clear.
The main theme is its good for short and clear projects
Variants of Waterfall model
- Parallel Model
- V Model
The parallel development methodologies evolved to address the lengthy time frame of waterfall
development.
instead of doing the design and implementation in
sequence, a general design for the whole system is performed. Then the project is
divided into a series of sub projects that can be designed and implemented in parallel.
Once all sub projects are complete, there is a final integration of the separate pieces,
and the system is delivered.
Parallel development reduces the time required to deliver a system, so
changes in the business environment are less likely to produce the need for rework.
The approach still suffers from problems caused by voluminous deliverable. It also
adds a new problem: If the sub projects are not completely independent, design
decisions in one sub project may affect another, and at the project end, integrating
the sub projects may be quite challenging.
DE-Merits
Creating project requires careful design decision
V- Model
The V-model is another variation of waterfall development that pays more
explicit attention to testing. The development process proceeds down the left-hand slope of the V,
defining requirements and designing system components. At the base of the V, the code is written. On
the upward-sloping right side of the model, testing of components, integration testing, and, finally,
acceptance testing are performed. A key concept of this model is that as requirements are specified and
components designed, testing for those elements is also defined. In this manner, each level of testing is
clearly
linked to a
part of the
analysis or
design
phase,
helping to
ensure high
quality and
relevant
testing and
maximize
test
effectiveness
.
Rapid Application Development (RAD):- The aim of this model is to speed up the development
process of waterfall model with the help of CASE tools, and JAD.
The goal is to get a prototype of the system and hand them to the users to get feedback and generate
evaluations.
Approaches in RAD
- Iterative Development
breaks the overall project into a series of versions that are developed sequentially. The most
important and fundamental requirements are bundled into the first version of the system. This
version is developed quickly by a mini-waterfall process, and once implemented, the
users can provide valuable feedback to be incorporated into the next version of the system
- System prototyping
performs the analysis, design, and implementation phases concurrently in order to quickly develop a
simplified version of the proposed system and give it to the users for evaluation and feedback
- Throw away prototyping
includes the development of prototypes, but uses the prototypes primarily to explore design
alternatives rather than as the actual new system (as in system prototyping) Many of the feature
suggested by the users may not be well understood, however, and there may be challenging
technical issues to be solved. Each of these issues is examined by analyzing, designing, and building
a design prototype. A design prototype is not intended to be a working system. It contains only
enough detail to enable users to understand the issues under consideration.
Agile Development
Agile development is a group of programming-eccentric methodologies that focus on streamlining the
SDLC. Much of the modeling and documentation overhead is eliminated; instead, face-to-face
communication is preferred. A project emphasizes simple, iterative application development in which
every iteration is a complete software project, including planning, requirements analysis, design,
coding, testing, and
documentation.
(Agile Development
methodology uses
OOP concept)
Fountain Model
This model is specifically useful for object-oriented system development; where each phase is regarded
as a complete entity (to be analyzed, designed, and implemented separately from other phases). Note
that he phases overlap ensuring parallelism of development process.
The main disadvantage of this model is unclear development process; since it requires code-a-bit, test-
a-bit [CABTAB] principle.
Spiral Model
This is an evolutionary software development process which combines the prototype with the linear
sequential waterfall model. It involves evaluation and risk analysis of each phase with the aim of
discovering alternatives to implementation.
Thus, this model has an upper hand over most of the models because it provides checkpoints for project
cancellation (if the risks cannot be resolved). However, to effectively implement this model, training,
skill, manpower and considerable expenses are required. This model is normally used for the
development of large-scale systems
Analysis Phase
The analysis phase answers the questions o who will use the system, hat the system will do,
and here and when it will be used, All of the deliverable are combined into a system proposal,
which is presented to management, ho decides whether the project should continue to move forward.
System Analysis
-Requirement determination
-Use Case Analysis
-Process Modeling
-Data Modeling
The goal is to get to know the system requirements, requirements are what the system must do.
Requirement Determination
Is to know and understand what are the requirement of the system and how do you record them. A
precise list of what the system must do to provide the needed value to the business
There are three types of requirements
1. Business Requirement:- are what the business needs
2. User Requirement:- there are what the users do (use Case Analysis)
3. System Requirement:- is the statement of what system must do there are of two types
-Functional system requirement
-Non Functional system requirement
Functional Requirement:- are requirement which specifies the support that will provide to the user in
fulfilling his/her task.
Process oriented / information oriented
Joint Application Development:- its an expertise structured grouped process, to produce complete
requirements of the system by bringing all the bodies together, manager, user , developer analyst
together it needs a vibrant facilitator and a facility for the JAD.
JAD is expensive but valuable.
Weakness is that people might be hesitant to share decisions, many people opinions are involved.
How to overcome this is by using Electronic JAD (e-JAD)
Strength of JAD
Understand multiple perspective
Observations:- Observation, the act of watching processes being performed, is a powerful tool to gain
insight into the as-is system. Observation enables the analyst to see the reality of a
situation, rather than listening to others describe it in interviews or JAD sessions.
Strengths of observations
Data gathering is highly reliable
Inexpensive
Weakness of Observation
people can perform differently when being observed
difficult and boring
Document Analysis:- Project teams often use document analysis to understand the as-is system. Under
ideal circumstances, the project team that developed the existing system will have
produced documentation, which was then updated by all subsequent projects. In
this case, the project team can start by reviewing the documentation and examining
the system itself.
Experiments
Alternative Courses In this section, the steps followed for alternative paths through the
use case are outlined. Alternative courses are included to depict branches in logic that
also will lead to a successful conclusion of the use case.
Post conditions As we explained in the preconditions section, use cases may be
performed in a series in order to accomplish the overall user goal. In this section of
the use case, we define the final products of this use case.
Exceptions In order to be complete, a use case should describe any error conditions or
exceptions that may occur as the use case steps are performed. These are not normal
branches in decision logic, but are unusual occurrences or errors that could potentially
be encountered and will lead to an unsuccessful result.
Summary Inputs and Outputs The final section of the use case summarizes the set of
major inputs and outputs to the steps of the use case. Each of the major inputs and out-
puts to the use case are listed, along with its source or destination.
When creating a use case you identify events that the users perform,
you identify the exceptions. Use Case is in sequence.
Use gradual refinement in building use cases.
Use cases convey the users point of view they are useful tools to clarify the requirements of a system.
Use Cases are represented in a two types of diagrams.
Text base and figure.
Casual and Complex use case format;
The complex example of a use case diagram
Process Modeling
process model describes business processes—the activities that people do.
Process models are developed for the as-is system and/or the to-be system. This
chapter describes data flow diagramming, one of the most commonly used process modeling
techniques.
A process model is a graphical way of representing how a business system should operate. It illustrates
the processes or activities that are performed and how data move among them. A process model can be
used to document the current system (i.e., as-is system) or the new system being developed (i.e., to-be
system), whether computerized or not.
Process Modeling Techniques
Data Flow Diagramming DFD
Data flow diagramming is a technique that diagrams the business processes and the
data that pass among them
Elements of Data Flow Diagrams
which includes a set of symbols, naming conventions, and syntax rules. There are four
symbols in the DFD language (processes, data flows, data stores, and external entities)
Process A process is an activity or a function that is performed for some specific
business reason. Processes can be manual or computerized.
Data Flow:- Data Flow A data flow is a single piece of data (sometimes called a data element), or a
logical collection of several pieces of information ,Every data flow should be named with a noun.
Data Store A data store is a collection of data that is stored in some way (which
is determined later when creating the physical model). Every data store is named
with a noun and is assigned an identification number and a description.
External Entity An external entity is a person, organization, organization unit, or
system that is external to the system, but interacts with it (e.g., customer, clearing-
house, government organization, accounting system).
Context Diagram As the name suggests, the context diagram shows the entire system in context with its
environment. All process models have one context diagram.
The context diagram shows the overall business process as just one process
(i.e., the system itself) and shows the data flows to and from external entities.
Process Descriptions
The purpose of the process descriptions is to explain what the process does and pro-
vide additional information that the DFD does not provide. As we move through the
SDLC, we gradually move from the general text descriptions of requirements into
more and more precise descriptions that are eventually translated into very precise
programming languages
DFD are created using by project team using CASE TOOLS
PROGRAM DESIGN
Moving from Logical to Physical Process Models
As the application logic of the information system is designed, the implementation
decisions describing how the system will work are made. Physical data flow dia-
grams show these implementation details, including data stores that refer to files
and database tables, programs or human actions that perform processes, and the
physical transfer media for the data flows. The automated parts of the system are
distinguished from the manual parts by the human-machine boundary.
Structure Chart
The structure chart shows all the functional components that must be included in
the program at a high level, arranged in a hierarchical format that implies order and
control. Lines that connect modules can contain a loop, which signifies that the sub-
ordinate module is repeated before other modules to its right are invoked. A dia-
mond is placed over subordinate modules that are invoked conditionally. An arrow
with a filled circle represents a control couple or flag, which passes system mes-
sages from one module to another. The data couple, an arrow with an empty circle,
denotes the passing of records or fields
Building Structure Charts
Creating a structure chart is usually a four-step process. First, the analyst identifies
the top-level modules and then decomposes them into lower levels. Second, the ana-
lyst adds the control connections among modules, such as loops and conditional
lines that show when modules call subordinates. Third, the analyst adds couples, the
information that modules pass among themselves. Finally, the analyst reviews the
structure chart and revises it again and again until it is complete.
Structure Chart Design Guidelines
There are several design guidelines that you should follow when designing structure charts.
First, build modules with high cohesion so that each module performs
only one function. There are seven kinds of cohesion, ranging from good to bad, and
the instances of bad cohesion should be removed from the structure chart.
Second,modules should not be interdependent, but rather should be loosely coupled, using
good types of coupling. There are five kinds of coupling, ranging from good to bad;
as with cohesion, bad instances should be avoided. Finally, structure charts should
display high fan-in and low fan-out, which means that modules should have many
control modules but limited subordinates.
Program Specification
Program specifications provide more detailed instructions to the programmers
about how to code the modules. The program specification contains several com-
ponents that communicate basic module information (e.g., a name, calculations that
must be performed, and the target programming language), inputs and outputs,
special instructions for the programmer, and pseudocode.
Pseudocode
Pseudocode is a technique similar to structured English that communicates the code
written with the use of programming structures and a generic language that is not
program language specific. Pseudocode is much more like real code than is structured
English, and its audience is the programmer as opposed to the analyst.
Implementation Phase
Managing Programming
Programming is done by programmers, so systems analysts have other responsibili-
ties during this stage. The project manager, however, is usually very busy. The first
step is to assign tasks to the programmers—ideally, the fewest possible to complete
the project, because coordination problems increase as the size of the programming
team increases. Coordination can be improved by having regular meetings, ensur-
ing that standards are followed, implementing change control, and using computer-
aided software engineering (CASE) tools effectively. One of the key functions of
the project manager is to manage the schedule and adjust it for delays. Two com-
mon causes of delays are scope creep and minor slippages that go unnoticed.
Testing
Tests must be carefully planned because the cost of fixing one major bug after the sys-
tem is installed can easily exceed the annual salary of a programmer. A test plan con-
tains several tests that examine different aspects of the system. A test, in turn, specifies
several test cases that will be examined by the testers. A unit test examines a module
or program within the system; test cases come from the program specifications or the
program code itself. An integration test examines how well several modules work
together; test cases come from the interface design, use scenarios, and the physical data
flow diagrams (DFDs). A system test examines the system as a whole and is broader
than the unit and integration tests; test cases come from the system design, the infra-
structure design, the unit tests, and the integration. Acceptance testing is done by the
users to determine whether the system is acceptable to them; it draws on the system
test plans (alpha testing) and the real work the users perform (beta testing).
Documentation
Documentation, both user documentation and system documentation, is moving
away from paper-based documents to online documentation. There are three types
of user documentation: Reference documents are designed to be used when the user
needs to learn how to perform a specific function (e.g., an online help system);
procedures manuals describe how to perform business tasks; and tutorials teach
people how to use the system. Documentation navigation controls (e.g., a table of
contents, index, a “find” function, intelligent agents, or links between pages) enable
users to find documentation topics (e.g., how to perform a function, how to use an
interface command, an explanation of a term).