The Software
Construction Process
Computer System Components
Interne
t
Network Interface Devices
(Modem, Network Card)
Input Devices
(Mouse, Keyboard)
Output Devices
(Monitor, Printer)
Communications Bus
Secondary Storage
(Hard Drive,
CD-ROM Drive)
Central Processing
Unit
(Microprocessor)
Primary Storage
(RAM)
01001101
10110101
11011001
10110100
00101011
01011001
10101010
01011011
10100110
01001011
A Software Requirement
Develop a program that finds and prints
all numbers between 1 and 10,000 that
are divisible by both 7 and 3. For each
number found, display the number and
the product of the two quotients.
The Requirement and the Design
S
Set number to 1
Develop a program
that finds and prints
all numbers between
1 and 10,000 that are
divisible by both 7 and 3.
For each number found,
display the number and
the product of the two
quotients.
Number less than
or equal to 10,000
No
Yes
No
Number divisible by 7
Yes
No
Number divisible by 3
Yes
Print number information
Increment number by 1
F
Boards, Tubes, and Patch Cables
Application Program
01001101
10110101
11011001
10110100
00101011
01011001
10101010
01011011
10100110
01001011
Setting Switches
Application Program
01001101
10110101
11011001
10110100
00101011
01011001
10101010
01011011
10100110
01001011
I/O Devices and Operating System
Operating
System
01010101
10101010
10101110
01001011
Application
Program
01001101
10110101
11011001
10110100
00101011
01011001
10101010
01011011
10100110
01001011
Assembly Language, Monitor,
and Keyboard
Operating
System
Assembler
LOOP: LOAD A, R1
LOAD 7, R2
TEST R1, R2
BRZ LOOP
Application
Program
01010101
10101010
10101110
01001011
10111010
10101010
01011011
01001101
10110101
11011001
10110100
00101011
01011001
Compiler (Syntax and Semantics)
Operating
System
01010101
10101010
10101010
int main (void)
{
int anAnswer;
float aValue;
Assembler
10111010
10101110
01001011
anAnswer = aValue / 3;
printf(“%d\n”,anAnswer);
return 0;
}
Compiler
10101011
00101010
01101011
Application
Program
11011001
10110100
00101011
01011001
#include <stdio.h>
Algorithm in C Source Code
aNumber = LOWNUMBER;
while (aNumber <= HIGHNUMBER)
{
firstQuotient = aNumber / FIRSTDIVISOR;
if ( (aNumber % FIRSTDIVISOR) == 0 )
{
secondQuotient = aNumber / SECONDDIVISOR;
if ( (aNumber % SECONDDIVISOR) == 0)
{
theProduct = firstQuotient * secondQuotient;
printf("%d %7.2f %7.2f %8.2f\n",aNumber, firstQuotient,
secondQuotient, theProduct);
} // End if
} // End if
aNumber++; // Increment aNumber by one
Note: This is only a portion of the complete C program
From Requirements to Running Program
Design Fundamentals
Software Requirements
Design Method
Coding Standards
Software Design
Text Editor
C Header Files
program.c (Source Code)
Compiler (and
Preprocessor)
Function Libraries
program.o (Object Code)
Linker
Input/Output Facilities
program.exe (Executable Code)
Operating System
Software Construction Process
Requirements
1
DESIGN
2
8
EDIT and
SAVE
BASELINE
COMPILE
3
A
E
B
D
4
LINK
C
7
5
TEST and
SQA
6
Note: See next slide for meanings of A - E
RUN
Categories of Errors
• A: Compiler errors – doesn’t follow preprocessor or
C syntax
• B: Linker errors – functions declared but not
defined; no main function; function library not found
• C: Run-time errors – segmentation fault; out-ofrange errors; wrong data types
• D: Logic errors – wrong use of control statements;
errors in function arguments; algorithm coded
incorrectly
• E: Design errors – doesn’t follow design or satisfy
requirements; design has flaws
© Copyright 2026 Paperzz