+ All Categories
Home > Documents > Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall,...

Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall,...

Date post: 27-Dec-2015
Category:
Upload: vincent-horn
View: 219 times
Download: 1 times
Share this document with a friend
Popular Tags:
53
Slide 1 © 2008 Prentice- Hall, Inc.
Transcript
Page 1: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 1© 2008 Prentice-Hall, Inc.

Page 2: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Systems Design and Development

Slide 2© 2008 Prentice-Hall, Inc.

Page 3: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Describe the process of designing, programming, and debugging a computer program.

Explain why there are many different programming languages and give examples of several of these languages.

Explain why computer languages are built into applications, operating systems, and utilities.

Outline the steps in the life cycle of an information system and explain the purpose of program maintenance.

Slide 3© 2008 Prentice-Hall, Inc.

Page 4: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Explain the relationship between computer programming and computer science.

Describe the problems faced by software engineers in trying to produce reliable large systems.

Explain why software companies provide only limited warranties for their products.

Slide 4© 2008 Prentice-Hall, Inc.

Page 5: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Grace Murray Hopper helped chart the course of the computer industry from its earliest days.

Hopper earned a Ph.D. from Yale University in 1928 and taught math for 10 years at Vassar College before joining the U.S. Naval Reserve in 1943.

The Navy assigned her to the Bureau of Ordnance Computation at Harvard University, where she worked with Howard Aiken’s Mark I, the first large-scale digital computer.

Hopper wrote programs and operating manuals for the Mark I, Mark II, and Mark III.

Slide 5© 2008 Prentice-Hall, Inc.

Page 6: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

After World War II, Hopper left Harvard to work on the UNIVAC I, the first general purpose commercial computer, as well as other commercial computers

She played central roles in the development of the first compiler (a type of computer language translator that makes most of today’s software possible) and COBOL, the first computer language designed for developing business software.

Hopper’s greatest impact was probably the result of her tireless crusade against the “We’ve always done it that way” mind-set.

In the early days of computing, she worked to persuade businesses to embrace new technology.

In later years, she campaigned to shift the Pentagon and industry away from mainframes and toward networks of smaller computers.

Slide 6© 2008 Prentice-Hall, Inc.

Page 7: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Programming is a specialized form of problem solving. Problem solving typically involves four steps:

Understand the problem. This is the most important step in the problem-solving process.

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

This often overlaps with the previous step. Evaluate the solution.

Is the problem solved correctly? Is this solution applicable to other problems?

Slide 7© 2008 Prentice-Hall, Inc.

Page 8: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

The programming process can also be described as another four-step process, although in practice these steps often overlap:

Define the problem. Devise, refine, and test the algorithm. Write the program. Test and debug the program.

Slide 8© 2006Prentice-Hall, Inc.

Page 9: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

From Idea to Algorithm Start with a statement of the problem:

Slide 9© 2008 Prentice-Hall, Inc.

A teacher needs a program that is a number-guessing game so students can learn to develop logical strategies and practice their arithmetic. In this game, the computer picks a number between 1 and 100 and gives the player 7 turns to guess the number. After each incorrect try, the computer tells the player whether the guess is too high or too low.

Page 10: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Stepwise refinementInitially, a problem can be divided into three parts: a beginning, a

middle, and an end.Each of these parts represents a smaller programming problem to

solve.

Slide 10© 2008 Prentice-Hall, Inc.

BeginGame

Repeat Returnuntil Number is

Guessed

EndGame

Page 11: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

The next refinement fills in a few details for each part:

Slide 11© 2008 Prentice-Hall, Inc.

1. Begin Game

Display instructions.Pick a number between one and 100.

2. Repeat Turn until Number is Guessed Input guess from user. Respond to guess. End repeat. 3. End Game

Display end message.

Page 12: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Control structures

Control structures—logical structures that control the order in which instructions are carried out

Three basic control structures:

Sequence: group of instructions followed in order from first to lastSelection: choosing between alternative courses of action depending on certain conditions

Repetition: allowing a group of steps to be repeated several times, usually until some condition is satisfied

Slide 12© 2008 Prentice-Hall, Inc.

Page 13: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 13© 2008 Prentice-Hall, Inc.

display 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

Page 14: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

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

Slide 14© 2008 Prentice-Hall, Inc.

Page 15: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

From Algorithm to Program

A simple program contains:The program headingThe declarations and definitionThe body

The programmer defines the words number, guess, and counter. Each of these words represents a variable—a named portion of the

computer’s memory. Variables become part of the program’s vocabulary.The program can examine and change variables.

Slide 15© 2008 Prentice-Hall, Inc.

Page 16: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Into 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 during execution.

Slide 16© 2008 Prentice-Hall, Inc.

Page 17: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Syntax errors—violations of the grammar rules of a programming language

Often flagged automatically as soon as they’re typed into the editor Logic errors—problems with the logical structure of a program

Cause differences between what the program is supposed to do and what it actually does

Not always as easy to detect

Slide 17© 2008 Prentice-Hall, Inc.

Page 18: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

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

Slide 18© 2008 Prentice-Hall, Inc.

Page 19: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Machine Language and Assembly Language

Machine language: the native language of a computerInstructions for the four basic arithmetic operations, for comparing pairs

of numbers, and for repeating instructions, etc. are all binary.Instructions, memory locations, numbers, and characters are all

represented by strings of zeros and ones.

Assembly language: functionally equivalent to machine language but easier for people to read, write, and understand

Slide 19© 2008 Prentice-Hall, Inc.

Page 20: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

An assembler translates each statement of assembly language into a corresponding machine language statement.

Slide 20© 2008 Prentice-Hall, Inc.

Page 21: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

High-Level Languages

High-level languages fall somewhere between natural human languages and precise machine languages.

Examples: C++, Java, Basic, FORTRAN, COBOL, Python, Pascal, LISP, ADA, PROLOG

These languages are easier to write and debug and are transportable between machines.

Slide 21© 2008 Prentice-Hall, Inc.

Page 22: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Structured Programming

Structured programming is a technique that makes the programming process easier and more productive.

A program is well-structured if: It’s made up of logically cohesive modules. The modules are arranged in a hierarchy. It’s straightforward and readable.

Slide 22© 2008 Prentice-Hall, Inc.

Page 23: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Object-Oriented Programming

In object-oriented programming (OOP), a program is not just a collection of step-by-step instructions or procedures, but a collection of objects.

Objects contain both data and instructions and can send and receive messages.

C++ and Java are today’s most popular object-oriented languages.

Slide 23© 2008 Prentice-Hall, Inc.

Page 24: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

With OOP technology, programmers can build programs from prefabricated objects in the same way builders construct houses from prefabricated walls.

Example: An object that sorts addresses in alphabetical order in a mailing list database can also be used in a program that sorts hotel reservations alphabetically.

Slide 24© 2008 Prentice-Hall, Inc.

Page 25: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Visual Programming

Visual programming tools enable programmers to create large portions of their programs by drawing pictures and pointing to on-screen objects.

The process eliminates much of the tedious coding of traditional programming. Apple’s HyperCard was probably the first popular example of a visual

programming environment. HyperCard includes a programming language called HyperTalk.

A HyperCard programmer doesn’t need to know HyperTalk to create working applications.

Microsoft’s Visual BASIC includes many of the ideas and tools of object-oriented programming.

Slide 25© 2008 Prentice-Hall, Inc.

Page 26: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Languages 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 Basic for Applications (VBA).

Fourth-generation languages (4GL) use English-like phrases and sentences to issue instructions.

Called nonprocedural languages Focus on what needs to be done, not how to do it 4GL example: the query language that enables a user to request

information from a database

Slide 26© 2008 Prentice-Hall, Inc.

Page 27: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Component Software

Component software makes it possible to construct small custom applications from software components.

It is the logical extension of object-oriented languages. Customization is possible only if applications are programmed to allow

it. More and more software programs, including operating systems, are

designed with extensibility in mind. Such software may soon reach a level where users and managers

can build their own applications.

Slide 27© 2008 Prentice-Hall, Inc.

Page 28: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Extreme Programming

Programmers use a variety of languages, including C and C++, to write Web applications.

Some programming languages are particularly useful for developing Web applications:

HTML JavaScript Java Perl XML

Slide 28© 2008 Prentice-Hall, Inc.

Page 29: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Many experts see a future in which PC applications will take a back seat to Web-based applications.

Web-based personal information managers, reference tools, and games are growing steadily in popularity.

Because of the distributed nature of the Web and the limited bandwidth of many Internet connections, Web- based applications present several challenges for users.

Slide 29© 2008 Prentice-Hall, Inc.

Page 30: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Systems Development

Systems development: a problem-solving process of:Investigating a situation Designing a system solution to improve the situationAcquiring the resources to implement the solutionEvaluating the success of the solution

A steering committee may be formed to decide what projects should be considered first.

Made up of people from each functional area in the organization

Slide 30© 2008 Prentice-Hall, Inc.

Page 31: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

A business organization may choose to contract, or outsource, a systems analyst from an outside consulting firm.

A systems analyst is an IT professional primarily responsible for developing and managing a system.

Outsourcing avoids the need for permanent in-house staff. It allows an organization to hire talent for selected activities on a

contract basis.

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

Slide 31© 2008 Prentice-Hall, Inc.

Page 32: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 32© 2008 Prentice-Hall, Inc.

Investigation

Analysis

Design

Development

Implementation

Maintenance

Retirement

The Systems Development Life Cycle (SDLC)

The graphical “waterfall”model of the SDLC shows

a basic sequential flow fromidentifying the “right things to do” to making sure that

“things are done right.”

Page 33: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 33© 2008 Prentice-Hall, Inc.

Investigation

Define the problem:

•Identify the information needs of the organization. •Examine the current system.•Determine how well it meets the needs of the organization. •Study the feasibility of changing or replacing the current system.

Page 34: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 34© 2008 Prentice-Hall, Inc.

Analysis

During the analysis phase, the systems analyst :

• Gathers documents• Interviews users of the current system• Observes the system in action • Generally gathers and analyzes data to understand the current system and identify new requirements

Page 35: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 35© 2008 Prentice-Hall, Inc.

Prototyping is an interactive methodologyin which the prototype is continually modified and improved until it meets the needs of the end-user.

Identifyrequirements.

Develop workingmodel of the system.

Use prototype.

Evaluate featuresof prototype.

Develop application, install prototype forevaluation by end-users,begin new prototype, orabandon application.

Makeany

necessarychanges

to prototype.

Design

Page 36: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 36© 2008 Prentice-Hall, Inc.

The systems analyst must carefully plan and schedule activities in the development phase of the SDLC because they can overlap and occur Simultaneously.

Development

Page 37: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 37© 2008 Prentice-Hall, Inc.

Implementation

•Direct cutover approach•Parallel systems approach•Phase-in approach•Pilot approach

Page 38: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 38© 2008 Prentice-Hall, Inc.

Maintenance

The maintenance phase involves monitoring, evaluating, repairing, and enhancing the system throughout the lifetime of the system.

Page 39: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 39© 2008 Prentice-Hall, Inc.

Retirement

Systems are often used for many years; but at some point in the life of a system, ongoing maintenance is not enough.

Page 40: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Systems Development Tools and Techniques Data collection techniques include:

Review Interviews Questionnaires Observation Sampling

Slide 40© 2008 Prentice-Hall, Inc.

Page 41: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Modeling toolsModeling tools are graphic

representations of systems.System flowcharts, data flow

diagrams, data dictionaries, and decision tables are the most widely-used modeling tools.

Slide 41© 2008 Prentice-Hall, Inc.

Page 42: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

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

Slide 42© 2008 Prentice-Hall, Inc.

Page 43: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Some CASE software packages contain tools that apply primarily to the analysis and design phases of the systems development life cycle.

Others contain tools that automate the later phases of systems development, implementation, and maintenance.

Integrated CASE tools incorporate the whole spectrum of tools to

support the entire systems development life cycle.

Slide 43© 2008 Prentice-Hall, Inc.

Page 44: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Avoiding Information Technology Project Failures

Here are six tips for information workers on how to prevent the 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.

Slide 44© 2008 Prentice-Hall, Inc.

Page 45: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Many computer scientists prefer to call their field computing science because it focuses on the process of computing rather than on computer hardware.

Computer science includes a number of focus areas: Computer theory Algorithms Data structures Programming concepts and languages Computer architecture Management information systems Software engineering

Slide 45© 2008 Prentice-Hall, Inc.

Page 46: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Software Problems

Software errors are difficult to locate and more difficult to remove:

Errors of omission Syntax errors Logic errors Clerical errors Capacity errors Judgment errors

Slide 46© 2008 Prentice-Hall, Inc.

Page 47: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Software Solutions

Computer scientists and software engineers are responding to reliability and cost problems on five main fronts:

Programming techniques Programming environments Program verification Clean-room programming Human management

Slide 47© 2008 Prentice-Hall, Inc.

It could well be that by the close of the twenty-first century, a new form of truly

accessible programming will be the province of everyone, and will be viewed like writing, which was once the province of the ancient scribes but eventually became universally

accessible.—Michael Dertouzos, in What Will Be

Page 48: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Software Warranties

In the past, consumer software manufacturers provided no warranties for their products.

Today some manufacturers will give money back if the software cannot be installed on the computer.

No software manufacturer will accept liability for harm caused to you or your business by errors in software.

Why? Additional precautions needed to make the software work better would

inflate the cost and extend the time needed for development. Only large companies would be able to sustain the pressure of such a

scenario.

Slide 48© 2008 Prentice-Hall, Inc.

Page 49: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

The Future of Programming?

Programming languages will continue to evolve in the direction of natural languages, like English.

The line between programmer and user is likely to grow hazy. Computers will play an ever-increasing role in programming

themselves. Future programming tools will have little in common with

today’s languages.When future computer historians look back, they’ll marvel at how

difficult it was for us to instruct computers to perform even the simplest actions.

Slide 49© 2008 Prentice-Hall, Inc.

Page 50: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

• Computer programming is a specialized form of problem solving that involves developing an algorithm for solving a problem.

• Most programmers use stepwise refinement to repeatedly break a problem into smaller, more easily solvable problems.

• Computer languages have evolved through several generations, with each generation easier to use and more powerful than the one that came before.

• Most modern languages encourage structured programming.

Slide 50© 2008 Prentice-Hall, Inc.

Page 51: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

• Many applications contain built-in macro languages, scripting languages, and query languages that give programming power to users.

• Object-oriented programming (OOP) tools enable programmers to construct programs from objects with properties and provide the ability to send messages back and forth; many believe that OOP represents the future of programming.

• Programs are part of larger information systems.

Slide 51© 2008 Prentice-Hall, Inc.

Page 52: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

• Computer scientists are responsible for the software tools and concepts that make all other software development possible.

• One of the most challenging problems facing computer science is the problem of software reliability.

• As more and more human institutions rely on computer systems, it is becoming increasingly important for computer scientists to find ways to make software that people can trust.

Slide 52© 2008 Prentice-Hall, Inc.

Page 53: Slide 1 © 2008 Prentice-Hall, Inc.. Systems Design and Development Slide 2 © 2008 Prentice-Hall, Inc.

Slide 53


Recommended