Implementation Model

2,043 views

Published on

Published in: Education, Technology, Business
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,043
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
36
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

Implementation Model

  1. 1. ImplementationModel
  2. 2. Sources •IvarJacobson,GradyBooch,JamesRumbaugh.TheUnifiedSoftwareDevelopmentProcess(ObjectTechnologySeries)-1998. •AhmadK.Shuja,JochenKrebs.IBMRationalUnifiedProcessReferenceandCertificationGuide—SolutionDesigner.IBMPress,2008. •McConnell.,Steve.CodeCompleteSecondEdition-Apracticalhandbookofsoftwareconstruction.MicrosoftPress.2009 •Sommerville,Ian.SoftwareEngineeringNinthEdition. Pearson,2011.
  3. 3. •ImplementationModel •ImportantConcepts •Integration
  4. 4. Before.. Cartoon: NP Designersand developersdon'treallyspeakthesamelanguage. (From: http://chetchat.blogspot.fr/2014/08/cartoon-np.html)
  5. 5. Somewordsenvolved •Implementation •Construction? •Coding? Codingimplythemechanicaltranslationofapreexistingdesignintoacomputerlanguage; Implementation(SWconstruction)isnotatallmechanicalandinvolvessubstantialcreativityandjudgment. Steve McConnell lead for the Construction Knowledge Area of the Software Engineering Body of Knowledge (SWEBOK) project.
  6. 6. Implementationisvital Implementationisthecentralactivityinsoftwaredevelopment.Requirementsandarchitecturearedonebeforeconstructionsothatyoucandoconstructioneffectively.Systemtesting(inthestrictsenseofindependenttesting) isdoneafterconstructiontoverifythatconstructionhasbeendonecorrectly. Constructionisatthecenterofthesoftware- developmentprocess. Steve McConnell
  7. 7. Implementationisvital Constructionistheonlyactivitythat'sguaranteedtobedone.Theidealsoftwareprojectgoesthroughcarefulrequirementsdevelopmentandarchitecturaldesignbeforeconstructionbegins.Theidealprojectundergoescomprehensive,statisticallycontrolledsystemtestingafterconstruction.Imperfect,real-worldprojects,however,oftenskiprequirementsanddesigntojumpintoconstruction.Theydroptestingbecausetheyhavetoomanyerrorstofixandthey'verunoutoftime.Butnomatterhowrushedorpoorlyplannedaprojectis,youcan'tdropconstruction;it'swheretherubbermeetstheroad.Improvingconstructionisthusawayofimprovinganysoftware-developmenteffort,nomatterhowabbreviated. Steve McConnell
  8. 8. ImplementationModel •TheImplementationmodeldescribeshowdesignmodel’selementsareimplementedintermsofcomponents. •Italsodescribeshowcomponentsareorganizedaccordingtostructurationandmodularizationapproachesavailableintheenvironmentolanguage. •Itimpliesdependence
  9. 9. ImplementationModel From: "The Unified Software Development Process (Object Technology Series)“-1998
  10. 10. More in deep… TheImplementationexplainshowtodevelop, organize,unittest,andintegratethecomponentsastheyareincrementallydevelopedineveryiteration.Testingduringimplementationislimitedtounittesting.Othertests,suchasthesystemtestandtheintegrationtest,arecarriedoutwithintheTest.
  11. 11. More in deep… Sommervilleintroducessomeaspectsofimplementationthatareparticularlyimportanttosoftwareengineeringthatareoftennotcoveredinprogrammingtexts 1.Reuse.Mostmodernsoftwareisconstructedbyreusingexistingcomponentsorsystems.Whenyouaredevelopingsoftware,youshouldmakeasmuchuseaspossibleofexistingcode. 2.Configurationmanagement.Duringthedevelopmentprocess,manydifferentversionsofeachsoftwarecomponentarecreated.Ifyoudon’tkeeptrackoftheseversionsinaconfigurationmanagementsystem,youareliabletoincludethewrongversionsofthesecomponentsinyoursystem. 3.Host-targetdevelopment.Productionsoftwaredoesnotusuallyexecuteonthesamecomputerasthesoftwaredevelopmentenvironment.Rather,youdevelopitononecomputer(thehostsystem)andexecuteitonaseparatecomputer(thetargetsystem).Thehostandtargetsystemsaresometimesofthesametypebut,oftentheyarecompletelydifferent.
  12. 12. Aboutreuse Softwarereuseispossibleatanumberofdifferentlevels: 1. The abstraction level. 2. The object level 3. The component level 4. The system level
  13. 13. •Todefinetheorganizationofthecodeintermsofimplementationsubsystems(maybeorganizedinlayers) •Toimplementthedesignelementsintermsofimplementationelements(sourcefiles,binaries, executableprograms,andothers) •Totestthedevelopedcomponentsasunits •Tointegratetheresultsproducedbyindividualimplementers(orteams)intoanexecutablesystem Purposes
  14. 14. •Verifyingthatthegroundworkhasbeenlaidsothatconstructioncanproceedsuccessfully •Determininghowyourcodewillbetested •Designingandwritingclassesandroutines •Creatingandnamingvariablesandnamedconstants •Selectingcontrolstructuresandorganizingblocksofstatements •Unittesting,integrationtesting,anddebuggingyourowncode •Reviewingotherteammembers'low-leveldesignsandcodeandhavingthemreviewyours •Polishingcodebycarefullyformattingandcommentingit •Integratingsoftwarecomponentsthatwerecreatedseparately •Tuningcodetomakeitfasterandusefewerresources Specifictasksinvolved Steve McConnell
  15. 15. •TheImplementationModelisacollectionofcomponentsandtheimplementationsubsystemsthatcontainthem. •Thetermmodelhereisnotmeanttoconnotediagramsandothermoreabstractrepresentations.Instead,anImplementationModelconsistsofImplementationElements,ImplementationSubsystems,andelementscreatedtosupportdevelopertesting. ImplementationModel
  16. 16. Workersinvolvedin theImplementationModel
  17. 17. •TheSoftwareArchitectisresponsibleforstructuringtheImplementationModel. •StructuringtheImplementationModelinvolvesestablishingtheImplementationModelstructure,adjustingimplementationsubsystems,definingimportsforeachimplementationsubsystem,decidinghowtotreatexecutableprogramsandotherderivedobjects,decidinghowtotreattestassets,updatingtheimplementationview, andevaluatingtheImplementationModel ImplementationModel
  18. 18. ImplementationModel
  19. 19. Workersinvolvedin theImplementationModel
  20. 20. So…
  21. 21. •Implementdesignelements—TheImplementerimplementstheelementsinthedesignmodel;thatis,hewritessourcecode, adaptsexistingsourcecode,compiles,andlinksandperformsunittests.Ifhediscoversdefectsinthedesign,hesubmitsreworkfeedbackonthedesign. •Fixcodedefects—TheImplementeralsofixescodedefectsidentifiedduringtheunittestsandperformsfurtherunittestingtoensurethatnonewdefectshaveemergedandthatthechangeisverified. •Evaluatequality—Finally,theImplementerreviewsthecodetoevaluatequalityandcompliancewiththeProgrammingGuidelines. ImplementationModelconsiderate!!
  22. 22. TheImplementerisresponsibleforthefollowing: •Implementingdesignelements-Thisinvolvespreparingforimplementation,transformingthedesigntoimplementation,completingtheimplementation,evaluatingtheimplementation,andprovidingfeedbacktodesign.Inimplementingthedesignelements,theImplementerproducesanImplementationElementandImplementationSubsystem ImplementComponents
  23. 23. TheImplementerisresponsibleforthefollowing: •Analyzingruntimebehavior—Thisisdonebydeterminingtherequiredexecutionscenario,preparingimplementationcomponentsforruntimeobservation, preparingtheenvironmentforexecution,executingthecomponentandcapturingbehavioralobservations, reviewingbehavioralobservationsandisolatinginitialfindings,analyzingfindingstounderstandrootcauses, identifyingandcommunicatingfollow-upactivities,andevaluatingtheresults ImplementComponents
  24. 24. TheImplementerisresponsibleforthefollowing: •ImplementingtestabilityelementsandproducingtheTestabilityElementandtheTestStub—Thisinvolvesimplementingandunittestingdrives/stubsandimplementingandunittestingtheinterfacetotheautomatedtesttool(UnitFramework,TestNG…). ImplementComponents
  25. 25. TheImplementerisresponsibleforthefollowing: •ImplementingandproducingtheDeveloperTest—Thisisachievedbyrefiningthescopeandidentifyingthetests,selectingtheappropriateimplementationtechniques,implementingthetest, establishingexternaldatasets,verifyingthetestimplementation, andmaintainingtraceabilityrelationships. •ExecutingdevelopertestsandproducingtheTestLog—Thisrequiresexecutingtheunittests,evaluatingtheexecutionoftests, verifyingthetestresults,andrecoveringfromhaltedtests. ImplementComponents
  26. 26. So…
  27. 27. So…
  28. 28. So…
  29. 29. Integration Largesoftwaresystemsrequiremultiplesoftwarecomponents,someofftheshelfandotherscustomdeveloped,tobeintegratedintoawholesystem.Thisisaspecializedsoftwaredevelopmentactivitythatcombinesseparatesoftwarecomponentstoproduceasoftwaresystem. ImportantConcepts
  30. 30. Integrationisdoneatseveralstagesandlevelsduringtheimplementation. -Integratingtheworkofateamworkinginthesameimplementationsubsystembeforereleasingthesubsystemtosystemintegrators -Integratingsubsystemsintoacompletesystem. Integration
  31. 31. Incrementalintegrationmeansthatcodeiswrittenandtestedinsmallpiecesandthencombinedintoaworkingwholebyaddingonepieceatatime. Thebenefitsincludeeasyidentificationoffaults, fulltestingofcomponents,andearlyfeedbackontheexecutionofthesystem. Integration
  32. 32. So…
  33. 33. ImportantConcepts Prototypes Prototypesareusedtocheckbusinessviability,todemonstratekeytechnology,toobtainprojectcommitmentorfunding,tofurtherunderstandrequirements,andtocheckusability
  34. 34. ImportantConcepts RuntimeObservationand Analysis Thisconceptencompassestheobservationofthesoftwareduringruntimeexecutionandanalysisofthecapturedannotationswherepathsaretracedthroughsoftwarecomponentsandthenaggregatedtounderstandglobalsystembehaviorviastatisticalinference.
  35. 35. ImportantConcepts RuntimeObservationand Analysis Becauseofthepotentialvolumeofthelow-levelinformationthatcanbecapturedfromruntimebehavior,thespeedatwhichthatinformationisgenerated,andthesubsequentdifficultyinunderstandingthepotentiallyvastamountofinformation,automatedtoolsupportisakeyfactorinmakingthispracticefeasible.
  36. 36. ABuildisanoperationalversionofasystemorapartofthesystemthatdemonstratesasubsetofthecapabilitiesprovidedinthefinalproduct.TheBuildconstitutesanintegralpartoftheiterativedevelopmentlifecycleandprovidesreviewpoints.Notethatinalliterativeincrementaldevelopmentprocesses,progressisdemonstratedviaanexecutable,a(working)softwaredeliverableratherthanjustdocumentsorthelike.Thelifecycle“providesreviewpoints,”buttheBuildisreviewableandobjectivelydemonstratesprogresstowardcompletion.TheBuildisexaminedatthereviewpointsthatthelifecycleprovides. Build
  37. 37. Build ThepurposeofaBuild,constructedfromotherelementsintheimplementation,istodeliveratestablesubsetoftheruntimefunctionsandcapabilitiesofthesystem.
  38. 38. IntegrationBuildPlan Thisartifactprovidesadetailedplanforintegrationwithinaniteration.Thepurposeofthisartifactistodefinetheorderinwhichtoimplementthecomponents,determinewhichbuildstocreatewhenintegratingthesystem,anddefinehowtheyaretobeassessed.TheImplementerusesthisartifacttoplantheorderinwhichtoimplementdesignelementsandwhatandwhentodelivertosystemintegration.
  39. 39. IntegrationBuildPlan -Integratorleadstheplanningandexecutionofimplementationelementintegrationtoproducebuilds. -TheIntegratorusestheintegrationbuildplanasaplanningtool
  40. 40. DeveloperTest ThepurposeoftheDeveloperTestistoprovidetheimplementationofasubsetofrequiredtestsinanefficientandeffectivemanner. MostoftheDeveloperTestsarecreatedinthesametimeframesasthesoftwarecomponentsthatneedtobetested.
  41. 41. Component-UML Amodularpartofasystemthatencapsulatesitscontentsandwhosemanifestationisreplaceablewithinitsenvironment.Acomponentdefinesitsbehaviorintermsofprovidedandrequiredinterfaces.Assuch,acomponentservesasatype,whoseconformanceisdefinedbytheseprovidedandrequiredinterfaces(encompassingboththeirstaticaswellasdynamicsemantics).
  42. 42. Anencapsulatedpartofasystem,ideallyanon-trivial,nearlyindependent,andreplaceablepartofasystemthatfulfillsaclearfunctioninthecontextofawell-definedarchitecture.Thisincludes: •designcomponent-asignificantencapsulatedpartofthedesign,andsoincludesDesignSubsystemsandsometimessignificantDesignClassesandDesignPackages. •implementationcomponent-asignificantencapsulatedpartoftheimplementation,generallycodethatimplementsadesigncomponent Component-RUP
  43. 43. ComponentReplaceability(RUP) •Source-FileReplaceability:Thischaracteristicmakesiteasierforcomponentsourcecodetobeversion- controlled,baselined,andre-used •DeploymentReplaceability:thereisonefileoronesetoffilesthatdeploythecomponentandnoothercomponent •Run-TimeReplaceability:Thisenablessoftwaretobeupgradedwithoutlossofavailability. •LocationTransparency
  44. 44. More aboutComponents •http://www.agilemodeling.com/artifacts/componentDiagram.htm •http://www.ibm.com/developerworks/rational/library/dec04/ bell/
  45. 45. Finally… don’tforgettheTraceability!
  46. 46. Finally… don’tforgettheTraceability!
  47. 47. Finally… don’tforgettheTraceability!
  48. 48. ImplementationEnviromentFeatures(Sommerville) Asoftwaredevelopmentplatformshouldprovidearangeoftoolstosupportsoftwareengineeringprocesses.Thesemayinclude: 1.Anintegratedcompilerandsyntax-directededitingsystemthatallowsyoutocreate,edit,andcompilecode. 2.Alanguagedebuggingsystem. 3.Graphicaleditingtools,suchastoolstoeditUMLmodels. 4.Testingtools,suchasJUnitthatcanautomaticallyrunasetoftestsonanewversionofaprogram. 5.Projectsupporttoolsthathelpyouorganizethecodefordifferentdevelopmentprojects.
  49. 49. Be careful •Implementationhavepatternsalso…. •SeeCleanCodeofRobertC.Martin,andImplementationPatternsofKentBeck
  50. 50. Be careful(http://www.agilemodeling.com/artifacts/componentDiagram.htm) UML1.0 UML2.0
  51. 51. Thanks for your attention fdgiraldo@uniquindio.edu.co

×