Unit 2 Program Design and Development
Unit 2 Program Design and Development
PROGRAM
DESIGN AND
DEVELOPMENT
INTRODUCTION
OBJECTIVES
CHARACTERISTICS OF A G O O D PROGRAM
3. Efficiency/cost saving: It must not cost more than its benefits and enables problem to be solved appropriately,
quickly and efficiently.
P R O G R A M D E V E L O P M E NT C Y C L E
This refers to the stages that form the framework for planning and controlling the
creation of an information system. Several approaches to program development have
been devised and the System Development Life Cycle (SDLC) is one of the most popular.
The SDLC is a methodology that aims at producing a high quality system that meets or
exceeds customer expectations, reaches completion within times and cost estimates,
works efficiently and is inexpensive to maintain and cost-effective to enhance.
•
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
The phase identifies the users of the system, what the system will do.
It involves
a. Analysis of the old system and ways to design the new system
b. Requirement gathering.Various tools for collecting information are used.
These include interviews, questionnaires, observation etc.
c. Development of the new system proposal document.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
3) SYSTEMS DESIGN:
This describes how the system will operate, in terms of hardware, software, network infrastructure, user
interface, forms and reports that will be used, the specific programs, databases and files that will be
needed. Design phase steps include;
CONTI…
5)Integration and testing: Brings all the pieces of the project together into a special
testing environment, then checks for errors, bugs and interoperability.
CONT…
7.Documentation: This is the last stage in software development.This involves keeping written records
that describe the program, explain its purposes, define the amount, types and sources of input data required
to run it.List the Departments and people who use its output and trace the logic the program follows.
8. Maintenance: What happens during the rest of the software's life: changes, correction, additions,
and moves to a different computing platforms etc.This step, perhaps most important of all, goes on
seemingly forever.
• The SDLC is a cycle i.e.iterative in that a new requirement might initiate the whole process again.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
1. TOP-D O W N DESIGN
A top-down approach (also known as stepwise design or deductive reasoning, and
in many cases used as a synonym of analysis or decomposition) is essentially the
breaking down of a system to gain insight into its compositional sub-systems. In a
top- down approach an overview of the system is formulated, specifying but not
detailing any first-level subsystems.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
CONT…
• Each subsystem is then refined in yet greater detail,sometimes in many additional subsystem levels,until the
entire specification is reduced to base elements.Top- down approach starts with the big picture.It breaks down
• Top-down design (also called " Modular programming " and "stepwise refinement") therefore,is a software
design technique that emphasizes separating the functionality of a program into independent modules such
that each module is designed to execute only one aspect of the desired functionality.
AD V A N TA G ES OF M O D U L A R
B Y M UHUM UZA ONAN(B.Sc.Cs)
8/27/2024
PROGRAMMING
1. Allows a problem to be split in stages and for a team of programmers to work on the
different modules thereby reducing program development time.
2. Program modification and debugging is easier since changes can be isolated to specific modules.
Modules can be tested and debugged independently.
3. Since a module performs a specific and well defined task, it is possible to develop and place
commonly used modules in a user library so that they can be accessed by different programs.
This is also called code reuse. (E.g. Validation, Uppercase, Text color etc.)
4. If a programmer cannot continue through the entire project, it is easier for another programmer to
continue working on self-contained
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
• Let’s consider a familiar modular system. Consider the electrical devices (microwaves, electric
kettles, washers, dryers, etc.) that can plug into any outlet/socket.
•None of these device care if they are plugged into the electrical outlet in your house or your
neighbor’s house or your office, etc. They are designed to do their specific task and functionality when
they are plugged in and when the power is on, regardless the place they are in.
•
• Application modules should follow the same philosophy. Regardless of the application and even
regardless of what application they plugged into, they should do their specific task and only their specific
task.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
CONT…
• Also, in exactly the same way that an electrical device can easily be unplugged from the wall outlet, a code
module should be designed in such a way that it can easily be decoupled and removed from your application.
• Furthermore, as the removal of one electrical device has no impact on the functionality of other devices
that are plugged into your electrical system, the removal of a code module or a series of code modules from
your application should not have any effect on the functionality of the other parts of your application.
• This decoupling should also have no effect on the application, other than perhaps just losing the specific
functionality that was provided by that particular module or group of modules in the application.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
MODULAR PROGRAMMING IN C
CONT…
CONT...
• Programming by modules using the C language means splitting every source code into
an header file module1.h that specifies how that module talks to the clients, and a
corresponding implementation source file module1.c where all the code and the
details are hidden.
• The header contains only declarations of constants, types, global variables and function
prototypes that client programs are allowed to see and to use. Every other private item
internal to the module must stay inside the code file.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
SELF-ASSESSMENT EXERCISE
❖ It is user friendly and easy to understand. Ie Similar to English vocabulary of words and symbols.
❖ It is easier to learn.
❖ They require less time to write.
❖ They are easier to maintain.
❖ These are mainly problem oriented rather than machine based.
❖ Program written in a higher-level language can be translated into many machine languages and therefore can
run on any computer for which there exists an appropriate translator.
❖ It is independent of machine on which it is used, i.e., programs developed in high level languages can be
run on any computer.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
DISADVANTAGES OF STRUCTURED
PROGRAMMING
CONT…
2.BOTTOM-UP DESIGN
• A bottom-up approach (also known as inductive reasoning,and in many cases used as a synonym of
synthesis) is the piecing together of systems to give rise to larger systems, thus making the original systems
sub-systems of the emergent system.
•In a bottom-up approach the individual base elements of the system are first specified in great detail.These
elements are then linked together to form larger subsystems, which then in turn are linked,sometimes in
many levels,until a complete top-level system is formed.
• With this approach,there is more user and business awareness of the product. Benefits are also
realized in the early phases of development.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
3.MONOLITHIC DESIGN
• Pseudo-code
• Algorithm
• Flowchart
• Decision Tables
Assignment:
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
• ASSIGNMENT 1
• A student who passes the examinations and completes the coursework and project satisfactorily is awarded a pass.
If the course work and the project are unsatisfactory, the student is asked to resubmit the unsatisfactory work, as
long as the exams have been passed. A student who fails the examinations is deemed to have failed the whole
course unless both the course work and the project are satisfactory, in which case the student is allowed to re-sit
the examination.
• ASSIGNMENT 2
• Candidates are accepted for employment if they pass the interview and their qualifications and reference are
satisfactory. If they pass the interview and the qualifications or references (but not both) are unsatisfactory, a job
for probationary period is offered. In all other circumstances, the candidate’s application is rejected.
Self Assessment Assignment 3
• Design the business logic (at least three conditions) that is applicable when a
customer is applying for a bank loan.
• Draw a decision table to represent the business logic.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024
END