Chapter Twelve - Columbus State University
Transcript of Chapter Twelve - Columbus State University
Chapter TwelveChapter Twelve
Systems Design and Development
©1999 Addison Wesley Longman 12.2
After reading this chapter, you should be able to:
• Describe the process of designing,programming, and debugging a computerprogram
• Explain why there are many differentprogramming languages and give examplesof several
• Explain why computer languages are builtinto applications, operating systems andutilities
©1999 Addison Wesley Longman 12.3
After reading this chapter, you should be able to:
• Outline the steps in the life cycle of aninformation system and explain the purposeof program maintenance
• Explain the relationship between computerprogramming and computer science
• Describe the problems faced by softwareengineers in trying to produce reliable largesystems
©1999 Addison Wesley Longman 12.4
Chapter Outline
• How People Make Programs• The Languages of Computers
• Programs in Perspective: SystemsAnalysis and the System Life Cycle
• The Science of Computing• The State of Software
©1999 Addison Wesley Longman 12.5
How People Make Programs
• Problem solving process involves:– Understanding the problem– Devising a plan for solving the problem– Carry out the plan– Evaluating the solution
©1999 Addison Wesley Longman 12.6
How People Make Programs
Programs aresolutions toproblems.
Programming is aspecialized form ofproblem solving.
©1999 Addison Wesley Longman 12.7
Four-Step Processto Programming
Define the problem:make sure you knowwhat the problem is.
Devise, refine, andtest the algorithm:break the probleminto smaller,solvable parts(stepwiserefinement).
©1999 Addison Wesley Longman 12.8
Four-Step Processto Programming
Write the program: begin withpseudocode and eventually use acomputer language.
Test and debug the program: to makesure it solves the initial problem thatwas defined.
©1999 Addison Wesley Longman 12.9
From Idea to Algorithm
Stepwise Refinement: complexproblems will need to be broken intosmaller problems.
Control Structures: logical structuresthat control the order in which theinstructions the computer is to follow.
Testing the Algorithm: check the logic.
©1999 Addison Wesley Longman 12.10
Stepwise Refinement
A complex problem likewriting a computergame needs to bebroken into threeparts: a beginning, amiddle, and an end.
Further refinementadds more detail toeach part.
For example:• begin the game• repeat player’s turn until
the player guesses rightanswer or seven turns arecompleted
• end the game
©1999 Addison Wesley Longman 12.11
Control Structures
Sequence:instructions arefollowed in theorder given.
Selection:instructions arebased on logicaldecisions.
Display instructionspick a number between 1 and 100set counter to 0
if guess < number, thensay guess is too small;else say guess is too big
©1999 Addison Wesley Longman 12.12
Control Structures
Repetition:instructions arerepeated untilsome condition issatisfied.
repeat turn until number isguessed or counter = 7
input guess from useradd 1 to counterend repeat
©1999 Addison Wesley Longman 12.13
From Algorithm to Program
If the logic of thealgorithm testsaccurately, it canthen be written intoa program.
Writing a program iscalled coding.
©1999 Addison Wesley Longman 12.14
From Algorithm to Program
The program will have three parts:Program heading contains the name of the
program and data files.Declarations and definitions of variables
and other programmer-defined items.Body contains the instructions the computer
will follow.
©1999 Addison Wesley Longman 12.15
Into the Computer
Next, the program needs to be enteredinto the computer using a text editor.
Once typed into a text editor, it can besaved to disk.
To run or execute the program, it must betranslated into machine language bymeans of an interpreter or compiler.
©1999 Addison Wesley Longman 12.16
Interpreters and Compilers
• Interpreter: eachinstruction istranslatedindividually
• Compiler: theentire program istranslated intomachine language.
©1999 Addison Wesley Longman 12.17
The Languages of Computers
Every computer has anative language - amachine language.
Machine language andAssembly language:– Difficult to learn and
use.– Examples include
machine andassembly languages.
©1999 Addison Wesley Longman 12.18
The Languages of Computers
High-level Languages:– English-like vocabulary.– Transportable– Examples include C++, LOGO, and BASIC.
©1999 Addison Wesley Longman 12.19
Multilingual Machines
Well known high-level programminglanguages include:FORTRAN (Formula Translation): the first
commercial high-level language.COBOL (Common Business Oriented Language):
developed for business data processingproblems.
©1999 Addison Wesley Longman 12.20
Multilingual Machines
Well known high-level programminglanguages include:LISP (List Processing): developed to process
non-numeric data like characters, words,and other symbols.
BASIC (Beginners All-purpose SymbolicInstruction Code): developed as an easy-to-learn language for beginners.
©1999 Addison Wesley Longman 12.21
Multilingual Machines
Pascal: designed toencouragestructuredprogramming.
C: developed as atool forprogrammingoperating systemssuch as UNIX.
©1999 Addison Wesley Longman 12.22
Multilingual Machines
Ada: is a massive languagedeveloped for the USGovernment
PROLOG: designed forworking with logicalrelationships betweenfacts
LOGO: is a dialect of LISPspecially designed forchildren.
©1999 Addison Wesley Longman 12.23
Programming Methodologies
StructuredProgramming: atechnique to makethe programmingprocess easier andmore productive bywriting many smallprograms.
©1999 Addison Wesley Longman 12.24
Programming Methodologies
• A program is wellstructured if it is:– made up of logically
cohesive modules– arranged in a
hierarchy– straightforward and
readable
©1999 Addison Wesley Longman 12.25
Programming Methodologies
Object-orientedProgramming: theprogram is acollection ofinteractive objectsthat contain bothdata andinstructions.
©1999 Addison Wesley Longman 12.26
Programming Methodologies
• VisualProgramming:programmerswrite programs bydrawing picturesand pointing toobjects on thescreen.
©1999 Addison Wesley Longman 12.27
Languages for Users
Languages designedto meet the needs ofmost computerusers include:
Macro or scriptinglanguages: used inautomating arepetitive task.
©1999 Addison Wesley Longman 12.28
Languages for Users
Fourth-generation languages (4GLs):easier to use and more like naturallanguage. Characteristics include:- English-like phrases- Non-procedural- Increases productivity
Querying a database with a querylanguage is one example.
©1999 Addison Wesley Longman 12.29
Languages for Users
• Component Software: users constructsmall custom applications from softwarecomponents.– Plug-ins for Netscape Navigator and
Internet Explorer– JavaScript
©1999 Addison Wesley Longman 12.30
The Future of Programming
Trends:– Natural languages and artificial intelligence
will provide users with programming toolsthat will understand the language of theuser.
– The distinction between user andprogrammer will begin to fade. Users won’tneed to master complicated programminglanguages to construct applications.
©1999 Addison Wesley Longman 12.31
The Future of Programming
– Programs will program themselves basedon simple descriptions provided by theuser.
©1999 Addison Wesley Longman 12.32
Systems Analysis and theSystems Life Cycle
Programs are only part of largerinformation systems - collections ofpeople, machines, data, and methodsorganized to accomplish specificfunctions and to solve a problem.
©1999 Addison Wesley Longman 12.33
Systems Analysis and theSystems Life Cycle
System Life Cycle - a sequence of stepsor phases it passes through betweenthe time the system is conceived andthe time it is phased out.
Systems analyst - a computerprofessional primarily responsible fordeveloping and managing a system as itprogresses through these phases.
©1999 Addison Wesley Longman 12.34
The Systems DevelopmentLife Cycle
The systems developmentlife cycle is a sequenceof steps followed by aproject team.
Investigation: “Why isthere a problem?”
Analysis: “What is theproblem?”
Design: “How can theproblem be solved?”
©1999 Addison Wesley Longman 12.35
The Systems DevelopmentLife Cycle
Development: teams of programmers andothers begin developing the various parts ofthe system.
Implementation: the system is put to work.Maintenance: ongoing upgrades.Retirement: phasing out the current system.
©1999 Addison Wesley Longman 12.36
Investigation
Systems investigation involves definingthe problem - identifying the informationneeds of the organization, examiningthe current system, needs oforganization, and studying feasibility ofchanging systems.
This phase produces a feasibility study.
©1999 Addison Wesley Longman 12.37
Analysis
The systems analystgathers documents,interviews users,observes the system inaction, and generallygathers and analysesdata to understand thecurrent system.
©1999 Addison Wesley Longman 12.38
Design
In the design phase,the systems analystdevelops the systemspecifications thatdescribe howexactly the systemrequirements will bemet.
©1999 Addison Wesley Longman 12.39
Design
The systems analystconsiders:– user interface
design.– database design.– process design.
©1999 Addison Wesley Longman 12.40
Development
The development phase is a process ofturning the design specifications into areal working system.
The initial testing of the system is knownas alpha testing and potential usersdo beta testing after the bugs areworked out.
©1999 Addison Wesley Longman 12.41
Development
Development includesa complex mix ofscheduling;hardware, software,and communicationspurchasing;documentation; andprogramming.
©1999 Addison Wesley Longman 12.42
Implementation
This phase may involve extensive trainingand technical user support.
Implementation includes user educationand training, equipment replacement,file conversion, and careful monitoringof the new system for problems.
©1999 Addison Wesley Longman 12.43
Maintenance
The maintenancephase involvesmonitoring,evaluating,repairing, andenhancing thesystem throughoutthe life cycle.
©1999 Addison Wesley Longman 12.44
Retirement
At some point in the life of asystem, on-goingmaintenance is not enough.The needs of anorganization change, users’expectations change, andthere is always newtechnology available.
©1999 Addison Wesley Longman 12.45
The Science of Computing
• Computer theory - applies concepts oftheoretical mathematics tocomputational problems.
• Algorithms - logical underpinnings ofcomputer programs.
• Data structures - define the logicalstructure of data
©1999 Addison Wesley Longman 12.46
The Science of Computing
• Programming concepts andlanguages - have evolved throughgenerations.
• Computer architecture - deals with theway hardware and software worktogether.
©1999 Addison Wesley Longman 12.47
The Science of Computing
• Management information systems(MIS) - is part computer science, partbusiness.– MIS specialist focus on developing
systems in timely, reliable and usefulinformation to manager in business.
– MIS applies theoretical concepts ofcomputer science to real-world problems.
©1999 Addison Wesley Longman 12.48
The Science of Computing
• Software engineering - is a relativelynew branch of computer science thatattempts to apply engineering principlesand techniques to the less-than-concrete world of computer software.
©1999 Addison Wesley Longman 12.49
The State of Software
The problems faced bysoftware engineersaffect all of us.
Two inherent problemsin softwaredevelopment arecost and reliability.
©1999 Addison Wesley Longman 12.50
Software Problems
Cost:The cost of hardware has dropped but the
cost of developing software has continuedto rise.
Reliability:Software errors include errors of omission,
syntax, logic, clerical, capacity, andjudgement.
©1999 Addison Wesley Longman 12.51
Software Solutions
Responding to the cost and reliabilityissues, computer scientists are workingto improve:– Programming Techniques– Programming Environments– Program Verification– Clean Room Programming– Human Management