THE NATURE OF SOFTWARE
INTRODUCTION
Computer Software
Software is the product or set of instructions.
Anything that can be stored electronically.
Software Engineering
Software engineering encompasses a process, a collection of
methods (practice) and an array of tools that allow professionals
to build high quality computer software.
SOFTWARE EXAMPLES
Software’s Dual Role
Software is a product
Software is a vehicle for delivering a product
DEFINITIONS
Software is defined as –
 Instructions
Programs that when executed provide desired
function
 Data structures
Enable the programs to manipulate information
 Descriptive information (documents)
Describe the operation and use of the programs
Characteristics of Software
Software is developed or engineered, it is not
manufactured in the classical sense.
Software does not wear out. However it deteriorates
due to change.
Although the industry is moving towards component
based construction, most software continues to be
custom built.
FAILURE CURVE FOR HARDWARE
Time
“Infant
mortality” “Wear out”
Failure
rate
FAILURE CURVE FOR SOFTWARE
Software Application Domains
System software
Collection of programs written to service other programs
Application software
Stand-alone programs that solve a specific business need
Engineering /scientific software
Number crunching algorithm
Embedded software
Resides within a product or system and used to implement and
control features and functions for the end user and for the system
itself
Contd..
Product-line software
Designed to provide a specific capability for use by many
different customers (eg. Word processing, spreadsheet,
multimedia, DB management system, etc)
Web-applications
Called “WebApps”, this network centric software category
spans a wide array of applications
Artificial intelligence software
Makes use of non - numerical algorithms to solve complex
problems
New Challenges
Open – world computing
Wireless networks and distributed computing
Net sourcing
Web as a computing engine and content provider
Simple architecture across www
Open source
Free source codes open to the computing community
Legacy Software
Legacy software are older programs that are developed decades
ago and have been continually modified to meet changes in
business requirements and computing platforms
The quality of legacy software is poor because it has inextensible
design, convoluted code, poor and nonexistent documentation, test
cases and results that are not achieved
Legacy Software
As time passes legacy systems evolve due to following reasons:
The software must be adapted to meet the needs of new computing
environment or technology.
The software must be enhanced to implement new business
requirements.
The software must be extended to make it interoperable with more
modern systems or database
The software must be re-architected to make it viable within a
network environment.
MINDMAP
SUMMARY
• The nature of software
 Characteristics of software
 Software is developed or engineered
 Software doesn't wear-out
 Software continues to be custom built
 Software application domains
 System software
 Application software
 Engineering/scientific software
 Embedded software
 Product-line software
 Web applications
 Artificial Intelligence software
 New challenges
 Open world computing
 Net sourcing
 Open source
 Legacy software
Stimulating Questions
Can you differentiate computer program and
computer software?
Ans:
1) Program is a set of instructions whereas s/w is a
set of programs i.e.,
2) A computer program is piece of programming
code which performs a well defined task where
as software includes programming code, its
documentation and user guide.
Contd..
When you know programming, what is the need to
learn software engineering concepts?
Ans:
• A person who knows how to build a wall may not be good at
building an entire house. Likewise, a person who can write
programs may not have knowledge of other concepts of
Software Engineering. The software engineering concepts
guide programmers on how to assess requirements of end
user, design the algorithms before actual coding starts,
create programs by coding, testing the code and its
documentation.

1.1 The nature of software.ppt

  • 1.
    THE NATURE OFSOFTWARE
  • 2.
    INTRODUCTION Computer Software Software isthe product or set of instructions. Anything that can be stored electronically. Software Engineering Software engineering encompasses a process, a collection of methods (practice) and an array of tools that allow professionals to build high quality computer software.
  • 3.
  • 4.
    Software’s Dual Role Softwareis a product Software is a vehicle for delivering a product
  • 5.
    DEFINITIONS Software is definedas –  Instructions Programs that when executed provide desired function  Data structures Enable the programs to manipulate information  Descriptive information (documents) Describe the operation and use of the programs
  • 6.
    Characteristics of Software Softwareis developed or engineered, it is not manufactured in the classical sense. Software does not wear out. However it deteriorates due to change. Although the industry is moving towards component based construction, most software continues to be custom built.
  • 7.
    FAILURE CURVE FORHARDWARE Time “Infant mortality” “Wear out” Failure rate
  • 8.
  • 9.
    Software Application Domains Systemsoftware Collection of programs written to service other programs Application software Stand-alone programs that solve a specific business need Engineering /scientific software Number crunching algorithm Embedded software Resides within a product or system and used to implement and control features and functions for the end user and for the system itself
  • 10.
    Contd.. Product-line software Designed toprovide a specific capability for use by many different customers (eg. Word processing, spreadsheet, multimedia, DB management system, etc) Web-applications Called “WebApps”, this network centric software category spans a wide array of applications Artificial intelligence software Makes use of non - numerical algorithms to solve complex problems
  • 11.
    New Challenges Open –world computing Wireless networks and distributed computing Net sourcing Web as a computing engine and content provider Simple architecture across www Open source Free source codes open to the computing community
  • 12.
    Legacy Software Legacy softwareare older programs that are developed decades ago and have been continually modified to meet changes in business requirements and computing platforms The quality of legacy software is poor because it has inextensible design, convoluted code, poor and nonexistent documentation, test cases and results that are not achieved
  • 13.
    Legacy Software As timepasses legacy systems evolve due to following reasons: The software must be adapted to meet the needs of new computing environment or technology. The software must be enhanced to implement new business requirements. The software must be extended to make it interoperable with more modern systems or database The software must be re-architected to make it viable within a network environment.
  • 14.
  • 15.
    SUMMARY • The natureof software  Characteristics of software  Software is developed or engineered  Software doesn't wear-out  Software continues to be custom built  Software application domains  System software  Application software  Engineering/scientific software  Embedded software  Product-line software  Web applications  Artificial Intelligence software  New challenges  Open world computing  Net sourcing  Open source  Legacy software
  • 16.
    Stimulating Questions Can youdifferentiate computer program and computer software? Ans: 1) Program is a set of instructions whereas s/w is a set of programs i.e., 2) A computer program is piece of programming code which performs a well defined task where as software includes programming code, its documentation and user guide.
  • 17.
    Contd.. When you knowprogramming, what is the need to learn software engineering concepts? Ans: • A person who knows how to build a wall may not be good at building an entire house. Likewise, a person who can write programs may not have knowledge of other concepts of Software Engineering. The software engineering concepts guide programmers on how to assess requirements of end user, design the algorithms before actual coding starts, create programs by coding, testing the code and its documentation.