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

Lecture #1 Chapter 1 Introduction To SW Engineering

Uploaded by

adiasaraf29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Lecture #1 Chapter 1 Introduction To SW Engineering

Uploaded by

adiasaraf29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Lecture 1

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

 System engineers are involved in system


specification, architectural design,
integration of the finished system.

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.

CASE systems are often used for method


support
 Upper-CASE
 Toolsto support the early process activities of
requirements and design
 Lower-CASE
 Tools
to support later activities such as
programming, debugging and testing
17
9. THE BALANCING ACT!
 Software Engineering is actually the balancing act.
 You have to balance many things like cost, user
friendliness, Efficiency, Reliability etc.
 Software Engineering aims to develop high quality
software in minimum cost and time.

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

 Software engineering is a disciplined approach


to develop software.
 The activities involved in software development
can broadly be divided into two major
categories first is construction and second is
management.
 The construction activities are those that are
directly related to the construction or
development of the software.
 While the management activities are those
that complement the process of construction in
order to perform construction activities
smoothly and effectively.
22
SOFTWARE ENGINEERING PHASES
 There are four basic phases shown in Figure 4.
 Vision: Here we determine why are we doing this thing and
what are our business objectives that we want to achieve.
 Definition: Here we actually realize or automate the vision
developed in first phase. Here we determine what are the
activities and things involved.
 Development: Here we determine, what should be the design
of the system, how will it be implemented and how to test it.
 Maintenance: This is very important phase of software
development. Here we control the change in system, whether
that change is in the form of enhancements or defect
removel.

23
SOFTWARE ENGINEERING PHASES

24
SYSTEMS ENGINEERING

 Specifying, designing, implementing, validating,


deploying and maintaining socio-technical
systems.
 Concerned with the services provided by the
system, constraints on its construction and
operation and the ways in which it is used.

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

You might also like