2. 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.
5. 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
6. 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.
7. FAILURE CURVE FOR HARDWARE
Time
“Infant
mortality” “Wear out”
Failure
rate
9. 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
10. 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
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 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
13. 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.
15. 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
16. 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.
17. 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.