MELJUN CORTES Software Development
-
Upload
meljun-cortes-mbampa -
Category
Documents
-
view
222 -
download
0
Transcript of MELJUN CORTES Software Development
-
8/8/2019 MELJUN CORTES Software Development
1/15
SOFTWARE
DEVELOPMENT
Program Planning and Development
Structured Design
Programming Paradigm
Programming Language
Compilers and Interpreters
1 __________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAM PLANNING AND DEVELOPMENT
Five Stages in Program Development
Defining the problem
Designing a solution
Writing the program
Compiling, Debugging, and Testing the programDocumenting the program
2 _________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAM PLANNING AND DEVELOPMENT
1st Stage: Defining the Problem
recognize the need for information
define what outputs are required from the program
2nd Stage: Designing a Solution
breaking the problem into discrete steps known as
“algorithm”
use flowchart to illustrate the sequence of steps
flowchart – a graphical representation of the sequence
of operations a computer is to perform
3 __________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAM PLANNING AND DEVELOPMENT
Flowcharting
Terminal
General Input/Output Operation
Process
Comparison
Connector
Predefined Process
Document
Manual Input
4 _________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
2/15
PROGRAM PLANNING AND DEVELOPMENT
Example: Payroll Flowchart
Start
Read hours
worked and
pay scale
End of
data?
1
YES
Calculate
Employee’s
Pay
Print check
1Print
reportsStop
NO
5 __________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAM PLANNING AND DEVELOPMENT
Pseudocode
a version of the instructions describing each step thecomputer must follow
Example: Payroll PseudocodeStart
Read employee's hours worked and hourly wage
Do until end of items
Multiply hours worked by hourly wage to get gross pay
If gross pay is greater than 70K
Then tax rate is 20%
Else tax rate is 15%
Multiply tax rate by gross pay to give tax
Subtract tax and union dues from gross to get netpay
Print check
Read next employee's hours worked and hourly wage
End loop (no more data)
Print reports
6 _________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAM PLANNING AND DEVELOPMENT
3rd Stage: Writing a Program
write the program in a specific programming
language
Types of Programming Statements
comments
declarations
input/output statements
computations
transfer of control
comparison
7 __________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAM PLANNING AND DEVELOPMENT
Qualities of a Program
easy to read and understand
efficient
reliable
robust
maintainable
8 _________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
3/15
PROGRAM PLANNING AND DEVELOPMENT
4th Stage: Compiling, Debugging, and Testing theProgram a compiler is a special program for each programming
language loaded into the computer when that languageis used
Common Compilation Errors
spelling errors syntax errors
improperly sequenced statements
improperly labeled statements
conflict in variable names
illegal names or statements
missing punctuations
9 __________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAM PLANNING AND DEVELOPMENT
logical errors are detected by the programmer in a
debugging process
to be sure that the program will give the correct
output, the program has to be tested by running the
program and inputting data with known outputs
10 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAM PLANNING AND DEVELOPMENT
5th Stage: Documentation of the Program consists of written descriptions and explanations of
programs and other materials associated with anorganization’s data processing system
serves as a guide to programmers and analysts whomust modify or update existing programs and systemprocedures
Other Descriptions a complete description of the contents and formats of all data
inputs, outputs and files to be used
a statement of the hardware requirements for running theprogram as well as estimated processing time and storagerequirements
a statement of software requirements such as utility programsand library programs
11 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
STRUCTURED DESIGN
each major step in the program must bedeveloped as independent module andrepresented in the flowchart as a separate block
program codes will be easier to understand andmore maintainable if you break the logic intosteps, and encompass each step in its ownsubroutine or function
Benefits early detection design flaws
programs can be easily modified
clear and complete documentation
modular design to improve testing
12 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
4/15
STRUCTURED DESIGN
Top-down vs Bottom-up
Top-down
done by recognizing the major components of the
solution, expressing the solution as a sequence of these
major components, and then expanding the major
components similarlyBottom-up
starts by identifying small functions and subroutines
present in the design and moving up towards more
complex procedures
13 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
STRUCTURED DESIGN
Using Flowcharts
generally involves a top-down analysis of the
problem
based on the assumption that there are four basic
logic patterns
Simple sequence
Selection pattern
Loop pattern
Branch pattern
14 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
STRUCTURED DESIGN
Simple Sequence Selection Pattern
15 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
STRUCTURED DESIGN
Loop Pattern Branch Pattern
16 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
5/15
STRUCTURED DESIGN
Do-While Structure Case Structure
17 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING PARADIGM
Paradigm
an example, model, or pattern
an idealized pattern of usage under which some
agent can operate
Programming Paradigm a way of thinking about problems and their
solutions, or an approach on how to use a
computer to implement those solutions
18 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING PARADIGM
Major Programming Paradigms
Imperative
Logical
Functional
Object-Oriented
19 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING PARADIGM
Imperative Paradigm
characterized by programming with states and
commands that modify the states
implies procedures (or programs) or directions for
performing an action
an abstraction of real computers, which are based
on the Von Neumann machine
assumes that a computer can maintain, through
environment variables, any change in the
computation process
20 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
6/15
PROGRAMMING PARADIGM
Advantage can be easily translated to an efficient machine code, so they are
considered highly efficient
Disadvantage some problems are hard to model using this paradigm
Example: Imperative program that will compute the factorial
of a given number
Function factorial(n)
{ var x = 1;
while(n>0) {
x = x*n;
n = n-1; }
return x;
}
21 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING PARADIGM
Logical Paradigm
takes a declarative approach to problem-solving
can be divided into three (3) steps
1. a series of definitions/declarations that define the problemdomain
2. statements of relevant facts
3. statements of goals in the form of queries
Advantages
the system solves the problem so programming steps are keptto a minimum
since it is largely based on mathematical logic, proving thevalidity of a given program becomes simple
22 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING PARADIGM
Example: An illustration of a logical paradigm
23 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING PARADIGM
Functional Paradigm
based on functional expressions and the evaluation of
these expression
views all programs as functions in a mathematicalsense
Advantages
provide a high level of abstraction; the programming becomesmodular and removes the possibility of creating several errors
not heavily dependent on the assignment operation, so theprograms can be evaluated with many different orders
much more amenable to mathematical proof and analysisthan imperative ones
24 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
7/15
PROGRAMMING PARADIGM
Disadvantages
hard to implement efficiently, because it is hard to
determine if data storage can be re-usable
difficult to solve problems involving many variables or a
lot of sequential activity
25 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING PARADIGM
Example: Factorial function
Factorial n =
If n = 1 then 1
Else
n * Factorial(n-1);
26 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING PARADIGM
Example: Function for computing the average of twonumbers
Function for computing the average of two numbers:
(defun avg(X Y) (/ (+ X Y) 2.0))
Function is called by:
> (avg 10.0 20.0)
Function returns:
15.0
27 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING PARADIGM
Object-Oriented Paradigm
a paradigm in which real world objects are viewed
as separate entities having their own state and
exhibiting their own behavior
focuses on the objects that the programmer is
representing
28 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
8/15
PROGRAMMING PARADIGM
illustrates objects and how they are encapsulated
into modules
Object interface
DATAMethods
29 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING PARADIGM
can be divided into four steps
1. identify the problem
2. identify the objects needed for the solution
3. identify messages to be sent to the objects
4. create a sequence of messages to the objects that
solve the problem
30 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING PARADIGM
Example:
1. Problem identification: Computer the sum of two
numbers and printout the result
2. Object identification:
Num1 – first number (object)
Num2 – second number (object)
Sum – result of the addition of the two numbers
3. Message identification:
+ aNum – sent to the receiver object with parameter aNum
print – displays the value of the receiver object
4. Object-message sequences: (Num1 + Num2)print
31 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING PARADIGM
Other Programming Paradigms
Tree
viewing code or data in a highly hierarchical manner
Expert System
organizes data by using a list or pool of rules that aresometimes recycled through constantly
Stream
based on the idea that input and output of smallerprograms or utilities can be linked together
Neural Network
based on the concepts that computers are programmedin the same way as how humans think
32 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
9/15
PROGRAMMING LANGUAGE
Language
defined as a system for communication
written language use symbols (characters) to buildwords
Vocabulary
refers to entire set of words Syntax and Grammar
define the way in which the words can be meaningful
when combined
Semantics
actual meaning of words and combinations of words
33 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
Machine Language
the lowest level of programming language
only language understood by computers and
consists of pure numbers; takes the form of “1” or
“0”
each machine instruction has two (2) parts:
op code (operation code)
operand
34 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
Low-Level Language
also called as assembly language
easier to understand than machine language
35 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING LANGUAGE
programmers must be highly skilled in two areas:
must know a great deal about the internal workings of
the microprocessor, and a broad technical knowledge of
the computer is needed
must be very detail oriented; every step of the computer
must be coded, and the actual numerical address of the
instructions and data must be specified
36 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
10/15
PROGRAMMING LANGUAGE
Example: Using assembly language to multiply 87
and 243 and saving the result in the memory
37 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
High-Level Language
enables a programmer to write programs that aremore or less independent of a particular type ofcomputer
closer to human language than the machine
language easier to understand and allows the programmer to
focus on solving the problem rather than knowinghow to program the computer
Examples: Ada, Algol, BASIC, COBOL, C, C++,FORTRAN, LISP, Pascal, Prolog
38 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
BASIC
Beginner’s All-purpose Instruction Code
developed by John Kemeny and Thomas Kurtz in the
early 1960’s
intended as an easy to learn interactive language for the
students
Advantages
simplicity and flexibility
allows basic manipulation of text
provides built-in functions such as logarithms, square root,
trigonometric functions, and random number generator
39 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING LANGUAGE
Example: Using BASIC program to multiply 87 and 243
and printing the result
40 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
11/15
PROGRAMMING LANGUAGE
FORTRAN
Formula Translator
the oldest high-level programming language
developed in the mid 1950’s by John Backus
primarily intended as a high-level language used for
programming scientific, mathematical, and engineeringapplications
41 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
Advantages
procedure-oriented language with excellent mathematical
capabilities
its pattern is similar to the BASIC language; a programmer who
is familiar with FORTRAN can easily write programs in BASIC
Disadvantages closely resembles mathematical notations, it is very difficult for
non-programmer to understand or find the errors in a program
not suited as a business application language for it does not
have the capability to develop programs that involve file
maintenance, editing of data, or document production
42 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
Example: Using FORTRAN program to multiply 87 and
243 and printing the result
43 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING LANGUAGE
COBOL
Common Business-Oriented Language
the most frequently used business programming
language
used extensively in business, education, and government
started in the early 1960’s when a committee led by US
Department of Defense and other computer users and
manufacturers known as CODASYL (Conference of Data
Systems Languages) wanted to develop a common
business programming language
Dr. Gray Murray Hopper was a major contributor to the
structure and development of the language
44 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
12/15
PROGRAMMING LANGUAGE
Advantages
easy to understand even for non-programmers
self-explanatory and well-documenting
good literary capability which means that it is good in
manipulating words, sentences, or paragraphs of text material
strong file-handling capabilities
machine independent
Disadvantages
programs tend to be wordy and quite long
limited computational capabilities which makes it inappropriate
for applications that require computations
45 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
Example: Using COBOL program to multiply 87 and 243
and printing the result
46 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
PASCAL
the language named after the seventeenth century
French mathematician Blaise Pascal who constructed
one of the first adding machines
a high-level language developed by Niklaus Wirth of
Zurich, Switzerland in the late 1960’s
one of the first languages developed using a structured
programming approach
47 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING LANGUAGE
Characteristics
Pascal programs consist of modules, and each module
performs a specific function
the statements in the module can be organized into levels,
and the level of the statement is shown by its degree ofindention from the margin to follow the program logic easily
statements in a Pascal program are composed of reservedwords, symbols, and identifiers
reserved words are words that have a special meaning to thePascal compiler
symbols used in Pascal include mathematical symbols andpunctuation marks
identifiers are names that represent various constants,variables, procedures, or functions
48 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
13/15
PROGRAMMING LANGUAGE
Advantages
relatively easy to learn
powerful and efficient language
strong graphics capabilities
Disadvantages
not as standard as COBOL or BASIC
poor input and output capabilities
limited file-handling capabilities
does not possess the ability to manipulate large collection of
numbers or words
49 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
Example: Using PASCAL program to multiply 87 and 243
and printing the result
50 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
C Language
a high-level programming language developed by Dennis
Ritchie at the Bell Laboratories in 1972
named C, because it was influenced by another language
called B developed by Ken Thompson
originally designed as a systems programming language
used to write operating systems programs
51 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
PROGRAMMING LANGUAGE
Advantages
allows direct manipulation of bits, bytes and words that are
similar to assembly language
useful for numerical, text processing, and database programs
very good graphics programming capabilities
Disadvantages
not intended as a language for non-programmers, unlike BASIC
and COBOL; if you are not familiar with the language, you will not
understand the structure
52 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
14/15
PROGRAMMING LANGUAGE
Example: Using C program to multiply 87 and 243 and
printing the result
53 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
PROGRAMMING LANGUAGE
C++ Language
developed by Bjarne Stroustrup while working at the Bell
Laboratories
considered a superset of C, and has the same
capabilities as C with added object-oriented features
Example: Using C++ program to multiply 87 and 243 andprinting the result
54 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________
PROGRAMMING LANGUAGE
JAVA Language
popular programming language for creating applications
on the Web
“Oak”, was developed in December 1990 by Sun
Microsystems
Reasons to Use Java
Simple and familiar
Object-oriented
Architecture-neutral
Portable
Distributed
Secure
55 _________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
COMPILERS AND INTERPRETERS
56 ________________________
___________________________
___________________________
___________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
-
8/8/2019 MELJUN CORTES Software Development
15/15
COMPILERS AND INTERPRETERS
Compiler
a program that translates a program written in a high-level language and translates it into machine language
Advantages
compiled machine codes run much faster than interpretedones
compiled codes occupy less memory during execution
once a program is compiled it can be re -run anytime
Disadvantages
the program can only be executed once the translation iscomplete
any change to the source code requires a completerecompilation
57 _________________________
____________________________
____________________________
____________________________ ____________________________
____________________________
____________________________
____________________________
____________________________
COMPILERS AND INTERPRETERS
Interpreter
translates and executes the program line by line
translates high-level instructions into an intermediateform, which it then executes
Advantages
faster and easier to detect errors in the interpreted programthan the compiled program
easier and faster to make changes to the program whichreduces development time especially for large programs
Disadvantages
uses more memory and much slower than compiled codes
no copy of the translated code exist; if you want to re-run theprogram it must be interpreted all over again
58 ________________________
___________________________
___________________________
___________________________ ___________________________
___________________________
___________________________
___________________________
___________________________