SlideShare a Scribd company logo
Introduction to Software 
Development and Programming 
Language 
Made By 
Prashant Kumar 
Amit Dahiya 
Siddhant Mohanpuria 
Pankaj Gautam
2 
Content 
 Software 
 What is Software? 
 Types of Software 
 Why develop new Software? 
 Introduction to Software Development 
 Process Models 
 The Waterfall Model 
 Programming Language 
 System Software 
 Languages
3 
Software 
 Why is it so important? 
 The economies of ALL developed nations are 
dependent on software. 
 9/11 highlights this with the destruction of the stock 
exchange computers 
 More and more of our daily lives are being 
supported/monitored by software 
 The engines of our cars 
 Our washing machines 
 Getting on a bus/train
Operating System 
{ Application The Computer 
4 
What is Software? 
 Software is the part of a 
computer that makes it 
useful. 
 In this module we are going to 
focus upon application software 
development. 
 Software is not tangible. 
 It is ‘conceptual’ so doesn’t wear 
out like hardware. 
 Software is a set of 
instructions (Programs). 
 These are acted upon (executed) 
by the hardware. 
 Software is also the documents 
that describe the operation and use 
of the programs. 
Hardware 
Software 
• Windows 98/2000/XP 
• Linux/Unix 
• Browser 
• Email 
• Word Processor
5 
What does it do? 
Application 
Operating System 
Hardware 
 Generally software takes in data and processes it 
into information. 
 The many different types of software basically vary 
from where/whom data is acquired and where/whom 
information is sent/given. 
Data In Processing Information 
Out 
From the 
user/device 
/sub-system 
To the 
user/device 
/sub-system
6 
Types of Software 
 Generic (Off-the-shelf) Applications 
Application 
Operating System 
Hardware 
 Well known packages such as word processors, 
accounting, image editing, … to name but a few. 
 Anyone is able to buy them. 
 Bespoke (Customized) Products 
 Systems that are built specifically for individual 
people/organisations. 
 They can also be generic software packages that are 
customized. 
 The high-cost nature of this type of software 
means it is not economically available to all.
7 
Types of Software 
 System Software 
Application 
Operating System 
 This type of software exists at the Operating 
System layer. It is the operating system itself, 
compilers, editors….any kind of software that 
supports the execution and/or development of 
applications. 
 Application Software 
 Real-time Software 
 Programs that monitor/analyse/control real world events. 
A nuclear power plant cooling system is a good 
example. 
Hardware
8 
Types of Software 
 Application Software 
 Business Software 
Application 
Operating System 
Hardware 
 Business Information Systems such as payroll, accounts 
and order management/tracking. There are off-the-shelf 
packages available for small businesses, however large 
businesses usually develop their own software. 
 Engineering and Scientific Software 
 Typically ‘number crunching’ programs for areas such as 
astronomy, molecular biology, weather forecasting and 
Computer Aided Design (CAD) for engineers. Generic 
programs do exist for some of these areas, however 
research usually requires new software to be developed.
9 
Types of Software 
 Application Software 
 Embedded Software 
Application 
Operating System 
Hardware 
 Intelligent products such as cookers, washing machines 
and microwaves use embedded software that typically 
resides in a Read Only Memory (ROM). Due to the 
individual nature of such products this software is 
usually developed/tailored for each. 
 Personal Computer Software 
 Spreadsheets, word processors, computer graphics, 
multimedia and database applications are typical. This 
type of software is predominantly off the shelf but does 
go through many versions to remove bugs and increase 
functionality.
10 
Types of Software 
 Application Software 
 Artificial Intelligence (AI) Software 
Application 
Operating System 
Hardware 
 AI is used to solve complex problems such as 
scheduling the maintenance of manufacturing equipment 
to minimise their shutdown. Other uses include pattern 
recognition (speech/visual). This software is typically 
newly developed for each application. 
 The application of computers through 
software development is only limited by our 
imaginations……(and its’ cost)
11 
Why develop new Software? 
 As hardware will always eventually wear out, it will 
need to replaced. 
 Software on the other hand, doesn’t wear out in this 
traditional sense, but will become increasingly less 
useful as users requirements for it changes over 
time. 
 This means that software needs to be either periodically 
updated or replaced. 
 Understanding the process of software development 
is therefore paramount in keeping software 
systems/applications continually useful to its users.
Introduction to the Software 
Development Process 
 There are many documented software development 
processes; too many to mention here. However, all 
software development processes can be 
categorised into: 
12 
 Sequential Process Models 
 Where software is developed in a sequence of stages, 
typically: Analyse, Design, Code, Test. 
 Iterative Process Models 
 Where a sequential process model is repeated until the 
software is deemed correct. Typically used when the 
requirements for a piece of software are not fully known when 
development starts.
The Waterfall Model (Sequential) 
 While other process models will be 
investigated in this module, we will be 
focussing upon the central stages of the 
Waterfall Model of Software Development. 
13 
Analysis 
Design 
Code 
Test 
Requirements 
Softwar 
e
14 
Analysis (Waterfall Model) 
 The analysis phase of software development aims 
to develop a requirements specification that can be 
used to design the new software system. 
 While there is usually more to a requirements 
specification, we will be focussing on two of its main 
parts: 
 Functional Requirements 
 First, an abstract definition of what the system must do. 
 Then, a detailed set of functional requirements can be 
bulleted. 
 Non-functional Requirements 
 Usually ‘qualitative’ factors such as performance, efficiency 
and usability are described.
15 
Design (Waterfall Model) 
 System design is concerned with how the 
system functionality is to be provided by the 
different components of the system. It 
involves: 
 Requirements Partitioning and Identification of 
Sub-systems (if any) 
 Assign requirements to sub-systems and specify 
their functionality 
 Define sub-system interfaces
16 
Design (Waterfall Model) 
 For each sub-system, a detailed design document is 
then created. 
 It specifies the structural make-up of the sub-system and 
were necessary how data is stored, manipulated and 
communicated as well as how information is presented. 
 Design is often an iterative process, especially in a 
system made up of several sub-systems 
 As problems identified during the design of one sub-system 
can cause the re-design of another. 
 Design is typically specified using a mixture of 
textual descriptions and structural diagrams.
17 
Coding (Waterfall Model) 
 Coding can be seen as simply interpreting the 
design documents into machine executable 
instructions. 
 There are many different programming languages 
 Factors including the application’s domain will help 
in making a choice of which programming language 
to use: 
 Platform (Hardware, Operating System, Network), 
 Programming Paradigm (Object-Oriented/ Function-based/ 
Event-based) 
 Experience of the ‘programmers’ available to do the coding.
18 
Testing (Waterfall Model) 
 Testing should start as soon as the 
requirements specification is available. 
 A test plan document should be drawn up in 
parallel with the initial design of the system 
 The plan uses the requirements to provide an 
overall testing strategy for the complete system in 
order to satisfy the following conditions: 
 Verify – Have we built the system right? 
 Validate – Have we built the right system?
19 
Testing (Waterfall Model) 
 As a more detailed design for each of the 
sub-systems is generated, specific testing 
strategies for each sub-system can be 
designed 
 When the code for a sub-system is complete, 
specific tests for each sub-system can be 
designed based upon the chosen strategy
20
Programming Languages and Compilers 
are at the core of Computing 
All software is written in a programming language 
Learning about compilers will teach you a lot about the 
programming languages you already know. 
Compilers are big – therefore you need to apply all you knowledge 
of software engineering. 
The compiler is the program from which all other programs arise.
Programming Language Concepts 
What is a programming language? 
Why are there so many programming 
languages? 
What are the types of programming 
languages? 
Does the world need new languages?
What is a Programming Language 
A programming language is a set of rules 
that provides a way of telling a computer 
what operations to perform. 
A programming language is a set of rules 
for communicating an algorithm 
It provides a linguistic framework for 
describing computations
What is a Programming Language 
English is a natural language. It has words, 
symbols and grammatical rules. 
A programming language also has words, 
symbols and rules of grammar. 
The grammatical rules are called syntax. 
Each programming language has a different 
set of syntax rules.
Why Are There So Many 
Programming Languages 
 Programming languages have evolved over 
time as better ways have been developed to 
design them. 
First programming languages were developed in 
the 1950s 
Since then thousands of languages have been 
developed 
 Different programming languages are 
designed for different types of programs.
Levels of Programming Languages 
High-level program class class Triangle Triangle { 
{ 
... 
float surface() 
... 
float surface() 
return b*h/2; 
} 
return b*h/2; 
} 
Low-level program LOAD r1,b 
LOAD r1,b 
LOAD r2,h 
MUL r1,r2 
DIV r1,#2 
RET 
LOAD r2,h 
MUL r1,r2 
DIV r1,#2 
RET 
Executable Machine code 0001001001000101 
0001001001000101 
0010010011101100 
10101101001... 
0010010011101100 
10101101001...
What Are the Types of 
Programming Languages 
First Generation Languages 
Second Generation Languages 
Third Generation Languages 
Fourth Generation Languages 
Fifth Generation Languages
First Generation Languages 
Machine language 
– Operation code – such as addition or 
subtraction. 
– Operands – that identify the data to be 
processed. 
Machine language is machine dependent as it is 
the only language the computer can understand. 
Very efficient code but very difficult to write.
Second Generation Languages 
Assembly languages 
Symbolic operation codes replaced binary 
operation codes. 
Assembly language programs needed to be 
“assembled” for execution by the computer. Each 
assembly language instruction is translated into 
one machine language instruction. 
Very efficient code and easier to write.
Third Generation Languages 
Closer to English but included simple 
mathematical notation. 
Programs written in source code which must be 
translated into machine language programs called 
object code. 
The translation of source code to object code is 
accomplished by a machine language system 
program called a compiler.
Third Generation Languages 
(continued.) 
Alternative to compilation is interpretation 
which is accomplished by a system program 
called an interpreter. 
Common third generation languages 
FORTRAN 
COBOL 
C and C++ 
Visual Basic
Fourth Generation Languages 
A high level language (4GL) that requires 
fewer instructions to accomplish a task 
than a third generation language. 
Used with databases 
Query languages 
Report generators 
Forms designers 
Application generators
Fifth Generation Languages 
Declarative languages 
Functional(?): Lisp, Scheme, SML 
Also called applicative 
Everything is a function 
Logic: Prolog 
Based on mathematical logic 
Rule- or Constraint-based
The principal paradigms 
Imperative Programming (C) 
Object-Oriented Programming (C++) 
Logic/Declarative Programming (Prolog) 
Functional/Applicative Programming (Lisp)
Programming Languages 
Two broad groups 
Traditional programming languages 
 Sequences of instructions 
 First, second and some third generation languages 
Object-oriented languages 
 Objects are created rather than sequences of 
instructions 
 Some third generation, and fourth and fifth 
generation languages
Traditional Programming Languages 
FORTRAN 
FORmula TRANslation. 
Developed at IBM in the mid-1950s. 
Designed for scientific and mathematical 
applications by scientists and engineers.
Traditional Programming Languages 
(cont) 
COBOL 
COmmon Business Oriented Language. 
Developed in 1959. 
Designed to be common to many different 
computers. 
Typically used for business applications.
Traditional Programming Languages 
(cont) 
C 
Developed by Bell Laboratories in the early 
1970s. 
Provides control and efficiency of assembly 
language while having third generation 
language features. 
Often used for system programs. 
UNIX is written in C.
Object-Oriented Programming 
Languages (cont) 
C++ 
It is C language with additional features. 
Widely used for developing system and 
application software. 
Graphical user interfaces can be developed 
easily with visual programming tools.
Object-Oriented Programming 
Languages (cont) 
JAVA 
An object-oriented language similar to C++ that 
eliminates lots of C++’s problematic features 
Allows a web page developer to create 
programs for applications, called applets that 
can be used through a browser. 
Objective of JAVA developers is that it be 
machine, platform and operating system 
independent.
Special Programming Languages 
Scripting Languages 
JavaScript and Vb Script 
Php and ASP 
Perl and Python 
Command Languages 
sh, csh, bash 
Text processing Languages 
Latex, Post Script
Special Programming Languages 
(cont) 
HTML 
Hyper Text Markup Language. 
Used on the Internet and the World Wide Web 
(WWW). 
Web page developer puts brief codes called 
tags in the page to indicate how the page 
should be formatted.
Special Programming Languages 
(cont) 
XML 
Extensible Markup Language. 
A language for defining other languages.
Criteria in a good language design 
 Writability: The quality of a language that enables a 
programmer to use it to express a computation clearly, 
correctly, concisely, and quickly. 
 Readability: The quality of a language that enables a 
programmer to understand and comprehend the nature of 
a computation easily and accurately. 
 Reliability: The quality of a language that assures a 
program will not behave in unexpected or disastrous ways 
during execution. 
 Maintainability: The quality of a language that eases 
errors can be found and corrected and new features 
added.
Criteria (Continued) 
 Generality: The quality of a language that avoids special 
cases in the availability or use of constructs and by 
combining closely related constructs into a single more 
general one. 
 Extensibility: The quality of a language that provides 
some general mechanism for the user to add new 
constructs to a language.
software development and programming languages

More Related Content

What's hot

Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languageskitturashmikittu
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
Niraj Kumar
 
Programming languages
Programming languagesProgramming languages
Programming languages
Archana Maharjan
 
Program & language generation
Program & language generationProgram & language generation
Program & language generation
Buxoo Abdullah
 
Basic Computer Programming
Basic Computer ProgrammingBasic Computer Programming
Basic Computer Programming
Allen de Castro
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
ghayour abbas
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
NaqashAhmad14
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
agorolabs
 
Importance of software engineering
Importance of software engineeringImportance of software engineering
Importance of software engineering
SRM Easwari engineering college, Ramapuram, Chennai
 
Chapter 13 programming languages and program development
Chapter 13   programming languages and program developmentChapter 13   programming languages and program development
Chapter 13 programming languages and program development
haider ali
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
Syed Zaid Irshad
 
Computer Language
Computer LanguageComputer Language
Computer Language
Deepak Yadav
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
lakshmi kumari neelapu
 
Software (4).ppt
Software (4).pptSoftware (4).ppt
Software (4).ppt
rishirvk1995
 
Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)
Adam Mukharil Bachtiar
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 
Software concepts ppt
Software concepts pptSoftware concepts ppt
Software concepts ppt
Prof. Dr. K. Adisesha
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 

What's hot (20)

Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languages
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Program & language generation
Program & language generationProgram & language generation
Program & language generation
 
Basic Computer Programming
Basic Computer ProgrammingBasic Computer Programming
Basic Computer Programming
 
Computer
ComputerComputer
Computer
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
 
Importance of software engineering
Importance of software engineeringImportance of software engineering
Importance of software engineering
 
Chapter 13 programming languages and program development
Chapter 13   programming languages and program developmentChapter 13   programming languages and program development
Chapter 13 programming languages and program development
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
Computer Language
Computer LanguageComputer Language
Computer Language
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
 
Software (4).ppt
Software (4).pptSoftware (4).ppt
Software (4).ppt
 
Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Introduction to programming languages
Introduction to programming languagesIntroduction to programming languages
Introduction to programming languages
 
Software concepts ppt
Software concepts pptSoftware concepts ppt
Software concepts ppt
 
Programming languages
Programming languagesProgramming languages
Programming languages
 

Viewers also liked

Interpreted and compiled language
Interpreted and compiled languageInterpreted and compiled language
Interpreted and compiled language
baabtra.com - No. 1 supplier of quality freshers
 
computer hardware
computer hardwarecomputer hardware
computer hardwareJelz JZ
 
Software complexity
Software complexitySoftware complexity
Software complexity
University of St Andrews
 
Overview of softwares and their applications
Overview of softwares and their applicationsOverview of softwares and their applications
Overview of softwares and their applications
Ankush Mehrotra
 
4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
Rohit Shrivastava
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming LanguagesTarun Sharma
 
Intro To Computer Hardware
Intro To Computer HardwareIntro To Computer Hardware
Intro To Computer Hardwareiarthur
 
Computer software application with specific reference to Microsoft word
Computer software application with specific reference to Microsoft wordComputer software application with specific reference to Microsoft word
Computer software application with specific reference to Microsoft wordOnasanya2014
 
Computer Hardware and Software Elements
Computer Hardware and Software ElementsComputer Hardware and Software Elements
Computer Hardware and Software Elements
Adetula Bunmi
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.
Md Hossen
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
sebrown
 
Computer Software
Computer SoftwareComputer Software
Computer Softwarenorzaini
 
Types of software
Types of softwareTypes of software
Types of softwarelatifah2001
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Hardware and software ppt
Hardware and software pptHardware and software ppt
Hardware and software pptshamitamurali
 

Viewers also liked (16)

Interpreted and compiled language
Interpreted and compiled languageInterpreted and compiled language
Interpreted and compiled language
 
computer hardware
computer hardwarecomputer hardware
computer hardware
 
Software complexity
Software complexitySoftware complexity
Software complexity
 
Overview of softwares and their applications
Overview of softwares and their applicationsOverview of softwares and their applications
Overview of softwares and their applications
 
4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
 
Intro To Computer Hardware
Intro To Computer HardwareIntro To Computer Hardware
Intro To Computer Hardware
 
Computer software application with specific reference to Microsoft word
Computer software application with specific reference to Microsoft wordComputer software application with specific reference to Microsoft word
Computer software application with specific reference to Microsoft word
 
Computer Hardware and Software Elements
Computer Hardware and Software ElementsComputer Hardware and Software Elements
Computer Hardware and Software Elements
 
types of software
types of softwaretypes of software
types of software
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
Computer Software
Computer SoftwareComputer Software
Computer Software
 
Types of software
Types of softwareTypes of software
Types of software
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Hardware and software ppt
Hardware and software pptHardware and software ppt
Hardware and software ppt
 

Similar to software development and programming languages

Software ppt
Software pptSoftware ppt
Software ppt
switipatel4
 
1.7 selection and use of appropriate software
1.7 selection and use of appropriate software1.7 selection and use of appropriate software
1.7 selection and use of appropriate softwaremrmwood
 
Sepm t1
Sepm t1Sepm t1
SPCC:System programming and compiler construction
SPCC:System programming and compiler constructionSPCC:System programming and compiler construction
SPCC:System programming and compiler construction
mohdumaira1
 
Computer Software and It's Development
Computer Software and It's DevelopmentComputer Software and It's Development
Computer Software and It's Development
Rabin BK
 
computer Unit 6
computer Unit 6computer Unit 6
computer Unit 6
Aqeel Rehman
 
computer software
computer softwarecomputer software
computer software
MdArifHossain30
 
labiqa'd.pptx
labiqa'd.pptxlabiqa'd.pptx
labiqa'd.pptx
02LabiqaIslam
 
Untitled document.pdf
Untitled document.pdfUntitled document.pdf
Untitled document.pdf
JulieRodriguez51
 
Computer system soft ware
Computer system soft wareComputer system soft ware
Computer system soft ware
Samuel Igbanogu
 
Ch1
Ch1Ch1
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introduction
Badar Waseer
 
What is computer software, difference between hardware and software, types of...
What is computer software, difference between hardware and software, types of...What is computer software, difference between hardware and software, types of...
What is computer software, difference between hardware and software, types of...
A. S. M. Shafi
 
System Software and Programming.pptx
System Software and Programming.pptxSystem Software and Programming.pptx
System Software and Programming.pptx
VanshikaPatel41
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
FarjanaAhmed3
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
bxuket
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
eqhnwl
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
ohtpwshx
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
pchgmf
 

Similar to software development and programming languages (20)

Software ppt
Software pptSoftware ppt
Software ppt
 
1.7 selection and use of appropriate software
1.7 selection and use of appropriate software1.7 selection and use of appropriate software
1.7 selection and use of appropriate software
 
Sepm t1
Sepm t1Sepm t1
Sepm t1
 
SPCC:System programming and compiler construction
SPCC:System programming and compiler constructionSPCC:System programming and compiler construction
SPCC:System programming and compiler construction
 
Computer Software and It's Development
Computer Software and It's DevelopmentComputer Software and It's Development
Computer Software and It's Development
 
computer Unit 6
computer Unit 6computer Unit 6
computer Unit 6
 
computer software
computer softwarecomputer software
computer software
 
labiqa'd.pptx
labiqa'd.pptxlabiqa'd.pptx
labiqa'd.pptx
 
Untitled document.pdf
Untitled document.pdfUntitled document.pdf
Untitled document.pdf
 
Computer system soft ware
Computer system soft wareComputer system soft ware
Computer system soft ware
 
Ch1
Ch1Ch1
Ch1
 
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introduction
 
What is computer software, difference between hardware and software, types of...
What is computer software, difference between hardware and software, types of...What is computer software, difference between hardware and software, types of...
What is computer software, difference between hardware and software, types of...
 
System Software and Programming.pptx
System Software and Programming.pptxSystem Software and Programming.pptx
System Software and Programming.pptx
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 

Recently uploaded

Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 

Recently uploaded (20)

Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 

software development and programming languages

  • 1. Introduction to Software Development and Programming Language Made By Prashant Kumar Amit Dahiya Siddhant Mohanpuria Pankaj Gautam
  • 2. 2 Content  Software  What is Software?  Types of Software  Why develop new Software?  Introduction to Software Development  Process Models  The Waterfall Model  Programming Language  System Software  Languages
  • 3. 3 Software  Why is it so important?  The economies of ALL developed nations are dependent on software.  9/11 highlights this with the destruction of the stock exchange computers  More and more of our daily lives are being supported/monitored by software  The engines of our cars  Our washing machines  Getting on a bus/train
  • 4. Operating System { Application The Computer 4 What is Software?  Software is the part of a computer that makes it useful.  In this module we are going to focus upon application software development.  Software is not tangible.  It is ‘conceptual’ so doesn’t wear out like hardware.  Software is a set of instructions (Programs).  These are acted upon (executed) by the hardware.  Software is also the documents that describe the operation and use of the programs. Hardware Software • Windows 98/2000/XP • Linux/Unix • Browser • Email • Word Processor
  • 5. 5 What does it do? Application Operating System Hardware  Generally software takes in data and processes it into information.  The many different types of software basically vary from where/whom data is acquired and where/whom information is sent/given. Data In Processing Information Out From the user/device /sub-system To the user/device /sub-system
  • 6. 6 Types of Software  Generic (Off-the-shelf) Applications Application Operating System Hardware  Well known packages such as word processors, accounting, image editing, … to name but a few.  Anyone is able to buy them.  Bespoke (Customized) Products  Systems that are built specifically for individual people/organisations.  They can also be generic software packages that are customized.  The high-cost nature of this type of software means it is not economically available to all.
  • 7. 7 Types of Software  System Software Application Operating System  This type of software exists at the Operating System layer. It is the operating system itself, compilers, editors….any kind of software that supports the execution and/or development of applications.  Application Software  Real-time Software  Programs that monitor/analyse/control real world events. A nuclear power plant cooling system is a good example. Hardware
  • 8. 8 Types of Software  Application Software  Business Software Application Operating System Hardware  Business Information Systems such as payroll, accounts and order management/tracking. There are off-the-shelf packages available for small businesses, however large businesses usually develop their own software.  Engineering and Scientific Software  Typically ‘number crunching’ programs for areas such as astronomy, molecular biology, weather forecasting and Computer Aided Design (CAD) for engineers. Generic programs do exist for some of these areas, however research usually requires new software to be developed.
  • 9. 9 Types of Software  Application Software  Embedded Software Application Operating System Hardware  Intelligent products such as cookers, washing machines and microwaves use embedded software that typically resides in a Read Only Memory (ROM). Due to the individual nature of such products this software is usually developed/tailored for each.  Personal Computer Software  Spreadsheets, word processors, computer graphics, multimedia and database applications are typical. This type of software is predominantly off the shelf but does go through many versions to remove bugs and increase functionality.
  • 10. 10 Types of Software  Application Software  Artificial Intelligence (AI) Software Application Operating System Hardware  AI is used to solve complex problems such as scheduling the maintenance of manufacturing equipment to minimise their shutdown. Other uses include pattern recognition (speech/visual). This software is typically newly developed for each application.  The application of computers through software development is only limited by our imaginations……(and its’ cost)
  • 11. 11 Why develop new Software?  As hardware will always eventually wear out, it will need to replaced.  Software on the other hand, doesn’t wear out in this traditional sense, but will become increasingly less useful as users requirements for it changes over time.  This means that software needs to be either periodically updated or replaced.  Understanding the process of software development is therefore paramount in keeping software systems/applications continually useful to its users.
  • 12. Introduction to the Software Development Process  There are many documented software development processes; too many to mention here. However, all software development processes can be categorised into: 12  Sequential Process Models  Where software is developed in a sequence of stages, typically: Analyse, Design, Code, Test.  Iterative Process Models  Where a sequential process model is repeated until the software is deemed correct. Typically used when the requirements for a piece of software are not fully known when development starts.
  • 13. The Waterfall Model (Sequential)  While other process models will be investigated in this module, we will be focussing upon the central stages of the Waterfall Model of Software Development. 13 Analysis Design Code Test Requirements Softwar e
  • 14. 14 Analysis (Waterfall Model)  The analysis phase of software development aims to develop a requirements specification that can be used to design the new software system.  While there is usually more to a requirements specification, we will be focussing on two of its main parts:  Functional Requirements  First, an abstract definition of what the system must do.  Then, a detailed set of functional requirements can be bulleted.  Non-functional Requirements  Usually ‘qualitative’ factors such as performance, efficiency and usability are described.
  • 15. 15 Design (Waterfall Model)  System design is concerned with how the system functionality is to be provided by the different components of the system. It involves:  Requirements Partitioning and Identification of Sub-systems (if any)  Assign requirements to sub-systems and specify their functionality  Define sub-system interfaces
  • 16. 16 Design (Waterfall Model)  For each sub-system, a detailed design document is then created.  It specifies the structural make-up of the sub-system and were necessary how data is stored, manipulated and communicated as well as how information is presented.  Design is often an iterative process, especially in a system made up of several sub-systems  As problems identified during the design of one sub-system can cause the re-design of another.  Design is typically specified using a mixture of textual descriptions and structural diagrams.
  • 17. 17 Coding (Waterfall Model)  Coding can be seen as simply interpreting the design documents into machine executable instructions.  There are many different programming languages  Factors including the application’s domain will help in making a choice of which programming language to use:  Platform (Hardware, Operating System, Network),  Programming Paradigm (Object-Oriented/ Function-based/ Event-based)  Experience of the ‘programmers’ available to do the coding.
  • 18. 18 Testing (Waterfall Model)  Testing should start as soon as the requirements specification is available.  A test plan document should be drawn up in parallel with the initial design of the system  The plan uses the requirements to provide an overall testing strategy for the complete system in order to satisfy the following conditions:  Verify – Have we built the system right?  Validate – Have we built the right system?
  • 19. 19 Testing (Waterfall Model)  As a more detailed design for each of the sub-systems is generated, specific testing strategies for each sub-system can be designed  When the code for a sub-system is complete, specific tests for each sub-system can be designed based upon the chosen strategy
  • 20. 20
  • 21. Programming Languages and Compilers are at the core of Computing All software is written in a programming language Learning about compilers will teach you a lot about the programming languages you already know. Compilers are big – therefore you need to apply all you knowledge of software engineering. The compiler is the program from which all other programs arise.
  • 22. Programming Language Concepts What is a programming language? Why are there so many programming languages? What are the types of programming languages? Does the world need new languages?
  • 23. What is a Programming Language A programming language is a set of rules that provides a way of telling a computer what operations to perform. A programming language is a set of rules for communicating an algorithm It provides a linguistic framework for describing computations
  • 24. What is a Programming Language English is a natural language. It has words, symbols and grammatical rules. A programming language also has words, symbols and rules of grammar. The grammatical rules are called syntax. Each programming language has a different set of syntax rules.
  • 25. Why Are There So Many Programming Languages  Programming languages have evolved over time as better ways have been developed to design them. First programming languages were developed in the 1950s Since then thousands of languages have been developed  Different programming languages are designed for different types of programs.
  • 26. Levels of Programming Languages High-level program class class Triangle Triangle { { ... float surface() ... float surface() return b*h/2; } return b*h/2; } Low-level program LOAD r1,b LOAD r1,b LOAD r2,h MUL r1,r2 DIV r1,#2 RET LOAD r2,h MUL r1,r2 DIV r1,#2 RET Executable Machine code 0001001001000101 0001001001000101 0010010011101100 10101101001... 0010010011101100 10101101001...
  • 27. What Are the Types of Programming Languages First Generation Languages Second Generation Languages Third Generation Languages Fourth Generation Languages Fifth Generation Languages
  • 28. First Generation Languages Machine language – Operation code – such as addition or subtraction. – Operands – that identify the data to be processed. Machine language is machine dependent as it is the only language the computer can understand. Very efficient code but very difficult to write.
  • 29. Second Generation Languages Assembly languages Symbolic operation codes replaced binary operation codes. Assembly language programs needed to be “assembled” for execution by the computer. Each assembly language instruction is translated into one machine language instruction. Very efficient code and easier to write.
  • 30. Third Generation Languages Closer to English but included simple mathematical notation. Programs written in source code which must be translated into machine language programs called object code. The translation of source code to object code is accomplished by a machine language system program called a compiler.
  • 31. Third Generation Languages (continued.) Alternative to compilation is interpretation which is accomplished by a system program called an interpreter. Common third generation languages FORTRAN COBOL C and C++ Visual Basic
  • 32. Fourth Generation Languages A high level language (4GL) that requires fewer instructions to accomplish a task than a third generation language. Used with databases Query languages Report generators Forms designers Application generators
  • 33. Fifth Generation Languages Declarative languages Functional(?): Lisp, Scheme, SML Also called applicative Everything is a function Logic: Prolog Based on mathematical logic Rule- or Constraint-based
  • 34. The principal paradigms Imperative Programming (C) Object-Oriented Programming (C++) Logic/Declarative Programming (Prolog) Functional/Applicative Programming (Lisp)
  • 35. Programming Languages Two broad groups Traditional programming languages  Sequences of instructions  First, second and some third generation languages Object-oriented languages  Objects are created rather than sequences of instructions  Some third generation, and fourth and fifth generation languages
  • 36. Traditional Programming Languages FORTRAN FORmula TRANslation. Developed at IBM in the mid-1950s. Designed for scientific and mathematical applications by scientists and engineers.
  • 37. Traditional Programming Languages (cont) COBOL COmmon Business Oriented Language. Developed in 1959. Designed to be common to many different computers. Typically used for business applications.
  • 38. Traditional Programming Languages (cont) C Developed by Bell Laboratories in the early 1970s. Provides control and efficiency of assembly language while having third generation language features. Often used for system programs. UNIX is written in C.
  • 39. Object-Oriented Programming Languages (cont) C++ It is C language with additional features. Widely used for developing system and application software. Graphical user interfaces can be developed easily with visual programming tools.
  • 40. Object-Oriented Programming Languages (cont) JAVA An object-oriented language similar to C++ that eliminates lots of C++’s problematic features Allows a web page developer to create programs for applications, called applets that can be used through a browser. Objective of JAVA developers is that it be machine, platform and operating system independent.
  • 41. Special Programming Languages Scripting Languages JavaScript and Vb Script Php and ASP Perl and Python Command Languages sh, csh, bash Text processing Languages Latex, Post Script
  • 42. Special Programming Languages (cont) HTML Hyper Text Markup Language. Used on the Internet and the World Wide Web (WWW). Web page developer puts brief codes called tags in the page to indicate how the page should be formatted.
  • 43. Special Programming Languages (cont) XML Extensible Markup Language. A language for defining other languages.
  • 44. Criteria in a good language design  Writability: The quality of a language that enables a programmer to use it to express a computation clearly, correctly, concisely, and quickly.  Readability: The quality of a language that enables a programmer to understand and comprehend the nature of a computation easily and accurately.  Reliability: The quality of a language that assures a program will not behave in unexpected or disastrous ways during execution.  Maintainability: The quality of a language that eases errors can be found and corrected and new features added.
  • 45. Criteria (Continued)  Generality: The quality of a language that avoids special cases in the availability or use of constructs and by combining closely related constructs into a single more general one.  Extensibility: The quality of a language that provides some general mechanism for the user to add new constructs to a language.