today software magazine n24/2014

Upload: serghei-cebotari

Post on 03-Jun-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Today Software Magazine N24/2014

    1/62

    T O D A Y

    S O F T W A R E

    Nr. 24 Iunie 2014 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    C IT- R

    C

    AOP PS

    A

    O .

    V S O

    R

    P -

    R SEP QA F

    Java8Procesareacoleciilor

    ModelareaobiectualatestelordeSelenium

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    2/62

  • 8/12/2019 Today Software Magazine N24/2014

    3/62

    6

    TO M

    8

    JS C 2014T T

    10

    I T.A.K.E. UC C

    11

    H WMVP A

    I S

    12

    ID R

    O M

    15

    PM A

    C C

    14

    J 8 P

    O S

    16

    I M B I

    C P

    19

    A

    A L

    21

    M S

    C P

    25

    R

    R M

    28

    I A B A B

    31

    P P OB G

    34

    V S OM C

    38

    R SER M

    42

    P QA M C

    44

    F C T

    46

    C IT- R?

    O

    48

    D P M?L T

    50

    C !F A

    51

    PSR V

    54

    S C O A SR K

    56

    A A-M B

    58

    D D S

    59

    O R M

    60

    O . C J

  • 8/12/2019 Today Software Magazine N24/2014

    4/62

    4 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Nu credeam c este posibil, dar astzi am luat prnzul mpreun cu RichardStallman, cel care a scris Emacs, GCC-ul, a creat GNU / Linux i a por-nit micareareesoware. O legend ce a susinut o prezentare la Cluj prin

    undaiaCEAA.org. Discursul su s-a concentrat pe dierena dintre opensourceireesofware. ermenul dereesofwarea ost definit de ctre Richard Stallman n 1985 nmomentul nceperii proiectului GNU i a Free Soware Foundation (FSF.org). Acestaare scopul de a promova libertatea utilizatorului de a olosi i a modifica dup bunul placcodul surs i de a-l redistribui cu obligaia de a menine aceeai licen GPL 3 i pentruprodusul rezultat. Astel, avem sigurana nu doar a crerii unei aplicaii ci a unui ntregecosistem deschis ce este meninut n aceast stare. Opusul acestui concept este sofware-ul proprietar, care n viziunea lui Richard Stallman nu ar trebui olosit deoarece suntemla ndemna programatorului i a marilor corporaii. Exemplul dat a ost reprezentativ:n 2009, Amazon a ters direct de pe toate dispozitivele utilizatorilor cartea lui George

    Orwell, 1984, r a notifica sau cere acceptul utilizatorilor. Problemele invocate deAmazon la acea vreme au ost legate de copyright. n schimb, open sourceare inta de aoptimiza ct mai bine codul r a lua n considerare aptul ca acel cod este nglobat naplicaii ce aecteaz libertatea utilizatorilor. De ce s olosimreesofware? Pentru c acelsoware este validat de ctre comunitate i nu sunt acceptate bucile de cod ce ar puteatransorma o aplicaie n malware. n timpul discuiei cu Richard Stallman, am aflat cprima versiune Emacs a ost scris n 4-5 luni. Avem promisiunea unui interviu pe carel vom publica n urmtoarele numere ale revistei.

    Un alt eveniment important ce a avut loc n Cluj a ost echsylvania, un eveni-ment dedicat antreprenoriatului i startup-urilor. Acesta a adus pe scen antreprenoriimportani precum HP Jin, CEO elenav, Jose Dunne, Co-ounder Babelverse sau RohanChandran Head o Product @ elenav. Mai multe detalii vei putea citi n articolul dedicat

    special acestui eveniment.Doresc s menionez evenimentul de lansare a revistei organizat mpreun cu ClujI Innovation Cluster - I-ul Braovean gzduit de CRIso. Am avut parte de un pub-lic numeros i oarte interesat cruia i promitem c vom reveni. Au ost prezentateideea i motivaia cluster-ului de I clujean, ecosistem-ul de I clujean din perspec-tiva startup-urilor, importana documentrii n project management, Best practices nAgile,ramework-uri de dezvoltare web n Java precum i oportuniti de finanare pentrucompanii.

    Acest numr v propune o serie de articole tehnice scrise din prisma experieneiautorilor:Java 8 - procesarea coleciilor, Instrumente Microsof de Business Intelligence iVisual Studio Online, PostSharp sauSecurizarea codului Opensource via Analiza Static.Riscul de a nu avea riscurine amintete despre risk management, Povestea unui productowner prezint provocrile la care unproduct ownereste supus. n Reeaua StackExchange

    putei citi despre crearea i dezvoltarea ecosistemului din care ace parte i binecunos-cutul sitestackoverflow.com.Modelarea obiectual a testelor de Selenium iProesionitiiQA - cerere i dezvoltare acoper domeniul testrii, iar provocrile din I sunt dezbtutenCe este n neregul cu I-ul din Romnia?ncheiem cu un articol din zona de legal:Opiuni pentru marca dvs. nregistrat.

    V dorim o lectur plcut !!!

    Ovidiu ManFondator al Today Sofware Magazine

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    editorial

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://ceata.org/http://fsf.org/http://stackoverflow.com/mailto:[email protected]:[email protected]://stackoverflow.com/http://fsf.org/http://ceata.org/http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    5/62

    5www.todaysoftmag.ro | nr. 24/Iunie, 2014

    Redacia oday Sofware Magazine

    Fondator / Editor n chie: Ovidiu [email protected]

    Editor (startups i interviuri): Marius [email protected]

    Graphic designer: Dan Hdrudan.hadarau@todaysomag. com

    Copyright/Corector: Emilia [email protected]

    raductor: Roxana [email protected]

    Reviewer: avi [email protected]

    Reviewer: Adrian [email protected]

    Contabil : Delia [email protected]

    Produs deoday Soware Solutions SRL

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

    www.todaysomag.rowww.acebook.com/todayso mag

    twitter.com/todaysomag

    ISSN 2284 6352

    Copyright oday Soware Magazine

    Reproducerea parial sau total a articolelordin revista oday Soware Magazine

    r acordul redaciei este strict interzis.

    www.todaysomag.rowww.todaysomag.com

    Lista autorilor

    Radu [email protected]

    Senior Software Engineer@iQuest

    Claudia [email protected]

    Avocat & Consilier in domeniul marcilor

    @ IP Boutique

    Tudor [email protected]

    Team Lead & Scrum Master@ msg systems Romnia

    Cristian [email protected]

    Software Developer@ Yardi Romania

    Ramona [email protected]

    Measurements & BestPractices Specialist@ ISDC

    Bogdan [email protected]

    Group Product Owner@ Endava

    Ctlin [email protected]

    Principal Software Engineer@ Ixia

    Ovidiu [email protected]

    QA & Bid Manager@ ISDC

    Laureniu Toma, [email protected]

    Project Manager@ SOFTVISION

    Florin [email protected]

    DevOps@ Yonder

    Attila-Mihaly [email protected]

    Code Wrangler @ UdacityTrainer @ Tora Trading

    Dan [email protected]

    Management Partner@ Casa de management Daris

    Mihaela [email protected]

    Senior QA Engineer@ HP Romnia

    Radu [email protected]

    PHP Developer@ Pentalog

    Alin Luncan

    [email protected]

    Software Engineer@ Accesa

    Ovidiu [email protected]

    Team Lead@ Fortech

    Alexandru [email protected]

    Agile Coach and Trainer, with afocus on technical practices@Mozaic Works

    Raghudeep [email protected]

    Security Researcher, Softwareand Services Group@Intel USA

    Corina [email protected]

    Senior QA Engineer@ Betfair

    Marius [email protected]

    Technical Lead@ 3Pillar Global

    mailto:[email protected]://../.pdfmailto:[email protected]://../.pdfmailto:[email protected]:[email protected]://../.pdfmailto:[email protected]://www.todaysoftmag.ro/http://../.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_1/twitter.com/todaysoftmaghttp://www.todaysoftmag.ro/http://www.todaysoftmag.com/http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://www.todaysoftmag.com/http://www.todaysoftmag.ro/http://localhost/var/www/apps/conversion/tmp/scratch_1/twitter.com/todaysoftmaghttp://../.pdfhttp://www.todaysoftmag.ro/mailto:[email protected]://../.pdfmailto:[email protected]:[email protected]://../.pdfmailto:[email protected]://../.pdfmailto:[email protected]
  • 8/12/2019 Today Software Magazine N24/2014

    6/62

    6 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    eveniment

    Techsylvania

    Prima parte a acestui eveniment aconstat ntr-un hackaton local, unde

    participanii au avut ocazia s dezvolteaplicaii pentru device-uri precum GoogleGlasses, Small printer, Onyx Beacons,Leap motion, Sphero, Sony Smartwatch2, Pebble, Oculus VR, Eyeribe racker1.Rezultatul celor 24 de ore de hackatona ostspectaculos din perspectiva inovaiei, ridi-cndu-se peste multe dintre startup-urilepe care le-am vzut n ultima vreme. Neadresm de altel ntrebarea de ce nu existastel de dispozitive permanent ntr-unclub al I-ului clujean? Noi, revista SM,am ncercat de o perioad de timp crearea

    unui astel de spaiu dar provocarea ceamai mare este existena spaiului fizic undeacesta s se desoare. Bineneles, realiza-rea n totalitate a acestuia este posibil doarprin implicarea companiilor din domeniucare i-au anunat disponibilitatea.

    1 http://techsylvania.co/event-ino

    Revenind la echsylvania, acesta s-adesurat la Cluj Arena, acelai loc n

    care a avut loc i I Days2

    , astel c a osto plcere revederea acestui spaiu ntr-onou ormul de organizare. Evenimentula debutat cu prezentarea organizatorilor,executive producers: Vlad Ciurca i OanaPetru. Prezentarea keynotea venit din par-tea lui HP Jim, CEO elenav, care a constatn povestea succesului i a importaneiperseverenei n tot ceea ce acem. A pornitca un simplu student n China, ce a luptatpentru obinerea unei burse n SUA, acestafiind primul pas pentru a avea ansa de a-icrea propria companie de soware. A reuit

    s obin o burs la Standord, n condiiilen care erau alocate doar cte o burs pen-tru fiecare domeniu de studiu n ntreagaChina. Aici a studiat aeronautica i astro-nautica i de aici i-a venit i ideea pentrucompania sa: navigarea prin GPS. Astel a

    2 http://www.itdays.ro

    Am participat n 2 iunie la echsylvania, un eveniment dedicat 100% antrepreno-riatului din I. Un astel de eveniment ce poate fi considerat de ni din prismaindustriei locale a reprezentat pentru Cluj o premier.Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfmailto:[email protected]:[email protected]://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    7/62

    7www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

    ost lansat prima aplicaie de navigare prin GPS de pe teleoanelemobile. A strns bani pentru finanare, iar modalitatea de a obinebanii a ost o simpl prezentare, dar afirm c au contat ns nprimul rnd relaile personale.

    Ghinionul a ost cel ce a caracterizat elenav n perioada decretere. n ziua n care au decis s vin n Europa pentru strn-gerea de onduri, a avut loc atentatul din 9/11. Cu o zi nainte dea-i lansa intenia de a se lista la burs, Google a anunat hriile

    gratuite. Lista de ghinioane nu se oprete aici pentru c n data ncare s-a pornit IPO roadshow, Microso a anunat de asemeneahrile gratuite. Vulcanul din Islanda ce a ntrerupt pentru maimulte zile cltoriile cu avionul, a avut loc n timpul unei cltoriitot n Europa pentru promovarea companiei nainte de listarea laburs. Cu toate aceste impedimente, elenav a devenit o compa-nie de succes care a achiziionat recent Skobbler. Visul lui HP Jimeste s ridice elenav din op 100 n op 10, iar n portooliul deinvestiii se numr proiecte precum cel de realizare a unei mainizburtoare. Satul dat participanilor: God avor you because youare persistent.

    Marcus Segal, ost COO Casino Division la Zynga i antrepre-

    nor a impresionat prin multitudinea de domenii n care a lucrat.Acesta a pornit din industria de muzic, fiind VP la eMusic.com,un serviciu de vnzare online a albumelor muzicale de la ncepu-tul anilor 2000. Fiind o noutate absolut la acea vreme, s-au lovitde problema educrii utilizatorilor care de multe ori nu nelegeaude ce cumprturile nu se finalizau cu un disc fizic al albumu-lui cumprat. n cele din urm a aprut Napster, ceea ce a aectatvnzrile, iar compania a ost achiziionat de ctre Universal.Marcus a dat i cteva saturi practice: parte dintr-o comunitate,nu cutapegacorns (pegas cu un corn de unicorn). Menionm iabordarea inedit ce const ntr-o ntrebare legitim ce ar trebuiadresat unui VC: este cineva n reeaua ta/voastr care m-ar putea

    ajuta?Andy Peper, developer advocate la witter, a prezentat o inte-

    grare a witter-ului i internet o thingsprecum monitorizareaumiditii solului n care cresc plante i alertarea proprietaruluiprintr-un tweetn momentul n care este nevoie s fie udate. A ostprezentat bineneles i witter API-ul cu cteva exemple practice.

    Jose Dunne, co-ondator alBebelversea prezentat conceptulNemawashi, un procedeu de a lua un copac i de a-l replanta n

    alt parte. Cltoria sa n lumea startup-urilor este spectaculoas,a nceput cu ideea aplicaiei Babelverse la un Startup Weekend nGrecia de unde a plecat n Chile prin programul Startup Chile.Printre alte peripeii, cauzate n mare parte de lipsa finanrii, aajuns pe podium la LeWeb, TeNextWeb i echCrunch Disrupt.otodat visul de a nu avea constrngeri n dezvoltarea Babelversel-a cut ca s reuze la un moment dat o finanare de 2 milioanede dolari. Spiritul disruptivei umanitar s-a materializat prin rea-lizarea unui hackaton de 24 de ore dup momentul tsunami-uluidin Japonia din 11 martie 2011. Rezultatul a ost o aplicaie oarteutil de comunicare cu cei aflai n dificultate.

    Voicu Oprean, CEO Arobsa prezentat povestea de succes a

    companiei i modalitile de stimulare a angajailor de a-i dez-volta propriile idei de produs.n ncheiere, doresc s l menionez i pe Rohan Chandran,

    Head o Product and Global Services laelenavce a artat laturaproesionist a dezvoltrii de produse. Sucesul unui produs nu esteo loterie, ci o analiz iterativ cauz-eect n uncie de care se iaudeciziile.

    Ne-a cut plcere s participm la prima ediie a echsylvania.care s-a remarcat n aria antreprenoriatului din mediul local de Ii sperm s devin o tradiie local.

  • 8/12/2019 Today Software Magazine N24/2014

    8/62

    8 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Aceast prim ediie a ost mprit npatru sesiuni de conerine intensive despretendinele n web development, studii decaz i experiene internaionale, tehnologiiopen-webi tool-uri avansate.

    Cu sala plin, Robert Nyman ncepeprima sesiune de prezentri. El este unechnical Evangelist la Mozilla i edito-rul de la Mozilla Hacks. Prezentarea lui senumete Te five stages o development ncare ace o corelare n perspectiv psiholo-gic a dezvoltrii unui proiect soware cu

    modelul lui Kbler-Rossdespre cele cincistagii ale suerinei: negare, urie, negoci-ere, depresie i acceptare. El mai prezinti un nou proiect de la Mozilla, Open WebApps, care reprezint aplicaii dezvoltaten HML5 i JavaScript, uncionabile petoate platormele. O alt noutate pe careo menioneaz este lansarea de canale de

    eedback pentru Mozilla, unde dezvoltato-rii pot s exprime opiniile i ideile legate deproiectele din cadrul Mozilla: A ace web-ul un loc mai bun nu se reer doar la a-ida seama despre ceea ce este corect ci estevorba despre ascultarea oamenilor, adu-narea gndurilor i ideilor pe care le au nrealizarea de rezultate mai bune.

    ero Parviaien, un specialist inde-pendent n Soware, oer cea de-a douaprezentare, intitulat How to build yourown AngularJS. El vorbete despre trei

    strategii care se pot aplica atunci cnd sedorete s se oloseasc ntr-un proiect unrameworkJavaScript: Respingere, Studiu,Construire. Se axeaz mai mult pe ce-a de-atreia strategie, unde spune c pentru a aveao nelege mai aproundat a ramework-ului AngularJS, pentru a ti cnd i cumpoate fi olosit, varianta recomandat e ca

    n data de 3 iunie 2014, a avut loc la Bucureti conerina internaional JSCamp pen-tru Romnia i Europa de Est, prima de acest gen n ara noastr. Evenimentul a ostdedicat n special persoanelor din zona de Web Design i Front-End Develoment.

    JS Camp Romnia 2014

    Tudor [email protected]

    Team Lead & Scrum Master@ msg systems Romnia

    eveniment

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    9/62

  • 8/12/2019 Today Software Magazine N24/2014

    10/62

  • 8/12/2019 Today Software Magazine N24/2014

    11/62

    11www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE startups

    How to Web MVP Academy prezint echipele admise

    n programul de pre-accelerare

    Bucureti, 26 mai 2014 How to Web MVP Academy, program de pre-accelerare adresat startup-urilor n tehnologie din EuropaCentral i de Est, a selectat echipele finaliste. n perioada 2 iunie 22 iulie acestea vor lucra alturi de mentori i proesioniticonsacrai la nivel regional pentru a-i dezvolta produsele i a nva cum s profite de oportunitile existente pe piaa global.Startup-uri tech activnd n domenii precum sotware,

    hardware, internet o things, mobile, medtech sauecommerceauaplicat pentru participarea la How to Web MVP Academy. Acesteaau ost evaluate de specialiti n domeniu lund n considerareexperiena i capacitatea de execuie a echipei, dimensiunea i

    tendinele pieei, validarea iniial a produsului i traciuneaacestuia, potenialul i impactul la nivel internaional, pre-cum i ezabilitatea proiectului (scalabilitate, cost de achiziie alclienilor).

    Cei 15 finaliti au ost desemnai dup o analiz atent a juriu-lui din care au cut parte Cosmin Ochior (Liaison Managerhub:raum), Zoli Herczeg (Partner Business Evangelist MicrosoRomnia), Cristi Badea (Co-Fondator & Chie Product OfficerMavenHut), Bogdan Iordache (Co-Fondator & CEO How toWeb) i Monica Obogeanu (Program Manager How to Web MVPAcademy).

    Cine sunt echipele finaliste ale How to Web MVP Academy?15 echipe care dezvolt produse n domenii precum soware,hardware, Internet o Tings, mobile sau medtechdin Romnia,Bulgaria i Slovenia au ost admise la How to Web MVP Academy.Startup-urile care vor participa la prima ediie a programului depre-accelerare sunt:

    Axo Suits exoschelete cu putere mare ;Bravatar reea de comuniti de ani dezvoltate n jurul

    brand-urilor ;Complement sotware pentru management educaional,

    catalog online i platorm de dezvoltare personal;Doctrina d.o.o. Platorm care aciliteaz transerul de

    cunotine pentru armaciti, ajutndu-i pe acetia s nvee mai

    multe despre produse prin participarea la web-inarii;Drimm.in platorm social care permite utilizatorilor s se

    asocieze pentru a-i ajuta prietenii s i ndeplineasc dorinele;Fitter aplicaie mobile care conecteaz slile de fitness cu

    clienii acestora ntr-un mod personal, intuitiv i eficient, oe-rindu-le o experien de antrenament personalizat;

    Gloria Food sistem de comenzi online gratuit care permiterestaurantelor s interacioneze n mod direct cu clienii acestora;

    Hickery music player webi mobile care permite utilizato-rilor s interacioneze ntre ei i s asculte muzic n uncie depreerinele exprimate pe social media;

    Inovolt produs care combin componente hardware i

    soware i permite utilizatorilor s msoare, s nregistreze i sanalizeze consumul energetic n timp real;Liebox aplicaie mobile care permite utilizatorilor s creeze

    albume de otografii comune cu prietenii acestora i s creeze ast-el amintiri mpreun;

    Pillbuzz brar conectat la o aplicaie mobil care i ajutpe utilizatori s i respecte tratamentele medicale;

    Pocketo aplicaie mobile care, cu ajutorul unei componentehardware, permite dezvoltatorilor de produse Io s creeze pro-totipuri rapid i iein;

    Qalendra platorm de cltorii care permite persoanelordornice de aventur s descopere noi oportuniti i s i realizezepropriul calendar;

    StudyMentors platorm online care pune n legtur tine-rii care i doresc s aplice la studii n strintate cu studenii iabsolvenii universitilor europene;

    Wallet Buzz aplicaie mobile care transmite utilizatorilor desmartphone-uri oertele retailer-ilor n uncie de proximitate

    ntre 2 iunie i 22 iulie, finalitii How to Web MVP Academyvor acumula competene eseniale de business care i vor ajuta si dezvolte produsele la scar global. Startup-urile vor benefi-

    cia, pe lng componenta educaional, de acces la spaiul deco-workingoerit de echHub Bucharest, mentorat, acces la comu-nitatea tech la nivel internaional i conexiuni cu investitori de tipangel, programe de accelerare i onduri de investiii early stage. nplus, echipa How to Web MVP Academy va fi alturi de acestea petoat durata programului i i va ajuta s i urmreasc progresuli s acceseze resurse relevante pentru nevoile lor specifice.

    How to Web MVP Academyeste un program dezvoltat nparteneriat cu Microso, Romtelecom i Cosmote cu sprijinulBitdeender, Raiffeisen Bank, Hub:raum i echHub Bucharest.Echipele finaliste vor ncepe s lucreze n spaiul de co-workingdela echHub Bucharest luni, 2 iunie i, o zi mai trziu, vor avea oca-zia s cunoasc mentorii locali i s interacioneze n mod direct

    cu acetia n cadrul unui eveniment privat.Startup-urile vor parcurge un program de 7 sptmni n care

    vor lucra intensiv la dezvoltarea propriilor produse i vor parti-cipa la workshop-uri i sesiuni de mentorat 1 la 1. Programul seva ncheia pe data de 22 iulie cu Demo Day, oerind astel echi-pelor ocazia de a-i prezenta produsele i progresul n aa uneiaudiene ormate din reprezentani ai unora dintre cele mai apre-ciate programe de accelerare la nivel european, investitori de tipangel, onduri de investiii early stage, antreprenori i proesionitin tehnologie.

    Irina [email protected]

    Co-Fondator al Akcees@ How To Web

    http://mvpacademy.co/http://mvpacademy.co/
  • 8/12/2019 Today Software Magazine N24/2014

    12/62

    12 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Ce prere ai despre Google Glasses din perspectiva vieii private.ntr-o prezentare recent de-a ta ai menionat despre un led ce artrebui inclus pentru a notifica celelalte persoane despre aptul cnregistrm?

    [Dan Romescu] Google Glasses prezint, n acest moment, uncaracter de intruziune oarte ridicat n viaa de zi cu zi.

    La nceput oamenii sunt curioi, ns dup ce realizeaz ap-tul c le poate fi lezat viaa privat, devin reractari. Personal,consider c trebuie definite norme sociale i reguli oarte clare.De exemplu, s i ridici la 30%, exact cum ai proceda cu ochelariide soare, cnd vrei ca cineva s i vad ochii. Acest gest oerncredere interlocutorului i ajut la dezvoltarea unor conversaiideschise.

    Din punct al integrrii Google Glasses ntr-un sistem deja exis-tent, ce aspect ar trebui luate n considerare?

    n vertical marketsexist deja soluii n logistic, domeniulmedical, sport management etc. Pentru piaa de mas ar trebui s

    existe mai multe device-uri, lumea s fie educat n privina olo-sirii adecvate i s apar mai multe cazuri de utilizare i contentpentru consumatori.

    Ce prere ai despre evoluia internet o things i care este per-

    spectiva ta asupra evoluiei viitoare?Eu l-a numi Web o Tings, Internet exist i este inseparabil.

    Explozia n att de multe domenii, de la House Automation, laSntate pn la Quatifiedsel ne arat c nu mai este vorba deviitor, ci de realitate.

    Care este viziunea ta n ceea ce privete reelele sociale i reali-tatea augmentat?

    Reelele Sociale se vor verticaliza, se vor diversifica dup cen-tralizarea accentuat din acest moment sub umbrel FB. Eu vd ARca un instrument creat pentru o intera mai accesibil n relaiaom - main. Dac ne aducem aminte, la nceputuri, existau doarcomutatoare n interaa cu calculatorul. Apoi am trecut la carteleperorate - primul meu program n 1982 a ost pe cartele perorate.Apoi linia de comand, intera grafic cu maus, touchpad. Apoigeneraia displaycu touchscreen, parte de recunoatere gesturi. Eucred c nu suntem departe de a controla maina cu ora gndu-rilor, vezi emotiv interaa pe care eu o consider cea mai evoluat.

    Realitatea augmentat nu are o prezen real n viaa de zi

    cu zi, excepie fiind poate sectorul auto. Cum vezi evoluia acestuisegment?

    Pot s v contrazic, realitatea augmentat exist n viaa de zicu zi, doar c este n domeniul Audio. Walkman-ul a ost primul

    device AR Audio. Partea de dolby surround a ridicat nivelul de

    AR Audio. Eu vd partea de context oarte necesar pentru a redarelevana contentului. Un singur exemplu a da la srit, 4 iBea-con-uri aezate ntr-o piramid pot arta poziia senzorului videoi crea noi experiene. Perspectiva din care avem o experienpoate fi prelevat i prelucrat. Restul este geometrie analitic... .

    Am avut plcerea de a realiza un interviu cu Dan Romescu, ondator DruidCon i preedintele Augmented Reality Fundation.Dan va fi vorbi la evenimentul Devalks - devtalks.ro ce va avea loc n 11 iunie la Bucureti.

    interviu

    Interviu cu Dan Romescu

    +

    +

    +

    Dev(Talks):11 JUNE // RADISSON BLU // BUCHAREST

    Keep your skills up to date

    with the latest trends.

    Meet some of the brightest minds

    in software development.

    Enjoy great talks with our speakers

    and our partners from the exposition booths.

    www.devtalks.ro

    Silver partner Design powered by

    Mediapartners

    T O D A Y

    SOFTWARE

    M A G A Z I N E

    Gold partners

    RARES VASILESCU

    Software Development

    Director

    Star Storage

    MARTIN PERCK

    Senior Technology

    Consulting Director

    Oracle

    TERENCE EDEN

    Innovation Catalyst

    The Lab -part of Telefonica

    CRISTIAN NEICU

    Application Innovation

    Service Mobile Practice

    Leader

    IBM

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfmailto:[email protected]:[email protected]://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    13/62

    13www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

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

    Comunitatea SMComunitate construit n jurul revistei oday Sofware Magazine.Website: www.acebook.com/todaysomagData nfiinrii: 06.02.2012 /Nr. Membri: 1545/Nr. Evenimente: 19

    GeekMeet RomniaComunitate dedicat tehnologiilor web.Website: geekmeet.roData nfiinrii: 10.06.2006 / Nr. Membri: 520 / Nr. Evenimente: 17

    Cluj.rbComunitate dedicat tehnologiilor Ruby.

    Website: www.meetup.com/cluj-rbData nfiinrii: 25.08.2010 / Nr. Membri: 178 / Nr. Evenimente: 40

    Te Cluj Napoca Agile Sofware Meetup GroupComunitate dedicat metodelor Agile de dezvoltare soware.Website: www.agileworks.roData nfiinrii: 04.10.2010 / Nr. Membri: 396 / Nr. Evenimente: 55

    Cluj Semantic WEB MeetupComunitate dedicat tehnologiilor semantice.Website: www.meetup.com/Cluj-Semantic-WEBData nfiinrii: 08.05.2010 / Nr. Membri: 183/ Nr. Evenimente: 27

    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: 235/ Nr. Evenimente: 14

    abra de testareUn proiect care i dorete s strng ct mai muli oameni carelucreaz ca i testeri.Website: tabaradetestare.roData nfiinrii: 15.01.2012 / Nr. Membri: 314/ Nr. Evenimente: 30

    Am intrat n perioada estival, a vacanelor, iar aceasta se reflect i n numrul evenimentelor din I. Rmn totui evenimen-tele lunare precum lansarea revistei sau Mobile Monday care vor continua. Chiar mai mult, dac luna trecut ne-am ntlnitcu Braovul n cadrul unei lansri a revistei, luna aceasta vom merge i n Iai pentru Antreprenoriat i Inovaie organizat deGemini Solutions Foundry.

    CalendarIunie 11 (Cluj)Lansarea numrului 24 al oday Sofware Magazinewww.acebook.com/todaysomag

    Iunie 12 (Iai)Antreprenoriat i inovaiegemsoundry.com

    Iunie 12 (Cluj)Python and Ember.jsmeetup.com/Cluj-py/events/185193022/

    Iunie 15 (Bucureti)Workshop Arduinoit-events.ro/events/workshop-arduino-15-iunie/

    Iunie 16 (Braov)Innovation Monday Brasovricap.ro/blog/ricap-innovation-monday-brasov/

    Iulie 17 (Cluj)Conexiuni Cluj-Napoca Office 365 pentru ONG-uriit-events.ro/events/conexiuni-cluj-napoca-office-365-pen-tru-ong-uri/

    Iunie 19 (Cluj)Monthly BA Community Meetup #8meetup.com/Business-Analysts-Cluj/events/165545862/

    Iunie 24 (Bucureti)SEEESit-events.ro/events/seetest-2014-south-east-european-soware-testing-conerence-bucharest/

    Iunie 30 (Cluj)Mobile Monday Cluj #9meetup.com/Cluj-Mobile-Developers/events/177046772/

    Comuniti IT

    comuniti

    http://www.transylvania-jug.org/http://geekmeet.ro/http://localhost/var/www/apps/conversion/tmp/scratch_1/Cluj.rbhttp://www.meetup.com/clujhttp://www.agileworks.ro/http://www.meetup.com/Clujhttp://www.rabs.ro/http://www.rabs.ro/http://www.meetup.com/Clujhttp://www.agileworks.ro/http://www.meetup.com/clujhttp://localhost/var/www/apps/conversion/tmp/scratch_1/Cluj.rbhttp://geekmeet.ro/http://www.transylvania-jug.org/
  • 8/12/2019 Today Software Magazine N24/2014

    14/62

    14 nr. 24/Iunie, 2014 | www.todaysoftmag.ro www.todaysoftmag.ro | nr. 21/Martie, 2014

    programare

    Lambda expressions. Da, C# avea

    Lambda expressions de ceva vreme, maiprecis din versiunea 3.0 din anul 2007.Java a mai avut nevoie de nc apte ani.Functional programmingatt de trziu.

    Generics. O amgire n orma ctre tem-plate metaprogrammingeund prin typeerasure1sau doar eu speram la altceva?

    M simt ca un iubitor de Nokia ceviseaz lahigh resolutioni la Android. Catot javrar-ul, v imaginai cum ateptamornd butonul de rereshde pe site-ulOracle pentru a da o descrcare la proasptaversiune n ziua release-ului.

    Aflndu-se, la data articolului de a,de ceva vreme pe masa de operaii, iat cam ajuns acum s mprtesc impresii cuprivire la o chestiune ce m-a tot rmntatde-a lungul carierei: prelucrarea coleciilorde date.

    Ce este prelucrarea coleciilor de date(akafiltrarea)?

    Pentru cei amiliarizai cu SQL, filtrareaeste o operaie de baz asupra unui set dedate de tipul:

    SELECT * FROM Cars WHERE

    Cars.manufacturer = VW;Dar ce ne acem dac colecia este deja

    n memoria programului i vrem s o prelu-crm conorm condiiilor de mai sus?

    1 http://en.wikipedia.org/wiki/ype_erasure

    Pn la Java 8, programatorul scria:

    ArrayList lteredCars =new ArrayList();

    for(Car c : allCars) { if (VW.equals( c.getManufacturer())) {

    lteredCars.add(c);}

    }

    Alii, arhiteci, mai scriau:

    interface Predicate { boolean apply(T t);}

    class Filter {

    public static Collectiondo (nal Collection items,Predicate pred) {

    Collection result =new ArrayList();

    for(T item : items) {

    if (pred.apply(item)) { result.add(c);

    } }

    return result; }

    }

    Ca apoi s apelm:

    new Filter().do( allCars, newPredicate() { @Override

    Java 8 e rumoas. Da, i atribui oarecum genul eminin nc dinainte de a ajungela magica cira 8. n acest articol m aventurez n a analiza n ce msur aceastrumusee este orm versus ond. Admit c de-a lungul competiiei limbajelor deprogramare, Java a tot rmas datoare n a-i satisace comunitatea de entuziati.

    Java 8 Procesarea coleciilor

    Ovidiu [email protected]

    Team Lead@ Fortech

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://en.wikipedia.org/wiki/Type_erasurehttp://en.wikipedia.org/wiki/Type_erasurehttp://en.wikipedia.org/wiki/8_(number)http://en.wikipedia.org/wiki/8_(number)http://en.wikipedia.org/wiki/Type_erasurehttp://en.wikipedia.org/wiki/Type_erasurehttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    15/62

    15www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

    public boolean apply(Car c) { return VW.equals(c.getManufacturer()); }

    );

    n Java 8 aplicm:

    Collection ltered =allCars.stream().lter( c -> (VW.equals(

    c.getManufacturer())) ).collect(

    Collectors.toList());i iat cum Java 8 ne oer high resolution.Dar trim ntr-o er a big datai aplicaiile real-world se

    cer a i scalabile i perormante, ca atare nu mai e suicient sprocesm secvenial milioane de nregistrri (dac cumva a ostvreodat suficient).

    Parallel processingi utilizarea optim a core-urilor de procesoreste everyday business.

    Java 8 ne vine n ajutor i acum putem scrie:

    Collection ltered =allCars. parallel().lter( c ->

    (VW.equals(c.getManufacturer())) ). collect(Collectors.toList());

    Doar prin acest simplu apel ctre metoda parallel() m asi-gur c librriade streamva ace magie i va mpri stream-ul nbucele mici ce vor fi procesate n paralel.

    Job done. Sau nu?mi place s citesc javadoc-uri, consider c e un obicei ce

    trebuie cultivat pentru c ne poate salva de la multe dezastre. iam mai cultivat n timp un el de sim al pericolului, n specialcnd vd cuvinte mari de genul parallel, urmate apoi de magiarezultatului.

    Ce fire de execuie olosete metoda aceasta? i olosete des-tule? Cum determin cte s oloseasc i ce se ntmpl dacmetoda parallel() este apelat paralel la rndul ei?

    Documentaia spune: Arranges to asynchronously execute thistask in the pool the current task is running in, i applicable, or usingthe ForkJoinPool.commonPool() i not inForkJoinPool().

    Prin urmare, implicit olosim un singurpool indierent de ctethread-uri apeleaz metoda parallel() prin ntreaga aplicaie,deoarece librria de streamolosete librria de ForkJoin2.

    i mai mult, thread-ul care trimite job-ul de procesare paralel2 http://gee.cs.oswego.edu/dl/papers/f.pd

    este el nsui utilizat ca worker. Se mixeaz astel thread-urile unuipool cu un threadce are alt scop. Dac cumva chiar acel threadprinde o poriune de procesare ce dureaz neateptat de mult,avem riscul unei blocri a procesrilor din cadrulpool-ului toc-mai din cauza design-ului conceptului de Fork/Join (thread-ulapelant lucreaz ca workeri celelalte thread-uri nu pot adugarezultate ct vreme se ateapt dup finalizarea execuiei thread-ului printe). Avem o problem!

    Avem de a ace aici cu enomenul de Paraquential [a port-manteau word derived by combining parallel with sequential] Teillusion o parallelization. Processing starts out in parallel mode byengaging multiple threads but quickly reverts to sequential compu-ting by restricting urther thread commitment.(Edward Hardned,2014).

    Soluia propus de Oracle este utilizarea explicit a unuiForkJoinPool controlat de ctre dezvoltator. De tipul:

    ForkJoinPool forkJoinPool = new ForkJoinPool(20);forkFoinPool.submit(()->allCars. parallel(). lter( c -> (VW.equals(c.getManufacturer())) ). collect(Collectors.toList())).get();

    Astel toate task-urile generate de procesarea paralel rmnnpool-ul specificat.

    Un eect pozitiv este acela c putem olosi un timeoutpemetodaget(); situaie dorit de obicei ntr-o aplicaie real-world.

    Dar aceasta ne ntoarce la problema de baz: managementulpool-urilor din nou n responsabilitatea dezvoltatorului! Situaiadevine mai dificil n combinaie cu situaiile complexe generatede mediul multi-threadi cu reglarea atent a configurrilor nuncie de arhitectura hardware (e.g. procesor). i iat cum dinnou Java ne d jumti de msur pe cnd speram la un threadcontainer sel-managed(sau mcar easy-managed).

    Chiar dac pentru muli dintre noi comportamentul implicit alramework-ului de streamingeste i va fi mai mult dect suficient,n ceea ce m privete, metodaparallelva rmne n lista mea dedangerous code n activitile de programare i code review.

    Am atins doar vrul iceberg-ului prin aceast scurt analiz.Pentru cei dintre voi curioi s vad ce alte capcane se ascundchiar n inima librriei de ForkJoin, v invit s urmrii cu atenieun dudecu peste 30 de ani de experien, ce detaliaz oarte bineaceste lucruri n postul su A Java Parallel calamity3.

    3 http://coopso.com/ar/Calamity2Article.html

    management

    Young spiritMature organizationA shared vision

    Join our journey!

    www.fortech.ro

    http://gee.cs.oswego.edu/dl/papers/fj.pdfhttp://coopsoft.com/ar/Calamity2Article.htmlhttp://coopsoft.com/ar/Calamity2Article.htmlhttp://gee.cs.oswego.edu/dl/papers/fj.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    16/62

    16 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Cristian [email protected]

    Software Developer@ Yardi Romania

    Odat cu intrarea n era inormaiei am gsit att soluii la problemele anterioarect i noi probleme ce ateapt a fi rezolvate. Inormaia abund n mediile digi-tale dar nu ntotdeauna este uor s se obin o vizualizare a acesteia, astel ncts ne fie util n luarea deciziilor importante.

    n acest scop instrumentele de BusinessIntelligence promit s aduc soluii pentrutransormarea inormaiei brute de caredispunem.

    Business intelligence (BI)const ntr-un set de teorii, metodologii, arhitecturi i

    tehnologii care transorm datele brute ninormaii relevante i utile pentru mediulde aaceri1.

    Scopul instrumentelor de BI este de aprelucra cantiti enorme de date nestructu-rate n scopul de a identifica, dezvolta i de acrea noi oportuniti. Se spune c imaginilesunt o modalitate mai bun de a prezenta oinormaie dect cuvintele. Mintea umannelege mult mai uor explicaia graicdect explicaia teoretic.

    n scopul de a lua o decizie, inormaiilenoastre trebuie s fie afiate cu o prezentare

    adecvat n termeni de diagrame, rapoarte,etc. .Iniial, conceptul de Data Warehousese reerea doar la pstrarea datelor istorice.n zilele noastre, Data Warehouse constituieundamentul pentru mediul BI.

    n general, Business Intelligence n cali-tate de concept este ormat dintr-un numrtot mai mare de componente printre care senumr urmtoarele:

    agregare multidimensional i alocarea datelor,

    den ormal izare , e t ic h e tare i

    standardizare, raportare n timp real, i n t e r a c u s u r s a d e d a t e

    nestructurate,1 http://en.wikipedia.org/wiki/Business_intelligence

    consolidare la nivel de grup, bugetarei prognoz,

    ineren statistic i simulareprobabilistic,

    indicatori de perorman, control de versiune i gestionare a

    proceselor.

    Conceptul BI este alctuit din mai multeactiviti conexe, incluznd data mining,prelucrare analitic on-line, interogare iraportare.

    Un exemplu de companii care olosescinstrumentele de BI sunt marile restaurante.Acestea olosesc instrumentele BI n scopullurii deciziilor strategice cum ar fi: ce pro-duse noi ar trebui s adauge la meniurile lor,ce eluri de mncare ar trebui s elimine,care dintre magazine ar trebui s le nchid,

    atunci cnd renegociaz contractele cu ur-nizorii de produse alimentare i atunci cndncearc s identifice noi oportuniti pen-tru a mbunti procesele ineficiente.

    Instrumente BI de la MicrosoftDintre toi urnizorii de sotware din

    ntreaga lume, Microsot pare a i singu-rul autorizat s pretind c oer BusinessIntelligence pentru toat lumea. Acesta estemodul n care Microsot ace publicitatenoii sale platorme de Business Intelligence.

    n timp ce a proiectat noua platorma deBusiness Intelligence, Microsot a olosittoat experiena pe care a acumulat-o nurnizarea de sisteme de operare i suite debirou pentru utilizatorii finali.

    Instrumente Microsoft de

    Business Intelligence

    managementprogramare

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    17/62

    17www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

    Platorma Microsot BI este ormat din cele mai utili-

    zate instrumente, ce sunt operate printr-o intera cu adevratintuitiv. Platorma este ormat din urmtoarele trei soluii -Microso SQL Server, Microso SharePoint i Microso Office.Marele avantaj al platormei Microso Business Intelligence estec aproape toi oamenii tiu cum s o oloseasc, i cunosc com-ponentele sale iar interaa sa nu reprezint cu adevrat ceva noupentru ei.

    Platorma Microso Business Intelligence suport raportarea,analiza i partajarea inormaiilor cu ali utilizatori din ntreagaorganizaie. Ceea ce este cu adevrat important pentru companiilede astzi este timpul necesar pentru ca datele s se rspndeasc nntreaga organizaie. Cu ct este mai scurt perioada cu att mai

    bine, iar soluia Microso este perect din acest punct de vedere.Platorma Microso BI poate fi utilizat pentru: Pregtirea tablourilor de bord. ablourile de bord realizate

    cu soluia Microso sunt complet interactive; prin urmare, sepoate vizualiza rapid fiecare zon de date pentru a obine o altvizualizare a acesteia i pentru a afla mai mult inormaii.

    Stimularea colaborrii. Colaborarea eficient este oarteimportant pentru toate organizaiile moderne i platormaMicroso Business Intelligence suport acest lucru cu capacitide comunicare bine dezvoltate. Aceasta permite tuturor

    utilizatorilor din cadrul organizaiei s lucreze pe aceeai versi-une de date crescnd perormana acestora.

    Raportare i analiz. Raportarea i capacitile analiticeale platormei Microso Business Intelligence permite utiliza-torului s pregteasc i s modifice rapoarte i analize. Mediulde lucru este n acest caz sigur i intuitiv, astel nct nu existnevoie de specialiti pentru ntreinerea sistemului.

    Data mining i analiz predictiv. Platorma oer instru-mente care ajut la analizarea n mod automat a datelor dindierite puncte de vedere i descoperirea tendinelor.

    Stocarea datelor. Platorma Microso Business Intelligenceoer procese EL (Extract, ransorm, Load) i sprijin separa-rea datelor i depozitarea acestora.

    PowerPivot i SQL Server Analysis Services (SSAS)PowerPivot i SSAS sunt instrumentele actuale oerite de

    Microso pentru piaa de BI. Microso nu are n prezent un pro-dus BI dar oer utilizatorilor un motiv pentru a ace upgrade laMS Office 2010 sau Microso Office 2013 i promoveaz ideea

    de BI sel-service. Suita de instrumente BI de la Microsot sebazeaz pe mai multe instrumente, cum ar fi Excel 2013 i SQLServer Analysis Services dar i componente precum MicrosoPowerPivot. Pentru ca utilizatorii de MS Excel s poat olositablourile de bord n cadrul fiierelor Excel mai multe companiiangajeaz consultani BI. Backend-ul API al PowerPivot este dis-ponibil numai mpreun cu SharePoint i SQL Server. Acest lucrunseamn c utilizatorii enterprisevor avea nevoie de servicii deconsultan pentru a integra toate aceste elemente.

    Business Intelligence Semantic Model (BISM)n plus a de Excel, SSAS, SSRS i PowerPivot, Microso a

    publicat o nou direcie a tehnologiilor sale cu un nou model deBISM n Analysis Services, care va alimenta Crescent (viitoareatehnologie oerit de Microso pentru vizualizarea datelor), pre-cum i alte soluii de rontendcum ar fi tablourile de bord dinExcel, serviciile de raportare si SharePoint Insights.

    Atunci cnd un dezvoltator BI creeaz o aplicaie ce are la bazPowerPivot, modelul ncorporat n interiorul fiierului Excel este,de asemenea, un Business Intelligence Semantic Model. Atuncicnd fiierul Excel este ncrcat n cadrul SharePoint, modelul estegzduit n interiorul unui server SSAS i deservete de asemenea

    Modelul semantic BI - http://blogs.msdn.com/b/cathyk/

    archive/2011/10/17/the-bi-semantic-model-mdx-dax-and-you.aspx

  • 8/12/2019 Today Software Magazine N24/2014

    18/62

    18 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Instrumente Microsoft de Business Intelligence

    i alte aplicaii sau servicii cum ar fi Excel,Reporting Services, etc. .

    Data Integration sau ETL (Extract, Trans-form and Load - Extrage, Transform i

    ncarc)O organizaie poate avea una sau mai

    multe tipuri dierite de aplicaii n unciede nevoile organizaiei. Cnd discutmdespre proiectarea i dezvoltarea unui DataWarehouse ca parte integrant a sistemuluide Business Intelligence trebuie de ase-menea s definim strategiile achiziiei dedate de la toate sistemele surs i integrareaacestora n Data Warehouse.

    SQL Server Integration Services (SSIS)Microsot SQL Server Integration

    Services (SSIS) este o platorm EL de

    integrare a datelor la nivel enterprise,osoluie de transormare a acestora pre-cum i o component a platormei SQLServer. SSIS oer posibilitatea de a aveao imagine coerent i centralizat a date-lor din dierite sisteme surs i ajut laasigurarea securitii datelor prin integra-rea, curarea, profilarea i managementulacestora. SSIS oer un cadru EL rapid iflexibil i are capaciti de transormare adatelor n cadrul memoriei pentru scena-rii de integrare a datelor extrem de rapide.

    SSIS are mai multe componente internepentru conectarea la surse standard de date(RDBMS, FP, Web Services, XML, CSV,Excel, etc.) mpreun cu un set bogat decomponente pentru transormarea i inte-grarea datelor.

    AnalizOdat ce Data Warehouse-ul este creat

    i componentele de integrare a datelorncarc datele n Data Warehouse aveinevoie de crearea unei structuri multi-dimensionale OLAP numit cub. Sistemul

    Microso Business Intelligence poate aci-lita SSAS (SQL Server Analysis Services)s ac datele disponibile pentru analiz iraportare. SSAS, ca un instrument princi-pal OLAP, oer procesare analitic on-line(OLAP) precum i o uncionalitate dedata miningpentru aplicaiile de businessintelligence . SSAS calculeaz, sintetizeazi stocheaz datele ntr-o orm oartecomprimat, ceea ce poate conduce la oraportare i o analiz predictiv extrem derapid i interactiv a datelor agregate din

    dierite perspective.

    Data MiningModelele de data mining cre-

    ate n SSAS pot ajuta la identiicarea

    regulilor, modelelor i tendinelor n cadrulinormaiilor. n acest el utilizatorii potdetermina de ce anumite lucruri se ntm-pl i pot prezice ce se va ntmpla n viitor.SSAS include deja mai muli algoritmi dedata miningn pachetul su soware. SSASde asemenea v permite s definii KPI-uri(Key Perormance Indicators) pentru cubulSSAS n scopul de a evalua perormanelede aaceri n timp a de obiectivul stabilit,aa cum sunt reflectate n datele din cub.n mod normal raportarea n ront-endeste urnizat de datele oerite de cubuldin SSAS. Aceste cuburi consolideazdatele i prin caracteristicile de gestionarea cache-ului optimizeaz rezultatele intero-grii. Interogrile predefinite au un timp derspuns mai rapid n comparaie cu nsu-marea acestora pentru fiecare interogare a

    utilizatorilor.

    Livrarea informaiilorCnd cuburile SSAS sunt create i de

    asemenea populate cu datele din DataWarehouse, dierite instrumente de rapor-tare pot fi olosite pentru a analiza dateledin perspective sau dimensiuni dierite.

    SQL Server Reporting Services (SSRS)SQL oer o gam complet de

    instrumente i servicii pentru a ajuta la

    crearea, implementarea i gestionarearapoartelor n cadrul organizaiei. SSRSinclude uncionaliti de programarecare permit extinderea i personalizareauncionalitilor de raportare. Putei crearapoarte tabelare precum i dierite tipuride rapoarte ce pot conine diagrame, gra-ice sau hri. n plus pot i de asemeneacreate rapoarte avnd la baz indicatoriiKPI.

    PowerPivot, Power View, Excel i SSRSoer utilizatorilor posibilitatea de a definii executa rapoarte ad-hoc avnd la baz

    un model standard de date. Prin utilizareacubului SSAS utilizatorii au posibilitatea dea analiza rapoartele ntr-un mod flexibil,bazat pe msurile i dimensiunile expuse.

    Platform de gzduire i colaborareSharePoint 2010 sau 2013 poate fi olo-

    sit ca instrument de colaborare, gzduiresau ca platorm de partajare a inormaiei;rapoartele i tablourile de bord vor fi toatelansate sau gzduite de ctre un portalSharePoint. SharePoint este una dintre cele

    mai importante produse pentru manage-mentul coninutului n cadrul organizaieice oer posibiliti de partajare, comuni-care n cadrul reelelor sociale, businessintelligence, etc. .

    Nu este obligatorie existena instru-mentului SharePoint ca intera pentruraportare, deoarece rapoartele SSRS poti la el de simplu ncrcate i rulate depe Report Server. Platorma de gzduireSharePoint oer mai multe caracteristiciprecum Perormance Point pentru a creatablouri de bord atrgtoare. Mai mult,servicii precum Excel PowerPivot pot iutilizate pentru implementarea acestora ncadrul SharePoint cu scopul de a le pune ladispoziie i altor utilizatori.

    Caracteristicile de securitate ncor-porate n cadrul SharePoint asigursecuritatea la nivel de roluri. SSAS permite,de asemenea, definirea nivelurilor de secu-ritate la nivel de rol i celul. Aceste nivelede securitate la nivel de rol sau celul vorreglementa accesul la date i va asigura c

    un anumit utilizator are drepturi de accesla inormaiile potrivite atunci cnd estenecesar.

    ConcluziiDomeniul Business Intelligence este n

    continu dezvoltare. Aceste tehnologii suntla nceputul unei lungi cltorii, ntr-o lumen care cheia succesului st n capacitateade a lua decizii mai bune i ntr-un timpmult mai scurt dect competiia. Microsoa cut pasul pe acest drum i a creat un set

    de produse ce permit o nou viziune asu-pra acestui domeniu. Atept s vd ce se vantmpla mai departe. Probabil c urmto-rul pas va fi Artificial Business Intelligence.

    Referine:[1] Microso BI n cadrul Office 365

    http://www.blue-granite.com/blog/bid/322825/

    Is-Microso-Power-BI-a-Game-Changer

    [2] Pai necesari pentru instalarea modelului tabu-

    lar AdventureWorks n SQL Server 2012

    h t t p : / / w w w . s q l s e r v e r c e n t r a l . c o m /

    bl og s /s h er r y- l i s - b i - c or n er /2 0 1 4 /0 4 /3 0 /

    dax-2-installing-adventureworks-dw-tabular-

    model-sql-server-2012/

    programare

    http://../.pdfhttp://www.blue-granite.com/blog/bid/322825/Is-Microsoft-Power-BI-a-Game-Changerhttp://www.blue-granite.com/blog/bid/322825/Is-Microsoft-Power-BI-a-Game-Changerhttp://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.sqlservercentral.com/blogs/sherry-lis-bi-corner/2014/04/30/dax-2-installing-adventureworks-dw-tabular-model-sql-server-2012/http://www.blue-granite.com/blog/bid/322825/Is-Microsoft-Power-BI-a-Game-Changerhttp://www.blue-granite.com/blog/bid/322825/Is-Microsoft-Power-BI-a-Game-Changerhttp://../.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    19/62

    19www.todaysoftmag.ro | nr. 24/Iunie, 2014

    Adugarea valorii n procesul de

    dezvoltare. Un exemplu simplu

    Anul trecut n noiembrie, Fundaia Comunitar Oradea (www.undatiacomunitarao-radea.ro) a oerit cteva burse pentru idei care pot fi puse n practic n decurs de unan pentru a ace comunitatea n care locuim un loc mai bun. Eu am ost unul dintrepuinii norocoi al crui proiect a ost aprobat i doresc s v mprtesc modalitatea meade gndire din perioada dezvoltrii proiectului.

    Proiectul propus se reerea la procesul deeedbackcontinuu ctre i de la autoritilelocale cu privire la starea oraului, printr-oaplicaie web special conceput n acest scop:schimbare prin tehnologie.

    n cele mai multe domenii, eedback-ulpermanent este utilizat drept un indicatortimpuriu al progresului i o modalitate de aurmri i identifica greelile din proces, darn cazul unui ora problema este c odat ceeste destul de mare, este aproape imposibil surmreti opiniile tuturor ntr-un mod pre-cis, r investiii majore n indivizi pregtii

    special. Exact aceasta a ost ideea din spateleproiectului: o modalitate de a aduna opiniileoamenilor i nemulumirile legate de mediulurban n care locuiesc, cu un cost mic.

    Cum am adugat valoare ideiiPrima ntrebare la care a trebuit s rs-pund pentru proiectul meu, nainte de ancepe a ost: cum merg lucrurile n pre-zent? Spre surpriza mea, am descoperitaptul c oraul n care locuiesc (Oradea)avea deja un sistem pe website-ul local undeoamenii puteau adresa ntrebri / cereri ctreautoritile locale n legtur cu problemeleoraului, printr-un simplu ormular webcu vreo 12-15 spaii pentru completare, ncare se puteau introduce inormaii precum:nume, adres, descriere, email, descrierea

    problemelor i/ sau alte date personale. Prinstudierea rapoartelor anuale ale oraului, eraclar c, n ciuda volumului de inormaii adu-nate acolo, nimeni nu se gndea la ceea ce era

    Alin Luncan

    [email protected]

    Software Engineer@ Accesa

    programaremanagement

    Figura 1. Cursul aplicaiei cnd adaugi un element

    http://www.fundatiacomunitaraoradea.ro/http://www.fundatiacomunitaraoradea.ro/http://www.fundatiacomunitaraoradea.ro/http://www.fundatiacomunitaraoradea.ro/
  • 8/12/2019 Today Software Magazine N24/2014

    20/62

    20 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Adugarea valorii n procesul de dezvoltare. Un exemplu simplu

    programare

    evident: statistica.Aceasta era prima oportunitate de a

    aduce valoare prin proiectul propus: dece s nu iei datele introduse i s creezi dinele o valoare statistic, adic o hart centra-lizat cu toate problemele oraului sortatepe dierite probleme sociale, departamenteale primriei sau chiar pe cartiere/zone? Cemetod este mai bun dect aceea de a lsautilizatorii s i adauge problemele directpe hart, cu un click sau o tastare?

    Odat ce harta este creat, utilizatorii artrebui s aib posibilitatea de a o vizualizai de a vota alte probleme, astel nct ches-tiunile importante s aib un scor mai marei s poat avea prioritate.

    Dup ce harta i sistemul de votare auost realizate, proiectul mai trebuieceass dispun de un canal de eedback ntre

    oficialii oraului i utilizatorii si. Pentrua obine aceasta, pentru iecare chesti-une semnalat, aplicaia web va arta unsistem de apreciere atunci cnd oricaredintre pri dorete s nchid chestiunearaportat (marcnd-o drept soluionat sauabandonnd-o) cu o mic csu prin careutilizatorul i oicialul local vor putea saprecieze experiena.

    Pentru baza de utilizatori a comunitii,aceasta ar nsemna un mod de a apreciadepartamentele locale i responsabilii lor,

    iar administratorilor locali le-ar oeri omodalitate de a filtra utilizatorii abuzivi saunecuviincioi; din punct de vedere statisticar nsemna un mod de a reprezenta pe untabel satisacia n legtur cu un anumittip de problem (de mediu, social sau

    legal), dup cum este apreciat de ctreutilizatori. Astel, oficialii oraului vor tin ce s investeasc mai mult.

    ConcluziePentru a crea o aplicaie uor de utilizat,

    cu UI care nu are nevoie de lmuriri i cares fie disponibil pentru o gam de dispo-zitive r a modifica experiena de la undispozitiv la altul, alegerea a ost o aplicaieweb construit cu ASP.NE MVC cu imagi-nea bazat pe Foundation 5 (putei citi maimulte despre Foundation i MVC la http://www.responsivemvc.net). Furnizorul dehart ales a ost OpenStreetMap, deoarecei aceast aplicaie va fi opensourcedup cese va finaliza dezvoltarea sa, astel nct spoat beneficia de ea i alte comuniti.

    Dup discuii cu uncionari i oici-

    ali ai oraului, care lucreaz cu oamenii,am descoperit c trebuie neapratintroduse urmtoarele uncionaliti: con-irmare e-mail, CAPCHA, iltru pentruvulgaritate, un mod de a semnala utiliza-torii abuzivi cu o regul de trei ncercri isuport pentru limbi strine. oate acesteuncionaliti sunt uor de dezvoltat uti-liznd tehnologia selectat i poate fi uorscalatatunci cnd se instaleaz. Aceasta etot o aplicaie web simpl n MVC careaduce mai mult valoare statistic oficiali-

    lor oraului.Deci, cnd dezvoltai urmtorul pro-iect, nu v gndii numai la sarcina landemn, ci gndii n termeni de a ad-uga valoare aplicaiei voastre, care poatetransorma o mulime de date introduse

    ntr-un instrument statistic.

    http://../.pdfhttp://www.responsivemvc.net/http://www.responsivemvc.net/http://www.responsivemvc.net/http://www.responsivemvc.net/http://../.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    21/62

    21www.todaysoftmag.ro | nr. 24/Iunie, 2014

    testare

    Modelarea obiectual a testelor

    de Selenium

    Aceast abordare aremulte neajunsuri, printrecare diicila mentenan atestelor, risipa de linii decod, lipsa de inteligibilitate.Pentru a evita aceste nea-junsuri, o abordare dierita acestui tip de teste o repre-

    zint conceperea testelorbazate pe compararea unorobiecte.

    Studiu de cazS presupunem c pagina

    sau modulul de testat repre-zint un co de cumprturi,afiat pe un sitede cumprturi. Dup ce s-aucut cumprturi, coul conine un numrde produse. Fiecare produs, aa cum este elaiat pe pagin, conine: o etichet (label)cu numele su, o descriere, o imagine, preul

    per produs, cantitatea din acest produs carea ost pus n co, preul total pentru acestprodus (preul per produs * cantitatea), i unbuton prin care produsul poate i scos dinco. Pe lng produsele cumprate, coul are:o etichet proprie, preul total al produselor,un link pentru continuarea cumprturi-lor i un buton pentru trecerea la pasul deplat. Pagina poate conine i alte module,cum ar fi un modul lateral cu sugestii pen-tru cumprturi ulterioare. Acesta ar i unmodul minimal, coninnd doar cteva pro-

    duse, pentru care s-ar afia doar o etichet cunumele, o imagine i preul su.Coul de cumprturi ar arta similar

    celui din imaginea urmtoare:Dup adugarea tuturor produselor

    dorite, coul este pregtit pentru a se testadac inormaiile pe care le aieaz suntcorecte: produsele aiate sunt cele care auost cumprate, fiecare produs exist n can-titatea dorit, detaliile de plat sunt corecte,etc. .

    n mod obinuit, testul creat pentruveriicarea tuturor acestor proprieti alecoului ar fi o niruire de assert-uri. Chiardac s-ar scrie o metod separat de cea detest, doar pentru verificrile prin assert-uri(urmnd ca aceasta s ie olosit n maimulte teste), respectivele linii de cod tot ar fidificil de meninut i nu ar fi eficient scrise.Pentru a evita scrierea acestor teste stuoasei nu oarte prietenoase, testele pot fi gnditeobiectual, dup cum urmeaz.

    SoluiaAnaliza

    n primul rnd, trebuie luat n vedereimaginea de ansamblu. Ce reprezint pagina

    n mod obinuit, un test scris cu Selenium, Java i estNG dorete s verifice corectitudi-

    nea elementelor unei pagini sau a unui modul de pe o pagin web. Abordarea clasic aacestui tip de teste o reprezint olosirea unui numr ridicat de assert-uri, pentru com-

    pararea tuturor proprietilor dorite cu valorile ateptate ale acestora.

    Corina [email protected]

    Senior QA Engineer@ Betfair

  • 8/12/2019 Today Software Magazine N24/2014

    22/62

    22 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    Modelarea obiectual a testelor de Selenium

    testare

    cu coul de cumprturi? O colecie de obiecte de diverse tipuri.Urmrind structura ncepnd de la complex la simplu, se poateobserva c cel mai complex obiect (cel care le conine pe restul),este coul de cumprturi. El are ca proprieti: eticheta, listade produse cumprate, un link, un buton i un modul lateral.Dintre aceste proprieti, eticheta este reprezentat n Java de unString, din punct de vedere al testului. Preul poate fi reprezentatde asemenea de un String. Lista produselor reprezint de apt olist coninnd obiecte de tipul produs. Linkul afiat este i el unobiect, la el i butonul sau modulul lateral.

    n urma identificrii obiectelor de la cel mai de sus nivel, sepoate descrie obiectul ShoppingCart dup cum urmeaz:

    public class ShoppingCart { private String title; private List productList; private String totalPrice; private Button paymentButton; private Link shopMoreLink; private SuggestionsModule suggestionsModule;}

    Analiznd n continuare n adncime structura obiectelor, seobserv c: un produs conine (are ca proprieti) o imagine(adic un alt tip de obiect), o etichet care-i reprezint numele(un String), un text descriptiv (un alt String), preul per obiect(un String), cantitatea (un String), preul total al produsului (unString), i un buton (care reprezint un obiect care a ost dejamenionat ca proprietate a coului). Reprezentarea obiectual aprodusului poate fi cut, conorm analizei, dup cum urmeaz:

    public class Product { private String productLabel; private String productDescription; private Image image; private String pricePerItem; private String quantity;

    private String totalPricePerProduct; private Button removeButton;}

    Linkul menionat n cadrului coului poate conine, ca un setminimal de proprieti, o etichet (un String, textul pe care-l vedeuserul afiat) i URL-ul care se deschide prin apsarea linkului (unString). Reprezentarea sa obiectual poate fi cut astel:

    public class Link { private String linkLabel; private String linkURL;

    }

    Dup aceast logic, se pot identifica toate proprietile tutu-ror obiectelor afiate pe pagin i se pot construi aceste obiecte,,,sprgndu-le pn se descompun n proprieti care sunt obiectesau primitive Java.

    Construirea coninutului expectedDup terminarea structurrii coului de cumprturi n

    obiecte, trebuie neles cum vor fi olosite acestea n teste. Primaparte a testului (sau partea care se realizeaz naintea testului) oreprezint adugarea produselor n co. estul trebuie doar s veri-fice c n co se afl produsele corecte.

    Pentru a construi obiectul co de cumprturi la care seateapt testul (coninutul expected), trebuie creat constructorulcare atribuie tuturor proprietilor sale valori de tipul proprietilorrespective. Astel, se paseaz constructorului parametri care cores-pund proprietilor obiectului, avnd tipul acestor proprieti (deexemplu pentru o proprietate de tip String se paseaz n construc-tor un String, pentru un int se paseaz un parametru int).

    ncepnd de la cel mai simplu obiect, se creeaz constructorii.Pentru Link:

    public Link(String linkLabel, String linkURL) { this.linkLabel = linkLabel; this.linkURL = linkURL;}

    Aici se poate observa c obiectul Link are o etichet i unURL, ambele de tip String, a cror valoarea se instaniaz cu valo-rile primite din parametrii constructorului.

    Pentru produs se genereaz urmtorul constructor:

    public Product(String productLabel, String product-Description, Image image, String pricePerItem, String

    quantity, String totalPricePerProduct, Button remove-Button) { this.productLabel = productLabel; this.productDescription = productDescription; this.image = image; this.pricePerItem = pricePerItem; this.quantity = quantity; this.totalPricePerProduct = totalPricePerProduct; this.removeButton = removeButton;}

    Pentru coul de cumprturi constructorul are orma:

    public ShoppingCart(String title, List pro-ductList, String totalPrice, Button paymentButton,

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    23/62

    23www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

    Link shopMoreLink, SuggestionsModule suggestionsMod-ule) { this.title = title; this.productList = productList; this.totalPrice = totalPrice; this.paymentButton = paymentButton; this.shopMoreLink = shopMoreLink; this.suggestionsModule = suggestionsModule;}

    Pe baza constructorului, se vor genera urmtoarele obiecte(cele car vor servi drept expected), pasnd constructorului nitevalori avnd tipul parametrilor crora li se vor atribui acestea:

    linkul de continuare a cumprturilor:

    public static nal Link CONTINUE_SHOPPING_LINK =new Link(Continue shopping,http://continue.shopping.com);

    butonul pentru avansarea la aza plii:

    public static nal Button GO_TO_PAYMENT_BUTTON =new Button(Proceed to payment,http://some.url.com);

    produsul 1 din co:

    public static nal Product LATTE_MACHIATTO_2 =new Product(Latte Machiato,Classic latte machiato with a dash of cocoa on top,Image.IMAGE_LATTE_MACHIATO,5 Ron,2,10 RON,

    Button.REMOVE_PRODUCT); aici, obiectele de tip imaginei buton au ost construite olosind constructorii specifici acelorobiecte

    produsul 2 din co:

    public static nal Product CHOCO_FRAPPE_3 =new Product(Choco-whip Frappe,

    Frappe with a twist of whipped cream and chocolatesyrup,Image.IMAGE_CHOCO_FRAPPE,5 Ron,

    3,15 RON,

    Button.REMOVE_PRODUCT); aici, obiectele de tip imaginei buton au ost construite olosind constructorii specifici acelorobiecte

    produsul 3 din co:

    public static nal Product CARAMEL_MOCCACHINO_1 =new Product(Caramel Moccachino,

    Your favourite moccachino with a refreshing tasteof caramel,Image.IMAGE_CARAMEL_MOCCACHINO,5 Ron,1,5 RON,

    Button.REMOVE_PRODUCT); aici, obiectele de tip imaginei buton au ost construite olosind constructorii specifici acelorobiecte

    coul de cumprturi:

    public static nal ShoppingCart SHOPPING_CART =new ShoppingCart(My Shopping Cart,

    ImmutableList.of(Product.LATTE_MACHIATTO_2, Product.CHOCO_FRAPPE_3,

    Product.CARAMEL_MOCCACHINO_1), 30 RON, Button.GO_TO_PAYMENT_BUTTON,

    Link.CONTINUE_SHOPPING_LINK,

    SuggestionsModule.SUGGESTIONS_MODULE); aici, obiec-tul de tip modul de sugestie a ost construit olosind construc-

    torul su specific, iar lista de produse, butonul i linkul au ostexemplificate deasupra liniei n care se construiete obiectul code cumprturi.

    Construirea coninutului actual

    Pentru construirea obiectului actual, adic pentru citireaproprietilor obiectelor direct de pe pagina unde acestea suntafiate, se va crea un nou constructor n fiecare obiect, care ia caparametri fie un webElement, fie o list de webElemente, atteacte sunt necesare pentru generarea proprietilor obiectului.WebElementele reprezint descrierea elementelor HML n or-matul specific Selenium.

    Ca exemplu, pentru obiectul link: cele dou proprieti,eticheta i URL-ul asociate se pot deduce dintr-un singur webEle-ment. Un element de tip link este reprezentat din punct de vedereal HML-ului, ca un tag , avnd un atribut hre (prin extra-gerea cruia se identific URL-ul). Apelnd metoda getext() alibrriei de Selenium direct pe elementul a, se obine valoareaetichetei. Astel, constructorul bazat pe webElement este descris

    mai jos, i instaniaz proprietile obiectului extrgndu-le dinelementul HML corespunztor:

    public Link(WebElement element) { this.linkLabel = element.getText(); this.linkURL = element.getAttribute(href);}

    Pentru construirea obiectului actual corespunztor unuiprodus, n uncie de cte webElemente sunt necesare pentruobinerea tuturor proprietilor, se va defini un constructor cares ia ca parametru fie un webElement, fie o list de webElemente.Presupunnd c se olosete un singur element, constructorul vaarta astel (ca exemplu):

    public Product(WebElement element) { this.productLabel = element.ndElement( By.cssSelector(someSelectorHere)).getText();this.productDescription = element.ndElement( By.cssSelector(someOtherSelectorHere)).getText();this.image = new Image(element);this.pricePerItem = element.ndElement( By.cssSelector(anotherSelectorHere)).getText();this.quantity = element.ndElement( By.cssSelector(yetAnotherSelectorHere)).getText();this.totalPricePerProduct = element.ndElement( By.cssSelector(aSelectorHere)).getText();

    this.removeButton = new Button(element);}

    Se poate observa c n cazul produsului, pentru generareaunor proprieti s-au apelat constructorii obiectelor de tipulcorespunztor, mai exact constructorii care iau ca parametri totwebElemente. Practic, orice constructor bazat pe webElementeapeleaz doar constructori cu parametri de tip webElementepentru iniializarea proprietilor sale. Proprietile rmase seinstaniaz n uncie de parametrul dat constructorului. Deexemplu, pentru etichet (productLabel), se apeleaz metoda dinSelenium getext() pe un element relativ la elementul care estepasat n constructor.

    O dat cu definirea tuturor constructorilor bazai pe webEle-

    mente, se poate genera i constructorul pentru cel mai complexdintre ele, coul de cumprturi:

    public ShoppingCart(List webElementList) { this.title = webElementList.get(0).getText;

  • 8/12/2019 Today Software Magazine N24/2014

    24/62

    24 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    this.productList = productList; this.totalPrice = webElementList.get(2).getText; this.paymentButton = new Button(webElementList.get(3)); this.shopMoreLink = new Link(webElementList.get(4)); this.suggestionsModule = suggestionsModule;

    }

    Testuln urma deinirii obiectelor i constructorilor, se trece la

    pasul de scriere a testelor. Cerina testului era de a compara coulde cumprturi cu unul expected, adic compararea tuturorproprietilor coului de cumprturi cu cele ale coului ateptat.Aceste proprieti sunt la rndul lor obiecte, deci i proprietilelor trebuie comparate cu proprietile unor obiecte ateptate.Deoarece valorile expected s-au construit prin intermediul primu-lui tip de constructor (cel cu parametri avnd tipul proprietilorcare se instaniaz) i avem un constructor pentru generareaconinutului actual (prin interpretarea proprietilor unor webE-lemente), testul care trebuie scris conine un singur assert. Acesta

    va compara proprietile expected cu cele actual prin simplacomparare a celor dou obiecte. Ar trebui menionat c, o datcu definirea obiectelor, trebuie implementat n cadrul fiecruia imetoda de equals() (cea care verific dac dou obiecte sunt egale).

    Astel, testul poate fi scris dup cum urmeaz:

    @Testpublic void checkMyShoppingCart() { assertEquals(new ShoppingCart(theListOfWebElements),SHOPPING_CART,There was an incorrect value in the shopping cart);}

    Bineneles, acest test nu descrie paii necesari construiriicoului de cumprturi (navigarea pe site-ul de cumprturi i

    adugarea produselor). Aceti pai pot fi cui n cadrul testuluidac e necesar, sau n metode de tip @Beore.n cazul n care se dorete, de exemplu, testarea aceluiai

    coninut dar pe limbi dierite, se poate pasa un dataProvidertestului, n care s se in un parametru olosit n test pentruschimbarea limbii, precum i valoarea expected a coului pentrulimba respectiv. n acest caz, testul va deveni urmtorul:

    @Test(dataProvider = theDataProvider)public void checkMyShoppingCart( String theLanguage,ShoppingCart actualShoppingCartValuePerLanguage) {

    changeTheLanguageOnTheSite(theLanguage); assertEquals(new ShoppingCart( theListOfWebElements),

    actualShoppingCartValuePerLanguage,There was an incorrect value in the shopping cart);}

    Dataprovider-ul olosit n acest test va arta ca n exemplul demai jos:

    @DataProviderpublic Object[][] theDataProvider() {return new Object[][]{ { english, SHOPPING_CART}, { german, SHOPPING_CART_GERMAN }, { spanish, SHOPPING_CART_SPANISH}};}

    Astel, dac se presupune c site-ul de cumprturi este dispo-nibil n 20 de limbi, testul care verific afiarea corect a couluide cumprturi tradus va avea un numr redus de linii de cod iva fi scris o singur dat, fiind ns rulat pe toate limbile existente.

    BeneficiiModul de scriere a testelor prin compararea obiectelor gene-

    rate din webElemente cu cele generate din obiecte i primitive arenumeroase beneficii. n primul rnd, testul este unul oarte scurt,cu un scop bine determinat, cnd un singur lucru: comparareavalorilor actual cu cele expected. estul n sine nu necesit multmentenan, deoarece n urma schimbrilor n pagina accesatde user-i, trebuie schimbat nu testul, ci modul n care se gene-reaz proprietile comparate. Schimbarea valorii unui label depe pagin necesit doar schimbarea valorii expected corespun-ztoare unui obiect, aceast schimbare cndu-se ntr-un singurloc, dar de ea beneficiind un numr mare de teste. Astel se separpartea de test de partea de generare a valorilor ateptate.

    Un alt beneficiu l reprezint structura compact a testului,nefiind necesar scrierea unui numr ridicat de assert-uri, saupasarea unui numr mare de parametri unei metode care trebuies verifice acele valori. n locul acelor muli parametri, se paseazdirect obiectul care conine proprietile de comparat.

    Modelarea obiectual a testelor de Selenium

    testare

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    25/62

    25www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE management

    Managementul riscului este un termen utilizat pe scar larg n lumea soware engineeringde astzi. Aproape fiecare proiectsuer ameninri care i pot aecta ntr-un mod negativ costul, termenii de livrare sau calitatea. Conorm unui studiu IBMdoar 40 % din proiecte ajung s i ating obiectivele de buget, termenii de livrare i de calitate. Alte analize au concluzionatc ntre 65 i 80 % din proiectele I nu reuesc s i ating obiectivele, i ajung s coste n mod semnificativ mai mult dect a ostplanificat sau sunt livrate cu ntrziere.

    Pentru a evita deviaiile critice la costul,

    termenii de livrare sau calitatea proiectu-lui, este important ca fiecare manager deproiect i nu numai, s recunoasc ap-tul c exist ameninri, c lucrurile arputea merge prost, i n consecin s fiepregtii s acioneze, ie prin reducereaprobabilitii potenialei ameninri ieprin reducerea pierderilor n cazul n careaceasta se va materializa.

    Ce este un risc?Un risc reprezint o potenial pro-

    blem, un eveniment incert care, n cazuln care se produce, va avea un eect asupraobiectivelor proiectului. Eectul evenimen-tului ar putea s fie benefic sau duntor.Cnd discutm despre managementul ris-cului, care include att eectele pozitive, cti cele negative ale unui eveniment incert,managerul de proiect trebuie s diereniezentre ameninri i oportuniti. n artico-lul curent, ne vom concentra doar asuprariscurilor care amenin obiectivele pro-iectului, adic a celor care au un impactnegativ asupra obiectivelor de succes ale

    acestuia.Orice risc implic trei atribute care tre-

    buie s fie cuantificate : Probabilitateaca riscul s se ntm-

    ple: de obicei exprimat n procente saucategorii: mica, medie, mare.

    Impactul: pierderea care va avea locn cazul n care riscul devine o realitate,poate fi exprimat prin categorii: sczut,mediu, ridicat.

    Proximitateaeste exprimat n ter-meni de timp (data cea mai probabil

    la care evenimentul ar putea avea loc)sau categorii (de exemplu iminent, petermen scurt, pe termen lung), avnd nvedere intervalul de timp din momen-tul n care riscul este identificat pn n

    momentul cel mai probabil n care riscul

    ar avea un impact asupra obiectivelorproiectului.

    Diferena ntre risc i problem Risculeste un eveniment viitor care

    poate avea un impact negativ asupraobiectivelor proiectului. Aspectul cheieeste acela c evenimentul de risc nu s-antmplat nc i s-ar putea s nici nu sentmple.

    Problema este un rezultat al unuieveniment care se ntmpl chiar acum

    sau s-a ntmplat deja. O problem areun impact negativ asupra proiectului.O problem nu este un risc, dar un riscpoate deveni o problem atunci cnd nui mai putem evita impactul.

    Putem dierenia patru tipuri de riscuri: Riscuri de proiect - cele care

    amenin planul de proiect; acestea suntn mare parte legate de potenialele pro-bleme legate de buget, termeni de livrare,personal, resurse, cerine uncionale,client;

    Riscurile tehnice- cele care amenincalitatea i posibilitatea soware-ului dea i produs; acestea sunt n mare partelegate de potenialele probleme legatede proiectare, implementare, intera,ver i icare , nt re inere . Ambiguit ateacerinelor, incertitudinile tehnice, uzuramoral tehnic, tehnologia de vrsunt actorii de risc in aceast categorie.

    Riscurile de produs- cele care suntlegate de consecinele potenialelor pro-bleme care privesc produsul (de exemplu,

    riscuri de securitate). Aceste riscuri poti legate de utilizarea incorect a pro-dusului, sau deecte ale produsului careaecteaz rezultatele prin erori de calculsau logice.

    Riscurile de business- sunt cele care

    amenin viabilitatea sau succesul pro-iectului; acestea privesc n mare partepotenialele probleme legate de pia,strategia companiei, orei de vnzare,management.

    Activitile de gestionare a riscurilorsunt n responsabilitatea manageruluide proiect, dar identificarea lor este res-ponsabilitatea iecruia i toate acesteactiviti trebuie s fie eectuate ntr-unmod proactiv. Obiectivul managementu-

    lui riscurilor este de a oeri manageruluide proiect cunotinele i instrumentelenecesare pentru a fi n msur s ac aoricror evenimente care ar putea aveaun impact negativ asupra obiectivelorproiectului. Multe dintre problemele careapar n dezvoltarea de sotware au ostmai nti cunoscute ca riscuri de ctrecineva din echipa de proiect. Identificatela timp, riscurile pot i evitate, negatesau se poate aciona n vederea redu-cerii impactului acestora. Gestionareaproactiv a riscurilor implic stabilirea

    unei strategii care previne materializareariscului i transormarea lui ntr-o pro-blem sau i limiteaz impactul n cazuln care acesta se materializeaz. Strategiade gestionare a riscurilor include, deobicei, reducerea eectului negativ saua probabilitii de apariie a riscului,transerul ameninrii ctre o alt parte,evitarea ameninrii sau chiar acceptareaei.

    Paradigma managementului riscurilor

    n timpul azei de iniiere a proiectuluii apoi n mod continuu n timpul cicluluide via al ntregului proiect, riscurile tre-buie s fie identificate, analizate i ulteriortrebuie planiicate msuri adecvate, iar

    Riscul de a nu avea riscuri

  • 8/12/2019 Today Software Magazine N24/2014

    26/62

    26 nr. 24/Iunie, 2014 | www.todaysoftmag.ro

    apoi evaluate i puse n aplicare cand estenevoie. n derularea acestor pai, manage-rul de proiect este asistat de ctre prileinteresate n succesul proiectului.

    IdentificareaO mare parte din riscurile unui pro-

    iect pot fi identificate n aza de iniiere aproiectului, unele dintre ele chiar n azade oertare. Exist o serie de instrumentei modaliti care l pot ajuta pe managerulde proiect pentru a eectua n mod eficientaceast activitate. Se pot utiliza liste de veri-icare sau chestionare unde rspunsurilela ntrebri vor dezvlui riscuri. SowareEngineering Institute (SEI) a dezvoltat otaxonomie a riscurilor legate de dezvolta-rea de sotware i un chestionar pe bazaacestei taxonomii (BQ-axonomy Based

    Questionnaire), care oer condiiile pentruidentificarea, organizarea i studierea die-ritelor aspecte ale riscurilor n dezvoltareade soware.

    Cu toate acestea, riscurile exist i aparde-a lungul ntregului ciclu de via al unuiproiect; de aceea, ele trebuie s ie iden-tificate n mod continuu, nu doar n azade start-up. Identificarea riscurilor trebuies ac parte din rutina proiectului. Esteresponsabilitatea proesional i morala iecrui membru al echipei s rapor-

    teze riscuri de ndat ce sunt identificate,chiar dac acestea par s aib o importanredus sau sun atipic.

    Odat identificate, riscurile trebuie sie nregistrate, comunicate, mprtiteprin intermediul unui jurnal de risc (risklog) sau orice alt instrument care permitenregistrarea riscurilor.

    AnalizaOdat ce riscul a ost identificat, mana-

    gerul de proiect (sau cineva care acioneazn calitate de manager de risc pentru pro-iect) va evalua probabilitatea sa, impactuli proximitatea. n unele cazuri, acest pasnecesit i o analiz de impact, care va luan considerare toate obiectivele ce pot iaectate de posibila apariie a riscului. nmod ideal, managerul de proiect ar trebuis determine i valoarea riscului, adiccostul problemei n cazul n care riscul sematerializeaz. Valoarea riscului = proba-

    bilitate x costurile pentru proiect (n cazuln care s-ar produce riscul). n absenacirelor o clasificare relativ a valorii riscu-lui va fi de asemenea util.

    Managerul de proiect trebuie s se asi-gure c rspunderea pentru toate riscurileimportante este atribuit n mod explicitunei persoane (risk owner). Aceasta va fipersoana cu profilul cel mai potrivit pentrua gestiona riscul respectiv n intervalul ncare este posibil s se materializeze. Aceastresponsabilitate poate i atribuit unei

    persoane care nu este implicat direct nproiect, cum ar fi managerul de unit/depar-tament, de vnzri, de inrastructur, etc..

    PlanificareaOdat ce probabilitatea, impactul

    i proximitatea unui risc au ost evalu-ate, managerul de proiect va colabora cuprile interesate pentru a defini i a pla-nifica msuri adecvate gestionrii riscului.Msurile pe care un manager de proiect lepoate lua n considerare atunci cnd va rs-punde la un risc sunt:

    1. Atenu area r is cu l u i - presu-pune reducerea impactului i / sau aprobabilitii de apariie a riscului. Este

    strategia primar, una proactiv, caregestioneaz riscurile ntr-o maniercontrolat i eficient. Este de cele maimulte ori realizat printr-o atenuare,care include, de asemenea i un plande intervenie n cazul n care riscul seproduce.

    2. Evitarea riscului - prespune eli-minarea complet a riscului. Acestlucru nseamn c nu se vor desuraactivitile ce sunt purttoare de risc.Evitarea riscurilor nseamn, de aseme-nea, a pierde potenialul ctig care ar fiputut fi obinut n cazul n care riscul arfi ost acceptat.

    3. ranserul riscului - presupunetranserarea sau distriburea impactuluiriscului cu un ter, de exemplu cu com-pania de asigurri.

    4. Rezerva riscului, cunoscut de ase-menea i sub numele de plan de urgen,oer o alternativ pentru situaia n careriscul se va materializa.

    5. Acceptarea riscului- presupune cnici un rspuns nu va fi implementat, ris-cul este lsat s se produc.

    Msurile definite pentru a rspunde lariscuri genereaz costuri suplimentare pen-tru proiect. Msurile de atenuare a risculuisunt eficiente atunci cnd ctigul obinut

    prin reducerea riscului depete pierde-rea potenial care ar fi ost nregistrat ncazul n care riscul s-ar fi materializat.

    Altel spus, managementul riscului lprovoac pe project manager s decidct de mult timp, bani, eort este dispuss investeasca pentru rezolvarea unei pro-bleme care ar putea s nu apar niciodat.O practic nelept n managementul deproiect este aceea de a lua ntotdeauna nconsiderare un buget de risc, atunci cndse calculeaz bugetul iniial al proiectului.

    MonitorizareaRiscurile trebuie s ie monitorizate

    i revizuite periodic pentru a stabili dac

    Riscul de a nu avea riscuri

    management

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N24/2014

    27/62

    27www.todaysoftmag.ro | nr. 24/Iunie, 2014

    TODAY SOFTWAREMAGAZINE

    rspunsurile planiicate mai sunt sau nude actualitate i dac e necesar a fi planifi-cate msuri noi. n timpul ciclului de viaal unui proiect pot i identiicate sute deriscuri. Este imposibil ca toate acestea spoat fi monitorizate n mod regulat. Deaceea, recomandarea este ca doar primele10 riscuri (lund n considerare prioritilestabilite) s ie monitorizate regulat. Omatrice de Impact/Probabilitate poate ajutamanagerul de proiect s decid care dintreriscuri au nevoie de atenia lui.

    Pentru a implementa cu succes unproiect, managerul de proiect trebuie sidentifice i s i concentreze atenia asu-pra riscurilor moderate i extreme.

    Riscurile din colul dreapta sus (demare impact i cu grad ridicat de proba-

    bilitate) sunt de importan crucial, iarmanagerul de proiect trebuie s le acordeo atenie deosebit. Este posibil ca la unmoment dat un risc moderat s nece-site mai mult atenie dect unul extrem,a crui proximitate este pe termen lung,din motiv c cel moderat este posibil s sematerializeze n curnd.

    Riscurile cu probabilitate i impactredus pot fi de cele mai multe ori ignorate.

    Corectarea / AjustareaDeoarece contextul proiectului se poate

    schimba, rspunsurile deja planificate pen-tru un anumit risc s-ar putea s nu maifie adecvate i prin urmare sunt necesarecorecii la planurile i aciunile de dimi-nuare a riscului. Uneori chiar riscul n sinetrebuie s fie re-analizat.

    Riscul de a nu avea riscuriIdentiicarea i gestionarea riscurilor

    este esena supravieuirii i dezvoltrii aa-cerii. n cele mai multe dintre companiileromneti de I, practicile de gestionare

    a riscurilor nu sunt ormalizate iar acestlucru devine un risc n sine. Cu toate cmanagerul de proiect identiic riscurilepe baza experienelor anterioare, a leciilornvate sau doar pe baz de intuiie,

    riscurile sunt rareori gestionate sau moni-torizate n mod corespunztor. Iar atuncicnd lucrurile pot merge prost ele vormerge prost (dac nu se vor lua msuri).De cte ori ai auzit expresia: tiam eu casta se va ntmpla, dup ce s-a ntmplatceva ru? i aceasta se datoreaz aptului co persoan din echipa a intuit c ceva poatemerge prost, dar nu a acionat pentru a pre-veni acel eveniment. Faptul c alegem scomunicm i celorlali ngrijorarea noas-tr i acionm pentru a evita riscul este unsemn de maturitate i arat c ne pas. Esteresponsabilitatea noastr s mprtimriscurile cu persoana care poate acionapentru a le evita sau pentru a le diminuaimpactul. Fiecare dintre noi are propria saperspectiv, cunoatere i nelegere a ceeace se ntmpl, vede lucruri pe care alii nu

    le vd sau nu le pot vedea. Se spune c, nmedie, fiecare dintre noi identificm apro-ximativ cinci riscuri pe zi, dar, de obicei,le uitm la scurt timp dup aceea dac nule notm.

    Avnd n vedere contextul companiei ncare lucrai i aspectele prezentate n acestarticol prevedei vreun risc datorat aptu-lui c nu exist riscuri? Sau altel spus:Avnd n vedere c nu exist implementatun proces de management al riscului existriscul ca aacerea s eueze? Sau de a pierde

    proiecte? Sau de a pierde angajai?Este o provocare pentru iecare din-tre noi de a identifica i de a reaciona laaceste riscuri. Unii dintre noi pot identificaaceste riscuri, alii pot aciona pentru a rs-punde la ele. Cu toate acestea, o gestionareeicient a riscurilor ncepe de la nivelulde top-management, a board-ului, undetrebuie s existe claritate cu privire la stra-tegia de risc i de guvernare, o nelegereacorect i responsabiliti clare privindmanagementul riscului la nivel de boardila nivel executiv.

    La ISDC, noi am neles importanamanagementului riscurilor ca i proces, cai mentalitate, ca i atitudine a de riscurii acionm continuu pentru eliminareariscului de a nu avea riscuri prin :

    Implementarea unui proces demanagement al riscului eficient la nivelde organizaie.Acesta include politici,proceduri, instrumente i responsabilitiimplicate n activitile de gestionare ariscurilor;

    Implementarea unei aplicaii dez-

    voltate interncare ncurajeaz i sprijinidentificarea riscurilor, urmrirea i ana-liza lor;

    ncurajarea comunicrii deschiseprivind identificarea riscurilor;

    Sesiuni de training de managemental riscurilorpentru project manageri,ei de echip (team leader-i) i cole-gii din departamentul de asigurare acalitii;

    Analiza riscurilor din proiecte(numr de riscuri, categorii de riscuri,valoarea cumulat a riscurilor). Astelsuntem capabili s determinm categori-ile care determin c