SlideShare a Scribd company logo
Chapter 13 Systems Design & Development
Topics How People Make Programs From Idea to Algorithm From Algorithm to Program Programming Languages and Methodologies System Analysis and the System Life Cycle The State of Software
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
From Idea to Algorithm Start with a statement of the problem: A school teacher needs a program to play a number-guessing  game so students can learn to develop logical strategies and  practice their arithmetic. In this game the computer picks a  number between 1 and 100 and gives the player seven turns  to guess the number. After each incorrect try the computer  tells the player whether the guess is too high or too low.
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. Begin Game Repeat Return until Number is Guessed End Game
From Idea to Algorithm: Step Refinement The next refinement fills in a few details for each part. Begin Game Display instructions Pick a number between 1 and 100 2. Repeat Turn Until Number is Guessed Input guess from user   Respond to guess   End Repeat End Game Display end message
From Idea to Algorithm: Stepwise Refinement Fill in the crucial details. If guess = number, then say so and quit; if guess < number, then say guess is too small; if guess> number, then say guess is too high.
From Idea to Algorithm: Step Refinement Give the computer a way of knowing when seven   turns have passed.  begin game display instructions pick a number between  1 and 100 set counter to 0 repeat turn until number is guessed or counter = 7 input guess from user if guess = number, then say so and quit; else if guess < number, then say guess is too small; else say guess is too big add 1 to counter   end repeat end game display end message
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
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.
From Algorithm to Program A simple program contains: The program heading The declarations and definition The body
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.
Translation Software Translation software, called an  interpreter , translates a high-level program to a machine language one statement at a time during execution.
Compiler A  compiler  translates an entire high-level program to machine language before executing the program.
Programming Languages & Methodologies Machine language  is the native language of a computer. Instructions for the four basic arithmetic operations,    for comparing pairs of numbers, for repeating    instructions, and so on  all binary Instructions, memory locations, numbers, and    characters are all represented by strings of zeros and ones
Programming Languages & Methodologies An  assembler  translates each statement of assembly language into the corresponding machine-language statement.
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.
Structured Programming Structured programming is a technique to make 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.
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.
Structured Programming problems can be isolated to individual modules  the input and output of each module in the assembly line are easier to understand Structured programs are easier to understand and   modify because:
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.
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.
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.
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.
Languages for Users User-oriented macro languages  or scripting   languages that allow users to create programs,    called macros, that automate repetitive tasks Fourth-generation languages   (4GL)  -  English-like    phrases and sentences to issue instructions Nonprocedural;    focus on what needs to be done, not on how to do it
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.
Programming for the Web HTML JavaScript Java Perl XML Programmers can, and do, use a variety of languages,  including C and C++, to write Web applications.  But some programming tools are particularly useful for developing Web applications:
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
 
The Systems Development Life Cycle The graphical “waterfall” model of the SDLC shows a basic sequential flow from identifying the “right things  to do” to making sure that “things are done right.” Investigation Analysis Design Development Implementation Maintenance Retirement
The Systems Development Life Cycle Investigation Define the problem:  identify the information needs of the organization  examine the current system determine how well it meets the needs of the organization   study the feasibility of changing or replacing the current  system
The Systems Development Life Cycle Analysis During the analysis phase the systems analyst : gathers documents interviews users of the current system observes the system in action  generally gathers and analyzes data to understand  the current system and identify new requirements
The Systems Development Life Cycle Prototyping is an interactive methodology in which the prototype is continually  modified and improved until it meets  the needs of the end-user. Design Identify requirements Develop working model of system Use Prototype Evaluate features of prototype Develop application,  install prototype for evaluation by end users, begin new prototype, or abandon application. Additional changes to prototype needed.
The Systems Development Life Cycle The systems analyst must plan  and schedule carefully activities  in the development phase of the  SDLC because they can overlap  and occur simultaneously. Development Testing Documenting Scheduling Programming Purchasing
The Systems Development Life Cycle Implementation Direct cutover approach Parallel systems approach Phase-in approach Pilot approach
The Systems Development Life Cycle Maintenance The maintenance phase involves monitoring,  evaluating, repairing, and enhancing the system  throughout the lifetime of the system.
The Systems Development Life Cycle Retirement Systems are often used for many years,  but at some point in the life of a system,  ongoing maintenance is not enough. .
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
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
The State of Software: Software Solutions Programming techniques Programming environments Program verification Clean-room programming Human management
 

More Related Content

DOC
Stnotes doc 5
Alok Jain
 
PDF
The Programming Process
Casey Robertson
 
DOCX
PROBLEM SOLVING
shahzadebaujiti
 
PPTX
Computer programming
Vincent Valenzuela
 
PPT
Fundamental Programming Lect 1
Namrah Erum
 
PPT
Software development slides
iarthur
 
PPT
Software development slides
iarthur
 
PDF
Coding principles
DevAdnani
 
Stnotes doc 5
Alok Jain
 
The Programming Process
Casey Robertson
 
PROBLEM SOLVING
shahzadebaujiti
 
Computer programming
Vincent Valenzuela
 
Fundamental Programming Lect 1
Namrah Erum
 
Software development slides
iarthur
 
Software development slides
iarthur
 
Coding principles
DevAdnani
 

What's hot (20)

PPTX
Principles of programming
Rob Paok
 
PDF
Problem Solving Techniques and Introduction to C
Prabu U
 
PPTX
Programming Fundamentals and Programming Languages Concepts
imtiazalijoono
 
PPT
Program design and problem solving techniques
Dokka Srinivasu
 
PDF
Introduction to Computer Programming
Prof. Erwin Globio
 
PPTX
What is algorithm
mshoaib15
 
PPTX
Computer
Newreborn Incarnation
 
PPTX
Planning to computer program(southeast university)
Arup deb nath
 
PDF
notes on Programming fundamentals
ArghodeepPaul
 
PPTX
Cmp2412 programming principles
NIKANOR THOMAS
 
PDF
La5 programming
smkengkilili2011
 
PPT
Introduction to programming principles languages
Frankie Jones
 
PPT
Lec 1 intro
lankasenanayake
 
PPT
The Programmer Life Cycle
Russell Ovans
 
PPTX
Programming Fundamentals
Trivuz ত্রিভুজ
 
DOC
Program concep sequential statements
ankurkhanna
 
PPTX
Translators(Compiler, Assembler) and interpreter
baabtra.com - No. 1 supplier of quality freshers
 
PPTX
Software programming and development
Ali Raza
 
PDF
Programming and problem solving with c++, 3rd edition
Indian Maritime University, Visakhapatnam
 
PDF
La5 ict-topic-5-programming
Kak Yong
 
Principles of programming
Rob Paok
 
Problem Solving Techniques and Introduction to C
Prabu U
 
Programming Fundamentals and Programming Languages Concepts
imtiazalijoono
 
Program design and problem solving techniques
Dokka Srinivasu
 
Introduction to Computer Programming
Prof. Erwin Globio
 
What is algorithm
mshoaib15
 
Planning to computer program(southeast university)
Arup deb nath
 
notes on Programming fundamentals
ArghodeepPaul
 
Cmp2412 programming principles
NIKANOR THOMAS
 
La5 programming
smkengkilili2011
 
Introduction to programming principles languages
Frankie Jones
 
Lec 1 intro
lankasenanayake
 
The Programmer Life Cycle
Russell Ovans
 
Programming Fundamentals
Trivuz ত্রিভুজ
 
Program concep sequential statements
ankurkhanna
 
Translators(Compiler, Assembler) and interpreter
baabtra.com - No. 1 supplier of quality freshers
 
Software programming and development
Ali Raza
 
Programming and problem solving with c++, 3rd edition
Indian Maritime University, Visakhapatnam
 
La5 ict-topic-5-programming
Kak Yong
 
Ad

Viewers also liked (20)

KEY
The Net Generation
Andrew Kohl
 
PPT
六合彩-香港六合彩
wlgadsk
 
PPT
Gagliardi
maxrobespierre
 
PDF
VietRees_Newsletter_47_Week1_Month09_Year08
internationalvr
 
PDF
VietRees_Newsletter_52_Tuan2_Thang10
internationalvr
 
PDF
Benchmark
Bloom
 
PDF
Digital Museum Development
Rachabodin Suwannakanthi
 
PDF
A dinâmica discursiva no contexto do ensino da evolução bilógica
sergio_chumbinho
 
PPT
flashcards A1
Noemi Cipollone
 
PPT
eCMO 2010 The e behind branding
HKAIM
 
PPT
eCMO 2010 Unleash the power of mobile advertising
HKAIM
 
KEY
MyOpenArchive
Keita Bando
 
PPTX
Kayla ppt whatmakes psych a science psych 1
Steve Kashdan
 
PPT
eXtension: Managing Online Content Providers
greenehorse
 
PDF
Tmi (recuperado)
mariogomezprieto
 
PPTX
Tle I Developing A Sound Outlook In Life
Department of Education - Philippines
 
PDF
Vietnam Real Estate Newsletter - No. 67, Week 4 Jan, 2009
internationalvr
 
PDF
Accelerated Grid Theming
Nathan Smith
 
The Net Generation
Andrew Kohl
 
六合彩-香港六合彩
wlgadsk
 
Gagliardi
maxrobespierre
 
VietRees_Newsletter_47_Week1_Month09_Year08
internationalvr
 
VietRees_Newsletter_52_Tuan2_Thang10
internationalvr
 
Benchmark
Bloom
 
Digital Museum Development
Rachabodin Suwannakanthi
 
A dinâmica discursiva no contexto do ensino da evolução bilógica
sergio_chumbinho
 
flashcards A1
Noemi Cipollone
 
eCMO 2010 The e behind branding
HKAIM
 
eCMO 2010 Unleash the power of mobile advertising
HKAIM
 
MyOpenArchive
Keita Bando
 
Kayla ppt whatmakes psych a science psych 1
Steve Kashdan
 
eXtension: Managing Online Content Providers
greenehorse
 
Tmi (recuperado)
mariogomezprieto
 
Tle I Developing A Sound Outlook In Life
Department of Education - Philippines
 
Vietnam Real Estate Newsletter - No. 67, Week 4 Jan, 2009
internationalvr
 
Accelerated Grid Theming
Nathan Smith
 
Ad

Similar to Beekman5 std ppt_13 (20)

PPTX
Programming C ppt for learning foundations
ssuser65733f
 
PPT
Software development slides
iarthur
 
PPTX
Programming str_Language of Logic/c.pptx
MsKGowriDhilipkumar
 
PPTX
Programming _Language of Logic_ PPT.pptx
MsKGowriDhilipkumar
 
PPTX
UNIT 2 ECSE-2.pptx
AdharshKokkula
 
PPT
Problem Solving Techniques
Ashesh R
 
PPT
Program logic and design
Chaffey College
 
PPTX
Lesson 1 - Introduction to Computer Programming.pptx
Neil Mutia
 
PPT
software development and programming languages
PraShant Kumar
 
DOCX
Introduction to Programming.docx
JohnBrianCatedrilla1
 
PPTX
Introduction.pptx
ssusera8c91a
 
PPTX
Lecture 1 uml with java implementation
the_wumberlog
 
PPT
MPP-UPNVJ
M. Misdianto, MSc.
 
PPT
Chapter 1- C++ programming languages +.ppt
anawaarabdujabbaar
 
PPT
introduction to computer programming CPPL1.ppt
biniyamtiktok
 
PPTX
PCCF UNIT 1.pptx
DivyaKS12
 
PDF
4 coding from algorithms
hccit
 
PDF
L1. Basic Programming Concepts.pdf
MMRF2
 
Programming C ppt for learning foundations
ssuser65733f
 
Software development slides
iarthur
 
Programming str_Language of Logic/c.pptx
MsKGowriDhilipkumar
 
Programming _Language of Logic_ PPT.pptx
MsKGowriDhilipkumar
 
UNIT 2 ECSE-2.pptx
AdharshKokkula
 
Problem Solving Techniques
Ashesh R
 
Program logic and design
Chaffey College
 
Lesson 1 - Introduction to Computer Programming.pptx
Neil Mutia
 
software development and programming languages
PraShant Kumar
 
Introduction to Programming.docx
JohnBrianCatedrilla1
 
Introduction.pptx
ssusera8c91a
 
Lecture 1 uml with java implementation
the_wumberlog
 
Chapter 1- C++ programming languages +.ppt
anawaarabdujabbaar
 
introduction to computer programming CPPL1.ppt
biniyamtiktok
 
PCCF UNIT 1.pptx
DivyaKS12
 
4 coding from algorithms
hccit
 
L1. Basic Programming Concepts.pdf
MMRF2
 

More from Department of Education - Philippines (20)

PPTX
WEEK 1 TLE GRADE 7 TECHNOLO FASDFASFHAsgdfabsgbkjhajfgjah.pptx
Department of Education - Philippines
 
XLSX
Dep ed form-18e-giv-gvi-by-jonathanparanada
Department of Education - Philippines
 
XLSX
Dep ed form-18e-gi-giii-by-jonathanparanada
Department of Education - Philippines
 
XLS
Dep ed form-18a-secondary-by-jonathanparanada
Department of Education - Philippines
 
WEEK 1 TLE GRADE 7 TECHNOLO FASDFASFHAsgdfabsgbkjhajfgjah.pptx
Department of Education - Philippines
 
Dep ed form-18e-giv-gvi-by-jonathanparanada
Department of Education - Philippines
 
Dep ed form-18e-gi-giii-by-jonathanparanada
Department of Education - Philippines
 
Dep ed form-18a-secondary-by-jonathanparanada
Department of Education - Philippines
 

Recently uploaded (20)

PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
The Future of Artificial Intelligence (AI)
Mukul
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 

Beekman5 std ppt_13

  • 1. Chapter 13 Systems Design & Development
  • 2. Topics How People Make Programs From Idea to Algorithm From Algorithm to Program Programming Languages and Methodologies System Analysis and the System Life Cycle The State of Software
  • 3. 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
  • 4. From Idea to Algorithm Start with a statement of the problem: A school teacher needs a program to play a number-guessing game so students can learn to develop logical strategies and practice their arithmetic. In this game the computer picks a number between 1 and 100 and gives the player seven turns to guess the number. After each incorrect try the computer tells the player whether the guess is too high or too low.
  • 5. 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. Begin Game Repeat Return until Number is Guessed End Game
  • 6. From Idea to Algorithm: Step Refinement The next refinement fills in a few details for each part. Begin Game Display instructions Pick a number between 1 and 100 2. Repeat Turn Until Number is Guessed Input guess from user Respond to guess End Repeat End Game Display end message
  • 7. From Idea to Algorithm: Stepwise Refinement Fill in the crucial details. If guess = number, then say so and quit; if guess < number, then say guess is too small; if guess> number, then say guess is too high.
  • 8. From Idea to Algorithm: Step Refinement Give the computer a way of knowing when seven turns have passed. begin game display instructions pick a number between 1 and 100 set counter to 0 repeat turn until number is guessed or counter = 7 input guess from user if guess = number, then say so and quit; else if guess < number, then say guess is too small; else say guess is too big add 1 to counter end repeat end game display end message
  • 9. 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
  • 10. 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.
  • 11. From Algorithm to Program A simple program contains: The program heading The declarations and definition The body
  • 12. 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.
  • 13. Translation Software Translation software, called an interpreter , translates a high-level program to a machine language one statement at a time during execution.
  • 14. Compiler A compiler translates an entire high-level program to machine language before executing the program.
  • 15. Programming Languages & Methodologies Machine language is the native language of a computer. Instructions for the four basic arithmetic operations, for comparing pairs of numbers, for repeating instructions, and so on all binary Instructions, memory locations, numbers, and characters are all represented by strings of zeros and ones
  • 16. Programming Languages & Methodologies An assembler translates each statement of assembly language into the corresponding machine-language statement.
  • 17. 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.
  • 18. Structured Programming Structured programming is a technique to make 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.
  • 19. 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.
  • 20. Structured Programming problems can be isolated to individual modules the input and output of each module in the assembly line are easier to understand Structured programs are easier to understand and modify because:
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. Languages for Users User-oriented macro languages or scripting languages that allow users to create programs, called macros, that automate repetitive tasks Fourth-generation languages (4GL) - English-like phrases and sentences to issue instructions Nonprocedural; focus on what needs to be done, not on how to do it
  • 26. 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.
  • 27. Programming for the Web HTML JavaScript Java Perl XML Programmers can, and do, use a variety of languages, including C and C++, to write Web applications. But some programming tools are particularly useful for developing Web applications:
  • 28. 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
  • 29.  
  • 30. The Systems Development Life Cycle The graphical “waterfall” model of the SDLC shows a basic sequential flow from identifying the “right things to do” to making sure that “things are done right.” Investigation Analysis Design Development Implementation Maintenance Retirement
  • 31. The Systems Development Life Cycle Investigation Define the problem: identify the information needs of the organization examine the current system determine how well it meets the needs of the organization study the feasibility of changing or replacing the current system
  • 32. The Systems Development Life Cycle Analysis During the analysis phase the systems analyst : gathers documents interviews users of the current system observes the system in action generally gathers and analyzes data to understand the current system and identify new requirements
  • 33. The Systems Development Life Cycle Prototyping is an interactive methodology in which the prototype is continually modified and improved until it meets the needs of the end-user. Design Identify requirements Develop working model of system Use Prototype Evaluate features of prototype Develop application, install prototype for evaluation by end users, begin new prototype, or abandon application. Additional changes to prototype needed.
  • 34. The Systems Development Life Cycle The systems analyst must plan and schedule carefully activities in the development phase of the SDLC because they can overlap and occur simultaneously. Development Testing Documenting Scheduling Programming Purchasing
  • 35. The Systems Development Life Cycle Implementation Direct cutover approach Parallel systems approach Phase-in approach Pilot approach
  • 36. The Systems Development Life Cycle Maintenance The maintenance phase involves monitoring, evaluating, repairing, and enhancing the system throughout the lifetime of the system.
  • 37. The Systems Development Life Cycle Retirement Systems are often used for many years, but at some point in the life of a system, ongoing maintenance is not enough. .
  • 38. 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
  • 39. 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
  • 40. The State of Software: Software Solutions Programming techniques Programming environments Program verification Clean-room programming Human management
  • 41.