Top Banner

of 52

LE_ppt_12

Apr 06, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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