8/3/2019 LE_ppt_12
1/52
Chapter 12Systems Design and Development
1
8/3/2019 LE_ppt_12
2/52
Chapter 12Objectives
Describe the process of designing, programming, anddebugging a computer programExplain why there are many different programminglanguages and give examples of several of these languagesExplain why computer languages are built into applications,operating systems, and utilitiesOutline the steps in the life cycle of an information systemand explain the purpose of program maintenance
2
8/3/2019 LE_ppt_12
3/52
Chapter 12Objectives (continued)
Explain the relationship between computer programming
and computer scienceDescribe the problems faced by software engineers intrying to produce reliable large systemsExplain why software companies provide only limitedwarranties for their products
3
8/3/2019 LE_ppt_12
4/52
Chapter 12
Grace Murray Hopper Sails on SoftwareG race Murray Hopper helped chart the course of the computer industry from its earliest daysHopper earned a Ph.D. from Yale University in1928 and taught math for ten years at Vassar College before joining the U.S. Naval Reserve in1943The Navy assigned her to the Bureau of Ordnance Computation at Harvard University,where she worked with Howard Aikens Mark I,
the first large-scale digital computer Hopper wrote programs and operating manuals for theMark I, Mark II, and Mark III
4
8/3/2019 LE_ppt_12
5/52
Chapter 12
Grace Murray Hopper Sails on SoftwareAfter World War II, Hopper left Harvard to work on the UNIVAC I, thefirst general purpose commercial computer, as well as other commercialcomputers
She played central roles in the development of the first compiler (a type of
computer language translator that makes most of todays software possible)and COBOL, the first computer language designed for developing businesssoftware
Hoppers greatest impact was probably the result of her tireless crusadeagainst the Weve always done it that way mind-set
In the early days of computing, she worked to persuade businesses toembrace new technology
In later years, she campaigned to shift the Pentagon and industry away frommainframes and toward networks of smaller computers
5
8/3/2019 LE_ppt_12
6/52
Chapter 12
How People Make ProgramsProgramming is a specialized form of problem solvingTypically involves four steps:
U nderstand the problem. The most important step in the problem-solving process
D evise a plan for solving the problem . What resources are available and how might they be put to work
to solve the problem? Carry out the plan.
Often overlaps the previous step
E valuate the solution. Is the problem solved correctly? Is this solution applicable to other problems?
6
8/3/2019 LE_ppt_12
7/52
Chapter 12
How People Make ProgramsThe programming process can also be described as another four-step process, although in practice these steps oftenoverlap:
Define the problem Devise, refine, and test the algorithm Write the program Test and debug the program
7
8/3/2019 LE_ppt_12
8/52
Chapter 12
How People Make ProgramsF rom Idea to Algorithm
Start with a statement of the problem:
A teacher needs a program that is a number-guessing gameso students can learn to develop logical strategies and
practice their arithmetic. In this game, the computer picks anumber between one and 100 and gives the player seventurns to guess the number. After each incorrect try, thecomputer tells the player whether the guess is too high or toolow.
8
8/3/2019 LE_ppt_12
9/52
Chapter 12
How People Make ProgramsStepwise refinement
Initially, a problem can be divided into three parts: a beginning, amiddle, and an end
Each of these parts represents a smaller programming problem to
solve
Begin
Game
Repeat Returnuntil Number is
Guessed
End
Game
9
8/3/2019 LE_ppt_12
10/52
Chapter 12
How People Make Programs The next refinement fills in a few details for each part:
1. Begin Game
Display instructionsPick a number between one and 100
2. Repeat Turn until Number is Guessed
Input guess from user Respond to guessEnd repeat
3.E
nd Game
Display end message
10
8/3/2019 LE_ppt_12
11/52
Chapter 12
How People Make Programs Control structures
Control structures logical structures that control the order in whichinstructions are carried outThree basic control structures:
Sequence: group of instructions followed in order from first to lastSelection: choosing between alternative courses of action dependingon certain conditionsRepetition: allowing a group of steps to be repeated several times,usually until some condition is satisfied
11
8/3/2019 LE_ppt_12
12/52
Chapter 12
How People Make Programsdisplay instructionspick a number between 1 and 100set counter to 0
if guess < number, then say guess is too small;else say guess is too big
repeat turn until number is guessed or counter = 7input guess from useradd 1 to counterend repeat
A sequence control structure
A selection control structure
A repetition control structure
12
8/3/2019 LE_ppt_12
13/52
Chapter 12
How People Make ProgramsTesting the algorithm
This round of testing is designed to check the logic of the algorithm Test the algorithm by following the instructions using different sets
of numbers
13
8/3/2019 LE_ppt_12
14/52
Chapter 12
How People Make ProgramsF rom Algorithm to Program
A simple program contains: The program heading The declarations and definition The body
The programmer defines the words number, guess, and counter Each of these words represents a variable a named portion of the
computers memory Variables become part of the programs vocabulary Program can examine and change variables
14
8/3/2019 LE_ppt_12
15/52
Chapter 12
How People Make ProgramsInto the Computer
A text editor is an application used to enter and save a program Either a translator or a compiler is used to translate a program into
machine language Translation software (or a translator ), called an interpreter , translates a
high-level program to machine language one statement at a time duringexecution
15
8/3/2019 LE_ppt_12
16/52
Chapter 12
How People Make Programs Syntax errors violations of the grammar rules of a programming
languageOften flagged automatically as soon as theyre typed into the editor
L ogic errors problems with the logical structure of a program Cause differences between what the program is supposed to do andwhat it actually does
Not always as easy to detect
16
8/3/2019 LE_ppt_12
17/52
Chapter 12
How People Make Programs A compiler translates an entire high-level program to machine language
before executing the program A typical compiler is an integrated programming environment, containing
A text editor A compiler A debugger to simplify the process of locating and correcting errors A variety of other programming utilities
17
8/3/2019 LE_ppt_12
18/52
Chapter 12
ProgrammingL
anguages and MethodologiesMachine Language and Assembly Language
Machine language: the native language of a computer Instructions for the four basic arithmetic operations, for comparing pairs
of numbers, for repeating instructions, etc. are all binary Instructions, memory locations, numbers, and characters are all
represented by strings of zeros and ones
ssembly language: functionally equivalent to machine
language but easier for people to read, write, and understand
18
8/3/2019 LE_ppt_12
19/52
Chapter 12
ProgrammingL
anguages and MethodologiesAn assembler translates each statement of assembly languageinto a corresponding machine language statement
19
8/3/2019 LE_ppt_12
20/52
Chapter 12
ProgrammingL
anguages and MethodologiesHigh-Level Languages
High-level languages fall somewhere between natural humanlanguages and precise machine languagesExamples: C++, Java, Basic, F ORTRAN, COBOL, Python,Pascal, LISP, ADA, PROLO G These languages are easier to write and debug and aretransportable between machines
20
8/3/2019 LE_ppt_12
21/52
Chapter 12
ProgrammingL
anguages and MethodologiesStructured Programming
Structured programming is a technique that makes the
programming process easier and more productiveA program is well structured if:
Its made up of logically cohesive modules The modules are arranged in a hierarchy Its straightforward and readable
21
8/3/2019 LE_ppt_12
22/52
Chapter 12
ProgrammingL
anguages and MethodologiesObject-Oriented Programming
In object-oriented programming (OOP ), a program is not just acollection of step-by-step instructions or procedures, but acollection of objectsObjects contain both data and instructions and can send andreceive messagesC++ and Java are todays most popular object-orientedlanguages
22
8/3/2019 LE_ppt_12
23/52
Chapter 12Programming L anguages and Methodologies
With OOP technology, programmers can build programs from prefabricated objects in the same way builders construct housesfrom prefabricated walls
Example: An object that sorts addresses in alphabetical order in a mailinglist database can also be used in a program that sorts hotel reservationsalphabetically
23
8/3/2019 LE_ppt_12
24/52
Chapter 12
ProgrammingL
anguages and MethodologiesVisual Programming
V isual programming tools enable programmers to create large portions of
their programs by drawing pictures and pointing to on-screen objectsEliminates much of the tedious coding of traditional programmingpples HyperCard was probably the first popular example of a visual
programming environment Includes a programming language called HyperTalk
A HyperCard programmer doesnt need to know HyperTalk to create workingapplications
Microsofts V isual BASIC includes many of the ideas and tools of object-oriented programming
24
8/3/2019 LE_ppt_12
25/52
Chapter 12
Programming L anguages and MethodologiesLanguages for Users
Macro languages (also called scripting languages ) allow users to create programs, called macros , that automate repetitive tasks
Microsoft Office includes a scripting variation of Visual Basic called Visual Basicfor Applications (VBA)
F ourth-generation languages (4G L ) use English-like phrases and sentences to issue instructions
Called nonprocedural languages F ocus on what needs to be done, not how to do it One type of 4 G L is the query language that enables a user to request informationfrom a database
25
8/3/2019 LE_ppt_12
26/52
Chapter 12Programming L anguages and Methodologies
Component Software
Component software makes it possible to construct smallcustom applications from software componentsThe logical extension of object-oriented languages
Customization is possible only if applications are programmed toallow it
More and more software programs, including operating systems, aredesigned with extensibility in mind
May soon reach a level where users and managers can build their own applications
26
8/3/2019 LE_ppt_12
27/52
Chapter 12Programming L anguages and Methodologies
Extreme Programming
Programmers use a variety of languages, including C and C++, towrite Web applications
Some programming languages are particularly useful for developing Web applications:
HTML JavaScript Java Perl XML
27
8/3/2019 LE_ppt_12
28/52
Chapter 12Programming L anguages and Methodologies
Many experts see a future in which PC applications willtake a backseat to Web-based applicationsWeb-based personal information managers, reference tools,and games are growing steadily in popularityBecause of the distributed nature of the Web and thelimited bandwidth of many Internet connections, Web-
based applications present several challenges for users
28
8/3/2019 LE_ppt_12
29/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife CycleSystems Development
Systems development: a problem-solving process of: Investigating a situation Designing a system solution to improve the situation Acquiring the resources to implement the solution Evaluating the success of the solution
A steering committee may be formed to decide what projectsshould be considered first
Made up of people from each functional area in the organization
29
8/3/2019 LE_ppt_12
30/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
A business organization may choose to contract, or outsource , asystems analyst from an outside consulting firm
A systems analyst is an IT professional primarily responsible for developing and managing a system
Avoids the need for permanent in-house staff Allows an organization to hire talent for selected activities on a contract basis
E nd-user development allows end users to create applications End-users need access to and training in the use of Web site development
tools, spreadsheet and database management packages, and fourth-generation languages
30
8/3/2019 LE_ppt_12
31/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Investigation
Analysis
D esign
D evelopment
Implementation
Maintenance
Retirement
The Systems Development Life Cycle (SDLC)
The graphical waterfallmodel of the SDLC shows
a basic sequential flow fromidentifying the right things
to do to making sure thatthings are done right
31
8/3/2019 LE_ppt_12
32/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Investigation
Define the problem:
Identify the information needs of the organizationExamine the current systemDetermine how well it meets the needs of the organization
Study the feasibility of changing or replacing the currentsystem
32
8/3/2019 LE_ppt_12
33/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Analysis
During the analysis phase, the systems analyst :
G athers documentsInterviews users of the current systemObserves the system in actionG enerally gathers and analyzes data to understandthe current system and identify new requirements
33
8/3/2019 LE_ppt_12
34/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Prototyping is an interactive methodologyin which the prototype is continually
modified and improved until it meetsthe needs of the end-userIdentifyrequirements
Develop workingmodel of system
Use prototype
Evaluate featuresof prototype
Develop application,install prototype for evaluation by end-users,
begin new prototype, or abandon application
Makeany
necessarychanges
to prototype
D esign
34
8/3/2019 LE_ppt_12
35/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
The systems analyst mustcarefully plan and scheduleactivities in the developmentphase of the S DL C becausethey can overlap and occur
simultaneously
D evelopment
35
8/3/2019 LE_ppt_12
36/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Implementation
D irect cutover approachParallel systems approachPhase-in approachPilot approach
36
8/3/2019 LE_ppt_12
37/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Maintenance
The maintenance phase involves monitoring,evaluating, repairing, and enhancing the systemthroughout the lifetime of the system
37
8/3/2019 LE_ppt_12
38/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Retirement
Systems are often used for many years, but at some point in the life of a system,ongoing maintenance is not enough
38
8/3/2019 LE_ppt_12
39/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Systems Development Tools and TechniquesData collection techniques include:
Review Interviews Questionnaires Observation Sampling
39
8/3/2019 LE_ppt_12
40/52
Chapter 12Programs in Perspective: Systems Analysis
and the Systems L ife Cycle
Modeling tools Modeling tools are graphicrepresentations of systems
System flowcharts, data flowdiagrams, data dictionaries,and decision tables are most
widely-used
40
8/3/2019 LE_ppt_12
41/52
Chapter 12Programs in Perspective: Systems Analysis and
the Systems L ife Cycle
Computer-aided systems engineering (CASE) tools include: Charting and diagramming tools to draw system flowcharts and data
flow diagrams A centralized data dictionary containing detailed information about all
the system components A user interface generator to create and evaluate many different
interface designs Code generators that automate much of the computer programming to
create a new system or application
41
8/3/2019 LE_ppt_12
42/52
Chapter 12Programs in Perspective: Systems Analysis and
the Systems L ife Cycle
Some CASE software packages contain tools that apply primarily to theanalysis and design phases of the systems development life cycle
Others contain tools that automate the later phases of systemsdevelopment, implementation, and maintenance
Integrated CASE tools incorporate the whole spectrum of tools to supportthe entire systems development life cycle
42
8/3/2019 LE_ppt_12
43/52
Chapter 12
Rules of ThumbAvoiding Information Technology Project F ailures
Here are six tips for information workers on how to preventthe failure of IT projects:
IT projects need executive sponsorship IT projects need user input IT projects need specifications IT projects need realistic expectations IT projects need cooperative business partners IT projects need open and honest communication
43
8/3/2019 LE_ppt_12
44/52
Chapter 12
The Science of ComputingMany computer scientists prefer to call their field computingscience because it focuses on the process of computing rather than on computer hardwareComputer science includes a number of focus areas:
Computer theory Algorithms Data structures Programming concepts and languages Computer architecture Management information systems Software engineering
44
8/3/2019 LE_ppt_12
45/52
Chapter 12
The State of SoftwareSoftware Problems
Software errors are difficult to locate and more difficult toremove
Errors of omission Syntax errors Logic errors Clerical errors
Capacity errors Judgment errors
45
8/3/2019 LE_ppt_12
46/52
Chapter 12
The State of SoftwareSoftware Solutions
Computer scientists and software engineers are responding toreliability and cost problems on five main fronts:
Programming techniques Programming environments Program verification Clean-room programming Human management
It could well be that by the close of thetwenty-first century, a new form of truly
accessible programming will be the provinceof everyone, and will be viewed like writing,
which was once the province of the ancient scribes but eventually became universally
accessible. Michael Dertouzos, in W hat W ill Be
46
8/3/2019 LE_ppt_12
47/52
Chapter 12
The State of SoftwareSoftware Warranties
In the past, consumer software manufacturers provided no warranties for their products
Today some manufacturers will give money back if the software cannot beinstalled on the computer No software manufacturer will accept liability for harm caused to you or your business by errors in software:
Why? Additional precautions to make software work better would inflate cost and extend
the time needed for development Only large companies would be able to sustain the pressure of such a scenario
47
8/3/2019 LE_ppt_12
48/52
Chapter 12
The State of SoftwareThe F uture of Programming?
Programming languages will continue to evolve in thedirection of natural languages, like EnglishThe line between programmer and user is likely to grow hazyComputers will play an ever-increasing role in programmingthemselvesF uture programming tools will have little in common withtodays languages
When future computer historians look back, theyll marvel at howdifficult it was for us to instruct computers to perform even the simplestactions
48
8/3/2019 LE_ppt_12
49/52
Chapter 12L esson Summary
Computer programming is a specialized form of problemsolving that involves developing an algorithm for solving a
problem
Most programmers use stepwise refinement to repeatedly break a problem into smaller, more easily solvable problemsComputer languages have evolved through several generations,with each generation easier to use and more powerful than theone that came beforeMost modern languages encourage structured programming
49
8/3/2019 LE_ppt_12
50/52
Chapter 12
L esson Summary (continued)Many applications contain built-in macro languages, scriptinglanguages, and query languages that put programming power inthe usersObject-oriented programming (OOP) tools enable programmersto construct programs from objects with properties and providethe ability to send messages back and forth; many believe thatOOP represents the future of programming
Programs are part of larger information systems
50
8/3/2019 LE_ppt_12
51/52
Chapter 12
L esson Summary (continued)Computer scientists are responsible for the software tools andconcepts that make all other software development possibleOne of the most challenging problems facing computer scienceis the problem of software reliabilityAs more and more human institutions rely on computer systems,it is becoming increasingly important for computer scientists tofind ways to make software that people can trust
51
8/3/2019 LE_ppt_12
52/52