Ch6 Software Engineering
Ch6 Software Engineering
Computer
Programming and
Software Development
1
Overview
• Definition of Software engineering
• Software development Cycle
• Analysis
• Design
• Encoding
• Testing
• Evaluation
• Complexities of software development
• Development of Commercial Software
2
Definition of Software and Programs
• A program is a list of instructions that
direct the computer’s processes
• The computer system executes binary-
encoded machine language programs
designed for that type of processor
• Programs are developed and written
using symbolic programming
languages which are easier to 3
comprehend and use.
A Sample Program
<HTML>
<HEAD>
<TITLE>image script</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--HIDE
var counter = 0
function changer() {
counter += 1
if (counter == 4) {
counter = 0
}
document.images[0].src = counter + ".jpg"
}
//STOP HIDING--></SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<P>Click on the image to change it.</P>
<P>
<A HREF="#" onClick="changer()">
<IMG SRC="0.jpg" WIDTH=279 HEIGHT=184 BORDER=0 ALIGN=bottom>
</A>
</P>
</BODY> 4
</HTML>
The Software Development Cycle
• Analysis: analyzing and understanding
the problem
• Design: Devising a plan to solve the
problem
• Coding: Creating an executable
program that implements the plan
• Testing: Correcting the program errors
• Maintenance: upgrading the program 5
Software Development Cycle
7
Step1: Analysis
To design and create a program, the
developer must…
• Envision the sequence of events that
would implement it;
• Understand the task in general terms as
well as specific cases.
• Collect and Analyze Requirements
• Sec#2 , Sec#3 8
Step 2: Design
There are two main phases:
9
Executing
• Executing is the translation of the
algorithm(s) into executable programs
• Most programs are written in high-
level programming languages which
are more abstract than binary machine
languages
10
Step 4&5: Testing and Evaluation
• Test: Testing is a comprehensive organized
effort to exercise all aspects of a software
system for possible failure
• Installation: putting the program onto a
computer system so that it can be executed
• Maintenance: The modification of a
software product after delivery to correct
faults, to improve performance or other
attributes, or to adapt the product to a
modified environment 11
Debugging vs. Testing
Debugging Testing
• program components
• “Bugs” are errors
and programs are
that result from thoroughly tested for
faulty plans, reliability
misunderstandings, • programs are released
coding mistakes, etc. in several versions
• correcting errors in (e.g., alpha, beta)
programs is called 12
“debugging”
Complexities of Software Development
• Complexities in programming
– translating tasks into effective processes
performed by computers can be difficult
13
Developing Commercial
Software
• System analysts are
responsible for planning,
designing, and overseeing
software projects
• Programmers work in
groups to implement the
overall design
The scale of modern • Software quality assurance
software systems require groups conduct
division of labor independent testing 17