Chapter 3
Chapter 3
and Problems
Ntiamoah Nkansah B.SC (Hons)Information
Technology
Lesson Objectives
The Software Development Process
Overview of Data Structures
File Data Structures
Introduction to Program structured Diagrams
(Problem analyses)
Jackson’s Structured Approach to Data
Structures and Program Structures
Determining the structure of a program from
a given specification
Program Development Process
There are varieties of software lifecycle
models. However, all of them share a common
approach to breaking down the development
process into manageable units.
This units, which include initial study,
requirement analyses, system design, coding,
testing, implementation and support also
called the traditional software development
is organized in varying steps to solve
software problems
Program Development Process
The Traditional Software or system life cycle
includes:
Project Initiation / Initial Study
Requirement Analyses
System Design
Coding
Testing
Implementation and support
Program Development Process
At the end of each phase, there is a control
point where the achievement of the goals of
the phase can be evaluated. There are three
(3) possibilities after the evaluation:
Satisfactory results which means the goals of
the phase has been achieved and development
can proceed the next stage
Partially satisfactory which means that some
parts still needs to clarified and improved
Poor results and entire projects may be
discontinued or restarted
Project Initiation / Initial Study
Project Initiation deals with the Precise definition of problem
to be solved in a clearly and in a well understood manner.
Undertake feasibility study. Thus whether the system of a
sort can produce or not
After this initial study is the output of:
A brief description of the proposed system (including hardware
and software requirements)
An estimated project cost
Possible completion date for project
Initial issues of system integration are also considered at
this stage. Thus how the system is going to fit into the
existing system. Usually this process is initiated by project
managers
Requirement Analyses
At this state, the requirements of clients,
users, management, development team
members, and all stakeholders are taken.
How do you pick these requirements?
Interviews
Direct Observation
Issuance of questionnaires
Team sitting (conferencing)
etc
Requirement Analyses
Client verses the user of a system
The client is the person or organization who is paying for the
software to be developed.
The users are the people who will be using the completed
software.
At the end of requirement analyses, a Requirement Analyses
document is produced which will contain the following
information:
The proposed system agreed by users, clients, the development
team and all other stakeholders
A list of existing tools (hardware and software), new tools
required for development, the expertise who are going to
develop the system (internal or outsourced team)
Schedules for the next stage of the project including the
deliverables for each stage
Requirement Analyses
The objective of the requirement analyses stage is to
define, in detail, a solution that will fully meet the
clients and user requirements.
Out of the requirement analyses document, a program
specification document is produced which involves
translating the requirements identified into terms that
can be understood by the system designers,
programmers and testers. The end product of this
stage is a program specification which normally
includes a description of:
The input to the process
The operations the system will perform on each input
The output obtained for the corresponding input
Requirement Analyses
Key Attributes of requirements specification
it should be clear and unambiguous
it should be complete
it should be appropriately detailed
it should be cohesive (interlinked)
it should be attainable
it should be testable
etc
System Design
It describes how a solution will be built to
satisfy the requirements specified in the
initial stage. System design should be
detailed, technical and logical definition of
system to be produced
At the design stage, complex problems are
divided into sub problems which individually
are easily solved
A test plan should also be developed to test
each sub problem and also the integrated
problem
System Design
At this stage, the use of formal program design
techniques and standards are deployed (Selection
of good data structures for input and output data)
and better algorithms for program processes or
functions. Techniques like pseudo code, flowcharts,
DSD’s, PSD’s, use cases, class diagrams, state
chart diagrams, sequence diagrams, deployment
diagrams, etc are used.
After design, a decision will have to be made as to
which programming language will be most
appropriate. Is the programming going to be
deployed internally, externally or both?
Coding
Coding is started when design is completed.
This is the stage where the actual
programming is done. This phase is
completed when actual code is written and
compiled without errors. There should be a
lot of proper documentation to be done on the
code.
Characteristics of a good code
It should work correctly
It should be bug or error free
It should be readable and maintainable
Testing
Every program module should be tested according to
the existing test plan developed in the design phase
of the software process.
After every separate module has been tested, a full
test according to the test plan is performed. Any
errors uncounted will be corrected and system will
be retested
If the program is part of a system, a system test will
take place after the individual programs have been
tested to see how they all work together as a system.
It must also be tested in the environment where it
will actually be used to see how it will function there.
Testing
Internal testing (alpha testing) and outside
testing (beta testing) are carried out
Testing must be done in a controlled
environment and also in a live environment to
identify all hidden problems.
Implementation and Support
After software is developed and well tested, now it is
ready to be deployed. User documentation and
operation instructions are required. The system must
also be maintained.
Before writing a program the programmer needs to
know
The output required by the user => screen displays,
print outs or updated files
The process required to produce this output for the
user
The data or input to be processed to create the output
required by the user => data files or input from user
via keyboard, mouse, etc
Introduction to Data Structures
Every data has a name, type, value and range
A data structure is a way by which this data are organized
and stored. Examples include arrays, files, graphs, trees,
tables, etc
A data structure may be selected or design to store data for
the purpose of working on it with various algorithm
Data structure diagrams are tools used to analyze or clarify
how data are organized
DSD can be used to analyze both how data and problems are
composed. They are concerned with the physical structure of
problems but not the logical structure or the flow or logical
aspect of data or problems
Data structure diagrams is about the results or the
externally visible properties of data and their relationships
Symbols used for DSD