Notes
Slide Show
Outline
1
Chapter 16
2
Topics
  • Planning for Information Technologies


  • How People Make Systems


  • How People Make Programs


  • The System Development Life Cycle


  • From Idea to Algorithm


  • From Algorithm to Program


  • Programming Languages and Methodologies



  • The State of Software


3
Planning for Information Technologies
  •   Planning is a process of identifying a desired goal 
      or objective and then deciding what will be done 
      to achieve the objective, when it will be done, 
      who will do it, and how it will be done.



4
Planning for Information Technologies
  • Information technology planning involves four phases:


5
Planning for Information Technologies
  • Strategic Planning


    • This first phase of IT planning is referred to as strategic planning which involves aligning the Information Technology Plan with the Overall Business Plan.

    • A framework used by organizations to make sure IT plans truly reflect business needs is known as the critical success factors (CSF) approach.
6
Planning for Information Technologies
  • Information technology Infrastructure analysis


    • The second phase in IT planning is to describe the desirable features for the organization’s IT infrastructure.


    • The IT infrastructure comprises all the organization’s information systems hardware, software, and telecommunications equipment, the information system department’s staff and other personnel, and the organizational structure and procedures that affect accessing, processing, and using information in the company.
7
Planning for Information Technologies
  • Allocating Resources


    • The third phase of information technology planning is resource allocation, a process of selecting the information system projects to invest in.
    • Cost-benefit analysis is an approach many businesses use to decide whether an information system project is worthwhile on its own merits and also in comparison with other proposed information system projects.
8
Planning for Information Technologies
  • Project Planning


    • The fourth phase of IT planning is project planning. The purpose of project planning is to organize a sequence of steps to accomplish a particular project’s goals and to keep the project on schedule and within budget.
    • A project plan includes a description of the measurable project goals that are used to evaluate the success of the project. A project goal can relate to the process of building the information system—completing the project by a certain date, for example.
9
Planning for Information Technologies
  • Project Planning


    • Project management software such as Gantt charts help coordinate, schedule, and track complex projects. A Gantt chart shows each step or category of steps in a plan, along with their planned and actual start and completion times.
10
Planning for Information Technologies
  • Project Planning


    • Project managers use the critical path method (CPM) to keep track of a project’s schedule. CPM is a mathematical model of a project’s schedule used to calculate when particular activities will be completed.
11
Planning for Information Technologies
  • Project Planning


    • Project managers sometimes use a variation of CPM called the program evaluation and review technique (PERT). With PERT, a manager uses three time estimates — an optimistic, a pessimistic, and a most likely time to complete each activity.
12
How People Make Systems
  • The process of systems development is important for any organization and requires not only technical skills but also creativity.


13
The Systems Development Life Cycle
14
The Systems Development Life Cycle
15
The Systems Development Life Cycle
16
The Systems Development Life Cycle
17
The Systems Development Life Cycle
18
The Systems Development Life Cycle
19
The Systems Development Life Cycle
20
The Systems Development Life Cycle
21
How People Make Programs
  • Programming is a specialized form of problem solving and involves:


    • Defining the problem
    • Devising, refining, and testing the algorithm
    • Writing the program
    • Testing and debugging the program
22
From Idea to Algorithm
  • Start with a statement of the problem:
23
From Idea to Algorithm: Stepwise Refinement
  • The first cut at the problem breaks it into three parts: a beginning, a middle, and an end.  Each of these parts represents a smaller programming problem to solve.
24
From Idea to Algorithm: Step Refinement
  • The next refinement fills in a few details for each part.
25
From Idea to Algorithm: Stepwise Refinement
  •  Fill in the crucial details.


26
From Idea to Algorithm: Step Refinement
  •   Give the computer a way of knowing when seven
         turns have passed.


27
From Idea to Algorithm:
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--to choose between alternative courses of action depending on certain conditions.
    • Repetition--allows a group of steps to be repeated several times, usually until some condition is satisfied
28
From Idea to Algorithm: Testing
  • 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.
29
From Algorithm to Program
  • A simple program contains:


    • The program heading
    • The declarations and definition
    • The body
30
Into the Computer
  • A text editor is used to enter and save the program.


  • Use either a translator or compiler to translate the program into machine language.
31
Translation Software
32
Compiler
33
Programming Languages & Methodologies
34
Programming Languages & Methodologies
35
High Level Languages
  • High level languages fall somewhere between natural human languages and precise machine languages


  • Examples:  C++, Java, Basic, FORTRAN, COBOL


  • They are easier to write, debug and are transportable between machines.


36
Structured Programming
37
Unstructured Programming
  • An unstructured program is like a huge, complicated machine that can’t be easily broken down into sections.


  • Any modification would require the entire machine to be disassembled.
38
Structured Programming
    • problems can be isolated to individual modules

    • the input and output of each module in the assembly line are easier to understand
39
Object-Oriented Programming
  • In object-oriented programming a program is not just a collection of step-by-step instructions or procedures; it’s a collection of objects.


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


40
The Three Faces of Basic
  • Early BASIC - The program with numbered lines. Statements are executed in numerical order unless control is transferred to another statement with a GoTo statement.


  • 2. Structured BASIC - The modular program with many structured programming features.  The main program has been reduced to a handful of statements at the top of the listing.  These statements display the overall logic of the program.  As it is running, the main program uses Call statements to transfer control to each subprogram.



  • 3. Visual BASIC- A modern programming environment that includes many of the ideas and tools of object-oriented programming.
41
Object Oriented Programming
  • With OOP technology, programmers can build programs from prefabricated objects in the same way builders construct houses from prefabricated walls.


  • For 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.
42
Visual Programming
  • Visual programming tools allow programmers to create large portions of their programs by drawing pictures and pointing to on-screen objects, eliminating much of the tedious coding of traditional programming.


  • Apple’s HyperCard was probably the first popular example of a visual programming environment.


  • Today Microsoft’s Visual Basic is widely used by professionals and hobbyists alike because of its visual approach to programming.
43
Languages for Users
44
Component Software
  • Construct small custom applications from software components


  • Customizability is possible only if applications are programmed to allow it. More and more software programs, including operating systems, are designed with extensibility in mind.
45
Programming for the Web

    • HTML
    • JavaScript
    • Java
    • Perl
    • XML
46
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
47
The Science of Computing
  • Many computer scientists prefer to call the 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
48
The State of Systems Development: 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



49
The State of Systems Development: Software Solutions
  • Programming techniques


  • Programming environments


  • Program verification


  • Clean-room programming


  • Human management
50