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

Logic

The document discusses selecting a program logic design approach and covers understanding various program and system lifecycles, obtaining design documentation, reviewing requirements, and determining modules and links. It includes understanding concepts like waterfall model, agile methodology, rapid application development, and object-oriented programming.

Uploaded by

sefefe hunegnaw
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Logic

The document discusses selecting a program logic design approach and covers understanding various program and system lifecycles, obtaining design documentation, reviewing requirements, and determining modules and links. It includes understanding concepts like waterfall model, agile methodology, rapid application development, and object-oriented programming.

Uploaded by

sefefe hunegnaw
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Web Development and Database Administration

Level III
Based on March, 2022 Version-I
MODULE TITLE: Designing Program Logic
MODULE CODE: EIS WDDBA3 M04 0322
NOMINAL DURATION: 50 Hours

Prepared by: - SEFEFE.H

0|Page
Table of Contents
ACRONYM.....................................................................................................................................2
Introduction to Designing Program Logic Modules........................................................................3
Unit one: Select the program logic design approach....................................................................5
1.1. Understanding concepts of various program and system lifecycle options............................6

1.1.2. Understanding concepts of various programs................................................................8


1.1.3. Designing a program....................................................................................................11
1.2. Obtaining Design documentation..............................................................................................11

i|Page
ACRONYM

SDLC systems development life cycle


RAD Rapid Application Development
JAD joint application development

ii | P a g e
iii | P a g e
Introduction to Designing Program Logic Modules

Designing program logic modules involves the creation of a structured plan for developing
software applications. This process includes defining the overall architecture of the program,
identifying key functions and processes, and organizing the code into manageable and reusable
modules. The goal of designing program logic modules is to create a clear and efficient roadmap
for building software that is easy to understand, maintain, and scale. By breaking down the
program into logical modules, developers can focus on individual components, which promotes
better organization, collaboration, and code reusability.

This introduction will explore the fundamental principles of designing program logic modules,
including the importance of modular design, best practices for creating modular code, and the
benefits of modular programming. Additionally, we will discuss how modular design can
improve the overall quality and maintainability of software applications.

Throughout this series, we will delve into various aspects of designing program logic modules,
such as modular architecture, encapsulation, abstraction, and the use of design patterns to create
robust and scalable software solutions. By understanding the principles and techniques of
designing program logic modules, developers can enhance their ability to create well-structured,
maintainable, and adaptable software systems.

This module covers the units:


 Select the program logic design approach
 Document the program logic or design
 Validate the design

~1~
Unit one: Select the program logic design approach

This unit is developed to provide you the necessary information regarding the following content
coverage and topics:

 Understanding concepts of various program and system lifecycle options


 Obtaining Design documentation
 Reviewing and clarifying requirements for the program
 Determining modules and links using design approach in coding

This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:

 Understand concepts of various program and system lifecycle options

 Obtained Design documentation

 Review and clarifying requirements for the program

 Determine modules and links using design approach in coding

~2~
1.1. Understanding concepts of various program and system lifecycle options
Understanding the concepts of various program and system lifecycle options is crucial for
software development and system engineering. Here are some key concepts to consider:

1. Waterfall Model: The waterfall model follows a linear and sequential approach, where each
phase must be completed before the next one begins. This includes requirements gathering,
design, implementation, testing, deployment, and maintenance.

2. Agile Methodology: Agile methodologies, such as Scrum and Kanban, emphasize iterative
and incremental development. They focus on collaboration, flexibility, and continuous feedback,
allowing for adaptive changes throughout the development lifecycle.

3. Spiral Model: The spiral model combines elements of both waterfall and iterative
development. It involves multiple cycles of risk analysis, prototyping, development, and testing,
making it suitable for large and complex projects.

4. DevOps: DevOps is a culture and set of practices that combines software development (Dev)
and IT operations (Ops). It aims to automate and streamline the entire software delivery process,
from code development to deployment and maintenance.

5. Rapid Application Development (RAD): RAD emphasizes quick development and iteration
through the use of prototyping, iterative development, and user feedback. It aims to reduce the
development time and increase user involvement.

6. Lean Software Development: Based on lean manufacturing principles, lean software


development focuses on minimizing waste, optimizing processes, and delivering value to
customers. It encourages continuous improvement and customer-centric development.

7. Incremental Model: The incremental model breaks down the software development process
into small, manageable increments. Each increment delivers a portion of the system's
functionality, allowing for early delivery and feedback.

Understanding these concepts allows software developers and system engineers to choose the
most suitable lifecycle option for their projects based on factors such as project requirements,

~3~
team dynamics, and customer needs. Each approach has its own strengths and weaknesses, and
the choice of lifecycle model can significantly impact the success of a project.

1.1.1 System lifecycle options

The systems development life cycle (SDLC) is a conceptual model used in project
management that describes the stages involved in an information system development project,
from an initial feasibility study through maintenance of the completed application. SDLC can
apply to technical and non-technical systems. In most use cases, a system is an IT technology
such as hardware and software. Project and program managers typically take part in SDLC,
along with system and software engineers, development teams and end-users.

Every hardware or software system will go through a development process which can be thought
as an iterative process with multiple steps. SDLC is used to give a rigid structure and framework
to define the phases and steps involved in the development of a system.

SDLC is also an abbreviation for Synchronous Data Link Control and software development life
cycle. Software development life cycle is a very similar process to systems development life
cycle, but it focuses exclusively on the development life cycle of software.

SDLC models
Various SDLC methodologies have been developed to guide the processes involved, including
the original SDLC method, the Waterfall model. Other SDLC models include rapid application
development (RAD), joint application development (JAD), the fountain model, the spiral model,
build and fix, and synchronize-and-stabilize. Another common model today is called Agile
software development [1].

Frequently, several models are combined into a hybrid methodology. Many of these models are
shared with the development of software, such as waterfall or agile. Numerous model
frameworks can be adapted to fit into the development of software.

In SDLC, documentation is crucial, regardless of the type of model chosen for any application,
and is usually done in parallel with the development process. Some methods work better for
specific kinds of projects, but in the final analysis, the most crucial factor for the success of a
project may be how closely the particular plan was followed.

~4~
1.1.2. Understanding concepts of various programs
Understanding concepts of various programs involves grasping the fundamental principles and
functionalities of different software and applications. This includes comprehending the
underlying algorithms, data structures, design patterns, and best practices for developing and
utilizing these programs.

Pseudocode is a way of expressing programming logic in plain language, without using the
syntax of a specific programming language. It is used to outline the structure of a program or
algorithm before writing the actual code. Pseudocode is often used as a way to plan and
communicate the design of a program, as it is easier to understand for non-programmers and can
be easily translated into actual code.

In this pseudocode, the algorithm is outlined in a step-by-step manner, using plain language and
simple programming concepts, without being tied to the syntax of any specific programming
language. This allows for easy translation into actual code in a programming language like
Python, Java, or C++.

Key concepts to understand in programming include:

1. Object-oriented programming (OOP)

2. Data structures and algorithms

3. Design patterns

4. Software architecture

5. Web development concepts

6. Database concepts

7. Network programming

To gain a deeper understanding of these concepts, it's beneficial to explore resources such as
online tutorials, textbooks, and educational websites. Additionally, practical application through
coding exercises and projects can reinforce understanding.

~5~
By actively engaging with these resources and programming tasks, individuals can enhance their
comprehension of the concepts and principles that underpin various programs.

How computers store data

All data that is stored in a computer is converted to sequences of 0s and 1s.

A computer’s memory is divided into tiny storage locations known as bytes. One byte is only
enough memory to store a letter of the alphabet or a small number. In order to do anything
meaningful, a computer has to have lots of bytes. Most computers today have millions, or even
billions, of bytes of memory. Each byte is divided into eight smaller storage locations known as
bits. The term bit stands for binary digit. Computer scientists usually think of bits as tiny
switches that can be either on or off. Bits aren’t actual “switches,” however, at least not in the
conventional sense. In most computer systems, bits are tiny electrical components that Can hold
either a positive or a negative charge. Computer scientists think of a positive charge as a switch
in the on position, and a negative charge as a switch in the off position. Figure 1-6 shows the
way that a computer scientist might think of a byte of memory: as a collection of switches that
are each flipped to either the on or off position.

Storing Numbers
A bit can be used in a very limited way to represent numbers. Depending on whether the bit is
turned on or off, it can represent one of two different values. In computer systems, a bit that is
turned off represents the number 0 and a bit that is turned on represents the number 1. This
corresponds perfectly to the binary numbering system. In the Binary numbering system (or
binary, as it is usually called) all numeric values are written as sequences of 0s and 1s. Here is an
example of a number that is written in binary: 10011101

The position of each digit in a binary number has a value assigned to it. Starting with the

rightmost digit and moving left, the position values are 2 0,21,22,23 and so forth, as shown in
Starting with the rightmost digit and moving left, the position values are 1, 2, 4, 8, and so forth.

For example 10011101 to get the value of this binary number

~6~
Fig 1.1

To determine the value of a binary number you simply add up the position values of all the 1s.
For example, in the binary number 10011101, the position values of the 1s are 1, 4, 8, 16, and
128. This is shown in Figure 1.1. The sum of all of these position values is 157. So, the value of
the binary number 10011101 is 157.

Storing Characters

Any piece of data that is stored in a computer’s memory must be stored as a binary number. That
includes characters, such as letters and punctuation marks. When a character is stored in
memory, it is first converted to a numeric code. The numeric code is then stored in memory as a
binary number. Over the years, different coding schemes have been developed to represent
characters in computer memory. Historically, the most important of these coding schemes is
ASCII, which stands for the American Standard Code for Information Interchange. ASCII is a
set of 128 numeric codes that represent the English letters, various punctuation marks, and other
characters. For example, the ASCII code for the uppercase letter A is 65. When you type an
uppercase A on your computer keyboard, the number 65 is stored in memory (as a binary
number, of course). In case you are curious, the ASCII code for uppercase B is 66, for uppercase
C is 67, and so forth. Appendix A shows all of the ASCII codes and the characters they
represent. The ASCII character set was developed in the early 1960s, and was eventually adopted
by most all computer manufacturers. ASCII is limited, however, because it defines codes for
only 128 characters. To remedy this, the Unicode character set was developed in the early 1990s.
Unicode is an extensive encoding scheme that is compatible with ASCII, and can also represent
the characters of many of the world’s languages. Today, Unicode is quickly becoming the
standard character set used in the computer industry.

How program works

~7~
A computer’s CPU can only understand instructions that are written in machine language.
Because people find it very difficult to write entire programs in machine language, other
programming languages have been invented. Earlier, we stated that the CPU is the most
important component in a computer because it is the part of the computer that runs programs.
Sometimes the CPU is called

the “computer’s brain,” and is described as being “smart.” Although these are common
metaphors, you should understand that the CPU is not a brain, and it is not smart. The CPU is an
electronic device that is designed to do specific things. In particular, the CPU is designed to
perform operations such as the following:

 Reading a piece of data from main memory


 Adding two numbers
 Subtracting one number from another number
 Multiplying two numbers
 Dividing one number by another number
 Moving a piece of data from one memory location to another
 Determining whether one value is equal to another value

And so forth . . .

As you can see from this list, the CPU performs simple operations on pieces of data.The CPU
does nothing on its own, however. It has to be told what to do, and that’s the purpose of a
program. A program is nothing more than a list of instructions that cause the CPU to perform
operations.

Each instruction in a program is a command that tells the CPU to perform a specific operation.
Here’s an example of an instruction that might appear in a program:10110000 To you and me,
this is only a series of 0s and 1s. To a CPU, however, this is an instruction to perform an
operation

1 It is written in 0s and 1s because CPUs only understand instructions that are written in machine
language, and machine language instructions are always written in binary. A machine language
instruction exists for each operation that a CPU is capable of performing. For example, there is
an instruction for adding numbers; there is an instruction for subtracting one number from

~8~
another; and so forth. The entire set of instructions that a CPU can execute is known as the
CPU’s

Instruction set. From Machine Language to Assembly Language

Computers can only execute programs that are written in machine language. As previously
mentioned, a program can have thousands, or even a million or more binary instructions, and
writing such a program would be very tedious and time consuming. Programming in machine
language would also be very difficult because putting a 0 or a 1 in the wrong place will cause an
error.
1.1.3. Designing a program
Programs must be carefully designed before they are written. During the design process,
programmers use tools such as pseudocode and flowcharts to create models of programs.
1.2. Obtaining Design documentation
What Is Design Documentation?

Oftentimes, product development teams leave design documentation for later stages of the design
process, explaining it by a lack of time managing documents and the need to dive into the design
process. However, without proper design documentation, it is easy to lose track of the initial
goal, get confused at some stages of design implementation, and waste time going in circles
during some design decisions in question.

Design documentation takes time to develop and adjust. Still, it is an essential part of the design
process that allows streamlining and empowering decision making, optimize workflows, and
ensure the exact result needed.

In this article, we will discuss what design documentation in the software engineering process
includes, the advantages of having it in place at the very beginning, and best practices on
documenting deliverables at each stage of the design process.

Experts at Adobe XD define design documentation as an essential set of documents and other
resources that contain important aspects of the product design. Design documentation should
include information about the project’s goals, product features, deadlines for every stage of the
design process, and implementation details. It should also contain information about the target
auditory and factors to take into account for design decisions.

~9~
Why Do You Need Documentation in the Design Process?

Based on the global design best practices and our design development expertise, we would like
to outline the following benefits of creating and maintaining design documentation for any
project. Utilizing documentation in the design process allows:

Defining and following the project’s goals


Streamlining design implementation
Engaging the team
Preserving the company’s knowledge
Maintaining operational consistency and much more.

A specification of requirements or Program of Requirements is a document used in a design or


procurement process. An optimal construction process begins with a thorough requirements

Specification, which comprehensively details the demands and wishes. The aim of a Program of

Requirements is to lay down a clear framework for everyone involved in the project so that
everyone understands which criteria must be met. Hence, the program of requirements is an
important guideline for the designers to ensure that they deliver the desired result.

Understanding the Programming Process

There are six programming phases:

 Understand the problem


 Plan the logic
 Code the program
 Use software to translate the program to machine language
 Test the program
 Deploy the program into production

Understanding the problem

 May be the most difficult phase


 Users may not be able to articulate their needs well
 User needs may be changing frequently

~ 10 ~
 Programmers may have to learn the user’s functional job tasks
 Failure to understand the problem is the major cause of most project failures

Planning the logic:

• Plan the steps that the program will take

• Use tools such as flowcharts and pseudo code to depict or illustrate the structure or steps of
program.

• Flowchart: a pictorial representation of the logic steps

• Pseudo code: English-like representation of the logic

• Walk through the logic before coding by desk-checking the logic.

~ 11 ~
~ 12 ~
Unit two Document the program logic or design

This unit is developed to provide you the necessary information regarding the following content
coverage and topics:

 Structuring diagrams of program flow and modules according project


standards
 Documenting program scope and limits
 Documenting or referencing special routines or procedures
 Identifying and revising references for tables, files, inputs, outputs, and
other program functionalities
 Using templates as applicable

This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:

 Structure diagrams of program flow and modules according project standards

 Document program scope and limits

 Document or referencing special routines or procedures

 Identify and revising references for tables, files, inputs, outputs, and other program
functionalities

 Use templates as applicable

~ 13 ~
2.1 Structuring diagrams of program flow and modules according project standards

2.2 Documenting program scope and limits

2.3 Documenting or referencing special routines or procedures

~ 14 ~
2.4 Identifying and revising references for tables, files, inputs, outputs, and other program
functionalities

2.5 Using templates as applicable

~ 15 ~
Unit three Validate the design

This unit is developed to provide you the necessary information regarding the following content
coverage and topics:

 Checking Program flow, states or conditions for interfaces and compliance


to design documentation requirements

 Gaining Feedback/input from appropriate person

This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:

 Checking Program flow, states or conditions for interfaces and compliance to


design documentation requirements

 Gaining Feedback/input from appropriate person

~ 16 ~
3.1 Checking Program flow, states or conditions for interfaces and compliance to design
Documentation requirements

3.2 Gaining Feedback/input from appropriate person

~ 17 ~

You might also like