Chapter 10: Software Programming and Languages

advertisement
S/W Programming & Languages
Chapter 10
Where Your Software Comes From
© The McGraw-Hill Companies, Inc., 2000
Overview
• Programming
– five steps
• Five generations
• High-level programming
• Object-oriented
programming
• Internet programming
Ch 10
© The McGraw-Hill Companies, Inc., 2000
2 CCI
Programming
• What are the five steps of the programdevelopment cycle?
Ch 10
© The McGraw-Hill Companies, Inc., 2000
3 CCI
A Program
• Also called software
• List of instructions that processes data into
information
• Should include software engineering
– only partly involves coding or using the
programming vocabulary
• Languages
– Visual Basic, Java, C++, COBOL
Ch 10
© The McGraw-Hill Companies, Inc., 2000
4 CCI
Programming Steps
•
•
•
•
•
•
Ch 10
Analysis
Design
Code
Test
Document
Maintain
© The McGraw-Hill Companies, Inc., 2000
5 CCI
Analysis
• Clarify objectives and needs
– on all levels of an organization that the program
may affect
• Clarify outputs
– overall performance
– response time
– forms and reports
Ch 10
© The McGraw-Hill Companies, Inc., 2000
6 CCI
Analysis Is Clarifying
• Clarify inputs
– kind and format of input data
– insure exception data handled properly
• ask again what exceptions or data is out of the norm
– insure good data input through ranges, checks on
validity
• Clarify processing
– ensure correct processing, including data storage
and the passing of variables or messages
between modules and individual programs
Ch 10
© The McGraw-Hill Companies, Inc., 2000
7 CCI
Feasibility Analysis
• Each programming step
requires feasibility
checks
– economic
– operational
– technical
Ch 10
© The McGraw-Hill Companies, Inc., 2000
8 CCI
Documentation of Analysis
• Documentation
– the outcome of analysis is the
Requirements Statement
• clarifies
• well defines the inputs and outputs
• is the basis for test cases
Ch 10
© The McGraw-Hill Companies, Inc., 2000
9 CCI
Design the Program
• Structured program
– top-down approach, using
hierarchy chart
– designs in modules
– starts with control structure
– as each part is completed, it is
tested preliminary to ensure
functionality
Ch 10
© The McGraw-Hill Companies, Inc., 2000
10 CCI
Rules of Modular Design
• Manageable size
– less than fifty or so lines each module
• Independent with a single function
• Functions of input and output are clearly
defined
• Single entry and exit point
• Returns control to originating module
Ch 10
© The McGraw-Hill Companies, Inc., 2000
11 CCI
Design Details
• Program flowcharts
– steps or algorithms
• Control structures
• Pseudocode
– narrative form
• Spaghetti code
– what happens when you do not
follow proper design methodology
Ch 10
© The McGraw-Hill Companies, Inc., 2000
12 CCI
Four Design Control Structures
• Sequence
– step-by-step
• Selection
– if-then-else
• Case
– single yes or no per choice
• Iteration
– looping until a condition is met
– looping while a condition is met
Ch 10
© The McGraw-Hill Companies, Inc., 2000
13 CCI
Design’s Walkthrough
• A structured walkthrough
– a formal meeting to review step by step
– errors, omissions, duplications
– general coding, interface, database, security,
documentation, and network standards
Ch 10
© The McGraw-Hill Companies, Inc., 2000
14 CCI
Coding
• Select the programming
language
– consider language
capabilities, execution
speed, and interface
capabilities
• Follow syntax
– the compiler understands
exactly what you program
Ch 10
© The McGraw-Hill Companies, Inc., 2000
15 CCI
Testing
• Desk checking
– walking through the
code while keeping
track of variables on
a piece of paper,
proofreading
Ch 10
© The McGraw-Hill Companies, Inc., 2000
16 CCI
Code Debugging
• Debugging
– detecting, locating, and
removing errors
• syntax errors, using
program diagnostics or
debug utility
• logical errors - incorrect
control or functional
errors
Ch 10
© The McGraw-Hill Companies, Inc., 2000
17 CCI
The Alpha
• Alpha-testing
– in-house testing of code with portions of realworld, deliberately incorrect inputs and
databases, usually modified for practicality
– test cases refer to the Requirements Statement
of Analysis
– sometimes performed by the Software Quality
Assurance group
Ch 10
© The McGraw-Hill Companies, Inc., 2000
18 CCI
The Beta
• Beta-testing
– is traditionally testing a program in
the real-world by those who are
likely to use it
– its purpose is to reveal inadequacies
and programming bugs in live
conditions
Ch 10
© The McGraw-Hill Companies, Inc., 2000
19 CCI
Program Document
• Written, graphic, and electronic descriptions of what
a program does, how the program is organized, and
programming suggestions for future maintenance
• Customized by level of detail
– programmer, operator, user
• Shift from large manuals to small printed setup
documentation, large electronic help files included
during program installation, and additional online
assistance and updates
Ch 10
© The McGraw-Hill Companies, Inc., 2000
20 CCI
Program Maintenance
•
•
•
•
•
An art in itself
Requires system and program skills
Corrective - fix
Preventive - make better or more efficient
Enhancement - changes due to regulation or
to add additional functionality
Ch 10
© The McGraw-Hill Companies, Inc., 2000
21 CCI
Programming Languages
•
•
•
•
Machine language
Assembly languages
High-level languages
Very high-level
languages
• Natural Languages
Ch 10
© The McGraw-Hill Companies, Inc., 2000
22 CCI
First Generation
• Machine language
• Used to debug complex
code problems by very
experienced
programmers
• Compilers for the other
generations translate to
this level for execution
Ch 10
© The McGraw-Hill Companies, Inc., 2000
23 CCI
Second Generation
• Assembly language
– more technical
– less flexible and user friendly
than higher-level languages
– faster
• Some embedded programs are
written in assembly
Ch 10
© The McGraw-Hill Companies, Inc., 2000
24 CCI
Third Generation
• COBOL BASIC, C,
compilers, interpreters
• less technical, more
flexible, more user friendly
• slower
• procedural
• many large legacy systems
in banking and finance
Ch 10
© The McGraw-Hill Companies, Inc., 2000
25 CCI
Fourth-Generation
• 4GLs
• Report and application
generators, query languages
• Current development
• Non procedural
• Many office suites are written
and can be modified easily,
such as Microsoft Office and
Lotus Suite
Ch 10
© The McGraw-Hill Companies, Inc., 2000
26 CCI
Fifth Generation
• Natural language
• Future development
– IBM ViaVoice and
Dragon Speak are
the beginning of
speech technology
Ch 10
© The McGraw-Hill Companies, Inc., 2000
27 CCI
Language Translators
• Assembler
– translates assembly language program into a
machine language
• Compiler
– takes your written source code into machine
language object code
• Interpreter
– converts high-level statements one at a time
– allows programming interactively
Ch 10
© The McGraw-Hill Companies, Inc., 2000
28 CCI
Fortran
• (FORmula TRANslator)
– advantages
• mathematical and scientific use
• portable to other computers
• short and simple
– disadvantages
• not efficient at I/O storage
• not as easy to read
• limited non-numeric data expressions
Ch 10
© The McGraw-Hill Companies, Inc., 2000
29 CCI
COBOL
• COmmon Business
Oriented Language
– extremely readable
– advantages
• portable
• easy to understand
• good file handling and I/O
Ch 10
© The McGraw-Hill Companies, Inc., 2000
30 CCI
BASIC
• Beginner’s All-purpose
Symbolic Instruction Code
– advantage
– easy to use
– disadvantage
• slow processing
• many nonstandard versions
Ch 10
© The McGraw-Hill Companies, Inc., 2000
31 CCI
Pascal
• Named after Blaise Pascal, a 17th century
French mathematician and philosopher
• Uses structured programming methods
– advantages
• easy to learn with extensive graphics programming
• appropriate for scientific use
– disadvantages
• limited I/O, hard for business applications
Ch 10
© The McGraw-Hill Companies, Inc., 2000
32 CCI
Object-Oriented and Visual
Programming
• Object-oriented programming (“oops”)
• Trees (plant object) output oxygen and shade
– processing elements such as water and minerals
– responding to light
• Similarly, computer objects should have an
output (message)
– processing (methods), and variables (attributes)
– responding to input (message)
Ch 10
© The McGraw-Hill Companies, Inc., 2000
33 CCI
Objects
• Creating and using objects is a more
natural process than structured
programming
– deal with and interact with objects every day
– do not detail in a step-by-step method as often
Ch 10
© The McGraw-Hill Companies, Inc., 2000
34 CCI
Object
• Consists of preassembled code
• Has methods and attributes
• Is encapsulated
– can operate without full dependency on other
code
• Can pass messages on to other objects
• Can have objects that have inherited
characteristics from the original object
Ch 10
© The McGraw-Hill Companies, Inc., 2000
35 CCI
Object Advantages
• Reuse if put into well-maintained
libraries
– called class libraries
• Is not dependent on outcomes known
in advance
– polymorphism
Ch 10
© The McGraw-Hill Companies, Inc., 2000
36 CCI
Even More Advantages
• Can be quickly modified for similar uses
– inheritance
• Objects’s effectiveness has been
scientifically proven by the Software
Engineering Institute at Carnegie Mellon
University
Ch 10
© The McGraw-Hill Companies, Inc., 2000
37 CCI
Examples of OOP
• Smalltalk
– first OOP
• C++
– allows additional flexibility
of programming in C in a
structured manner
Ch 10
© The McGraw-Hill Companies, Inc., 2000
38 CCI
Visual Programming
• Use of icons and other
tools
• Allows concentration on
problem solving
• Responsive to needs to
program graphical user
interface (GUI)
Ch 10
© The McGraw-Hill Companies, Inc., 2000
39 CCI
Internet Programming
• HTML
– HyperText Markup
Language
– creating basic Web
pages, tables, and
hyperlinks
– Adobe PageMill,
Microsoft FrontPage
Ch 10
© The McGraw-Hill Companies, Inc., 2000
40 CCI
XML
• Extensive markup
language
• Tags help define pages
for searching and
provide easier interface
to databases
• SoftQuad’s XMetal
Ch 10
© The McGraw-Hill Companies, Inc., 2000
41 CCI
VRML
• Virtual Reality Markup
Language, rhymes with
“thermal”
• 3D creation
• Netscape Live 3D and
Macromedia Dreamweaver
Ch 10
© The McGraw-Hill Companies, Inc., 2000
42 CCI
Java
• For interactive Web pages and
small embedded systems
• Can run small portions called
applets
• Most hardware platforms have
Java virtual machines to interpret
Java, allowing greater portability
• Efficiency of Java’s processing
increased
Ch 10
© The McGraw-Hill Companies, Inc., 2000
43 CCI
Download