0% found this document useful (0 votes)
3 views

Unit 2 Program Design and Development

This document outlines the principles of program design and development, detailing the characteristics of a good program, the program development cycle, and methodologies such as the System Development Life Cycle (SDLC). It emphasizes the importance of structured programming, modular design, and the benefits of using programming tools like pseudo-code and flowcharts. Additionally, it discusses the advantages and disadvantages of structured programming and provides self-assessment exercises to reinforce learning.

Uploaded by

MUHUMUZA ONAN
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Unit 2 Program Design and Development

This document outlines the principles of program design and development, detailing the characteristics of a good program, the program development cycle, and methodologies such as the System Development Life Cycle (SDLC). It emphasizes the importance of structured programming, modular design, and the benefits of using programming tools like pseudo-code and flowcharts. Additionally, it discusses the advantages and disadvantages of structured programming and provides self-assessment exercises to reinforce learning.

Uploaded by

MUHUMUZA ONAN
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

UNIT 2

PROGRAM
DESIGN AND
DEVELOPMENT
INTRODUCTION

Program/system design is the process of defining the software


structure (components/ modules, interfaces, and data) to satisfy/realize
specified requirements.

Program development refers to all the activities and processes involved


between the conception of the desired software through to the final manifestation
of the software, in a planned and structured process.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

OBJECTIVES

By the end of this unit, you should be able to:


1. State at least six characteristics of a good program
2. List the various phases of program development.

3. Explain the steps involved in problem definition and analysis


BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

CHARACTERISTICS OF A G O O D PROGRAM

1. Portability/Transferability: Must be able to work on any computer machine.

2. Reliability: It can be relied upon to do what it is expected to do.

3. Efficiency/cost saving: It must not cost more than its benefits and enables problem to be solved appropriately,
quickly and efficiently.

4. Clarity and Simplicity: It should be as simple as possible to understand.

5. Understandability/Readability: It must be readable and understandable by other


programmers and end users.

6. Flexibility/Adaptability/Maintainability: A good program must be flexible adaptable and maintainable in


order to suit user’s need. Modification must be possible and very easy.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

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

PROJECT PLANNING, FEASIBILITY STUDY:

The fundamental process of understanding why a system should be built and


determining how the project team will go about building it. It should also
establish a clear understanding of the current system.
It involves

a. Technical feasibility study: can the system be built


b. Economic feasibility study: will the system provide business value, and what are the risks?
c. Organizational feasibility study: if built, will it be used.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

SYSTEMS ANALYSIS, REQUIREMENTS DEFINITION:

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;

1. Design strategy: method of development, in-house, outsourced, or


purchased.

2. Architecture design – hardware , software, internet infrastructure, and user interface

3. Database and file specification


4. Program design: defines the program that needs to be done and exactly what each will do.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

CONTI…

4)System Implementation: The real code is written here.

5)Integration and testing: Brings all the pieces of the project together into a special
testing environment, then checks for errors, bugs and interoperability.

6. Acceptance, installation, deployment: The final stage of initial development,


where the software is put into use and runs actual business.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

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

STRUCTURED PROGRAMMING DESIGN CONCEPTS

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

from there into smaller segments.

• 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

REAL-LIFE EXAMPLE OF MODULES

• 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

•C is called a structured programming language because to solve a large problem, C


programming language divides the problem into smaller modules called functions or
procedures each of which handles a particular responsibility. The program which solves the
entire problem is a collection of such functions.

•A module is basically a set of interrelated files that share their implementation details but
hide it from the outside world. Each function defined in C by default is globally accessible.
This can be achieved by including the header file in which implementation of the function is
defined.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

CONT…

• Modularization is a method to organize large programs in smaller parts,


i.e., the modules.
•Every module has a well-defined interface toward client modules that
specifies how “services” provided by this module are made available.
Moreover, every module has an implementation part that hides the code and
any other private implementation detail the clients’ modules should not care
of.
Benefits of Modular programming

❑ modules can be re-used in several projects;


❑ changing the implementation details of a modules does not require to modify the clients
using them as far as the interface does not change;
❑ faster re-compilation, as only the modules that have been modified are actually re-
compiled;
❑ self-documenting,as the interface specifies all that is required to know to use the
module;
❑ easier debugging, as modules dependencies are clearly specified and every module
can be tested separately.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

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

1. Describe how structured programming can lead to programming efficiency.


2. State the benefits of modularization on large and complex programs.
3. State the advantages and disadvantages of
5.
structured programming
4. Describe the examples of programming paradigms.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

ADVANTAGES OF STRUCTURED PROGRAMMING

❖ 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

❖ Structured programming codes implemented in high-level language has to be translated


into the machine language by translator and thus a price in computer time is paid.
❖ The object code generated by a translator might be inefficient compared to an
equivalent assembly language program.
❖ Data type are proceeds in many functions in a structured program. When changes occur in
those data types, the corresponding change must be made to every location that acts on
those data types within the program. This is really a very timeconsuming task if the
program is very large.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

CONT…

• In a structured program, each programmer is assigned to build a


specific set of functions and data types. Since different
programmers handle separate functions that have mutually
shared data type, other programmers in the team must reflect the
changes in data types done by the programmer in data type
handled. Otherwise, it requires rewriting several functions.
DESCRI B E HOW STRUCTURED
BY MUH UMU Z A ONAN(B.Sc.Cs) 8/27/2024

PROGRAMMING CAN LEAD TO


PROGRAMMING EFFICIENCY.
•Structured programming is a programming paradigm aimed at improving the clarity, quality,
and development time of a computer program by making extensive use of the structured
control flow constructs of selection (if/then/else) and repetition (while and for), block
structures, and subroutines.
•It provides tools for efficient coding, save memory usage and program performance.
•It provides pointers which has a lot of advantages as more efficient code, faster execution
and memory saving, higher productivity can be achieved.
•It provides recursive function which also makes for efficiency.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

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

• The monolithic design philosophy is that the application is


responsible not just for a particular task, but can perform every step
needed to complete a particular function.

• A monolithic application describes a software application which is


designed without modularity.
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

PROGRAM DESIGN TOOLS

• Pseudo-code

• Algorithm

• Flowchart

• STRUCTURE CHARTS (module chart, hierarchy


chart)

• Decision Tables
Assignment:
BY MUHUMUZA ONAN(B.Sc.Cs) 8/27/2024

Self Assessment Assignment:

• 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

You might also like