Top Banner
By Aleksey Stukalov How to Develop Highly Customizable Of-the-Shel Sotware
41

CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

Jul 06, 2018

Download

Documents

sbabuind
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 1/41

By AlekseyStukalov

How to Develop

Highly CustomizableOf-the-ShelSotware

Page 2: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 2/41

Of-the-Shel vs Custom

SotwareOf-the-Shel 

• Generic

• Customization is laborious or impossible

Custom

• 100% designed or the individual customer

• i!cult to productize or new customers

Page 3: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 3/41

"deal #roduct

• "mplements $good or all - common businesseatures

  Also implements $good onl& or me - distinctivebusiness eatures or individual client

• Customization does not impede regular core product

updates

Page 4: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 4/41

'd(ust )odel

#roduct Customization

Page 5: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 5/41

)odi& *usiness +ogic

Page 6: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 6/41

'd(ust ,"

Page 7: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 7/41

idel& ,sed .echni/ues

• 'll in One

• *ranching

• ntit&-'ttribute-alue

• #lugins

Page 8: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 8/41

'll in One2 Concept

• 3eep single codebase

• mplo& 4eature toggling5

Page 9: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 9/41

'll in One2 Customizabilit&

• atabase +a&er

• *usiness +ogic +a&er

• ,ser "nterace +a&er

Page 10: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 10/41

'll in One2 "deal Scenario

• stablished6 mostl& static business area

• +imited customization re/uirements

• "nabilit& to deliver custom development does notimpact sales

Page 11: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 11/41

'll in One2 hat i the

assumptions were wrong• Customer is unhapp& due to lac7 o desired eatures

O8

• Codebase turns into the unmanageable garbage can

Page 12: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 12/41

*ranching2 Concept

• Create a new branch or the customer

• Customize whatever is needed in isolation

Page 13: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 13/41

*ranching2 Customizabilit&

• atabase +a&er

• *usiness +ogic +a&er

• ,ser "nterace +a&er

Page 14: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 14/41

*ranching2 "deal Scenario

• )aster branch is mature and does not re/uire rapiddeliver& o new eatures

• Onl& a ew customer branches re/uired

• Customer branches do not re/uire re/uents&nchronization with the core product branch

Page 15: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 15/41

*ranching2 hat i the

assumptions were wrongConstant merging rom master to branches and viceversa2

• *ecomes e9tremel& time consuming

• +eads to unavoidable regression bugs

Page 16: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 16/41

'2 Concept

• eliver $as is

• mplo& a mechanism to d&namicall& add custom

:elds to entities on-the-;&

• )i9 with other techni/ues to enable *usiness +ogiccustomization

Page 17: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 17/41

'2 Customizabilit&

• atabase +a&er

• ,ser "nterace +a&er<

< ," can be customized to some e9tent and naturall&limited b& the pre-programmed displa& logic

Page 18: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 18/41

'2 "deal Scenario

• =le9ibilit& o having additional inormative data isre/uired

'dditional data is not e9plicitl& used in the productbusiness logic

Page 19: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 19/41

'2 +imitations

• Cannot be applied or *usiness +ogic customization

• )a& add complications to data utilization and

increases the database load

Page 20: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 20/41

#lugins2 Concept

• e:ne 4#oints o Customization5 >a7a 9tensionpoints?

evelop unctional logic in separate >isolated?arteacts >plugins or scripts?

• &namicall& e9ecute attached plugins in the pre-

de:ned Customization #oints

Page 21: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 21/41

#lugins2 Customizabilit&

• atabase +a&er

• *usiness +ogic +a&er

• ,ser "nterace +a&er 

Page 22: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 22/41

#lugins2 "deal Scenario

• #oints o Customization are eas& to predict

• ,ser "nterace modi:cations are /uite trivial

• *usiness +ogic modi:cations to be added onl& in#oints o Customization6 not in between

Page 23: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 23/41

#lugins2 +imitations

• 'n& la&er can be customized to some e9tent6 which isnaturall& limited b& 4#oints o Customization5

• 'rchitecture becomes more complicated

• 4@ust in case5 scattering o 4Customization #oints5leads to poor code readabilit& and hard debug

Page 24: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 24/41

"deal =ramewor7

8e/uirements• Customization rom )odel to ,"

• Clear separation between underl&ing #roduct and On- .op Customizations

• #ossibilit& o tight interlacement o Customization and#roduct unctionalit&

ntire product to be opened or customization

Page 25: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 25/41

C,*' 9tensions

• "mplemented in the C,*' platorm A a high levelramewor7 or enterprise sotware development

• *ased on the Open "nheritance pattern

Mai !ri"iples

• "nherit all the eatures o an underl&ing product6 usingit as a librar&

• Contain onl& distinctive eatures6 without cop&inguntouched product unctionalit&

• Support hierarchical customization model

Page 26: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 26/41

)odel Customization2

Challenge• #roduct implements User  entit&

• Customer re/uires address and department  :elds tobe added

•   Department is re/uired to be a separate entit&6 lin7edto a User  

Page 27: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 27/41

)odel Customization2

"mplementation

Page 28: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 28/41

)odel Customization2

B9tends• *ase entit& use should be substituted globall& acrossthe product2

 – Constructors

 – @#+ /ueries

 – )odel traversal

Page 29: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 29/41

)odel Customization2

Dow it wor7s• Ob(ect =actor& alwa&s returns the deepest child using

metadata model

• 'll @#+ /ueries are parsed6 anal&zed and modi:edaccording to the metadata model

• )odel traversal substitution is reached b& orm.xml generation6 where target-entity  attribute reers to thedeepest child

Page 30: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 30/41

#roduct C,*' e9tension

," Customization2 Dow it

wor7s

Page 31: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 31/41

," Customization2 #roduct

Screen

Page 32: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 32/41

," Customization2 9tension

Screen

Page 33: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 33/41

Spring ramewor7 does it Ano need to reinvent whatalread& e9istsE

• eclare a @Component 

• Override in thee9tension

• 8e-register the new

class in the e9tension

•  .he newimplementation will beused across the whole

product

*usiness +ogic

Customization

Page 34: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 34/41

,pdating the ,nderl&ing

#roduct ersion• Speci& the new version o the underl&ing product in

e9tension

• )eet product '#" changes in the overlapped parts

• 8ebuild the product with the e9tension

Page 35: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 35/41

Dierarchical Customization

)odel

Page 36: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 36/41

Summar&

Page 37: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 37/41

*ased on mainstreamtechnologies

"mplements2

• C,*' 9tensions• Scripting• ntit&-'ttribute-alue

C,*' #latorm

Page 38: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 38/41

Our 9perience2 .hesis

nterprise Content )anagement s&stem

• Over F00 implementations

F custom solutions based on the product

eliver& o F pro(ects to huge customers would not bepossible without deep s&stem customization

Page 39: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 39/41

Our 9perience2

Sherloc7 .a9i SolutionComplete .a9i )anagement Solution

• 1F implementations

• H custom solutions based the product

• F ongoing customizations

#roduct is constantl& being updated or all customers

bringing new product eaturesI

Page 40: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 40/41

Dands-on +abs

 .r& C,*' e9tensions at our Dands-on +abs6 with thehelp o our C,*' e9perts6 &ou will develop a ull&-unctioned business application in (ust a couple o hours

hen2 ednesda& FJth October F01Khere2 Dilton-=ranciscan 8oom '

+ab 12 10200 am - 1F200 pm+ab F2 1F2L0 pm - F2L0 pm

+ab L2 L200 pm - K200 pm

Page 41: CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

8/17/2019 CON10253_Stukalov-20151024-3-CUBA_J1-final.pptx

http://slidepdf.com/reader/full/con10253stukalov-20151024-3-cubaj1-finalpptx 41/41

By AlekseyStukalov

#hak you$