tia12e_ch10 copy.pptx
Document Details
Uploaded by IndebtedOwl
Full Transcript
Technology in Action Alan Evans • Kendall Martin Mary Anne Poatsy Twelfth Edition Global Edition Technology in Action Chapter 10 Behind the Scenes: Software Programming Understanding Software Programming The Importance of Programming The Life Cycle of an Information System The Life Cycle of a Pr...
Technology in Action Alan Evans • Kendall Martin Mary Anne Poatsy Twelfth Edition Global Edition Technology in Action Chapter 10 Behind the Scenes: Software Programming Understanding Software Programming The Importance of Programming The Life Cycle of an Information System The Life Cycle of a Program Copyright © 2016 Pearson Education, Ltd. 10-3 The Importance of Programming Objective 1. Why do I need to understand how to create software? Copyright © 2016 Pearson Education, Ltd. 10-4 The Life Cycle of an Information System Objective 2. What is a system development life cycle, and what are the phases in the cycle? Copyright © 2016 Pearson Education, Ltd. 10-5 The Life Cycle of a Program Objectives 3. What is the life cycle of a program? 4. What role does a problem statement play in programming? 5. How do programmers create algorithms and move from algorithm to code? 6. What steps are involved in completing the program? Copyright © 2016 Pearson Education, Ltd. 10-6 Understanding Software Programming • Some tasks are candidates for automation Repetitive Work with electronic information Follow a series of clear steps • Some tasks are complex Require creative thought Require human touch Require intuitive thinking Copyright © 2016 Pearson Education, Ltd. 10-7 The Importance of Programming • A career in programming offers: Plentiful jobs Strong salaries Telecommuting is often easy to arrange • Computer programs exist for many tasks • Programming necessary when no existing software for task • Basic knowledge of programming in key Copyright © 2016 Pearson Education, Ltd. 10-8 The Life Cycle of an Information System • System Collection of things to achieve common goal • An information system includes: Data People Procedures Hardware Software Copyright © 2016 Pearson Education, Ltd. 10-9 The System Development Life Cycle (SDLC) • SDLC A process used to develop information systems. Can be lengthy JAD is an alternative method (see page 440) Copyright © 2016 Pearson Education, Ltd. 10-10 The System Development Life Cycle (SDLC) • Step 1: Problem / Opportunity Identification Evaluate proposals Decide what projects to take • Step 2: Analysis Explore the problem / opportunity in more depth Define user requirements Recommend a plan of action Copyright © 2016 Pearson Education, Ltd. 10-11 The System Development Life Cycle (SDLC) • Step 3: Design Detailed plan Uses flowcharts & data-flow diagrams Details inputs/outputs & processing requirement Decides if use a new software or existing • Step 4: Development First step in PDLC Actual programing begins Includes technical documentation Copyright © 2016 Pearson Education, Ltd. 10-12 The System Development Life Cycle (SDLC) • Step 5: Testing & Installation Ensures system works properly System installed for official use • Step 6: Maintenance & Evaluation System performance is monitored Determine whether the program is meeting the needs of end users Identify additional enhancements May loop back to step 1 Copyright © 2016 Pearson Education, Ltd. 10-13 The Life Cycle of a Program Copyright © 2016 Pearson Education, Ltd. 10-14 The Life Cycle of a Program Describing the Problem: The Problem Statement • Necessary to solve problems • Interact with users • Programmers handle bad inputs through error handling • Problem statement includes testing plan Does not cover every possible input but patterns of inputs See figure. 10.5 page 442 Copyright © 2016 Pearson Education, Ltd. 10-15 The Life Cycle of a Program Making a Plan: Algorithm Development • Specific sequential steps that tells the computer (in human language) what to do to complete the task • Algorithms are limited (unpredictable events) • Algorithms represented through flowcharts or Pseudocode (text-based) Copyright © 2016 Pearson Education, Ltd. 10-16 The Life Cycle of a Program Developing the Algorithm: Decision Making and Design • Programmers handle complex algorithms List of choices Decision points • Binary decisions • Loops • Programmers create algorithms using: Top-down design Object-oriented analysis Copyright © 2016 Pearson Education, Ltd. 10-17 Developing the Algorithm Developing the Algorithm: Decision Making and Design Flowchart Symbols Copyright © 2016 Pearson Education, Ltd. Decision Points 10-18 The Life Cycle of a Program Top-Down Design • Problem is broken into series of highlevel tasks • Detailed subtasks created from high-level tasks • Continue until steps are close to programming language commands Copyright © 2016 Pearson Education, Ltd. 10-19 The Life Cycle of a Program Top-Down Design • How top-down design is used in programming Copyright © 2016 Pearson Education, Ltd. 10-20 The Life Cycle of a Program Object-Oriented Analysis • Uses classes (categories) that are defined by: information (data) Method (action) • An object is an example of a class • Object-oriented approach allows reusability of classes making new code quickly via Inheritance (see figure 10.12 page 447) Copyright © 2016 Pearson Education, Ltd. 10-21 The Life Cycle of a Program Coding: Speaking the Language of the Computer • Coding: translating an algorithm into CPU instructions • Programmers move from algorithm to code by: Identifying key pieces of information Identifying flow of each step Converting algorithm into specific programming language Copyright © 2016 Pearson Education, Ltd. 10-22 The Life Cycle of a Program Coding: Speaking the Language of the Computer • Programming language A “code” for instructions CPU can perform Languages use special words and strict rules Allows control of CPU without knowing hardware details Copyright © 2016 Pearson Education, Ltd. 10-23 The Life Cycle of a Program Compilation • Compilation is a process of converting code to machine language (1s and 0s) • Compiler understands the syntax of the programming language and exact structure of the CPU (each language has its compiler) • Compiler helps fixes syntax NOT logical errors • Compiler creates an executable program (the binary sequence of CPU instructions) • Some languages use an interpreter Copyright © 2016 Pearson Education, Ltd. 10-24 The Life Cycle of a Program Debugging: Getting Rid of Errors • Debugging is done after compilation • Debugging find and correct logical errors • Testing plan helps programmers know program has solved the problem • Logical errors Program runs but executes incorrectly if (hoursworked > 88), instead of if (hoursworked > 8) Copyright © 2016 Pearson Education, Ltd. 10-25 The Life Cycle of a Program Testing and Documentation: Finishing the Project • Internal testing (within software company) • External testing (people who will use it) • Solving problems after beta testing • Release cycle: Release To Manufacturers - RTM General Availability – GA (to public) • Documentation Technical writers (technical detail of poram) User documents for end users Copyright © 2016 Pearson Education, Ltd. 10-26 Programming Languages • Many Languages for Many Projects • Exploring Programming Languages Copyright © 2016 Pearson Education, Ltd. 10-27 Many Languages for Many Projects Objective 7. How do programmers select the right programming language for a specific task? Copyright © 2016 Pearson Education, Ltd. 10-28 Exploring Programming Languages Objective 8. What are the most popular programming languages for different types of application development? Copyright © 2016 Pearson Education, Ltd. 10-29 Many Languages for Many Projects • Programming languages have been developed to balance conflicting goals Copyright © 2016 Pearson Education, Ltd. 10-30 Exploring Programming Languages Copyright © 2016 Pearson Education, Ltd. 10-31 Exploring Programming Languages Mobile Applications • Tools for building apps for Android devices Android software development kit (SDK) is required Uses well-known IDEs with special plug-ins Copyright © 2016 Pearson Education, Ltd. 10-32 Check Your Understanding 1. Why do I need to understand how to create software? 2. What is a system development life cycle, and what are the phases in the cycle? 3. What is the life cycle of a program? 4. What role does a problem statement play in programming? Copyright © 2016 Pearson Education, Ltd. 10-33 Check Your Understanding 5. How do programmers create algorithms and move from algorithm to code? 6. What steps are involved in completing the program? 7. How do programmers select the right programming language for a specific task? 8. What are the most popular programming languages for different types of application development? Copyright © 2016 Pearson Education, Ltd. 10-34 All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Copyright © 2016 Pearson Education, Ltd.