Computer Confluence 7/e Chapter 14 Systems Design and Development
Yüklə
3,86 Mb.
tarix
08.08.2018
ölçüsü
3,86 Mb.
#61717
Computer Confluence 7/e
Computer Confluence 7/e
Chapter 14
Systems
Design and Development
Computer Confluence 7/e Chapter 14 Objectives
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
Computer Confluence 7/e Chapter 14 Objectives (continued)
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
Computer Confluence 7/e Chapter 14 Grace Murray Hopper Sails on Software
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 ten 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
Computer Confluence 7/e Chapter 14 Grace Murray Hopper Sails on Software
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
Computer Confluence 7/e Chapter 14
How People Make Programs
Programming
is a specialized form of problem solving
Typically involves four steps:
Understand the problem.
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.
Often overlaps the previous step
Evaluate the solution.
Is the problem solved correctly?
Is this solution applicable to other problems?
Computer Confluence 7/e Chapter 14 How People Make Programs
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
Computer Confluence 7/e Chapter 14 How People Make Programs
From Idea to Algorithm
Start with a statement of the problem:
Computer Confluence 7/e Chapter 14 How People Make Programs
Stepwise refinement
Initially, 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
Computer Confluence 7/e Chapter 14 How People Make Programs
The next refinement fills in a few details for each part:
Computer Confluence 7/e Chapter 14 How People Make Programs
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 last
Selection:
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
Computer Confluence 7/e Chapter 14 How People Make Programs
Computer Confluence 7/e Chapter 14 How People Make Programs
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
Computer Confluence 7/e Chapter 14 How People Make Programs
From 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 computer’s memory
Variables become part of the program’s vocabulary
Program can examine and change variables
Computer Confluence 7/e Chapter 14 How People Make Programs
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
Computer Confluence 7/e Chapter 14 How People Make Programs
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
Computer Confluence 7/e Chapter 14 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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
Machine 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
Assembly language:
functionally equivalent to machine language but easier for people to read, write, and understand
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
An
assembler
translates each statement of assembly language into a corresponding machine language statement
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
Visual Programming
Visual programming
tools enable programmers to create large portions of their programs by drawing pictures and pointing to on-screen objects
Eliminates much of the tedious coding of traditional programming
Apple’s HyperCard
was probably the first popular example of a visual programming environment
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
One type of 4GL is the query language that enables a user to request information from a database
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
Component Software
Component software
makes it possible to construct small custom applications from software components
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
May soon reach a level where users and managers can build their own applications
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
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
Computer Confluence 7/e Chapter 14 Programming Languages and Methodologies
Many experts see a future in which PC applications will take a backseat 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
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis
and the Systems Life Cycle
Systems 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 projects should be considered first
Made up of people from each functional area in the organization
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
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
Avoids the need for permanent in-house staff
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
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Systems Development Tools and Techniques
Data collection techniques include:
Review
Interviews
Questionnaires
Observation
Sampling
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
Modeling tools
Modeling tools
are graphic representations of systems
System flowcharts, data flow diagrams, data dictionaries, and decision tables are most widely-used
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life 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
Computer Confluence 7/e Chapter 14 Programs in Perspective: Systems Analysis and the Systems Life Cycle
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
Computer Confluence 7/e Chapter 14 Rules of Thumb
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
Computer Confluence 7/e Chapter 14 The Science of Computing
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
Computer Confluence 7/e Chapter 14
The State of Software
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
Computer Confluence 7/e Chapter 14 The State of Software
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
Computer Confluence 7/e Chapter 14 The State of Software
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 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
Computer Confluence 7/e Chapter 14 The State of Software
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
Computer Confluence 7/e Chapter 14 Lesson Summary
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
Computer Confluence 7/e Chapter 14 Lesson Summary (continued)
Many applications contain built-in macro languages, scripting languages, and query languages that put programming power in the 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
Computer Confluence 7/e Chapter 14 Lesson Summary (continued)
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
Yüklə
3,86 Mb.
Dostları ilə paylaş:
Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət
Ana səhifə
Psixologiya