Chapter Twelve. Systems Design and Development

Similar documents
Low-Level Languages. Computer Programs and Programming Languages

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Discovering Computers Chapter 13 Programming Languages and Program Development

Computing and compilers

Copyright 2005 Department of Computer & Information Science

Unit II. (i) Computer Programming Languages

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

Visual Basic Primer A. A. Cousins

Programming Languages and Program Development

Outline. Program development cycle. Algorithms development and representation. Examples.

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

Discovering Computers 2008

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

S/W Programming & Languages

ANZSCO Descriptions The following list contains example descriptions of ICT units and employment duties for each nominated occupation ANZSCO code. And

Higher Software Development - Section 1a

Python - Week 1. Mohammad Shokoohi-Yekta

PROGRAMMING Programming is a creation of a set of commands or instructions which directs a computer in carrying out a task.

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following:

Steps to program development

Algorithms and Programming Languages

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation

Chapter 1. Preliminaries

Simply Java Programming: An Application Driven, Tutorial

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Eleventh Edition. Copyright 2015 Pearson Education, Inc.

Algorithm: 1. Introduction

Principles of Programming Languages. Lecture Outline

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

STRUCTURED SYSTEM ANALYSIS AND DESIGN. System Concept and Environment

Managing Change and Complexity

INTRODUCTION TO ALGORITHMS

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

LESSON 13 OVERVIEW OF PROGRAM DEVELOPMENT PHASES

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Tenth Edition. Copyright 2014 Pearson Education, Inc. Publishing as Prentice Hall

Högnivåspråk och översättning

Part (04) Introduction to Programming

Introduction to Computer Programming Using FORTRAN 77

TASKS IN THE SYSTEMS DEVELOPMENT LIFE CYCLE

Lecture 01 & 02 Computer Programming

Compilers. Prerequisites

State two analytical tools used to understand feasibility of a proposed application. Acceptable answer(s) Guidance Max mks

1. In COMAL language programs, parameters after name of procedure must be put in A. brackets B. back-slash C. insecure data D.

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

Lecture 1: Preliminaries

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key

Specifying and Prototyping

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

1. Fundamental Concepts

CSCE150A. Administrivia. Overview. Hardware. Software. Example. Program. Pseudocode. Flowchart. Control Structures. Hello World Program CSCE150A

Computer Science & Engineering 150A Problem Solving Using Computers

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

Chapter 5: Algorithms

Benefits of Programming Graphically in NI LabVIEW

Chapter 1. Preliminaries

Benefits of Programming Graphically in NI LabVIEW

Programming Languages 2nd edition Tucker and Noonan"

1) Which of the following is an example of a programming language? 1) A) Microsoft Word B) English C) HTML D) Java

Software Development. Integrated Software Environment

7. Mechanical & Electrical calculator:-

Chapter 1: An Overview of Computers and Logic

Unit E Step-by-Step: Programming with Python

Introduction Objectives: 1) differentiate between high-level, low-level, and machine language; 2) explain why it is necessary to translate a program

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Introduction. A. Bellaachia Page: 1

Chapter 8 Algorithms 1

Stating the obvious, people and computers do not speak the same language.

Concepts of Programming Languages

1. Introduction to Programming

CS321 Languages and Compiler Design I. Winter 2012 Lecture 1

Chapter 3: Modules. Starting Out with Programming Logic & Design. Second Edition. by Tony Gaddis

1. Review of program specifications 2. Program design 3. Coding 4. Testing 5. Finalizing documentation

Computer Languages, Algorithms and Program Development. How do computers know what we want them to do?

Course: Programming 101 Introduction to Python. CIP Course Title / Code: Computer Programming / Duration: Part one of a two-semester series

Problem Solving and Program Design - Chapter 1. Cory L. Strope

Recursion. Chapter 7

8 Algorithms 8.1. Foundations of Computer Science Cengage Learning

National 5 Computing Science Software Design & Development

Chapter 1: Why Program? Computers and Programming. Why Program?

Chapter 6: Programming Languages

Chapter 2.6: Testing and running a solution

CTI Short Learning Programme in Internet Development Specialist

Systems Analysis and Design in a Changing World, Fourth Edition

What is a programming language?

The births of the generations are as follow. First generation, 1945 machine language Second generation, mid 1950s assembly language.

Chapter 1 Preliminaries

Using Source Lines of Code As A Size Input For Estimating Software Effort & Schedule

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris.

Concepts in Programming Languages

Computer Principles and Components 1

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

CS2303 C14 Systems Programming Concepts. Bob Kinicki

Software Interface Analysis Tool (SIAT) Architecture Definition Document (NASA Center Initiative)

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

Transcription:

Chapter Twelve Systems Design and Development

After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many different programming languages and give examples of several Explain why computer languages are built into applications, operating systems and utilities 1999 Addison Wesley Longman 12.2

After reading this chapter, you should be able to: Outline the steps in the life cycle of an information system and explain the purpose of program maintenance Explain the relationship between computer programming and computer science Describe the problems faced by software engineers in trying to produce reliable large systems 1999 Addison Wesley Longman 12.3

Chapter Outline How People Make Programs The Languages of Computers Programs in Perspective: Systems Analysis and the System Life Cycle The Science of Computing The State of Software 1999 Addison Wesley Longman 12.4

How People Make Programs Problem solving process involves: Understanding the problem Devising a plan for solving the problem Carry out the plan Evaluating the solution 1999 Addison Wesley Longman 12.5

How People Make Programs Programs are solutions to problems. Programming is a specialized form of problem solving. 1999 Addison Wesley Longman 12.6

Four-Step Process to Programming Define the problem: make sure you know what the problem is. Devise, refine, and test the algorithm: break the problem into smaller, solvable parts (stepwise refinement). 1999 Addison Wesley Longman 12.7

Four-Step Process to Programming Write the program: begin with pseudocode and eventually use a computer language. Test and debug the program: to make sure it solves the initial problem that was defined. 1999 Addison Wesley Longman 12.8

From Idea to Algorithm Stepwise Refinement: complex problems will need to be broken into smaller problems. Control Structures: logical structures that control the order in which the instructions the computer is to follow. Testing the Algorithm: check the logic. 1999 Addison Wesley Longman 12.9

Stepwise Refinement A complex problem like writing a computer game needs to be broken into three parts: a beginning, a middle, and an end. Further refinement adds more detail to each part. For example: begin the game repeat player s turn until the player guesses right answer or seven turns are completed end the game 1999 Addison Wesley Longman 12.10

Control Structures Sequence: instructions are followed in the order given. Selection: instructions are based on logical decisions. Display instructions pick a number between 1 and 100 set counter to 0 if guess < number, then say guess is too small; else say guess is too big 1999 Addison Wesley Longman 12.11

Control Structures Repetition: instructions are repeated until some condition is satisfied. repeat turn until number is guessed or counter = 7 input guess from user add 1 to counter end repeat 1999 Addison Wesley Longman 12.12

From Algorithm to Program If the logic of the algorithm tests accurately, it can then be written into a program. Writing a program is called coding. 1999 Addison Wesley Longman 12.13

From Algorithm to Program The program will have three parts: Program heading contains the name of the program and data files. Declarations and definitions of variables and other programmer-defined items. Body contains the instructions the computer will follow. 1999 Addison Wesley Longman 12.14

Into the Computer Next, the program needs to be entered into the computer using a text editor. Once typed into a text editor, it can be saved to disk. To run or execute the program, it must be translated into machine language by means of an interpreter or compiler. 1999 Addison Wesley Longman 12.15

Interpreters and Compilers Interpreter: each instruction is translated individually Compiler: the entire program is translated into machine language. 1999 Addison Wesley Longman 12.16

The Languages of Computers Every computer has a native language - a machine language. Machine language and Assembly language: Difficult to learn and use. Examples include machine and assembly languages. 1999 Addison Wesley Longman 12.17

The Languages of Computers High-level Languages: English-like vocabulary. Transportable Examples include C++, LOGO, and BASIC. 1999 Addison Wesley Longman 12.18

Multilingual Machines Well known high-level programming languages include: FORTRAN (Formula Translation): the first commercial high-level language. COBOL (Common Business Oriented Language): developed for business data processing problems. 1999 Addison Wesley Longman 12.19

Multilingual Machines Well known high-level programming languages include: LISP (List Processing): developed to process non-numeric data like characters, words, and other symbols. BASIC (Beginners All-purpose Symbolic Instruction Code): developed as an easyto-learn language for beginners. 1999 Addison Wesley Longman 12.20

Multilingual Machines Pascal: designed to encourage structured programming. C: developed as a tool for programming operating systems such as UNIX. 1999 Addison Wesley Longman 12.21

Multilingual Machines Ada: is a massive language developed for the US Government PROLOG: designed for working with logical relationships between facts LOGO: is a dialect of LISP specially designed for children. 1999 Addison Wesley Longman 12.22

Programming Methodologies Structured Programming: a technique to make the programming process easier and more productive by writing many small programs. 1999 Addison Wesley Longman 12.23

Programming Methodologies A program is well structured if it is: made up of logically cohesive modules arranged in a hierarchy straightforward and readable 1999 Addison Wesley Longman 12.24

Programming Methodologies Object-oriented Programming: the program is a collection of interactive objects that contain both data and instructions. 1999 Addison Wesley Longman 12.25

Programming Methodologies Visual Programming: programmers write programs by drawing pictures and pointing to objects on the screen. 1999 Addison Wesley Longman 12.26

Languages for Users Languages designed to meet the needs of most computer users include: Macro or scripting languages: used in automating a repetitive task. 1999 Addison Wesley Longman 12.27

Languages for Users Fourth-generation languages (4GLs): easier to use and more like natural language. Characteristics include: - English-like phrases - Non-procedural - Increases productivity Querying a database with a query language is one example. 1999 Addison Wesley Longman 12.28

Languages for Users Component Software: users construct small custom applications from software components. Plug-ins for Netscape Navigator and Internet Explorer JavaScript 1999 Addison Wesley Longman 12.29

The Future of Programming Trends: Natural languages and artificial intelligence will provide users with programming tools that will understand the language of the user. The distinction between user and programmer will begin to fade. Users won t need to master complicated programming languages to construct applications. 1999 Addison Wesley Longman 12.30

The Future of Programming Programs will program themselves based on simple descriptions provided by the user. 1999 Addison Wesley Longman 12.31

Systems Analysis and the Systems Life Cycle Programs are only part of larger information systems - collections of people, machines, data, and methods organized to accomplish specific functions and to solve a problem. 1999 Addison Wesley Longman 12.32

Systems Analysis and the Systems Life Cycle System Life Cycle - a sequence of steps or phases it passes through between the time the system is conceived and the time it is phased out. Systems analyst - a computer professional primarily responsible for developing and managing a system as it progresses through these phases. 1999 Addison Wesley Longman 12.33

The Systems Development The systems development life cycle is a sequence of steps followed by a project team. Investigation: Why is there a problem? Analysis: What is the problem? Design: How can the problem be solved? Life Cycle 1999 Addison Wesley Longman 12.34

The Systems Development Life Cycle Development: teams of programmers and others begin developing the various parts of the system. Implementation: the system is put to work. Maintenance: ongoing upgrades. Retirement: phasing out the current system. 1999 Addison Wesley Longman 12.35

Investigation Systems investigation involves defining the problem - identifying the information needs of the organization, examining the current system, needs of organization, and studying feasibility of changing systems. This phase produces a feasibility study. 1999 Addison Wesley Longman 12.36

Analysis The systems analyst gathers documents, interviews users, observes the system in action, and generally gathers and analyses data to understand the current system. 1999 Addison Wesley Longman 12.37

Design In the design phase, the systems analyst develops the system specifications that describe how exactly the system requirements will be met. 1999 Addison Wesley Longman 12.38

Design The systems analyst considers: user interface design. database design. process design. 1999 Addison Wesley Longman 12.39

Development The development phase is a process of turning the design specifications into a real working system. The initial testing of the system is known as alpha testing and potential users do beta testing after the bugs are worked out. 1999 Addison Wesley Longman 12.40

Development Development includes a complex mix of scheduling; hardware, software, and communications purchasing; documentation; and programming. 1999 Addison Wesley Longman 12.41

Implementation This phase may involve extensive training and technical user support. Implementation includes user education and training, equipment replacement, file conversion, and careful monitoring of the new system for problems. 1999 Addison Wesley Longman 12.42

Maintenance The maintenance phase involves monitoring, evaluating, repairing, and enhancing the system throughout the life cycle. 1999 Addison Wesley Longman 12.43

Retirement At some point in the life of a system, on-going maintenance is not enough. The needs of an organization change, users expectations change, and there is always new technology available. 1999 Addison Wesley Longman 12.44

The Science of Computing Computer theory - applies concepts of theoretical mathematics to computational problems. Algorithms - logical underpinnings of computer programs. Data structures - define the logical structure of data 1999 Addison Wesley Longman 12.45

The Science of Computing Programming concepts and languages - have evolved through generations. Computer architecture - deals with the way hardware and software work together. 1999 Addison Wesley Longman 12.46

The Science of Computing Management information systems (MIS) - is part computer science, part business. MIS specialist focus on developing systems in timely, reliable and useful information to manager in business. MIS applies theoretical concepts of computer science to real-world problems. 1999 Addison Wesley Longman 12.47

The Science of Computing Software engineering - is a relatively new branch of computer science that attempts to apply engineering principles and techniques to the less-thanconcrete world of computer software. 1999 Addison Wesley Longman 12.48

The State of Software The problems faced by software engineers affect all of us. Two inherent problems in software development are cost and reliability. 1999 Addison Wesley Longman 12.49

Software Problems Cost: The cost of hardware has dropped but the cost of developing software has continued to rise. Reliability: Software errors include errors of omission, syntax, logic, clerical, capacity, and judgement. 1999 Addison Wesley Longman 12.50

Software Solutions Responding to the cost and reliability issues, computer scientists are working to improve: Programming Techniques Programming Environments Program Verification Clean Room Programming Human Management 1999 Addison Wesley Longman 12.51