CH 1
CH 1
CH 1
re
ortance of detecting and removing faults befo
developers who could not und erst and the imp given a free
th e cust ome r experiences them as failures. It belongs to the legal system that has
r
ages._It also .belongs to universities and othe
pass tq software developers on bug rela ted dam ci-
pro gr~ g over software engineering prin
high er educational inst ituti ons that stre ss on
ples and practices.
/1 .2.1 Definition
in 1968, Frit z Bau er [FRIT68] defined software
At the first conference on software engineering in
soun d enginlering principles in order to obta
engineering as "The establishment and use of
and works e iently on real machines". Stephen
economicall developed software that is reliable
ipline whose aim is the pn uction of quality
Schach [SCHA90] defined the same as "A disc ~-
are, softw are that is deliv ered on time, with in budget, and that satisfies its requ irem e~•.
softw
Both the definitions are popular and acceptable
to majority. However, due to increase in
shifting to produce qua lity software that is
cost of maintaining software, objective is now
et, and also satisfies its requirements.
maintainable, delivered on time, within budg
dures
Proce
Software = Program + Documentation + Operating
Fig. 1.1: Components of software
Eoduction to Software Engineering · s I
Any program is a subset of software and it becomes software only if documentation and
era ting procedure manuals are prepai:ed. Program is a combination of source code and object
;.e. ~;;!1~!~11 consists of different types of manuals _as shown in Fig. 1.2.
Formal specification
Analysis\ - - - - - C..9~ex~:Diagr~_p
Specification
Flow charts
Design
Entity-Relationship diagrams
Documentation
manuals
~r':e code listings
lmplementallOn
Cross-Reference listing
Test data
T!:?Sl!ng
-
Test results
Oe-~ti~ e._~ll_!e~ consist of instructjo.m...to ~ tue, and ~ the softw~e ~~m and
instructionsonow to"""r eact to s~tem fail~. List of operating procedure manuals/documents
is given in Fig. 1.3-:- - - -·- --·-
W♦ ,.
16
5ottware Engineering J
System overview
Reference guide
Operating procedures - - - 1
Installation guide
r- . lnitial_.state : · . : :
Productivity .....,._-<
.· · 1 'Leaming-curve.
'
. Do not quit here!
- - rme·~ -
. ~ · .. : .· Ff~ 1.4: The ~ -lmprov~ .leamb,g C?UJV8
[a Software En gin e~ ~
dges.
-
stood, oth ers are not.
5.
-
calculated with reasonable
I I
I
I
I
-~
- - - - - Tm e - - -
There are three phases for the life of a hardware product. Initial phase is bum-in p~e,
where failure intensity is high. It is expectedJ o t&.~P.I:PdJ1ct in ~e _i~d.u..s.tcy_befo.re rle~?'·
Due to testing and fixing faults, failure intensity wilLcome_d ~ti_ally_~ d- ~aL&_ti;t~Jli~e
after certain time. The second phase is the useful life phase where fa1lure mt_~n~.Y 1s
- roximately constant and is called useful life of a product After few years, agam failure
:!~nsity will increase due to wea.rjpg_ouLQu_QIDRQDen.t§. This phase is called ~ o u t ws~.
We do not hav~ this phase_f?E.!~~soft ware.~it. dQ~f?,,,,D.gt?~ar ou~. The curve for software 1s
give-; inr'ig.--1.6.
- - - Time _ __.>
t,ools, database management, computer games etc. This is a very upcoming area and many big
organisations are concentrating their effort here due to large customer base. ·
(vi) Artificial intelligence software: Artificial Intelligence software makes ~ .f..!!.9,"-
nuroeriral a)~thms to solve come!_e~ ~bk_ms that are not amenable to computation or
sb'3ight forward analysis [PRESOI]. Examples are e!Pert systems, artificial neural netwo~k,
signal processing software etc.
(vii) Web based software: The software related to web applications, come under this
category. Examples are CGl;' HTML, Java, P ~ , DHTML etc.
(viii) Engineering and scientific software: Scientific and engineering application
software are grouped in this category. Huge computing is normally required to process data.
Examples are CAD/CAM package, SPSS, MATLAB, Engineering Pro, Circuit analyzers etc.
The expectations from software are increasing in modern civilisation. Software of any of
the.above groups, has a specialised role to play. Customers and development organisations are
desiring more features which may not be always possible to provide. Another trend has emerged
to provide source code to the customers and organisations so that they can make modifications
for their needs. This trend is particularly visible in infrastructure software like data bases,
operating systems, compilers etc. Software where source codes are available, are known as
open source. Organisations can develop software applications around such source codes. Some
of the examples of "open source software" are LINUX, MySQL, PHP, open office, Apache web
server etc. Open source software has risen to great prominence. We may say that these are the
programs whose licenses give users the freedom to run the progFam for any purpose, to study
and modify the program, and to redistribute copies of either the original or modified program
without paying royalties to original developers. Whether open source software are better than
proprietary software? Answer is not easy. Both schools of thought are in the market. How-
ever, popularity of many open source software give confidence to every user. They may also
help us to develop small business applications at low cost. ·
People
Project Product
Process
Software development is a people centric activity. Hence, success of the project is on the
shoulders of the people who are involved in the development.