Chapter Twelve - Columbus State University

51
Chapter Twelve Chapter Twelve Systems Design and Development

Transcript of Chapter Twelve - Columbus State University

Page 1: Chapter Twelve - Columbus State University

Chapter TwelveChapter Twelve

Systems Design and Development

Page 2: Chapter Twelve - Columbus State University

©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

Page 3: Chapter Twelve - Columbus State University

©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

Page 4: Chapter Twelve - Columbus State University

©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

Page 5: Chapter Twelve - Columbus State University

©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

Page 6: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.6

How People Make Programs

Programs aresolutions toproblems.

Programming is aspecialized form ofproblem solving.

Page 7: Chapter Twelve - Columbus State University

©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).

Page 8: Chapter Twelve - Columbus State University

©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.

Page 9: Chapter Twelve - Columbus State University

©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.

Page 10: Chapter Twelve - Columbus State University

©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

Page 11: Chapter Twelve - Columbus State University

©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

Page 12: Chapter Twelve - Columbus State University

©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

Page 13: Chapter Twelve - Columbus State University

©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.

Page 14: Chapter Twelve - Columbus State University

©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.

Page 15: Chapter Twelve - Columbus State University

©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.

Page 16: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.16

Interpreters and Compilers

• Interpreter: eachinstruction istranslatedindividually

• Compiler: theentire program istranslated intomachine language.

Page 17: Chapter Twelve - Columbus State University

©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.

Page 18: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.18

The Languages of Computers

High-level Languages:– English-like vocabulary.– Transportable– Examples include C++, LOGO, and BASIC.

Page 19: Chapter Twelve - Columbus State University

©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.

Page 20: Chapter Twelve - Columbus State University

©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.

Page 21: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.21

Multilingual Machines

Pascal: designed toencouragestructuredprogramming.

C: developed as atool forprogrammingoperating systemssuch as UNIX.

Page 22: Chapter Twelve - Columbus State University

©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.

Page 23: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.23

Programming Methodologies

StructuredProgramming: atechnique to makethe programmingprocess easier andmore productive bywriting many smallprograms.

Page 24: Chapter Twelve - Columbus State University

©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

Page 25: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.25

Programming Methodologies

Object-orientedProgramming: theprogram is acollection ofinteractive objectsthat contain bothdata andinstructions.

Page 26: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.26

Programming Methodologies

• VisualProgramming:programmerswrite programs bydrawing picturesand pointing toobjects on thescreen.

Page 27: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.27

Languages for Users

Languages designedto meet the needs ofmost computerusers include:

Macro or scriptinglanguages: used inautomating arepetitive task.

Page 28: Chapter Twelve - Columbus State University

©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.

Page 29: Chapter Twelve - Columbus State University

©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

Page 30: Chapter Twelve - Columbus State University

©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.

Page 31: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.31

The Future of Programming

– Programs will program themselves basedon simple descriptions provided by theuser.

Page 32: Chapter Twelve - Columbus State University

©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.

Page 33: Chapter Twelve - Columbus State University

©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.

Page 34: Chapter Twelve - Columbus State University

©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?”

Page 35: Chapter Twelve - Columbus State University

©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.

Page 36: Chapter Twelve - Columbus State University

©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.

Page 37: Chapter Twelve - Columbus State University

©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.

Page 38: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.38

Design

In the design phase,the systems analystdevelops the systemspecifications thatdescribe howexactly the systemrequirements will bemet.

Page 39: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.39

Design

The systems analystconsiders:– user interface

design.– database design.– process design.

Page 40: Chapter Twelve - Columbus State University

©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.

Page 41: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.41

Development

Development includesa complex mix ofscheduling;hardware, software,and communicationspurchasing;documentation; andprogramming.

Page 42: Chapter Twelve - Columbus State University

©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.

Page 43: Chapter Twelve - Columbus State University

©1999 Addison Wesley Longman 12.43

Maintenance

The maintenancephase involvesmonitoring,evaluating,repairing, andenhancing thesystem throughoutthe life cycle.

Page 44: Chapter Twelve - Columbus State University

©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.

Page 45: Chapter Twelve - Columbus State University

©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

Page 46: Chapter Twelve - Columbus State University

©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.

Page 47: Chapter Twelve - Columbus State University

©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.

Page 48: Chapter Twelve - Columbus State University

©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.

Page 49: Chapter Twelve - Columbus State University

©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.

Page 50: Chapter Twelve - Columbus State University

©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.

Page 51: Chapter Twelve - Columbus State University

©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