Lecture #1 Chapter 1 Introduction To SW Engineering
Lecture #1 Chapter 1 Introduction To SW Engineering
SOFTWARE ENGINEERING I
CHAPTER # 1:
INTRODUCTION
Teacher: Dr Brekhna
1
CONTENTS:
1. What is software engineering?
2. Why is it important?
3. Application Types
4. Well Engineered s/w
5. Software Engineering and Economy
6. Difference between Software Engineering and
Computer Science
7. Difference between Software Engineering and
System Engineering
8. Difference between Software and other Systems
9. What is balancing act and how apply in software
engineering?
2
1. SOFTWARE ENGINEERING
I: WHAT IS A SOFTWARE?
The term software engineering is
composed of two words, software and
engineering.
Software is “Computer programs and
associated documentation”
3
SOFTWARE ENGINEERING
II: WHAT IS ENGINEERING?
Engineering on the other hand, is all about
developing products, using well-defined,
scientific principles and methods.
“The process of productive use of scientific
knowledge is called engineering.”
So, we can define software engineering as an
engineering branch associated with the
development of software product using well-
defined scientific principles, methods and
procedures.
The outcome of software engineering is an
efficient and reliable software product.
4
SOFTWARE ENGINEERING
II: WHAT IS ENGINEERING?
IEEE defines software engineering as:
The application of a systematic, disciplined,
quantifiable approach to the development,
operation and maintenance of software.
5
SOFTWARE ENGINEERING
• Software Engineering is the science and art
of building significant software systems that
are:
on time
within budget
with acceptable performance
with correct operation.
6
SOFTWARE ENGINEERING
Software Engineering is the set of processes
and tools to develop software.
Software Engineering is the combination of
all the tools, techniques, and processes that
used in software production.
Therefore Software Engineering encompasses
all those things that are used in software
production like:
7
SOFTWARE ENGINEERING
Programming Language
Programming Language Design
Software Design Techniques
Tools
Testing
Maintenance
Development etc.
Soall those thing that are related to software
are also related to software engineering.
8
2. WHY S/W ENGINEERING
Undoubtedly software is playing a vital role
in all the field of life these days.
We can see many software applications being
operated around us in our daily routine.
The need of software engineering arises
because of higher rate of change in user
requirements and environment on which the
software is working.
9
3. APPLICATION TYPES
Stand-alone applications
These are application systems that run on a local
computer, such as a PC. They include all necessary
functionality and do not need to be connected to a
network.
Interactive transaction-based applications
Applicationsthat execute on a remote computer and are
accessed by users from their own PCs or terminals. These
include web applications such as e-commerce
applications such as Internet banking.
Embedded control systems
Theseare software control systems that control and
manage hardware devices. Numerically, there are
probably more embedded systems than any other type of
system.
10
APPLICATION TYPES...
Batch processing systems
Theseare business systems that are designed to
process data in large batches. They process large
numbers of individual inputs to create corresponding
outputs.
Entertainment systems
Theseare systems that are primarily for personal
use and which are intended to entertain the user.
Systems for modelling and simulation
These are systems that are developed by scientists
and engineers to model physical processes or
situations, which include many, separate,
interacting objects.
11
APPLICATION TYPES...
Data collection systems
Theseare systems that collect data from their
environment using a set of sensors and send that
data to other systems for processing.
Systems of systems
These
are systems that are composed of a
number of other software systems.
12
4. WELL-ENGINEERED
SOFTWARE?
Well-engineered software is one that has the
following characteristics.
It is reliable
It has good user-interface
It has acceptable performance
It is of good quality
It is cost-effective
Every company can build software with unlimited
resources but well-engineered software is one that
conforms to all characteristics listed above.
13
6. DIFFERENCE 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
This is the process of utilizing our knowledge
of computer science in effective production
of software systems.”
Computer science theories are currently
insufficient to act as a complete foundation
or basis for software engineering
14
7. DIFFERENCE BETWEEN 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
15
8. DIFFERENCE BETWEEN
SOFTWARE AND OTHER SYSTEMS
The major thing that distinguishes a software system from
other systems is that;
“Software does not wear out!”
Software systems does not affect by wear and tear.
If a software has any defect then that defect will be there
from the very first day and that defect normally called
bug
Non-software systems(like TV, Car or Electric Bulb) could be
malfunctioned or crash while working.
That mean they are affected by wear and tear.
They have a particular life and after that they could have
some problem and may not behave and perform as
expected.
16
CASE(COMPUTER AIDED
SOFTWARE ENGINEERING)
Software systems which are intended to
provide automated support for software
process activities.
18
SOFTWARE PRODUCTS
Generic products:
Stand-alonesystems which are produced by a
development organization and sold on the open
market to any customer.
Customized products:
Systemswhich are commissioned by a specific
customer and developed specially by some
contractor.
19
SOFTWARE PRODUCT
ATTRIBUTES
Maintainability
Dependability
Efficiency
Usability
20
IMPORTANCE OF PRODUCT
CHARACTERISTICS
The relative importance of these
characteristics depends on the product and
the environment in which it is to be used.
In some cases, some attributes may dominate
Costs tend to rise exponentially if very high
levels of any one attribute are required.
21
SOFTWARE DEVELOPMENT
23
SOFTWARE ENGINEERING PHASES
24
SYSTEMS ENGINEERING
25
THE SYSTEM ENGINEERING PROCESS
Usually follows a ‘waterfall’ model because
of the need for parallel development of
different parts of the system
Little
scope for iteration between phases because
hardware changes are very expensive. Software
may have to compensate for hardware problems.
Inevitably involves engineers from different
disciplines who must work together
A lot of scope for misunderstanding here. Different
disciplines use a different vocabulary and much
negotiation is required. Engineers may have
personal agendas to fulfil.
26
THE SYSTEMS ENGINEERING
PROCESS
Requirements System
definition decommissioning
System System
design evolution
Sub-system System
development installation
System
integration
27
Thank You
28