design-program-logic-lecture-notes
design-program-logic-lecture-notes
HARAMBEE UNIVERSITY
WEB DEVELOPMENT AND DATABASE
ADMINISTRATION
LEVEL III
Table of Contents
LO #1- Select the Program Design Approach .............................................................................................. 3
Instruction sheet ...................................................................................................................................... 3
Information Sheet 1.1: Obtaining Design documentation ....................................................................... 4
Self-Check 1.1 ......................................................................................................................................... 6
Information Sheet 1.2: Reviewing and clarifying requirements for the program ................................... 7
Self-Check 1.2 ......................................................................................................................................... 9
Information Sheet 1.3: Determining Design approach .......................................................................... 10
Self-Check 1.3 ....................................................................................................................................... 43
Operation Sheet 1: Creating a flowchart ............................................................................................... 46
Lap Test 1 .............................................................................................................................................. 49
LO #2- Document the program logic or design ......................................................................................... 50
Instruction sheet .................................................................................................................................... 50
Information Sheet 2.1: Project standards .............................................................................................. 51
Self-Check 2.1 ....................................................................................................................................... 53
Information Sheet 2.2: Structuring Diagrams of program flow and modules ....................................... 54
Self-Check 2.2 ....................................................................................................................................... 67
Operation Sheet 2: Crating UML diagram ............................................................................................ 68
Lap Test 2 .............................................................................................................................................. 70
Information sheet 2.3: Documenting Program scope and limits ........................................................... 71
Self-Check 2.3 ....................................................................................................................................... 71
Information sheet 2.4: Documenting or referencing Special routines or procedures ............................ 72
Self-Check 2.4 ....................................................................................................................................... 74
Information sheet 2.5: Identifying and revising references for tables, files, inputs, and outputs ......... 75
Self-Check 2.5 ....................................................................................................................................... 79
Information sheet 2.6: Using Templates ............................................................................................... 80
LO #3- Validate the design ........................................................................................................................ 80
Instruction sheet .................................................................................................................................... 81
Instruction Sheet 3.1: Checking Program flow, states or conditions .................................................... 81
Self-Check 3.1 ....................................................................................................................................... 82
Instruction Sheet 3.2: Gaining Feedback/input from appropriate person ............................................. 84
Self-Check 3.2 ....................................................................................................................................... 86
REFENCES................................................................................................................................................... 88
Answer Key ................................................................................................................................................ 89
Page 2 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Instruction sheet
This learning guide is developed to provide you the necessary information regarding the following
content coverage and topics:
This guide 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:
Learning Instructions:
Read the specific objectives of this Learning Guide.
Page 3 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Program logic is the implementation of the program's requirements and design. If the design of the
application is bad, the program logic can nevertheless be professionally implemented. For example, if
the user interface is poorly conceived, the program logic can execute that second-rate interface.
Programming logic involves logical operations on hard data that works according to logical principles
and quantifiable results.
The important distinction here is that programming logic, and logic in general, is fundamentally set
against other kinds of programming that are not built on hard logic or quantifiable states and results. For
example, modal logic by its nature is set against the theoretical quantum operations that don't provide a
specific set state that computers can apply logic to.
Programming logic in general rests on a foundation of computational logic that is shared by both
humans and machines, which is what we explore as we continue to interact with new technologies. With
that in mind, one could develop more specific definitions of a programming logic having to do with the
basis of a piece of code.
Generally,
Program logic is a picture of why and how you believe a program or a policy will work.
Program logic demonstrates design & implementation of competence.
Program logic provides a chain of reasoning that links investments with results.
Program logic is a series of “if-then” relationships that, if implemented as intended, lead to the
desired outcomes.
1.1 Obtaining Design documentation
The Design Document will be the starting point and in many cases you should, do the Design
Document before doing any of the actual work of program. When you write code for a program, you
usually will have clarified your requirements and planning the design before you write the first line of
actual code. Having the type of documentation that we are expecting helps ensure a number of things
like; you are doing what the customer wants; that when you are done, you actually did what you
intended to do; that in case of personnel problems you project continuity remains; etc.
Page 4 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Logic model
Logic models provide a kind of map for a program or initiative, helping clarify a program or policy’s
destination, the pathways toward the destination, and markers along the way. In this consider:
• Where are you going?
• How will you get there?
• What will tell you that you have arrived?
Logic models provide a simplified picture of the relationships between the program activities and the
desired outcomes of the program. It is valuable in supporting:
Program planning.
Program implementation.
Program monitoring.
Program evaluation.
Page 5 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
1. __________provide a simplified picture of the relationships between the program activities and the
desired outcomes of the program
A. Logic models
B. Program planning.
C. Program implementation.
D. None
3. It defines a picture of why and how you believe a program or a policy will work.
A. Program planning.
B. Program implementation.
C. Program logic
D. Program monitoring.
4. We use a logic model for all the following activities except one.
A. Brings detail to broad goals.
B. Helps identify gaps in program logic and clarify assumptions.
C. Builds understanding and promotes consensus.
D. Makes implicit underlying beliefs.
5. One of the following will be the starting point in many cases you should do before doing any of the
actual work of program.
A. Design Document
B. Coding program
C. Testing program
Page 6 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Information Sheet 1.2: Reviewing and clarifying requirements for the program
1.2 Reviewing and clarifying requirements for the program
A program of requirements
Page 7 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Page 8 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Page 9 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Page 10 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
To avoid any crash, malfunction or lack of performance, the IT infrastructure should have solid
foundations. In this phase, the specialist recommends the kinds of clients and servers needed on a cost
and time basis, and technical feasibility of the system. Also, in this phase, the organization creates
interfaces for user interaction. Other than that, data models and entity relationship diagrams (ERDs) are
also created in the same phase.
Based on the requirements specified in the analysis phase algorithms are developed at design stage.
Develop a series of steps with a logical order which, when applied to the input would produce the
specified output. Consider alternative technology configurations to develop the system (hardware,
software, security capability of the system, network alternatives, etc.)
Page 11 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Management and control of the technical realization of the system: Detailed program specification,
detail system specifications for the functions identified in the analysis: managerial, organizational and
technological components of the system solution (input, processes, output, user interface, database
design, processing, manual procedures, controls, and procedural controls; security, documentation,
training, organizational change).
Program algorithm
An algorithm is a set of instructions designed to perform a specific task. This can be a simple process,
such as multiplying two numbers, or a complex operation, such as playing a compressed video
file. Search engines use proprietary algorithms to display the most relevant results from their
search index for specific queries. In computer programming, algorithms are often created as functions.
These functions serve as small programs that can be referenced by a larger program. For example, an
image viewing application may include a library of functions that each uses a custom algorithm to
render different image file formats. An image editing program may contain algorithms designed to
process image data. Examples of image processing algorithms include cropping, resizing, sharpening,
blurring, red-eye reduction, and color enhancement.
In many cases, there are multiple ways to perform a specific operation within a software program.
Therefore, programmers usually seek to create the most efficient algorithms possible. By using highly
efficient algorithms, developers can ensure their programs run as fast as possible and use
minimal system resources. Of course, not all algorithms are created perfectly the first time. Therefore,
developers often improve existing algorithms and include them in future software updates. When you
see a new version of a software program that has been "optimized" or has "faster performance," it most
means the new version includes more efficient algorithms.
The way data are organized in a computer memory is said to be data structure and the sequence of
computational steps to solve a problem is said to be an algorithm. Therefore a program is nothing but
data structure plus algorithms. An algorithm is a well defined computational procedure that takes some
Page 12 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
values or a set of values as input and produces some values or a set of values as output. An algorithm is
a procedure for solving a problem in terms of the actions to be executed and the order in which those
actions are to be executed. An algorithm is,
Algorithm development
Once the requirements of a program are defined algorithm development is the next step. An algorithm is
procedure for solving a problem in terms of the action to execute (What to do) and the order in which
these actions are executed (done). An algorithm needs to be:
- Precise and unambiguous (No ambiguity in any instruction and in the order of execution),
- Simple,
- General (1 inch is equal to 2.54cm is not an algorithm, it has to convert a supplied number of inches)
- Correct,
- Finite (has to have an end),
- Handles all exceptions,
- Efficient in time, memory and other resources,
Many different methods exist for constructing algorithms, (An algorithm can be expressed in many
ways). Some of those methods are Narrative, Flowchart and Pseudo-code.
Narrative: Often used to narrate the algorithm, can be understood by any user who may not have any
knowledge of computer programming. Too wordy, Too ambiguous and can be interpreted in different ways.
Example: Accept salary of the employee. Calculate bonus as 10% of salary and add it to salary. Accept
service year of employee. If the service year is greater than 10, give additional 100 birr as bonus.
Display the bonus of the employee.
Page 13 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
solution to a given problem. Flowcharts are used in analyzing, designing, documenting or managing a
process or program in various fields.
A flow chart can be used to:
Define and analyze processes.
Build a step-by-step picture of the process for analysis, discussion, or communication.
Define, standardize or find areas for improvement in a process,
A picture can say a thousand words! That is why programmers use flowcharts to display their ideas.
Flowcharts easily display the way a program naturally flows from one statement to the next. The
following are the symbols used when drawing flowcharts.
Page 14 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
In addition to the Basic Flowchart template, Visio provides a variety of templates for more specific
kinds of diagrams, such as data flow diagrams, timelines, and software modeling.
When you open the Basic Flowchart template, the Basic Flowchart Shapes stencil opens too. Each
shape on the stencil represents a different step in a process.
Page 15 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Of all of the shapes on the Basic Flowchart Shapes stencil, only a few are commonly used.
Example 1: A certain company plan to give 10% bonus to each of its employees at the end of every year. If
an employee has been working for 10 years or more at the company, she/he is to get an additional birr 100.
Draw a flowchart of an algorithm to calculate and print the bones for a given employee.
Solution: Analysis problem is to compute bonus for employee. To do so, the salary and number of
service years of the employee must be known. Let the salary be denoted by SAL, service
denoted by YEAR and bonus by BONUS. To compute the bonus, we multiply the salary by
10% and assign the result to BONUS. Thus, BONUS = SAL*0.10. If the employee has served
Page 16 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
at least 10 years, birr 100 is added to the computed bonus of the employee and the result is
displayed. Otherwise the originally computed bonus is displayed.
Algorithm: Uses English to write operations in a group.
1. Read employee’s salary and year of service.
2. Calculate the employee’s bonus.
3. If years of service is greater than or equal to 10 then increase the bonus. Otherwise only print the bonus.
Example 1: A flowchart for calculating bonus
Page 17 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Example 3. A program that identifies a larger and smaller number from two numbers
Example 4. Calculate grade for ten students based on the scale: >80-A, >60-B, > 50-C, >40-D, <40-F.
Page 18 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
Page 19 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Downloaded by Rhyn Samson ([email protected])
lOMoARcPSD|48566537
When we write programs, we assume that the computer executes the program starting at the
beginning and working its way to the end. We call this sequence. Sequence is a linear progression
where one task is performed sequentially after another. In pseudo code it looks like this:
Statement 1; For example, for making a cup of tea:
Statement 2; Organize everything together;
Statement 3; Plug in kettle;
Statement 4; Put teabag in cup;
Statement 5; Put water into kettle;
Wait for bottle to boil;
Add water to cup;
Remove teabag with spoon/fork/;
Add milk and /or sugar;
Serve;
Pseudo Code with LOOP
Let’s say we wish to indicate that you need to keep filling the kettle with water until it is full. We
call this a loop. WHILE is a loop (repetition) with a simple conditional test at its beginning Or,
in general
Example,
While (<condition>) Organize everything together;
Do <Statements>; Plug in kettle;
Put teabag in cup;
Endwhile; While (Kettle is not full)
As we could state this as: Do keep filling Kettle;
EndWhile;
While (Kettle is not full) Wait for bottle to boil;
Do keep filling Kettle; Add water to cup;
Remove teabag with spoon/fork/;
EndWhile; Add milk and /or sugar;
Serve;
Pseudo Code with SELECTION
Page 20 of 95 Federal TVET Agency TVET Program Title: Web Development and DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
If (<condition>) Example,
Then <Statement>; Organize everything together;
Else <Statement>; Plug in kettle;
EndIf; Put teabag in cup;
So, we could state this as: While (Kettle is not full)
If (Sugar is required) Do keep filling Kettle;
Then add Sugar; EndWhile;
Else don’t add sugar; Wait for bottle to boil;
EndIf Add water to cup;
Remove teabag with spoon/fork/;
Add milk;
If (Sugar is required)
Then add Sugar;
Else do nothing;
EndIf;
Page 21 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Example3. A pseudo-code that calculates grade hint Grade A>=80, B>=60, C>=50,D>=40,F<40
Algorithm vs. Pseudo-code: Both Algorithm and Pseudo code more or less describe the logical sequence
of steps that follow in solving a problem.
- Pseudo-code consists of short readable and formally-styled natural language that used to explain
specific tasks within a program's algorithm while an Algorithm is a group of instructions or a set
of steps applied to solve a particular problem.
- Pseudo code is a method used to define an algorithm. An algorithm is written in a natural
language while pseudo code can be written in high level programming languages.
- Pseudo-code cannot be executed on a real computer, but it models and resembles real
programming code, and is written at roughly the same level of detail.
Example: Design the Pseudo-code that sums all the even numbers between 1 and 20 inclusive and then
displays the sum and draw flowchart for it. It uses a repeat loop and contains a null else within
the repeat loop.
Page 22 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Solution:
Start
Sum = 0
count = 1
REPEAT
IF count is even THEN sum = sum + count
count = count + 1
UNTIL count > 20
DISPLAY sum
Stop
Page 23 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
A data entity is anything real or abstract about which we want to store data. Entity types fall into five
classes: roles, events, locations, tangible things, or concepts. The best way to identify entities is to ask the
system owners and users to identify things about which they would like to capture, store and produce
information. Another source for identifying entities is to study the forms, files, and reports generated by
the current system. E.g. a student registration form would refer to Student (a role), but also Course (an
event), Instructor (a role), Advisor (a role), Room (a location), etc.
There are natural associations between pairs of entities. Listing the entities down the left column and
across the top of a table, we can form a relationship matrix by filling in an active verb at the intersection
of two entities which are related. Each row and column should have at least one relationship listed or else
the entity associated with that row or column does not interact with the rest of the system. In this case, you
should question whether it makes sense to include that entity in the system. A student is enrolled in one or
more courses
Page 24 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
At each end of each connector joining rectangles, we need to place a symbol indicating the minimum and
maximum number of instances of the adjacent rectangle there are for one instance of the rectangle at the
other end of the relationship line. The placement of these numbers is often confusing. The first symbol is
either 0 to indicate that it is possible for no instances of the entity joining the connector to be related to a
given instance of the entity on the other side of the relationship, 1 if at least one instance is necessary or it
is omitted if more than one instance is required. For example, more than one student must be enrolled in a
course for it to run, but it is possible for no students to have a particular instructor (if they are on leave).
The second symbol gives the maximum number of instances of the entity joining the connector for each
instance of the entity on the other side of the relationship. If there is only one such instance, this symbol is
1. If more than 1, the symbol is a crows foot opening towards the rectangle. i.e. A student is enrolled in
one or more courses.
A data attribute is a characteristic common to all or most instances of a particular entity. In this step we try
to identify and name all the attributes essential to the system we are studying without trying to match them
to particular entities. The best way to do this is to study the forms, files and reports currently kept by the
users of the system and circle each data item on the paper copy.
Page 25 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
For each attribute we need to match it with exactly one entity. Often it seems like an attribute should go with
more than one entity (e.g. Name). In this case you need to add a modifier to the attribute name to make it
unique (e.g. Customer Name, Employee Name, etc.) or determine which entity an attribute "best' describes. If
you have attributes left over without corresponding entities, you may have missed an entity and its
corresponding relationships. Identify these missed entities and add them to the relationship matrix now.
If you introduced new entities and attributes in step 8, you need to redraw the entity relationship diagram.
When you do so, try to rearrange it so no lines cross by putting the entities with the most relationships in
the middle. If you use a tool like Systems Architect, redrawing the diagram is relatively easy.
Look at your diagram from the point of view of a system owner or user. Is everything clear? Check
through the Cardinality pairs. Also, look over the list of attributes associated with each entity to see if
anything has been omitted.
Example: A company has several departments. Each department has a supervisor and at least one
employee. Employees must be assigned to at least one, but possibly more departments. At least one
employee is assigned to a project, but an employee may be on vacation and not assigned to any projects. The
important data fields are the names of the departments, projects, supervisors and employees, as well as the
supervisor and employee number and a unique project number.
1. Identify Entities: The entities in this system are Department, Employee, Supervisor and Project.
One is tempted to make Company an entity, but it is a false entity because it has only one instance in
this problem. True entities must have more than one instance.
2. Find Relationships: We construct the following Entity Relationship Matrix:
Page 26 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 27 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
5. Define Primary Keys: The primary keys are Department Name, Supervisor Number, Employee
Number, Project Number.
6. Draw Key-Based ERD: There are two many-to-many relationships in the rough ERD above,
between Department and Employee and between Employee and Project. Thus we need the
associative entities Department-Employee and Employee-Project. The primary key for Department-
Employee is the concatenated key Department Name and Employee Number. The primary key for
Employee-Project is the concatenated key Employee Number and Project Number.
7. Identify Attributes: The only attributes indicated are the names of the departments, projects, supervisors
and employees, as well as the supervisor and employee NUMBER and a unique project number.
8. Map Attributes: For each attribute, match it with exactly one entity that it describes.
Page 28 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
10. Check Results: The final ERD appears to model the data in this system well.
1.3.4 HIPO Charts (HIPO Diagram)
HIPO stands for Hierarchical Input Process Output. HIPO diagram is a combination of two organized
method to analyze the system and provide the means of documentation. HIPO model was developed by
IBM in year 1970. The HIPO acts as a hierarchical chart for the function performed by the system. The
HIPO chart is a tool used to analyze a problem and visualize a solution using the top down design
approach. Starting at the global (macro) level, the chart is decomposed repeatedly at ever-greater levels of
detail until the logical building blocks (functions) are identified.
A HIPO model consists of a hierarchy chart that graphically represents the program’s control structure and
a set of IPO (Input-Process-Output) charts that describe the inputs to, the outputs from, and the functions
performed by each module on the hierarchy chart. HIPO diagram represents the hierarchy of modules in
the software system. Analyst uses HIPO diagram in order to obtain high-level view of system functions. It
decomposes functions into sub-functions in a hierarchical manner. It depicts the functions performed by
Page 29 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
system. HIPO diagrams are good for documentation purpose. Their graphical representation makes it
easier for designers and managers to get the pictorial idea of the system structure.
Page 30 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Example: Both parts of HIPO diagram, Hierarchical presentation and IPO Chart are used for structure
design of software program as well as documentation of the same.
Software analysis and design is the intermediate stage, which helps human-readable requirements to be
transformed into actual code.
Types of DFD
1. Logical DFD - This type of DFD concentrates on the system process and flow of data in the system.
For example in a Banking software system, how data is moved between different entities.
2. Physical DFD - This type of DFD shows how the data flow is actually implemented in the system. It
is more specific and close to the implementation.
DFD Components
DFD can represent Source, destination, storage and flow of data using the following set of components
Page 31 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Entities -Entities are source and destination of information data. Entities are represented by
rectangles.
Process -Activities and action taken on the data are represented by Circle or Round-edged
rectangles.
Data Storage- There are two variants of data storage, it can either be represented as a rectangle with
absence of both smaller sides or as an open-sided rectangle with only one side missing.
Data Flow- Movement of data is shown by pointed arrows. Data movement is shown from the base
of arrow as its source towards head of the arrow as destination.
Levels of DFD
Level 0: Highest abstraction level DFD is known as Level 0 DFD, which depicts the entire
information system as one diagram concealing all the underlying details. Level 0 DFDs are also
known as context level DFDs.
Level 1: The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1 DFD depicts
basic modules in the system and flow of data among various modules. Level 1 DFD also mentions
basic processes and sources of information.
Page 32 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Level 2 - At this level, DFD shows how data flows inside the modules mentioned in Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper level of
understanding unless the desired level of specification is achieved.
Structure Charts
Structure chart is a chart derived from Data Flow Diagram. It represents the system in more detail than
DFD. It breaks down the entire system into lowest functional modules, describes functions and sub-
functions of each module of the system to a greater detail than DFD. Structure chart represents
hierarchical structure of modules. At each layer a specific task is performed.
Module - It represents process or subroutine or task. A control module branches to more than one sub-
module. Library Modules are re-usable and invoke-able from any module.
Condition - It is represented by small diamond at the base of module. It depicts that control module can
select any of sub-routine based on some condition.
Jump - An arrow is shown pointing inside the module to depict that the control will jump in the middle of
the sub-module.
Loop - A curved arrow represents loop in the module. All sub-modules covered by loop repeat execution of module.
Page 33 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Data flow - A directed arrow with empty circle at the end represents data flow.
Control flow - A directed arrow with filled circle at the end represents control flow.
In the example mentioned above such as ID, Age, Gender, First, Middle, Last, Street, Area, etc. are
elementary data items, whereas (Name, Address) is group data items.
Data Structure
Page 34 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
A data structure is a Specific way to store and organize data in a computer's memory so that these data can
be used efficiently later. Data may be arranged in many different ways such as the logical or mathematical
model for a particular organization of data is termed as a data structure. The way data are organized in a
computer memory is said to be data structure. In computer science, a data structure is a particular way
of storing and organizing data in a computer so that it can be used efficiently. A data structure is a group
of data elements grouped together under one name. These data elements, known as members, can have
different types and different lengths. Given a problem, the first step to solve the problem is obtaining
one’s own abstract view or model of the problem. This process of modeling is called abstraction.
.
Figure 17: Process of Modeling
The model defines an abstract view to the problem. This implies that the model focuses only on problem
related stuff and that a programmer tries to define the properties of the problem. These properties include
the data which are affected and the operations that are involved in the problem. With abstraction you
create a well-defined entity that can be properly handled. These entities define the data structure of the
program. An entity with the properties just described is called an abstract data type.
Abstract Data Types (ADT): An ADT consists of an abstract data structure and operations. Put in other
terms, an ADT is an abstraction of a data structure.
Page 35 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Abstraction
Abstraction is a process of classifying characteristics as relevant and irrelevant for the particular purpose
at hand and ignoring the irrelevant ones. Applying abstraction correctly is the essence of successful
programming.
The RAD model is based on prototyping and iterative development with no specific planning involved.
The process of writing the software itself involves the planning required for developing the product.
RAD focuses on gathering customer requirements through workshops or focus groups, early testing of
the prototypes by the customer using iterative concept, reuse of the existing prototypes (components),
continuous integration and rapid delivery.
Rapid application development is a software development methodology that uses minimal planning in
favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component
of the product. In the RAD model, the functional modules are developed in parallel as prototypes and are
integrated to make the complete product for faster product delivery. Since there is no detailed preplanning,
it makes it easier to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of developers,
domain experts, customer representatives and other IT resources working progressively on their
component or prototype. The most important aspect for this model to be successful is to make sure that the
prototypes developed are reusable.
Page 36 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Process Modeling: The data object sets defined in the Data Modeling phase is converted to
establish the business information flow needed to achieve specific business objectives as per the
business model. The process model for any changes or enhancements to the data object sets is
defined in this phase. Process descriptions for adding, deleting, retrieving or modifying a data
object are given.
Application Generation: The actual system is built and coding is done by using automation tools
to convert process and data models into actual prototypes.
Testing and Turnover: The overall testing time is reduced in the RAD model as the prototypes
are independently tested during every iteration. However, the data flow and the interfaces between
all the components need to be thoroughly tested with complete test coverage. Since most of the
programming components have already been tested, it reduces the risk of any major issues.
The customer may need some changes after he/she gets to see the software. However, the change process
is quite rigid and it may not be feasible to incorporate major changes in the product in the traditional
SDLC. The RAD model focuses on iterative and incremental delivery of working models to the
customer. This results in rapid delivery to the customer and customer involvement during the complete
development cycle of product reducing the risk of non-conformance with the actual user requirements.
RAD model can be applied successfully to the projects in which clear modularization is possible. If the
project cannot be broken into modules, RAD may fail. The following pointers describe the typical
scenarios where RAD can be used.
RAD should be used only when a system can be modularized to be delivered in an incremental
manner.
It should be used if there is a high availability of designers for modeling.
Page 37 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
It should be used only if the budget permits use of automated code generating tools.
RAD SDLC model should be chosen only if domain experts are available with relevant business
knowledge.
Should be used where the requirements change during the project and working prototypes are to
be presented to customer in small iterations of 2-3 months.
RAD model enables rapid delivery as it reduces the overall development time due to the reusability of the
components and parallel development. RAD works well only if high skilled engineers are available and
the customer is also committed to achieve the targeted prototype in the given time frame. If there is
commitment lacking on either side the model may fail.
CASE systems provide tools to automate, to manage and simplify the development process. These can
include tools for Summarizing initial requirements, Developing flow diagrams, Scheduling development
tasks, Preparing documentation, Controlling software versions and Developing program code Use of
CASE tools accelerates the development of project to produce desired result and helps to uncover flaws
before moving ahead with next stage in software development.
Page 38 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Upper Case Tools - Upper CASE tools are used in planning, analysis and design stages of SDLC.
Lower Case Tools - Lower CASE tools are used in implementation, testing and maintenance.
Integrated Case Tools - Integrated CASE tools are helpful in all the stages of SDLC, from
Requirement gathering to Testing and documentation.
CASE tools can be grouped together if they have similar functionality, process activities and capability of
getting integrated with other tools.
Page 39 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
the system such as user manual. For example, Doxygen, DrExplain, Adobe RoboHelp for
documentation.
Analysis Tools: These tools help to gather requirements, automatically check for any
inconsistency, inaccuracy in the diagrams, data redundancies or erroneous omissions. For example,
Accept 360, Accompa, CaseComplete for requirement analysis, Visible Analyst for total analysis.
Design Tools: These tools help software designers to design the block structure of the software, which
may further be broken down in smaller modules using refinement techniques. These tools provide detailing
of each module and interconnections among modules. For example, Animated Software Design.
Configuration Management Tools: An instance of software is released under one version.
Configuration Management tools deal with Version and revision management, Baseline
configuration management and Change control management.
Change Control Tools: These tools are considered as a part of configuration management tools.
They deal with changes made to the software after its baseline is fixed or when the software is first
released. CASE tools automate change tracking, file management, code management and more. It
also helps in enforcing change policy of the organization.
Prototyping Tools: Software prototype is simulated version of the intended software product.
Prototype provides initial look and feel of the product and simulates few aspect of actual product.
Prototyping CASE tools essentially come with graphical libraries. They can create hardware
independent user interfaces and design. These tools help us to build rapid prototypes based on
existing information. In addition, they provide simulation of software prototype. For example,
Serena prototype composer, Mockup Builder.
Web Development Tools: These tools assist in designing web pages with all allied elements like
forms, text, script, graphic and so on. Web tools also provide live preview of what is being
developed and how will it look after completion. For example, Fontello, Adobe Edge Inspect,
Foundation 3, Brackets.
Quality Assurance Tools: Quality assurance in a software organization is monitoring the
engineering process and methods adopted to develop the software product in order to ensure
conformance of quality as per organization standards. QA tools consist of configuration and
change control tools and software testing tools. For example, SoapTest, AppsWatch, JMeter.
Page 40 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
1.3.9 Prototyping
Prototyping is the process of quickly putting together a working model (a prototype) in order to test
various aspects of a design, illustrate ideas or features and gather early user feedback. Prototyping is often
treated as an integral part of the system design process, where it is believed to reduce project risk and cost.
It can also be a method used by designers to acquire feedback from users about future designs. The goal
of prototyping is to support requirements determination to develop concrete specifications for the ultimate
(final) system. Prototyping is most useful in the following circumstances/situation
User requirements are not clear or well understood
Only one or a few users involved
Possible designs are complex
Communication problems have existed in the past, between users and analysts
Page 41 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Implementation phase: After the design activity is completed, the next phase is the implementation
or development of the software. In this phase, developers start coding according to the requirements
and the design. Database administrators create the necessary data in the database, front-end developers
create the necessary interfaces and GUI to interact with the back-end all based on guidelines and
procedures defined by the company. Developers also write unit tests for each component to test the
new code that they have written, review each other’s code, create builds and deploy software to an
environment. This cycle of development is repeated until the requirements are met.
Testing phase: During testing, experienced testers start to test the system against the requirements.
The testers aim to find defects within the system as well as verifying whether the application behaves
as expected and according to what was documented in the requirements analysis phase. Testers can
either use a test script to execute each test and verify the results, or use exploratory testing which is
more of an experience based approach. It is possible that defects are identified in the testing phase.
Once a defect is found, testers inform the developers about the details of the issue and if it is a valid
defect, developers will fix and create a new version of the software which needs to be verified again.
This cycle is repeated until all requirements have been tested and all the defects have been fixed and
the software is ready to be shipped.
Maintenance phase: The maintenance phase involves making changes to hardware, software, and
documentation to support its operational effectiveness. It includes making changes to improve a
system's performance, correct problems, enhance security, or address user requirements. Once a
version of the software is released to production, there is usually a maintenance team that looks after
any post-production issues. If an issue is encountered in the production the development team is informed
and depending on how severe the issue is, it might either require a hot-fix which is created and shipped in a
short period of time or if not very severe, it can wait until the next version of the software.
Page 42 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Written Test
Self-Check 1.3
Directions: Answer all the questions listed below. Use the Answer sheet provided in the next page:
I. Choose the best answer (each 1 point)
1. software development method is called____________
A. Preliminary investigation
B. Programming design
C. Software life cycle
D. Maintenance of program
2. In which of the following you defining the problem and Suggesting a solution?
A. Preliminary investigation
B. Design phase
C. Implementation phase
D. Testing phase
3. Which one is not a primary activities involved in the analysis phase are as follows:
A. Gathering business requirement
B. Creating process diagrams
C. Performing a detailed analysis
D. Documentation of the project
4. In which phase we describe the desired features and operations of the system including business rules,
pseudo-code, screen layouts, and other necessary documentation?
A. Preliminary investigation
B. Design phase
C. Implementation phase
D. Testing phase
5. The sequence of computational steps to solve a problem is said to be _________?
A. Algorithm
B. Data Structure
C. Pseudo-code
D. D. Procedures
6. The way data are organized in a computer’s memory is said to be_______?
A. Algorithm
B. Data Structure
C. Pseudo code
D. Data gathering technique
Page 43 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
7. ____is used in planning an algorithm with sketching out the structure of the program before the actual coding
takes place.
A. Narrative
B. Flowchart
C. Algorithm
D. Pseudo-code
8. Which tools is used to analyze a problem and visualize a solution using the top down design approach?
A. RAD
B. HIPO chart
C. DFD
D. Data structure
9. This process of modeling is called _________.
A. Data structuring
B. abstraction
C. prototyping
D. All
10. Which one is Not true about DFD?
A. DFDs depict flow of data in the system at various levels
B. DFD does not contain any control or branch elements.
C. DFDs depict flow of control in the system at various levels
D. All
Part II: Matching (each 1 point)
Match from column B to column A.
Column A Column B
1. Algorism A. Cardinality
2. Graphical representation for an algorithm B. flowchart
3. Entity C. Diamond
4. It describes relationship D. Person
5. It defines the relationship between the entities in terms of numbers E. Solve problem
6. Computer Aided Software Engineering F. CASE
1. Draw the flow chart that calculates grade for ten students based on the scale: >80-A, >60-B, > 50-C, >40-D,
<40-F.
Page 44 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
2. Write a pseudo-code that calculates grade hint mark >=80 grade A, mark >=60 grade B, mark
>=50 grade C, mark >=40 grade D ,F<40.
Page 45 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
5. Drag from a connection point on the first shape to a connection point on the second shape. The
connector endpoints turn red when the shapes are connected.
6. Connect one shape to many from a single connection point. By default connectors are set to Right-Angle so
that if you connect a single point on one shape to three other shapes it will look like the figure below.
To have each connector radiate straight from the central point on the first shape to points on each of the
other shapes you need to set the connectors to Straight Connector as shown in the following figure.
Page 46 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
8. For each shape you want to connect to, drag from the same connection point on the first shape to a
connection point on each of the other shapes.
9. Right-click each connector and click Straight Connector.
10. Click the Pointer tool on the Standard toolbar to return to normal editing.
11. To add text to a shape or connector, select it, and then type. When you are finished typing, click on
a blank area of the page.
12. To change the direction of a connector's arrow, select the connection, and then on the Shape menu,
point to Operations, and click Reverse Ends.
Page 47 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
1. With your flowchart open, on the File menu click Page Setup.
2. Click the Page Size tab.
3. Under Page size click Size to fit drawing contents.
To see how the flowchart will print, look at the Print Preview, which is on the File menu. The
figure below shows a flowchart that prints on four pieces of letter-sized paper.
Page 48 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Instructions: Given necessary templates, tools and materials you are required to perform the
following tasks within 1:30 hour.
1. Trainees identified by their id, full name, sex, birth date, department, year of entry to the college
2. Trainers identified by their id, full name, sex, educational level, field of study, and experience,
department in which the trainer is working
3. Departments (like ICT, Manufacturing, Construction, Drafting, …) identified by their name,
sector, and department establishment date
4. Competencies identified by unit code, title, total hours to complete the competency, competency’s
owner department
5. Trainee’s competency records which contain records of competencies taken by trainee, the trainer
who gives the competency to the trainee, and whether the trainee’s result is satisfactory or
unsatisfactory.
Identify Entities, Attributes, Primary Keys (PK) and Foreign Keys (FK).
Draw entity relationship(ER) diagram for the identified entities using Ms Visio application.
Page 49 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Instruction sheet
This learning guide is developed to provide you the necessary information regarding the following
content coverage and topics:
project standards
Structuring Diagrams of program flow and modules
Documenting Program scope and limits
Documenting or referencing Special routines or procedures
Identifying and revising References for tables, files, inputs, and outputs
Using Templates
This guide 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:
Project standards
Structure diagrams of program flow and modules
Document Program scope and limits
Document or referencing Special routines or procedures
Identify and revising References for tables, files, inputs, and outputs,
Use Templates
Learning Instructions:
Read the specific objectives of this Learning Guide.
1. Follow the instructions described below.
2. Read the information written in the “Information Sheets”. Try to understand what are being discussed.
Ask your trainer for assistance if you have hard time understanding them.
3. Accomplish the “Self-checks” which are placed following all information sheets.
4. Ask from your trainer the key to correction (key answers) or you can request your trainer to correct
your work. (You are to get the key answer only after you finished answering the Self-checks).
5. If you earned a satisfactory evaluation proceed to “Operation sheets”.
6. Perform “the Learning activity performance test” which is placed following “Operation sheets” ,
7. If your performance is satisfactory proceed to the next learning guide,
8. If your performance is unsatisfactory, see your trainer for further instructions or go back to “Operation sheets”.
Page 50 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Setting Standards for Project Management and the Creating Project Plan
Project planning standards should be able to clearly define general project activities and address the specific
requirements of individual projects. The project standards should provide adequate details to ensure all team
members can identify project objectives and relate to its fulfillment. Clearly laid-down objectives are a basic
prerequisite for timely and successful completion of projects. The project standards should, as far as possible,
involve all persons who can meaningfully contribute to the functional requirements of a project.
Project planning standards must take into account the overall project management system, its merits and limitations,
define goals of the project, organize the information system with easy identification of project objectives and also
plan for bridging a system network to monitor and control the projects efficiently. The more elaborate the project
planning standards are, the more effective they will be to enhance the productivity of team members, allowing all
project team members to better understand the project objectives.
Organizations that have to manage multiple projects through effective collaboration and coordination
should establish planning standards for coordinating and managing the various projects. The project
planning standards for coordinating multiple projects should outline procedures for project prioritization,
resource utilization and the project status updating and reporting.
Page 51 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
No project plan standards can be deemed complete without cost details, staffing needs, resource
deployment (identifying project participants and project management tools) and training facilities. Project
planning standards should also include configuration management standards aimed at minimizing disruptions
affecting a project management system and ensuring smooth flow of project progress. Configuration standards
should be evolved and put in place to ensure all steps are scrutinized properly, approved after thorough
evaluation and drafted and documented as per requirement, and information shared.
Quality assurance also forms an indispensable part of project planning standards and quality assurance
procedures should, amongst other things, ensure commitment from all team members. Audit and
compliance authorities should assist quality assurance personnel to verify, at every stage, conformity of
project requirements (internal or external). Project scalability varies from project to project. Quality
assurance standards must obviously live up to the project size, project traits and the risks involved.
Needless to say, risk management standards are critically important while implementing project planning
standards. Risk management standards must recognize internal and external project risks and include
procedures for identifying and managing such risks.
No less important in project planning is establishing appropriate testing standards based on test plans
which are comprehensive (subjective) in nature. These testing standards are the outcome of active
participation of end-users and proper documentation of project progress at every stage. Here it is
important to note that if copies of customer/client (user-oriented) data are used during test management
procedures, then it becomes extremely important to set standards for the protection of data confidentiality.
Finally, care must be exercised to ensure that documentation standards comprehensively cover all details,
system methodologies and technological resources. Documentation is critical for helping the team
members to periodically review and modify the technology applications, system operability and standard
project management procedures whenever necessary.
Page 52 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 53 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
A Structure Chart in organizational theory as well as in the software engineering is known to be a chart
used for showing the breakdown of some particular system to its lowest manageable levels. Such levels
may be used in a structured programming for arranging the program modules into a “tree”. Each of the
modules is represented in a way of a box. Such box contains the module's name and the whole tree
structure visualizes the relationships between the mentioned modules. Any structure diagram or chart is
widely used as a top-down modular design tool. It is constructed of squares that all represent the different
modules in the system. There are also the lines that connect all these modules. The described lines
represent the connections as well as the ownership of different activities. The sub-activities may be also
represented with the help of the lines same way they are used in the organization charts.
In any structured analysis, structure charts are commonly used in order to specify the high-level design of
some particular computer program. As a design tool, these diagrams aid the programmer in conquering
and dividing some large and complicated software problem. It allows breaking a problem down into small
parts so they can become well understood by a human brain.
The process is called “top-down design”. It may be also described as a so-called “functional
decomposition”. Many programmers use a structure chart for building a program in a manner that is
similar to the way an architect uses a blueprint in terms of building a house. The program structure
diagram can be drawn and used in the design stage as a way for both the clients and the software designers
to communicate. A structure diagram depicts the complexity and the size of the system, the number of the
readily identifiable modules and functions as well as whether each of such functions is a manageable
entity. Unless the functions are manageable entities, they should be broken down into some smaller
components.
Any program structure diagram may be also used to diagram some associated elements. Such elements
should be able to comprise a thread or a run stream. Being often developed as a hierarchical diagram, such
Page 54 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
elements may be represented in some other drawing way as well. Any representation must describe the
breakdown of the configuration system into subsystems. A complete and accurate structure diagram may
be the key to the process of determining the configuration items.
A visual representation of the configuration system, as well as the internal interfaces among such
drawing’s Construction Industry Scheme (CIs), may be always done with the help of the professional tool,
such as the Concept Draw DIAGRAM diagramming software. The structure diagram may be used for
identifying the CIs as well as their associated artifacts. Doing it with the aid of Concept Draw DIAGRAM
as well as its extension (the Jackson Structured Programming (JSP) Diagrams solution) may simplify
anyone’s work of making such diagrams.
Page 55 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Any structure chart can be developed by, first of all, creating its structure. It is expected to place the root
of an upside-down tree. The last-mentioned tree is the one known to be forming the needed program
structure diagram. Next, the conceptualization of the main sub-tasks must be performed by the program in
order to solve the given problem. While creating the program structure diagrams, any programmer must be
focused on each of the sub-tasks individually. We should conceptualize the way each of the tasks being broken
down into even smaller ones. Having the finally broken-down program to a point where the leaves of the “tree”
become representing simple methods, they can be coded with only a few program statements. Usually, first of
all, there is a need for checking whether a Structure Diagram has been already developed before. In case it
was, any expert needs to review such drawing in order to ensure that it represents the current structure. Unless
it does, the updates need to be done to the diagram where needed.
Any data structure in computer science is known as a way of organizing and storing data in a computer.
Making this data more efficiently in this way seems to be one of the best options of what to do with it.
Different kinds of data structures may be well-known for fitting different applications. Some of them may
be highly specialized to some definite, specific tasks. Data structures are known to be the best widely
used tool for providing the needed means for managing the large amounts of data in an efficient way.
These amounts of data may be internet indexing services and large databases. The efficient data structures
may be a key to designing some efficient algorithms to be used in a computer science. Some programming
languages and formal design methods may outline the data structures, not the algorithms, being the main
thing that helps with organizing in software design. Both retrieving and storing can be carried out on data
stored in secondary and in main memory.
Page 56 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
The Jackson Structured Programming (JSP) Diagrams solution from Concept Draw Solution Park
provides the stencil library of design elements as well as multiple pre-made templates of the diagrams.
They all can be used for quick drawing the needed diagrams of programs. The design objects from this
solution may be also used while working in the Concept Draw DIAGRAM diagramming and vector
drawing software.
Page 57 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
see below were created in ConceptDraw DIAGRAM diagramming and vector drawing software using the
solutions of Software Development area. You can choose from ConceptDraw STORE to create your
Software Diagram in one moment or from Ms-Visio.
Page 58 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
UML is stands for Unified Modeling Language. UML is a standard language for specifying, visualizing,
constructing and documenting the object (artifacts) of software systems. UML was created by the Object
Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997.
UML was initially started to capture the behavior of complex software and non software system and now
it has become an OMG standard. It captures decisions and understanding about systems that must be
constructed. The UML gives you a standard way to write a system’s blueprints, covering conceptual
things, such as business processes and system functions, as well as concrete things, such as classes written
in a specific programming language, database schemas, and reusable software components. UML is a
pictorial language used to make software blueprints. OMG is continuously making efforts to create a truly
industry standard. UML is different from other common programming languages such as C++, Java,
COBOL, etc.
UML can be described as a general purpose visual modeling language to visualize, specify, construct and
document software system. Although UML is generally used to model software systems, it is not limited
within this boundary. It is also used to model non-software systems as well. For example, the process
flows in a manufacturing unit, etc. UML is not a programming language but tools can be used to generate
code in various languages using UML diagrams. The goal of UML can be defined as a simple modeling
mechanism to model all possible practical systems in today’s complex environment.
Class diagram
Class represents a set of objects having similar responsibilities. Class diagram is a static diagram. It
represents the static view of an application. Class diagram is used for visualizing, describing and
documenting different aspects of a system and also used for constructing executable code of the software
application. Class diagram describes the attributes and operations of a class and also the constraints
imposed on the system. Class diagram shows a collection of classes, interfaces, associations,
collaborations and constraints. It is also known as a structural diagram. UML Class Diagram gives an
overview of a software system by displaying classes, attributes, operations, and their relationships. This
Page 59 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Diagram includes the class name, attributes, and operation in separate designated compartments. Class
Diagram helps construct the code for the software application development.
Class diagrams have a lot of properties to consider while drawing but here the diagram will be considered
from a top level view. A collection of class diagrams represent the whole system.
The name of the class diagram should be meaningful to describe the aspect of the system.
Each element and their relationships should be identified in advance.
Responsibility (attributes and methods) of each class should be clearly identified
For each class, minimum number of properties should be specified, as unnecessary properties will
make the diagram complicated.
Use notes whenever required to describe some aspect of the diagram. At the end of the drawing it
should be understandable to the developer/coder.
Finally, before making the final version, the diagram should be drawn on plain paper and reworked
as many times as possible to make it correct.
Class: A class is a set of objects that share the same attributes, operations, and relationships. So a class is
similar to an entity type only operations are added. It is the most important building block of any object-
oriented system. A class represents a relevant concept from the domain, a set of persons, objects, or ideas.
Essential elements of UML class diagram are:
Class Name Attributes Operations
A class is symbolized by a rectangle with normally contains three compartments/sections and sometimes
with one additional component. The section includes class name, attributes and operations in separate section.
Class
Attributes
Operations
The top section is used to name class.
The second one (sometime the middle section) is used to show the attributes of the class.
The third (Bottom) section is used to describe the operations performed by the class that can be
applied to individual objects.
The fourth section is optional to show any additional components.
Page 60 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Attributes: An attribute is named property of a class which describes the object being modeled. In the
class diagram, this component is placed just below the class name. An attribute of a class represents a
characteristic of a class.
Student
Name: String
Address: String
Birthrate: Date
A derived attribute is computed from other attributes. For example, an age of the student can be easily
computed from birth date.
Student
Name: String
Address: String
Birthrate: Date
Age: date
Attributes characteristics
The attributes are generally written along with the visibility factor.
Public, private, protected and package are the four visibilities which are denoted by +, -, #, or ~ signs
respectively.
Visibility describes the accessibility of an attribute of a class.
Attributes must have a meaningful name that describes the use of it in a class.
Page 61 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
1. Dependencies
2. Generalizations
3. Associations
4. Realization
Dependency
Dependency is a relationship between two things in which change in one element also affects the other. A
dependency means the relation between two or more classes in which a change in one may force changes
in the other. However, it will always create a weaker relationship. Dependency indicates that one class
depends on another. In the following example, Student has a dependency on College
e.g.
Generalization:
Generalization can be defined as a relationship which connects a specialized element with a generalized
element. It basically describes the inheritance relationship in the world of objects. It is a parent and child
relationship. A generalization helps to connect a subclass to its super class. A sub-class is inherited from
its super class. Generalization relationship can't be used to model interface implementation.
Generalization is the process of extracting shared characteristics from two or more classes, and
combining them into a generalized super class. Class diagram allows inheriting from multiple super
classes. In this example, the class Student is generalized from Person Class.
e.g.
Generalization is represented by an arrow with a hollow arrow head as shown in the following figure. One
end represents the parent element and the other end represents the child element. Generalization is used to
describe parent-child relationship of two elements of a system.
Page 62 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Association
Relationships in UML are called “Associations”. An association represents a relationship between
two classes. An association indicates that objects of one class have a relationship with objects of another
class, in which this connection has a specifically defined meaning. Association is basically a set of links
that connects the elements of a UML model. It also describes how many objects are taking part in that
relationship. This kind of relationship represents static relationships between classes A and B. For
example; an employee works for an organization. Association is mostly use verb or a verb phrase or noun
or noun phrase between classes. In this example, the relationship between student and college is shown by
studies indicate relationship.
Association
______________
Realization
Realization can be defined as a relationship in which two elements are connected. One element describes
some responsibility, which is not implemented and the other one implements them. This relationship
exists in case of interfaces.
Multiplicity
Cardinalities in UML are called multiplicities. A multiplicity is a factor associated with an attribute. It
specifies how many instances of attributes are created when a class is initialized. If a multiplicity is not
specified, by default one is considered as a default multiplicity. Place multiplicity notations (association
names) above, on or below the association line near the ends of an association in the form of (min, max).
These symbols indicate the number of instances of one class linked to one instance of the other class.
Page 63 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Aggregation: Aggregation is a special type of association that models a whole- part relationship between
aggregate and its parts. An aggregation is a special case of an association meaning “consists of”:
For example, the class college is made up of one or more student. In aggregation, the contained classes are
never totally dependent on the lifecycle of the container. Here, the college class will remain even if the
student is not available.
Aggregation indicates a relationship where the child can exist separately from their parent class. Example:
Automobile (Parent) and Car (Child). So, if you delete the Automobile, the child Car still exists.
Composition: The composition is a special type of aggregation which denotes strong ownership between
two classes when one class is a part of another class. For example, if college is composed of classes
student. The college could contain many students, while each student belongs to only one college. So, if
college is not functioning all the students also removed.
Composition display relationship where the child will never exist independent of the parent. Example:
House (parent) and Room (child). Rooms will never separate into a House.
Enhanced ER diagram and UML modeling
Page 64 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Enhanced entity relationship diagrams are advanced database diagrams very similar to ER diagrams which
represent requirements and complexities of complex databases. It is a diagrammatic technique for
displaying:
Subclasses and super classes Aggregation
Specialization and generalization Attribute, and relationship inheritance
Category or union type
Specialization and generalization
There are very common relationships found in real entities. Specialized classes are often called as
subclass while generalized classes are called super class. A sub class is best understood by “IS A
analysis”. For example Technician IS A Employee, Laptop Is A computer.
An entity is specialized class of other entity. For example, Technician is special Employee in a
university system; Faculty is special class of Employee. We call this phenomenon as generalization/
specialization. In the example here Employee is generalized entity class while Technician and Faculty
are specialized class of Employee.
Example: This example instance of “Sub class” relationships. Here we have four sets of employee:
Secretary, Technician and Engineer. Employee is super class of rest three set of individual subclass of
Employee set.
First of all, Order and Customer are identified as the two elements of the system. They have a
one-to-many relationship because a customer can have multiple orders.
Order class is an abstract class and it has two concrete classes (inheritance relationship)
SpecialOrder and NormalOrder.
The two inherited classes have all the properties as the Order class. In addition, they have
additional functions like dispatch () and receive ().
The following class diagram has been drawn considering all the points mentioned above.
Page 65 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 66 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 67 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Step 1: Identify the class names: The first step is to identify the primary objects of the system.
Step 2: Distinguish relationships: Next step is to determine how each of the classes or objects is
related to one another. Look out for commonalities and abstractions among them; this will help you
when grouping them when drawing the class diagram.
Step 3. Select the software template to create for example ms-Visio 2007
Step 4. Open Ms-Office 2007 point to software and Database and click on UML Model Diagram and
click create.
Step 5: Create the Structure: First, add the class names and link them with the appropriate connectors.
You can add attributes and functions/ methods/ operations.
Class1
Example: Click on and drag to the place you want and Right click on Pont to
properties and click on it.
Page 68 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Change the class1 to Customer then click on Attributes to change it and click New, then click
properties and change the attribute 1 to Name, click ok and follow the same steps for the rest attribute
and for the other classes. At the end your class diagram must similar the first figure.
Page 69 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Instructions: Given necessary templates, tools and materials you are required to perform the
following tasks within 1:00 hour.
Case Scenarios
Draw a UML class diagram representing the following elements from the problem domain for
Ethiopian Football League. An Ethiopian Football League made up of least 14 clubs. Each football
clubs is composed of 23 to 25 players and one player captains the team. A team has a name and a
record. Players have a number and a position. All football teams play games against each other. Each
game has a score and a location. Teams are sometimes lead by a coach. A coach has a level of
accreditation and a number of years of experience. Coaches and players are people, and people have
names and addresses. Draw a class diagram for this information, and be sure to label all associations
with appropriate multiplicities.
Draw the corresponding (Design a) UML class diagram for the above requirements.
Page 70 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Project goals
Requirements
Major deliverables
Key milestones
Assumptions
Constraints
These critical scope aspects enable you to say no more easily when new requests arise as you are
trying to deliver a project on time and under budget. In the end, a well-documented scope statement
gets everyone team and stakeholders alike aligned around these important details that can make or
break a project.
Page 71 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
A scope of work (SOW) document is an agreement on the work you're going to perform on the
project. The document includes it's a section of the document that delineates the major phases across
the schedule of the project's duration. It should also mark the points in the project when your
deliverables are ready. There’s no doubt that a lot of thought, discussion, and sometimes even debate
goes into finalizing a solid scope. But all that work is worth it because having a well-considered
scope document can increase your chances of leading a project to successful completion. There are
lots of different ways to write a scope statement.
The list of possible elements you should consider adding to your project scope statement.
Business case and goals: Every project has goals, and this is where you’ll define them. This
typically includes the reasons the project is being supported (or funded), along with a set of
business goals or intended project outcomes for your team to keep in mind while executing the
project. These details are critical to document because there will be times when stakeholder (and
sometimes even team) requests creep in and put your timeline and budget at risk. But you can
push those risks away if change requests don’t meet the documented business case.
Project description and deliverables: This is a plain language overview of the project’s
deliverables. Avoid confusion by clearly outlining what will be delivered for approval through
the course of the project, as well as the final deliverable. For instance, if you’re creating a
database stores student data for a client, you might say something like: The student database
stores all the information of students and subjects lists for easily manageable student profiles.
It’s a simple description of what you’re working to deliver, but it also spells out small details
like the quantity, quality, amount, length, or whatever other aspects accurately describe the
project.
Acceptance criteria: Your scope should help you come to an agreement on what will be
delivered and leave no question when the project is complete. Acceptance criteria can be
measured, achieved, and used to prove that work is complete. Examples of some of the
Page 72 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 73 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 74 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Information sheet 2.5: Identifying and revising references for tables, files, inputs, and outputs
2.5 Identifying and revising references for tables, files, inputs, outputs and other program
functionalities
Master Data Services (MDS): Master data service implementations may vary; the services can be
characterized within three layers:
Core services, which focus on data object life cycle actions, along with the capabilities
necessary for supporting general functions applied to master data
Object services, which focus on actions related to the master data object type or classification
(such as customer or product)
Business application services, which focus on the functionality necessary at the business level
Figure 19: This Figure shows some example core services, such as the object create, update, and retire
services, among others; access control; data consolidation; integration; and the components supporting
consolidation, business process workflows, rule-directed operations, and so on.
Although the differences inherent across many organizations will reflect slight differences in the
business's catalog of services, this framework provides a reasonable starting point for evaluation and
design.
Page 75 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Reference Tables
Reference data is not purely descriptive. It lives in the context of other information. This is
where reference tables come into play. Reference tables are used to store information that is
commonly used to set up context and describe other business keys. In many cases, these are standard
codes and descriptions or classifications of information. The most basic reference table is just a
typical table in third or second normal form. This basic table is used when there is no need to store
history for the reference data. That is often the case for reference data that is not going to change or
that will change very seldom. Typical example, calendar dates.
Note that it depends on the actual project: e.g., the simple no-history reference table has no begin-date
and no end-date because there are no changes in the data. Therefore, the structure is very simple, as in
the figure below.
Figure 20: Figure for a non histories reference table for calendar (logical design)
This logical model shows a reference table to store a simple calendar in the Business Vault. The data
is identified by the Date key, which is a Date field in the database. Other attributes in this example are
the Year, Month, and Day, which store the corresponding whole numbers. Day of Week is the text
representation of the week day, e.g. “Monday.” There is no need for keeping a history of changes
because there will be no need to track those in most businesses. It doesn’t mean that there are no
Page 76 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
changes to the data in this structure. However, most changes are bug-fixes or should update
all information marts, including historical data. Examples for the latter include translations of the Day
of Week attribute or abbreviating the text.
Figure 21: The Figure shows the ER model for reference table (Physical design)
The descriptive business key is used as the primary key of the table. The reason for this is that the key
is used in satellites and Business Vault entities to reference the data in this table. That way, it
becomes more readable and ensures audit ability over time. If a business key is used as the primary
key of the reference table, it has the advantage that it can be used in ER models or in referential
integrity, if turned on, for example for debugging purposes. The following table shows an excerpt of
the reference data in the calendar table.
Date Load Date Record Source Year Month Day Day of Week
2000-01-01 2014-06-20 04:30:21.333 MDS 2000 1 1 Saturday
2000-01-02 2014-06-20 04:30:21.333 MDS 2000 1 2 Sunday
2000-01-03 2014-06-20 04:30:21.333 MDS 2000 1 3 Monday
2000-01-04 2014-06-20 04:30:21.333 MDS 2000 1 4 Tuesday
2000-01-05 2014-06-20 04:30:21.333 MDS 2000 1 5 Wednesday
2000-01-06 2014-06-20 04:30:21.333 MDS 2000 1 6 Thursday
2000-01-07 2014-06-20 04:30:21.333 MDS 2000 1 7 Friday
This example uses a Record Source attribute again because the data is sourced from Master Data
Services (MDS). If the data in MDS is changed by the user, it will overwrite the content of the
reference table because there is no history tracking. In other cases, the data is not sourced from
Page 77 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
anywhere. Then, the Load Date and the Record Source attributes are not needed. However, it is good
practice to source the data from analytical master data because it becomes editable by the business
user without the need for IT. This is a prerequisite for managed self-service business intelligence.
Once the reference table has been created in the model, it can be integrated into the rest of the model
by using the primary key of the reference table wherever appropriate: the biggest use is in satellites,
but they are also used in Business Vault entities. The following figure shows a typical use case where
a satellite on a Passenger hub is referencing the primary key of a reference table.
Page 78 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 79 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Programming logic model template is a template that is simply-formatted to use when developing a
program's goals and objectives.
Project:
Goal:
INPUTS ACTIVITIES OUTCOMES
Why this
Why this
What we What we Who we project: Why this project:
project: short-
invest do reach intermediate long-term results
term results
results
Page 80 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Instruction sheet
This learning guide 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 guide 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:
Learning Instructions:
1. Read the specific objectives of this Learning Guide.
2. Follow the instructions described below.
3. Read the information written in the “Information Sheets”. Try to understand what are being
discussed. Ask your trainer for assistance if you have hard time understanding them.
4. Accomplish the “Self-checks” which are placed following all information sheets.
5. Ask from your trainer the key to correction (key answers) or you can request your trainer to correct
your work. (You are to get the key answer only after you finished answering the Self-checks).
Page 81 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Software verification provides objective evidence that the design outputs of a particular phase of the
software development life cycle meet all the specified requirements phases. Software verification looks
for consistency, completeness and correctness of the software and its supporting documentation as it is
being developed and provides support for a subsequent conclusion that software is validated. Software
testing is one of many verification activities intended to confirm that software development output meets
its input requirements. Other verification activities include various static and dynamic analyses, code and
document inspections, walkthroughs and other techniques.
Software validation is a part of the design validation for a finished project, but is not separately defined in
the Quality System regulation. For purposes of this guidance, consider software validation to be
“confirmation by examination and provision of objective evidence that software specifications conform to
user needs and intended uses, and that the particular requirements implemented through software can be
consistently fulfilled.” Software validation activities may occur both during, as well as at the end of the
software development life cycle to ensure that all requirements have been fulfilled. The validation of
software typically includes evidences that all software requirements have been implemented correctly and
completely and traceable to system requirements. A conclusion that software is validated is highly
dependent upon comprehensive software testing, inspections, analyses, and other verification tasks
performed at each stage of the software development life cycle. Testing of software functionality in a
simulated use environment, and user site testing are typically included as components of an overall design
validation program for a software automated device.
Software verification and validation are difficult because a developer cannot test forever, and it is hard to
know how much evidence is enough. In large measure, software validation is a matter of developing a
"level of confidence" that the device meets all requirements and user expectations for the software
automated functions and features of the device. Measures such as defects found in specifications
documents, estimates of defects remaining, testing coverage, and other techniques are all used to develop
an acceptable level of confidence before sending to clients. The level of confidence, and therefore the
level of software validation, verification, and testing effort needed, will vary depending upon the type of
project.
Page 82 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
______________________________________________________________________________
______________________________________________________________________________
__________________________________________________________________
Page 83 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Getting feedback early and often is a critical component of your success. If requires organizing your
work in a way that you can get feedback, being transparent so people can see what to give feedback
on and incorporating that feedback into your work and getting continually better. By increasing the
role of iteration and feedback in your development process, you can build better software and make
happier customers. Feedback helps you learn. Feedback makes you and your work better. Whether
you follow specific Agile practices or not, feedback early and often is a critical component of being
more successful.
Feedback on Priorities: Am I building the most important capabilities that you want? Am I doing it
in the right order? If I don’t get to everything you want, have I delivered enough of the critical
capabilities that the solution is useful to you and I can continue to iterate? This is all about making
sure that the stakeholders and team are aligned on how the work will be organized and what
capabilities (user stories, if you will) will be delivered.
Feedback on Design Does the software deliver the capability you need? Have I properly captured
the requirements? Is it going to be easy enough for the customer to use? If I haven’t understood
what you wanted and translated that into a design that will meet your needs, then the best developers
in the world aren’t going to succeed. Ask development teams “Have you every built what the
customer asked for and not what they wanted?” You may get a lot of people nodding vigorously. It’s
a symptom of a problem where poor communication both in the inability to conceptualize and
communicate the requirements and in the diligence to validate the proposed solution. It is said that a
picture is worth 1,000 words. Use a picture to enable the development team to work together more
easily with stakeholders to ensure that before they go build a user story/scenario, they had a high
fidelity conversation about what the user experience is going to be and how the scenario is going to
work.
Page 84 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Feedback on Working Software: Does the software actually do what I think we said it would? Now
that I see it in action, is the solution actually going to work? I can’t tell you how many times I’ve
built something that I thought was going to be great only to sit down and use it and realize it actually
didn’t mesh well with my workflow. Back to the drawing board (or storyboard) for another round of
design. There’s nothing like actually sitting down and using the software to get a feel for whether or
not it is “good”. This is one of the biggest cultural changes in teams adopting Agile practices and yet,
one of the most important changes. To make sure you are building the right thing, you MUST build it
in reasonably small consumable increments and solicit feedback early and often. It will save you
countless weeks of wasted work developing down a path that ultimately turns out to have been a dead
end that you could have avoided much earlier simply by asking “What do you think of what I have so
far?” The Feedback tool and associated workflow enables a product owner/business analyst/dev lead
to easily solicit feedback on a specific set of user stories/requirements on a recent build of the
software. The stakeholder can easily review the user stories and the associated storyboards. They
can explore the software, capture screen shots and comment on what they see. They can optionally
capture video, audio and easily bookmark them to draw attention to areas where they have feedback.
All of this in a feedback works item that the project owner can use to make any necessary plan
updates.
Feedback on Code: While the first 3 of these are primarily focused in enabling stakeholder
collaboration, let’s not forget that collaboration between developers is important too. Code reviews
are becoming a more and more popular way to enable feedback among developers. They can
provide:
1. A fresh set of eyes to make sure you didn’t miss anything.
2. A good way to stay up to date on changes happening in a body of code.
3. A good way to learn a code base and understand why changes are being made.
Good customer feedback can help to do a number of things, continually seeking feedback through a
variety of sources can help you identify trend, gain competitive advantages, and cut costs. Failure to
seek feedback can cost you customers. And remember, you can't make a profit if you're not satisfying
your customers.
Page 85 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________
Page 86 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
AKNOWLEDGEMENT
We wish to extend thanks and appreciation to the many representatives of TVET instructors who
donated their time and expertise to the development of this TTLM.
We would like also to express our appreciation to the TVET instructors and Oromia TVET Bureaus,
and Federal Technical and Vocational Education and Training Agency (FTVET) who made the
development of this curriculum with required standards and quality possible.
/Job title
Level
Page 87 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
REFENCES
Programming Logic and Design, Introductory, 9th Edition Joyce Farrell - ©2018 (Author)
Programming Logic and Design, Comprehensive 8th Edition by Joyce Farrell (Author)
Introduction to SQL: Mastering the Relational Database Language, Fourth Edition/20th Anniversary
Edition By Rick F. van der Lans
Page 88 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Answer Key
Directions: Answer all the questions listed below. Use the Answer sheet provided in the next page:
1. A 2. D 3. C 4. D 5. A
1. A 2. C 3. D 4. D 5. C
1. Draw the flow chart that calculates grade for ten students based on the scale: >80-A, >60-B, > 50-C, >40-
D, <40-F.
Page 89 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
2. Write a pseudo-code that calculates grade hint mark >=80 grade A, mark >=60 grade B, mark
>=50 grade C, mark >=40 grade D, F<40.
ACCEPT Mark, Name
IF Mark>80 Then
Grade A
ELSE IF Mark >60 Then
Grade B
ELSE IF Mark >50 Then
Grade C
ELSE IF Mark >40 Then
Grade D
ELSE
Grade F
ENDIF
Display Grade, Name
Page 90 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 91 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Page 92 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
Answer for Draw the corresponding (Design a) UML class diagram for the above requirements.
Page 93 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
A scope of work (SOW) document is an agreement on the work you're going to perform on the project.
The document includes it's a section of the document that delineates the major phases across the schedule
of the project's duration.
Page 94 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023
1. In practice, software validation activities may occur both during, as well as at the end of the
software development life cycle to ensure that all requirements have been fulfilled.
2. Software verification looks for consistency, completeness, and correctness of the software and
its supporting documentation.
3. Software verification and validation are difficult because a developer cannot test forever, and it
is hard to know how much evidence is enough.
Page 95 of 95 Federal TVET Agency TVET Program Title: Web Development DBA L-III Version -1
Author/Copyright Module Title: Designing Program Logic Jan 2023