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

Introduction To Software Engineering: Objectives

The document provides an introduction to software engineering, including definitions of software engineering, differences between computer science and software engineering, and the major activities involved in software development. It discusses how software engineering emerged in response to the "software crisis" of the 1960s, when techniques for developing small software failed to scale up for large, complex systems. Software engineering aims to apply systematic, disciplined, and quantifiable approaches to software development through principles of engineering. It involves balancing requirements like cost, reliability, efficiency and user-friendliness.

Uploaded by

api-19771709
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Introduction To Software Engineering: Objectives

The document provides an introduction to software engineering, including definitions of software engineering, differences between computer science and software engineering, and the major activities involved in software development. It discusses how software engineering emerged in response to the "software crisis" of the 1960s, when techniques for developing small software failed to scale up for large, complex systems. Software engineering aims to apply systematic, disciplined, and quantifiable approaches to software development through principles of engineering. It involves balancing requirements like cost, reliability, efficiency and user-friendliness.

Uploaded by

api-19771709
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21

Introduction to Software

Engineering
Objectives:

•Introduction
•Computer Science vs. Software Engineering
•Software Crisis
•Software Engineering as defined by IEEE
•Software Engineering
•Summary

Naeem Aslam 1
What is Software?
Some of the constituted items of software are
described below:
Program: The program or code itself is definitely
included in the software.
Data: The data on which the program operates is
also considered as part of the software.
Documentation: All the documents related to the
software are also considered as part of the
software. So the software is not just the code
written in Cobol, Java, Fortran or C++. It also
includes the data and all the documentation
related to the program.

Naeem Aslam 2
Why is it important?
Some of the major areas in which software has
played an important role are identified as under.
•Business decision-making
•Modern scientific investigation and
engineering problem solving
Bioinformatics and the process of DNA decoding is
only possible by the use of software systems
•Games
•Embedded systems
Small microcontrollers used in our cars,
televisions, microwave ovens etc. All these
systems are controlled through the software.
Naeem Aslam 3
What is Engineering?

The process of productive use of scientific


knowledge is called engineering.”

Naeem Aslam 4
Difference bet. Computer Science
& Software Engineering
The Science concerned with putting
scientific knowledge to practical use.

“This is the process of utilizing our


knowledge of computer science in effective
production of software systems.”

Naeem Aslam 5
Difference bet. Software &
Other Systems

The major thing that distinguishes a


software system from other systems is that:

“Software does not wear out”

Naeem Aslam 6
What does that mean?

Software systems does not affect by the


phenomenon of wear and tear.

If a software has any defect then that defect


will be there from very first day.

Naeem Aslam 7
Software Crisis
In early 60s software had suffered from different
kind of problem to which we call Software Crisis.
Techniques that were used to develop small
software were not applicable for large software
systems.
•In most of the cases that software which was tried
to be build using old tools and techniques were
not complete.
•Most of the times it was delivered too late.
•Most of the projects were over-budgeted.
•And in most of the case systems were not be able
to do what they were expected to do.
Naeem Aslam 8
Solution
As a result of these problems a conference were held in
1960 in which the term software crisis was introduced.
The major issue discussed was that the development of
software is in crisis and we have not been able to handle its
complexities.
In this conference people have said that, we should use
engineering principles in developing software in the same
way as we use these principles in developing cars,
buildings, electronic devices etc.
Software engineering is the result of software crisis when
people realized that it is not possible to construct complex
software using the techniques applicable in 1960s. An
important result of this thing was that people had realized
that just coding is not enough.
Naeem Aslam 9
Software Engineering as defined by
IEEE

“The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software;
that is, the application of engineering to
software.”

Naeem Aslam 10
Somerville
Another definition of Software Engineering
given by Ian Somerville.
“All aspects of software production’ Software
engineering is not just concerned with the
technical processes of software development
but also with activities such as software
project management and with the
development of tools, methods and theories
to support software production”.
Naeem Aslam 11
Make it clear

These definitions make it clear that the


software engineering is not just about writing
code.

Naeem Aslam 12
Software Engineering cover
Software Engineering cover all things that are
used in software production like:
• Programming Language
• Programming Language Design
• Software Design Techniques
• Tools
• Testing
• Maintenance
• Development etc.
So all those thing that are related to software are
also related to software engineering.

Naeem Aslam 13
Well-Engineered Software
Well-engineered software is one that has the
following characteristics:

•Provides the required functionality


•Maintainable
•Reliable
•Efficient
•User-friendly
•Cost-effective

Naeem Aslam 14
Major Challenge for Software
Engineer

The major challenges for a software


engineer is that he has to build software
within limited time and budget in a cost-
effective way and with good quality.

Naeem Aslam 15
The Balancing Act
Software Engineering is actually the balancing act.
You have to balance many things like cost, user
friendliness, Efficiency, Reliability etc.

You have to analyze which one is the more


important feature for your software is it reliability,
efficiency, user friendliness or something else.

There is always a trade-off among all these


requirements of software.
Naeem Aslam 16
The Balancing Act-I
These requirements may be conflicting. For
example, there may be tension among the
following:

•Cost vs. Efficiency


•Cost vs. Reliability
•Efficiency vs. User-interface

Naeem Aslam 17
Challenge is to balance these
requirements
Software Engineers always confront with the
challenge to make a good balance of all
these tings depending on the requirements
of the particular software system at hand.
He should analyze how much weight should
all these things get such that it will have
acceptable quality, acceptable performance
and will have acceptable user-interface.

Naeem Aslam 18
Law of Diminishing Returns
Similar is the case with software
engineering. Whenever you perform any
task like improving the efficiency of the
system, try to improve its quality or user
friendliness then all these things involve
an element of cost. If the quality of your
system is not acceptable then with the
investment of little money it could be
improved to a higher degree. But after

c o st
reaching at a certain level of quality the
return on investment on the system’s
quality will become reduced. Meaning
that the return on investment on quality
of software will be less than the effort or
money we invest. Therefore, in most of
the cases, after reaching at a
reasonable level of quality we do not try
b e n e fit
to improve the quality of software any
further.

Naeem Aslam 19
Major Activities in Development of
Software
• Project Management
• Requirement Engineering
• Design
• Coding
• Testing
• Software Quality Assurance
• Software Configuration Management
• Software Integration and
• Rest of the activities

One thing to note here is that you cannot say that anyone of these
activities is dominant among others in terms of effort putted into it.
Here the point that we want to emphasize is that, though coding is
very important but it is not more than 13-14% of the whole effort of
software development.

Naeem Aslam 20
Summary
Today we have discussed the following things related to software
engineering

• What is software engineering?


• Why is it important?
• What is software crisis?
• How software engineering derived from software crisis.
• What is the importance of engineering principles in developing
software?
• What is balancing act and how apply in software engineering?
• What is law of diminishing returns?
• And what are the major activities involved in the development of
software.

Naeem Aslam 21

You might also like