Documente Academic
Documente Profesional
Documente Cultură
com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
spozitivele mobile
di
Realitatea virtuala mbuntit pe
Java Chronicle n aciune
6
Interviu cu Jonathan Shieber,
senior editor la
TechCrunch i CrunchBase
Ovidiu Man
7
Lansarea Different Angle primul Cluster de IT & C
din Bucureti
Ovidiu Man
8
De ce s vii la
Startup Weekend Cluj 2015?
Cristina Juc
10
MVP Academy prezint cele 13
startup-uri admise n
programul de pre-accelerare
Irina Scarlat
12
Alt-tester la Mobile
World Congress 2015
Simina Rendler
15
Realitatea virtual mbuntit
pe dispozitivele mobile
Alexandru Fediuc i Virgil Andreies
19
Introducerea i tuning-ul
Hadoop MapReduce
Tudor Lpuan
22
Sisteme de mesagerie
performante Apache Kafka
Tiberiu Nagy
25
Date de tip spaial n SQL Server
Diana Muntea
28
Usable
Software
Design
Alexandru Bolboac
31
Quality
Assurance
n Agile
Vasile Selegean
35
Dezvoltarea aplicaiilor
securizate n Java
Silviu Dumitrescu i Diana Blan
38
Abordare simpl
a riscului
n Scrum
Sebastian Boti
42
Importana realizrii
de prototipuri
Ctlin Timofti
44
Java Chronicle
n aciune
Vasile Mihali
46
Apache Cassandra,
Primii Pai
Sergiu Indrie
49
Appium - testare automat cross-platform
pentru dispozitive mobile
Vasile Pop
46
Analiza pentru tehnologiile viitoare
Ioana Armean
editorial
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
Ovidiu Man
Lista autorilor
Alexandru Bolboac
Silviu Dumitrescu
Alexandru Fediuc
Simina Rendler
Associate IT Consultant
@ msg systems Romnia
Software Tester
@ Altom Consulting
Ctlin Timofti
Tiberiu Nagy
UX Designer
@ SDL
Senior developer
@ Betfair
Cristina Juc
Tudor Lpuan
Organizatoare
@ Startup Weekend Cluj
Diana Blan
Vasile Mihali
Java developer
@ Accesa
Diana Muntea
Vasile Pop
Software Developer
@ Yardi Romnia
Software Engineer
@ Intel Romnia
Ioana Armean
Vasile Selegean
alex.bolboaca@mozaicworks.com
alexandru.fediuc@msg-systems.com
silviu.dumitrescu@accesa.eu
simina.rendler@altom.ro
ctimofti@sdl.com
tiberiu.nagy@betfair.com
cristinajuc@gmail.com
tudor.lapusan@telenav.com
www.todaysoftmag.ro
www.facebook.com/todaysoftmag
twitter.com/todaysoftmag
Diana.Balan@accesa.eu
diana.muntea@yardi.com
vasile.mihali@arobs.com
vasile.pop@intel.com
QA Officer
@ ISDC
Sebastian Boti
Virgil Andreies
Delivery Manager
@ Endava
Associate IT Consultant
@ msg systems Romnia
Sebastian.Botis@endava.com
vasile.selegean@isdc.eu
virgil.andreies@msg-systems.com
Sergiu Indrie
sergiu-mircea.indrie@hp.com
Software Engineer
@ HP
www.todaysoftmag.ro
www.todaysoftmag.com
business
m avut ocazia s povestim cu Jonathan Shieber n cadrul unui workshop organizat n Cluj la nceputul luni martie. Cei din
zona startup-urilor, interesai s i exerseze pitch-ul, au avut ocazia s o fac i s primeasc sfaturi direct de la acesta. Aa
cum ne-am ateptat, nu exist o reet a succesului dar este important s se aib n vedere esenialul i factorii de difereniere
a produsului fie c vorbim de o prezentare sau de publicarea unui articol n TechCrunch. n continuare v prezentm un scurt interviu cu Jon despre tendinele actuale.
Apple Watch va fi disponibil n curnd;
care este perspectiva ta asupra evoluiei
sale, dac ne gndim la limitrile sale
actuale precum bateria de o zi, dependena
de un iPhone, noile versiuni care l vor face
depit versus ceasurile clasice?
[Jon] Chiar nu sunt persoana cea mai
potrivit pentru a formula o prere n legtur cu iWatch de la Apple. Nu este punctul
meu forte. Dar critica mpotriva iWatch
care spune c este ceva inutil mi se pare
corect. Nu vd o aplicaie killer care m-ar
putea convinge s mi iau unul, dar aceasta
a fost i critica iniial mpotriva tabletei.
De fiecare dat cnd Apple lanseaz un
nou dispozitiv n ecosistem, oamenii pun
la ndoial utilitatea sa, i de fiecare dat
acesta devine, n cele din urm, standardul
implicit de aur n categoria sa. Acesta este
unul dintre acele cazuri n care este mai Dac exist reporteri pe care i respectai,
bine s ateptm i s vedem.
lsai-le cteva rnduri i artai-le asta.
Dac oamenii observ cum ne facem
Drept redactor ef la TechCrunch, i se datoria, atunci este mai probabil ca i noi
trimit nouti, iar interesul pentru aceasta s observm ceea ce fac ei.
este foarte mare. Ce sfat ai da unei persoane
care are un startup i dorete s publice un
Este TechCrunch implicat activ ntr-un
articol n TechCrunch? Vreun eveniment accelerator startup prin CrunchBase?
important la care ar trebui s participe?
[Jon] TechCrunch nu este afiliat la
[Jon] Am atins acest subiect n cadrul niciun accelerator sau incubator. Exist
discuiilor la masa rotund. Fii concii, un fond iniiat de ctre fondatorul
descriei punctul dureros pe care l rezolv TechCrunch, Michael Arrington, numit
tehnologia companiei, menionai nou- CrunchFund, dar nu sunt sigur care
tatea ntr-o propoziie, vorbii despre este relaia dintre acel fond de investiii
dimensiunea potenial a oportunitii i TechCrunch (dintr-o perspectiv
de pia i cercetai cine este reporterul instituional).
potrivit pe care s l contactai. Odat
ce un antreprenor identific reporterii
potrivii pentru tirile pe care le anun, ar
trebui s fie struitor n contactarea acelor persoane. ncepei procesul din timp.
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
eveniment
6 martie 2015, Sky Tower, Bucureti - Lansarea oficial a primului Cluster de IT&C din Bucureti, Different Angle, coincide i
cu anunarea primului domeniu de interes comun promovat de membrii noii organizaii: Smart Cities. Pornind de la premisa
c oraele moderne, inteligente sunt capabile s asigure un mediu confortabil i sustenabil pentru locuitorii lor prin utilizarea
eficient a tehnologiei disponibile, Cluster-ul Different Angle a invitat la evenimentul de lansare trei veritabili ambasadori ai conceptului de Smart Cities.
Astfel, evenimentul beneficiaz de prezena Prof. dr. Sorin
Coofan de la Universitatea Tehnic din Delft, Olanda; Chrysses
Nicolaides - Fondator al Clusterului Smart Cities Mediterranean
i Giora Levi - CEO, Alvarion.
Studiile de caz prezentate de acetia urmresc implementri
concrete ale principiilor de baz Smart City n domenii precum:
modalitile optime de transfer de cunotine, resurse i
experien ntre furnizorii de soluii i beneficiarii mediilor
urbane;
utilizarea reelelor wireless ca fundament al dezvoltrii
oraelor inteligente;
capacitatea de aciune a Cluster-elor IT&C n context
european.
Iniiat de cele unsprezece companii membre firme de
consultan i IT&C cu mai mult de cincisprezece ani de
experien pe pia, Cluster-ul Different Angle i propune s
regndeasc i s dinamizeze formulele tipice de colaborare.
Obiectivele pe termen mediu i lung ale Cluster-ului Different
Angle constau n: eficientizarea potenialului local de IT&C,
transferul de knowledge ntre mediul academic i mediul privat,
reducerea deficitului de for de munc specializat n domeniul
IT&C din Bucureti.
Cluster-ul Different Angle are n alctuire urmtoarele companii: Econo-heat, eSolutions Grup, Evolva Trend Consultant,
Gemini Solutions, GreenTree Applications, Lasper Human
Development, Nemetschek Romnia Sales&Support, Power Net
Consulting, Qualitance, RezolvIT, Tremend.
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
antreprenoriat
tartup Weekend este o micare global care reunete oameni cu idei, aspiraii, aparinnd unor medii diferite, reunii de dorina
de a se ajuta reciproc pentru atingerea unui scop comun. Evenimentele Startup Weekend ajut oamenii s-i dezvolte ncrederea
n potenialul lor antreprenorial i s vad cum ideile lor prind via aproape ntr-o clipit. De asemenea, creeaz oportunitatea
de a oferi mentorat de la antreprenorii care au reuit deja i se afl acolo pentru a ajuta i sftui echipele participante.
mai veche, de a crea un obicei din faptul
c i ari aprecierea pentru oamenii din
jurul tu, pentru cine sunt i pentru ceea
ce fac pentru tine n fiecare zi. Eu dobndisem acest obicei, i-l foloseam n relaiile
cu civa oameni foarte apropiai mie, ns
mi doream s gsesc o modalitate de-a
face uz de tehnologie pentru a putea aduce
aceast idee la un alt nivel. Ideile noastre
s-au suprapus, i astfel a aprut ZenQ.
Cum te-ai gndit la idee/concept?
Zornitsa Tomova (ZenQ)
Ideea s-a nscut n februarie 2014,
- Winner at SWCluj 2014
ntr-o dup amiaz cu soare, pe o banc
din faa Cluj Cowork, unde lucram n acea n ce stadiu v aflai n acest moment?
perioad mpreun cu Mircea, co-fondator
Dup SWCluj am avut nevoie s ne
ZenQ . El mi-a povestit atunci despre ideea dm seama cum ar funciona Employee
lui de a crea o aplicatie unde fiecare are un Engagement n viaa real, i dac aceast
profil de personalitate, creat de ctre prie- unealt pe care am gndit-o n cadrul evetenii si, pe care l poate folosi pentru a-i nimentului ar putea avea un impact real,
descoperi punctele forte, pentru a cuta un dar i modul n care ar influena implicarea.
job sau pentru a ctiga ncrederea oame- Se pare c rspunsul e Da, ns noi aveam
nilor care nu te cunosc personal. n acel nevoie de o cercetare car s confirme acest
moment mi-am amintit de o idee de-a mea lucru. La momentul actual lucrm asupra
Ce-a de-a patra ediie Startup Weekend
Cluj va avea loc anul acesta ntre 24 i 26
aprilie. Am putea s i oferim o mulime
de motive pentru care merit s participi i
s ii testezi ideea, dar am decis n schimb
s le ntrebm pe ctigtoarele ediiei
anterioare. Pentru aceasta, le-am provocat s ne rspund la cteva ntrebri. Iat
cteva dintre rspunsurile lor:
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
acesta?
Cristina Juc
cristinajuc@gmail.com
Organizatoare
@ Startup Weekend Cluj
Product
Strategy
Product
Development
Product
Support
www.3pillarglobal.com
antreprenoriat
ucureti, 18 martie 2015 13 startup-uri tech cu potenial la scar global au fost selecionate pentru a participa la cea de a
doua ediie a programului de preaccelerare MVP Academy. n perioada 23 martie 14 mai, acestea vor lucra la dezvoltarea
produselor i vor forma conexiuni valoroase n industrie participnd la workshop-uri practice, sesiuni de mentorat i la alte
activiti specifice. Lista complet a echipelor finaliste este disponibil online pe site-ul programului http://bit.ly/MVPClassof2015.
Cele 13 echipe finaliste ale programului de preaccelerare MVP
Academy dezvolt produse n domenii precum securitate, comer
online, comer mobile, analytics sau fashion tech i s-au remarcat
prin experiena lor. Astfel, majoritatea startup-urilor au nfiinat
anterior alte companii sau sunt formate din profesioniti care au
dezvoltat diferite iniiative n tehnologie de-a lungul timpului.
Selecia finalitilor a fost realizat lund n considerare echipa
i experiena acesteia, dimensiunea i tendinele actuale ale pieei,
validarea utilizatorilor i costul de achiziie, traciunea iniial,
scalabilitatea i fezabilitatea produsului. Din juriu au fcut parte
Bogdan Iordache (Investment Manager, 3TS Capital Partners &
Board Member, How to Web & TechHub Bucharest), Cosmin
Ochior (Business Development Manager, hub:raum, care a evaluat startup-urile din partea hub:raum i Telekom Romania) i
Alex Negrea (Co-Fondator, docTrackr).
Startup-urile care vor participa la cea de-a doua ediie a programului de preaccelerare MVP Academy sunt:
1. Accelerole: software de management care ajut freeancer-ii
i ageniile s i structureze sistemele de tarifare orar i s i
gestioneze mai bine procesele interne;
2. Catwalk15: aplicaie mobil care ajut utilizatorii s
10
11
eveniment
obile World Congress este evenimentul de anvergur al industriei tehnologiilor mobile. Un trg uria, lansri mult
ateptate, conferine i seminarii extraordinare, networking intens. Ce face la un asemenea eveniment o companie specializat n servicii de testare i, mai ales, de ce duce de mnu un roboel?
12
Sibiu).
Altap se mic!
Alt-tester la MWC
Fr a fi o promotoare n materie de
device-uri i tehnologii mobile, ci doar o
utilizatoare de smartphone i tester al unei
aplicaii mobile, eu m-am bucurat de participarea la MWC15 ct s o cataloghez drept
cea mai fain experien profesional de
pn acum. Pe de-o parte, plimbndu-m
pe la celelalte standuri, am avut ocazia s
discut cu profesioniti din domenii conexe,
dar variate, despre produse, servicii, probleme ntmpinate; despre tendinele de
pe piaa tehnologiilor mobile, despre ce
provocri aduc ele i cum am putea s
le rspundem. Le-am urmrit structura
prezentrilor, cum rspund la ntrebri
dificile, cum i promoveaz compania i
cum i vnd serviciile sau produsele. i
am explorat n premier echipamente i
dispozitive pe care probabil voi testa n viitor. Din partea cealalt, cea de la standul
nostru, am avut posibilitatea s discutm
despre provocrile pe care le ntmpin
dezvoltatorii de aplicaii, managerii proiectelor IT sau oamenii de business n
legtur cu testarea aplicaiilor. Acesta a
fost un exerciiu excelent de a rspunde
unor probleme de testare i de a nelege
mai bine ce nevoi au beneficiarii muncii
noastre. Cumulat, a rezultat o experien
inedit de formare n materie de customer
awareness despre care mi face plcere s
povestesc. Deci, ntrebai-m despre ea.
Simina Rendler
simina.rendler@altom.ro
Software Tester
@ Altom Consulting
13
comuniti
Comuniti IT
a cum menionam n editorial am avut parte n luna martie de dou evenimente importante: ..even mammoths can be
Agile i Cluj Innovation Days. n luna aprilie va avea loc Startup Weekend, un important eveniment dedicat crerii de
startup-uri. Salutm de asemenea iniiativa grupului meetup Big Data pentru organizarea BigData Romanian Tour :
Cluj-Timioara-Bucureti.
Transylvania Java User Group
Comunitate dedicat tehnologiilor Java.
Website: www.transylvania-jug.org
Data nfiinrii: 15.05.2008 / Nr. Membri: 599 / Nr. Evenimente: 47
Comunitatea TSM
Comunitate construit n jurul revistei Today Software Magazine.
Websites: www.facebook.com/todaysoftmag
www.meetup.com/todaysoftmag
www.youtube.com/todaysoftmag
Data nfiinrii: 06.02.2012 /Nr. Membri: 2215/Nr. Evenimente: 30
Cluj Business Analysts
Comunitate dedicat analizei de business
Website: www.meetup.com/Business-Analysts-Cluj
Data nfiinrii: 10.07.2013 / Nr. Membri: 91 / Nr. Evenimente: 8
Cluj Mobile Developers
Comunitate dedicat tehnologiilor mobile
Website: www.meetup.com/Cluj-Mobile-Developers
Data nfiinrii: 05.08.2011 / Nr. Membri: 264 / Nr. Evenimente: 17
The Cluj Napoca Agile Software Meetup Group
Comunitate dedicat metodelor Agile de dezvoltare software.
Website: www.agileworks.ro
Data nfiinrii: 04.10.2010 / Nr. Membri: 437 / Nr. Evenimente: 93
Cluj Semantic WEB Meetup
Comunitate dedicat tehnologiilor semantice.
Website: www.meetup.com/Cluj-Semantic-WEB
Data nfiinrii: 08.05.2010 / Nr. Membri: 192/ Nr. Evenimente: 29
Romanian Association for Better Software
Comunitate dedicat oamenilor cu experien din IT indiferent de
tehnologie sau specializare.
Website: www.rabs.ro
Data nfiinrii: 10.02.2011 / Nr. Membri: 251/ Nr. Evenimente: 14
Tabra de testare
Comunitate format din testeri i ali profesioniti din industria
IT care, n cadrul unor ntlniri informale lunare, mprtesc
din cunotinele proprii i nva din experienele profesionale ale
celorlali membri.
Website: www.tabaradetestare.ro
Data nfiinrii: 15.01.2012/Nr. Membri: 1243/ Nr. Evenimente: 107
14
Calendar
Martie 24 (Cluj)
Lansarea numrului 33 al Today Software Magazine
www.todaysoftmag.ro
Martie 24 (Timioara)
Timisoara WordPress March Meetup
meetup.com/Timisoara-WordPress-Meetup/
events/220966568/
Martie 25 (Iai)
Enki.js (what I learned building a web framework)
meetup.com/Iasi-JS/events/221279113/
Martie 26 (Timioara)
TdT#29 - the Testing Map by Claudiu Draghia
m e e t u p . c o m / Ta b a r a - d e - Te s t a r e - T i m i s o a r a /
events/220453273/
Martie 26 (Braov)
Flying Penguins: Embedded Linux Applications for
Autonomous UAVs
meetup.com/bv-tech/events/219375757/
Martie 27 (Cluj)
BigData Romanian Tour : Cluj-Timisoara-Bucuresti
me etup.com/Big-D at a-D at a-S cience-Me etup
-Cluj-Napoca/events/220876181/
Martie 31(Bucureti)
Mobile Advertising Congress
conference-arena.com/mobile-advertising-congress
Aprilie 1 (Bucureti)
April BucharestJS Meetup
meetup.com/BucharestJS/events/221195509/
Aprilie 14 (Cluj)
UI/UX Cluj Meetup (open call4speakers)
meetup.com/UXUICluj/events/220935531/
Aprilie 24 (Cluj)
Cluj Startup Weekend - recomandat de TSM
cluj.startupweekend.org/
programare
Alexandru Fediuc
alexandru.fediuc@msg-systems.com
Associate IT Consultant
@ msg systems Romnia
Virgil Andreies
virgil.andreies@msg-systems.com
Associate IT Consultant
@ msg systems Romnia
Metode de tracking
15
programare
Realitatea virtuala mbuntit pe dispozitivele mobile
definit, ncadrat de un chenar.
codurile de bare formate n majoritatea cazurilor din
celule alb-negre ncadrate de un chenar sau ce vin mpreun
cu nite repere grafice.
Markere imperceptibile imagini, markere infraroii,
miniaturi (markere imposibil de detectat de ochiul uman).
Metaio
Frameworks
Vuforia
DFusion
16
Ce este Unity 3D ?
Unity 3D reprezint un motor 3D extrem de puternic precum
i un mediu de dezvoltare de aplicaii interactive extreme de user
friendly. Acesta are avantajul de a fi foarte uor de folosit, att
de persoane care nu au cunotine solide de programare, ct i
de cei experimentai. Un alt beneficiu reprezint faptul c Unity
Technologies ofer dou variante pentru dezvoltatori, cea gratuit
i varianta Pro pentru care utilizatorul este nevoit s plteasc.
Varianta Pro ofer mai multe feature-uri i unelte contra sumei
de 1500$. Acest pre este ns pe deplin justificat avnd n vedere
ct de permisiv este licena de publicare Unity. Pentru nceput,
versiunea gratuit ar trebui s fie ndeajuns. O scurt comparaie
ntre cele dou versiuni poate fi gsit la adresa http://unity3d.
com/unity/licenses , precum i locul de descrcare al versiunii
gratuite.
Caracteristici generale
Motorul se folosete de trei limbaje de programare: C#, Boo
i Unity JavaScript i poate fi folosit n a dezvolta aplicaii pentru
majoritatea sistemelor de operare, chiar i cele mobile. De asemenea, ofer posibilitatea de a lucra direct n mediul 3D, adecvat
pentru a crea niveluri de joc, meniuri, animaii, pentru a realiza
scripturi i a le ataa obiectelor. Iar toate acestea sunt accesibile cu
doar cteva click-uri, interfaa grafic fiind una extrem de uor de
nvat. Un proiect Unity reprezint un fiier simplu care conine
fiecare resurs ce aparine jocului sau aplicaiei interactive.
Assets
Assets reprezint fiecare resurs pe care aplicaia o utilizeaz. Aadar n Assets amintim modele 3D, materiale, texturi,
resurse audio, scripturi, fonturi. n afar de cteva obiecte simple,
considerate primitive, precum cuburi i sfere, Unity nu are posibilitatea de a crea aceste assets. n schimb, acestea trebuie create
extern utiliznd aplicaii de modelare 3D i unelte grafice de pictat, urmnd ca ulterior, acestea sa fie importate n Unity. Acest
lucru este extrem de uor de realizat, importarea fiind n acelai
timp robust i inteligent. Unity accept toate formatele de fiier
populare, incluznd 3D Studio Max, Blender, Maya i FilmBox
pstrnd materialele, texturile i rigging.
Scripting
Script-urile sunt cunoscute ca behaviours. Ele asigur manipularea i crearea de interactivitate ntre resurse. Acestea pot fi
reutilizate pentru mai multe obiecte, ataarea lor pe resurs realizndu-se ntr-un mod extrem de simplu. n acelai timp, pot fi
adugate mai multe script-uri pe acelai obiect de joc.
Exemplu (C#):
using UnityEngine;
using System.Collections;
public class PlayerScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Acum, dup ce am creat script-ul, el trebuie asignat assetului. Aceasta se face cu drag-and -drop pe obiectul de joc. Cu
script-ul asignat, se poate rula jocul.
Publicarea
Unity poate publica n Windows, OS X, i prin intermediul plug-in-ului Web Player. Web Player este un plug-in pentru
browsere care funcioneaz cu toate browserele cunoscute i ofer
aceeai performan cu aplicaia stand-alone pentru desktop.
Cu Unity Pro se poate publica pentru o gama mai larg de
platforme, incluznd: Android, iOS, Wii, Xbox One, Xbox 360,
PS3, PS4, Windows Store, Windows Phone, Flash.
Vuforia
Ce trebuie s tim despre Vuforia?
Vuforia are ncorporat n SDK-ul su mai multe tehnologii ce vin n ajutorul dezvoltatorilor. Printre acestea se numr
i Computer Vision, tehnologie prin care dezvoltatorii pot s
poziioneze i s orienteze obiectele virtuale, cum ar fi obiectele
3D n corelaie cu imaginile din lumea real cnd se realizeaz o
vizionare a acestora prin intermediul camerei unor dispozitive
mobile. Obiectul virtual urmrete poziia i orientaia imaginii
n timp real, astfel ca perspectiva utilizatorului asupra obiectului
va corespunde cu perspectiva imaginii target. Aadar, obiectul virtual va aprea ca parte a scenei din lumea real. Vuforia permite
cteva variaii de implementare ale realitii augmentate: modelul
17
programare
Realitatea virtuala mbuntit pe dispozitivele mobile
caracteristici cu cele ale imaginii pstrate ntr-o baz de date. n
momentul n care inta este recunoscut, aceasta va fi urmrit
ct timp se regsete n cmpul de vizibilitate al camerei foto/
video. Crearea intelor necesit acces n contul utilizatorului pe
site-ul Vuforia. intele sunt create din fiiere .jpg sau .png(RGB
sau greyscale). Caracteristicile sunt pstrate ntr-o baz de date,
fiind organizate n seturi de date.
18
programare
Introducerea i tuning-ul
Hadoop MapReduce
apReduce este principala tehnologie de procesare de date de volum mare a proiectului Apache Hadoop. A fost dezvoltat de ctre Google. n 2004, ei au publicat
un articol care descria conceptul MapReduce.
Tudor Lpuan
tudor.lapusan@telenav.com
Java & Big Data developer
@ Telenav
2 http://wiki.apache.org/hadoop/poweredby
3 https://hive.apache.org/
4 http://wiki.apache.org/hadoop/WordCount
19
programare
Introducerea i tuning-ul Hadoop MapReduce
Ptrunderea MapReduce.
Partea de reduce.
Partea de Map.
20
Dup ce execuia map-ului este ncheiat, este informat coordonatorul execuiei (jobtracker), care tie la care procese de reduce
s trimit fiecare partiie. Mai departe, reduce-ul are nevoie de
rezultatele a mai multor faze de map care ncep s fie copiate
odat ce acestea sunt finalizate.
Rezultatele funciilor de map sunt copiate direct n memoria JVM a funciei de reduce, dac sunt suficient de mici. n caz
contrar, acestea sunt copiate pe disc. Cnd tamponul n memorie
(in-memory) atinge o anumit dimensiune (controlat de mapred.
job.shuffle.merge.percent) sau atinge un numr maxim de rezultate de map (mapred.inmem.merge.threshold), este unit i vrsat
pe disc. Dac este specificat un combinator, acesta va fi rulat n
timpul unirii pentru a reduce cantitatea de date scrise pe disc.
Dac n final vom avea multiple fiiere de vrsare pe disc, acestea
sunt de asemenea unite n fiiere mai mari, sortate, pentru a economisi timp pentru mai trziu.
Cnd toate funciile de map sunt ncheiate i rezultatele lor
sunt copiate pentru fazele de reduce, intrm n faza de unire, care
unific toate rezultatele funciilor de map, pstrndu-le ordinea
de sortare dup cheie. Rezultatul acestei uniri servete drept
intrare pentru faza de reduce. n timpul fazei de reduce, funcia
de reduce este invocat pentru fiecare cheie din ieirea sortat.
threshold i mapred.job.reduce.input.buffer.percent.
Concluzie
5 http://www.meetup.com/big-data-data-science-meetup-cluj-napoca/
6 http://www.meetup.com/big-data-data-science-meetup-cluj-napoca/events/220876181/
21
programare
Tiberiu Nagy
tiberiu.nagy@betfair.com
Senior developer
@ Betfair
dat cu rspndirea arhitecturilor bazate pe evenimente, sistemele de mesagerie au devenit componentele de baz ale arhitecturilor enterprise. Deoarece
aplicaiile enterprise prelucreaz din ce n ce mai multe date, performana sistemelor de mesagerie devine din ce n ce mai important pentru buna funcionare a
aplicaiilor, necesitnd platforme rapide i scalabile. Apache Kafka este un sistem nou
de mesagerie, care se remarc drept una dintre cele mai performante soluii la momentul actual, putnd transfera pn la un milion de mesaje pe secund pe un grup de trei
maini de capacitate medie.
Kafka a fost dezvoltat iniial la
LinkedIn, ntr-o perioad n care
LinkedIn-ul migra de la o baz de date
monolitic la o arhitectur bazat pe servicii, n care fiecare serviciu i avea propriul
lui model de stocare a datelor. Una dintre
probleme care s-a ivit n timpul migrrii a
fost distribuirea n timp real a jurnalelor de
acces de pe serverele web ctre serviciul de
analiz a activitii utilizatorilor. Inginerii
de la LinkedIn aveau nevoie de o platform
care s poat transfera cantiti mari de
date ctre mai multe servicii, ntr-un timp
ct mai scurt. Platformele existente s-au
dovedit a fi ineficiente pentru volumul de
date de care dispuneau, aa c i-au dezvoltat propriul lor sistem de mesagerie,
sub numele Kafka. Ulterior, proiectul a
fost lansat open source i donat la Apache
Software Foundation. Dup lansare, Kafka
a fost adoptat de mai multe companii care
aveau nevoi similare de transfer de mesaje.
22
Arhitectura Kafka
n linii mari, un serviciu Kafka e format din mai multe maini care au rolul
de broker, ele reinnd mesajele publicate. Pe lng ageni, mai e nevoie i de un
grup de 35 maini care s ruleze Apache
23
programare
Sisteme de mesagerie performante Apache Kafka
fi procesat de un singur consumatori din
grup. Indexul ultimului mesaj procesat din
fiecare partiie se reine n Zookeeper, astfel c, dac un consumator iese din grup,
partiiile lui pot fi realocate altor consumatori, care poate relua procesarea de la
ultimul mesaj citit. Partiionarea distribuie
uniform sarcina n rndul brokerilor, dar
ce se ntmpl n cazul n care un broker
iese din grup sau devine inaccesibil? n
funcie de natura problemei, partiiile gzduite de el pot deveni inaccesibile sau se
pot pierde definitiv. Pentru a preveni astfel
de situaii, Kafka introduce conceptul de
partiii replica (replica partitions). Fiecare
partiie gzduit de un broker (numit de
acum ncolo partiie lider) poate avea una
sau mai multe replici. Acestea sunt partiii
la rndul lor, doar c sunt stocate pe ali
brokeri dect cea pe care se afl partiia
lider. Productorii nu pot publica n
replici, numai n partiii lider, iar brokerii
pe care gzduiesc partiiile lider se asigur
c orice mesaj primit e salvat i n replici.
n eventualitatea pierderii unui broker,
unul dintre replicile fiecrei partiii lider
de pe brokerul pierdut se promoveaz la
statutul de lider, astfel nct Kafka continu s funcioneze fr ntreruperi i fr
pierderi de date. Cnd brokerul e repus
n funciune, el i sincronizeaz partiiile
de la ceilali brokeri, dup care ncepe un
24
Concluzii
programare
atele spaiale sunt folosite pentru a reprezenta informaii despre locaia i forma
obiectelor geometrice. Aceste obiecte pot fi centrul unei locaii, reprezentat sub
forma unui punct, sau obiecte complexe: drumuri, ruri, orae sau ri.
Diana Muntea
diana.muntea@yardi.com
Software Developer
@ Yardi Romnia
25
programare
Date de tip spaial n SQL Server
de elipsoid folosit pentru desenarea hrilor. Identificatorul este
definit de standardul European Petroleum Survey Group (EPSG).
O coloan poate conine date spaiale cu SRID diferite, dar nu se
pot realiza operaii ntre date care nu au acelai SRID, i nu sunt
bazate pe aceeai unitate de msur i aceeai proiecie. Cea mai
comun unitate de msur este metrul sau metrul ptrat. Pentru
datele de tip geometric valoarea implicit pentru SRID este zero,
iar pentru cele de tip geografic este 4326 (acesta este folosit i de
ctre Google Maps API).
Date Geografice
CREATE TABLE myTable (
id int IDENTITY (1,1),
geographyData geography,
GO
INSERT INTO myTable (geographyData)
VALUES (geography::STPolyFromText(POLY
GON((-73.9998722076416 40.726185523600634,74.00708198547363 40.73860807461818,73.99824142456055 40.7466717351717,-73.97326469421387
40.74628158055554,-73.97309303283691
40.7269010214160, -73.9998722076416
40.726185523600634)), 4326));
Exemple
Date Geometrice
26
Radius search
S presupunem c avem o colecie de puncte definite prin latitudine i longitudine care reprezint diverse locaii. Acest tip de
cutare const n desenarea unui cerc, definit de un punct central
i o raz reprezentat ntr-o unitate de msur (metri). n acest
caz nu putem folosi dect date geografice, criteriul de cutare
Referine:
1.
2.
3.
4.
https://msdn.microsoft.com/en-us/library/bb933790.aspx
http://en.wikibooks.org/wiki/Geospatial_Data_in_SQL_Server
dotnetsolutions.co.uk/working-with-spatial-data-in-sql-server-2008/
https://devjef.wordpress.com/2013/01/12/geometry-vs-geography/
Punctul geografic
geoPoint = geography::STGeomFromText(POINT
(-96.8501 32.7639), 4326)
SELECT * from myTable
WHERE latitude < 32.7871617669569
AND latitude > 32.7500254131114
AND longitude < -96.8143320623701
AND longitude > -96.8584966119462
AND geoPoint.STDistance(
geography::STGeomFromText(
POINT(-96.836414337158146 32.768593590034193),
4326)) <= 2067
27
programare
ntr-un articol anterior pentru Today Software Magazine - Patru idei pentru
mbuntirea Software Design-ului-am scrisdespre faptulcavem tendina de
afacesoftware design care nu este orientat ctre utilizator.
Alexandru Bolboac
alex.bolboaca@mozaicworks.com
Agile Coach and Trainer, with a
focus on technical practices
@Mozaic Works
28
29
programare
Usable Software Design
Pregtete cam zece task-uri, dar
Aa arat unpachet funcional cnd utilizatori, mai exact de la dezvoltatori.
ateapt-te s finalizezi mai puine. este extins:
Exist dou metode pentru a obine: prin
retrospective i rulnd teste de usability.
Acum tim cum s identificm proIdeea nu este complet nou. Principiile
bleme.Sunt sigur c urmtoare ntrebare
precum claritate i consisten au fost
este...
folosite muli ani la rnd pentru a obine
Design mai bun. Ideea de usable Software
5. Cum arat Usable Software Design?
Design este totui o schimbare de perPentru nceput menionez c ideea
spectiv; a te gndi la dezvoltator ca la
de a se centra pe developer, ca utilizator
utilizatorul software design-ului i a ncerca
al Software Design-ului, este foarte nou.
Fiecare conine trei lucruri:
activ s obinem feedback de la el sunt
Am vzut discuii oarecum n jurul aces o clas de request,
demersuri care vor aduce modificri n
tui topic, i am contribuit i eu la unele.
o clas de controller,
modul n care ne organizm codul.
Literatura din trecut despre Software
o clas de view.
Design a atins acest subiect, dar nu n mod
Mulumiri!
explicit.
nc trebuie s gsesc un loc mai bun
Am fost inspirat s scriu acest artiExist totui foarte mult literatur pentru InvoiceFileNameGenerator, dup col dup multe conversaii cu: Sandro
despre usability. Voi meniona doar trei cum putei vedea limpede. Aceasta este Mancuso, Samir Talwar, participanii la
principii de baz ale usability-ului care se o nclcare a celui de al treilea principiu, SoCraTes UK, Rebecca Wirfs-Brock, Adi
aplic n Software Design:
reducerea surprizei.
Bolboac, Claudia Rosu i muli alii.
Claritate,
Consisten,
Consisten: Fiecare tip de clas trebuie V invit pentru o dezbatere mai apro Reducerea surprizei.
s aib o interfa consistent
fundat n cadrul Workshopului de
Am vzut mai devreme c un pachet Usable Software Design la I T.A.K.E.
Prezentm cteva exemple:
funcional const din trei tipuri de clase: Unconference 20151.
a clas de request, o clas de control1 h t t p : / / 2 0 1 5 . i t a k e u n c o n f . c o m / s e s s i o n s /
Claritate: Numete pachetele n funcie ler i o clas de view. Exist i un nivel alex-bolboaca-usable-software-design/
de denumirea funcionalitii (pachete mai ridicat de consisten la care se
funcionale)
poate ajunge, mai specific n interfaa
Iat un screenshot de la o aplicaie pe fiecreia dintre aceste tipuri de clase.
care o dezvolt. Poi spune ce face doar pe n acest exemplu, toate clasele de
baza numelor?
Request menionate mai sus au o
metod:response()Toate funciile controllers au o metod:render().Fiecare funcie
de controller folosete un view pentru a
reda informaia. Aceste interfee sunt consistente n toate pachetele funcionale.
Prima oar l-am auzit pe Sandro
Mancuso vorbind despre ideea aceasta la Gnduri finale
I T.A.K.E. Unconference 2014 (2014.itaUsable Software Design vor aduce
keunconf.com) i am fost foarte interesat dou beneficii economice majore:
s ncerc. Vd ideea ca pe un bun start n implementare mai rapid pentru task-urile
Usable Software Design.
comune i integrare mai uoar a oameniConsisten: Pstreaz o struc- lor noi n proiect.
tur consistent pentru fiecare pachet
Pentru a obine Usable Software
funcional
Design, avem nevoie de feedback de la
30
management
Vasile Selegean
vasile.selegean@isdc.eu
QA Officer
@ ISDC
presupunem c maina noastr de colecie are nevoie de un strat nou de vopsea. Sau
trebuie s zugrvim noua noastr cas. Vom angaja cei mai buni profesioniti, le vom
cere s foloseasc cele mai bune materiale de pe pia si chiar vom accepta s pltim un
pre mai mare dect media. Echipa angajat termin la timp, fr s depeasc bugetul. Toat
lumea e fericit i poate va fi i o mic petrecere de inaugurare! Dar, ntr-o lun sau dou, mici
pete de rugin sau crpturi apar n vopseaua proaspt.. Ce s-a ntmplat? Cea mai bun
echip nu a lsat suficient timp pentru stratul de suport s se usuce i au aplicat vopseaua dup
numai patru ore, nu ase, ct ar fi fost nevoie n conformitate cu specificaiile productorului.
Ce lipsete din acest scenariu este un
proces de execuie corect definit i urmrit
in timp. Nu a fost vorba despre un pas srit
n intregime, ceva ce s-ar fi putut observa la
timp pentru a fi corectat nainte de finalizarea lucrrii, doar o mica scpare ce nu prea
semnificativ n acel moment dar care, n
timp, s-a dovedit mai costisitoare dect ntrzierea ce s-ar fi ntmplat dac s-ar fi urmat
specificaiile.
31
management
Quality Assurance n Agile
n produsul final prin criteriile de calitate
amintite mai sus. Aceste criterii trebuie s
fie msurabile i metricile astfel obinute
vor fi folosite apoi att pentru evaluarea
calitii produsului n timpul ciclului de
dezvoltare i la momentul livrrii ct i ca
fundament pentru eventuale mbuntiri.
Calitatea unui produs este rezultatul
unui mix a tot ce contribuie la dezvoltarea respectivului produs: factorul uman
(echipa de proiect), echipamentul sau
tehnologia pe care acetia l/o folosesc i
procesul de lucru, prin care se transform
materia prim n produs final. Quality
Assurance i propune s gseasc acel
echilibru perfect ntre cei trei actori ce
contribuie la realizarea produsului.
Pna la urm calitatea este acel factor ce
poate face diferena ntre produsul nostru
i altele similare disponibile n piaa liber.
Cel mai probabil exist undeva n lume alte
organizaii cu acelai nivel de cunotine cu
al nostru; unele dezvolt produse similare
cu al nostru, unele mai ieftin, altele mai
repede. Nimic nu oprete un consumator
n anul 2015 s aleag cellalt produs. Doar
calitatea produsului propriu poate s fac
remarcat produsul care nu trebuie s fie
perfect nici nu exist produse perfectedar trebuie s rspund ct mai bine unei
nevoi a consumatorului i s fie puin mai
bun dect al concurenei.
Peter Leeson CMMI and Process
Improve me nt L ead Apprai s e r and
Instructor- a rezumat aceasta n articolul
Understanding Quality de pe blogul
personal1:
Understanding quality is the most
critical aspect of your job, whatever it
is. Quality is what differentiates your
products and services from the others. If
your sole focus - as reflected by measurements is quick and cheap, you will lose
the battle: there will always be someone
cheaper than you.
Asigurarea Calitii este un set de
activiti ce au ca scop includerea atributelor de calitate n produsul final. Este
nevoie de implicarea activ a tuturor celor
ce particip, indiferent de etapa din viaa
produsului, de nivelul de senioritate sau
de locul n organigram. Att timp ct
cineva poate influena dezvoltarea unui
produs sau serviciu, are i o responsabilitate n asigurarea calitii produsului
rezultat.
Asigurarea calitii se mparte n dou
1 www.qpit.net/blog/understanding-quality.html
32
acel scop fr prea multe devieri pe parcurs. Ajut de asemenea la stabilirea unor
responsabiliti clare fiecrui rol implicat
n procesul de dezvoltare. Prin definirea
clar a unui mod de lucru, indiferent c
vorbim despre dezvoltare propriu-zis,
despre felul n care sunt tratate defectele
sau despre implementarea unor metode
efective de monitorizare i control, se
poate reduce riscul repetrii acelorai
greeli pe parcursul dezvoltrii produsului sau n cazul unuia nou. Cnd exist
un traseu clar, msurabil, nspre scopul
final se pot observa mai uor eventualele
deviaii i permite s se intervin nainte
ca acestea s se transforme n adevrate
probleme pentru parcursul proiectului.
Este un mecanism de siguran ce poate
preveni sau reduce semnificativ daunele
ce pot s apar n unele cazuri. Un design
sau un proces de dezvoltare perfect nc
nu s-a inventat. ntr-adevr, cteodat
costurile de implementare ale unui proces
de calitate eficient pot fi i mai mari dect
beneficiile (cum ar fi de exemplu un proiect mic, ce se poate realiza ntr-o perioad
scurt iar corectarea eventualelor defecte
poate fi suportat cu uurin de ctre
organizaie). ntr-un astfel de scenariu o
firm se poate baza pe experiena echipei,
dar aceste cazuri sunt excepii i nu trebuie
generalizate.
Prin observarea i revizuirea continu a fiecrui aspect al produsului i a
modului de lucru, ntregul proces de dezvoltare prinde via i evolueaz n timp.
Metodologia Scrum se concentreaz asupra procesului de dezvoltare propriu-zis
a software-ului, dar aceasta nu e suficient
pentru crearea unui produs de succes.
Dac cineva ajunge s cunoasc cele
dou lumi (Agile/Scrum i metodologia
bazat pe procese) poate ajunge la un
moment evrika, n care i d seama c
acele dou lumi nu se exclud reciproc!
Poi defini un proces de lucru viu, care
33
management
Quality Assurance n Agile
evolueaz ca rspuns la schimbri, dup
modelul Agile. Sau, dac se alege Scrum
ca arm principal pentru dezvoltare,
tot trebuie s implementm un sistem
de management al calitii sau s ne asigurm c cerinele produsului acoper n
ntregime nevoile de business ale clientului. Acest fel de a privi lucrurile nu este
nou i nici foarte dificil de implementat!
Cea mai dificil ncercare este schimbarea
modului de a gndi al membrilor echipei,
s priveasc dincolo de task-ul curent sau
de obiectivele pe termen scurt. S faci
o ntreag echip s neleag c scopul
final nu este terminarea tuturor task-urilor la timp pentru demo ci construirea
unui produs de care cineva i va aminti i
peste doi-trei ani. n plus, toat experiena
ctigat n timpul proiectului nu se va
pierde i va putea fi folosit n viitor.
Iat ce spune Peter Leeson despre acest
subiect4:
Over the years, different terminologies have come into existence, which
are considered as the new way of doing
things. In theory, it means that people
have identified the weaknesses of the
way they are working and are therefore
trying to find a new, more successful
approach. In reality, it appears that the
weaknesses due to misunderstanding
and misapplication of basic principles
have led to results which are very different from what was originally expected.
We then get a group of people who
believe that the new approach is the
solution to all their previous problems
and start following it with religious fervour, throwing out anything which does
not correspond to the new vocabulary
and focusing only on applying what they
have understood from what they have
read in a book - soon they are producing
the same mistakes as previous generations and it becomes time for someone to
re-create the basic ideas...
n concluzie, la fel ca n multe aspecte
ale vieii de zi cu zi, adevrul este undeva
la miloc. Nu exist un adevr absolut i
niciun grup nu poate susine c are rspuns la orice ntrebare. Nu exist niciun
silver bullet sau panaceu pentru orice
ncercare ce am putea-o ntlni.
cess-agile-or-lean.html
34
Bibliografie
1.
2.
3.
4.
programare
Silviu Dumitrescu
silviu.dumitrescu@accesa.eu
Java Line Manager
@ Accesa
Diana Blan
Diana.Balan@accesa.eu
Java developer
@ Accesa
35
management
Dezvoltarea aplicaiilor securizate n Java
ncredere intr ntr-o aplicaie web.
aplicaia web genereaz dinamic o pagin web ce conine
date nesigure.
pe timpul generrii paginii web aplicaia nu previne datele
din coninutul executat de browser, precum JavaScript, tag-uri
HTML, atribute HTML, evenimente ale mouse-ului, Flash sau
ActiveX.
utiliznd un web browser, victima viziteaz pagina generat, ce conine un script maliios ce a fost injectat de date
nesigure.
script-ul care vine dintr-o pagin web ce a fost trimis de
serverul web, victima execut script-ul maliios n contextul
domeniului serverului web.
victima violeaz politica unui browser web, care spune c
script-urile dintr-un domeniu nu ar trebui s fie capabile s
acceseze resurse sau s ruleze cod ntr-un alt domeniu.
Urmtorul exemplu ilustreaz un atac XSS:
<%@page contentType=text/html
pageEncoding=UTF-8%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type
content=text/html; charset=UTF-8>
<title>Login Page</title>
</head>
<body>
<h2>Bine ati venit</h2>
<p>Va rog sa va logati</p>
<form method=GET
action=/XssExample/ProcessForm>
<b>Login Name: </b>
<input type=text size=12
maxlength=12 name=userName />
<br/>
<b>Password: </b>
<input type=text size=12
maxlength=12 name=password />
<br/>
<b>Locatia: </b>
<input type=text size=12
name=location /><br/>
<input type=submit value=Submit />
<input type=reset value=Reset />
</form>
<p><a href=http://localhost:8080/XSS/Pro
cessForm?userName=Bob&password=Smith&location=</
p>%3CScript%20Language%3D%22Javascript%22%3Ealert(%
22Ai%20fost%20atacat!%22)%3B%3C%2FScript%3E>Hacked
URL</a></p>
<p>URL Script text: %3CScript%20Lang
uage%3D%22Javascript%22%3Ealert(%22vei%20fi%20
atacat!%22)%3B%3C%2FScript%3E</p>
</body>
</html>
Respectiv servletul:
@WebServlet(/ProcessForm)
public class ProcessForm extends HttpServlet {
private static final long
serialVersionUID = -5014955266331211217L;
protected void processRequest(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(text/html;charset=UTF-8);
PrintWriter out = response.getWriter();
try {
out.println(<html>);
out.println(<head>);
out.println(
<title>Servlet de procesare</title>);
out.println(</head>);
out.println(<body>);
out.println(<h2>Prima pagina</h2>);
out.println(<p>sunteti logat ca: +
36
request.getParameter(userName) + </p>);
out.println(<p>si sunteti in: +
request.getParameter(location) + </p>);
out.println(</body>);
out.println(</html>);
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String
getServletInfo() {
return Servletul meu;
}
}
SQL Injection se
bazeaz pe date nefiltrate pentru a modifica
rezultatele SQL. Fie
urmtorul cod:
ResultSet rs =
stmt.executeQuery
(SELECT * FROM
DEMO.Table1 WHERE
NAME= + nameParam + AND AGE
= + ageParam +
);
Dac atacatorul
trimite: valori
OR a = a,
acesta va face predicatul de selecie adevrat,
ceea ce este echivalent
cu:
ResultSet rs =
stmt.executeQuery
(SELECT * FROM
DEMO.Table1);
Prin aceasta atacatorul poate accesa informaii confideniale sau chiar modifica
date din baza de date. De aceea orice input trebuie filtrat nainte
de utilizare.
OS command injection se bazeaz pe date nefiltrate ce modific o comand a sistemului de operare.
Fie urmtorul exemplu:
public class ListHomeDir {
public static void main(String[] args) {
String userName = Silviu;
String curLine = ;
try {
Process p = Runtime.getRuntime().exec(
cmd /c dir C:\\Users\\ + userName);
BufferedReader stdInput = new
BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader stdError = new
BufferedReader(new InputStreamReader(
p.getErrorStream()));
37
management
programare
Sebastian Boti
Sebastian.Botis@endava.com
Delivery Manager
@ Endava
38
programare
Lista de verificare
Design
Proces
Proces
Proces
Managementul
iteraiilor
Descriere
Sunt cerinele pregtite?
Product Owner-ul a identificat scopul proiectului?
Designul i arhitectura sunt deja
stabilite sau vor fi analizate ntr-o
iteraie separat?
Designul i arhitectura sunt determinate i echipa a neles acest
aspect?
Echipa a mai fost implicat n
traininguri Agile nainte? n caz
negativ, este necesar?
ntreaga echip este pregtit i
a neles Agile-ul nainte de a fi
implicai n proiect?
Scrum master-ul a neles matricele
care ar trebui folosite n proiectele
de tip Agile?
Scrum master-ul este informat despre cerinele din backlog?
Da/Nu
Managementul
iteraiilor
Managementul
Iteraiilor
Infrastructur
Infrastructur
Identificarea riscurilor
La nceputul unui proiect, riscurile proiectului sunt identificate dintr-o perspectiv larg. Lista de verificare (dac se creeaz)
ar putea fi de ajutor n identificarea acestora.
Planificarea riscurilor
39
management
testare
Abordare simpl a riscului n Scrum
Monitorizarea riscurilor
Toate riscurile identificate anterior, sunt revizuite i monitorizate n sesiunile dintre iteraiile proiectului. Lista de riscuri este
actualizat, marcndu-se acele riscuri care s-au nchis, sau adugndu-se riscuri noi identificate pe msura naintrii proiectului.
Aceste informaii sunt apoi folosite n sesiunile dintre iteraii.
Startul iteraiei
La nceputul unei iteraii, o edin despre managementul riscurilor este programat. Aceast edin este structurat n mai
multe etape ca: nelegerea, identificarea, analiz, prioritizarea
i maparea riscurilor. Fiecare etap are semnificaia ei. Aceast
discuie ar trebui s dureze 2 - 3 ore i ar trebui s includ toat
echipa. Concluziile discuiei similare la nivelul proiectului pot fi
folosite ca puncte de pornire pentru aceasta discuie.
Fiecare etap este detaliat mai jos.
40
Sondaje
Anul trecut, mai multe sondaje s-au efectuat n ntreaga lume,
implicnd diferii manageri de proiect de la companii mai mari
sau mai mici, despre riscuri i managementul acestora. Am gsit
recent un sondaj interesant din Europa de Est, incluznd aproxi- Concluzii
mativ 70 de manageri de proiect, cu obiectivul de a afla care sunt
Exist foarte mult informaie i foarte multe detalii despre
practicile uzuale relative al managementul riscurilor din manage- instrumente specifice folosite n identificarea, clasificarea (pe
mentul Agile al proiectelor.
baza unor indicatori cantitativi sau calitativi), i monitorizarea
riscurilor n timpul iteraiilor.
Rezultatele au fost urmtoarele:
Chiar dac utilizarea metodelor Agile reduce riscurile nc
67% din respondeni analizeaz riscurile proiectului din fazele iniiale ale dezvoltrii de software, trebuie s lum n
sptmnal.
considerare tendina actual de a include timp ntr-o manier
87% din respondeni susin c managerul de proiect este cel mult mai formalizat i pentru managementul riscurilor.
responsabil de managementul riscurilor.
27% din respondeni au susinut c n acelai timp, i proRisc este pauz n livrare, nu muncitori inactivi - Ken Rubin
duct owner-ul este responsabil de managementul riscurilor.
Resurse
41
design
n urm cu civa ani, mai exact n anul 2011, am obinut primul job ca UX Designer la o companie multinaional. De atunci
i pn n prezent am avut oportunitatea s lucrez cu diferite metodologii de dezvoltare ale unui design, reuind s descopr
plusurile i minusurile fiecreia.
n momentul de fa am ocupaia de
Dezvoltnd ideea, fiecare iteraie are
de implementare cu specificaii clare i
UX Designer ntr-un mediu Agile, ntr- caracteristicile sale:
complete i se transform n cele din
o echip de 17 designeri, care au ca scop
a. Prima iteraie este ntotdeauna
urm n produsul dorit de beneficiar.
principal livrarea celei mai bune experiene
partea n care se colecteaz toate
utilizatorilor, prin produsele software dezinformaiile necesare de la experii din
voltate de ctre companie.
domeniu asupra produsului pentru
Mediul mereu inovator n care am
care urmeaz s creez designul. Toate
ansa s lucrez i libertatea de a experiinformaiile sunt reverificate i de echip
menta diverse metodologii, mi-au permis
din punct de vedere tehnic. Apoi stabis ncerc noi procedee de a dezvolta un
lim ce funcionalitate se dorete, pentru
Iteraii n conceperea unui prototip
design. Comparnd cu metodele utilizate
ca ulterior s trasez prima schi a viin trecut, am decis ntr-un final s m
torului produs i s stabilesc flow-ul n
F i e c are d e s i g ne r are propr i i l e
opresc asupra uneia singure, pe care o concare designul proiectului se va desfura. preferine n ceea ce privete tool-urile de
sider cea mai bun pentru a livra un design
b. Urmtorul pas, iteraia a doua, se care se folosete pentru ndeplinirea taskde succes: utilizarea prototipurilor.
concentreaz n special pe interaciunea urilor i realizarea prototipurilor. Personal,
Aadar, consider c realizarea unui
utilizatorului cu prototipul i pe vali- eu prefer utilizarea tool-ului Axure pentru
produs trebuie s nceap mereu cu un
darea funcionalitii stabilite n prima a crea prototipuri i creionul i coala de
prototip, indiferent c produsul este de tip
iteraie. Ce urmrim n special n aceast hrtie ori de cte ori am nevoie s trasez
software sau de tip hardware. Prototipul
iteraie este modul n care prototipul o idee rapid. De ce Axure? Pentru c se
este cel care d o idee clar, o previzualieste utilizat de ctre publicul int, mai poate dezvolta cu ajutorul su un prototip
zare exact a produsului final. Prototipul
exact punem o prim versiune a acestuia html care va evolua ntr-un mod organic
este o clon, este un screenshot al produsula dispoziia sa i analizm modul de de la schie simple, n prima iteraie, la un
lui viitor, care va deveni complet funcional
interaciune. Urmrim dac utilizatorul prototip interactiv, cu design complet, gata
dup finalizarea implementrii.
se simte confortabil cu poziia anumitor de user-testing i implementare.
Pentru mine nu exist nici o excepie
elemente grafice, dac este obositor penTotui, tool-ul cel mai bun este cel alde la aceast regul. Pentru fiecare protru utilizare ndelungat, dac identific turi de care te simi cel mai confortabil i
iect la care lucrez, pornesc de la o idee de
uor componentele eseniale, etc. .
cu care i poi realiza designurile ntr-un
ansamblu, proiectat pe o bucat de hrtie,
c. n final, n ultima iteraie a pro- timp rezonabil. Ceea ce conteaz cu adevajungnd pn la momentul n care pot s
cesului de design, concentrarea este rat este rezultatul final, un design uor de
furnizez un prototip al produsului final, n
asupra detaliilor vizuale i a finis- neles, utilizabil i implementabil.
cele mai mici detalii, indiferent c acesta
rii detaliilor prototipului realizat.
Realizarea unui prototip are doar
este o machet interactiv a unui website
Prototipul primete forma comerci- avantaje i din experienta mea cu diverse
sau o simulare 3D a unui obiect.
al, prin elemente grafice complexe i modaliti de lucru, este o metod preferaProcesul se desfoar n iteraii, cu
repoziionarea componentelor, dac bil n detrimentul realizrii unui produs
fiecare iteraie prototipul cptnd mai
este necesar, pe baza feedbackului rezul- pe principiul mergem nainte, implemenmulte detalii, devenind mai puternic,
tat din analiza interaciunii utilizatorilor tm din mers i mbuntim pe parcurs.
pn n momentul n care este considerat
cu acesta. Colectarea acestui feedback Beneficiarul produsului va ti exact ce
funcional i gata pentru implementare.
este esenial, ntruct, n momentul n intr n producie i ce va primi la finalul
care designul este validat, trece n etapa acesteia.
42
Concluzie
Ctlin Timofti
ctimofti@sdl.com
UX Designer
@ SDL
43
programare
rocesarea fiierelor relativ mari nu este o operaie att de uoar care s poat fi realizat prin apelul la instrumente, care au
tradiie n aceste chestiuni, precum Hadoop, maini foarte puternice, librrii pentru concuren, altele dect cele standard Java.
Folosirea acestora are drept efect costuri suplimentar de timp, de bani i de personal specializat.
Soluia aplicat:
Chronicle. Java Chronicle.
Ce dorete s fie acest tehnologie:
Comunicare ntre procese ( IPC ) cu laten foarte mic de sub o
milisecund i capabil s salveze fiecare mesaj.
44
Proces:
1. creeaz cronica (IndexedChronicle).
ChronicleConfig config = ChronicleConfig.DEFAULT.
clone();
Chronicle entitiesChronicle = new
IndexedChronicle(path, config);
writeListEntityMessages(messages, out);
out.writeStopBit(-1);
}
Concluzii
10. deserializm:
public void readMarshallable(@NotNull Bytes in)
throws IllegalStateException {
StringBuilder valueToRead = new StringBuilder(100);
boolean hasId = in.readBoolean();
if (hasId) {
entityUuid = readUuidValue(valueToRead, in);
}
messages = readListEntityMessages(in);
in.readStopBit();
}
Vasile Mihali
vasile.mihali@arobs.com
entitiesChronicle.close();
entitiesChronicle.clear();
Nr. linii
FileEntity
(adiacent)
BusinessEntity1 BusinessEntity2 S c r i e r e n C i t i r e d i n
(adiacent)
(adiacent)
c ron i c c ron i c
(millis)
(millis)
1068107 (~200M)
850
5000
5000
5000
5000
918
350
2136214 (~400M)
1312
10000
10000
10000
10000
1290
448
12817284 (~2.3G)
7423
60000
60000
60000
60000
5071
1530
25634568 (~4.7G)
13382
120000
120000
120000
120000
9026
3154
45
programare
fost o vreme cnd tehnologiile NoSQL erau considerate un trend, un termen la mod, n esen ceva care nu era aplicabil n
viaa de zi cu zi. n ziua de azi ns, cred c NoSQL nu mai reprezint o moda i chiar i companiile de dimensiune medie
se confrunt cu problema volumului cresctor de date. n aceast situaie, scenariul migrrii de la o baz de date relaional
la una de tip NoSQL devine tot mai comun datorit avantajului principal al acestor tehnologii: posibilitatea de a scala aplicaiile n
clustere.
cqlsh:demo>
Acest articol va prezenta cum se instaleaz o baz de date de cqlsh:demo> select * from users where id = 1;
tip Cassandra i cum se poate crea un cluster Cassandra prin adid | name
ugarea mai multor noduri. Vom vedea cum se utilizeaz linia de ----+-----1 | John
comand, cum arat limbajul de interogare (CQL) i un exemplu
de clas Java care folosete un client API Cassandra. n final vom (1 rows)
discuta despre limitrile acestei soluii NoSQL, modul cum acestea pot fi depite i cteva recomandri generale.
Singurul aspect necunoscut din exemplul de mai sus ar trebui
s fie conceptul de keyspace care se aseamn cu schema din baza
Cum se instaleaz Cassandra
de date Oracle i conine informaii despre cum trebuie replicate
Baza de date Cassandra este una din cele mai utilizate baze datele n cluster-ul de Cassandra.
de date NoSQL oferind cele mai bune rezultate pentru scalarea
performanei i posibilitatea de a distribui n mod partiionat setul Clustere Cassandra
de date pe nodurile din cluster n mod gratuit (licena Apache
Pentru a putea scala performana unei aplicaii, Cassandra
2.0). Urmtorul grafic creat de compania DataStax compar 5 permite configurarea de clustere de noduri Cassandra. Prin utilidin cele mai utilizate soluii NoSQL din care reiese performana zarea cluster-elor o aplicaie poate beneficia de un grad ridicat de
superioar a bazei de date Cassandra n ceea ce privete creterea disponibilitate, o scalare liniar a performanei i de o interfa
volumului de date procesate odat cu creterea numrului de simpl de acces ctre o multitudine de servere de cost redus fr
noduri din cluster.
un punct unic de eec (single point of failure).
n cadrul unui context de cluster se pot defini cantitatea de
date pe care un anumit nod poate s o proceseze (prin intermediul token-ilor) i pe care nod din cluster s ajung o anumit
nregistrare. Gradul de disponibilitate al cluster-ului se poate
regla prin intermediul strategiei de replicare care indic numrul
de copii (replica) al fiecrui rnd dintr-un tabel ce trebuie s existe
n cluster la un moment dat.
Pentru a crea un cluster Cassandra simplu, editai fiierul
cassandra.yaml i completai urmtoarele valori:
46
legal
# Node 1 Configuration
cluster_name: Test Cluster
seed_provider:
- class_name: org.apache.cassandra.locator.
SimpleSeedProvider
parameters:
- seeds: 16.22.70.184
listen_address: 16.22.70.184
# Node 2 Configuration
cluster_name: Test Cluster
seed_provider:
- class_name: org.apache.cassandra.locator.
SimpleSeedProvider
parameters:
- seeds: 16.22.70.184
listen_address: 16.22.70.193
Cod Java
n exemplul de mai sus, codul client se conecteaz la clusterul Cassandra utiliznd nodul contact primit (n acest caz, maina
local) care are rolul de a-i descoperi clientului topologia clusterului. Dup ce obiectul Session a fost obinut putem construi i
executa interogri ntr-un mod foarte asemntor cum am face
cu o baz de date Oracle.
Metoda getUsers execut interogarea CQL i returneaz toate
rndurile ca i rezultat (a se folosi doar pentru un numr mic de
rnduri n tabel deoarece foreaz aducerea tuturor rndurilor din
tabel odat). API-ul DataStax permite i mecanismele avansate de
execuie a interogrilor prezente n clienii tradiionali ai bazelor
de date cum ar fi prepared i batch statements (cu toate acestea
avei grij, batch-urile nu trebuiesc utilizate pentru performan)
i setri cum ar fi fetch size i selectarea unor politici de reconectare i rencrcare.
Pe lng construcia de statement-uri CQL, DataStax ofer
API-ul QueryBuilder care permite crearea dinamic a interogrilor cu beneficiul de a elimina atacurile de tip injection. Metoda
getUsersUsingQueryBuilder ilustreaz acest mecanism.
Rezultatul rulrii metodei CassandraTestClient.main() trebuie
s fie:
[Row[1, John]]
[Row[1, John]]
Cu toate c baza de date Cassandra ofer multe avantaje comClasa de mai jos se conecteaz la instana local de Cassandra parativ cu soluiile clasice de tip relaional, prezint de asemenea
i interogheaz utilizatorii din tabelul creat anterior prin linia de i cteva dezavantaje semnificative. Punctele slabe ale acestei
comand.
soluii sunt:
i. Fr tranzacii,
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
ii. Fr JOIN-uri,
import com.datastax.driver.core.Row;
iii. Fr
interogri complexe.
import com.datastax.driver.core.Session;
import com.datastax.driver.core.querybuilder.QueryBuilder;
import com.datastax.driver.core.querybuilder.Select;
import java.util.List;
Fr tranzacii
47
programare
Apache Cassandra, Primii Pai
tranzacie (de fapt, conceptul de tranzacie nu exist), cu toate
acestea, asigur aceste proprieti la nivelul unui rnd de tabel.
Avnd n vedere natura bazei de date Cassandra (column-oriented key-value store), garania la nivel de rnd are sens din punct
de vedere al design-ului deoarece ntr-o baza de date NoSQL de
acest tip fiecare rnd ar trebui s reprezinte o entitate complexa
ntreag (iar accesul atomic i izolat la acea entitate ar trebuie s
fie suficient pentru a asigura consistena datelor).
n ceea ce privete consistena datelor la nivel de cluster, Cassandra ofer posibilitatea de a folosi diferite nivele de
consisten pentru citire i scriere. Aceste nivele pot fi rezumate
la urmtoarea idee: Cte noduri din cluster trebuie s confirme
operaia de citire/scriere?
De asemenea, pentru a ajuta programatorii n a asigura
consistena datelor, ncepnd cu Cassandra 2.0, s-a adugat
conceptul de tranzacie lightweight. Cu toate c numele este
promitor, functionalitatea permite operaii de tip compare and
set cum ar fi crearea unei inregistrri noi doar dac nu exist
deja sau actualizarea unei inregistrari dac o anumit condiie
e indeplinit.
Despre problema lipsei tranzaciilor, cunoscutul programator i autor, Martin Fowler, spune c nu trebuie privit ca
i un dezavantaj major fiindc n majoritatea cazurilor utilizarea tranzaciilor pe perioade mari de timp poate afecta serios
performana. Astfel n [9] el propune soluia de offline lock n care
setul de date este versionat iar fiecare commit necesit verificarea
informaiei de versiune pentru setul de date implicat n operaie.
Urmtoarea diagram prezint un exemplu pentru acest
concept.
Fr interogari complexe
Concluzie
NoSQL reprezint un pas important n dezvoltarea mecanismelor de persistare a datelor care necesit o schimbare n modul
care trebuie s gndim aplicaiile. Fie c o facem din necesitate
sau din curiozitate programatic, consider c NoSQL este o tehnologie ce merit nvat.
Bibliografie
1.
2.
Fr JOIN-uri
48
3.
4.
5.
6.
7.
8.
sergiu-mircea.indrie@hp.com
Software Engineer
@ HP
testare
ecesitatea de a scrie cod care s poat fi rulat pe mai multe platforme nu este o veste nou. Ideea a stat la baza mainii virtuale din Java, la platforma Mono. Aceast nevoie este amplificat de apariia sistemelor de operare mobile IOS i Android.
Windows Mobile nu face obiectul acestui articol, dei o bun parte din platformele enumerate sunt compatibile. Un numr
imens de aplicaii exist pentru ambele platforme, o bun parte din ele ncercnd s pstreze aceeai interfa, n ciuda specificului
vizual al platformei.
Existena a dou platforme separate de dezvoltare pentru
aceeai aplicaie mai are un dezavantaj important, contracarat
parial poate de cazurile aplicaiilor care necesit performane
maxime: necesitatea de a avea echipe separate de dezvoltare, cu
expertiz n limbaje diferite (Objective-C i Java) care trebuie sincronizate din punct de vedere al managementului, pentru a oferi
funcii i experien similar pentru utilizatorii celor dou sisteme de operare. Nevoia ridicat pentru o platform de dezvoltare
unitar a generat o puzderie de soluii: Xamarin (probabil cea mai
popular soluie, bazat pe C#), PhoneGap (HTML5/JavaScript),
Appcelerator (JavaScript), Sencha, Corona, etc. .i pentru c testarea automat are exact aceeai nevoie, din aceleai motive,
soluiile nu au ntrziat s apar. n cele ce urmeaz vom discuta
despre Appium, una dintre cele mai eficiente soluii. (Calabash
este o alt soluie care adreseaz aceleai probleme, dar ntr-un
mod diferit).
n mod tradiional, testele automate pentru Android folosesc
framework-ul uiautomator de la Google, o soluie care folosete
Java ca limbaj de programare, sau monkeyrunner, o unealt mai
simpl bazat pe Python. Testele de IOS folosesc UI Automation
API, soluie oferit nativ de Apple ce folosete JavaScript ca limbaj. Ambele soluii necesit cunotine relativ ridicate despre
specificul platformei, dar problema principal este faptul c nu
exist compatibilitate ntre ele. Orice tester care va scrie teste
automate pentru ambele platforme va trebui s cunoasc dou
limbaje de program, s ntrein dou medii de testare diferite,
s ntrein dou seturi separate de teste, chiar i n cazul n care
flow-ul este exact acelai pe ambele platforme. Urmtorul pas
nspre unificarea mediului de testare a fost apariia Selendroid,
respectiv ios-driver, soluii bazate pe Selenium WebDriver API,
respectiv pe protocolul JSON Wire. Cu alte cuvinte, aceste soluii
sunt un middleware situat ntre testarea automat bazat pe
soluiile native i codul familiar din Selenium WebDriver. ns
aceste soluii nu rezolv complet problemele iniiale, reducnd
doar limbajul de programare la Java.
Unificarea real a mediului de dezvoltare de testare automat
Arhitectura Appium
49
testare
Appium - testare automat cross-platform pentru dispozitive mobile
@BeforeMethod
testelor. n principal vorbim de faptul ca testele de IOS pot fi exe- public void setUp(){
File app = new File(appFolder, myApp.apk);
cutate doar pe platforma MAC OSX, din cauza dependenei de
DesiredCapabilities capabilities =
XCode (desigur, se pot executa remote de pe o main Windows).
new DesiredCapabilities();
Pe de alt parte testele de Android pot fi executate de pe maini
capabilities.setCapability(platformName,
folosind Windows, OSX sau Linux, condiia principal fiind
MobilePlatform.ANDROID);
capabilities.setCapability(deviceName,
instalarea i configurarea Android SDK pe maina respectiv.
Totul ncepe cu pregtirea testelor, o practic adesea folositoare este crearea unei clase printe gen BaseTest care va fi
motenit de clasele de test. Aici este locul unde putem face
configurarea iniial pentru suita de teste ntr-o metod care
are annotation-ul @BeforeSuite, pentru fiecare test generic n
metoda marcat cu @BeforeTest i, desigur, partea de tearDown.
Cea mai simpl variant ar cere instanierea unui obiect de tipul
AppiumDriver (sau AndroidDriver/IOSDriver n versiunile mai
noi) n metoda de setup a testelor, a ataa acestui obiect un obiect
DesiredCapabilities care practic furnizeaz informaii despre
dispozitivul folosit. Acest obiect va fi folosit pe parcursul testului pentru a trimite comenzi spre dispozitivul mobil i pentru
a extrage informaii. Odat testul finalizat, obiectul va fi nchis
explicit n metoda de teardown. Mai jos, v oferim un exemplu
pentru o tablet Nexus 10:
50
Nexus 10);
capabilities.setCapability(platformVersion,
5.0.1);
capabilities.setCapability(app,
app.getAbsolutePath());
capabilities.setCapability(appPackage,
org.myapp.demo;);
capabilities.setCapability(appActivity,
org.myapp.SplashActivity);
capabilities.setCapability(noReset, false);
AndroidDriver driver = new AndroidDriver(
new URL(http://127.0.0.1:4723/wd/hub),
capabilities);
Pentru a simplifica nelegerea exemplelor, n continuare listm ierarhia poriunii din ecran, pentru ambele platforme:
Android
<android.widget.RelativeLayout
resource-id=org.myapp.demo:id/signin_layout
class=android.widget.RelativeLayout
package=org.myapp.demo>
<android.widget.EditText text=JohnDoe
resource-id=org.myapp.demo:id/signin_email_text
class=android.widget.EditText
package=org.myapp.demo/>
<android.widget.EditText
resource-id=org.myapp.demo:id/signin_password_text
password=true class=android.widget.EditText
package=org.myapp.demo />
<android.widget.TextView
resource-id=org.myapp.demo:id/signin_result
class=android.widget.TextView
package=org.myapp.demo/>
<android.widget.Button text=Sign In
resource-id=org.myapp.demo:id/signin_ok_button
class=android.widget.Button
package=org.myapp.demo contentdesc=SignInButton/>
</android.widget.RelativeLayout>
51
testare
Appium - testare automat cross-platform pentru dispozitive mobile
assertTrue(screen.hasErrorMessage());
assertEquals(screen.getErrorMessage(),
Invalid credentials);
assertTrue(screen.isSignInBtnVisible());
}
Aceast organizare a testelor ajut mult la mentenan, adesea modificrile din UI necesitnd doar modificare a criteriilor
de identificare a elementelor n clasele care modeleaz ecranele
aplicaiei, testele funcionnd corect fr modificare, presupunnd desigur c nu exist schimbri n flow-ul aplicaiei). Un alt
plus important este faptul c testul devine uor de citit i c se
observ uor paii i validrile. Desigur, devine simplu de implementat BDD pentru a simplifica mai mult testele -acolo unde
se poate aplica- folosind unul din tool-ulurile existente pe pia
sau implementnd o variant proprie. Criteriile de identificare
a elementelor pot fi xpath, id, name, className i UIAutomator.
Acest ultim criteriu folosete din plin API-urile IOS (predicates)
i Android pentru a identifica elementele cnd celelalte variante
nu sunt optime. Uneori acest tip de identificare necesit un studiu
prealabil al specificaiilor implementrii (n special IOS predicates), oferind flexibilitate foarte mare i complexitate pe msur.
Concluzii
52
Vasile Pop
vasile.pop@intel.com
Software Engineer
@ Intel Romnia
diverse
m nceput s scriu la acest articol cu gndul la cum va arta tehnologia n viitor, la modul n care putem s anticipm i s ne
pregtim pentru schimbrile care vor avea loc n anii ce urmeaz. Oamenii de tiin caut astzi s descopere care va fi viitorul tiinei, tehnologiei, economiei i societii pentru a putea identifica arii de cercetare strategic care pot genera beneficii n
economie i n societate.
Analiza orientat spre tehnologiile viitoare (FTA- Future oriented Technology
Analysis) se definete ca un set de activiti
care faciliteaz luarea unor decizii i
declanarea unor aciuni coordonate n
special in domeniul tiinei, tehnologiei i
inovaiei (Eerola and Miles, 2011).
Cine este interesat de o astfel de analiz? s-ar putea ntreba unii. La momentul
actual, analiza orientat spre tehnologiile
viitoare este un subiect important pe agenda
U.E sau a companiilor multinaionale.
Industriile mari unde analiza orientat
ctre viitor este des ntlnit sunt: energie
i mediu, tehnologia informaiei, comerul
online, producie i roboi, medicin i biogenetic, transport, spaiu.
53
diverse
Analiza pentru tehnologiile viitoare
aciune.
Se folosete cel mai adesea n planificarea produselor de ctre
companii.
Previziunea (Foresight) abilitatea de a prezice ce se va
ntmpla sau de ce va fi nevoie n viitor. Este disciplina care trebuie aplicat exclusiv de experi pentru a putea avea ncredere n
rezultatele analizei.
Experii analizeaz orice informaie pentru a identifica
poteniale previziuni. La acest nivel se va stabili o strategie care
implic de multe ori un mecanism participativ. Abordrile
tradiionale nu mai sunt la fel de relevante. Planul este cel mai
puin important element care se adaug rezultatelor la final.
Este important de menionat c nu se discut despre un viitor
predeterminat ci despre explorarea modului n care poate evolua
viitorul n funcie de aciunile i deciziile care se iau n prezent.
Avem mai jos prezentat contextul n care are loc previziunea.
Biografie
1.
2.
3.
4.
5.
54
Ioana Armean
ioanaa@imprezzio.com
Business Analyst
@ Imprezzio Global
sponsori
powered by