0% found this document useful (0 votes)
1 views

Unit 1 Introduction

Software is defined as computer programs along with their documentation and operating procedures, essential for their correct operation. It is categorized into various types, including system software, business software, and embedded software, and is characterized by attributes such as maintainability, dependability, and usability. Software engineering is the discipline focused on the systematic production of quality software, addressing challenges like legacy systems and the need for faster delivery times.

Uploaded by

pathakuttam110
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Unit 1 Introduction

Software is defined as computer programs along with their documentation and operating procedures, essential for their correct operation. It is categorized into various types, including system software, business software, and embedded software, and is characterized by attributes such as maintainability, dependability, and usability. Software engineering is the discipline focused on the systematic production of quality software, addressing challenges like legacy systems and the need for faster delivery times.

Uploaded by

pathakuttam110
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Software

Engineerin
g
BCA IV SEMESTER-TU

What is software?

Computer programs and


associated
documentation
Compiled by: Si S
2

What is software?

Programs

Documentation
Operating Procedures
Software Program+Documentation+Operating
Procedures

Components of software

Compiled by: Si S
3

Documentation consists of different


types of manuals are

Documentation

Manuals
Analysis /Specification

Design

Implementation

Testing

V V
Formal Specification
Context-

Diagram

Data Flow Diagrams

Flow Charts

Entity-Relationship Diagram

Source Code Listings


Cross-Reference Listing

Test Data

-Test Results

List of documentation manuals

Compiled by: Sail Su


4

Documentation consists of
different types of manuals are

Operating Procedures
System Overview

User
Beginner's Guide
Manuals
Tutorial

Reference Guide
Operational Manuals
Installation Guide

System
Administration Guide

List of operating procedure manuals.


Compiled by: Sail Su
5

Conclusively...

Software
is a computer program, its associated
documents and configuration data which is
needed to make these programs operate
correctly. A software system usually consists
of a number of separate programs,
configuration files which are used to set up
these programs, system documentation which
describes the structure of the system and user
documentation which explains how to use the
system.

Compiled by: Si S
6

Software Applications

•System software
Real-time software

Business software

• Engineering and scientific


software
Embedded software

Personal computer software


• Web-based software

Artificial intelligence software

Compiled by: Si S
7

The Changing Nature of


Software
System Software
Real
Time Software

Engineering
and Scientific Software

Web based
Software

Compiled by: Si S

Embedded Software

Business
Software

Artificial
Intelligence Personal
Software Computer
Software

Program Vs. Software


Product
Program
Software Product

Programs are developed by individuals for


their Software products are usually
developed by a
personal use.

Small in size and have limited functionality


group of software engineers and have
multiple
users.

Medium or large size program and have


complex functionality.
The author of a program himself uses and
Software products are too large to be
developed by any individual
programmer. A group of
maintains his programs.
software engineers are involved in the
development.
Program usually do not have good
user-interface A software product not only
consists of the and lack proper documentation

Compiled by: SaS

program code but also of all the associated


documents such as SRS document, design
document, test document and users' manuals.
9

Software products
Software Products may be developed for a
particular customer or may be developed for a
general market. There are two types of software
products:

Generic products:
These are stand-alone systems which are
produced by a development organization and
sold on the open market to a range of different
customers. Sometimes they are referred to as
shrink-wrapped software. Examples:
databases, word processors, drawing
packages and project management tools.

• Bespoke (or customised) products:


These are systems developed for a single
customer according to their specification.
Examples: control systems for electronic
devices, systems written to support a particular
business process, air traffic control systems
etc.

Compiled by: Si S
10

Software Product
Software product is a product
designated for
delivery to the user

source

codes
documents
reports

manuals
object codes
plans

data

test suites

Compiled by: Sail Sh

test results
prototypes ctivate
11
o to Setting

Characteristics of
Software
Software is a logical rather than a physical
system element. Therefore, software has
characteristics that are considerably different
than those of hardware. When hardware is built,
the human creative process (analysis, design,
construction, testing) is ultimately translated into
a physical form.

• Software is developed or engineered; it is not


manufactured in the classical sense.
• Software does not "wear out" but it does deteriorate.

Most software continues to be custom-built.


(Flexible & Reusable)
Compiled by: Si S
12

Software Characteristics:

✓ Software does not wear out.


Failure rate
Infant

mortality

Useful life phase

Time
Wear out
phase

Software Characteristics:

✓ Software does deteriorate


Failure Rate
Failure Curve for Software

Result of
Side Effects

Change
Actual

Idealized

Time

Software Characteristics:
Comparison of constructing a bridge
vis-à-vis writing a program.
Sr.
Constructing a bridge
No

1.
The problem is well understood

2.
There are many existing bridges

3.

4.

5.

6.

7.
The requirement for a bridge typically do not change much during
construction The strength and stability of a bridge can be calculated
with reasonable precision When a bridge collapses, there is a detailed
investigation and report

Engineers have been constructing bridges for thousands of years

Materials (wood, stone,iron, steel) and techniques (making joints in


wood, carving stone, casting iron) change slowly.
Writing a program
Only some parts of the problem are understood, others are not
Every program is different and designed for special applications.
Requirements typically change during all phases of development.
Not possible to calculate correctness of a program with existing
methods.
When a program fails, the reasons are often unavailable or even
deliberately concealed. Developers have been writing programs for 50
years or so.

Hardware and software changes rapidly.

Attributes of good
software
The software should deliver the required
functionality and performance to the user
and should be maintainable, dependable and
usable.
•Maintainability
Software must evolve to meet changing needs of
the customers. This is a critical attribute
because software change is an inevitable
consequence of a changing business
environment.
•Dependability
Software must be trustworthy. Dependability
has a range of characteristics, including
reliability, security and safety. Dependable
software should not cause physical or
economical damage in the event of system
failure.
Efficiency
It refers to the ability of the software to use
system resources in the most effective and
efficient manner. software should make effective
use of storage space and executive
command as per desired timing
requirement. Efficiency therefore includes
responsiveness, processing time, and memory
utilization,
etc.

•Usability
16

Software must be usable by the users for which


it was designed, this means it should have an
appropriate user interface and adequate
documentation.

Other Attributes [Related ]


of good
software
•Functionality
It refers to the degree of performance of the
software against its intended
purpose.

•Reliability
A set of attribute that bear on capability of
software to maintain its level of performance
under the given condition for a stated period of
time.
Portability
A set of attribute that bear on the ability of
software to be transferred from one environment
to another, without or minimum changes.
•Robustness

It refers to the degree to which the software can


keep on functioning in spite of being provided
with invalid data.
•Integrity
It refers to the degree to which Unauthorized
Access to the software data can be prevented.
Compiled by: STS
17

What is software
engineering?

Software engineering is an engineering


discipline which is concerned with all
aspects of software production.

Software engineers should


adopt a systematic and organised approach
to their work

use appropriate tools and techniques


depending on
the problem to be solved,
the development constraints and
use the resources available

Compiled by: Skill S


18

What is software
engineering?
At the first conference on software engineering
in 1968, Fritz Bauer defined software
engineering as "The establishment and use
of sound engineering principles in order to
obtain economically developed software that is
reliable and works efficiently on real machines".

Stephen Schach defined the same as "A


discipline whose aim is the production of quality
software, software that is delivered on time,
within budget, and that satisfies its
requirements".

Both the definitions are popular and


acceptable to majority. However, due to
increase in cost of maintaining software,
objective is now shifting to produce quality
software that is maintainable, delivered on
time, within budget, and also satisfies its
requirements.
Compiled by: STS-
19

Differences between software


engineering and computer science
Computer science is concerned with theory and
fundamentals; software engineering is
concerned with the practicalities of developing
and delivering useful software.
Computer science theories are currently
insufficient to act as a complete underpinning for
software engineering.

Differences between software


engineering
software engineering and system
engineering
System engineering is concerned with all
aspects of computer-based systems
development including hardware, software and
process engineering. Software engineering is
part of this process.

System engineers are involved in system


specification, architectural design, integration
and deployment.

Compiled by: STIS.


20

Generic phases of Software


Engineering
1. Definition phase 2. Development Phase 3.
Support Phase

Definition phase
• It focus on WHAT i.e. to identify what is to be
processed
• What functions and performance are desired?
• What design constraints exist?
• What validation criteria are required to define a
successful system?
Identify the key requirements of the systems
and the software?
It perform three major tasks as
• Information engineering
Software project planning Requirement analysis

Compiled by: Si S
21

CTD...

Development phase
• It focus on HOW i.e. to define how data are to be
structured.

How function is to be implemented within a


software
architecture?
How procedural details are to be implemented?
How interface are to be characterized?

How the design will be translated into a


programming language How testing will be
performed?
It perform three specific technical tasks as
• Software design
Code generation
• Software testing

Compiled by: Si S
22

CTD...

Support
It focus on change associated with error
correction, adaptations required as the software
environment evolves, and changes due to
enhancements brought by the changing customer
requirements.
Four types of changes are encountered during
the support phases:
Correction: Use of corrective maintenance for
any error encountered
during support.
Adaptation : Use of adaptive maintenance to
accommodate changes in the
external environment. Example: Change in the
CPU, OS,
Business rules, external product characteristics)
□ Enhancement: Use of perfective
maintenance that extends the software
beyond its original functional requirements.
Prevention: Use of preventive maintenance
by conducting software re- engineering to
avoid software deterioration and to correct, adopt or
enhance its features

Compiled by: Si S
23

Key Challenges facing


software engineering
Software Engineering in the 21st century faces
three key challenges, i.e., Coping with legacy
systems, coping with increasing diversity
and coping with demands for reduced delivery
times.
• Legacy systems
Old, valuable systems which hold the majority of
larger software systems in use must be
maintained and updated
•Heterogeneity
Systems are distributed and include a mix of
hardware and software. The heterogeneity
challenge is the challenge of developing
techniques to build dependable software, which
is flexible enough to cope with this heterogeneity.
• Delivery
There is increasing pressure for faster
delivery of software unlike time- consuming
traditional software engineering techniques. The
delivery challenge is the challenge of
shortening delivery times for large and
complex systems without compromising
system quality.

Compiled by: SIS. -


24
8

Software Myths
Software standards provide software
engineers with all the guidance they need. The
reality is the standards may be outdated and
rarely referred to.

People with modern computers have all the


software development tools. The reality is that
CASE tools are more important than hardware to
producing high quality software, yet they are
rarely used effectively.

Adding people is a good way to catch up


when a project is behind schedule. The reality is
that adding people only helps the project
schedule when is it done in a planned,
well-coordinated manner.

Giving software projects to outside parties to


develop solves software project management
problems. The reality is people who can't
manage internal software development
problems will struggle to manage or control
the external development of software too.

Compiled by: Si S
25

Myth Ctd...
▪A general statement of objectives from the
customer is all that is needed to begin a
software project. The reality is without constant
communication between the customer and the
developers it is impossible to build a software
product that meets the customer's real needs.

•Project requirements change continually and


change is easy to accommodate in the software
design. The reality is that every change has
far-reaching and unexpected consequences.
Changes to software requirements must be
managed very carefully to keep a software
project on time and under budget.
• Once a program is written, the software
engineer's work is finished. The reality is that
maintaining a piece of software is never done,
until the software product is retired from service.
• There is no way to assess the quality of a
piece of software until it is actually running on
some machine. The reality is that one of the
most effective quality assurance practices
(formal technical reviews) can be applied to any
software design product and can serve as a
quality filter very early in the product life cycle.
Compiled by: SIS. ·
26

Evolving role of software


Software takes on a dual role. It is a
product and the vehicle for delivering a
product. As a product, it delivers the
computing potential embodied by computer
hardware or, a network of computers that are
accessible by local hardware. Software is an
information transformer-producing,
managing, acquiring, modifying, displaying,
or transmitting information. As the vehicle
used to deliver the product, software acts as the
basis for the control of the computer (
operating systems), the communication of
information( networks), and the creation and
control of other programs (software tools and
environments).
Software delivers the most important product of
our time- information. Software transforms
personal data (e.g., an individual's financial
transactions) so that the data can be more useful
in a local context; it manages business
information to enhance competitiveness; it
provides a gateway to worldwide information
networks (Internet) and provides the means for
acquiring information in all of its form.

Compiled by: SmS T


27

Summary

Software has become a key element in


the evolution of computer based
systems and products. Over the past
50 years, software has evolved from a
specialized problem solving and
information analysis tool to an industry
in itself. Since software is composed of
programs, data and documents; each of
these items comprises a configuration
that is created as part of the software
engineering process. The intent of
software engineering is to provide a
framework for building software with
higher quality. Software engineering
is the systematic collection of
decades of programming experience
together with the innovations made by
researchers towards developing
high-quality software in a cost effective
manner.
Compiled by: Sunil Sharma
28

Assignment Questions
Q1. Software is both a product and a vehicle
for delivering a product. Explain.

Q2. Software is engineered, not manufactured.


Explain

Q3. "Software does not wear, but it does


deteriorate". Describe this statement

with reference to software characteristics.

Q4. Define Software and explain its characteristics


and also mention the various

types of software product.

Q5. Explain some of the Software applications you


have noticed.
Q6. Compare and contrast programs with
Software products.

Q7. What are the various software myth and


explain what should be the reality.

Q8. Explain attributes of good software in


detail.

Q9. What are the key challenges facing


software engineering?

Q10.Differentiate between Computer science,


Software Engineering, System

Engineering and Computer Engineering.


Compiled by: Sunil Sharma
29

Software Myths
(Management Perspectives)
Management may be confident
about good standards and clear
procedures of the company.

But the taste of any food item


is in the eating;
not in the Recipe

Compiled by: Si S
30

Software Myths
(Management Perspectives)

Company has latest computers


and state-of- the-art software tools,
so we shouldn't worry about the
quality of the product.

The infrastructure is only one of the


several factors that determine the
quality of the product!

Compiled by: Si S
31

Software Myths
(Management Perspectives)

Addition of more software


specialists, those with higher skills
and longer experience may bring the
schedule back on the track!

Unfortunately,
that may further delay the schedule!

Compiled by: Si S
32
Software Myths
(Management Perspectives)

Software is easy to change

The reality is totally different.

Compiled by: Si S
33
Software Myths
(Management Perspectives)

Computers provide greater reliability


than the devices they replace

This is not always true.

Compiled by: Si S
34
Software Myths (Customer
Perspectives)

A general statement of objectives is sufficient to


get started with the development of software.
Missing/vague requirements can easily be
incorporated/detailed out as they get
concretized.

If we do so, we are heading towards a


disaster.
Compiled by: Si S
35

Software Myths (Customer


Perspectives)

Software with more features is better software

Software can work right the first time

Both are only myths!


Compiled by: Si S
36

Software Myths (Developer


Perspectives)

Once the software is demonstrated, the job is


done.

Usually, the problems just begin!


Compiled by: Si S
37

Software Myths (Developer


Perspectives)

Software quality can not be assessed


before testing.

However, quality assessment


techniques
should be used through out the
software development life cycle.

Compiled by: Si S
38

Software Myths (Developer


Perspectives)

The only deliverable for a


development project is the tested
code.
software
Tested code is only one of the deliverable!

Compiled by: Si S
39

Software Myths (Developer


Perspectives)

Aim is to develop working programs


Those days are over. Now objective is
to develop good quality maintainable
programs!

Compiled by: Si S
40

More Exercises

1. Why is primary goal of software


development now shifting from producing
good quality software to good quality
maintainable software?
2.List the reasons for the "software crisis"?Why are
CASE tools not normally able to control it?
3."The software crisis is aggravated by the progress
in hardware technology?” Explain with examples.

4. What is software crisis? Was Y2K a software crisis?

5. What
is the significance of software crisis in reference to
software engineering discipline.

6.How are software myths affecting software


process? Explain with the help of examples.

7.State the difference between program and


software. Why have documents and documentation
become very important.

8. What is software engineering? Is it an art, craft or a


science? Discuss.

Compiled by: Si S
41

More Exercises @

9. What is aim of software engineering? What does


the discipline of software engineering discuss?
10.Define the term "Software engineering". Explain
the major differences between software
engineering and other traditional engineering
disciplines.
11. What is software process? Why is it difficult to
improve it?

12.Describe
the characteristics of software contrasting it with the
characteristics of hardware.

13. Write down the major characteristics of a


software. Illustrate with a diagram that the
software does not wear out.
14. What are the components of a software? Discuss
how a software differs from a program.

15. Discuss major areas of the applications of the


software.

16. Is software a product or process? Justify your


answer with example
Compiled by: Si S
42

More Exercises

1.17 Differentiate between the following (i)


Deliverables and milestones
(iii) Measures, metrics and measurement
(ii) Product and process

18.What is software metric? How is it different from software


measurement

19. Discuss software process and product metrics with


the help of examples.

20. What is productivity? How is it related to effort.


What is the unit of effort. 21. Differentiate between
module and software component.

22.Distinguish between generic and customized software


products. Which one has larger share of market and
why?

23. Is software a product or process? Justify your


answer with example

Compiled by: Sami S


43

More Exercises @

23.Describe the role of management in software


development with the help of examples.

24.What are various factors of management


dependency in software development. Discuss each
factor in detail.

25. What is more important: Product or process?


Justify your answer.
Compiled by: Si S
44

You might also like