You are on page 1of 31

AnIntroductiontoSoftware Engineering

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 1

Objectives
l

Tointroducesoftwareengineeringandtoexplain itsimportance Tosetouttheanswerstokeyquestionsabout softwareengineering Tointroduceethicalandprofessionalissuesand toexplainwhytheyareofconcerntosoftware engineers

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 2

Topicscovered

l l

FAQsaboutsoftwareengineering Professionalandethicalresponsibility

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 3

Softwareengineering
l

l l

TheeconomiesofALLdevelopednationsare dependentonsoftware. Moreandmoresystemsaresoftwarecontrolled Softwareengineeringisconcernedwiththeories, methodsandtoolsforprofessionalsoftware development. Expenditureonsoftwarerepresentsa significantfractionofGNPinalldeveloped countries.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 4

Softwarecosts
l

Softwarecostsoftendominatecomputersystem costs.ThecostsofsoftwareonaPCareoften greaterthanthehardwarecost. Softwarecostsmoretomaintainthanitdoesto develop.Forsystemswithalonglife, maintenancecostsmaybeseveraltimes developmentcosts. Softwareengineeringisconcernedwithcost effectivesoftwaredevelopment.


SoftwareEngineering,8th edition.Chapter1 Slide 5

IanSommerville2006

FAQsaboutsoftwareengineering
l l l

l l

Whatissoftware? Whatissoftwareengineering? Whatisthedifferencebetweensoftware engineeringandcomputerscience? Whatisthedifferencebetweensoftware engineeringandsystemengineering? Whatisasoftwareprocess? Whatisasoftwareprocessmodel?

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 6

FAQsaboutsoftwareengineering
l l l

l l

Whatarethecostsofsoftwareengineering? Whataresoftwareengineeringmethods? WhatisCASE(ComputerAidedSoftware Engineering) Whataretheattributesofgoodsoftware? Whatarethekeychallengesfacingsoftware engineering?

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 7

Whatissoftware?
l

Computerprogramsandassociateddocumentationsuch asrequirements,designmodelsandusermanuals. Softwareproductsmaybedevelopedforaparticular customerormaybedevelopedforageneralmarket. Softwareproductsmaybe


Genericdevelopedtobesoldtoarangeofdifferentcustomers e.g.PCsoftwaresuchasExcelorWord. Bespoke(custom)developedforasinglecustomeraccording totheirspecification.

Newsoftwarecanbecreatedbydevelopingnew programs,configuringgenericsoftwaresystemsor reusingexistingsoftware.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 8

Whatissoftwareengineering?
l

Softwareengineeringisanengineeringdiscipline thatisconcernedwithallaspectsofsoftware production. Softwareengineersshouldadoptasystematic andorganisedapproachtotheirworkanduse appropriatetoolsandtechniquesdependingon theproblemtobesolved,thedevelopment constraintsandtheresourcesavailable.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 9

Whatisthedifferencebetweensoftware engineeringandcomputerscience?
l

Computerscienceisconcernedwiththeoryand fundamentalssoftwareengineeringisconcerned withthepracticalitiesofdevelopingand deliveringusefulsoftware. Computersciencetheoriesarestillinsufficientto actasacompleteunderpinningforsoftware engineering(unlikee.g.physicsandelectrical engineering).

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 10

Whatisthedifferencebetweensoftware engineeringandsystemengineering?
l

Systemengineeringisconcernedwithall aspectsofcomputerbasedsystems developmentincludinghardware,softwareand processengineering.Softwareengineeringis partofthisprocessconcernedwithdeveloping thesoftwareinfrastructure,control,applications anddatabasesinthesystem. Systemengineersareinvolvedinsystem specification,architecturaldesign,integration anddeployment.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 11

Whatisasoftwareprocess?
l

Asetofactivitieswhosegoalisthedevelopment orevolutionofsoftware. Genericactivitiesinallsoftwareprocessesare:


Specificationwhatthesystemshoulddoandits developmentconstraints Developmentproductionofthesoftwaresystem Validationcheckingthatthesoftwareiswhatthe customerwants Evolutionchangingthesoftwareinresponseto changingdemands.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 12

Whatisasoftwareprocessmodel?
l

Asimplifiedrepresentationofasoftwareprocess, presentedfromaspecificperspective. Examplesofprocessperspectivesare


Workflowperspectivesequenceofactivities Dataflowperspectiveinformationflow Role/actionperspectivewhodoeswhat. Waterfall Iterativedevelopment Componentbasedsoftwareengineering.

Genericprocessmodels

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 13

Whatarethecostsofsoftwareengineering?
l

Roughly60%ofcostsaredevelopmentcosts, 40%aretestingcosts.Forcustomsoftware, evolutioncostsoftenexceeddevelopmentcosts. Costsvarydependingonthetypeofsystem beingdevelopedandtherequirementsofsystem attributessuchasperformanceandsystem reliability. Distributionofcostsdependsonthe developmentmodelthatisused.


SoftwareEngineering,8th edition.Chapter1 Slide 14

IanSommerville2006

Activitycostdistribution
Wat er fallmodel 0 25 5 0 75 100 Specification Design Development Integ rationandtesting

It erativedevelopment 0 2 5 5 0 75 1 00

Specification

Iterativedevelopment ineering 5 0 75

Systemtesting

Componentbasedsoftwareeng 0 2 5

1 00

Specification

Development

Integ rationandtesting

Developmentandevolutioncostsforlonglifetimesyst 0 10 200

ems 30 400

Systemdevelopment

Systemevolution

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 15

Productdevelopmentcosts

2 5

50

7 5

100

Specification

Development

Systemtesting

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 16

Whataresoftwareengineeringmethods?
l

Structuredapproachestosoftwaredevelopmentwhich includesystemmodels,notations,rules,designadvice andprocessguidance. Modeldescriptions


Descriptionsofgraphicalmodelswhichshouldbeproduced Constraintsappliedtosystemmodels Adviceongooddesignpractice Whatactivitiestofollow.

Rules

Recommendations

Processguidance

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 17

WhatisCASE(ComputerAidedSoftware Engineering)
l

l l

Softwaresystemsthatareintendedtoprovideautomated supportforsoftwareprocessactivities. CASEsystemsareoftenusedformethodsupport. UpperCASE


Toolstosupporttheearlyprocessactivitiesofrequirements anddesign Toolstosupportlateractivitiessuchasprogramming, debuggingandtesting.

LowerCASE

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 18

Whataretheattributesofgoodsoftware?
l

Thesoftwareshoulddelivertherequiredfunctionalityand performancetotheuserandshouldbemaintainable, dependableandacceptable. Maintainability


Softwaremustevolvetomeetchangingneeds Softwaremustbetrustworthy Softwareshouldnotmakewastefuluseofsystemresources Softwaremustacceptedbytheusersforwhichitwasdesigned. Thismeansitmustbeunderstandable,usableandcompatible withothersystems.
SoftwareEngineering,8th edition.Chapter1 Slide 19

Dependability

Efficiency

Acceptability

IanSommerville2006

Whatarethekeychallengesfacingsoftware engineering?
l l

Heterogeneity,deliveryandtrust. Heterogeneity
Developingtechniquesforbuildingsoftwarethatcancopewith heterogeneousplatformsandexecutionenvironments Developingtechniquesthatleadtofasterdeliveryofsoftware Developingtechniquesthatdemonstratethatsoftwarecanbe trustedbyitsusers.

Delivery

Trust

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 20

Professionalandethicalresponsibility
l

Softwareengineeringinvolveswider responsibilitiesthansimplytheapplicationof technicalskills. Softwareengineersmustbehaveinanhonest andethicallyresponsiblewayiftheyaretobe respectedasprofessionals. Ethicalbehaviourismorethansimplyupholding thelaw.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 21

Issuesofprofessionalresponsibility
l

Confidentiality
Engineersshouldnormallyrespecttheconfidentiality oftheiremployersorclientsirrespectiveofwhether ornotaformalconfidentialityagreementhasbeen signed.

Competence
Engineersshouldnotmisrepresenttheirlevelof competence.Theyshouldnotknowinglyacceptwork whichisoutwiththeircompetence.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 22

Issuesofprofessionalresponsibility
l

Intellectualpropertyrights
Engineersshouldbeawareoflocallawsgoverningtheuseof intellectualpropertysuchaspatents,copyright,etc.They shouldbecarefultoensurethattheintellectualpropertyof employersandclientsisprotected. Softwareengineersshouldnotusetheirtechnicalskillsto misuseotherpeoplescomputers.Computermisuseranges fromrelativelytrivial(gameplayingonanemployersmachine, say)toextremelyserious(disseminationofviruses).

Computermisuse

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 23

ACM/IEEECodeofEthics
l

TheprofessionalsocietiesintheUShave cooperatedtoproduceacodeofethicalpractice. Membersoftheseorganisationssignuptothe codeofpracticewhentheyjoin. TheCodecontainseightPrinciplesrelatedtothe behaviourofanddecisionsmadebyprofessional softwareengineers,includingpractitioners, educators,managers,supervisorsandpolicy makers,aswellastraineesandstudentsofthe profession.
SoftwareEngineering,8th edition.Chapter1 Slide 24

IanSommerville2006

Codeofethicspreamble
l

Preamble
Theshortversionofthecodesummarizesaspirationsatahigh leveloftheabstractiontheclausesthatareincludedinthefull versiongiveexamplesanddetailsofhowtheseaspirations changethewayweactassoftwareengineeringprofessionals. Withouttheaspirations,thedetailscanbecomelegalisticand tediouswithoutthedetails,theaspirationscanbecomehigh soundingbutemptytogether,theaspirationsandthedetails formacohesivecode. Softwareengineersshallcommitthemselvestomakingthe analysis,specification,design,development,testingand maintenanceofsoftwareabeneficialandrespectedprofession. Inaccordancewiththeircommitmenttothehealth,safetyand welfareofthepublic,softwareengineersshalladheretothe followingEightPrinciples:
SoftwareEngineering,8th edition.Chapter1 Slide 25

IanSommerville2006

Codeofethicsprinciples
l

PUBLIC
Softwareengineersshallactconsistentlywiththepublic interest. Softwareengineersshallactinamannerthatisinthebest interestsoftheirclientandemployerconsistentwiththepublic interest. Softwareengineersshallensurethattheirproductsandrelated modificationsmeetthehighestprofessionalstandardspossible.

CLIENTANDEMPLOYER

PRODUCT

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 26

Codeofethicsprinciples
l

JUDGMENT
Softwareengineersshallmaintainintegrityandindependence intheirprofessionaljudgment. Softwareengineeringmanagersandleadersshallsubscribeto andpromoteanethicalapproachtothemanagementof softwaredevelopmentandmaintenance. Softwareengineersshalladvancetheintegrityandreputationof theprofessionconsistentwiththepublicinterest.

MANAGEMENT

PROFESSION

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 27

Codeofethicsprinciples
l

COLLEAGUES
Softwareengineersshallbefairtoandsupportiveof theircolleagues.

SELF
Softwareengineersshallparticipateinlifelong learningregardingthepracticeoftheirprofession andshallpromoteanethicalapproachtothepractice oftheprofession.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 28

Ethicaldilemmas
l

Disagreementinprinciplewiththepoliciesof seniormanagement. Youremployeractsinanunethicalwayand releasesasafetycriticalsystemwithoutfinishing thetestingofthesystem. Participationinthedevelopmentofmilitary weaponssystemsornuclearsystems.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 29

Keypoints
l

Softwareengineeringisanengineeringdisciplinethatis concernedwithallaspectsofsoftwareproduction. Softwareproductsconsistofdevelopedprogramsand associateddocumentation.Essentialproductattributes aremaintainability,dependability,efficiencyandusability. Thesoftwareprocessconsistsofactivitiesthatare involvedindevelopingsoftwareproducts.Basicactivities aresoftwarespecification,development,validationand evolution. Methodsareorganisedwaysofproducingsoftware.They includesuggestionsfortheprocesstobefollowed,the notationstobeused,rulesgoverningthesystem descriptionswhichareproducedanddesignguidelines.
SoftwareEngineering,8th edition.Chapter1 Slide 30

IanSommerville2006

Keypoints
l

CASEtoolsaresoftwaresystemswhicharedesignedto supportroutineactivitiesinthesoftwareprocesssuchas editingdesigndiagrams,checkingdiagramconsistency andkeepingtrackofprogramtestswhichhavebeenrun. Softwareengineershaveresponsibilitiestothe engineeringprofessionandsociety.Theyshouldnot simplybeconcernedwithtechnicalissues. Professionalsocietiespublishcodesofconductwhichset outthestandardsofbehaviourexpectedoftheir members.

IanSommerville2006

SoftwareEngineering,8th edition.Chapter1

Slide 31

You might also like