This document provides an overview of program development and programming languages. It discusses different approaches to program design such as structured programming, object-oriented programming, aspect-oriented programming, and adaptive software development. It also describes the phases of the program development life cycle including problem analysis, program design, coding, debugging and testing. Common programming languages and tools that can facilitate the development process are also covered.
This chapter covers:
- What Web-based multimedia is and how it is used today
- The advantages and disadvantages of using multimedia
- A look at basic multimedia elements
- Steps and principles in designing a multimedia site
- How a multimedia Web site is developed and the software used during this process
- A look at the future of Web-based multimedia
This chapter covers:
- How information systems are used and who uses them
- Common types of information systems
- Computer professionals who develop systems and their primary responsibilities
- The system development life cycle (SDLC)
- The major approaches to system development
overview:-
This chapter covers:
What computers are, how they work, and how they are used
Computer terminology
An overview of the history of computers
The basic types of computers in use today
How to access resources on the Internet
Societal impacts of computers
Why learn about computers?
Pervasive computing
Also known as ubiquitous computing
Computers have become an integral part of our lives
Basic computer literacy
Understanding what a computer is and how it works
This chapter covers:
- What Web-based multimedia is and how it is used today
- The advantages and disadvantages of using multimedia
- A look at basic multimedia elements
- Steps and principles in designing a multimedia site
- How a multimedia Web site is developed and the software used during this process
- A look at the future of Web-based multimedia
This chapter covers:
- How information systems are used and who uses them
- Common types of information systems
- Computer professionals who develop systems and their primary responsibilities
- The system development life cycle (SDLC)
- The major approaches to system development
overview:-
This chapter covers:
What computers are, how they work, and how they are used
Computer terminology
An overview of the history of computers
The basic types of computers in use today
How to access resources on the Internet
Societal impacts of computers
Why learn about computers?
Pervasive computing
Also known as ubiquitous computing
Computers have become an integral part of our lives
Basic computer literacy
Understanding what a computer is and how it works
This chapter covers:
- The most common approaches to program design and development
- The phases of the program development life cycle (PDLC)
- Tools that can be used to design and develop a program
- Good program design techniques and types of program errors
- Common programming languages
Objectives
- Describe what application software is, the different types of ownership rights, and the difference between installed and Web-based software.
- Detail some concepts and commands that many software programs have in common.
- Discuss word processing and explain what kinds of documents are created using this type of program.
- Explain the purpose of spreadsheet software and the kinds of documents created using this type of program.
- Identify some of the vocabulary used with database software and discuss the benefits of using this type of program.
- Describe what presentation graphics and electronic slide shows are and when they might be used.
- List some types of graphics and multimedia software consumers frequently use.
- Name other types of application software programs and discuss what functions they perform.
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 2 - The Sys...yaminohime
Objectives
- Understand how data and programs are represented to a computer and be able to identify a few of the coding systems used to accomplish this.
- Explain the functions of the hardware components commonly found inside the system unit, such as the CPU, memory, buses, and expansion cards.
- Describe how new peripheral devices or other hardware can be added to a computer.
- Understand how the computer system’s CPU and memory components process program instructions and data.
- Name and evaluate several strategies that can be used today for speeding up the operations of a computer.
- List some technologies that may be used in the future computers.
This chapter covers:
- What computers are, how they work, and how they are used
- Computer terminology
- An overview of the history of computers
- The basic types of computers in use today
- An overview of networks and the Internet
- Societal impacts of computers
Objectives
- Explain what e-commerce is and describe some of the advantages and disadvantages involved with implementing e-commerce.
- Identify a variety of e-commerce business models and discuss their differences.
- Discuss the types of Web sites that can be used to implement e-commerce.
- List several strategies for implementing e-commerce using the Web, including some of the decisions that need to be made, the options available for accepting payments, and the process of designing and developing an effective Web site.
- Outline some sales and marketing strategies that can be used in conjunction with an e-commerce Web site.
- Discuss some security issues related to e-commerce sites.
This chapter covers:
- Different types of keyboards and pointing devices
- Types of scanners, readers, and digital cameras
- Audio input devices
- Types of display devices and how they work
- Types of printers and how they work
- Audio output
Objectives
- Name several general properties of storage systems.
- Describe the two most common types of hard drives and what they are used for today.
- Discuss the various types of optical discs available and how they differ from each other.
- Identify some flash-memory-based storage devices and media and explain how they are used today.
- List at least three other types of storage systems.
- Summarize the storage alternatives for a typical personal computer.
This chapter covers:
- The most common approaches to program design and development
- The phases of the program development life cycle (PDLC)
- Tools that can be used to design and develop a program
- Good program design techniques and types of program errors
- Common programming languages
Objectives
- Describe what application software is, the different types of ownership rights, and the difference between installed and Web-based software.
- Detail some concepts and commands that many software programs have in common.
- Discuss word processing and explain what kinds of documents are created using this type of program.
- Explain the purpose of spreadsheet software and the kinds of documents created using this type of program.
- Identify some of the vocabulary used with database software and discuss the benefits of using this type of program.
- Describe what presentation graphics and electronic slide shows are and when they might be used.
- List some types of graphics and multimedia software consumers frequently use.
- Name other types of application software programs and discuss what functions they perform.
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 2 - The Sys...yaminohime
Objectives
- Understand how data and programs are represented to a computer and be able to identify a few of the coding systems used to accomplish this.
- Explain the functions of the hardware components commonly found inside the system unit, such as the CPU, memory, buses, and expansion cards.
- Describe how new peripheral devices or other hardware can be added to a computer.
- Understand how the computer system’s CPU and memory components process program instructions and data.
- Name and evaluate several strategies that can be used today for speeding up the operations of a computer.
- List some technologies that may be used in the future computers.
This chapter covers:
- What computers are, how they work, and how they are used
- Computer terminology
- An overview of the history of computers
- The basic types of computers in use today
- An overview of networks and the Internet
- Societal impacts of computers
Objectives
- Explain what e-commerce is and describe some of the advantages and disadvantages involved with implementing e-commerce.
- Identify a variety of e-commerce business models and discuss their differences.
- Discuss the types of Web sites that can be used to implement e-commerce.
- List several strategies for implementing e-commerce using the Web, including some of the decisions that need to be made, the options available for accepting payments, and the process of designing and developing an effective Web site.
- Outline some sales and marketing strategies that can be used in conjunction with an e-commerce Web site.
- Discuss some security issues related to e-commerce sites.
This chapter covers:
- Different types of keyboards and pointing devices
- Types of scanners, readers, and digital cameras
- Audio input devices
- Types of display devices and how they work
- Types of printers and how they work
- Audio output
Objectives
- Name several general properties of storage systems.
- Describe the two most common types of hard drives and what they are used for today.
- Discuss the various types of optical discs available and how they differ from each other.
- Identify some flash-memory-based storage devices and media and explain how they are used today.
- List at least three other types of storage systems.
- Summarize the storage alternatives for a typical personal computer.
This chapter covers:
- Hardware loss, hardware damage, and system failure, and the safeguards that can help reduce the risk of a problem occurring due to these concerns
- Software piracy and digital counterfeiting and steps that are being taken to prevent these computer crimes
- Possible risks for personal privacy violations due to databases, marketing activities, electronic surveillance, and monitoring, and precautions that can be taken to safeguard one’s privacy
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 5 - System ...yaminohime
Objectives
- Understand the difference between system software and application software.
- Explain the different functions of an operating system and discuss some ways that operating systems can enhance processing efficiency.
- List several ways in which operating systems differ from one another.
- Name today’s most widely used operating systems for personal computers and servers.
-State several devices other than personal computers and servers that require an operating system and list one possible operating system for each type of device.
- Discuss the role of utility programs and outline several tasks these programs perform.
- Describe what the operating systems of the future might be like.
Why C is Called Structured Programming LanguageSinbad Konick
This Slide was made for a presentation based on the Topic Why C is Called Structured Programming Language . So here we added some history about C Programming from where did it came from , who invented it . What does structured programming actually means . And finally the advantage and disadvantage of C Programming . Future of C Programming .
software engineering , its characteristic ,changing nature of software,evolving nature of software,legacy software,generic view of software,process flow ,umbrella activity,CMMI,PROCESS ASSESSMENT ,team and personal software process
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
Software Development Life Cycle Models | What are Software Process Models ?
Here you are going to know What is Software Development Life Cycle Model or What are Software Process Models?
Software Process Models defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software...
For more knowledge watch full video...
Video URL:
https://youtu.be/3Lxnn0O3xaM
YouTube Channel URL:
https://www.youtube.com/channel/UCKVvceV1RGXLz0GeesbQnVg
Google+ Page URL:
https://plus.google.com/113458574960966683976/videos?_ga=1.91477722.157526647.1466331425
My Website Link:
http://appsdisaster.blogspot.com/
If you are interested in learning more about topics like this so Please don't forget to like, share, & Subscribe to this channel.
Thanks
Software Process Models | Software Development Process Models | SDLC | Traditional Software Process Models | Waterfall Model Incremental Model | Prototyping Model | Evolutionary Process Model
itec513 fall20172018 COCOMO model estimation.pptinaamulh77
COCOMO, or Constructive Cost Model, is a software cost estimation model developed by Barry Boehm. It categorizes software projects into three modes: Organic, Semidetached, and Embedded. The model uses equations to estimate effort, duration, and personnel required based on project size. Factors such as product complexity, development environment, and team experience influence the final estimation. COCOMO provides a structured approach for assessing and managing software development costs, aiding in project planning and resource allocation.COCOMO, an acronym for Constructive Cost Model, is a widely used software cost estimation technique that aids in predicting the effort, time, and resources required for a software development project. Developed by Barry Boehm in the late 1970s, it classifies projects into three categories: Organic, suitable for small teams with experienced developers; Semidetached, for projects with mixed characteristics; and Embedded, for large, complex systems. The model utilizes mathematical formulas and factors like product attributes, development environment, and team capabilities to generate estimates. By providing a systematic framework, COCOMO assists project managers in making informed decisions during the planning phase, contributing to more accurate budgeting and resource allocation.
At the end of this lecture students should be able to;
Define fundamentals of data processing in computer.
Define fundamental terms in computer programming.
Define the phases of program development life cycle.
Define structured program theorem.
Esoft Metro Campus - Diploma in Information Technology - (Module VII) Software Engineering
(Template - Virtusa Corporate)
Contents:
What is software?
Software classification
Attributes of Software
What is Software Engineering?
Software Process Model
Waterfall Model
Prototype Model
Throw away prototype model
Evolutionary prototype model
Rapid application development
Programming styles
Unstructured programming
Structured programming
Object oriented programming
Flow charts
Questions
Pseudo codes
Object oriented programming
OOP Concepts
Inheritance
Polymorphism
Encapsulation
Generalization/specialization
Unified Modeling Language
Class Diagrams
Use case diagrams
Software testing
Black box testing
White box testing
Software documentation
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
2. Learning Objectives
1. Understand the differences between structured
programming, object-oriented programming (OOP), aspectoriented programming (AOP), and adaptive software
development.
2. Identify and describe the activities involved in the program
development life cycle (PDLC).
3. Understand what constitutes good program design and list
several tools that can be used by computer professionals
when designing a program.
Understanding Computers: Today and Tomorrow, 14th Edition
2
2
3. Learning Objectives
4. Explain the three basic control structures and how they can
be used to control program flow during execution.
5. Discuss some of the activities involved with debugging a
program and otherwise ensuring it is designed and written
properly.
6. List some tools that can be used to speed up or otherwise
facilitate the program development process.
7. Describe several programming languages in use today and
explain their key features.
Understanding Computers: Today and Tomorrow, 14th Edition
3
4. Overview
• This chapter covers:
– The most common approaches to program design and
development
– The phases of the program development life cycle (PDLC)
– Tools that can be used to design and develop a program
– Good program design techniques and types of program
errors
– Common programming languages
Understanding Computers: Today and Tomorrow, 14th Edition
4
4
5. Approaches to Design and
Development
• Procedural Programming
– An approach to program design in which a program is
separated into small modules that are called by the main
program or another module when needed
• Procedure call—locating specific tasks in procedures
(modules or subprograms) that are called by the main
program when needed
• Allows each procedure to be performed as many times
as needed; multiple copies of code not needed
• Prior to procedural programming, programs were one
large set of instructions (used GOTO statements)
Understanding Computers: Today and Tomorrow, 14th Edition
5
6. Approaches to Design and
Development
• Structured Programming
– Goes even further, breaking the program into small
modules (Top-down design)
– Variables
• Named memory locations that are defined for a
program
• Used to store the current value of data items used in
the program
Understanding Computers: Today and Tomorrow, 14th Edition
6
7. Approaches to Design and
Development
Understanding Computers: Today and Tomorrow, 14th Edition
7
8. Approaches to Design and
Development
• Object-Oriented Programming (OOP)
– Programs consist of a collection of objects that contain
data and methods to be used with that data
• Class
– Group of objects that share
some common properties
• Instance
– An individual object in a
class
• Attributes
– Data about the state of
an object
Understanding Computers: Today and Tomorrow, 14th Edition
8
9. Approaches to Design and
Development
• Methods
– Perform actions on an object
• Objects can perform nontraditional actions and be
easily used by more than one program
Understanding Computers: Today and Tomorrow, 14th Edition
9
10. Approaches to Design and
Development
• Aspect-Oriented Programming (AOP)
– Separates functions so program components can be
developed and modified individually from one another
– The components can be easily reused with separate
nonrelated objects
• Adaptive Software Development
– Designed to make program development faster and more
efficient and focuses on adapting the program as it is being
written
• Iterative and/or incremental
Understanding Computers: Today and Tomorrow, 14th Edition
10
11. Approaches to Design and
Development
• Agile software development
– Goal is to create software rapidly
– Focuses on building small functional program pieces
during the project
– Includes earlier adaptive software approaches such
as RAD (rapid application development) and
extreme programming (XP)
Understanding Computers: Today and Tomorrow, 14th Edition
11
12. The Program Development
Life Cycle (PDLC)
• Program Development
(application software
development)
– The process of
creating
application
programs
• Program Development
Life Cycle (PDLC)
– The five phases of
program
development
Understanding Computers: Today and Tomorrow, 14th Edition
12
13. The Program Development
Life Cycle (PDLC)
• Problem Analysis
– The problem is considered and the program specifications
are developed
• Specifications developed during the PDLC are reviewed
by the systems analyst and the programmer (the
person who will code the program)
• Goal is to understand the functions the software must
perform
– Documentation: Program Specifications
• Result of the first phase of the PDLC outlining what the
program must do
Understanding Computers: Today and Tomorrow, 14th Edition
13
14. The Program Development
Life Cycle (PDLC)
• Program Design
– The program specifications are expanded into a complete
design of the new program
• Algorithm for the program is developed
• Careful planning and design of a computer program are
extremely important
– Program Design Tools
• Planning tools that include diagrams, charts, tables, and
models
• Structure Charts (hierarchy charts)
– Depict the overall organization of a program
Understanding Computers: Today and Tomorrow, 14th Edition
14
15. The Program Development
Life Cycle (PDLC)
• Flowcharts
– Show graphically, step-by-step, how a computer
program will process data
– Use special symbols and relational operators
– Can be drawn by hand or with flowcharting
software
• Pseudocode
– Uses English-like statements to outline the logic of a
program rather than the flowchart’s graphical
symbols
Understanding Computers: Today and Tomorrow, 14th Edition
15
18. The Program Development
Life Cycle (PDLC)
• Unified Modeling
Language (UML)
Models
– Set of standard
notations for
creating business
models
– Widely used in
object-oriented
programs
– Includes class
diagrams and case
diagrams
Understanding Computers: Today and Tomorrow, 14th Edition
18
19. The Program Development
Life Cycle (PDLC)
– Control Structures
• A pattern for controlling
the flow of logic in a
computer program,
module, or method
• The Sequence Control
Structure
– Series of statements
that follow one
another
Understanding Computers: Today and Tomorrow, 14th Edition
19
20. The Program Development
Life Cycle (PDLC)
• The Selection Control Structure
– Multiple paths, direction depends on result of a
certain condition
» If-then-else
– Case control structure
» Allows for as many possible results of the
specified condition as needed
• Repetition Control Structure (iteration control structure)
– Repeat series of steps
» Do-while
» Do-until
Understanding Computers: Today and Tomorrow, 14th Edition
20
22. The Program Development
Life Cycle (PDLC)
– Good Program Design
• Is essential
• Saves time
• Good Program Design Principles
– Be Specific
» All things the program must do or consider must
be specified
– Follow the One-Entry-Point/One-Exit-Point Rule
– No Infinite Loops or Logic Errors
» Infinite loop is a series of steps that repeat
forever
Understanding Computers: Today and Tomorrow, 14th Edition
22
24. The Program Development
Life Cycle (PDLC)
– Program Design Testing
• Design should be tested to ensure logic is correct
– Desk check
– Tracing tables
– Documentation: Design Specifications
• Illustrates the program needed to fulfill the program
requirements
• Expressed using structure charts, flowcharts,
pseudocode, and UML models
• Include any test data and results from desk checking
Understanding Computers: Today and Tomorrow, 14th Edition
24
27. The Program Development
Life Cycle (PDLC)
• Program Coding
– The program code is written using a programming
language
– Choosing a Programming Language
• Suitability to the application
• Integration with other programs
• Standards for the company
• Programmer availability
• Portability if being run on multiple platforms
• Development speed
Understanding Computers: Today and Tomorrow, 14th Edition
27
28. The Program Development
Life Cycle (PDLC)
– The Coding Process
• Coding Standards
– Rules designed to standardize programming
– Makes programs more readable and easier to
maintain
– Includes the proper use of comments to:
» Identify the programmer and last
modification date
» Explain variables used in the program
» Identify the main parts of the program
Understanding Computers: Today and Tomorrow, 14th Edition
28
30. The Program Development
Life Cycle (PDLC)
– Reusable code
• Pretested, error-free code segments that can be
used over and over again with minor modifications
• Can greatly reduce development time
– Documentation: Documented Source Code
• Program coding phase results in the program written in
the desired programming language
• Should include enough comments (internal
documentation) so that the source code is easy to
understand and update
Understanding Computers: Today and Tomorrow, 14th Edition
30
31. The Program Development
Life Cycle (PDLC)
• Program Debugging and Testing
– The process of ensuring a program is free of errors (bugs)
and works as it is supposed to
– Translating Coded Programs into Executable Code
• Coded programs need to be translated from source
code written by the programmer to object code the
computer can execute
• Converted using a language translator
– Program that converts source code to machine
language
Understanding Computers: Today and Tomorrow, 14th Edition
31
32. The Program Development
Life Cycle (PDLC)
– Compilers
» Language translator that converts an entire
program into machine language before
executing it
» Designed for specific programming languages
such as Java or Python
– Interpreters
» Translates one line of code at one time
– Assemblers
» Convert assembly language programs into
machine language
Understanding Computers: Today and Tomorrow, 14th Edition
32
35. The Program Development
Life Cycle (PDLC)
– Preliminary Debugging
• Compiler and Syntax Errors
– As programs are compiled or interpreted, errors
occur which prevent the program from running
properly
− Syntax errors occur when the programmer has not
followed the rules of the programming language
• Run Time and Logic Errors
– Run time errors occur when the program is running
Understanding Computers: Today and Tomorrow, 14th Edition
35
36. The Program Development
Life Cycle (PDLC)
– Logic errors are errors in the logic of the program
» Program will run but produces incorrect results
» Dummy print statements can help locate logic
errors and other run time errors
Understanding Computers: Today and Tomorrow, 14th Edition
36
38. The Program Development
Life Cycle (PDLC)
– Testing
• Occurs after the program appears to be correct to find
any additional errors
• Uses good test data—data that is very similar to the
actual data that will be used in the program
• Tests conditions that will occur when the program is
implemented
• Checks for coding omissions (i.e., product quantity
allowed to be < 0)
Understanding Computers: Today and Tomorrow, 14th Edition
38
39. The Program Development
Life Cycle (PDLC)
• Two stages
– Alpha test—internal on-site test
– Beta test—outside test
– Documentation: Completed Program Package
• Copy of the test data, test results, finished program
code, and other documentation generated during the
testing phase should be added to the program package
– Developer documentation
– User documentation
Understanding Computers: Today and Tomorrow, 14th Edition
39
40. The Program Development
Life Cycle (PDLC)
• Program Implementation and Maintenance
– Once the system containing the program is up and
running, the implementation process is complete
– Program maintenance
• Process of updating software so it continues to be
useful
• Very costly
– Documentation: Amended program package
• Program package should be updated to reflect new
problems or issues that occur and what changes to the
program were necessary
Understanding Computers: Today and Tomorrow, 14th Edition
40
41. Quick Quiz
1. Which approach to programming uses the concept of inheritance?
a. Procedural
b. Object-oriented
c. Aspect-oriented
2. True or False: An infinite loop is an example of a logic error.
3. A(n)______________________ is a program design tool that shows
graphically step-by-step the actions a computer program will take.
Answers:
1) b; 2) True; 3) flowchart
Understanding Computers: Today and Tomorrow, 14th Edition
41
42. Tools for Facilitating Program
Development
• Application Lifecycle Management (ALM) Tools
– Creating and managing an application during its entire
lifecycle, from design through retirement
– Tools include:
• Requirements management
– Keeping track of and managing the program
requirements as they are defined and then
modified
• Configuration management
– Keeping track of the progress of a program
development project
Understanding Computers: Today and Tomorrow, 14th Edition
42
43. Tools for Facilitating Program
Development
• Issue tracking
– Recording issues such as bugs or other problems
that arise during development or after the system is
in place
Understanding Computers: Today and Tomorrow, 14th Edition
43
44. Tools for Facilitating Program
Development
• Application Generators
– Software program that helps programmers develop
software
– Macros
• Record and play back a series of keystrokes
• Programmers write them in a macro programming
language such as Visual Basic for Applications
– Report and Form Generators
• Tools that enable individuals to prepare reports and
forms quickly
Understanding Computers: Today and Tomorrow, 14th Edition
44
45. Tools for Facilitating Program
Development
Understanding Computers: Today and Tomorrow, 14th Edition
45
46. Tools for Facilitating Program
Development
• Device Software Development Tools
– Assist with developing embedded software to be used on
devices, such as cars, ATM machines, and consumer
devices
• Software Development Kits (SDKs) and Application Program
Interfaces (APIs)
– Designed for a particular platform
– Enables programmers to develop applications more quickly
and easily
• Often released by hardware or software companies
– iOS SDK—allows third party developers to create
new applications for iPhone, iPad, iPod Touch
Understanding Computers: Today and Tomorrow, 14th Edition
46
47. Tools for Facilitating Program
Development
• Application Program Interfaces (APIs)
– Help applications interface with a particular
operating system
• Often used in conjunction with Web sites
• Rich Internet Application (RIA) Tools
– Web-based applications that work like installed software
programs
– Desktop RIA can access local files and used without an
Internet connection
– Web-based RIAs are common
– Tools to develop RIAs
• Adobe AIR
Understanding Computers: Today and Tomorrow, 14th Edition
47
48. Tools for Facilitating Program
Development
Understanding Computers: Today and Tomorrow, 14th Edition
48
49. Quick Quiz
1. Which of the following is not an Application Lifecycle Management
(ALM) tool?
a. Requirements definition software
b. Code generator
c. Application program interface (API)
2. True or False: A software development kit (SDK) is designed for a
particular platform and allows programmers to develop applications
quickly for that platform.
3. A(n) ______________________ is often used to create the forms or
input screens used to input data into a program or database.
Answers:
1) c; 2) True; 3) form generator
Understanding Computers: Today and Tomorrow, 14th Edition
49
50. Programming Languages
• What is a Programming Language?
– A set of rules, words, symbols, and codes used to write
computer programs
– To write a program, appropriate software for the
programming language being used is needed
• Categories of Programming Languages
– Types of programs they are designed to create
• Procedural languages or object-oriented languages
– How evolved the programming language is
• Levels or generations
Understanding Computers: Today and Tomorrow, 14th Edition
50
51. Programming Languages
– Low-Level Languages (earliest programming languages)
• Machine language
– Written at a very low level, just using 1s and 0s
– First generation of programming languages
• Assembly language
– Includes some names and other symbols to replace
some of the 1s and 0s in machine language
– Second generation of programming languages
– Machine dependent
» Written for one specific type of computer
Understanding Computers: Today and Tomorrow, 14th Edition
51
53. Programming Languages
– High-Level Languages
• Closer to natural languages
• Machine independent
• Includes 3GLs (FORTRAN, BASIC, COBOL,C, etc.) and
object-oriented languages (Visual
Basic, C#, Python, Java, etc.)
• Visual or graphical languages
– Use graphical interface to create programs
– Designed for educational purposes
Understanding Computers: Today and Tomorrow, 14th Edition
53
55. Programming Languages
– Fourth-Generation Languages (4GLs)
• Even closer to natural languages and easier to work
with than high-level
• Declarative rather than procedural
• Includes structured query language (SQL) used with
databases
• Common Programming Languages
– Languages not widely used today
• Logo (teach children how to program)
• PL/1 (business and scientific applications
• Prolog and LISP (artificial intelligence)
• SmallTalk (one of the first object-oriented languages)
Understanding Computers: Today and Tomorrow, 14th Edition
55
56. Programming Languages
– FORTRAN
• High-level programming language used for
mathematical, scientific, and engineering applications
• Efficient for math,
engineering and
scientific applications
• Still used today for
high-performance
computing tasks
(weather forecasting)
• Fortress may eventually
replace FORTRAN
Understanding Computers: Today and Tomorrow, 14th Edition
56
57. Programming Languages
– COBOL
• Designed for business transaction processing
• Makes extensive use of modules
• Strength lies in batch processing and its stability
• Programs are lengthy and take a long time to write
• Considered to be outdated by some
• New versions are evolving
– COBOL.NET
Understanding Computers: Today and Tomorrow, 14th Edition
57
59. Programming Languages
– Pascal
• Named after mathematician Blaise Pascal
• Created as a teaching tool to encourage structured
programming
• Contains a variety of control structures used to
manipulate modules systematically
– BASIC and Visual Basic
• Easy-to-learn, high-level programming language that
was developed to be used by beginning programmers
• Visual Basic
– Object-oriented version of BASIC; uses a visual
environment
Understanding Computers: Today and Tomorrow, 14th Edition
59
62. Programming Languages
– C, C++, and C#
•C
– Much closer to assembly language than other highlevel languages
– Designed for system programming
• C++
– Object-oriented versions of C
– Very popular for graphical applications
• C# (C sharp)
– Used to create Web applications and XML-based
Web services
• Objective-C:
– For iPhone and other Apple applications
Understanding Computers: Today and Tomorrow, 14th Edition
62
64. Programming Languages
– Java
• High-level, object-oriented programming language
frequently used for Web-based applications
• Java programs are compiled into bytecode
• Can run on any computer that includes Java Virtual
Machine (Java VM)
• Can be used to write Java applets
– Scroll text on Web page, games, calculators, etc
• Is one of the most popular programming languages
today
Understanding Computers: Today and Tomorrow, 14th Edition
64
66. Programming Languages
– Python
• Open-source, dynamic,
object-oriented language
that can be used to
develop a variety of
applications
• Gaming, scientific,
database, and Web
applications
• Used by large
organizations such as
NASA, Google, Honeywell,
New York Stock Exchange,
and some colleges such as
MIT
Understanding Computers: Today and Tomorrow, 14th Edition
66
67. Programming Languages
– Ruby
• Open-source, object-oriented language that can be
used to create Web applications and general-purpose
programming for Linux, Mac OS X, and Microsoft
Windows computers
• Uses a syntax that is fairly easy to read and
write, allowing programmers to create database-driven
Web applications easily and quickly
Understanding Computers: Today and Tomorrow, 14th Edition
67
68. Quick Quiz
1. An example of a high-level programming language is
______________________.
a. Pascal
b. Assembly language
c. Machine language
2. True or False: Visual Basic is an object-oriented version of COBOL.
3. Java applets are small programs written in the
______________________ programming language.
Answers:
1) a; 2) False; 3) Java
Understanding Computers: Today and Tomorrow, 14th Edition
68
69. Summary
•
•
•
•
Approaches to Program Design and Development
The Program Development Life Cycle (PDLC)
Tools for Facilitating Program Development
Programming Languages
Understanding Computers: Today and Tomorrow, 14th Edition
69