Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

17
Training Offerings Ganesh Samarthyam (CodOps Technologies LLP) About the Trainer Ganesh Samarthyam is co-founder of CodeOps Technologies. Earlier, he worked for Siemens (Corporate Research and Technologies, Bangalore) in “Software Architecture and Development" team for the last 6+ years. Before Siemens, he worked in Hewlett-Packard’s C++ compiler team, Bangalore for 4.5 years. He also served as member of ANSI/ISO C++ standardization committee (JTC1/SC22/WG21) from 2005 to 2007 representing HP. He has Software Engineering Certified Instructor(SECI) and Professional Software Engineering Master (PSEM) certifications from IEEE. His recent book is “Refactoring for Software Design Smells: Managing Technical Debt” (Morgan Kaufmann/Elsevier; November 2014). For more information, visit his websites: http:// www.designsmells.com, http://www.codeops.tech or his LinkedIn page: http://bit.ly/sgganesh. Trainings Offered Clean Code Training 2 Advanced Core Java Training 4 Effective Object Oriented Programming and Design 6 SOLID Principles and Design Patterns 8 Refactoring in Practice 10 Refactoring to Java 8 12 Software Architecture and Design 15 CodeOps Technologies LLP 1

Transcript of Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Page 1: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Training OfferingsGanesh Samarthyam

(CodOps Technologies LLP)

About the Trainer

Ganesh Samarthyam is co-founder of CodeOps Technologies. Earlier, he worked for Siemens (Corporate Research and Technologies, Bangalore) in “Software Architecture and Development" team for the last 6+ years. Before Siemens, he worked in Hewlett-Packard’s C++ compiler team, Bangalore for 4.5 years. He also served as member of ANSI/ISO C++ standardization committee (JTC1/SC22/WG21) from 2005 to 2007 representing HP. He has Software Engineering Certified Instructor(SECI) and Professional Software Engineering Master (PSEM) certifications from IEEE. His recent book is “Refactoring for Software Design Smells: Managing Technical Debt” (Morgan Kaufmann/Elsevier; November 2014). For more information, visit his websites: http://www.designsmells.com, http://www.codeops.tech or his LinkedIn page: http://bit.ly/sgganesh.

Trainings Offered

Clean Code Training 2 Advanced Core Java Training 4 Effective Object Oriented Programming and Design 6 SOLID Principles and Design Patterns 8 Refactoring in Practice 10 Refactoring to Java 8 12 Software Architecture and Design 15

CodeOps Technologies LLP �1

Page 2: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Clean Code Training Mostsoftwareprojectssufferfromscheduleslippagesandcostoverruns(sometimestheyevengetcancelled)becauseofpoorsoftwarequality.Researchshowsthatdefectintroductionratescanbereducedupto75%byfollowingdisciplinedpersonalpractices!Thiscoursepreciselycoversthesepractices–itdiscussesprovenprogrammingpracticesforcreatingclean(i.e.,robust,stable&maintainable,andsecure)code.

PrerequisiteEntryCriteriaDeveloperswithworkingknowledgeinoneofthefollowinglanguages:C,C++,Java,orC#.Pleaseletusknowthepreferredlanguagesothattheexampleswillbegiveninthatspecificlanguage(oneofC,C++,Java,orC#).

ComprehensiveTraining:• Discusses60specificprogrammingbestpracticesforwritingreliable,stable&

maintainable,andsecurecode;usefulfordevelopersworkinginbothdevelopmentandmaintenanceprojects

• Essentialtrainingforprogrammersworkingindevelopmentprojects

• Example-drivenapproachmakesthetechniqueseasytounderstandandapply

TrainingFeatures:• Introducesimportantprovenbestpracticesforwritingdependablecodetodevelopers

• Introducessystematiccodereviewsandapplystaticanalysistoolstounderstandhowtoeffectivelyfindproblemsinsourcecodeearlyinthedevelopmentlifecycle

• Hands-onexercisestohelpdevelopersinternalizethekeypracticesaswellaskeepthemengagedinthetraining(participantsareexpectedtobringtheirownlaptopsorusethemachinesavailableinthetrainingroom).

CourseContents:• Day1:

• Introductiontowritingdependable(bullet-proof)codewithreal-worldcase-studiesandexamples(1hour)

• 20specifictechniquesforwritingstable,maintainable,andtestablecodewithcodingexamples(6hours)

• Day2:

• 20specifictechniquesforwritingsecurecodewithcodingexamples(3.5hours)

• 20specifictechniquesforwritingreliablecodewithcodingexamples(3.25hours)

• Wrap-upandkeytakeaways(0.25hours)

CodeOps Technologies LLP �2

Page 3: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

KeyBenefits:• Createsawarenessonthecostofdefectsandthevalueofhighqualitysoftware

• Empowersthedeveloperswithknowledgeonspecifictechniquesthatcanbeimmediatelyappliedintheirregularwork

• Followingthesetechniqueswillresultinlesserdefectsinthesoftware–benefitcanbeperceivedthroughreducedcostandmorecustomersatisfaction

• Hands-oncodingexercisesenhancetheunderstandingandhelpsparticipantsapplythelearningintheirday-to-daywork.

CodeOps Technologies LLP �3

Page 4: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Advanced Core Java Training Javaisusedinmorethan3billiondevicestoday;itsuserangefromwebapplicationstolunarlanders.ExcellentskillsincoreJavaisamustforwritinghigh-qualitycodewithintightdeadlines.ThistrainingcoversadvancedfeaturesofJava(suchaslambdaexpressionsandgenerics)indetailaswellasbestpracticesforwritinghigh-qualitycodeusingthesefeatures.

PrerequisiteEntryCriteriaDeveloperswithatleast3yearsofworkingexperienceprogramminginJava.

ComprehensiveTraining:• DiscussesallmajorcoreJavatopics;usefulfordevelopersworkinginbothdevelopment

andmaintenanceprojects

• Example-drivenapproachmakesthetechniqueseasytounderstandandapply

• 3daystrainingthatcoversCoreJavatopicsinconsiderabledepthandbreadth;includesbestpracticesforeffectivelyusingtheadvancedJavafeaturesinpractice

TrainingFeatures:• Introducesimportantprovenbestpracticesforwritingdependablecodetodevelopers

• Hands-onexercisestohelpdevelopersinternalizethekeypracticesaswellaskeepthemengagedinthetraining(participantsareexpectedtobringtheirownlaptopsorusethemachinesavailableinthetrainingroom).

CurriculumforAdvancedCoreJavaTrainingThiscoursecoversthefollowingadvancedCoreJavatopicsinconsiderabledepth.

• GenericsandCollections

• LambdaBuilt-inFunctionalInterfaces

• JavaStreamAPI

• UseJavaSE8Date/TimeAPI

• JavaFileI/O(NIO.2)

• JavaConcurrency

• Persistence/Serialization

• Internationalization

• DesignPatternsinJava(examplesfromJDK)

• AdvancedJavaBestPractices

CodeOps Technologies LLP �4

Page 5: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

KeyBenefits:• TrainsdevelopersonadvancedcoreJavafeatures;developerscanimmediatelystart

applyingthelearningfromthetrainingintheirprojects.

• CoverslanguageandlibraryfeaturesaddedinJavaversions7and8.

CodeOps Technologies LLP �5

Page 6: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Effective Object Oriented Programming and Design Expertiseinsoftwaredesigniskeyfordesigningandimplementinghigh-qualityenterprisesoftwaresystems.Objectorientedprogrammingisthemainstreamprogrammingparadigmfollowedtodayandisusedextensivelyforcreatingindustrial-strengthsoftware.Thiscoursecovershowtoapplydesignprinciplesandpracticesofeffectivesoftwaredesigncreatinghigh-qualityenterprisesystems.

PrerequisiteEntryCriteriaDeveloperswithworkingknowledgeofJava;knowledgeofUMLdesired(butnotmandatory)

ComprehensiveTraining:• Covers20specificdesignprinciples;covers30specifictechniquesandbestpracticesfor

effectivesoftwaredesign.

• Essentialtrainingfordesignersworkingindevelopmentprojects

• Example-drivenapproachmakesthetechniqueseasytounderstandandapply

• Case-studyapproachinwhichtheparticipantswillbeaskedtocreatedesignforsupportingasmallfeaturerequirement;thedesignwillbeanalyzedforcodesmellsandviolationofdesignprinciples.

TrainingFeatures:• 3daysofclassroomtrainingledbyexperiencedinstructor

• Hard-copyofcoursematerial;coursematerialisbasedonthebooksOracleCertifiedProfessionalJavaProgrammerExam(Apress,2013),and“60TipsonObjectOrientedProgramming”(Tata-McGrawHill,2007)both(co-)authoredbythetrainer.

• Interactive,example-drivenlearningthatgivesapracticalexposureonhowtocreateorimprovehigh-qualitydesigns

CourseContents:• Day1:

• IntroductiontoObjectOrientedProgrammingandDesign(2hours)

• FundamentalOOprinciples(4hours)

• Exercises(1hour)

• Day2:

• Introductiontocodesmellsandrefactoring(1hour)

• RefactoringforFowler’scodesmells(3hours)

CodeOps Technologies LLP �6

Page 7: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• BestpracticesandheuristicsforeffectiveOOdesign(2hours)

• Exercises(1hour)

• Day3(casestudy):

• Creatingdesignforasmallfeaturerequirementfromtheparticipant’sproject(1.5hours)

• Analysisofthedesignscreatedbyeachoftheparticipantsforpotentialcodesmellsandviolationsofdesignprinciples;includessuggestionsforimprovement(5.5hours).

KeyBenefits:• Developerswillknowfundamentalsoftwareengineeringprinciplesandhowtoapply

them

• DeveloperswillknowOObestpracticesandhowtoapplytheminpractice

• Developerswillknowaboutcommoncodesmellsandstrategiesforrefactoringthesmells

• Developerswillbebetterequippedforcreatingeffectivedesignsolutions(thatprovidesthebasisforhigh-qualitysoftware)

CodeOps Technologies LLP �7

Page 8: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

SOLID Principles and Design Patterns WhenyoulearnhowtoapplySOLIDprinciplesanddesignpatternsby“discovering”themthroughreal-worldexamplesandcasestudies,you’llrememberthemforever!Bysolvingprogrammingproblems,you’llapplyprinciplesandpatternsinpracticebyidentifyingbadsmellsandrefactorthem.

Creatinghigh-qualitydesignsbyapplyingrelevantprinciplesandpatternsisakeyskillofleadsandarchitects.Ifyouhave3+yearsofdevelopmentexperienceandwanttolearnkeypatterns,thisworkshopiscertainlyforyou.

Prerequisites• DeveloperswithworkingknowledgeofC#/Java;knowledgeofUMLdesired(butnot

mandatory).ProgrammingexamplesandexerciseswillbeprovidedinC#/Java.

• Thisisahands-onsession,sopleasebringyourlaptopstothesession.(Ifyoudon'thavealaptop,youcandopairprogrammingwithotherparticipants).

• EnsurethatVisualStudio(anyversionthatsupportsC#)orEclipse(preferablyJava8)isinstalledinyourmachineforsolvingtheproblems.

Objectives:

• HelpparticipantsunderstandhowtoapplySOLIDdesignprinciplesinpractice

• Helpparticipantsunderstandhowtoapplykeydesignpatternsinpractice

• Helpparticipantsunderstandhowprinciples,patterns,smells,refactoringandtechnicaldebtarerelated

• Helpunderstandhowtoidentifysmellsandrefactorthem;alsouserelevanttoolsforrefactoringasneededproactively.

TrainingFeatures:• 1dayclassroomsessionledbyexperiencedinstructor

• Interactive,example-drivenlearningthatgivesapracticalexposureonhowtocreateorimprovehigh-qualitydesigns;extensivehands-onsessions.

CourseContents:

• Warm-upexerciseonSOLIDprinciplesanddesignpatterns(10:00amto10.30am)

• IntroductiontoSOLIDdesignprinciples,patterns,technicaldebt,smells,andrefactoring(10:00am-10.30am)

• ApplyingSOLIDprinciples(10:30amto01:00pmwith15minutesteabreak)

Lunchbreak(1hour)

CodeOps Technologies LLP �8

Page 9: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• Discoveringcreationalpatterns(FactoryMethod,AbstractFactory,Builder,…)throughexercisesandrefactoring(2.00pmto3:15pm)

• Discoveringstructuralpatterns(Bridge,Composite,Decorator,Flyweight,…)throughexercisesandrefactoring(3:15pmto4:15pmfollowedbyateabreak)

• Discoveringbehaviouralpatterns(Command,Iterator,State,Strategy,TemplateMethod,Visitor,…)throughexercisesandrefactoring(4:30pmto5.45pm)

KeyBenefits:• Developerswillknowfundamentalsoftwareengineeringprinciplesandhowtoapply

them

• Developerswillknowkeydesignpatternsandhowtoapplytheminpractice

• Developerswillknowaboutcommoncodesmellsandstrategiesforrefactoringthesmells

• Developerswillbebetterequippedforcreatingeffectivedesignsolutions(thatprovidesthebasisforhigh-qualitysoftware)

CodeOps Technologies LLP �9

Page 10: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Refactoring in Practice

IntroductionRefactoringisanimportantpracticeforteamstofollowforcreatinghigh-qualitysoftware.RefactoringprocessisintegraltoAgilepracticesandhasreceivedconsiderablefocusinthelastfewyears.Thistrainingonrefactoringfocusesonapplicationofrefactoringconceptsinpracticeinrealworldprojects.Thisisanintermediate-leveltrainingmeantonlyforteamleadsandseniordeveloperswith>4yearsofexperience.

DetailsoftheTrainingProgram• ThetrainingwillbeconductedbyGaneshSamarthyam,anexperiencedtrainer

andauthor.

• Thetrainingwillbefortwo(2)daysandwillcoverthetopicsmentionedbelow.

• Thetrainingwillbefor8hoursperday(excludingtimeforbreaks,actualtraininghourswouldbe6.5hours)forthesetwodaysonthedatesandtimeconvenienttotheclient.

• Amaximumof25participantscantakepartinthistraining.(Limitednumberofparticipantsbecausethistraininginvolveshands-onprogrammingexercisesforrefactoringsmells,numerousexerciseswithextensivediscussionswithparticipants).

• Trainingmaterials/handoutswillbeprovidedtoalltheparticipants.

• Trainingwillbeconductedatclientpremisesoratafacilityarrangedbytheclient.

• Theclientshouldprovidetheinfrastructuretoconductthetraining.Theinfrastructurewouldincludethetrainingroomwithprojectorandwhiteboard.PCs/laptopsareNOTrequiredforconductingthistraining.

PrerequisiteEntryCriteria• Onlyforseniordevelopersorteamleadswithminimum4yearsofexperience.

• ParticipantsareassumedtohaveworkingknowledgeinoneofC++/Java/C#;knowledgeofUMLdesired(butnotmandatory).CodingexamplesaremostlyinJavawithsomeexamplesinC++.

TrainingFeatures• 2daysofclassroomtrainingledbytwoexperiencedinstructors

• Hard-copyofthecoursematerial

CodeOps Technologies LLP �10

Page 11: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• Interactive,hands-on,practicalandexample-driventraining

KeyBenefits• Participantswillbearmedwithin-depthknowledgeoncode/designsmellsand

howtorefactortheminpractice.

• Theparticipantswillknowspecifictoolsandtechniquesfordetectingdesignsmellsandforrefactoringthem.

DetailedCourseContents• Day1–FirstHalf(3hours):

• Introductiontosmellsandrefactoring(0.5hours) • Anexerciseonfindingsmellsfromexamples(1.0hour) • Code-levelrefactoring(0.3hours) • Introductiontodesign-levelrefactoring(0.2hours)• Applyingtheabstractionprinciple(1hour)

• Assigninguniqueresponsibilities• Creatingcoherentabstractions

• Day1–SecondHalf(3.5hours):• Toolsfordesignsmellsdetectionandrefactoring(0.5hours) • Grouphands-onexerciseonrunningtoolsonsamplecodebase(1hour) • Presentationofresultsfromgroups(1hour) • Applyingencapsulationprinciple(1hour)

• Hidingimplementationdetails• Hidingvariations

• Day2–FirstHalf(3hours): • Applyingmodularizationprinciple(1hour)

• Movingfeaturesbetweenobjects• Organizingdata• Makingmethodcallssimpler

• Groupexercise(4groups)onrefactoringsmells(1hour) • Applyinghierarchyprinciple(1hour)

• Exerciseonrefactoringhierarchysmells(15minutes)• Dealingwithgeneralization• Ensuringsubstitutability• Creatingharmonioushierarchies

• Day2–SecondHalf(3.5hours):• Presentationfromgroupsonresultsonrefactoringexercise(1.5hours) • Opendiscussiononexerciseresults(0.5hours) • Big(i.e.,largescale)refactoring(0.5hours) • Communicationandhighlevelrefactoring(0.5hours) • Summary,keytakeawaysandwrap-up(0.5hours)

CodeOps Technologies LLP �11

Page 12: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Refactoring to Java 8 Whythistraining?

TheJava8releasehassomeofthemostimportantfeatureaddimonstotheJavalanguageandthelibrary.KeyfeaturesaddedinJava8includelambdafuncmons,streamAPIanddateandmmeAPI.ThemainbenefitofJava8featuresisproduc[veprogramming:genngworkdonemoreefficientlyandeffecmvely.TheunderlyingapproachisaparadigmshiqfromobjectorientedprogrammingviewsupportedfromtheearlyversionsofJava:Java8encouragesfunc[onalthinking(i.e.,programminginfuncmonalprogrammingstyle).This2-daytrainingintroducesalltheimportantconceptsandfeaturesimportantforleveragingJava8featuresforregularworkandimproveproducmvity.Whatismore,thistrainingalsocoversbestpracmcesinusingJava8features.

Inthiscompletelyhands-onsession(extensivesetofsampleprogramswillbesharedtoallparmcipants),thistrainingintroducesalltheimportantconceptsandfeaturesimportantforrefactoringJavawrireninearlierversionstoexploitJava8features.Specialfeature:Livedemoofrefactoringopensourcelegacycodebasetoshowhowlambdasandstreamscanresultinshorterandeffecmvecode.

Pre-requisitesDevelopers/leadswithworkingknowledgeinJavaprogramming.NopriorexposuretoJava8featuresrequired.

TrainingroomsetupAccesstolabmachinesinstalledwithJDK8.0versionorlater.

Trainingroomequippedwithprojectorandwhiteboardwithmarkerpens.

CourseOutline–2days(ThiscoursecontentsalsohaveamappingtoOCPJavaSE8cermficamonobjecmves).

• Introduc[ontoJava8andFunc[onalThinking

• LambdaExpressionsandBuilt-inFunc[onalInterfaces

o Usethebuilt-ininterfacesincludedinthejava.uml.funcmonpackagesuchasPredicate,Consumer,Funcmon,andSupplier

o Developcodethatusesprimimveversionsoffuncmonalinterfaces

o Developcodethatusesbinaryversionsoffuncmonalinterfaces

o DevelopcodethatusestheUnaryOperatorinterface

• Collec[onswithJava8

o CollecmonsStreamsandFilters

o IterateusingforEachmethodsofStreamsandList

CodeOps Technologies LLP �12

Page 13: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

o UseStreamAPIwithNIO.2

o Filteracollecmonbyusinglambdaexpressions

o DevelopcodethatusestheOpmonalclass

• DescribeStreamInterfaceandStreamPipeline

o UsemethodreferenceswithStreams

o Developcodetoextractdatafromanobjectusingpeek()andmap()methodsincludingprimimveversionsofthemap()method

o SearchfordatabyusingsearchmethodsoftheStreamclassesincludingfindFirst,findAny,anyMatch,allMatch,noneMatch

o DevelopcodethatusesStreamdatamethodsandcalculamonmethods

o SortacollecmonusingStreamAPI

o Saveresultstoacollecmonusingthecollectmethodandgroup/parmmondatausingtheCollectorsclass

o Useofmerge()andflatMap()methodsoftheStreamAPI

• UseJavaSE8Date/TimeAPI

o Createandmanagedate-basedandmme-basedeventsincludingacombinamonofdateandmmeintoasingleobjectusingLocalDate,LocalTime,LocalDateTime,Instant,Period,andDuramon

o WorkwithdatesandmmesacrossmmezonesandmanagechangesresulmngfromdaylightsavingsincludingFormatdateandmmesvalues

o Defineandcreateandmanagedate-basedandmme-basedeventsusingInstant,Period,Duramon,andTemporalUnit

• JavaConcurrency

o UseparallelFork/JoinFramework

o UseparallelStreamsincludingreducmon,decomposimon,mergingprocesses,pipelinesandperformance.

• Java8BestPrac[ces

o LeveragingJava8featuresthroughfuncmonalthinking

o Wrimngconcurrentcodewithparallelstreams

o UsingJava8date/mmeAPIbymigramngfromlegacyDateandCalendarclasses

o Designparernsforfuncmonalprogramming

CodeOps Technologies LLP �13

Page 14: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• RefactoringtoJava8

o RefactoringtoJava8lambdas

o Refactoringtostreams

o Refactoringinthecontextoffuncmonalinterfaces

o Dealingwithbackwardcompambilityissues

o Refactoringtoexploitparallelstreamsforperformance

o Concurrencyaspectstokeepinmindwhenrefactoring

o ToolsforautomamcrefactoringtoJava8

• Effec[veRefactoringtoJava8

o Debuggingfuncmonalprogramsduringrefactoring

o Wrimngunittestsforlambdafuncmons&streamsinthecontextofrefactoring

CodeOps Technologies LLP �14

Page 15: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

Software Architecture and Design Through Case Studies, Real-world Examples and Exercises

TrainingOverview

Softwarearchitectureknowledgeandexpertiseisakeyenablerforbusinesssuccess.Thistrainingwillcoverallthekeyandfoundationaltopicsthateveryarchitectshouldknowincludingarchitecturalprinciples,architecturalstyles,designpatterns,Non-FunctionalRequirements(NFRs)andconstraints,architectureprocess,andtoolsforsoftwarearchitecture.

Thispracticaltrainingcoverssoftwarearchitecturethroughreal-worldexamplesandexercises.Casestudiescoveredarefrombothindustrialandopensourceprojects.

DetailsoftheTrainingProgram• ThetrainingwillbeconductedbyGaneshSamarthyam,anexperiencedtrainer

andauthor.

• Thetrainingwillbefortwo(2)daysandwillcoverthetopicsmentionedbelow.

• Thetrainingwillbefor8hoursperday(excludingtimeforbreaks,actualtraininghourswouldbe6.5hours)forthese2daysonthedatesandtimeconvenienttotheclient.

• Amaximumof25participantscantakepartinthistraining.(Limitednumberofparticipantsbecausethistraininginvolvesnumerousexerciseswithextensivediscussionswithparticipants).

• Trainingmaterials/handoutswillbeprovidedtoalltheparticipants.

• Trainingwillbeconductedatclientpremisesoratafacilityarrangedbytheclient.

• Theclientshouldprovidetheinfrastructuretoconductthetraining.Theinfrastructurewouldincludethetrainingroomwithprojectorandwhiteboard.NoPCs/laptopsarerequiredforconductingthistraining(exercisesarepaper-and-penbased).

PrerequisiteEntryCriteria

CodeOps Technologies LLP �15

Page 16: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• Onlyforseniordevelopersorteamleadswithminimum4yearsofexperience.(Thistrainingisnotmeantforthosewhoarealreadyworkingasanarchitect–rather,thistrainingisforthosewhoareaspiringtobecomearchitects).

• Participantsareassumedtohaveexperienceinsoftwaredevelopmentormaintenance.HavingexperienceonlyinQA/testing,configurationmanagement,DBAetc.isinsufficientforparticipatinginthistrainingonsoftwarearchitecture.

KeyBenefits• Participantswillgetagroundedintroducedtosoftwarearchitectureanddesign,

whichwillenabletoperformwellasanarchitect.

• Participantswillknowspecifictools,techniques,andbestpracticesforcreatingeffectivedesigns.

OutlineofCourseContentsDay1• Introductiontosoftwarearchitectureanddesign(0.5hours)

• Whatissoftwarearchitecture?• Typesofarchitectures• Theroleofarchitectureinprojectandbusinesssuccess • Introductiontodesignprinciples,designpatterns,andarchitecturestyles

• Designprinciplesanddesignpatternsthroughexercises(4hours) • IntroductiontoSOLIDprinciplesanddesignpatterns(1hour)• Creationalpatternsthroughexercises(1hour)• Structuralpatternsthroughexercises(1hour)• Behaviouralpatternsthroughexercises(1hour)

• Architecturestylesthroughcasestudies(2hours) • Guidingprinciplesofsoftwarearchitectureanddesign • Understandingimportantarchitecturalstyles(suchaslayered,pipe-and-

filter,client-server,N-tier,MVC,andState-Compute-Control)• Exerciseonunderstandingarchitecturalstyles• Casestudyonreferencearchitecture(OpenSAR)forapplying

architecturalstylesDay2

• Creatinganarchitecture(2.5hours) • Understandingwhatinfluencesarchitectures • Theprocessofarchitectinginthereal-world

• Exerciseoncreatinganarchitecture• RealisingNFRs(NonFunctionalRequirements)usingAttributeDriven

Designapproach• ExerciseontacticsforNFRs

• QuantifyingNFRs• ExerciseonquantifyingNFRs

CodeOps Technologies LLP �16

Page 17: Trainings Offered - Ganesh Samarthyam - CodeOps Technologies

• Roleofconstraints• Referencearchitectures• Documentingarchitectures(viewpointsandperspectives)• Validatingyourarchitecturaldesigns

• Casestudy&exerciseonrealizingsecurityrequirements(1hour)• Evolvingarchitectures(1.5hours)

• Understandingtechnicaldebt • Refactoringforarchitecturalsmells• Toolsforarchitecturalrefactoring

• Livingasanarchitect(1hour) • Skillsrequiredforanarchitect• Bestpracticesforlivingeffectivelyasanarchitect

• Wrap-up,keytake-aways,andQ&A(0.5hours)

CodeOps Technologies LLP �17