SlideShare uma empresa Scribd logo
1 de 46
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

Mais conteúdo relacionado

Mais procurados

Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentationfazli khaliq
 
History of Programming Language
History of Programming LanguageHistory of Programming Language
History of Programming Languagetahria123
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programmingManoj Tyagi
 
Streams In C# Tutorial
Streams In C# TutorialStreams In C# Tutorial
Streams In C# TutorialSimplilearn
 
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
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
What is programming what are its benefits
What is programming  what are its benefits What is programming  what are its benefits
What is programming what are its benefits Vijay Singh Khatri
 
Theory of programming
Theory of programmingTheory of programming
Theory of programmingtcc_joemarie
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languageseducationfront
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPTDhivya T
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to ProgrammingChaffey College
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming LanguagesJuhi Bhoyar
 
Ascii and Unicode (Character Codes)
Ascii and Unicode (Character Codes)Ascii and Unicode (Character Codes)
Ascii and Unicode (Character Codes)Project Student
 
Chapter 1 - An Introduction to Programming
Chapter 1 - An Introduction to ProgrammingChapter 1 - An Introduction to Programming
Chapter 1 - An Introduction to Programmingmshellman
 

Mais procurados (20)

Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentation
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
History of Programming Language
History of Programming LanguageHistory of Programming Language
History of Programming Language
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Streams In C# Tutorial
Streams In C# TutorialStreams In C# Tutorial
Streams In C# Tutorial
 
Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)
 
Programming Fundamentals
Programming FundamentalsProgramming Fundamentals
Programming Fundamentals
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
What is programming what are its benefits
What is programming  what are its benefits What is programming  what are its benefits
What is programming what are its benefits
 
Theory of programming
Theory of programmingTheory of programming
Theory of programming
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
 
software engineering
software engineeringsoftware engineering
software engineering
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Introduction to programming languages
Introduction to programming languagesIntroduction to programming languages
Introduction to programming languages
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to Programming
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming Languages
 
Ascii and Unicode (Character Codes)
Ascii and Unicode (Character Codes)Ascii and Unicode (Character Codes)
Ascii and Unicode (Character Codes)
 
Chapter 1 - An Introduction to Programming
Chapter 1 - An Introduction to ProgrammingChapter 1 - An Introduction to Programming
Chapter 1 - An Introduction to Programming
 

Destaque

computer hardware
computer hardwarecomputer hardware
computer hardwareJelz JZ
 
Overview of softwares and their applications
Overview of softwares and their applicationsOverview of softwares and their applications
Overview of softwares and their applicationsAnkush Mehrotra
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languagespy7rjs
 
4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languagesRohit 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 ElementsAdetula 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 Languagessebrown
 
Computer Software
Computer SoftwareComputer Software
Computer Softwarenorzaini
 
Types of software
Types of softwareTypes of software
Types of softwarelatifah2001
 
Hardware and software ppt
Hardware and software pptHardware and software ppt
Hardware and software pptshamitamurali
 

Destaque (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
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
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
 
Hardware and software ppt
Hardware and software pptHardware and software ppt
Hardware and software ppt
 

Semelhante a software development and programming languages

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
 
SPCC:System programming and compiler construction
SPCC:System programming and compiler constructionSPCC:System programming and compiler construction
SPCC:System programming and compiler constructionmohdumaira1
 
Computer Software and It's Development
Computer Software and It's DevelopmentComputer Software and It's Development
Computer Software and It's DevelopmentRabin BK
 
Computer system soft ware
Computer system soft wareComputer system soft ware
Computer system soft wareSamuel Igbanogu
 
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introductionBadar 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.pptxVanshikaPatel41
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩ohtpwshx
 
香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharehcslenk
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩eqhnwl
 

Semelhante a 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)
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 

Último

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 

Último (20)

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 

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.