[go: up one dir, main page]

0% found this document useful (0 votes)
221 views30 pages

Unit 1 Software Engineering: © All Rights Reserved

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 30

Unit 1

Software Engineering
Introduction

© All rights reserved


Learning Outcomes
After studying this course, you will be able to.
• CO-1. Explain the basics of SE and ethical and professional issues of
software engineers [L-1]
• CO-2. Discuss the phases and activities of SDLC and compare different
models including waterfall, incremental, prototyping, and spiral. [L-2]
• CO-3. Prepare designs using data flow diagrams and unified modeling
language tools for function and object-oriented approaches [L-3]

© All rights reserved


Learning Outcomes

After studying this course, you will be able to.


• CO-4. Develop test cases, perform testing, and analyze
activities in the maintenance of software [L-4]
• CO-5. Design software project plans, size, and cost metrics,
and assess risks in the software development. [L-5]

© All rights reserved


Software

• Software refers to the computer programs and related

documentation developed for a specific client or for a general

market.
• The software consists of computer programs, data structures, and

documentation.
• Examples of Software: Online Reservation System, Windows

Operating System, VLC Movie Player, Firefox, Google Chrome, etc.


© All rights reserved
Program and Software

• A program is a set of instructions written in a programming language used


to execute a specific task or function.
• Software is a collection of several programs and other procedures and
documentation.
• A program consists of a set of instructions that are coded in a
programming language like c, C++, PHP, Java, etc.
• Software consists of bundles of programs and data files. Programs in
specific software use these data files to perform dedicated types of tasks.

© All rights reserved


Program versus Software
• Program has limited functionality and fewer
features.
• Software has lots of functionality and features such
as GUI, input/output data, process, etc.
• A program may not be software but software can be
a program.

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.

Generic products: Software sold in the open market is a


generic product. E.g., packages for preparing drawings,
typesetting, accounting, hospital management-related
tools, etc.

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.

Software Products are produced using Software


Engineering!

10
SUB: BCA-401 UNIT 1
Characteristics of Software
• Maintainability: We should be able to do changes in the
software based on business needs.

• Dependability: Software should be reliable and should not


cause damage or financial loss during failure.

• Security: Unauthorized or unknown persons should not be


allowed to use the software as they can create harm to the
system.
11
SUB: BCA-401 UNIT 1
Characteristics of Software
• Efficiency: Software should be quick, consume less
memory, and should not waste computer resources.

• Acceptability: All types of users must be able to use the


software. It should be easy to understand, use and
install on different systems.

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

Stand-alone Application systems running on local computers, such as a PC.


applications
Interactive These are applications executed on remote computers and accessed by users from
transaction-based their PCs or terminals. e-business systems, cloud-based services, mail, and photo
applications sharing. Interactive applications using a large data store that is accessed and updated
in each transaction

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

Entertainment SE systems are used in personal works and entertainment.


systems
Systems for modeling SE is used in developing computation-intense, parallel complex software used by
and simulation scientists and engineers, etc.

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

You might also like