0% found this document useful (0 votes)
61 views13 pages

Software Engineering: A Practitioner's Approach

The document discusses key concepts in software engineering. It defines software as a set of programs and data structures that provide desired functionality. Software serves both as a product that delivers information and a vehicle to enable other systems. The document contrasts programs and software, and outlines characteristics of software like being engineered and not wearing out. It also discusses different types of software applications and challenges in legacy systems. Finally, it debunks common myths among management, customers, and practitioners regarding software development.

Uploaded by

Shruti Singhal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views13 pages

Software Engineering: A Practitioner's Approach

The document discusses key concepts in software engineering. It defines software as a set of programs and data structures that provide desired functionality. Software serves both as a product that delivers information and a vehicle to enable other systems. The document contrasts programs and software, and outlines characteristics of software like being engineered and not wearing out. It also discusses different types of software applications and challenges in legacy systems. Finally, it debunks common myths among management, customers, and practitioners regarding software development.

Uploaded by

Shruti Singhal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

Software Engineering:

A Practitioner's Approach, 6/e


Reference Book:- R.S. Pressman
Unit- 1
Introduction To Software Engineering

“ Software engineering discusses systematic and cost-


effective software development approaches”
All the past innovations and experiences of writing
good quality programs in cost-effective & efficient way
have been systematically organized into a body of
knowledge known as software engineering.
Difference between a Program and a
Software
 A Software is a set of many
 Program is a set of programs developed to support
instructions to wide functionalities
perform a desired function  Software product is developed by
 Programs are developed by a group of engineers and have
individuals for their personal multiple users
use  They are too large in size and
 Small in size and have limited have wide functionality as per
functionality requirements
 Programs lack good user-  Software product have good user
interface and proper interface, proper user manuals
documentation and good documentation support
 Programs lack systematic  Software product is
planning and implementation systematically designed, carefully
implemented and thoroughly
tested
Software’s Dual Role
 Software is a product
 Delivers computing potential
 Produces, manages, acquires, modifies, displays, or
transmits information
 Software is a vehicle for delivering a product
 Supports or directly provides system functionality
 Controls other programs (e.g., an operating system)
 Effects communications (e.g., networking software)
 Helps build other software (e.g., software tools)
Based on its dual role we can say
Software is(1) instructions that when executed
provide desired features, function & performance(2)
data structures that enable the programs to adequately
manipulate information & (3) documents that
describe the operation & use of the programs.
Characteristics of Software

 software is engineered
 software doesn’t wear out
 software is custom built
Wear vs. Deterioration

increased failure
rate due to side effects
Failure
rate

change
actual curve

idealized curve

Time
Failure curve for hardware

Infant Mortality
Wear Out

Failure rate

Time
Software Applications

 system software
 application software
 engineering/scientific software
 embedded software
 product-line software
 WebApps (Web applications)
 AI software
Legacy Software

Why must it change?


 software must be adapted to meet the needs of
new computing environments or technology.
 software must be enhanced to implement new
business requirements.
 software must be extended to make it
interoperable with other more modern systems
or databases.
 software must be re-architected to make it
viable within a network environment.
Software Myths

Management myths
 Book of standards and procedures provide the people all
information they want
 If we get behind schedule, we can add more programmers and
catch up
 If I decide to outsource the software project, I can just relax
and let that firm build it
Customer myths
 A general statement of objectives is sufficient to begin writing
programs
 Project requirements continually change, but change can be
easily accomodated because software is flexible
Practitioner’s myths
 Once we write the program and get it to work, our job is done
 There is no way of assessing program quality until it executes
 The only deliverable work product for a successful project is
the working program
 Software engineering will make us create unnecessary
documentation and will invariably slow us down

You might also like