10-1. systems analysis & programming 10.1 systems development 10.2 programming: a five-step...
TRANSCRIPT
10-1
Systems Analysis & Systems Analysis & ProgrammingProgramming
10.1 Systems Development
10.2 Programming: A Five-Step Procedure
10.3 5 Generations of Programming Languages
10.4 Programming Languages Used Today
10.5 Object-Oriented & Visual Programming
10.6 Markup & Scripting Languages
Chapte
r1010
McGraw-Hill/Irwin © 2007 The McGraw-Hill Companies, Inc. All rights reserved.
10-3
Systems DevelopmentSystems DevelopmentOrganizations can make mistakes, and big organizations can
make really big mistakesMurphy’s Law: Whatever can go wrong, will go wrong, and at the worst possible time
A system A collection of related components that interact to
perform a task in order to accomplish a goalSystems Development
6-phase process of gathering information about system requirements and using that to develop a new system that improves productivity
Warning! Road Out!
10-4
Systems DevelopmentSystems Development
The three kinds of users of a project are:Users
The new system must ALWAYS be developed in consultation with the people who will be using the completed system
Management Managers within an organization should be consulted about
the system, as they control the budget and resourcesTechnical staff
The Information Systems or IT staff must be involved so they can make sure the technology is there
10-5
Systems DevelopmentSystems Development
Systems AnalystAn information specialist who performs systems
analysis, design, and implementation
His or her job is to study the information and communications needs of an organization and determine what changes are needed to deliver better information to the people who need it
10-6
Systems DevelopmentSystems Development
The 6 phases of systems analysis & design are:1. Preliminary investigation
2. Systems analysis
3. Systems design
4. Systems development
5. Systems implementation
6. Systems maintenance
Information systems are frequently revised and upgraded
Steps in the cycle often overlap
10-7
Systems DevelopmentSystems Development
Phase 1: Conduct a preliminary investigationConduct a preliminary analysisPropose alternative solutions
Interview people within the organization Study what competitors are doing Decide to leave the system as is, improve it, or develop a
new systemDescribe costs and benefitsSubmit a preliminary plan with recommendations
This should be a written report Get management approvals for next phase
10-8
Systems DevelopmentSystems DevelopmentPhase 2: Analyze the system
Gather data Interview employees and managers Develop, distribute, analyze questionnaires Review current written documents Observe people and processes at work
Analyze the data Use system modeling tools, such as CASE tools Create a data flow diagram to show how data flows through the
system Write a report and get approvals for next phase
Document how the current system works Document problems with the current system Describe the requirements for the new system
10-9
Systems DevelopmentSystems DevelopmentPhase 3: Design the system
Notice that you don’t design the new system until you have done phase 2 since that establishes the requirements it must meet!
Do a preliminary design Often involves prototyping
Do a detail design, showing: Input requirements Output requirements Storage requirements Processing requirements System controls Backup
Write a report and get approvals for next phase
10-10
Systems DevelopmentSystems Development
Phase 4: Develop the systemDevelop or acquire the softwareAcquire and integrate the hardwareTest the system
Unit testing Systems testing with both analysts and end-users End-user testing is critical, as they don’t know the software
and will show the developers where they forgot something
10-11
Systems DevelopmentSystems Development
Phase 5: Implement the systemChoose a strategy to convert to the new system
Direct implementation Parallel implementation Phased implementation Pilot implementation
Train the users Document the system Give classes or train the trainers
10-12
Systems DevelopmentSystems Development
Phase 6: Maintain the systemPerform periodic evaluationsMake changes to the system based on new conditionsDocument those changes
10-13
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
A program is a list of instructions that the computer must follow to process data into information
The five steps are1. Clarify/define the problem
a. Clarify the program objectives & usersb. Clarify outputsc. Clarify inputsd. Clarify processing taskse. Study the feasibility of the programf. Document the analysis
2. Design the program3. Code the program4. Test the program5. Document and maintain the program
10-14
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Step 2: Design the programCreate an algorithm or set of steps to solve the problem
Traditional structured programming approach Determine program logic using top-down approach & modules Design details using pseudocode or flow charts
Alternative object-oriented approach Use “Use Case” approach to determine program objects, object
inheritance, and actions or functions each object can perform Identify major program components and organize related
functions and associated data into object classes This is the approach used by object-oriented languages such
as Java, C#, Lisp, Visual Basic, and C++ For more information on object-oriented programming, visit
http://oopweb.com/ or http://java.sun.com/docs/books/tutorial/java/concepts/
10-15
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
A hierarchy chart
10-16
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Panel 10.13Pseudocode
START
DO WHILE (SO LONG AS) THERE ARE RECORDS
Read a customer billing account record
IF today’s date is greater than 30 days from
date of last customer payment
Calculate total amount due
Calculate 5% interest on amount due
Add interest to total amount due to calculate
Grand total
Print on invoice overdue amount
ELSE
Calculate total amount due
ENDIF
Print out invoice
END DO
END
10-17
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
● PANEL 10.14Example of a programflowchart andexplanation offlowchart symbolsThis example represents aflowchart for a payrollprogram.
10-18
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Iteration and sequence
control structures
10-19
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Step 3: Code the programTranslate the logic requirements into a programming
languageProgramming language is a set of rules that tells the
computer what operations to doEach programming language has a syntax, or set of
grammatical rules to follow to write valid expressions Syntax rules must be followed or there will be syntax
errors Computers don’t understand what you want, only what you
type in
10-20
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Step 4: Test the programDesk checking is done by the programmer who checks
for syntax errors and logic errorsDebugging is the process of detecting, locating, and
removing all errors in a computer programBeta testing is the process of testing the program using
real data One phase of testing uses correct data Once the program works, the next phase of testing uses
invalid data and untrained users to root out hidden errors
10-21
Programming: A Five-Step Programming: A Five-Step ProcedureProcedure
Step 5: Document & Maintain the program Documentation is written descriptions of what a program is and
how to fix it There are several types of documentation that should be
written User documentation – for the people who will use your program Operator documentation – for the people who run the large
computers the program runs on – so they know what to do if the program or computer malfunctions
Programmer documentation – for the next programmer who must modify and maintain what you have written
Maintain the program Fix any errors that are noticed once the program is in production Update the program to reflect new requirements
10-22
55 Generations of Programming Generations of Programming LanguagesLanguages
1945 – 1st Generation – Machine Language The basic language of the computer – all zeros and ones Each CPU architecture had a different machine language
Mid-1950s – 2nd Generation – Assembly LanguageMid-1950s to 60s – 3rd Generation – High-level Languages
(procedural languages) such as FORTRAN, COBOL, BASIC, CEarly 1970s – 4th Generation – Problem-oriented Languages such
as Intellect, NOMAD, FOCUSEarly 1980s – 5th Generation – Natural Languages
10-23
55 Generations of Programming Generations of Programming LanguagesLanguages
1945 – 1st Generation – Machine LanguageMid-1950s – 2nd Generation – Assembly Language
Mnemonic version of machine language Faster to program in than machine language Each CPU architecture had a different assembler
Mid-1950s to 60s – 3rd Generation – High-level Languages (procedural languages) such as FORTRAN, COBOL, BASIC, C
Early 1970s – 4th Generation – Problem-oriented Languages such as Intellect, NOMAD, FOCUS
Early 1980s – 5th Generation – Natural Languages
10-24
55 Generations of Programming Generations of Programming LanguagesLanguages
1945 – 1st Generation – Machine LanguageMid-1950s – 2nd Generation – Assembly LanguageMid-1950s to 60s – 3rd Generation – High-level Languages
(procedural languages) such as FORTRAN, COBOL, BASIC, C These languages are portable (the same across all CPUs) The programmer writes, then interprets or compiles the
programs The compiler or interpreter translates the code into the CPU-
specific assemblerEarly 1970s – 4th Generation – Problem-oriented Languages such
as Intellect, NOMAD, FOCUSEarly 1980s – 5th Generation – Natural Languages
10-25
55 Generations of Programming Generations of Programming LanguagesLanguages
1945 – 1st Generation – Machine LanguageMid-1950s – 2nd Generation – Assembly LanguageMid-1950s to 60s – 3rd Generation – High-level Languages
(procedural languages) such as FORTRAN, COBOL, BASIC, CEarly 1970s – 4th Generation – Problem-oriented Languages such
as Intellect, NOMAD, FOCUS Easier to program in than 3rd generation languages Three types are:
Report generators Query languages Application generators
Early 1980s – 5th Generation – Natural Languages
10-26
55 Generations of Programming Generations of Programming LanguagesLanguages
1945 – 1st Generation – Machine LanguageMid-1950s – 2nd Generation – Assembly LanguageMid-1950s to 60s – 3rd Generation – High-level Languages
(procedural languages) such as FORTRAN, COBOL, BASIC, CEarly 1970s – 4th Generation – Problem-oriented Languages such
as Intellect, NOMAD, FOCUSEarly 1980s – 5th Generation – Natural Languages
Programming languages that use human language to give people a more natural connection with computers
Part of the field of artificial intelligence
10-27
Programming Languages Used Programming Languages Used TodayToday
FORTAN The language of mathematics The first high-level language written A machine-independent procedural language
COBOL The most-frequently used language for business legacy
applications on mainframe computers Writing COBOL is like writing an outline
Has 4 divisions: Identification, Environment, Data, and Procedure A machine-independent procedural language
10-28
Programming Languages Used Programming Languages Used TodayToday
BASICDesigned to be an easy language to useUsually run from an interpreter, but can be compiledProcedural languageSupplanted by Microsoft’s Visual Basic for
commercial/business use Pascal
Designed to be a language to teach programmingStructured, compiled languageNot used in business or commercial companies
10-29
Programming Languages Used Programming Languages Used TodayToday
C General-purpose machine-independent compiled language The language used to write the Unix operating system The precursor to C++ and C# Permits very efficient coding and low memory utilization
through direct allocation and manipulation of computer memoryC++
Object-oriented language that was developed after C Permits encapsulation, object inheritance, and object reuse Often used to write computer games and CPU- and graphics-
intensive applications Tougher to program in than Visual Basic, Java, or C#
10-30
Programming Languages Used Programming Languages Used TodayToday
Java Object-oriented programming language developed at Sun
Microsystems by James Gosling and colleagues in the early 1990s Derivative of C++ with simpler memory management and syntax Is platform-independent, but is licensed by Sun Microsystems, which
owns development rights to Java Used in many US businesses
C# Microsoft’s answer to losing the Java licensing agreement
infringement lawsuit to Sun Contains a similar syntax to Java, but with additional C++ and Visual
Basic-like features Used in many U.S. businesses – one of the hottest languages for
“Help Wanted” ads in www.monster.com
10-31
Programming Languages Used Programming Languages Used TodayToday
LISP Stands for LISt Processor Developed by Prof. John McCarthy of the Massachusetts
Institute of Technology To develop an algebraic list processing language for Artificial
Intelligence work Macsyma is a renowned LISP application
Macsyma allows users to type in an algebraic equation such as (a x a x a) x b / (a x a) + 3 = c
Macsyma then manipulates the equation and simplifies it while keeping it in its algebraic form to derive the solution, which would be c = a x b + 3
This is very different from most programs that allow you to enter numbers and produce numeric solutions but can’t show you what the simplified algebraic equation looks like
http://www.scientek.com/macsyma/main.htm
10-32
Object-Oriented & Visual Object-Oriented & Visual ProgrammingProgramming
In Object oriented Programming (OOP) data and processing instructions are combined into an object that can be reusedObject
Self-contained module consisting of reusable code
Message The instruction received by the object indicating it is time to
perform an action
Method The processing instructions within the object to perform the
specified action
10-33
Object-Oriented & Visual Object-Oriented & Visual ProgrammingProgramming
Black Box Objects are like a black box in that the
actions and the objects are specified, but
the methods used are internal to the object This means the programmer that uses an object does not need to
know how the program inside the object does what it does For example, Microsoft Excel is like an object
Most of us use Excel without understanding what the programmers at Microsoft did to make Excel work
If we had to know that, it would take a lot longer to learn how to use Excel! Programmers who use objects can write programs a lot faster, because
objects save so much work
10-34
Object-Oriented & Visual Object-Oriented & Visual ProgrammingProgramming
3 basic concepts of OOP Encapsulation
One object contains (encapsulates) both Data Relevant processing instructions
Inheritance One object can be used as the foundation for other objects Objects can be arranged in hierarchies – classes and subclasses Objects can inherit actions and attributes from each other
Polymorphism Allows a single definition to be used with different data types and
different functions Means a message produces different results depending on the
object it is sent to
10-35
Object-Oriented & Visual Object-Oriented & Visual ProgrammingProgramming
DoorsHave a Handle
openclose
Patio doorsHave a slider
slide openslide closed
Front doorsHave locks
Car doorsHave locks
Have windows
The “Door” classActions
performed by a door Subclasses of
doors inherit from the door class, but also have their own unique actions and attributes
Notice we only list the actions & attributes when
they differ from those of class
Example of Inheritance Hierarchy with Specialization
10-36
Object-Oriented & Visual Object-Oriented & Visual ProgrammingProgramming
Visual Basic is an example of visual programmingUsing a mouse, the programmer drags and drops objects
on screenThe objects are arranged to make up the graphical user
interface for the program being writtenBy double-clicking on those objects, the programmer can
get into a coding window and write the programs to control the actions and behaviors of those objects
This makes it fast and easy to build prototype user interfaces and get end-user approval before doing a lot of programming
If you have Visual Basic installed on your school’s computers, this would be a great time to try it out.
10-37
Markup & Scripting LanguagesMarkup & Scripting Languages
A markup language is a kind of coding or “tags” inserted into text that embeds details about the structure and appearance of the text.
Open up a text editor such as Notepad or Wordpad, and enter the following text:
Then save the file on your desktop. Name it sample.htmNow open your internet browser and view it by clicking “file open”
and navigating to your desktop
<body bgcolor = "yellow"><h2> <p>My name is </h2><b><i><font color=“red”>your name</font></i></b></p>And I <b><h1>love</h1></b> this class!!!</body>
10-38
Markup & Scripting LanguagesMarkup & Scripting Languages
So how did thisTurn into this?
By HTML tags
<body bgcolor = "yellow"><h2> <p>My name is </h2><b><i><font color=“red”>your name</font></i></b></p>And I <b><h1>love</h1></b> this class!!! </body>
My name is your name
And I
lovethis class!!!
The <body bgcolor = “”> tag defines the page color
The <h2> tag means a heading of size 2
The <h1> tag means a heading of size 1
The <i> tag means to italicize the text
The <b> tag means to bold the text
The <p> tag means to start a new paragraph
And the / inside a tag means to end that format
There are a LOT of other HTML tags
10-39
Markup & Scripting LanguagesMarkup & Scripting Languages
HTML Hypertext markup languageUsed to create web pagesAlso lets you insert a hypertext link in a web page
VRMLVirtual Reality Modeling for Markup Language is used to
create three-dimensional web pages including interactive animation
Requires special VRML browser to view those pages
10-40
Markup & Scripting LanguagesMarkup & Scripting Languages
XMLeXtensible Markup Language is a metalanguage written
in SGML that allows one to facilitate easy document interchange on the internet
XML lets you create your own tagsXML statements define data content
JavaScriptNot the same language as JavaAn object-oriented scripting language that adds
interactive functions to web pages
10-41
Markup & Scripting LanguagesMarkup & Scripting Languages
ActiveXDeveloped by Microsoft as an alternative to Java for
creating interactivity on web pagesA set of controls or components that enable programs or
content of almost any type to be embedded in a web page
Often used by crackers to propagate viruses and/or trojans
Before you allow an ActiveX component to download from your browser to your PC, make sure you trust that website!
10-42
Markup & Scripting LanguagesMarkup & Scripting Languages
PerlA general-purpose programming language developed for
text manipulation.Developed in 1987 by Larry WallNow used for web development, network programming,
system administration, GUI development, other tasksWidely used for web server programs to perform
automatic tasks such as updating user accounts and newsgroup postings