![Page 1: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/1.jpg)
Systems Design and Developmen
t
12
![Page 2: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/2.jpg)
2001 Prentice Hall 12.2
Chapter Outline
• How People Make Programs
• Programming Languages and Methodologies
• Programs in Perspective: Systems Analysis and the System Life Cycle
• The Science of Computing
• The State of Software
“If one character, one pause, of the incantation is not strictly in proper form, the magic doesn’t work.”
Frederick Brooks
![Page 3: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/3.jpg)
2001 Prentice Hall 12.3
How People Make Programs
Programming is a specialized form of the age-old process of problem solving
![Page 4: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/4.jpg)
2001 Prentice Hall 12.4
How People Make Programs
– Understanding the problem
– Devising a plan for solving the problem
– Carrying out the plan
– Evaluating the solution
Problem solving involves:
![Page 5: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/5.jpg)
2001 Prentice Hall 12.5
How People Make Programs
– Defining the problem
– Devising, refining and testing the algorithm
– Writing the program
– Testing and debugging the program
Programming involves:
![Page 6: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/6.jpg)
2001 Prentice Hall 12.6
From Idea to Algorithm
Stepwise Refinement: breaking a problem into small sections
Control Structures: controlling the order in which instructions are to be followed
Testing the Algorithm: checking the logic
![Page 7: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/7.jpg)
2001 Prentice Hall 12.7
Stepwise Refinement
A complex problem must be broken into three parts: beginning- middle - end
For example:
• begin the game
• repeat player’s turn until the player guesses right answer or seven turns are completed
• end the game
Further refinement can be added for more detail
![Page 8: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/8.jpg)
2001 Prentice Hall 12.8
Control Structures
Sequence: instructions are followed in the order given
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
Selection: instructions are based on logical decisions
![Page 9: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/9.jpg)
2001 Prentice Hall 12.9
Control Structures
Repetition: instructions are repeated until some condition is satisfied.
repeat turn until number is guessed or counter = 7
input guess from useradd 1 to counterend repeat
![Page 10: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/10.jpg)
2001 Prentice Hall 12.10
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.
![Page 11: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/11.jpg)
2001 Prentice Hall 12.11
From Algorithm to Program
– 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
The program will have three parts:
![Page 12: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/12.jpg)
2001 Prentice Hall 12.12
Into the Computer
• Entering the program into the computer using a text editor
• Saving it to a disk
• It is then translated into machine language by an interpreter or compiler
Next steps include:
![Page 13: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/13.jpg)
2001 Prentice Hall 12.13
Interpreters and Compilers
• Interpreter: each instruction is translated individually
• Compiler: the entire program is translated into machine language.
![Page 14: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/14.jpg)
2001 Prentice Hall 12.14
Programming Languages and Methodologies
• Machine language is binary, thus making it hard to write, read, and debug
• Assembly language uses alphabetic codes and is easier to read, write, and understand
Every computer has a native language - a machine language
![Page 15: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/15.jpg)
2001 Prentice Hall 12.15
The Languages of Computers
– English-like vocabulary
– Allows programmers to think about the overall logic of the program
– Interpreters and compilers translate high-level languages into machine language
High-level Languages:
“Computer programming is an art form, like the creation of poetry or music.”
Donald E. Knuth.
![Page 16: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/16.jpg)
2001 Prentice Hall 12.16
High-Level Languages
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
![Page 17: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/17.jpg)
2001 Prentice Hall 12.17
High Level Languages
– 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 easy-to-learn language for beginners
![Page 18: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/18.jpg)
2001 Prentice Hall 12.18
High-Level Languages
• Pascal: designed to encourage structured programming
• C: developed as a tool for programming operating systems such as UNIX
![Page 19: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/19.jpg)
2001 Prentice Hall 12.19
High-Level Languages
• C++: a variation of C that uses object-oriented programming
• Java: similar to C++ but simpler to learn and use – it excels at producing Web-based applications
![Page 20: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/20.jpg)
2001 Prentice Hall 12.20
High-Level Languages
• Ada: 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.
![Page 21: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/21.jpg)
2001 Prentice Hall 12.21
Structured Programming
makes programming easier and more productive by writing many small programs
Structured Programming
![Page 22: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/22.jpg)
2001 Prentice Hall 12.22
Structured Programming
A program is well structured if it is:
– made up of logically cohesive modules
– arranged in a hierarchy
– straightforward and readable
![Page 23: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/23.jpg)
2001 Prentice Hall 12.23
Object-Oriented Programming
OOP is a collection of interactive objects that contain both data and instructions
![Page 24: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/24.jpg)
2001 Prentice Hall 12.24
Visual Programming
Visual Programming allows programmers to write programs by drawing pictures and pointing to objects on the screen
![Page 25: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/25.jpg)
2001 Prentice Hall 12.25
Languages for Users
• Macro or scripting languages used to automate repetitive tasks
– Some macro languages require you to design each macro as if you were writing a program
– Other macro makers memorize actions and automatically create the macro for you
Languages designed to meet the needs of most computer users include:
![Page 26: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/26.jpg)
2001 Prentice Hall 12.26
Languages for Users
• Fourth-generation languages (4GLs) are easier to use and more like natural language
– They allow users to focus on what needs to be done, not on how to do it (nonprocedural)
– They increase productivity because 4GLs take care of how-to details
– Querying a database with a query language is one type of 4GL
![Page 27: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/27.jpg)
2001 Prentice Hall 12.27
Component Software
Component Software allows users to construct small custom applications from software components
– Plug-ins for Netscape Communicator and Internet Explorer allow you customization options
– They are now made available through the Internet so new features can quickly be added
![Page 28: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/28.jpg)
2001 Prentice Hall 12.28
Programming for the Web
• HTML instructs Web browsers how to arrange text, graphics, and multimedia elements on Web pages
• JavaScript is an interpreted scripting language for enhancing HTML code
• Java is a full-featured object oriented language used to create Web applets
![Page 29: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/29.jpg)
2001 Prentice Hall 12.29
Programming for the Web
• Perl allows you to write scripts to process text such as complex Web forms
• XML is a powerful markup language that overcomes many of the HTML limitations
![Page 30: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/30.jpg)
2001 Prentice Hall 12.30
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
![Page 31: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/31.jpg)
2001 Prentice Hall 12.31
Systems Analysis and the Systems Life Cycle
a collections of people, machines, data, and methods organized to accomplish specific functions and to solve a problem.
machines
methods
people
data
Information Systems
![Page 32: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/32.jpg)
2001 Prentice Hall 12.32
Systems Analysis and the Systems Life Cycle
• System Life Cycle - a sequence of steps or phases the cycle 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
![Page 33: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/33.jpg)
2001 Prentice Hall 12.33
The Systems Development Life Cycle
• 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?”
![Page 34: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/34.jpg)
2001 Prentice Hall 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 system
![Page 35: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/35.jpg)
2001 Prentice Hall 12.35
Investigation
• defines the problem
• identifies the information needs of the organization
• examines the current system, needs of organization,
• studies feasibility of changing systems (this phase produces a feasibility study)
![Page 36: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/36.jpg)
2001 Prentice Hall 12.36
Analysis
• gathers documents
• interviews users
• observes the system in action
• generally gathers and analyzes data to understand current system
![Page 37: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/37.jpg)
2001 Prentice Hall 12.37
Design
• focuses on how system requirements will be met
• a system flowchart is created to show relationships among programs, files, input, and output
![Page 38: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/38.jpg)
2001 Prentice Hall 12.38
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.
![Page 39: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/39.jpg)
2001 Prentice Hall 12.39
Development
Includes a mix of:
– Scheduling
– Hardware
– Software
– Communications
– Purchasing
– documentation and programming
![Page 40: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/40.jpg)
2001 Prentice Hall 12.40
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.
![Page 41: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/41.jpg)
2001 Prentice Hall 12.41
Maintenance
Involves a combination of:
– Monitoring
– Evaluating
– Repairing
– Enhancing the system throughout the life cycle
![Page 42: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/42.jpg)
2001 Prentice Hall 12.42
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.
![Page 43: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/43.jpg)
2001 Prentice Hall 12.43
The Science of Computing
• Computer theory applies concepts of theoretical mathematics to computational problems
• Algorithms are logical underpinnings of computer programs
• Data structures define the logical structure of data
“Telescopes are to astronomy as computers are to computer science.”
Edgar Dykstra
![Page 44: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/44.jpg)
2001 Prentice Hall 12.44
The Science of Computing
• Programming concepts and languages have evolved through generations
• Computer architecture deals with the way hardware and software work together
![Page 45: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/45.jpg)
2001 Prentice Hall 12.45
The Science of Computing
• Management information systems (MIS) is part computer science, part business
– MIS specialists focus on developing systems in timely, reliable, and useful information to managers in business
– MIS applies theoretical concepts of computer science to real-world problems
![Page 46: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/46.jpg)
2001 Prentice Hall 12.46
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-than-concrete world of computer software
![Page 47: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/47.jpg)
2001 Prentice Hall 12.47
The State of Software
• The problems faced by software engineers affect all of us
• Two inherent problems in software development are cost and reliability
![Page 48: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/48.jpg)
2001 Prentice Hall 12.48
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 judgment
![Page 49: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/49.jpg)
2001 Prentice Hall 12.49
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
![Page 50: Systems Design and Development 12. 2001 Prentice Hall12.2 Chapter Outline How People Make Programs Programming Languages and Methodologies Programs](https://reader036.vdocument.in/reader036/viewer/2022062714/56649d395503460f94a13313/html5/thumbnails/50.jpg)