Você está na página 1de 40

OVA Tehnologii specifice

Dezvoltare software agil vs. tradiional


Agilitate: necesitate, avantaje, modaliti de

obinere
Dezvoltare sw agil i tradiional
Tradiional
Agil
Agil vs. Tradiional

Modele agile de dezvoltare sw


SCRUM
XP

Agilitate, necesitate,
avantaje ...
agilitatea organizaiei reprezint un element

cheie n obinerea avantajului strategic


existena unei arhitecturi agile la nivelul
organizaiei
reducerea timpului de dezvoltare a unor procese
noi i creterea flexibilitii proceselor existente
scderea timpului de rezolvare a cererilor
clienilor, creterea numrului clienilor, costuri
sczute de adaptare i n final la creterea
veniturilor organizaiei

Agilitate, necesitate,
avantaje ...
Organizaia agil necesit arhitecturi agile,

tehnici agile, metode agile, instrumente agile


pentru a putea reaciona rapid la cerinele de
schimbare
Arhitectura de ntreprindere (Enterprise
Architecture) - o descriere riguroas a structurii
unei organizaii, a descompunerii sale n
subsisteme, a relaiilor dintre subsisteme, a
relaiilor cu mediul extern, precum i a
principiilor care trebuie avute n vedere pentru
proiectarea i evoluia organizaiei

Niveluri arhitecturale
Arhitectura de afaceri cele mai importante

procese de afaceri
Arhitectura informaional aplicaiile, datele
i maniera de integrare a acestora
Arhitectura tehnologic - tehnologiile care vor
fi acceptate prin arhitectura informaional
pentru platforme de operare, reele, diversele
aplicaii, colaborare, reprezentarea i
manipularea datelor, integrare, securitate i
managementul sistemelor

Principii arhitecturale
Standarde
Cadre de lucru (framework-uri) - o descriere a

componentelor EA, precum i a componentelor


externe, aparinnd mediului n care este
proiectat, dezvoltat i implementat EA (clenii,
piaa, industria, oportunitile, concurena,
autoritile)
Modele arhitecturale (principii, servicii,
standarde, concepte, componente, moduri de
vizualizare i configuraii)
Instrumente de dezvoltare

Principii arhitecturale
Nr. crt.

Principiul

Cerine (EA trebuie s)

Promovarea brandului

ajute organizaia s creasc gradul de satisfacie a clienilor i popularitatea denumirii/


brandului acesteia

Sustenabilitatea financiar

ajute organizaia s acapareze noi surse de finan are

Consolidarea afacerii

Extinderea pe alte piee

Reacia rapid la cerinele pieii/ clienilor

ajute organizaia s i conduc afacerea ntr-o manier ct mai riguroas


ajute organizaia s se impun pe noi piee i s se adapteze ct mai repede la
caracteristicile acestora
ajute organizaia s introduc pe piat ntr-un timp ct mai scurt produse noi pentru a
satisface nevoile mereu n schimbare ale clienilor

mbuntirea produciei

Stabilirea partenerilor (stakeholderi)

8
9

ajute organizaia astfel nct afacerea s foloseasc ct mai puine resurse;

ajute organizaia astfel nct s fie capabil s nlocuiasc/adauge un furnizor n timp ct


mai scurt i cu pierderi ct mai mici
ajute organizaia s simplifice procesele de afaceri, micornd astfel timpul de desfurare
Simplificarea proceselor
a acestora;
ajute organizaia s realizeze tranzacii la costuri ct mai reduse, pstrnd n schimb
Eficiena din punctul de vedere al costurilor
acelai grad (sau chiar unul mai bun) de funcionalitate

10

Optimizarea arhitecturii

ajute organizaia s beneficieze de o reducere a costurilor folosind noile tehnologii


aprute. De aceea, trebuie aleas i folosit cea mai bun soluie pentru EA din cele
existente. Daca exist deja o variant de EA, aceasta va trebui s poat fi optimizat.

11

Abordarea la nivel global

ajute organizaia s realizeze i s menin legturi cu stakeholderi aflai la mare distan


(de exemplu, localizai pe alte continente)

12

Multiple servicii, la mai multe niveluri de


calitate QoS (Quality of Services)

ajute organizaia s i construiasc o platform care s suporte mai multe servicii (este
mai ieftin, de exemplu, pentru companie s dein o reea care accept transferul simultan
de date de tip voce, video i date). EA trebuie s ajute organizaia s ofere mai multe
niveluri de calitate, carre vizeaz tranzaciile, produsele i clienii.

13

Scalabilatea arhitecturii

14

Reconfigurarea arhitecturii

15

Unificarea arhitecturii

permit organizaiei s adauge rapid funcionaliti specifice ntr-o manier care s vizeze
un grad ridicat de compatibilitate i o alocare eficient a costurilor.
sprijine organizaia (ntr-un mod rapid i eficient din punct de vedere al costurilor) pentru
a face fa nevoilor de afaceri prin reconfigurarea EA.
ajute organizaia s i creeze o infrastructur de reea consistent i bine proiectat.

Cadre de lucru utilizate


frecvent
Zachman (model de referin taxonomie

pentru sistemele informaionale ale afacerilor


din industrie)
TOGAF (The Open Group Architecture
Framework)
FEA i DoD TRM (Department of Defense
Technical Reference Model)

Cadrul TOGAF

Principalele modele arhitecturale

Modelul CBDI SAE (Service


Architecture and Engineering)
Pentru EA orientate pe SOA octombrie 2006
n 2008 apare o versiune detaliat folosind

UML (compania Everware-CBDI) http://www.cbdiforum.com/


Scop: legtura ntre SOA i alte modele, soluii
i tehnologii pentru afaceri
Structur: este vzut ca un model UML n care
arhitectura conine dou elemente principale perspectivele (view-uri) i practicile.

Modelul arhitectural SAE

Abordri n obinerea
agilitii
Business Process Management (BPM) pentru

orchestrarea funcionalitilor independente


Service-Oriented Architecture (SOA) pentru
arhitectura proiectrii i implementrii acestor
funcionaliti
Decision Management (DM) pentru
managementul deciziilor organizaiei

Drumul spre o afacere agil trece


prin:
Controlul continuu al dinamicii evoluiei:
Proceselor de afaceri proprii
Resurselor umane
Sistemului informaional
Service-Oriented Integration (SOI) prin SOA

(SOA ofer agilitate prin ncapsularea logicii


aplicaiei n servicii)

Influena orientrii pe
servicii

Agilitatea afacerilor
Agilitatea
Agilitatea TIC
TIC

Agilitatea
Agilitatea
proceselor
proceselor de
de
afaceri
afaceri

Managementul Tehnologia
afacerilor
informaiei
strategie
structur, cultur
procese de
afaceri

infrastructur
aplicaii
arhitecturi

Agilitatea
Agilitatea resursei
resursei
umane
umane

Resursa
uman

roluri
capabiliti
caracteristici

Orientarea pe
servicii

Dezvoltare software agil i


tradiional: direcii
sistemele trebuie interconectate ntr-o

manier slab cuplat;


oamenii de afaceri trebuie s defineasc
procesele de afaceri n timpul rulrii, folosind
metadate pentru a controla i a compune
sistemele suport;
interaciunile dintre sisteme trebuie s fie
declanate de evenimente.

Dezvoltare sw
tradiional: faze
Analiza cerinelor i estimarea duratei de

realizare (odat cu anticiparea posibilelor


probleme)
Proiectarea i planificarea arhitectural
(identificarea problemelor poteniale)
Dezvoltarea (cod scris/generat), parial
testare
Testarea (interaciunea direct cu
beneficiarul)

Dezvoltare sw tradiional: +/Avantaje

Dezavantaje

Definirea detaliat a
cerinelor

Lipsa de flexibilitate la schimbare

Documentaia este
important

Exist mai puine oportuniti


pentru inovare

Ofer detalii de
planificare

Testare comprimat

Cantiti cunoscute

Schimbare inhibat

Dezvoltare sw agil:
piloni
a)
b)
c)
d)

implicarea timpurie a clientului;


dezvoltare iterativ;
echipe de auto-organizare;
adaptare la schimbare.

Dezvoltare sw agil:
metode
Crystal methodologies
dynamic software development method
feature-driven development
lean software development
Scrum
eXtreme Programming
...

PDV:

Ipoteza
fundamental

Stilul de
management
Managementul
cunotinelor
Comunicarea
Modelul de
dezvoltare

Structura
organizaional

Dezvoltare tradiional

Dezvoltare agil

Software-ul adaptiv de nalt


Sistemele sunt pe deplin
calitate este dezvoltat de echipe
specificabile, previzibile i sunt mici, care utilizeaz principiile
dezvoltate printr-o planificare
de mbuntire continu a
extins i meticuloas
proiectrii i testrii pe baza
feedback-ul rapid i a schimbrii
Comand i control

Leadership i colaborare

Explicit

Tacit

Formal
Modelul ciclului de via
(cascad, spiral sau modele
modificate)

Informal
Modelul evolutionary-delivery
Organic (flexibil i
participativ, ncurajeaz

Mecanic (birocratic cu
formalizare mare), care vizeaz aciunea social de cooperare),
organizaiile mari
care vizeaz organizaiile mici i
mijlocii

PDV:

Dezvoltare tradiional

Dezvoltare agil

Controlul calitii

Planificare grea i control strict.


Testarea grea, trzie

Control continuu al cerinelor,


proiectrii i soluiilor. Testare
continu

Cerinele
utilizatorului

Sunt detaliate i definite nainte


de codificare/implementare

Culegere interactiv

Costul relurii

Ridicat

Sczut

Direcia de
dezvoltare

Fix

Modificabil uor

Testare

Dup finalizarea complet a


codificrii

La fiecare iteraie

Implicarea clientului

Sczut

Ridicat

Nimic n particular

Abiliti interpersonale i
cunotine de baz legate de
afacere

Abiliti
suplimentare cerute
la dezvoltatori

PDV:

Dezvoltare tradiional

Dezvoltare agil

Scara adecvat a
proiectului

Scar larg

Scar de la sczut pn la
medie

Orientai pe plan, cu abiliti


adecvate, au acces la
cunotine externe

Agili, care au cunotine


avansate, colocai i
cooperani

Cu acces la cunotine,
cooperani, reprezentativi i
mputernicii

Dedicai, care dein


cunotine, cooperani,
reprezentativi i mputernicii

Cunoscute din timp, foarte


stabile

Foarte emergente, cu
schimbri

Proiectare pentru cerinele


curente i previzibile

rapide
Proiectare pentru cerinele
curente

Costisitoare
Echipe i proiecte mari
Siguran ridicat

Necostisitoare
Echipe i proiecte mici
Valoare rapid

Dezvoltatori

Clieni

Cerine
Arhitectur
Remodelare
Dimensiune
Obiective primare

Metodologiile Crystal
O familie de metode pentru echipe de diferite

dimensiuni i critice: Clear, Yellow, Orange,


Red, Blue. Metoda cea mai agil, Crystal
Clear, se concentreaz pe comunicarea n
echipe mici care dezvolt software non-critic.
Dezvoltarea prezint apte caracteristici:
livrare frecvent, mbuntire reflexiv,
comunicare osmotic, siguran personal,
concentrare, acces uor la utilizatorii experi i
la cerinele pentru mediul tehnic.

Dynamic software development


method (DSDM)
mparte proiectele n trei etape: pre-proiect,

ciclul de via a proiectului i post-proiect. La


baza DSDM stau nou principii: participarea
utilizatorilor, mputernicirea echipei de proiect,
livrare frecvent, abordarea nevoile curente
ale afacerii, dezvoltare iterativ i
incremental, permite inversarea
schimbrilor, scopul de nivel nalt care este
stabilit nainte de nceperea proiectului,
testare de-a lungul ciclului de via,
comunicare eficient i eficace.

Feature-driven
development
Combin dezvoltarea condus de model cu

dezvoltarea agil, cu accent pe modelul obiect


iniial, divizarea muncii n funcionaliti i
proiectarea iterativ a fiecrei caracteristici
(funcionaliti). Pretinde a fi potrivit pentru
dezvoltarea sistemelor critice. O iteraie a
unei funcionaliti const din dou etape:
proiectare i dezvoltare.

Scrum
Se concentreaz pe managementul de proiect, n

situaiile n care planificarea iniial este dificil,


cu mecanisme pentru ''controlul procesului
empiric", unde buclele de feedback constituie
elementul de baz. Software-ul este dezvoltat de
o echip (care se auto-organizeaz) n trepte
(numite sprinturi''), ncepnd cu planificarea i
terminnd cu evaluarea. Caracteristicile care
urmeaz a fi implementate n sistem sunt
nregistrate ntr-o list de comenzi nerezolvate.
Apoi, proprietarul produsului decide pe baza listei
care sunt elementele care trebuie s fie
dezvoltate n urmtorul sprint. Membrii echipei
coordoneaz activitatea lor ntr-o edin de
nceput zilnic. Un membru al echipei

Extreme programming (XP; XP2)


Se concentreaz pe cele mai bune practici n

dezvoltare i const din 12 activiti: jocul de


planificare, mici lansri, metafor, proiectare simpl,
testare, refactoring, programare pereche, proprietatea
colectiv, integrare continu, sptmna de 40 de ore,
clieni on-site i standarde de codificare. Versiunea
revizuit XP2" const din urmtoarele ''practici
primare": ntreaga echip, spaiu de lucru informativ,
lucru sub tensiune, programare pereche, poveti, ciclul
sptmnal, ciclul trimestrial, dezvoltare 10 minute,
integrare continu, proiectare incremental .a. Exist,
de asemenea, 11 practici corolare.

Principiile metodelor
agile
1. Satisfacerea clienilor, prin livrarea rapid de software utilizabil;
2. ntmpinarea modificrii specificaiilor, chiar i trziu n

implementare;
3. Software-ul utilizabil este livrat frecvent (la nivel de sptmni);
4. Software-ul utilizabil reprezint principala msur a progresului;
5. Dezvoltare susinut, capabil s pstreze un pas constant;
6. Cooperare apropiat ntre dezvoltatori i clieni;
7. Conversaia fa-n-fa este cel mai bun mod de comunicare;
8. Proiectele sunt construite de indivizi motivai, credibili;
9. Simplitate;
10. Echipe organizate individual;
11. Adaptare la circumstane schimbtoare;
12. Atenia constant pentru excelenta tehnic i design bun.
Februarie, 2001 Agile
Manifesto

Metodologia SCRUM
primii care o prezint: Schwaber i Beedle
este o metod iterativ i incremental
scopul este de a ajuta echipele de dezvoltare

s i concentreze atenia asupra obiectivelor


stabilite i de a minimiza munca depus de
acetia pentru rezolvarea sarcinilor mai puin
importante
se bazeaz pe dou elemente: autonomia
echipei i adaptabilitate

SCRUM - avantaje
economisirea de timp i bani;
rapiditatea implementrii i uurina de a corecta

eventualele erori;
vizibilitatea implementrii proiectului;
feedback continuu de la client;
uurina de a face fa schimbrilor;
ntlnirile zilnice duc la o apreciere mai bun a
productivitii individuale;
problemele sunt identificate n fazele de nceput, deci
pot fi rezolvate mai rapid;
este mai uor s se livreze un produs de calitate n
timpul planificat.

SCRUM -dezavantaje
dac nu exist o dat fix de finalizare, acionarii

proiectului vor tinde s cear din ce in ce mai multe


funcionaliti;
dac membrii echipei nu sunt contiincioi, proiectul fie
va eua, fie nu se va finaliza niciodat;
dac o cerin nu este bine definit, costurile
proiectului i timpul alocat nu pot fi apreciate corect;
este recomandat pentru proiecte mici i rapide,
ntruct se pliaz mai bine pe echipe mici de oameni;
dac unul din membrii echipei pleac n timpul
implementrii, acest lucru poate avea efect invers
asupra dezvoltrii proiectului.

eXtreme Programming
(XP)
este o metodologie uoar pentru echipe mici

spre medii, care dezvolt produse software pentru


care cerinele sunt vagi sau schimbtoare - Kent
Beck, creatorul noiunii de programare extrem
este un model modern de dezvoltare, inspirat din
RUP
se preteaz pentru proiecte cu cerine dinamice
trebuie s existe un parteneriat ntre client i
programatori
nu genereaz foarte mult documentaie

XP activiti principale
Codificare principala activitate;
Testare orice modul implementat trebuie

testat;
Ascultare (comunicare) programatorul
trebuie s comunice cu clientul pentru a
nelege necesitile acestuia;
Proiectarea realizarea unei arhitecturi
corecte a sistemului va eficientiza sistemul i
va reduce dependenele care nu sunt
necesare ntre diferitele module ale sistemului

XP - avantaje
XP livreaz proiectri i software de calitate n timpul

programat realist;
un nivel ridicat de calitate prin testarea n ntregime a
tuturor aspectelor;
ncurajarea lucrului n echip programatorii lucreaz n
perechi n care ambii au un singur monitor i o tastatur;
nivel sporit de satisfacere a clientului, datorit modului
n care sunt captate cerinele acestuia;
design-ul este simplu proiectarea nu se face pentru
ceva viitor ci pentru ceva prezent;
test-case-uri uor de neles;
ntregul proces de dezvoltare este vizibil i msurabil.

XP - dezavantaje
este greu de realizat Extreme Programming este dificil

strngerea unui numr de programatori care s accepte


aceast practic i este nevoie de mult disciplin pentru
ca toi sa duc la bun sfrit un proiect cu aceast
abordare;
software-ul din ziua de astzi este foarte mare i
complex, lucru ce face grea proiectarea incremental
abordat de XP;
XP pune accent pe refactorizare n timpul procesului de
implementare, fapt ce poate scdea din productivitatea
altor aspecte;
dezvoltare bazat pe cod, n loc s fie bazat pe proiectare;
lipsa documentaiei de proiectare.

Tem seminar:
1. Pentru proiectul ales la tema anterioar,

detaliai activitile conform modelului de


dezvoltare software identificat i elaborai
documentaia de realizare a proiectului
(pn la faza de implementare) folosind
platforma MS SharePoint 2013 (la seminar)
2,5 puncte

Você também pode gostar