Today Software Magazine N31/2015

53
T O D A Y SOFTWARE Nr. 31 • Ianuarie 2015 • www.todaysoftmag.ro • www.todaysoftmag .com MAGAZINE I T J C   A ă Cț ț - -: ă B A T P D A ăț TDD ş A C S C R S A+P A (I ) C ă ă Competență sau fraudă?  Ja  vaF  X şi comunicarea prin RES  T  ful  Web Ser  vices

Transcript of Today Software Magazine N31/2015

  • 8/9/2019 Today Software Magazine N31/2015

    1/52

    T O D A Y

    S O F T W A R E

    Nr. 31 Ianuarie 2015 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    I T J

    C A

    C - -:

    B AT P D

    A TDD A

    C S C R S

    A+P

    A (I)C

    Competensaufraud?

    JavaFXicomunicareaprinRESTfulWebServices

  • 8/9/2019 Today Software Magazine N31/2015

    2/52

  • 8/9/2019 Today Software Magazine N31/2015

    3/52

    6

    R 2014

    T S MO M

    8

    E - 2014

    M V

    10

    15 M O

    2015C B

    12

    ACADEMY+PLUSD B

    15

    A (I)L V

    18

    JFX REST W S

    S D D B

    22

    C ?

    C

    24

    D TDD A

    R O

    28

    P T C

    32

    C C R SA B

    34

    C - A A

    38

    C T S LC R

    40

    I T JD C

    44

    C A ?R V

    47

    N - D P D 2015C J

    49

    G S B, P.D.

  • 8/9/2019 Today Software Magazine N31/2015

    4/52

    4 nr. 31/2015 | www.todaysoftmag.ro

    La muli ani !!! Pornim la drum n acest an plini de avnt i dornici s acem anoilor provocri. Una dintre acestea este atingerea unor noi obiective pe care ile-a propus SM. Ne propunem s lansm cardul de membru SM i o paginonlinededicat joburilor. Pentru clienii mobile, vom publica n curnd o aplicaie dedi-cat teleoanelor Windows Phone. Proiectm i organizarea de evenimente noi precumo conerin dedicat experilor Java, a crei lansare se va desura probabil n var.Mai multe inormaii despre unele dintre aceste subiecte vei gsi n primul articol dinacest numr. V mulumim c ai ost alturi de noi i de asemenea mulumim compa-

    niilor partenere pentru suportul acordat.n paginile acestui numr am publicat o serie de articole ce v ndrum spre o mai

    bun organizare n cadrul echipei dintre care menionez: Cinci saturi practice pen-tru Code Review n Scrum, Diminuarea complexitii cu DD i Agile, Convergena

    documentaiei ntr-un proiect sofware multimodular iPerormana n echipe distribuite.Articolul denumitArhitectura sofware deschide seria de articole dedicate acestui subiectcomplex care este arhitectura sofware . Universul Java este reprezentat de dou articole: Tings n universul Javai JavaFX i comunicarea prin RESul Web Services, articolaflat n continuarea seriei despre JavaFX. Securitatea este un domeniu de care trebuie sse in cont n dezvoltarea oricrui produs sofware, aa cum argumenteaz i articolulCompeten sau raud?. Continum cu o analiz a sistemului de mesaje din Azure,pentru ca la final s v delectai cu lectura ultimului episod din cea mai longeviv serie

    SM dedicat aventurilor lui Gogu.

    V dorim o lectur plcut !!!

    Ovidiu ManFondator al Today Sofware Magazine

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    editorial

  • 8/9/2019 Today Software Magazine N31/2015

    5/52

    5www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    Redacia oday Sofware Magazine

    Fondator / Editor in chie: Ovidiu [email protected]

    Graphic designer: Dan [email protected]

    Copyright/Corector: Emilia [email protected]

    raductor: Roxana [email protected]

    Editor startups: Mircea [email protected]

    Reviewer: avi [email protected]

    Contabil : Delia [email protected]

    Produs deoday Sofware Solutions SRL

    str. Plopilor, nr. 75/77Cluj-Napoca, Cluj, [email protected]

    www.todaysofmag.rowww.acebook.com/todaysofmag

    twitter.com/todaysofmag

    ISSN 2284 6352

    Copyright oday Sofware Magazine

    Reproducerea parial sau total a articolelordin revista oday Sofware Magazine

    r acordul redaciei este strict interzis.

    www.todaysofmag.rowww.todaysofmag.com

    Lista autorilor

    Radu [email protected]

    Senior Software Engineer@iQuest

    Dnu [email protected]

    Java Developer@ Elektrobit Automotive

    Radu [email protected]

    Software engineer@ Fortech

    Tiberiu [email protected]

    Engineering Manager@ 3Pillar Global

    Alexandru [email protected]

    Agile Coach and Trainer, with afocus on technical practices

    @Mozaic Works

    Alexandru [email protected]

    Senior Developer@ ISDC

    Cristian [email protected]

    Software Developer@ Yardi

    Simona Bonghez, [email protected]

    Speaker, trainer and consultantin project management,

    Owner of Colors in Projects

    Claudia [email protected]

    Lawyer@ Jlaw

    Diana [email protected]

    Java developer@ Accesa

    Silviu [email protected]

    Java Line Manager@ Accesa

    Cristian [email protected]

    Application Security@ Betfair

    Daniela [email protected]

    Account Manager@ PITECH+CONCEPT

    Mircea [email protected]

    www.clujstartups.com

    Clin [email protected]

    Digital Director@ Loopaa

    Levente [email protected]

    Design Lead@ Endava

  • 8/9/2019 Today Software Magazine N31/2015

    6/52

    6 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    interviu

    Realizrile din 2014 i planurile de viitor aleToday Software Magazine

    De-a lungul anului, evenimentele de lansare ale revistei nus-au limitat doar la cele din Cluj. Ne-am ntlnit cu cititoriirevistei i n Bucureti, imioara, Braov, Iai i rgu-Mure.Acestea au ost gzduite de ctre sponsori ai revistei dar i orga-nizate mpreun cu colegii de la Gemini Foundation sau Cluj ICluster. Am avut parte de un public minunat i promitem s reve-nim. n Cluj evenimentele de lansare au ost gzduite ca de obiceide sponsorii revistei. O noutate fiind multitudinea de noi sedii

    inaugurate pentru care lansarea revistei a ost o bun ocazie deprezentare a noului spaiu comunitii de I locale.

    Noutatea principal n 2014 a ost schimbarea 100% a imaginii

    onlineprin lansarea noului site. Identitatea vizual a revistei a ost

    adaptat la trendurile de design actuale, iar partea de back-enda ost integral rescris, inclusiv partea de administrare. A ostun exerciiu de proesionalism n domeniu realizat cu ajutorulGemini Solutions i agenia de design Subsign.

    Finalul anului s-a realizat sub umbrela I Days unde au ostpeste 200 de participani. Nu am s intru n detalii deoarece amscris despre acesta pe larg n numrul trecut. Menionez doar cpe durata celor trei zile, dac lum n considerare i cele douworkshop-uri, am avut parte de prezentri de excepie i de unmediu prietenos.

    Proiecte pentru 2015

    Cardul de membru Today Software MagazineEste vorba de cardul SM, o idee care a aprut de mai mult

    timp, dar care abia acum s-a materializat ntr-o oert concret.Cardul SM se adreseaz membrilor activi ai comunitii de Iromneti, celor care doresc s i mbunteasc n mod con-stant cunotinele din domeniu, crora revista SM le poateaduce un plus de inormaii lunar i chiar mai mult. Punctual,cardul SM v oer:

    A. Revista tiprit Aceasta va fi livrat lunar, pe durataunui an ntreg, la adresa specificat de dvs. prin Pota Romn.Este un modalitate comod de a v asigura lunar o lecturde calitate prin revista tiprit. De altel, revista tiprit va fi

    adresat exclusiv membrilor SM i a celor ce particip la eve-nimentele de lansare a revistei sau la evenimentele partenereunde este distribuit.

    B. Cartea I Days 2015 La el ca i n 2014 vom tipri idistribui cartea evenimentului.

    C. Reduceri importante la evenimentele SM. Este vorbade 50% reducere pentru Cluj I Days i 20% reducere la work-shop-urile organizate de ctre oday Sofware Magazine.

    D. Reduceri la evenimentele naionale de I:primeleastel de evenimente sunt ...evenMammothscanbeAgileundeposesorii cardului vor primi 20% reducere i Mobos cu 20%reducere

    E. Consultan pentru publicarea de articole n revistaSM.F. Realizarea de proiecte comunitare. Cei ce doresc s se

    implice n realizarea unor proiecte pentru comunitile localecum ar fi: eLearning sau o platorm onlinededicat voluntarilor

    2014 a nsemnat o perioad de maturizare prin creterea numrului i a calitii articolelor publicate. Numeric, aceasta s-areflectat n numrul crescut de accesri onlinecare a ajuns la 7000 sesiuni/lun i de participani la evenimentele de lansare carea atins o medie de 70-80 participani. Momentul maxim a ost la lansarea din septembrie a revistei cnd s-au nregistrat peste120 de participani, iar onlinen perioada I Days-ului cnd am trecut de 10,000 sesiuni / lun.

    www.todaysofmag.ro - 2014 (romn)

    www.todaysofmag.com - 2014 (englez)

  • 8/9/2019 Today Software Magazine N31/2015

    7/52

    7www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    i organizaiilor de voluntariat. Cei maiactivi membri vor fi recompensai prininvitaii gratuite la dierite evenimenteI.

    Preul de lansare a acestui card estede 300 RON + VA / an i se va puteacomanda curnd onlinesau de astzi dacne trimitei un e-mail la adresa [email protected] . Prin acest card vartai totodat susinerea pentru revistaoday Sofware Magazine i proiectele sale.

    Pagina de joburin luna ebruarie vom lansa un nou

    proiect. Este vorba de o pagin de joburice va fi disponibil doar onlinecu un linkseparat de pe pagina principal. Venimn acest el n ntmpinarea unei piee a

    I-ului oarte dinamic prin anunuri decalitate i care vor fi orientate ctre nevo-ile acesteia ntr-un mod mai prietenosdect alte soluii existente la ora actual.ncurajm totodat startup-urile, printr-o seciune dedicat acestora i un preredus de publicare a unui anun. Pagina vaevolua n viitor i ne gndim s re-publi-cm calendarul onlinei o seciune nou

    dedicat training-urilor.Sperm c v-am cut curioi i v

    ateptm onlinela evenimentele de lansare,s devenii membri SM i poate chiar surmrii viitoarea pagin de joburi.

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

  • 8/9/2019 Today Software Magazine N31/2015

    8/52

    8 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    n cele ce urmeaz voi ncerca o cla-siicare n uncie de calibrul i scopulgeneral al acestor iniiative, precum io menionare a ctorva startup-uri caredintr-un punct de vedere sau altul s-auremarcat n ultimul an.

    La capitolul evenimente trebuie s

    remarcm apariia ctorva concepte noi,astel c aproape fiecare lun a ost pres-rat cu un astel de eveniment:

    Startup Pirates Cluj1 - alat laprima ediie n ebruarie 2014, este uneveniment de o sptmn, cu mentoriinternaionali i workshop-uri menite sdea participanilor o viziune clar asupra

    ce nseamn lean startup. S-au abordaturmtoarele teme: business model, cus-tomer validation, pitching, marketing for

    startups, investments.Practic participaniiau venit pregtii cu ideile de startup, iarn timpul evenimentului au lucrat pe dez-voltarea ideii lor sub ndrumarea celor 20de mentori.

    n martie am avut parte de binecunos-cutul Startup Weekend Cluj2, aflat deja

    1 http://cluj.startuppirates.org/

    2 http://cluj.startupweekend.org/

    la a treia ediie. Dincolo de numrul oartemare de participani, de remarcat a ost ctoate cele patru echipe premiate au ost

    conduse de reprezentante ai sexului emi-nin, apt ce ar putea nsemna un pas sprematurizarea ecosistemului i o creteregradual a implicrii eminine- problemdiscutat des n alte ecosisteme mult maiavansate, fiind lansate chiar i onduri deinvestiii cu scopul de a sprijini antrepre-noriatului techeminin;

    Transylvania Demoday3a cumulat

    dou ediii anul trecut (n aprilie i decem-brie) i a constat ntr-o sesiune depitch-uride cte 4 minute plus ntrebri din parteajuriului. Fiecare ediie a strns n jur de 10startup-uri preselectate din ecosistemulclujean.

    Techsylvania4s-a poziionat nc de3 http://startuptransilvania.ro/demo-day/

    4 http://www.techsylvania.co/

    la nceput ca un eveniment cu perspec-tiv internaional, tematic iind centratpe inovaie n tehnologii hardware Vprezentm cteva exemple de device-ur i ce puteau i testate la eveniment:Jawbone, Google Glass, Pebble, Sphero,Onyx Beacons, Leap Motion, Withings,

    Eyeribe racker. Un aspect interesantfiind hackathon-ul aerent, pe wearablesi connected technologies , n cadrulcruia echipele puteau s dezvolte soluiila diverse probleme, bazate de tehnolo-giile menionate mai sus. O nou ediie aTechsylvaniava avea loc la nceputul luniiiunie 2015.

    Un eveniment dedicat studenilor a ost3 Day Startup Cluj5. Pe lng implicareaexclusiv a studenilor, acest eveniment sedeosebete prin aptul c participanii suntselectai dup o aplicaie i un interviu an a, cu o limit de aproximativ 40 delocuri. Asemntor n structur cu alteevenimente de weekend (pitching, selec-tare ideilor, ormarea echipelor, iar apoilucrul eectiv,pitchi jurizare), evenimen-tul nu-i propune dezvoltarea de MVP-uri,

    5 http://cluj.3daystartup.org/

    antreprenoriat

    Evenimente i startup-uri n 2014

    La el ca n ultimii doi ani, a venit vremea unui reviewpentru ultimele 12 luni. n general, mi pare c ecosistemul s-a mai aezat.Micarea brownian,, a iniiativelor de suport pentru startup-uri pare mai clar i mi permit s cred c de-acum vom intrantr-o az de cretere, n care actorii sunt deja relativ cunoscui i i vor juca rolul n continuare.

  • 8/9/2019 Today Software Magazine N31/2015

    9/52

    9www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    ci mai degrab validarea de business maiales prin interviuri cu posibili clieni ifeedbackde la mentori.

    n noiembrie a avut loc i IT Days6dintre ale crui track-uri menionm temaantreprenorial. Astel pe lng cele ctevapitch-uri ale startup-urilor, au ost pre-zentate i proiecte de cercetare din cadruluniversitilor ce ar putea deveni la unmoment datspin-off-uri spre business.

    Startup Live Cluj7 a ost ultimul

    eveniment din an, desurat n strnslegtur cu ransylvania Demoday. Ctevadintre ideile participante au ost incluse in sesiunea de pitchingde la Demoday.Evenimentul este centrat pe paradigmeleleanstartupsi este la a treia ediie n Cluj.

    De asemenea, dintre evenimentele deanvergur mai mic dar cu recuren maimare, trebuie s menionm explozia demeetup-uri axate pe diverse teme legate detehnologie i startup-uri. Astel c, n fie-

    care sptmn din aceast toamn aveauloc cel puin 3 meetup-uri, precum: AgileDevelopment, Growth Hacking, Bitcoin,How to Start a Startup Lectures, SpartUP,UX/UI, Startup Lounge, Mobile Monday8.Majoritatea lor au avut loc la Cluj Hub is-au promovat mai ales prin intermediulmeetup.com. Bineneles, e importantde menionat i lansrile revistei SM,n cadrul crora a ost abordat i temastartup-urilor.

    La capitolul programe, deci cu o duratde cel puin cteva sptmni, ar i trei

    iniiative de menionat:

    Tandem by GRASP9a ost organizatde Global Romanian Society o YoungProessionals, cu o durat de 8 sptmnii un ormat axat pe practici non-ormalede educaie antreprenorial cu scopul de aduce participanii prin procesul de definirea conceptului, a modelului de business,

    pitchingi dezvoltarea unui prototip.6 http://www.itdays.ro

    7 http://startuplive.in/cluj-napoca/3

    8 http://clujstartups.com/#events

    9 http://tandem.mygrasp.org/

    Simplon Romania10 organizat cu

    suportul Cluj Cowork, cu o durat de 6

    luni, ncepnd n octombrie are scopul de

    educa participanii cum s dezvolte un pro-

    dus i apoi s-l lanseze pe pia, chiar dac

    nu au la nceput, nici un fel de experien

    tehnic. Practic, este un mix ntre un incu-

    bator i o coal de programare, iar prin

    orientarea spre comunitate gzduiete

    meetup-uri de care pot beneficia i altepersoane cu startup-uri sau interesate.

    Spherik Accelerator11a avut primaperioad de aplicare n noiembrie i ast-el au ost acceptat 5 startup-uri pentrua urma programul de 4 luni. Acestea auprimit spaiu de birouri i i vor fi inclusentr-o serie de workshop-uri i sesiuni dementorat organizate n cadrul accelerato-rului. De menionat e c acceleratorul estenon-profit, astel c n schimbul servicii-lor oerite nu ia equityde la startup-urile

    acceptate.

    Alturi de aceste programe, demenionat este i Startcelerate12, oiniiativa nscut n Cluj, dar prezent maiales n Marea Britanie i care i propune sconecteze companiile de I care au resurselibere cu startup-uri sau investitori ce aunevoie de acele resurse. n acest sens, auavut o serie de evenimente depitchingi

    matching, inclusiv n Cluj, iar pentru vii-torul apropiat sunt plnuite altele n maimulte capitale europene.

    n acest ultim an am avut parte ide startup-uri care au ost premiate sauacceptate n programe de accelerareinternaionale:

    CallerQ (we help sales profes-sionals to increase the effic iency of

    prospecting and provide analyt ics to

    sales managers) a participat n progra-

    mul Krakow Warp sub egida Hub:raum . Asiqo (mobile application that10 http://ro.simplon.co/

    11 http://spherikaccelerator.com/

    12 http://startcelerate.com/

    enables brands to interact with their

    global audience through advertise-

    ments) - ntre timp, nchis, a ctigatcompetiia elekom Innovation Contestpe Romnia.

    Evolso (The dating app givingpower back to the ladies) a participatn programul de accelerare StartupYard(Cehia).

    ZenQ(ze way to say thank you andappreaciate your friends) a ost incu-bat n echPeaks (Italia) imediat dupStartup Weekend.

    Project Wipe(electronic glassesthat help people with visual disabilities

    n orientation and obstacle avoidance)s-a calificat n final Startup Spotlight (@HowoWeb).

    eenrepreneur(virtual fnancial

    educaional game), trecut prin StartupPirates i Startup Weekend, va fi incu-bat n acest an n Watson UniversityAccelerator(Colorado, SUA).

    Dincolo de exit-urile bine cunoscute- Skobblersi LiveRail(ctre elenavirespectiv Facebook), putem meniona ialte cteva startup-uri ce cresc rapid sau/i au venit constant:

    DollarBird app(smart calendarapp or managing personal finances);

    Microstockr (app that helps youtrack sales on major microstock photo-graphy websites);

    inag (rechargeable trackingdevice or your lost items.) ;

    Moqups (Online mockups madesimple);

    Onyx Beacon(iBeacon CMS orretailers RSS Feed.) ;

    Rebs(Sotware specializat pentruproesioniti n imobiliare);

    HipMenu (ood ordering mobileapp);

    Squirrly(content marketing toolallowing you to optimize content andmeasure its success.).

    Bineneles, pe lng iniiativele de

    startup-uri noi, n aceast primvar vomavea parte i de alte cteva iniiative seri-oase de suport al ecosistemului, dar despreele n articolele urmtoare.

    Mircea [email protected]

    www.clujstartups.com

  • 8/9/2019 Today Software Magazine N31/2015

    10/52

    10 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    Fcnd retrospectiva anului 2014, am vzut cteva tendinei tehnologii care vor schimba cu siguran modul n care comu-nicm, interacionm i investim n publicitatea online. Aadar,obiectul articolului va consta n prezentarea a zece tendine deMarketing Online i cinci tendine tehnologice pentru acest an ipentru anii care urmeaz.

    Tendine de Marketing Online pentru 2015

    1. Prezena pe dispozitivele mobile este un must have.n Romnia avem deja 7,5 milioane de utilizatori activi

    de smartphone-uri, ceea ce reprezint aproximativ 37,5% dinpopulaia rii. n 2014 antreprenorii au realizat c nu pot ignora40% din potenialii lor clieni i au nceput s gndeasc mobile.n 2015 ne ateptm s vedem noi magazine onlinecare s intrepe pia direct cu website-uri reponsive. De asemenea, magazineleonlinecare au deja versiuni de site-uri adaptate dispozitive-lor mobile, se vor orienta nspre a-i dezvolta propriile aplicaiimobile.

    2. Mai mult coninut cu brand de calitateDe vreme ce peisajul Social Media devine tot mai aglomerat cu

    mesaje comerciale dar cu un coninut de slab calitate, companiiledetepte vor investi n dierenierea printr-un coninut de calitate.Acest lucru va reprezenta o mare oportunitate pentru ca brandu-rile care au o poveste de spus s arate c Social Media poate aduceclieni noi i poate s-i fidelizeze pe cei existeni.

    3. Lupta pentru coninut video n Social MediaAnul trecut, Facebook a introdus uncionalitatea de auto-play

    la toate video-urile de pe platorm. n consecin, companiile i

    publicaiile au nceput s-i publice video-urile direct pe Facebook.Acest lucru i-a creat Facebook oportunitatea mare de a vindereclam video i pentru branduri. n 2015 vom putea vedea i altereele sociale precum LinkedIn sau witter s se lupte pentru mai

    mult coninut video pe propriile platorme. Rzboiul cu Youubeabia a nceput.

    4. Companiile se vor orienta i spre alte platforme Social Media.Dup cum tim i am observat, Facebook i-a schimbat algo-

    ritmul pentru newseedi a redus oarte mult reach-ul mesajelor

    organice (nepltite) postate de ctre branduri. Aceasta este o vesteproast pentru companii.Ne ateptm ca n acest an s nceap cutarea unui next

    big (ree) thing, sau cel puin businessurile se vor orienta sinvesteasc mai mult n propriile canale de comunicare: blog inewsletter.

    5. LinkedIn va deveni i mai mult o platform de coninut editorialde business

    Ai ncercat noua uncionalitate Create a post? Este super!Orice utilizator al reelei sociale LinkedIn poate acum s scrie arti-cole personale care arat oarte similar cu postrile de pe bloguri.Cnd cineva scrie un articol toate conexiunile sale primesc o noti-

    ficare despre postare. S-ar putea ca n acest an s vedem ca aceastopiune s se implementeze i la paginile de business.

    6. Facebook @ WorkFacebook a nceput s lucreze la o versiune a platormei sociale

    adaptat pentru businessuri, care ar putea concura cu Yammer,Google Groups, LinkedIn sau alte tool-uri colaborative. Ateptms ncercm o versiune beta.

    7. Campaniile Omni channel vor fi tot mai importanten prezent, clienii olosesc ntre zece i douzeci de surse

    de inormare nainte s ia o decizie cu privire la ce s cum-

    pere. Cutarea este standard, prerile prietenilor sunt aur curati experiena oerit de produse i servicii este noul marketing.Companiile nu-i mai permit s nu investeasc n MarketingOnline, astel vor olosi tot mai muli bani pentru publicitate

    15 tendine de Marketing Online i tehnologiepe care nu vrei s le ratezi n 2015

    You cant connect the dots looking orward; you can only connect them looking backwards. So you have to trust that the dots willsomehow connect in your uture. You have to trust in something - your gut, destiny, lie, karma, whatever. Tis approach has neverlet me down, and it has made all the difference in my lie. - Steve Jobs

    marketing

  • 8/9/2019 Today Software Magazine N31/2015

    11/52

    11www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    integrat.

    8. Companiile vor investi tot mai mult n publicitate pe Social MediaNoul algoritm al Facebook-ului oreaz companiile s inves-

    teasc n publicitate pe Facebook pentru a ajunge cu mesajelepostate la toi anii paginilor de brand. Fcnd acest lucru busine-ssurile vor nva c reclamele de pe Facebook sunt uor de creat,oarte bine targetate, iefine i oer interaciuni extra pe gratis.Aceasta este un trg bun pentru orice brand i n consecin neateptm la tot mai mult publicitate pe Facebook i pe alte reelesociale.

    9. Companiile vor investi mai mult n reclame videoinnd cont c Generaia Y nu mai urmrete att de mult V

    i petrece mai mult timp navignd pe internet, marile brandurii vor reprograma o parte din bugetele de reclam de pe V npublicitate video online.

    Aa cum tim, pe internet nu ai nevoie de bugete oarte maripentru a putea ace publicitate i din acest motiv orice companiei permite acum s livreze reclame video ctre clienii lor. Noiam experimentat anul trecut cu publicitatea video pe Facebooki rezultatele au ost surprinztor de bune, astel ne ateptm svedem mai multe reclame pe monitoare i ecranele smartphone-urilor sau tabletelor noastre.

    10. Companiile vor ncepe se fac retargetingn 2014 am vzut cteva exemple de campanii de retargeting.

    Anul acesta ne ateptm la mai multe retargetriinteligente i maimulte branduri care s apeleze la aceast tactic.

    n concluzie, la tendinele n Marketing Online, credem c2015 va fi anul comerului pe mobil, al coninutului de calitate ia reclamelor sociale i video.

    Clienii vor fi mai bine intii, mai delectai i mai inormaipe orice device sau platorm vor olosi.

    Tendine tehnologice n 2015

    11. Aplicaiile mobile de sntate i dispozitivele mobilen acest an credem c marile companii vor scoate n a i vor

    ncuraja consumatorii s cumpere mai multe dispozitive mobile.Problema este c pentru brrile i ceasurile nou aprute nu preaexist aplicaii dezvoltate i acest lucru nu le ace oarte cool.

    Soluia ar putea veni de la aplicaiile de sntate. Spre exemplu:ar fi util a avea un ceas care s ne ajute s tim inormaii vitaledespre corpurile noastre.

    12. Realitate virtualDac filmele 3D au avut mult succes cnd toat lumea le-a

    putut urmri n cinematograe, realitatea virtual ar putea fi nouarevoluie n divertisment. Oculusrifeste deja ceva ce oricegeeki-ar dori s fie integrat n jocuri video. ehnologia aceasta estedeja n dezvoltare.

    13. Pli cu mobilul

    n SUA, oamenii pot olosi Apple Pay i Google Wallet. Sezice c aceste soluii sunt the next thing cu privire la pli. Dinpcate, n Romnia nc ncercm s educm consumatorul splteasc onlinecu cardul. Aadar, s-ar putea ca plile cu mobilul

    s nu apar i s fie implementate la noi oarte rapid.

    14. BeaconsDin punct de vedere al marketingului, beacon-urile oer o

    oportunitate oarte bun pentru a afla mai multe inormaii utiledespre clieni i ne d posibilitatea s acem reclam contextualmult mai precis. Ne ateptm la noi dezvoltri pentru aceasttehnologie.

    15. Maini care se conduc singureCea mai important tire la CES 2015 a ost despre mainile

    care se conduc singure. Audi a trimis un model de test A7 ntr-ocltorie de la San Francisco pn n Las Vegas r intervenia

    unui oer uman. Modelul A7 a ajuns n Las Vegas r nici unincident. De asemenea, BMW i Mercedes-Benz ac progresemari pentru ca acest vis s se mplineasc.

    Suntem siguri c acest an va fi unul memorabil pentru dome-niile I i Marketing. Depinde numai de noi s profitm la maximi s contribuim s fie un an excelent. Bucur-te de el! F conexi-unea ntre puncte i cu siguran vom vorbi n 2016 despre cum2015 a ost un an de tehnologii cooli Social Media.

    Clin [email protected]

    Digital Director@ Loopaa

  • 8/9/2019 Today Software Magazine N31/2015

    12/52

    12 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    Din acest motiv, n ultimii ani, la nivel naional au aprut oserie de metode alternative de nvare care oer candidailorexperiena unei specializri specifice ntr-o anumit tehnologie,fie n domenii conexe, cum ar fi marketing, management, designsau social media.

    n momentul de a exist un gol n zona de resurse umanespecializate n domeniul I, att n SUA ct i n Europa, respectivRomnia, iar acest gol vine pe de o parte din cirele de colarizare,iar pe de alt parte din lipsa unor competene calibrate cucerinele pieei.

    Dac ne raportm la cire, n Romnia exist aproximativ100.000 de angajai n domeniul I la nivel naional, iar cerereade ocupare n 2014 a ost de 17.148 oerte de munc pe diversestadii de specializare n cele mai mari orae din Romnia - con-orm oertelor de munc publicate de site-urile de specialitate.Pe ondul acestor constatri, nu trebuie s ignorm nici aptul ccei mai strlucii dintre absolvenii de liceu sau acultate cu profiltehnic, aleg fie s i continue studiile n aar rii, fie s lucrezepentru companii renumite din strintate.

    Pornind de la aceste premise, anul trecut companiaPIECH+PLUS a lansat o metod revoluionar de nvare iormare proesional n domeniul I. ACADEMY+PLUS este ocoal nou, bazat pe o program actualizat cerinelor pieei i,

    n acelai timp, utiliznd o metod inovativ de nvare pentruelevi.

    Obiectivele colii sunt s rezolve pe de o parte necesitateacompaniilor de I de a avea angajai capabili s neleag un

    proiect nu doar dintr-o perspectiva tehnic, ci i din perspectivemanageriale sau de sales i marketing, iar pe de alt parte coalai propune s creeze o cultur geek cultureprin care s atragi alte persoane cu abiliti de nvare spre zona inormaticii.

    ACADEMY+PLUS a ost lansat pe piaa din Romnia pebaza unui parteneriat cu coala 42 din Paris. Aceast din urmnu este altceva dect o pepinier de 1000 de elevi/an care nvainormatic dup reguli dictate de industrie.

    Parteneriatul semnat n martie 2014 a pus n micare un pro-iect unic pentru industria de I din Romnia: lansarea unei coli

    deschise oricrei persoane pasionate de inormatic, finanatexclusiv de compania clujean PIECH+PLUS.Admiterea la ACADEMY+PLUS se ace n aceeai manier ca

    la 42: pre-selecie, check-in un interviu cu candidaii care trec depre-selecie,piscina o testare de 28 de zile igo/no go. La finalulcelor trei evaluri de 28 de zile, din aproximativ 1200 de nscriipe platorma de candidatur doar 58 de candidai au obinutgo.

    n luna noiembrie 2014, a avut loc ceremonia de inaugurarea colii. n momentul de a elevii colii nva prin intermediulproiectelor lansate pe platorma de e-learningpe care o au ladispoziie.

    Elevii selectai nu reprezint un grup omogen de persoanecare au aceeai vrst sau preocupri. Admiterea s-a adresat

    tuturor celor care sunt pasionai de inormatic, iar n aar derezultatele obinute la testri, echipa care s-a ocupat de recru-tare nu a luat n considerare vrsta (dect n cazul minorilor) sauexperienele anterioare. Aadar, printre elevii ACADEMY+PLUSse regsesc proaspt absolveni de liceu, dar i persoane care idoresc o reconversie proesional n domeniul I.

    educaie

    Tinerii romni pasionai de informatic au acces la o metodinovativ de nvare prin intermediul ACADEMY+PLUS

    D

    ezvoltarea sectorului I creeaz an de an locuri de munc din ce n ce mai interesante i mai atractive pentru tineriipasionai de domeniul inormaticii. Dar n contextul valului ascendent de angajri din ultimii ani, companiile au nceput scaute profile din ce n ce mai complexe. n acelai timp, exist i candidai care au neles c pentru a se dierenia au nevoie

    de ormule complementare de ormare proesional.

  • 8/9/2019 Today Software Magazine N31/2015

    13/52

    13www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    Unicitatea acestui proiect se reflect din mai multe unghiuri.Pe de o parte, coala n sine reprezint un micro-mediuorganizaional. Elevii au dispoziie un spaiu complet dotat teh-nic, o sal de jocuri, sli de brainstorming i proesioniti carele stau la dispoziie avnd calitatea de mentori i nu aceea de

    proesori.Ingredientele psihologice care determin uncionarea aces-

    tui ntreg ansamblu n absena unui orar, a unor ore de prezenstricte sau a unor condiionri, sunt sel-responsibilityi dezvolta-rea abilitilor decizionale.

    coal pornete de la premisa c exist creativitate n I i leoer elevilor libertatea s experimenteze n jurul unei comunitipe care i-o creeaz singuri.

    n ceea ce privete metoda i programa, exist cteva elementecare le particularizeaz :

    Peer-to-peer learning elevii nva s se evalueze unii peceilali, iar n cele din urm, obiectivul este ca acetia s deprind

    abiliti de analiz. Munc n echipa att evalurile, ct i o parte din pro-iecte se realizeaz n echipa. n acest mod elevii sunt ncurajai scomunice eficient unii cu ceilali.

    Practic elevii primesc toate instrumentele necesarepentru a parcurge o problematic, apoi rspund unui exerciiuprintr-o aplicaie practic.

    Comunitate elevii sunt ghidai s i creeze propria lorcomunitate, cu propriile lor valori.

    Pe termen scurt, obiectivele noastre in de triplarea numruluide elevi n 2015, customizarea de module de ormare prin inter-mediul crora s creasc gradul de flexibilitate i personalizare nconormitate cu pregtirea individual a fiecrui candidat, astel

    nct cei cu un nivel mai ridicat s poat opta pentru un anumitmix de ormare. De asemenea, ne propunem i deschiderea de

    filiale n alte orae din Romnia.Pe termen lung, obiectivele ACADEMY+PLUS sunt s se

    ridice gradul de colaborare ntre companiile care caut tineritalentai, s creasc standardele de perorman ale industriei is descopere prin intermediul metodei sale mini strlucite carepot crea produsele inormatice de mine.

    Daniela [email protected]

    Account Manager

    @ PITECH+CONCEPT

  • 8/9/2019 Today Software Magazine N31/2015

    14/52

    14 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    ransylvania Java User GroupComunitate dedicat tehnologiilor Java.Website: www.transylvania-jug.orgData nfiinrii: 15.05.2008 / Nr. Membri: 598 / Nr. Evenimente: 47

    Comunitatea SMComunitate construit n jurul revistei oday Sofware Magazine.Websites: www.acebook.com/todaysofmag www.meetup.com/todaysofmag www.youtube.com/todaysofmagData nfiinrii: 06.02.2012 /Nr. Membri: 2068/Nr. Evenimente: 28

    Cluj Business AnalystsComunitate dedicat analizei de businessWebsite: www.meetup.com/Business-Analysts-ClujData nfiinrii: 10.07.2013 / Nr. Membri: 91 / Nr. Evenimente: 8

    Cluj Mobile DevelopersComunitate dedicat tehnologiilor mobileWebsite: www.meetup.com/Cluj-Mobile-DevelopersData nfiinrii: 05.08.2011 / Nr. Membri: 264 / Nr. Evenimente: 17

    Te Cluj Napoca Agile Sofware Meetup GroupComunitate dedicat metodelor Agile de dezvoltare sofware.Website: www.agileworks.roData nfiinrii: 04.10.2010 / Nr. Membri: 437 / Nr. Evenimente: 93

    Cluj Semantic WEB MeetupComunitate dedicat tehnologiilor semantice.

    Website: www.meetup.com/Cluj-Semantic-WEBData nfiinrii: 08.05.2010 / Nr. Membri: 192/ Nr. Evenimente: 29

    Romanian Association or Better SofwareComunitate dedicat oamenilor cu experien din I indierent detehnologie sau specializare.Website: www.rabs.roData nfiinrii: 10.02.2011 / Nr. Membri: 251/ Nr. Evenimente: 14

    abra de testareComunitate ormat din testeri i ali proesioniti din industriaI care, n cadrul unor ntlniri inormale lunare, mprtesc

    din cunotinele proprii i nva din experienele proesionale alecelorlali membri.Website: www.tabaradetestare.roData nfiinrii: 15.01.2012/Nr. Membri: 1243/ Nr. Evenimente: 107

    Anul 2015 ne promite o serie de evenimente de calitate i ncepem cum altcumva: Lansarea numrului 31 SM. V propunempentru aceast lun Mobile Monday n Cluj i evenimentele aberei de testare din Iai i imioara. Un eveniment nou ceva fi inaugurat la nceputul acestui an n Cluj este OWASP Cluj-Napoca crora le dorim succes.Calendar

    Ianuarie 20 (Cluj)Lansarea numrului 31 al oday Sofware Magazine

    www.todaysofmag.ro

    Ianuarie 22 (imioara)d#28 - Cum a ost la EuroSAR?m e e t u p . c o m / a b a r a - d e - e s t a r e - i m i s o a r a /events/129617852/

    Ianuarie 22 (Iai)Protractor, end to end testing or AngularJSmeetup.com/abara-de-estare-Iasi/events/218963478/

    Ianuarie 26 (Cluj)

    Mobile Monday Cluj #15: Mobile game developmentmeetup.com/Cluj-Mobile-Developers/events/177047022/

    Ianuarie 27 (Bucureti)Intalnirea Clubului Antreprenorilor din ianuariem e e t u p . c o m / E n t r e p r e n e u r s -C l u b - C l u b u l - A n t r e p r e n o r i l o r /events/219800978/

    Ianuarie 29 (Cluj)OWASP Cluj-Napoca InoSec Event 2015owasp.org/index.php/Cluj#tab=Upcoming_events

    Februarie 5 (Cluj)Drupal Cluj Meetupmeetup.com/Drupal-Cluj/

    Februarie 10 (Cluj)UI/UX Cluj Meetup#12meetup.com/UXUICluj/events/177042112/

    Comuniti IT

    comuniti

  • 8/9/2019 Today Software Magazine N31/2015

    15/52

    15www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    programare

    sofwaresau arhitecilor de sofware.n articolele ce vor urma doresc s

    abordm cteva teme legate de domeniularhitecturii de sotware i cel al roluri-lor de arhitect sotware, business, I etc.Vom ncerca s schim un proces de lucrucare s ne ajute la crearea unei arhitec-

    turi. Vom aborda cerinele unui documentSAD (sotwarearchitecturedocument), ceFramework-uri putem aplica (4+1 Viewmodel, oga, Zachman), uneltele ce se potolosi i desigur nite noiuni care in maimult de Business, resurse umane i comuni-carea cu alii.

    Istoria arhitecturii softwareCuvntul n sine provine din limba

    latin architectura, adaptatlarndulsudincuvntul grecesc arkhitekton. Acesta esteun cuvnt compus din arkhi(lider, e, cel

    pe care se poate urma) i cuvntul tekton(constructor, artizan, creator, planiicator,maestru n domeniu).

    n I primele noiuni au aprut n ani 60,urmnd ca dup ani `80 cnd deja sistemeleau ajuns la o complexitatea ce necesitaorganizare i planiicare mai eicient,dezvoltatorii au nceput s exploatezeavantajele de a planifica intenionat struc-tura soluiilor n dierite domenii. Aunceput s deineasc soluii comune pen-tru probleme specii ce sau repetabil e,

    reutilizabile.S nu uitam ca n `79 a aprut primulcalculator personal (Apple II) care aducea cuel VisiCal (predecesorul lui Excel ). n 1981

    apare MS-DOS, iar n 1983 apare Word dinbuctria firmei Microsof.

    Pn la finele anilor `90 s-au tot definitmetodologii, teorii, best practice- uri ndierite domenii din industria I i struc-turi comune reolosibile. n 1995, PhilippeKruchten definete modelul arhitectural de4+1 View unde descrie vederile (view) :logical view, development view, process view,

    physical view i scenarios(cunoscut i subnumele deuse case view).

    Punctul culminant l-au adus anii 2000cnd cunotinele i teoriile acumulate aunceput s se aplice n practic. Momentansuntem participani activi la aplicarea ipopularizarea necesitii arhitecturilorsofwarei metodologiilor aerente.

    Din studiile realizate de IEEE am selec-tat graficul de mai jos care oer o vizualizarecomplet a evoluiei arhitecturii sofware.

    Ce este Arhitectura software?Arhitectura sotware poate i deinit

    n termeni generali ca structura de nivelsuperior a unui sistem. n cartea SotwareArchitecture in Practice, hird Edition ,aprut n 2012 la Addison-Wesley (autorii

    impul trece, tiina evolueaz, cerinele oamenilor cresc, adaptarea la schimbri norice domeniu devine cerin de baz. n acelai timp, ateptrile sunt n creteredac vine vorba despre calitate, accesibilitate, securitate i nu n ultimul rnd cost.

    Industria de I din ultimi ani a adus n discuie necesitatea sau inutilitatea arhitecturii de

    Arhitectura software (I)

    Levente [email protected]

    Design Lead@ Endava

  • 8/9/2019 Today Software Magazine N31/2015

    16/52

    16 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    Bass, Clements i Kazman) se definete n urmtorul ormat:Arhitectura este rezultatul unui set de decizii de aaceri i

    tehnice. Schia (desing) n momentul crerii este influenatdinmai multe pri, astel i execuia va fi influenat de schimbri n

    uncie de mediul din jur pe care arhitectul trebuie s cunoasc.[An architecture is the result o a set o business and technical

    decisions. Tere are many influences at work in its design, and the

    realization o these influences will change depending on the envi-

    ronment in which the architecture is required to perorm.]

    O alt definiie din aceeai lucrare este: Arhitectura sofwarea unei aplicaii sau sistem este structura sau structura sistemelor,

    ce combin elemente de aplicaii, proprietile vizibilitii externe

    a acestor elemente i relaia ntre ele.IASA (he Global I Architect Association) deinete

    noiunea de I arhitectur ca: Arta sau tiina schirii (design)i arta de a livra strategie tehnologic util.

    Dar arhitectura sofware poate fi considerat ca un mediude acilitare de discuii a alegerii unei soluii de aplicaii ntresolicitanii aplicaiei (business owner, stackeholder) i cei carevor livra, astel nct s se ia decizii undamentalede creare deaplicaii care pe parcurs vor ajuta ca produsul finit s aib actoride cerine satisctoare tuturor. Dintre aceti actori menionm:eicien de cost, extensibilitate, modularitate, adaptabilitate,scalabilitate, securitate, calitate etc. .

    Concluzionnd, putem considera arhitectura sotware camediul de definire a structurilor, elementelor i a relaiilor.

    Scopul Arhitecturii software.Scopul unei arhitecturi de sofware poate fi dierit, de la caz la

    caz n uncie de necesitile specificaiilor iniiale. otui se poatedefini un subset de scopuri comune care vizeaz:

    1. Beneficiile care sunt aduse n urma modificrilor.2. Selectarea motivaiei principale reeritoare la crearea sau

    schimbarea soluiei? (De exemplu, de ce dorim ca noua aplicaiede HR s aib acces la cheltuielile personale din aplicaia XYZ).

    3. Perspectiva general asupra structurilor, interaciunilor cualte sisteme (highleveloverview)

    4. Componentele, cerinele importante. Acestea vor fi punc-tele critice care pot avea impact major. De exemplu: securitateaaplicaiei sau aspectul responsival intereei.

    Lista se poate extinde dup dorinele fiecruia, e important cala final s se rspund la ntrebrile:

    1. Ce dorete s rezolve arhitectura sofware?2. Costurile acesteia? E asumabil de ctre beneficiar?3. Implicaiile personalelor- stackeholder-i, dezvoltatori,

    designeri, arhiteci, project manager-i, administratori desisteme.

    4. Planul de arh itectur SAD (S otware Arch itectureDocument) .

    Ecosistemul de arhitectur ITPutem considera c o arhitectura sotware este ncadrat

    ntr-un ecosistem organizaional ce e ntreinut de sisteme carela rndul lor sunt compuse din aplicaii, hardware, structura deorganizaie, surse i structuri de inormaii.

    programareArhitectura software (I)

    Maturitatea domeniul de arhitectur sofware

  • 8/9/2019 Today Software Magazine N31/2015

    17/52

    17www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    Nivelele de arhitectur din I se pot structura astel:1. Arhitectura de ntreprindere (Enterprise) este compus

    din arhitecturile de mai jos, dar are un status mai special prinintererena sa cu mediul de aaceri i cu implicaiile sale asupramai multor sub entiti sau firme (Cross Company Boundaries).

    2. Arhitectura sofware, cu scop de definire a designului deaplicaie, componente/elemente i relaie ntre componente/elemente.

    3. Arhitectura hardwaredefinete designul de hardwarenece-sar cum ar fi CPU, spaiu de stocare, spaiu de memorie, mediude transer de date (Wan, Lan), echipamente conexe (ex.: impri-manta sau echipament de scanare), medii de backup, medii deuncionare (in house, hosted, cloud).

    4. Arhitectura organizaional definete relaiile de aaceri(business relations), procese de aaceri (business process), struc-tur organizaional (ierarhizare), roluri i responsabiliti,competentele organizaionale (departamentele) i relaia lor.

    5. Arhitectura inormaional definete structura entitilor

    de date, sursa i organizarea acestora, de apt structura datelori accesibilitatea eficient acestora n dierite baze de date.

    Sperm c prin acest prim articol am reuit s v introducemntr-un domeniu complex precum cel al arhitecturii sofware.

  • 8/9/2019 Today Software Magazine N31/2015

    18/52

    18 nr. 31/2015 | www.todaysoftmag.ro

    O aplicaie client poate accesa resurse distribuite aflate la distan. Exist mai multemodaliti de accesare a acestor resurse, dar poate cea mai portabil este cea a servici-ilor web. n acest articol vom aduce n discuie serviciile RES (Representational Stateranser), servicii autodescriptive, moderne, cu un API Java ce are evoluie spectacu-loas n ultimele versiuni ale platormei Java Enterprise.

    Vom ncepe prin discutarea unor aspecte arhitecturale, care in de nelegerea com-ponentelor ce ac parte dintr-o aplicaie distribuit, ce olosete serviciile web.

    Arhitectura pe dou nivele (two tiers)Aceast arhitectur are dou compo-

    nente eseniale:A. Aplicaia client cu urmtoarele

    caracteristici: Acceseaz direct baza de date i

    are dezavantajul c necesit cod cetrebuie modificat pentru diverse tipuri

    de baze de date. Se poate ajunge ast-el la un bottleneckn cazul anumitorcereri de date, care necesit un volumde trafic important pentru transportuldatelor.

    Execut logica aplicaiei cuobservaia c aceasta poate fi limitatde capacitatea staiei client (memorie,CPU) i n plus necesit cod ce trebuiedistribuit fiecrui client.

    B. Serverul de baze de date.

    O aplicaie client JavaFX const din

    urmtoarele: o component ce conine iiere

    FXML reprezentnd ront-end-ul, cla-sele corespunztoare controller-ului ceexecut event handling, o clas de lansarea aplicaiei, fiiere CSS precum i clase deormatare;

    o component ce conine claseleentitate, care sunt mapate tabelelor bazeide date;

    o component ce conine clasele ceac operaii pe baza de date utiliznd

    componenta anterioar (clase DAO); JPA, ce este olosit pentru conectareala baza de date i pentru a eectua maiuor operaiile pe aceasta;

    Avantajele olosirii acestei arhitecturi

    sunt: Este mult mai extensibil dect arhi-

    tectura pe un nivel. Combin ntr-un singur sistem

    logica prezentrii, logica business iresursa de date.

    Poate avea un client pe orice host

    att timp ct acesta este conectat printr-o reea la baza de date. Are mai puine puncte sensibile,

    generatoare de erori, dect sistemul petrei nivele.

    JavaFX i comunicarea prin RESTful Web Services

    programare

    Diana [email protected]

    Java developer@ Accesa

    Silviu [email protected]

    Java Line Manager@ Accesa

  • 8/9/2019 Today Software Magazine N31/2015

    19/52

    19www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    Dezavantajele sunt: Orice modiicare n strategia de

    business determin o modiicare nlogica aplicaiei cu implicaii asupraiecrui client. Aceasta poate i oartecostisitoare i consumatoare de timp.

    Fiecare client necesit o conexiune laresursa de date.

    Restricioneaz sau complic ad-ugarea de caching, mirroring, proxyservices sau tranzacii securizate.

    Cum logica de business se afl la cli-ent, ntreaga baz de date este expus nreea.

    Arhitectura pe trei nivele (three tiers)Are urmtoarea structur:

    Aplicaia client. Mult mai puineresurse sunt necesare pe staia client. Nusunt necesare modiicri dac locaia

    bazei de date se schimb, mai puin codeste de distribuit staiilor client;

    Serverul de aplicaie manipuleazcererile mai multor clieni, reduce trafi-cul de date n reea;

    Serverul de baze de date.

    Aplicaia pe partea de server deaplicaie se descrie astel:

    Va conine businesslogic-ul pentru aeectua operaii CRUD pe baza de date

    aflat pe serverul de baze de date; Componentele vor i publicate ca

    servicii web; Serviciile webvor fi dezvoltate utili-

    znd Jersey, care este o implementare aspecificaiilor JAX-RS;

    Vor i deploy-ate pe un server deaplicaie, spre exemplu Glassfish, i potfi consumate olosind HP.

    Aadar, serverul de aplicaie va conineo colecie de servicii web RESul, care larndul lor vor comunica prin JPA cu ser-verul de baze de date. Serverul de aplicaieGlassfish urnizeaz inrastructura pentruambele API-uri JPA i JAX-RS.

    Avantajele olosirii unei arhitecturithree tiers:

    Permite o utilizare eicient a

    conexiunii la resursa de date olosindconnection pooling;

    Putem modifica businesslogic-ul ra aecta sofware-ul clientului;

    Este o arhitectur mult mai potrivitpentru scalare iload balancingdectaltele;

    Scalarea aecteaz n primul rndmiddle tier-ul.

    Dezavantajele sunt: Crete traficul de reea; Este mult mai vulnerabil la greeli;

    Obiectele business trebuie gn-dite pentru a gestiona integritateatranzaciilor.

    n poida dezavantajelor anteriorenumerate, arhitectura pe trei nivele esteutilizat recvent pentru aplicaii mari.Este cea pe care o vom aduce n discuie nacest articol i n urmtoarele articole peaceast tem.

    n partea urmtoare vom ace o scurttrecere n revist a paradigmei serviciuweb , ca modalitate prin care clariicm

    ideile i pentru cei mai puin amiliarizaicu aceast paradigm.

    Servicii WebSunt aplicaii ce comunic prin

    HP n WWW. Ele urnizeaz unstandard ce aciliteaz interoperabilita-tea aplicaiilor softwarece ruleaz pe ovarietate de platorme iframework-uri.Interoperabilitatea i extensibilitatea suntdate de XML. Ele pot fi combinate ntr-un

    mod care pierde cuplarea pentru a obineoperaii complexe.Prin utilizarea serviciilor web o

    aplicaie pe dou nivele poate fi modificatla una pe trei nivele, ce poate opera peste

    web. Aplicaia devine astel extensibil iinteroperabil cu dierite tipuri de aplicaiiclient.

    Exist dou tipuri de servicii web: SOAP (Simple Object Access

    Protocol) olosesc mesaje XML ce defi-nesc arhitectura mesajului i ormateleacestuia. Aceste sisteme conin deseorio descriere a operaiilor oerite de servi-ciu, scrise n fiierul WSDL (Web ServiceDescription Language), care este de aptun fiier XML.

    RESul (Representional Stateranser) este mult mai potrivit pen-tru scenarii de baz, cu o integraread-hoc. Sunt mult mai bine integratecu HP dect SOAP, nu necesitXML sau deiniii WSDL. Se bazeazpe specificaiile JSR-311, iar Jersey este

    o implementare a acestora. ServiciileRES olosesc W3C i standardele IEF(Internet Engineering ask Force):HP, XML, URI, MIME.

    Vom utiliza serviciile RES pentruintegrarea prin webi vom utiliza serviciileSOAP n aplicaii enterprisece au scenariide integrare care cer caliti avansate aleserviciilor (QoS) .

    Vom alege JAX-RS pentru c serviciilesunt mai uor de consumat pentru multe

    tipuri de clieni, n timp ce permite serve-rului s evolueze i s se scaleze. Clieniipot alege s consume anumite sau toateaspectele serviciului i s le combine cualte servicii web.

    Aplicaiile RES sunt simple, light-weighti rapide pentru c:

    Resursele sunt identificate prin URI,ceea ce urnizeaz o modalitate de adre-sare global.

    O intera uniorm este olositpentru manipularea resursei.

    Sunt olosite mesaje autodescriptive

    sau metadate pentru resurse. Interaciunile stateul prin hiper-

    linkurisunt bazate pe conceptul de stareexplicit de transer.

    RES indic o arhitectur client ser-ver r stare. Un serviciu RES expune omulime de resurse ce identific destinaiileinteraciunilor cu clienii. Resursele suntidentiicate prin URI i sunt manipulatede patru operaii: PU, GE, POS iDELEE.

    Resursele sunt decuplate de repre-zentare astel nct pot i accesate ntr-ovarietate de ormate: HML, XML,plaintext, PDF, JPEG i JSON. Metadatele des-pre resurse sunt olosite pentru a controla

    diverse

  • 8/9/2019 Today Software Magazine N31/2015

    20/52

    20 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    cache-ul, a detecta erorile de transmitere, a negocia cel mai potri-vit ormat de reprezentare i pentru autentificare sau controlulaccesului.

    Orice interaciune cu o resurs estestateless, mesajul esteaadarself contained. Avem la dispoziie mai multe tehnici de atrimite starea precum: rescrierea URI-ului, cookie-uri, cmpurihidden. Starea poate fi inclus n mesajul de rspuns pentru a creastri viitoare ale interaciunii.

    Clienii serviciului web , care doresc s oloseasc acesteresurse, acceseaz o anumit reprezentare prin transerareaconinutului aplicaiei olosind un mic set de metode remotecedescriu aciunea ce trebuie cut pe resurs.

    GE este olosit pentru a obine date sau pentru a eectuao cerere pe o resurs. Datele returnate de la serviciul websunto reprezentare a resursei cerute.

    PU este utilizat pentru a crea o noua resurs. Serviciulwebpoate rspunde cu date sau cu un status ce indic succesulsau eecul.

    POS este utilizat pentru a modifica resursele sau datele

    existente. DELEE este olosit pentru a terge o resurs sau date.

    n anumite cazuri aciunile de updatesau deletepot fi cuteprin POS, de e-xemplu cnd serviciul este consumat de browser-e ce nu suport PU sau DELEE). Urmtoarele mapri pot fiaplicabile pentru PU sau POS:

    Creare = PU dac trimitem ntreg coninutul unei resursespecificate (URL);

    Creare = POS, dac trimitem o comand serverului pen-tru a crea o resurs subordonat resursei specificate, olosindalgoritmi server-side;

    Update = PU, dac modificm ntregul coninut al resur-sei specificate; Update = POS, dac cerem serverului s modifice una sau

    mai multe resurse subordonate resursei specificate.

    Dezvoltarea unui serviciu web REST cu JAX-RSJAX-RS este un API Java: Destinat s uureze dezvoltarea aplicaiilor ce olosesc arhi-

    tectura RES. Utilizeaz adnotaii Java pentru a simplifica dezvoltarea

    serviciilor RES. Utilizeaz adnotaii runtime, care prin reflecie vor genera

    clasele helperi arteactele pentru resurs.

    Jersey implementeaz suportul adnotaiilor deinit despecificaiile JAX-RS.

    O arhiv a aplicaiei Java EE coninnd clasele resursJAX-RS vor avea resursele conigurate, clasele helperi arteactelegenerate i resursa expus clienilor prin deploy-ul unei arhive peserverul de aplicaie.

    Fie urmtorul exemplu de iier ce reprezint codul claseiresursei roota unui serviciu web RES, ce utilizeaz adnotaiiJAX-RS:

    package com.example.ws;

    import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.PUT;import javax.ws.rs.Path;import javax.ws.rs.Produces;

    @Path(/hello)

    public class Hello {private String name=;

    /** * Default constructor.

    */ public Hello() { // TODO Auto-generated constructor stub }

    /** * Retrieves representation of an instance of* Hello

    * @return an instance of String */ @GET @Produces(text/plain) public String sayHello() { // TODO return proper representation object return Hello World+name; }

    /** * PUT method for updating or creating an * instance of Hello * @param content representation for the resource * @return an HTTP response with content of the

    * updated or created resource. */

    @PUT @Consumes(text/plain) public void putText(String content) { name=content;

    }}

    Adnotaiile utilizate sunt: Valoarea adnotaiei @Patheste un URI relativ. Clasa Java

    se va afla, n cazul exemplului nostru, la calea dat de URI-ul/hello. URI-ul este static, dar putem include i variabile nacesta. emplate-urile pentru cile URI sunt URI-uri cu varia-bile incluse n sintaxa URI

    Adnotaia @GET este destinat metodei cererii, mpre-

    un cu @POST, @PUT, @DELETE, @HEADi este definit deJAX-RS, corespunznd respectiv metodelor similare HP. nexemplul nostru , metoda anotat va procesa cererile HPGE. Comportamentul unei resurse este determinat de metodaHP creia resursa i rspunde.

    Adnotaia @Produceseste utilizat pentru a specificatipul MIME media pe care o resurs l poate produce i l tri-mite clientului. n cazul exemplului tipul este: text/plain.

    Adnotaia @Consumeseste utilizat pentru a specificatipul MIME pe care o resurs l poate consuma i care a osttrimis de client.

    n Eclipse crearea structurii fiierului se ace urmnd paii:

    Proiectul n care am creat resursa este un Dynamic WebProject n care:

    programareJavaFX i comunicarea prin RESTful Web Services

  • 8/9/2019 Today Software Magazine N31/2015

    21/52

  • 8/9/2019 Today Software Magazine N31/2015

    22/52

    22 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    programare

    Competen sau fraud?

    reuit s m nscriu puin mai nainte de ora oficial. n urmtoa-rea zi m-am prezentat la conerin la intrare, am salutat politicos,mi-am spus numele, colegul m-a cautat pe list i m-a gsit destulde uor. Am tras puin cu ochiul: eram primul 11:58. Perect.

    Uimit puin, acesta a zis: Ah tu eti la, cum ai reuit?. Lantrebarea mea dac primesc un tricou, el a rspuns c nu, darc o s primesc ceva mai bun. n timpul conerinei m-a anunatpublic i mi-a nmnat drept premiu cartea Writing SecureCode a lui Michael Howard i David LeBlanc.

    Puin dezamgit, m-am ntrebat oare de ce mi d mie carteaaceasta. El avea nevoie mai mare de carte, el avea nevoie s nvees scrie cod mai sigur nu eu.

    Dac deplasm aceast ntmplare ntr-un cadru puin maicritic cum ar fi de exemplu unsitepe Internet unde clienii ipot crea cont i s i depoziteze banii n cont cu scopul de a-iolosi mai trziu, cartea i tricoul de mai devreme se transormn alte lucruri mai de valoare. n loc de un tricou, atacatorul idorete s obin banii clientilor, i primete n loc de o carte, anide nchisoare.

    De exemplu, un individ pe nume Alistair Peckover a ost con-damnat prima dat la 26 de sptmni cu suspendare, avnd doar20 de ani n 2009, pentru c a urat 39.000 lire. n 2010 a ost con-

    damnat din nou la 20 de luni cu execuie dup ce i-a cumprat

    un Porsche i un lingou de aur n valoare de 30.000 lire. n 2012este din nou condamnat la 3 ani de nchisoare dup ce a urat46.000 lire. Cnd a primit ultima sentin judectorul i-a spus : Ibelieve that I will see you again in the uture due to your gamblingaddiction and the temptation to use your computer skills to cheat,which will be hard to resist due to your character.

    Computer skills to cheat mi-a atras atenia. Adic el ar fi unmare geniu sau un super meseria n ale calculatoarelor. Dar dacne uitam un pic mai atent la viaa lui, vedem c locuia cu prinii

    lui i nu lucra nimic, nici cu coala nu era ocupat. Avea tot timpuldin lume, 24 de ore pe zi, s studieze toatesite-urile de jocuri is gseasc jocuri care au ost scrise de programatori care nu aucitit cartea Writing Secure Code. Gsea vulnerabiliti n ele ile exploata pe bani adevrai. Dup multe ncercri i experiena devenit un expert n domeniu.

    De ce se ntmpl lucrurile astea? Din mai multe motive. Cas numesc dou: pentru c oamenii sunt lacomi i vor s aibmuli bani, dar i pentru csite-urile sunt scrise de ctre oamenii este n natura lor s ac greeli.Vulnerabilitile de securitatenu sunt altceva dect erori de programare. Programatorii nu aunvat n acultate oarte multe despre vulnerabiliti de securi-tate. Niciproductowner-ii nu le cunosc, aa c cer echipelor de

    dezvoltare s implementeze doarfeature-urile dorite de business,ct se poate de repede. Dac reuesc s livreze nainte de termenprimesc bonus! otui, oricine poate nva despre vulnerabilitide securitate dac are ceva timp la dispoziie.

    Noi cei care lucrm n departamentul de Application Securitystudiem aceste ascinante vulnerabiliti de securitate. Eu lenumesc ascinante pentru c mult lume le vede ca fiind cevamagic, ceva ce doar geniile pot nelege. Dar de apt oricine lepoate vedea i nelege, este nevoie numai de timp i dedicare. Noidescoperim aceste vulnerabiliti n codul scris de programatoriinotri, i stuim cum s le fixeze i i nvm cum s le previndata urmtoare.

    Pentru a ndeplini acest job am implementat un proces pecare unii l numesc Secure Sofware Development Liecycle. nmare acesta const n urmtorii pai:

    1. Lucrm mpreun cu arhitecii i contribuim la desig-nul unui nou produs, nainte ca acesta s intre n aza de

    n urm cu zece ani la universitatea unde eram student s-a organizat o miniconerin de securitate. Pentru a fi mai interesant,organizatorii au creat i o pagin de nregistrare care urma s fie deschis pentru a accepta nscrieri ncepnd cu ora 12 la o anu-mit dat. M pasiona domeniul i mi-am dorit s particip. Mi-am dorit s m nscriu printre primii pentru a-mi asigura loculi mai ales c au promis c dau cte un tricou la primii 20 de participani care se nscriu.

    La vremea respectiv eu lucram ca programator angajatfull timei deja adunasem ceva ore de lucru n tehnologia olosit pentrudezvoltarea paginii de nscrieri. Aa c nu mi-a luat mult timp s descopr o vulnerabilitate i s reuesc s o exploatez n timp util. Am

  • 8/9/2019 Today Software Magazine N31/2015

    23/52

    23www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    implementare. n aceast az dei-nim toate controalele i standardele desecuritate care trebuie implementate n

    uncie de uncionalitatea produsului ilocul unde va fi olosit.

    2. Stm aproape de echipele de dez-volt are i avem vi zi bi li tate asuprasprint-urilor astel nct atunci cnd aude implementat unuser storycare atingedate sau uncionalitate sensibil dinpunct de vedere al securitii, progra-matorii se consult cu noi i mpreunstabilim cum se va implementa corect.

    3. Cnd avem uncionalitatea imple-mentat acem un test de securitate

    manual, prin care veriicm dac nucumva s-au strecurat ceva vulnerabiliti.Astel ne asigurm c n producie nuvor i probleme. Acest test de securi-tate implic code review, user storyreviewi un penetration testpe toatuncionalitatea nou implementat nsprint-ul curent.

    n biroul din Romnia suntem doupersoane pe Application Security i avemaproximativ 16 echipe de dezvoltare. Astanseamn o grmada de munc. Aa c amcerut ajutor. Am cerut ajutorul progra-matorilor spunndu-le: voi v cunoateicel mai bine codul, voi tii cel mai binecum uncioneaz aplicaia i voi tii fie-care linie de cod ce ace pentru c voi aiscris-o. Dup care am continuat: avem opropunere pentru voi, noi v nvm caresunt vulnerabilitile posibile i cum s leevitai i voi ne ajutai cu mbuntireasecuritii n produsele la care lucrai.Aa c acum avem o echip virtual deSecurity Champions ormat din cte celpuin un programator din fiecare echipplus reprezentai din celelalte echipe,cum ar fi QA, DevOps, I. inem n mod

    regulat conerine de securitate internecu prezentri i workshop-uri i deseoriinvitm i oameni cu expertiz din aarafirmei. Noi i nvm cum s fie hackeri,cum s oloseasc dierite unelte de secu-ritate cu care s-i testeze produsele, astelnct s scrie cod care nu poate fi hackuitprea uor.

    Programul de Security Champions esteeficient pentru c n acest mod cel puin opersoan se gndete la aspectele de secu-ritate din cadrul echipei.

    Este o situaie win-winpentru toatlumea, att pentru campioni pentru c idezvoltskil-urininja ct i pentru com-panie i pentru echipa desecurity. Aa cacum noi putem pleca pe o insul exotici s stm la plaj, pentru c programato-rii notri scriu cod sigur, iar hackerii nupot ura bani. Cteodat mai primim un

    teleon de la HR care ne inormeaz cnc un developera trecut la managementsau c au angajat ali cinci programatoriproaspt absolveni de acultate n locul luii c trebuie s ne ntoarcem s i nvms scrie cod sigur.

    Referine1 h t t p : / / w w w . c r a w l e y n e w s . c o . u k /

    Broadfield-hacker-jailed-46-000-fraud/story-

    17502872-detail/story.html

    2 http://www.amazon.co.uk/Writing-Secure-

    C o d e - B e s t - P r a c t i c e s / d p / 0 7 3 5 6 1 7 2 2 8 /

    re f=s r_1_1? ie=UTF8&qid=1421158841

    &sr=8-1&keywords=writing+secure+code

    Cristian [email protected]

    Application Security@ Betfair

    programare

  • 8/9/2019 Today Software Magazine N31/2015

    24/52

    24 nr. 31/2015 | www.todaysoftmag.ro

    Diminuarea complexitii cuTDD i Agile

    n ultimii ani complexitatea proiectelor a crescut ncet pn la punctul cndmodalitile utilizate n trecut pentru diminuarea sa au devenit ineficiente. n primaparte a articolului v voi mprti motivele pentru care consider complexitatea cape un aspect de care ne vom izbi timp ndelungat i despre care cred c va crete standar-dele a ceea ce nelegem noi prin sofware acceptabil.

    Complexitatea este legat n primulrnd de legea lui Moore i de cretereaincredibil a puterii computaionale de carese dispune n prezent. Aceasta le-a permis

    sistemelor sofwares nceap s ac acu mare uurin problemei complexitiicrescute, n ciuda evoluiei mai lente aparadigmelor de programare. Chiar icu apariia procesrii multicore abia amnceput s simim saltul n complexitateasofware-ului cnd e vorba de programareconcurent.

    ntruct legea lui Moore i-a atinsplatoul i se pare c nimeni nu e dispuss investeasc n creterea puterii deprocesare a nucleelor individuale (dac nuchiar n eliminarea puterii pe care o au), ne

    conruntm cu dilema dificultii scalriiaplicaiilor noastre. Se pare c nu exist osoluie acil pentru aceast problem, pecare s o putem aplica meninnd n acelaitimp stilul i modelul nostru actual olositn dezvoltarea de sofware, potrivit pentruaplicaii ce ruleaz pe un singur nucleu.

    Puterea de procesare sporit din ultimadecad a dus la o cretere a ateptrilor cuprivire la ceea ce trebuie s ac aplicaiilede business. Una dintre schimbrile celemai interesante remarcate de noi este ca

    sofware-ul trebuie s fie tot mai maleabilsi uor de mbuntit pentru a ine pasulcu ritmul schimbrilor. Aceasta e probabilprincipala or motrice pentru Agile icauza buclelor deeedbacktot mai strnse.

    Complexitatea are deci dou surse.n primul rnd, businessul are nevoie detimpi de rspuns mai scuri la solicitrilede modificri, aspect ilustrat de acapara-

    rea majoritii proiectelor i irmelor desofwarede ctre metodologiile Agile. Nuam ntlnit pe nimeni suficient de curajospentru a ncerca o metodologie Waterallpe un proiect complex n prezent. Pe de altparte, suntem nevoii s acem a unoraplicaii paralele care cresc semniicativcomplexitatea elaborrii sofware-ului dincauza creia putem vedea aceast apariiea paradigmelor programrii uncionalen majoritatea, dac nu toate, limbajeleprincipale.

    Un cadru (framework) pentrucomplexitate

    Pentru a nelege de ce par s dea grer drept de apel abordrile vechi cndse aplic unor proiecte oarte dinamice enevoie de o bun nelegere a noiunii decomplexitate i a modului n care poate fiea clasificat. Un astel de model este celutilizat de Cynefin Framework, care clasi-fic complexitatea n patru domenii, fiecaredintre ele cu propriile abordri. Meritmenionat c nu tot ce uncioneaz pen-

    tru un domeniu de complexitate se poateaplica i altuia.Modul n care se trateaz o problem

    din acest punct de vedere este prin aduce-rea ei de la un domeniu complex la unul

    managementprogramare

    Radu [email protected]

    Software engineer@ Fortech

  • 8/9/2019 Today Software Magazine N31/2015

    25/52

    25www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    simplu. Dar elul n care transormi o pro-blem complex ntr-una cu un grad mairedus de dificultate este dierit de moduln care transormi o problem complicatntr-una simpl. n final este vorba de con-strngeri. Constrngerea unui domeniucomplex d natere unui domeniu maipuin complex, iar constrngerea acestuiarezult unui domeniu simplu.

    Desigur, direcia poate i i invers(datorita unui eveniment ce proiecteaz

    problema n domeniul haotic, o schim-bare n specificaii, direcie sau toate celemenionate mai sus), caz n care ar trebuis urmrii cu atenie semnele ce v permits ncadrai corect problema n domeniulsu de complexitate i s o abordai ntr-unmod potrivit.

    Se va prezenta n continuare o scurtdescriere a domeniilor de complexitate,conorm definiiei Cynefin Framework.

    SimpluContextele simple sunt caracterizate de

    aptul c rspunsul corect la o problemeste evident. Unele exemple de astel decontexte ar putea fi scrierea unui Java Beansau a ceva care poate fi cut ntr-un sin-gur mod. Aceasta este zona Best Practices,unde cauzalitatea unei chestiuni este clarneleas.

    La acest nivel abordarea unei problemencepe prin evaluarea situaiei i includereaei in categoria potrivit. Ulterior se trece lasoluionarea ei ntr-un mod prestabilit.

    Dac ne reerim la programare, pro-

    blemele de acest gen pot fi sarcini pe carele poate ndeplini aproape orice persoancapabil s urmeze o list de veriicare(checklist). Drept exemplu putei considera

    un cod pe care-l poate scrie chiar i uncopil sau non-programatori.

    Complicated/Sofisticatntruct n limba romn complicat

    este apreciat ca sinonimul lui complex,traducerea lui complicated cu sofisticataracoperi mai bine definiia dat de CyenfinFramework acestui nivel de dificultate.

    Cynefin Framework utilizeaz terme-nul complicated. Domeniul complicatede

    ceva mai puin restrictiv dect cel simplui permite soluii alternative la o problem.Acesta e domeniul cunotinelor experte.ntruct poi avea mai mult dect un rs-puns bun la o ntrebare, domeniul e deasemenea unul al Bunelor Practici. Existaici i o legtur cauzal, care este totuidestul de ascuns vederii de multitudineasoluiilor posibile i n mod cert nu e la elde clar ca ntr-un domeniu simplu.

    Pentru problemele din acest domeniuevalum prima dat situaia i apoi nebazm pe experii, care trebuie s eectu-

    eze o analiz ale crei concluzii le utilizmpentru implementarea soluiei agreate.Aceast abordare e necesar deoarece nuexist o soluie care e n mod cert cea maibun.

    n c e pr iv e te ac t iv i t i le deprogramare, putem include aici sarcinirepetitive care cer totui puin analizsituaional. Un exemplu potrivit ar idesignul unei aplicaii CRUD. Aceastanecesit cunoaterea ctorvaramework-uri, baze de date, etc. .Exist ns o

    mulime de Bune Practici ncetenite carepot fi urmate.La acest nivel cerinele sunt destul de

    stabile, permind utilizarea abordrii

    Waterall. Un exemplu de sarcina cores-punztoare acestui nivel ar i unul ceimplic scriere de driver-e pentru dis-pozitive. Dei soluia poate necesita oexperien extensiv, exist o mulimede Bune Practici pentru a te ghida spre osoluie acceptabil. Specificaiile nu se vorschimba oarte mult, ele fiind constrnsede interaa hardware.

    ComplexDomeniul complex este unul pe care

    am nceput s-l ntlnim tot mai des deceva vreme ncoace. La acest nivel primimcerine care se modific rapid pentru a rs-punde presiunii externe. Orice modificaren specificaii va duce la dezvoltarea uneiuncionaliti, iar implementarea sa arputea duce la alte schimbri ale cerinelor

    dup analiza eectului pe care l are eaasupra bazei de utilizatori sau a altorcomponente ale aplicaiei. Acesta e dome-niul designului emergent i el ne permites discutm despre cauzalitate doar nretrospectiv.

    Din acest punct abordarea Waterallva deveni neputincioas datorit buclelorsale de eedback oarte mari, iar meto-dologiile Agile ncep s ctige teren.Suntem echipai acum pentru a ace aspecificaiilor dinamice, aflate ntr-o con-

    tinu schimbare.Cea mai mare problem ridicat decontextele complexe este elementul denoutate pe care-l aduc n procesele noastre.ntruct abia am nceput s acem trecereala ele, le nelegem prea puin i tindem sle considerm doar complicate. Dovadc lucrurile stau aa sunt ncercrile de aimpune un document cu speciicaii ctmai exact, apariia unei mulimi de regulii regulamente care ncearc s contro-leze haosul aparent, rustrarea produs denenelegerea modului n care se ateapt

    s evolueze sistemele i lipsa controluluiasupra mersului lucrurilor. n ciuda tutu-ror celor de mai sus, sistemele complexecer experimentri i explorri, pe caretrebuie s le includem n planurile noastrepentru a obine rezultatele dorite.

    n domeniile complexe trebuie sncurajezi experimentarea i explorarea.Aceasta nseamn c trebuie s seteziproiectul, aplicaia i procesele astel nctele s permit eecuri multiple iefine nncercarea de a obine rezultatul dorit.

    La acest stadiu e vorba despre lansareaunui experiment i evaluarea rezultatelorpost-experiment, urmate de integrareasoluiei n aplicaie n cazul unor rezultate

    Surs fig. - quarterview.com/?p=1091

  • 8/9/2019 Today Software Magazine N31/2015

    26/52

    26 nr. 31/ianuarie, 2015 | www.todaysoftmag.ro

    satisctoare.Pentru a obine rezultatele dorite tre-

    buie s: ncurajezi comunicarea n echip.

    n acest el se va putea olosi experienacolectiv n rezolvarea problemelor.

    Creezi bariere. rebuie stabilit un sis-tem de constrngeri n interiorul cruiasistemul poate evolua. Cunoaterea aces-tor constrngeri clarific ceea ce poate fimodificat i schimbat, ajutnd n acelaitimp la diminuarea rustrrii generate deritmul alert al schimbrilor.

    Reoloseti soluii. Se ncearc gsi-rea unor soluii bune, comune maimultor probleme i reolosirea lor ninteriorul sistemului. Identificarea aces-tor soluii oer o structur mai clari un set nou de constrngeri pentru

    problem, ajutnd la mutarea proble-mei dintr-un context complex ntr-unulcomplicat.

    HaoticDomen iu l h aot ic e s te c e l a l

    circumstanelor excepionale. El apare des-tul de rar i poate fi deosebit de periculospentru aplicaia i aacerea ta. Haosul arputea fi cauzat, printre altele, de o eroaremare n modulul de securitate aprut nsistemul tu aflat n unciune.

    Prima msur pe care trebuie s-o iein astel de circumstane este s controlezidaunele. Aceasta nseamn s nchizi ser-verele, s deconectezi cabluri le de reea,s-i chemi avocaii i orice altceva poateminimiza impactul incidentului.

    Caollow-upla trecerea pe context hao-tic, presupunnd c firma supravieuiete,pot urma r rezisten mbuntirileproceselor i inovarea, ntruct toatlumea e predispus n astel de momentes accepte uor schimbarea pentru a pre-veni repetarea unor asemenea evenimente.

    Evoluia practicilor Agile

    DebutulLa nceputurile lor, practicile Agile

    aveau rolul de a reduce impactul unor pro-bleme ridicate de domeniile complicate intr-o mai mic msur de cele complexe.Metodologia preerat atunci era ntru-ctva similar celei Waterall, care ncepeas-i arate limitele n contextul creteriicomplexitii sofware-ului dezvoltat (pre-supunnd ca a uncionat vreodat).

    Principalele probleme cu Waterall auost specificarea complet a sofware-uluiolosit n dezvoltarea sofware i ciclurilerelativ lungi de release. n vreme ce aces-tea pot da n mod cert rezultate pentrudomeniile simple i complicate, bucla deeedback mare ar preveni implicarea cli-

    entului, conducnd la rescrieri majore alesofului de la o versiune la alta.

    Metoda Waterall a ost i nc este oabordare oarte conortabil i intuitiv,care creeaz un sentiment de securitateartificial, ntruct toate lumea i vede detreab, cu rezultate acceptabile, n conor-mitate cu speciicaiile. Problemele apardoar la ora deadline-ului, cnd se constatca soful nu e exact cel visat de client i fie-care i gsete o scuz. Procesul Wateralleste conortabil tocmai pentru c nu per-

    mite tragerea la rspundere. Nimeni nurspunde pentru propriile greeli.n paralel, echipele Agile au nceput

    s rezolve probleme cu grad sporit decomplexitate. Ciclurile de eedbackmaiscurte au permis o implicare mai mare itotodat puin mai stresant din partea cli-entului, dar echipele au ost n msur sse adapteze mult mai rapid la modificrilecerinelor.

    Succesul iniial avut cu Agile a condusuneori la delsare i iluzia c procesul eunul simplu. Pentru domeniile simple i

    complicate este ntr-adevr aa, pentru cn aceste contexte ne putem baza pe cerinecare evolueaz ncet i conexiuni cauz-eect ntructva clare.

    Aceast delsare a creat un context cea transormat Agile ntr-un set de BunePractici, ducnd la relaxarea tuturor subimpresia c nelegeau Agile. rebuie doars ai stand ups i retrospectiva sprint-uluii putem uita totul despre orele care audus la apariia Agile.

    Incidental, acelai lucru s-a ntm-plat cu DD. Datorit naturii simple saucomplicate a proiectelor, DD a ost redusla cerina de a avea un set de teste unitpentru a obine un grad acceptabil decertitudine cu privire la corectitudineacodului tu. i a devenit chiar uor. rebuies ai doar (aproape) 100% acoperire. Nu

    e nevoie s te gndeti prea mult la cumstructurezi codul de producie sau testare.

    Aceast abordare prea proesional itotul era bine i rumos n lume, pn cnda intervenit schimbarea

    Nu mai suntem n KansasPutei vedea aceast schimbare deoa-

    rece multe persoane au nceput s afirmec metoda Agile i DD i toate acele prac-tici mrunte i drgue care ne-au cut sne simim oarte proesionali au nceput s

    nu mai uncioneze.Ce se ntmpl?A aprut nevoia ca sotware-ul srezolve probleme complexe i pentruprima dat am avut hardware-ul carepoate s ac acest lucru. Dezavantajuleste c a lipsit o nelegere clar a mode-lului complexitiidin spatele nevoilornoastre i presupunnd cdac am acemai mult din lucrurile pe care le-am cutpentru rezolvarea problemelor complicate,ar putea unciona. Dar aa ceva nu aveacum s uncioneze.

    Problemele complexe au natur

    dierit a de pro-blemele din seracomplicated dato-rit schimbrii nlanul cauzalitii.Putem vedea cau-zalitatea doar nretrospectiv nprobl em e c om -plexe. n timp ceacest lucru pareclar acum, nu era

    evident atunci. Eraca i ncercarea deatingere a curcu-beului. Euezi un

    Diminuarea complexitii cu TDD i Agile

    programare

    Young spiritMature organizationA shared vision

    Join our journey!

    www.fortech.ro

  • 8/9/2019 Today Software Magazine N31/2015

    27/52

    27www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    TODAY SOFTWAREMAGAZINE

    proiect i nvei lecia, stabileti un codde bune practici care s previn acelailan cauzal i ncerci din nou. Din pcate,natura problemelor complexe nu garan-teaz sub nici o orm c o astel deabordare ar unciona, crend o rustrarenemrginit.

    ntr-un mod ironic, practicile Agile iTDD ar fi putut fi olosite pentru a ajutala rezolvarea unor probleme complexen orma lor original, mai puininstituionalizat, dac orele datoritcrora ele uncioneaz ar fi ost nelese.

    De ce nu mai funcioneaz practicileTDD?

    S analizm care este principala pro-blem pe care oameniio au cu practicaTDD. Dac avei o acoperire complet,

    olosind unit tests ale sotului, atuncischimbarea comportamentului sotuluiva determina euarea testelor. Cte voreua? Depinde de schimbare i de numrulde teste pe care le-ai scris. Reinei c ndomeniile simple i complicatedunit testssunt indicate, deoarece aceste domeniisunt aproape imune la schimbare i soli-dificarea codului de baz este o idee bundei aceste teste trebuie vzute mai multca un mijloc de descurajare a schimbriidect ca o verificare a corectitudinii.

    Atunci cnd soful ncearc s rezolveo problem complex, n special o pro-blem care nu este chiar clar la acestmoment, codul trebuie s ie schimbatoarte recvent. Este necesar ca experi-mentarea i eecul s fie iefine. De ce arolosi cineva unit tests? Singurul rspunsplauzibil este acela c din cauza celor maibune practici, care nu se aplic evidentdomeniilor complexe.

    TDD nu a ost iniial despre unit tests.Accentul, n special pentru un sotwarenou, a ost pus pe testare uncional (care

    din punctul meu de vedere este testareuncional). Aceste teste sunt magicen sensul c ele nu testeaz uniti de codci mai degrab comportamente ale siste-mului complet. M ntreb cum ar puteaunciona acest lucru pentru problemecomplexe. Crearea de teste uncionaleurnizeaz barierele de care ai nevoie ndezvoltarea sotului dintr-un domeniucomplex. estele sunt uneori denumitespecificaii executabile.

    estele uncionale nu mpiedic

    schimbri la baza codului, ci mai degrabncurajeaz acest aspect. Aceste teste se asi-gur c acest cod respect uncionalitateacare a ost convenit pn n prezent (pro-blema schimbrii recvente a sotului

    a ost unul dintre obiectivele DD, careacum pare s fi ost uitat).

    Scrierea testelor naintea imple-mentrii oer o structur iniial(barier) a unciilor pe care ncerci sle implementezi. Natura imprevizibil aciclurilor Rou / Verde / Reactorizarese potrivete ca o mnu practiciloremergente.

    Partea de Reactor a ciclului DD esteceea ce de obicei se amn n cele maimulte echipe, prin urmare avem sprinturide consolidare. Aceasta este o greeal.Codul trebuie s fie n cea mai bun ormi extras corespunztor n componente.Cum poi s aci experimente iefine daccodul tu arat ca un bol de spaghete?

    Cu siguran DD pare c ar i des-tul de potrivit pentru domeniul nostru

    complex. Dar nu poi trata DD ca unregulament i s l utilizezi ca atare i satepi rezultate n acest domeniu. Estenecesar s lucrezi cu DD, n acelai timps fi contient de cauzele ce au dus la cre-area sa i ce anume vrea strategia ta detestare s realizeze. ntotdeauna trebuie sai o strategie de testare.

    Mai mult, trebuie s nceap s i placRou/Verde i n special etapa de Reactor.Acesta este singurul motiv pentru carecodul va i mai uor de scris.Nu poate

    rezolva niciodat toate problemele; dacapare o schimbare arhitectural majorva dura un timp pn va fi implementat.Dac este un model pentru schimbare saucnd apare un model nou, codul tu l vaoglindi precis, iar implementarea experi-mentelor va deveni mult mai uoar.

    Ce putem spune despre practicile Agile?De la nceputurile lor, practicile Agile

    s-au cut pe cod testabil i testat. Dacoloseti un proces Agile i cod netes-tat nseamn c nu eti oarte Agile (vezi

    flaccid scrum), iar proiectul e mai degrabnou sau se situeaz n domeniul simplu saupoate complicat.

    Una dintre plngerile recente adresatepracticilor Agile a sunat n elul urmtor:programatorii ar trebui s scrie cod i nus-i piard timpul n ntlniri standuplip-site de sens. Aceasta presupune ca apliciprocesul aerent unei probleme simple saucomplicate, ntruct scrierea de cod o poiace doar dac tii ce ar trebui s ac acelcod.

    Aceasta nu se ntmpl n cazul dome-niului complex, care necesit eecuriiefine i are cerinele modificate n unciede succesul sau eecul dieritelor expe-rimente. Un domeniu complex cere de

    asemenea structurarea codului n prireutilizabile. Cum poi ti c nu scrii codpentru acelai tip de uncionalitate caunul dintre membrii echipei tale n lipsacomunicrii n cadrul echipei?

    n domenii complexe comunicarea artrebui ncurajat puternic; ntlniri zilnicede 20 de minute ale membrilor echipeioptimizeaz procesele, ele micorndnevoia ntreruperilor repetate la intervalealeatorii pe parcursul ntregii zile.

    Cnd ntlnirile stand-upse in doarpentru c sunt prevzute n regulament idesconsideri problema pe care ele ncearcs o rezolve ele devin cu adevrat o pier-dere de vreme.

    O alt explicaie a eecului metode-lor Agile n cazul domeniilor complexe oreprezint sesiunea de planificare a sprint-

    ului n care trebuie s estimezi timpulnecesar implementrii unei uncionaliti.ntruct domeniile complexe cer expe-rimentarea cu codul, estimrile parntructva contraintuitive (nu poi acepreviziuni precise despre uncionaliti nacest context). Problema acestea nu credtotui c e una relevant n practic. Credmai degrab ca planificarea sprint-urilor artrebui s creeze o imagine ntructva pre-cis a punctului actual i al celui pe caredorim s-l atingem pn la urmtoarea

    ntlnire, obiectiv pe care l ndeplinete nmod admirabil.

    ConcluziiNu ne mai putem permite s credem

    n magia cuvintelor sacre precum DD iAgile. Pe msur ce crete complexitateasofware-ului, ntreaga echip de dezvol-tare trebuie s neleag orele care audus la apariia DD i Agile i cum s leaplice n conormitate cu rolurile lor i cuo atenie permanent.

    Avem un model pentru complexitate

    care explic de ce apar aceste problemei motivele pentru care nu vom puteareplica succesele noastre trecute n prezentolosind de iecare dat aceleai tehnici.Este acest model precis sau nu? nc nutim oarte bine, dar modul n care a ostel primit i utilizat indic nite corelaiiinteresante.

    Plaonarea datorat succeselor tre-cute i creeaz tot elul de probleme, lael ca i industriei I. Nu te relaxa preamult n lumea ta i ncearc s nvei n

    permanen ceva nou, preerabil ceva ce tesperie. Dac vrei s te alturi noii generaiide programatori i de paradigme de pro-gramare, las deoparte plaonarea i ncepechiar acum s nvei.

  • 8/9/2019 Today Software Magazine N31/2015

    28/52

    28 nr. 31/2015 | www.todaysoftmag.ro

    tim cu toii ca n zilele noastre una dintre cele mai olosite metode sau moduri delucru pentru a gestiona echipe de proiect este Agile. Agile se poate implementacu succes olosind Scrum, Kanban sau altele. oat lumea ace Agile, toat lumeacunoate principiile Agile i toat lumea l implementeaz. Prin natura jobului am tre-cut prin multe proiecte, de la cele mai mici pn la cele mai mari, de la cele mai uoarepn la unele dintre cele mai grele proiecte. De-a lungul timpului am citit oarte multe

    despre Scrum, despre cum se implementeaz i despre principiile lui, best practices, etc.. n toate aceste situaii am gsit oarte puine inormaii despre cum se poate optimizaScrum lucrnd n echipe distribuite, localizate n dierite zone de pe glob, lucrnd laacelai proiect i ncercnd s aplice aceste principii ce ac din Scrum una dintre celemai populare metodologii.

    Dac vorbim de succes, a de aniiprecedeni se observ un trend ascendentasupra ratei de succes a proiectelor ceolosesc Agile, dar nu numai n cazul pro-iectelor ce olosesc Agile se observa acesttrend. Mai jos, avei o statistica a ultimilor

    doi ani:

    Proiecte ce olosesc Agile (2012 vs. 2013):

    Proiecte ce olosesc V-model (2012 vs. 2013):

    Proiecte ce olosesc Waterall (2012 vs. 2013):

    Legenda

    Sursa: http://www.planittesting.co.nz/resource/industry-stats-project-outcomes-based-on-primary-methodologies-2013/

    Echipe distribuite - avantaje i dezavan-taje

    Majoritatea echipelor de proiect ncare am lucrat erau distribuite. Am ntlnitsituaia cnd clientul era localizat n USAi ntreaga echip de dezvoltare era locali-zat n Romnia, dar am ntlnit i cazurimai complexe cnd echipa de dezvoltareera localizat n Romnia dar i n USA, laclient. Cred c este una dintre situaiile celmai greu de gestionat. n continuare, voiprezenta avantajele i dezavantajele uneiechipe distribuite. Haidei s aruncam oprivire obiectiv asupra avantajelor ce leoer o echip distribuit. n primul rnd,

    dierena de us orar nu trebuie privit caun impediment( lucru care de obicei sentmpla) ci trebuie privit ca un avantaj.De ce? Pentru simplul motiv c atunci cnduna dintre prile echipei nu este disponi-bil, cealalt echip este la munc, poates rezolve unele task-uri, eventualele pro-bleme aprute n sistemul din produciei aa mai departe. Dac aruncam o pri-vire de ansamblu asupra acestei situaiiobservm c ntr-adevr dierena de usorar este un avantaj pentru ca asigur pe

    o perioad oarte mare dintr-o zi prezenasuportului. Dac se lucreaz la un proiectcare deja se afl n producie acest avantajdevine poate i mai important.

    Performana n echipe distribuite

    management

    Tiberiu [email protected]

    Engineering Manager@ 3Pillar Global

    programare

  • 8/9/2019 Today Software Magazine N31/2015

    29/52

    29www.todaysoftmag.ro | nr. 31/ianuarie, 2015

    Educarea clientului i ncrederea n echipDe obicei pe mai toate proiectele se lucreaz cu Scrum sau

    mai nou cu Kanban. Pn aici toate bune i rumoase. Dar v-aintrebat vreodat ct de bine cunoate clientul metodologiaScrum? Este un aspect oarte important ce va avea un impactmajor n dezvoltarea ulterioar a proiectului cu repercusiunidestul de ample. n primul rnd unii din clienii cu care lucramnu cunosc oarte bine ce nseamn Scrum, care sunt principiilede baz i cum anume se aplic. Ba mai mult, dac lucrm cu oorganizaie destul de mare, acolo vom observa c sunt alte rolurii responsabiliti. Sigur v-ai lovit de clienii aceia care au mana-geri de proiect sau care au aa- numiii Line Managers. ntrebareae cum se muleaz aceste roluri n Scrum?

    Este oarte important n momentul n care se creeaz o echipnou i se ncepe munca la un proiect s se deinitiveze ncde la nceput toate rolurile la toi indivizii implicai n proiect.Mai mult, recomandarea mea este s se definitiveze i o scurtalist de responsabiliti pentru fiecare din aceste roluri. Acesteresponsabiliti vor ace puin lumin i vor nivela unele cone-

    xiuni n cadrul echipei astel nct fiecare dintre oamenii implicaipe proiect vor ti ce au de cut. Am stabilit c e oarte importants se definitiveze rolurile i responsabilitile pe proiect, dar ceacem cnd ne lovim de unii clieni reticeni, care sunt oarte greude convins asupra acestor aspecte? Rspunsul la aceasta ntrebarese reduce la un singur lucru: NCREDERE.

    n acest punct oarte important, cnd se creeaz echipa eoarte important ca managerul de proiect, cel ce se ocup dentreaga echip de dezvoltare s-i intre n rol. Vorbeam deroluri, nu? Dar care e rolul principal al unui manager de proiectn aceast etap? Formarea echipei, adoptarea unui proces comunpentru toat lumea i mai ales creterea ncrederii.

    E oarte dificil s cretem ncrederea ntr-un timp scurt, darnu e imposibil.Recomandarea mea pentru a acilita acest lucru, este de a avea

    o ntrevedere direct, a n a cu clientul i de a discuta toateaceste aspecte.

    Roluri i responsabilitiAm ntlnit de-a lungul timpului dierite orme prin care

    o echip unciona i aici m reer strict la rolurile i mai alesresponsabilitile fiecrui membru din echip. Nu uitai, vorbim

    aici de echipe distribuite iar n cadrul acestor echipe vei isurprini s vedei c fiecare nelege n elul su rolul pe care lare n echip i mai ales responsabilitile sale. E oarte importantca ntr-o echip distribuit aceste roluri i responsabiliti s fieclar stabilite nc de la nceput. tim oarte bine care sunt princi-palii juctori ntr-o echip ce adopt Scrum-ul. Dar oare aceastasituaie este una ideal tot timpul? V spun eu, n majoritateacazurilor am vzut oameni implicai n dezvoltarea unui produscare pur i simplu nu se regsesc n actorii aceia cu care suntemtoi obinuii din Scrum. Un exemplu concret: un client vine iv spune c el are la dispoziie un Business Analyst care va doris lucre