Introduction To Software Engineering: Objectives
Introduction To Software Engineering: Objectives
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?
Naeem Aslam 4
Difference bet. Computer Science
& Software Engineering
The Science concerned with putting
scientific knowledge to practical use.
Naeem Aslam 5
Difference bet. Software &
Other Systems
Naeem Aslam 6
What does that mean?
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
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
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:
Naeem Aslam 14
Major Challenge for Software
Engineer
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.
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
Naeem Aslam 21