Unit 1 Software Engineering: © All Rights Reserved
Unit 1 Software Engineering: © All Rights Reserved
Unit 1 Software Engineering: © All Rights Reserved
Software Engineering
Introduction
market.
• The software consists of computer programs, data structures, and
documentation.
• Examples of Software: Online Reservation System, Windows
6
SUB: BCA-401 UNIT 1
Program versus Software
• Software takes relatively more time to build/make
when compared to a program.
• Program development approach may be un-
procedural, unorganized, and unplanned.
• Software development approach is systematic,
organized, and very well planned.
7
SUB: BCA-401 UNIT 1
Program versus Software
• The size of a program may range from kilobytes (KB) to
megabytes (MB).
• The size of software may range from megabytes (MB) to
gigabytes (GB) or more.
• Program may have patchy documentation mostly technical.
• Software has Comprehensive documentation including
user manuals.
8
SUB: BCA-401 UNIT 1
Software Product
When software is developed for a specific requirement then
it is known as a software product. There are two types.
9
SUB: BCA-401 UNIT 1
Software Product
Customized products: Software developed for a specific
customer is custom-made or bespoke software. E.g., airline
traffic control, the control system in customer.
10
SUB: BCA-401 UNIT 1
Characteristics of Software
• Maintainability: We should be able to do changes in the
software based on business needs.
12
SUB: BCA-401 UNIT 1
Importance of Software
The modern world is unimaginable without software.
Software has its presence across various industries.
Software is useful in manufacturing, utilities, distribution,
financial, education, and entertainment among numerous
sectors.
13
SUB: BCA-401 UNIT 1
Types of Software
System Software: Operating System, Text Editors,
Compilers
Programming Software: Tools for writing computer
programs, such as Java, Python, C, C++, etc.
Application Software: Software for a particular task such
as accounting, data processing, games, etc.
14
SUB: BCA-401 UNIT 1
Types of Software
Scientific / Engineering Software
Embedded Software
Application Software
Web application
Artificial intelligence software
15
SUB: BCA-401 UNIT 1
Software Applications
Software is in our daily life!
GPS
What's app
Instagram
Traffic lights, fire alarms, printing
Home and Office automation
Security Systems
16
SUB: BCA-401 UNIT 1
Nature of Software
Software systems lack physical constraints.
Software can be extremely complex to create, difficult to
understand, and expensive to change.
Software development is still a complex and challenging
task.
17
SUB: BCA-401 UNIT 1
Nature of Software
• Software applications are getting larger, and more complex,
and the demands change.
• Systems must be built and delivered more quickly.
• In many places ad-hoc approach to software development
is widespread.
• Therefore, software tends to be unreliable, and expensive
to maintain and use.
18
SUB: BCA-401 UNIT 1
Necessity of Engineering
• Engineering approach to develop and manage software is
required.
• This entails education and training in software engineering
methods.
• Thanks to software engineering achievements like space
travel and the Internet, e-Commerce, banking, and other
services we take for granted today are possible.
19
SUB: BCA-401 UNIT 1
Origin of Software Engineering [1/2]
• Term ‘software engineering’ was first proposed in 1968 at a
NATO conference held to discuss what was then called the
software crisis.
• It became clear that individual approaches to program
development did not scale up to large and complex
software systems.
20
SUB: BCA-401 UNIT 1
Origin of Software Engineering [2/2]
• Software was unreliable, cost more than expected, and was
delivered late.
• Software engineering techniques and methods were
developed, such as structured programming, information
hiding, and object-oriented development.
• Tools and standard notations were developed and are now
extensively used.
21
SUB: BCA-401 UNIT 1
Software Crisis
• Software products are difficult to alter, debug, and enhance; use
resources non-optimally; often fail to meet the user requirements; are
far from being reliable; frequently crash, and are often delivered late.
• Many factors such as larger problem sizes, lack of adequate training
in software engineering, increasing skill shortage, and low
productivity improvements have created a software crisis.
• Ineffective development of the product and inefficient resource
usage, lead to more cost and time.
22
SUB: BCA-401 UNIT 1
Software Crisis
• The satisfactory solution to the present software crisis can
come from a spread of software engineering practices
among the engineers with advancements to the software
engineering discipline itself.
• A good software can be developed with the use of
systematic software engineering.
23
SUB: BCA-401 UNIT 1
Software Engineering
A detailed study of engineering to the design, development,
and maintenance of software is known as Software
Engineering.
24
SUB: BCA-401 UNIT 1
Definition
Software Engineering is a branch of engineering related to:
• Collecting customers’ requirements
• Preparing the design
• Writing programs or code
• Testing
• Maintenance
25
SUB: BCA-401 UNIT 1
SE Applications
Type of Application Description
Embedded control Software systems for controlling and managing hardware devices. Software in the
systems microwave, washing machine, cell phone, etc.
Batch processing Software systems designed to process data in large batches. Banking transactions
systems where many individual inputs are processed to generate outputs
26
SUB: BCA-401 UNIT 1
SE Applications
Type of Application Description
Batch processing Software systems designed to process data in large batches. Banking transactions where
systems many individual inputs are processed to generate outputs
Data collection Systems are used to collect data from the environment for processing.
systems
Systems of systems Systems that are composed of several other software systems. For example, MS Office
365 includes the word, spreadsheets, ppts, etc.
27
SUB: BCA-401 UNIT 1
Software Development Life Cycle
The major software development activities include
gathering requirements, software design, and
implementation, code testing, documentation, and
maintenance.
There are various ways in which the above activities can
be done to achieve the final software. These are known as
software development models.
28
SUB: BCA-401 UNIT 1
References
Pressman, Roger S., “Software Engineering: A
Practitioner’s Approach Ed. Boston: McGraw Hill, 2001,
2004.
Jalote, Pankaj, “Software Engineering Ed.2”, New Delhi:
Narosa 2002.
Sommerville, Ian, “Software Engineering”, AWL, 2000
Fairly, “Software Engineering”, New Delhi: TMH.
29
SUB: BCA-401 UNIT 1
Review Questions
Define software engineering and explain its need.
What are the types of software?
List a few applications of software.
What is a software development life cycle?
Identify the necessary characteristics of software.
30
SUB: BCA-401 UNIT 1