Skip to main content
Software Engineering Technology
Software Engineering
Why software engineering?
- Once the need for software engineering was identified and
software engineering recognized as a discipline--
- The late 1970’s saw the widespread evolution of
software engineering principles.
- The 1980’s saw the automation of software engineering
and growth of CASE (Computer Aided Software
Engineering).
- The 1990’s have seen increased emphasis on the
‘management’ aspects of projects and the use of
standard quality and ‘process’ models like ISO 9001 and
the Software Engineering Institute’s Software Capability
Maturity Model (CMM).
- These models help organizations put their
software development and management
processes in place
What is software Engineering?

- In1969 Fritz Bauer defined software eng. as, ‘the establishment and
use of sound engineering principles in order to obtain, economically,
software that is reliable and works efficiently on real machines’.
- According to Boehm, software engineering involves, ‘the practical
application of scientific knowledge to the design and construction of
computer programs and the associated documentation required
developing, operating and maintaining them’
- IEEE, in its standard 610.12-1990, defines software engineering as
- The application of a systematic, disciplined, quantifiable approach to
the development, operation and maintenance of software; that is, the
application of engineering to software.
- The study of approaches as in (i).
- By combining all the above definition we can define software
engineering as, ‘Software engineering is the technological and
managerial discipline concerned with systematic production and
maintenance of software products that are developed and modified on
time and within cost estimates.’
Goal of software engineering
- The primary goals of software engineering
are
- To improve the quality of the software products.
- To increase the productivity
- To give job satisfaction to the software
engineers.
Foundation of Software engineering
- Software engineering is a technological
discipline distinct from, but based on the
foundation of the following disciplines
The relationship of software engineering with other disciplines

- Computer Science gives the scientific foundation to the software as
electrical engineering relies on physics.
- Management Science provides the foundation for software project
management. Since software engineering is labor intensive activity, it
requires both technical and managerial control.
- Economics provides the foundation for resource estimation and cost
control. Since, computing system must be developed and maintained
on time and within cost estimates; thus economics plays an important
role.
- System Engineering is the field concerned with studying complex
systems. Software is often a component of a much larger system. For
example, the software in a factory monitoring system or the flight
software on an airplane; is just the component of more complex
system. System engineering techniques can be applied to study of
such systems
- Good oral, written and interpersonal communication skills are
crucial for the software engineers, because software engineering
activities occur within an organizational context, and a high degree of
communication is required among customers, managers, software
engineers, hardware engineers and other technical workers.
Difference of s/w eng. with traditional engineering
- Software is intangible. It has no mass, no volume, no
color, no odor--- no physical properties. Source code is
merely a static image of computer program, and while
the effects produced by a program are often observable,
the program itself not.
- Software doesn’t degrade with time as hardware does.
Software failures are caused by design and
implementation error, not by degradation over time.
- There is always an obscurity in the interface between
software modules. It is difficult to design a software
system so that all the control and interfaces among
modules are explicit, and so that the modules do not
interact to produce unexpected side effects when they
invoked one another.
The role of software engineer
- The evolution of software engineering field has defined the
role of the software engineer. A software engineer
should have the following qualities
- Should be a good programmer, be well-versed in data
structures and algorithms, and be fluent in one or more
programming languages.
- Should be familiar with several design approaches, be
able to translate vague requirements and desires into
precise specifications and be able to converse with the
use of a system in terms of applications.
- Needs the ability to move among several levels of
abstraction at different stages of the project, from
specific application procedures and requirements, to
abstraction for software systems, to a specific design for
system and finally to the detailed coding level.
The characteristics of software engineer
- Should be able to build and use a model of the
application to guide choices of the many tradeoffs that he or she will face. The model is used
to answer questions about both the behavior of
the system and its performance.
- Needs communication skills and interpersonal
skills. He also needs the ability to schedule work
both of his own and that of others.
The software product
- The objective of software engineering is to produce software
products. Computer software is the product that software
engineers design and built. Software products are
software systems delivered to a customer with the
documentation which describes how to install and use the
system.
- Software products fall into two broad classes
- These are stand alone systems which
are produced by a software development
organizations/firms and sold on the open market to any
customer who is able to buy them.
- These are systems which are
commissioned by a particular customer. The software is
developed specially for that customer by some developer.
Comments
Post a Comment