7/30/2019 1.Introduction of SE
1/24
7/30/2019 1.Introduction of SE
2/24
Whatissoftware(SW)?SWis
notonlyprogramsbutalsoallassociateddocumentation,andconfigurationdata
thatmaketheseprogramsoperatecorrectly.Morespecifically,aSWsystemconsistsof
separateprogramsconfigurationfilessettinguptheseprograms
systemdocumentationdescribingthestructureofthesystemingooddetailuserdocumentationexplaininghowtouseandoperate
thesystem.
3
7/30/2019 1.Introduction of SE
3/24
TwoClassesofSWProducts Genericproducts These are stand-alone systems that are produced by a
development organization and sold on the open market
to any customer who is able to buy them. Examples of this type of product include software for
PCs such as databases, word processors, drawingpackages, and project-management tools.
It also includes so-called vertical applications designedfor some specific purpose such as library informationsystems, accounting systems, or systems for maintainingdental records
7/30/2019 1.Introduction of SE
4/24
TwoClassesofSWProducts Customorbespokeproducts
A software contractor develops the software especiallyfor that customer.
Examples of this type of software include controlsystems for electronic devices, systems written tosupport a particular business process, and air trafficcontrol systems.
7/30/2019 1.Introduction of SE
5/24
An important difference between these types ofsoftware is that, in generic products, the organizationthat develops the software controls the softwarespecification. For custom products, the specification isusually developed and controlled by the organizationthat is buying the software.
7/30/2019 1.Introduction of SE
6/24
WhatisSoftwareEngineering(SE)? SWengineeringisanengineeringdiscipline concerned withallaspectsofSWproductionstartingfromtheearlystageofsystemspecificationthroughtothe
maintenance ofthesystemafterit has startedtobeused. Engineering discipline
Engineers make things work. They apply theories, methods andtools where these are appropriate. However, they use them
selectively and always try to discover solutions to problems evenwhen there are no applicable theories and methods. Engineersalso recognize that they must work t organizational and financialconstraints so they look for solutions within these constraints.
7/30/2019 1.Introduction of SE
7/24
WhatisSoftwareEngineering
(SE)? All aspects of software production Software engineering is not just concernedwith the
technical processes of software development. It alsoincludes activities such as software project managementand the development of tools, methods and theories tosupport software production.
7/30/2019 1.Introduction of SE
8/24
DifferencebetweenSEand
Computer Science(CS)...? ComputerScience......isconcernedwiththeoriesandmethodswhich
establishabasisfor computersandSWsystemswhile...
SoftwareEngineering...
...isconcernedwiththepracticalproblemsofproducing
SW.
CSis asessentialforSWengineersas......physicsisfor electricalormechanicalengineers.
7/30/2019 1.Introduction of SE
9/24
Computer science theory, however, is often mostapplicable to relatively small programs. Eleganttheories of computer science cannot always be appliedto large, complex problems that require a softwaresolution.
7/30/2019 1.Introduction of SE
10/24
7/30/2019 1.Introduction of SE
11/24
ThePioneeringEra(1955-1965)Newcomputerswerecomingoutalmosteveryyearor
two,renderingexistingonesobsolete.
Softwarepeoplehadtorewritealltheirprogramstorunonthesenewmachines.
Programmersdidnothavecomputersontheirdesksandhadtogotothe"machineroom".
8
7/30/2019 1.Introduction of SE
12/24
wererunbyJobsThePioneeringEra-2signingupformachinetimeorbyoperationalstaff.puttingpunchedcardsforinputintothemachine'scard
readerandwaiting
for
results
tocome
back
on
theprinter.
Thefieldwassonewthattheideaofmanagementbyschedulewasnon-existent.
Makingpredictionsofaproject'scompletiondatewas
almostimpossible.
9
7/30/2019 1.Introduction of SE
13/24
ThePioneeringEra-3Computerhardwarewasapplication-specific.Scientific
andbusinesstasksneededdifferentmachines.
Duetotheneedtofrequentlytranslateoldsoftwaretomeettheneedsofnewmachines,high-orderlanguageslikeFORTRAN,COBOL,andALGOLweredeveloped.
10
7/30/2019 1.Introduction of SE
14/24
ThePioneeringEra-4Hardwarevendorsgaveawaysystemssoftwareforfree
ashardwarecouldnotbesoldwithoutsoftware.Afew
companies
sold
the
service
of
building
customsoftwarebutnosoftwarecompaniesweresellingpackagedsoftware.
11
7/30/2019 1.Introduction of SE
15/24
ThePioneeringEra-5Thenotionofreuseflourished.Assoftwarewasfree,
userorganizationscommonlygaveitaway.GroupslikeIBM'sscientificusergroupSHAREofferedcatalogsofreusablecomponents.
Academiadidnotyetteachtheprinciplesofcomputerscience.
Modularprogramminganddataabstractionwere
alreadybeingusedinprogramming.
12
7/30/2019 1.Introduction of SE
16/24
The Stabilizing Era (1965-1980)Thewholejob-queuesystemhadbeen
institutionalizedandsoprogrammersnolongerrantheirjobsexceptforpeculiarapplicationslikeon-boardcomputers.Tohandlethejobs,anenormousbureaucracyhadgrownuparoundthecentralcomputercenter.
Themajorproblemasaresultofthisbureaucracy
wasturnaroundtime,thetimebetweenjobsubmissionandcompletion.Atworstitwasmeasuredindays.
13
7/30/2019 1.Introduction of SE
17/24
The Stabilizing Era - 2 IBM360signaledthebeginningofthestabilizingera. Largestsoftwareprojecttodateendingtheeraofafasterandcheaper
computeremergingeveryyearortwo. Softwarepeoplecouldfinallyspendtimewritingnewsoftwareinstead
ofrewritingtheold. The360alsocombinedscientificandbusinessapplicationsontoone
machine.Itofferedbothbinaryanddecimalarithmetic.Withtheadventofthe360,theorganizationalseparationbetweenscientificandbusinessapplicationpeoplecametodiminishandthishadamassiveimpactonthesociologyofthefield.Scientificprogrammerswhousuallyhadbachelordegreesfeltsuperiortobusinessprogrammers
whousuallyheldonlyassociatedegrees. Onescientificprogrammerremarked:"Idon'tmindworkingwith
businessprogrammers,butIwouldn'twantmydaughtertomarryone!"
14
7/30/2019 1.Introduction of SE
18/24
The Stabilizing Era - 3ThemassiveO/S,stillcominglargelyfreewiththe
computer,controlledmostoftheservicesthatarunningprogramneeded.
ThejobcontrollanguageJCLraisedawholenewclassofproblems.TheprogrammerhadtowritetheprograminawholenewlanguagetotellthecomputerandOSwhattodo.JCLwastheleastpopularfeatureofthe360.
PL/I,
introduced
by
IBM
to
mergeallprogramminglanguagesintoone,failed.Thedemandforprogrammersexceededthe
supply.
15
7/30/2019 1.Introduction of SE
19/24
The Stabilizing Era - 4Thenotionoftimesharing,usingterminalsat
whichjobscouldbedirectlysubmittedtoqueues
ofvariouskindswasbeginningtoemerge,meetingwithsomeresistancefromtraditionalists.
Asthesoftwarefieldstabilized,softwarebecameacorporateassetanditsvaluebecamehuge.
Stabilityleadtotheemergenceofacademiccomputingdisciplinesinthelate60's.
16
7/30/2019 1.Introduction of SE
20/24
The Stabilizing Era - 5Manyhigh-hypedisciplineslikeArtificial
Intelligencecameintoexistence.Asthesenewconceptscouldnotbeconvertedintopredicted
benefits,thecredibilityofthecomputingfieldbegantodiminish."StructuredProgramming"burstonthescenein
themiddleofthisera.
Standardsorganizationsbecamecontrolbattle
grounds.Thevendorwhodefinedthestandardscouldgainsignificantcompetitiveadvantagebymakingthestandardsmatchtheirowntechnology.
17
7/30/2019 1.Introduction of SE
21/24
The Stabilizing Era - 6
Althoughhardwarevendorstriedtoputabrakeonthesoftwareindustrybykeepingtheirpriceslow,software
vendorsemergedafewatatime.Mostcustomizedapplicationscontinuedtobedonein-
house.Programmersstillhadtogotothe"machineroom"and
didnothavecomputersontheirdesks.
18
7/30/2019 1.Introduction of SE
22/24
The Micro Era (1980-Present)
Thepriceofcomputinghasdroppeddramatically
makingubiquitouscomputing(i.e.,computingeverywhere)possible.Noweveryprogrammercanhaveacomputeronhisdesk.
TheoldJCLhasbeenreplacedbytheuser-friendly
GUI.
19
7/30/2019 1.Introduction of SE
23/24
The Micro Era - 2Thefieldstillhasitsproblems.Thesoftwarepart
ofthehardwarearchitecturethattheprogrammermustknowabout,suchastheinstructionset,has
notchangedmuchsincetheadventoftheIBMmainframeandthefirstIntelchip.Themost-usedprogramminglanguagestodayarebetween15and40yearsold.TheFourthGenerationLanguagesneverachievedthedreamof"programming
withoutprogrammers"
and
the
idea
ispretty
muchlimitedtoreportgenerationfromdatabases.There
isanincreasingclamorthoughformoreandbettersoftwareresearch.
20
7/30/2019 1.Introduction of SE
24/24
21