![Page 1: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/1.jpg)
1
COMP61511(Fall2018)SoftwareEngineeringConcepts
InPracticeWeek5
BijanParsia&ChristosKotselidis< , @manchester.ac.uk>
(bugreportswelcome!)bijan.parsia christos.kotselidis
![Page 2: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/2.jpg)
2
Let'sLookAtSomeCodeAbitoninversionofcontrolAbitonperformanceanalysis
![Page 4: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/4.jpg)
3.2
ClassesOnewayofthinkingofaclassisasanabstractdatatypeplusinheritanceandpolymorphism.—McConnell,6.1
(Thereareotherwaysofthinkingaboutaclass!)
![Page 5: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/5.jpg)
3.3
ProblemsClassesSolveA isaproblemthatcreationsolvesReasontoCreateaClass
ModellingRealorabstractobjects
ComplexityManagementReduceorIsolateComplexityHidedetails,limiteffects,groupcontrol
OrganisationGroupfunctionality,managevariants,reuse
Youcanalwaysask:Whatproblem?&Isit(well)solved?
![Page 6: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/6.jpg)
3.4
SOLIDPrinciplesOfClassDesignSynthesisedby :BobMartin
SRP Aclassshouldhaveone,andonlyone,reasontochange.
OCP Youshouldbeabletoextendaclassesbehavior,withoutmodifyingit.
LSP Derivedclassesmustbesubstitutablefortheirbaseclasses.
TheSingleResponsibilityPrincipleTheOpenClosedPrincipleTheLiskovSubstitutionPrinciple
![Page 7: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/7.jpg)
3.5
SOLIDPrinciplesOfClassDesignSynthesisedby :BobMartin
ISP Makefinegrainedinterfacesthatareclientspecific.
DIP Dependonabstractions,notonconcretions.
TheInterfaceSegregationPrincipleTheDependencyInversionPrinciple
![Page 8: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/8.jpg)
3.6
SOLIDPrinciplesCreditPrinciple Creator/Coiner
SRP,ISP,DIP BobMartin
OCP BertrandMeyer
LSP BarbaraLiskov
![Page 9: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/9.jpg)
3.7
ClassRelationsFunctionalityisdividedacrossclasses(SRP,ISP)
Howthoseclassesinteractiscritical(ISP,DPSP)TheyworktogetherInacontrolledway(wehope!)(SRP,ISP)
Thinkunitvs.integrationtesting!Viatheirinterfaces
(Some)Kindsofrelations:1. Is-A(Inheritence)2. Has-A(Composition)3.Works-With(Collaboration)
![Page 10: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/10.jpg)
3.8
InheritanceClassAspecializesClassB
ClassAandBsharesomethingPhysically:Code,variables,interfaces...Conceptually:AisakindofB
LSP:anAcansubstituteforaBCallersdon'thavetoknowthespecialisingbehavior
SubclassesextendSuperclassesAddnewmethods
SubclassesoverrideSuperclassesPolymorphism
Criticalanddangerous
![Page 11: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/11.jpg)
3.9
CompositionAlotmoreiswrittenaboutinheritancethanaboutcontainment,but that's because inheritance is more tricky and error-prone, not because it's better. Containment is the work-horsetechniqueinobject-orientedprogramming.
![Page 12: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/12.jpg)
3.10
Composition(2)ClassBis(partly)madeofClassA
AnotsubstitutableforBCertainlynotconceptually
BdelegatessomeaspectstoAPersonhas-anameLetaNameclassmanageStructureofnames
SeeManipulationofnames
falsehoodsaboutnames
Theworldexhibitsfractalcomplexity
![Page 13: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/13.jpg)
3.11
CollaborationClasseshaveresponsibilitiesIndividualclassesmaynotbeself-sufficientOtherclasseswhichhelpfulfiltheresponsibilitiesarethecollaborators
CollaboratorsmaybecoupledtoagreaterorlessordegreeInheritancegenerallyyieldstighercouplingsCompositiongenerallyyieldsmoremoderatecouplingsUsingcollaboratorservicesgenerallyisevenlooser
LSPloosenscouplingsPersonrequiresName
Oranysubclassthereof
![Page 14: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/14.jpg)
3.12
ReadabilityAndUnderstandabilityReadability:easeofcomprehendingthecodeUnderstandability:easeofcomprehendingthesoftwaresystem
Abstractionistheconnection
Recall
![Page 16: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/16.jpg)
4.2
RoutinesOnewayofthinkingaboutaroutineisasanoperationforanabstractdatatype.
Another way of thinking about a routine is as a (typically)named, invocable, block of code with a designatedfunctionality(orpurpose).
RoutinesnameandencapsulatebehaviorAtafinegrainedlevel
Routinesarethesmallestunitofabstraction
![Page 17: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/17.jpg)
4.3
Routines&ClassesClassespackageroutines
RoutinesprovidetheexternalinterfaceRoutinesprovidetheinternalimplementationMixingthesebreaksencapsulation
Thesetofclassroutines(methods)Definethebehaviouroftheclass
![Page 18: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/18.jpg)
4.4
ProblemsRoutinesSolveThemostimportantreasonforcreatingaroutineistoimprovethe
intellectualmanageabilityofaprogram—McConnell,7,Keypoints
ModellingSingleactionsorservices(verbs)
ComplexityManagementReduceorIsolateComplexityHidedetails,limiteffects,groupbehavior,simplify
OrganisationGroupfunctionality,managevariants,reuse
![Page 19: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/19.jpg)
4.5
WhatIsCohesion?..cohesion is ...the workhorse design heuristic at theindividual-routinelevel.
Forroutines,cohesionreferstohowcloselytheoperationsinaroutinearerelated.—McConnell, .7.2
Ultimately,aroutineisablockofcodeI.e.,aseriesofstatementsI.e.,asequenceofLOC
TheformofrelationdeterminesthetypeofcohesionThestrengthoftherelationdeterminestheamount
Atleast,pairwise
![Page 20: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/20.jpg)
4.6
TheGood:FunctionalCohesionRelation:
contributingtoagivenoperatione.g.,performingacalculationenactingabehaviorprovidingaservice
ThreatstofunctionalcohesionIrrelevantorsuperfluouscodeConfusedoperationspecificationPoorfactoringBook-keepingandauxillarybehaviors
Debuggingcode,logging,etc.
![Page 21: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/21.jpg)
4.7
Non-IdealCohesions:UtilitySequential,Communicational,andTemporal
Maybevalidreasonsforaroutine!Issuesarisewhen
Anon-idealcohesionisconfusedforfunctionalcohesionSeekingnon-idealcohesionbreaksfunctionalcohesion
MitigatingthethreatsEnsureallpertinentoperationsarecaptured
Asroutines!Documentthetargetcohesion
![Page 22: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/22.jpg)
4.8
Non-IdealCohesionsSequential
Relation:orderdependencyanddatasharing(withincompletefunctionalconnection)Problems:concealsoperations,couplesroutines,breaksoperation/routinemapping
CommunicationalRelation:datasharing(butnofunctionalconnection)Problems:Concealsandcouplesoperations
TemporalRelation:"simultaneous"execution(nofunc-conn)Problems:Conceals&confusesops;riskscoupling
![Page 23: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/23.jpg)
4.9
PoorOrNon-CohesionsProcedural
SequencingwithoutdatasharingGoodvariant(?),theorchestrator
LogicalFunctionallyunrelatedoperationswithamastercontrolstructureAndit'sgoodvariant,thedispatcher
"Coincidental"Relation:ExistanceinthesameroutineTheanti-cohesion!
![Page 24: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/24.jpg)
4.10
CohesionBetween...A class is a collection of data and routines that share acohesive,well-definedresponsibility.Aclassmightalsobea collection of routines that provides a cohesive set ofservicesevenifnocommondataisinvolved.—McConnell,6
![Page 25: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/25.jpg)
4.11
CohesionBetween...We'vemostlytalkedaboutinternalcohesion
I.e.,relationsbetweenLOCinsidearoutineRoutinesarebundledinclasses
ToisolatedependenciesEsp.shareddataAlso,implementationneedsAlso,book-keeping
ToformacoherentsetofservicesClassesdeterminetheresponsibilities
Wecanperformsimilarcohesionanalysisoveraclass
![Page 26: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/26.jpg)
4.12
CodeCreationIsProblemSolvingTheproblemwe'retryingtosolveisnotlackofcode
ProblemsolvingisapracticalskillYougetbetteratitthemorethatyoudoit
AlotofproblemsolvingismatchingThereisanexistingsolutionthatyourecallTherearesolutionsthatalmostwork
AndcanbemadetooTherearetechniquesthatarelikelyfruitful
Experiencegoesalongway
![Page 27: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/27.jpg)
5.1
Boehm'sEvidence
FollowingslidesderivedfromMakingSoftware,Chapter10
![Page 28: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/28.jpg)
5.2
ReadingPapersThesepapersarechallenging!
EvenmassagedabitforthepractitionerLotsoftechnicaljargonandtechniquesSummarizingavastliteratureChallengingstatsandpresentations
Don'tpanic!ThesearereadandrereadFirstreadingshouldfocusonkeypointsLaterreadingsshouldfocusontheevidence
![Page 29: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/29.jpg)
5.3
TheRoleOfArchitectureKeychallenge(Boehm,MakingSoftware,Chp10)
Howmuchshouldyouinvestinarchitecture?Analogytobuilding
Wepaythearchitect10%ofthecostofabuildingWeshouldspend10%oftheprojectbudgetonarchitecture
Isthisenough?Howwouldweknow?
Note:statisticallygeneralconclusionsmaynotapplyinyourcase!
![Page 30: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/30.jpg)
5.4
Bohem'sResearchQuestions:"Byhowmuchshouldyouexpectthecostofmakingchangesorfixingdefectstoincreaseasafunctionofprojecttimeorproductsize?"
"Howmuchshouldyouinvestinearlyarchitectingandevidence-basedprojectreviewsbeforeproceedingintoproductdevelopment?"
![Page 31: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/31.jpg)
5.5
EconomiesCommoditymanufacturingexhibitseconomiesofscale
Making1chipmaybemuchmoreexpensivethan1000Theunitcostdiminishesasthenumberofunitsincreases
Softwareend-unitcostsare(canbe)zeroCheaptomakeacopy!
Installation&configurationmaynotbeSofocusonlinesofcodeorbitsoffunctionality
SoftwareexhibitsdiseconomiesofscaleTheunitcostrisesasthenumberofunitsincreases
Potentiallyexponential!Pgs166-167esp.useful
![Page 32: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/32.jpg)
5.6
CostRatiosWhat'stheratioofcosttofixearlyvs.late?
1970s1inrequirementsto≈100postdelivery
19811:100forlargecodebases
But1:5forsmall(2,000-5,000LOC)1996survey
(70-125):12000s
Someevidenceofreductionfrom1:100to1:20Orevenflat(for1millionlinecodebase)
![Page 33: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/33.jpg)
5.7
CostRatios(ForCoursework!)What'stheratioofcosttofixearlyvs.late?
Thinkofyourcoursework!Beforedeployment(akasubmission)
SmallfixesarecheapEsp.inthecurrencyofthecourse,i.e.,points
Afterdeployment(akasubmission)Even"small"fixesareexpensive(orimpossible)
Courseworkbuildsoverthesemester!Soproblemscanbuildup
![Page 34: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/34.jpg)
5.8
TwoStrategiesAvoidlatebugsMakefixinglatebugscheaperFailuretodobothkillstheproject
FailuretodoonemaybemitigatedbytheotherAllouractivitiesshouldaimforthis
Thuswewantarchitecturesthatprecludesomebugsconfinetheeffectsofallbugs
![Page 35: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/35.jpg)
5.9
TwoArchitectureBreakers(Pg376)"20%ofthedefectsaccountfor80%ofthecosts"
"these20%are...duetoinadequatearchitecture..."TwosortsofcostsDirectcostsOpportunitycosts
TwoexamplebigfailurestheOSarchitecturedidn'tsupportfail-overwhenprocessorsfailedlackedakeyfunctionality
assumingallmessagesareshortthusborkingon1millioncharactermessages
![Page 36: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/36.jpg)
5.10
TradeOffsMoreupfrontarch
Costs!Runsriskofoverruns
SincelesstimeforeverythingelsePotentially,gettingarchright
Reducesreworktime
Note,changingrequirementscankillgettingitright
![Page 37: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/37.jpg)
5.11
SweetSpots
![Page 38: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/38.jpg)
5.12
Summary(Pg403)"...thegreatertheproject'ssize,criticality,andstability,the greater the need for validated architecture feasibilityevidence.
"veryverysmalllow-criticalityprojectswithhighvolatility,thearchitectingeffortsmakelittledifference"
Note:Thereareothercostdrivers;checktheassumptions!
![Page 39: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/39.jpg)
6.1
ATouchOfManagement
![Page 40: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/40.jpg)
6.2
ScopeJustafewpoints
SoftwareengineeringisvastJustmanagementisvast
3ManagementLoci1. Technical2. Organisational3. People
Otherpeople!You!(Butweputthisunderprofessionalism)
![Page 41: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/41.jpg)
6.3
TechnicalManagementVersionControlandBackups
EvenforyourownprivatestuffAlwaysForyourdissertationtext,SEs,etc.
ConfigurationSystem,tools,environmentKnowhowtogettoacleansystemAuto
Justenoughdocumentation
![Page 42: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/42.jpg)
6.4
MethodologySeeAgileClass
But!Methodologyisn'tapanaceaProcessdoesn'tensureresults"Simpletounderstand,difficulttomaster"
Copout?Haveamethodology
HoweverlightweightandidiosyncraticConsistentpracticesareimprovable
Firstimprovementoninconsistentpractices:Makethemconsistent!
![Page 43: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/43.jpg)
6.5
OrganisationTakeadynamicview
AnimprovingorganisationisdesirableAgoodorganisationisalsodesirableWithincertainbounds,improvingisbetter
Goodnessvs.FitAnorganisationcanbegoodinmanydimensionsButthewrongfitforyouYouneedtoassessboth
Sometimesa"worse"organisationisabetterfit
![Page 44: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/44.jpg)
6.6
WhatProgrammersAreDoing
![Page 45: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/45.jpg)
What(Novice)ProgrammersAreDoing
Chapter26.NoviceProfessionals:RecentGraduatesinaFirstSoftwareEngineeringJob
![Page 46: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/46.jpg)
6.7
6.8
StrengthsAndWeaknesses"""Amongtheirstrengthsare:
ProgrammingReadingandwritingspecificationsDebugging(persistenceandhypothesisgeneration)
Weaknessesinclude:CommunicationsCognitionOrientation(engagingwithalargecodebaseandpreexistingsoftwareteam)"""
Chapter26.NoviceProfessionals:RecentGraduatesinaFirstSoftwareEngineeringJob
![Page 47: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/47.jpg)
6.9
QuestionAsking"Anoverarchingthemeofnewdevelopers’communicationproblemsis
knowinghowandwhentoaskquestionsofothers.
"Ingeneral,novicesdonotaskquestionssoonenough,andoftenstruggletoaskquestionsatanappropriatelevel."
Chapter26.NoviceProfessionals:RecentGraduatesinaFirstSoftwareEngineeringJob
![Page 48: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/48.jpg)
6.10
(Dis)Orientation"Understandinghowteamnormsdifferfromthoseinacademicsettingsconfusedsomesubjects.""Novicesstruggledtocollect,organize,anddocumentthewiderangeofinformationthattheyneededtoabsorb.""Noviceshaddifficultyorientingthemselvesinthelow-informationenvironmentspresentedbytheirprojectteam,codebase,andresources."Somenovicesfeltwoefullyisolatedfromtheirteams,sometimesnotevenknowingallthemembersoftheirteam,andrarelyknowingwhototalktoaboutcertainissues(orwherethatperson’sofficewas)."
![Page 49: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/49.jpg)
6.11
Techno-SocialSkillsTechnicalskillsareimportant
Butdon'ttypicallydominateTechnicalabilitywon'tmakeyouflourish
thoughtheyhelp!Lowinformationenvironments
RequiremasteryofinfofindingSocialskillskey
UnderstandingthesystemandteamsGoodquestionaskingskills
Thetwoshouldblend
![Page 51: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/51.jpg)
7.2
ResponsibilitiesToself
Akeysetofresponsibilitiesistoyourself!Youhavethestrongestandmostfundamentalresponsibilitythere!
ToothersInsideyourcircleInsideyourorganisationWithwhomyouhavecommercialobligations"Theprofession"Societyatlarge
![Page 52: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/52.jpg)
7.3
WideResponsibilities"Smallbugs"leadtosecurityfails
Thatcompromisetheprivacyofmillionsorbillions"Smallinefficiencies""
Hugecarbonfootprint"Harmless"businessmodels
Candistort(orenhance!)societyYouaretheproduct
Softwareproblemscaneasilybecomeglobalproblems
![Page 53: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/53.jpg)
7.4
PersonalVirtuesMcConnelltalksofseveral
(InterestingdiscussioninMakingSoftwareaswell)Mostlyaboutwhatmakesagoodprogrammer
OrteammemberKeyonestoconsider
IntellectualHonestyandHumilityCuriosityHabits
![Page 54: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/54.jpg)
7.5
SoftwareEngineeringIsChallenging!Aswe'veseen!
"Insoftwaredevelopment,evenbasicknowledgechangesrapidly.Thepersonwhograduatedfromcollege10yearsafteryoudidprobablylearnedtwiceasmuchabouteffectiveprogrammingtechniques."—McConnell, .
PartofprofessionalismIskeepingup
BlogsCheckoutatextbookeveryfewyearsDedicatedtimetolearning!
33.8
![Page 55: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/55.jpg)
7.6
SoftwareEngineeringIsChallenging!
![Page 56: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/56.jpg)
7.7
SoftwareEngineeringIsChallenging!Aswe'veseen!
"Olderprogrammerstendtobeviewedwithsuspicionnotjustbecausetheymightbeoutoftouchwithspecifictechnologybutbecausetheymightneverhavebeenexposedtobasicprogrammingconceptsthatbecamewellknownaftertheyleftschool"—McConnell, .
Ageism,sexism,ablism(andseveralother-isms)arebigproblemsparticularlyinCompSciandSoftEng
CSandSEalsoshowagenerousspiritLookatmanyopensourcesoftwareprojects
33.8
![Page 57: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/57.jpg)
7.8
AgeismHeadline:
Headline:Headline:Quote:"Facebook’sMarkZuckerbergtoldtheaudience:“Iwanttostresstheimportanceofbeingyoungandtechnical.Youngpeoplearejustsmarter.”
Headline: <--Keyonetoread!
Howthetechindustry'syouthcultisdrivingolderworkerstoplasticsurgery
TheBrutalAgeismofTechIsSiliconValleyAgeistOrJustSmart?
SiliconValley'sdirtysecret-agebias
![Page 58: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/58.jpg)
7.9
WomanInCS:AStrikingGraph
AnatomyofanEnduringGenderGap
![Page 59: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/59.jpg)
7.10
WomanInCS:AnotherGraph
AnatomyofanEnduringGenderGap
![Page 60: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/60.jpg)
7.11
OutrightHarassment
Allsortsofharassment(andthere'salot)Detailssomedisproportionateeffects
"44%ofmenand37%ofwomen"Sexualisedabuse:21%ofwomen/9%menages18to2953%womenages18to29receivedunsolicitedexplicitimages
"35%ofwomen[16%ofmen]...describetheirmostrecentincidentaseitherextremelyorveryupsetting"
TheInternetProblemWeDon'tTalkEnoughAboutOnlineHarassment2017
![Page 61: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/61.jpg)
7.12
ProfessionalismWeconceiveourselvesasaprofession
Seethe or orWehaveprofessionalstandardsWetakeresponsibility
Creativity,spontaneity,funArenotopposedtoprofessionalism!
BCS ACM IEEE
PythonCommunityCodeofConductGNUKindCommunicationsGuideliens
![Page 65: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/65.jpg)
8.2
Thanks!Fourthtimeforme!
SecondtimeforChristos!!
Wehopeyou'velearnedstuff
Wehave!
![Page 66: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/66.jpg)
8.3
CourseworkYou'vedonealot
CW4stilltocome!Let'stalkaboutthereport
![Page 67: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/67.jpg)
8.4
Exam2hrlimitElectronicAfastpersonshouldtake≈1hrFast!≈doesbest
FinalversionstillmustgothroughmoderationSoIcan'tsayfirmlyButexpect
23+somethingMCQs3-5ShortEssay
![Page 68: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/68.jpg)
8.5
MScProjectsProjectbookwillbecomingoutsoon
Pickprojectsthatchallengeyou!Specialconsiderationsifyou'reinterestedinPhDstudies
Threeprojectsfromme(atleast)potentiallyofinterest:CourseworkToolsGeneratingmultiplechoicequestionsbasedondigitalisedclinicalpathwaysLegalTechProjects
![Page 69: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/69.jpg)
8.6
SUPERFUN!WedisHALLOWEEN!!!
Iwillbedoingsomething!Lotsgoingon!
thisweekendattheVictoriaBaths!!!AweekfromMonday!
Remember,RemembertheFifthofNovememberGuyFawkesnight!Awesomefireworksandgiantbonfires!!
Don'tmissitIrecommendHeatonPark(whichisawesomeanwyay)PlattFieldParkiscloser
Coolmovies
https://tinyurl.com/bonfires2018
![Page 70: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/70.jpg)
8.7
THRILLS.....
![Page 71: COMP61511 (Fall 2018) Software Engineering Concepts In ...syllabus.cs.manchester.ac.uk/pgt/2018/COMP61511/... · The unit cost diminishes as the number of units increases Software](https://reader033.vdocuments.site/reader033/viewer/2022043022/5f3dacbb4d912421fc0c9bef/html5/thumbnails/71.jpg)
8.8
....AndCHILLS!!!!!