0% found this document useful (0 votes)
9 views2 pages

New Intro 1

Software engineering is defined as the systematic application of scientific principles and methods to develop reliable software products. It is essential for managing the complexity of large software programs through techniques like abstraction and decomposition. The need for software engineering arises from the rapid changes in user requirements and the environments in which software operates.

Uploaded by

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

New Intro 1

Software engineering is defined as the systematic application of scientific principles and methods to develop reliable software products. It is essential for managing the complexity of large software programs through techniques like abstraction and decomposition. The need for software engineering arises from the rapid changes in user requirements and the environments in which software operates.

Uploaded by

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

Software is more than just a program code.

A program is an executable code,


which serves some computational purpose. Software is considered to be a
collection of executable programming code, associated libraries and
documentations. Software, when made for a specific requirement is called
software product. Engineering on the other hand, is all about developing products,
using well-defined, scientific principles and methods. 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. IEEE defines software engineering as: The application of a
systematic, disciplined, quantifiable approach to the development, operation and
maintenance of software. We can alternatively view it as a systematic collection of
past experience. The experience is arranged in the form of methodologies and
guidelines. A small program can be written without using software engineering
principles. But if one wants to develop a large software product, then software
engineering principles are absolutely necessary to achieve a good quality software
cost effectively.

Without using software engineering principles it would be difficult to develop large


programs. In industry it is usually needed to develop large programs to
accommodate multiple functions. A problem with developing such large
commercial programs is that the complexity and difficulty levels of the programs
increase exponentially with their sizes. Software engineering helps to reduce this
programming complexity. Software engineering principles use two important
techniques to reduce problem complexity: abstraction and decomposition. The
principle of abstraction implies that a problem can be simplified by omitting
irrelevant details. In other words, the main purpose of abstraction is to consider
only those aspects of the problem that are relevant for certain purpose and
suppress other aspects that are not relevant for the given purpose. Once the
simpler problem is solved, then the omitted details can be taken into consideration
to solve the next lower level abstraction, and so on. Abstraction is a powerful way
of reducing the complexity of the problem. The other approach to tackle problem
complexity is DEPT OF CSE & IT VSSUT, Burla decomposition. In this technique, a
complex problem is divided into several smaller problems and then the smaller
problems are solved one by one. However, in this technique any random
decomposition of a problem into smaller parts will not help. The problem has to be
decomposed such that each component of the decomposed problem can be
solved independently and then the solution of the different components can be
combined to get the full solution. A good decomposition of a problem should
minimize interactions among various components. If the different subcomponents
are interrelated, then the different components cannot be solved separately and
the desired reduction in complexity will not be realized. NEED OF SOFTWARE
ENGINEERING The need of software engineering arises because of higher rate of
change in user requirements and environment on which the software is working

You might also like