facultatea de informatică universitatea “al.i.cuza” - iaşi practică - cursul i – adrian...
TRANSCRIPT
![Page 1: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/1.jpg)
Facultatea de Informatică
Universitatea “Al.I.Cuza” - Iaşi
Practică - Cursul I –
Adrian Iftene
![Page 2: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/2.jpg)
2
CONŢINUT Prezentarea generală; modalitatea de notare Alegerea platformei; licenţierea codului Stil de programare; organizarea proiectului Testare; unităţi de testare Persitenţa: XML, baze de date Modele de dezvoltare; analiza cerinţelor UML; modele de proiectare Controlul versiunilor, lucrul în echipă
![Page 3: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/3.jpg)
3
Desfăşurare Scop: Realizarea unui proiect (program de o
complexitate medie) Cerinţe în realizarea proiectului:
Folosirea unui stil de programare (elegant) Realizarea unei arhitecturi clare Realizarea unor scenarii de Testare
Nota se obţine exclusiv la laborator Termenele limită:
Lab 1: discutarea intenţiei de proiect Lab 2: predarea documentului cu scenariile utilizare Ultimul Laborator: prezentare proiect
![Page 4: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/4.jpg)
4
Notarea Prezentarea finală:
Trimitere arhivă zip cu surse + documente adiţionale la adresa [email protected]
Nu se fac prezentări de proiecte în sesiune Prezentări în sesiunea de restanţe: rezoluţie admis-
respins. Se pot folosi resurse externe (cod, biblioteci), dar
se va documenta şi discuta cu conducătorul de laborator.
În caz contrar: nota mica, refacere disciplina etc.
![Page 5: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/5.jpg)
5
Exemple de Teme date în Anii Anteriori:
1. MP3 Playlist Generator
2. Admitere
3. Evidenta Populatiei, evidenta stocurilor
4. Editor de (Di)Grafuri
5. Simulator de Automate
6. Salarizare si Gestiunea Personalului
7. Orar
8. Dictionar Enciclopedic Multimedia
9. Generarea aleatoare a retetelor culinare
10. Jocuri
11. Pagini Web
![Page 6: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/6.jpg)
6
Alegerea Platformei şi a Mediului de Dezvoltare
Sistem de operare: Windows, Linux, UNIX, Solaris, MacOS etc.
Tehnologia de dezvoltare nativ (C/C++), Java, .NET etc.
Mediu de dezvoltare Visual Studio, JDeveloper, NetBeans,
KDevelop etc.
![Page 7: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/7.jpg)
7
De ce trebuie ţinut cont?
Costul: cost necesar implementării soluţiei (dezvoltatori), cost necesar adoptării soluţiei (utilizator)
Disponibilitatea platformei Cunoaşterea platformei de către dezvoltatori Portabilitate
![Page 8: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/8.jpg)
8
Sistem de operare: Windows Produs de firma Microsoft:
http://www.microsoft.com http://www.thocp.net/companies/microsoft/microsoft_
company.htm Cel mai raspandit SO pentru PC-uri (90%)
http://www.itfacts.biz/index.php?id=P1059 Closed-source (deschis pentru guverne) Orientare recenta spre interoperabilitate
http://www.microsoft.com/mscorp/execmail/2005/02-03interoperability.asp
Baza de aplicaţii foarte puternică Contestat:
http://www.gnu.org/philosophy/microsoft.html http://www.eubusiness.com/afp/050225135302.vy8d5vux
![Page 9: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/9.jpg)
9
Sistem de operare: GNU/Linux Produs de ... hm...
http://www.linux.org/ http://www.li.org/linuxhistory.php
Promotor al filozofiei open-source http://www.gnu.org/philosophy/
Producători şi susţinători: Debian, RedHat, SuSe, Mandrake, IBM http://www.debian.org/social_contract http://news.com.com/2100-1001-825723.html
Contestat: http://www.microsoft.com/resources/sharedsource/Articles/Licensi
ngBasics.mspx
http://www.groklaw.net/staticpages/index.php?page=20031016162215566
![Page 10: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/10.jpg)
10
Sistem de operare: MacOS Produs de Apple
http://www.apple.com http://www.apple-history.com
Closed-source Cunoscut pentru puternice aplicaţii multimedia
http://www.apple.com/macosx/applications/photoshop/ http://www.apple.com/itunes/
Contestat: http://www.computer-dictionaryonline.org/Boycott%20Apple.htm
?q=Boycott%20Apple
http://www.gnu.org/philosophy/apsl.html
![Page 11: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/11.jpg)
11
Sistem de operare: UNIX Revendicat de SCO
http://www.sco.com
Unul dintre cele mai vechi sisteme de operare, renumit pentru stabilitate, scalabilitate şi performanţă.
SCO este la originea unei mari agitaţii, prin procesul intentat IBM în care Acuza IBM ca ar introdus “secrete UNIX” în Linux http://sco.tuxrocks.com/Docs/IBM/complaint3.06.03.html
SCO atacă constituţionalitatea licenţei GPL http://www.thescogroup.com/copyright/ http://www.linuxworld.com/story/44643.htm
![Page 12: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/12.jpg)
12
Întrebări Care este viitorul platformei pe care o aleg? Cine altcineva mai foloseşte această platformă? Ce se întâmpla daca platforma pe care am ales-o
ajunge la sfârşitul vieţii? Ce se întâmpla daca va trebui sa migrez spre o alta
platformă? Ce se întâmpla daca am probleme şi am nevoie de
ajutor? Cât mă costă pe mine şi pe utilizatori folosirea
unei anumite platforme? ... etc.
![Page 13: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/13.jpg)
13
Tehnologia de dezvoltare: nativ
C/C++ Avantaje
Viteza Încrederea
Dezavantaje Probleme cu portabilitatea API greoi pentru tehnologii moderne: XML,
GUI Poate fi privită ca demodată
![Page 14: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/14.jpg)
14
Tehnologia de dezvoltare: Java
Java Avantaje
Portabilitate Limbaj modern, puternic (J2SE, J2EE)
Dezavantaje Viteza Gestionarea Memoriei
![Page 15: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/15.jpg)
15
Tehnologia de dezvoltare: .NET
C#, VisualBasic etc. Avantaje
Limbaje moderne, puternice Suport Microsoft, tehnologie cu bătaie lungă Aparent mai rapide ca Java
Dezavantaje Portabilitatea: Doar pe Windows... http://www.mono-project.com/about/index.html
![Page 16: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/16.jpg)
16
Medii de dezvoltare
VisualStudio .NET: http://msdn.microsoft.com/vstudio/
JDeveloper: http://www.oracle.com/technology/products/jdev/index.html
NetBeans: http://www.netbeans.org/ KDevelop: http://www.kdevelop.org/ ... multe altele
![Page 17: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/17.jpg)
17
Total Cost of Ownership: TCO http://www.webopedia.com/TERM/T/TCO.html http://www.solutionmatrix.com/tcogoA.html TCO: Costul total de proprietate Costul original al echipamentelor şi programelor Costul pentru îmbunătăţirea echipamentelor şi
programelor Costul întreţinerii Costul pentru suport tehnic Costul instruirii
![Page 18: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/18.jpg)
18
În rezumat, ce tehnologie voi folosi eu?
În general: depinde de tipul de proiect... Dar: la Practică sunt acceptate doar tehnologiile la
care Facultatea de Informatică şi membrii Facultăţii de Informatică (studenţi, cadre didactice) pot avea acces în mod gratuit.
Asta înseamnă: Tehnologii Microsoft:
http://msdn.microsoft.com/academic/ Tehnologii Open-Source (i.e. GNU/Linux), Java:
http://ftp.iasi.roedu.net/mirrors/ http://java.sun.com
![Page 19: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/19.jpg)
19
Licenţierea programelor
Programe close-source Unicat La bucată
Programe open-source http://www.opensource.org/ http://www.gnu.org/ http://www.apache.org/
![Page 20: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/20.jpg)
20
ConcluziiCe se face la Practică? La Practică sunt prezentate tehnologiile necesare pentru a crea un
proiect intr-un limbaj la alegere (C++, Java, C#, Python). Scopul este crearea unui proiect cu o arhitectura clara, implementat folosind un stil de programare elegant si care foloseste unitati de testare automata.
Ce nu se face la Practică?
La Practică nu se preda un limbaj de programare (C++, Java), o biblioteca de dezvoltare (MFC, wxWindows, Swing) sau un IDE (Visual Studio, NetBeans). Invatarea acestor lucruri cade in sarcina studentului, functie de tipul de proiect pe care si l-a ales. La curs si la laborator vor fi oferite resurse pentru a indruma invatarea. Scop: "invat sa invat" (o constanta a meseriei de programator).
Ce sa fac pentru a nu promova?
Nu discut proiectul cu conducatorul de lucrari astfel incat atunci cand se fac prezentarile finale acesta nu stie cine sunt si cu ce ma ocup.
Ce sa fac pentru a lua o notă (foarte) mică?
Imi proiectez programul ca si cum nu as fi aflat nimic de la curs, scriu codul la intamplare si nu fac unitati de testare. Daca excelez, se poate chiar ca nota foarte mica sa nu fie de trecere!
Alegerea platformei de dezvoltare
Windows, Linux (distributions), FreeBSD, Apple Costuri si beneficii (termen scurt, mediu, lung). Portabilitate.
Alegerea licenţei de distribuţie a programului
Closed-source, open-source (GNU (L)GPL, Apache licence, BSD licence). Strategii de "marketing".
![Page 21: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/21.jpg)
21
Proprietarul dreptului de autor Dreptul de autor asupra unui program-calculator
aparţine autorului cu condiţia ca acesta să nu fie într-una dintre excepţiile: Atribuţii de servici Contracte şi granturi de cercetare Proiecte, lucrări diplomă, dizertaţii ale studenţilor ((co) autor) Utilizarea resurselor facultăţii
Dacă un program-calculator este realizat în colaborare, atunci dreptul de autor aparţine coautorilor acestuia.
Dacă un program-calculator este realizat şi modificat în timp de către diferiţi angajaţi şi studenţi ai facultăţii astfel încât este imposibil de determinat cine este autorul, atunci dreptul de autor asupra programului aparţine facultăţii.
![Page 22: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/22.jpg)
22
Modele de Dezvoltare
Pentru a dezvolta un program este nevoie de: O înţelegere clară a ceea ce se cere Un set de metode şi instrumente de lucru Un plan de acţiune
Plan de acţiune = şablon = model de dezvoltare
![Page 23: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/23.jpg)
23
Etapele Dezvoltării Programelor
Analiza cerinţelorProiectarea arhitecturalăProiectarea detaliatăScrierea codului Integrarea componentelorValidareVerificare Întreţinere
![Page 24: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/24.jpg)
24
Analiza Cerinţelor
Se stabileşte ce anume vrea clientul ca programul să facă
Scopul este înregistrarea cerinţelor într-o manieră cât mai clară şi mai detaliată
Probleme Comunicare Negociere Sfătuirea clientului
![Page 25: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/25.jpg)
25
Proiectarea Arhitecturală Proiectarea arhitecturală
Din motive de complexitate, programele mari nu pot fi concepute şi implementate ca o singură bucată
Programul este împărţit în module sau componente mai simple, care pot fi abordate individual
Proiectarea detaliată Se proiectează fiecare modul al aplicaţiei, în
cele mai mici detalii
![Page 26: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/26.jpg)
26
Implementare, Integrare
Implementare Proiectul detaliat este transpus intr-un limbaj
de programare Acesta se realizează modular, pe structura
rezultată la proiectarea arhitecturală Integrare
Modelul big-bang Modelul incremental
![Page 27: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/27.jpg)
27
Validare şi Verificare
Validare: ne asiguram ca programul îndeplineşte cerinţele utilizatorului. Construim produsul corect?
Verificare: ne asigurăm că programul este stabil şi că funcţionează corect din punctul de vedere al dezvoltatorilor. Construim corect produsul?
![Page 28: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/28.jpg)
28
Întreţinere
După livrare Sunt descoperite greşeli ce trebuie
reparate Pot apare schimbări în specificaţii Pot apare noi cerinţe
Întreţinere = gestionarea acestor tipuri de probleme
![Page 29: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/29.jpg)
29
Modele de dezvoltare Cum efectuam activităţile indicate de etapele
dezvoltarii programelor Exemple de modele de dezvoltare:
Ad-hoc: descurca-te cum poţi Modelul în cascadă (cu feedback) Prototipizare Metode formale Modelul în spirală RUP (Rational Unied Process) XP (Extreme Programming)
![Page 30: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/30.jpg)
30
Modelul în cascadăIngineria Cerinţelor
Proiectarea Arhitecturală
Proiectarea Detaliată
Implementare
Testarea Unităţilor
Testarea Sistemului
Acceptare
![Page 31: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/31.jpg)
31
Modelul în cascadă
+: Împarte o sarcină complexă în paşi mai mici
+: Uşor de administrat şi controlat +: Fiecare pas are ca rezultat un
produs bine definit -: Erorile se propagă între paşi -: Nu exista mecanisme de reparare a
erorilor
![Page 32: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/32.jpg)
32
Modelul în cascadă cu întoarcere
Ingineria Cerinţelor
Proiectarea Arhitecturală
Proiectarea Detaliată
Implementare
Testarea Unităţilor
Testarea Sistemului
Acceptare
![Page 33: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/33.jpg)
33
Modelul în Cascadă cu Întoarcere
+: Oferă cadrul pentru remedierea erorilor din pasul precedent
-: Erorile la pasul i care sunt descoperite la pasul i + 2 nu sunt remediate
-: Clientul vede produsul final abia la sfârşitul dezvoltării
![Page 34: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/34.jpg)
34
Modelul în Spirală Studiul de fezabilitate Analiza cerinţelor Proiectarea arhitecturii Implementarea
Pentru fiecare pas, se fac următoarele activităţi:
1 : pregătirea[take stock]
2 : gestiunea riscului[dealing with risk]
3 : dezvoltarea[development]
4 : planificareaurmătorului stagiu[planning]
![Page 35: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/35.jpg)
35
Modelul în Spirală
+: Păstrează avantajele modelului în cascadă
+: Ia în calcul noţiunea de risc Exemple de riscuri:
O firmă concurentă lansează un produs rival Un arhitect părăseşte echipa Clientul schimba cerinţele O echipă nu respecta termenele de livrare
![Page 36: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/36.jpg)
36
Prototipizare
Tipuri de prototipuri De aruncat (throw-away)
Scop: clarificarea specificaţiilor Se dezvoltă repede, orice altceva e secundar (quick-
and-dirty) Util în a rezolva “architecural/technology spikes” Programul “adevărat” este scris apoi de la 0
Evoluţionar Scop: construire incrementală a produsului final Se construieşte un nucleu funcţional la care se
adaugă apoi noi funcţionalităţi
![Page 37: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/37.jpg)
37
Prototipizare Avantaje
Se poate elimina lipsa de claritate a specificaţiilor Clienţii pot schimba cerinţele (e ieftin de gestionat) Întreţinere ieftină (verificare pe parcurs) Se poate facilita instruirea utilizatorilor
Dezavantaje Mediu artificial, probleme ascunse Da' nu-i aproape gata?! De ce mai durează atât? Putem să schimbăm specificaţiile? Pai aş vrea şi... Adică munca mea este aruncată la gunoi?
![Page 38: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/38.jpg)
38
Extreme Programming Extreme Programing (XP) este o model modern, uşor
(lightweight), de dezvoltare, inspirat din RUP. Dezvoltarea programelor nu înseamnă ierarhii,
responsabilităţi şi termene limită, ci înseamnă colaborarea oamenilor din care este formată echipa
Membrii echipei sunt încurajaţi să-şi afirme personalitatea, să ofere şi să primească cunoaştere şi să devină programatori străluciţi
XP consideră că dezvoltarea de programe înseamnă în primul rând scrierea de programe (fişierele PowerPoint nu se pot compila).
![Page 39: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/39.jpg)
39
Idei majore in XP Echipa de dezvoltare nu are o structură ierarhica. Fiecare
contribuie la proiect folosind maximul din cunoştinţele sale. Scrierea de cod este activitatea cea mai importantă. Proiectul este în mintea tuturor programatorilor din echipa, nu în
documentaţii, modele sau rapoarte. La orice moment, un reprezentant al clientului este disponibil
pentru clarificarea cerinţelor. Codul se scrie cât mai simplu. Se scrie cod de test întâi. Daca apare necesitatea rescrierii sau aruncării de cod, aceasta se
face fără milă. Modificările aduse codului sunt integrate continuu (de câteva ori
pe zi). Se programează în echipă (programare în perechi). Echipele se
schimbă la sfârşitul unei iteraţii (1-2 săptămâni). Se lucrează 40 de ore pe săptămână, fără lucru suplimentar.
![Page 40: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/40.jpg)
40
Revenim...
Etapele dezvoltării programelor Analiza cerinţelor Proiectarea Scrierea codului Testare Întreţinere
Toate etapele dezvoltării programelor depind de analiza cerinţelor.
![Page 41: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/41.jpg)
41
Începutul unui proiect Un proiect poate începe:
cu o idee a clientului cu o idee a unei echipe de dezvoltare
Aceasta idee poate fi: clara, bine definita vaga, prost definita
Pentru a continua cu succes, este nevoie de ingineria cerintelor.
![Page 42: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/42.jpg)
42
Specificaţia bună Spune ce trebuie facut, nu cum Este clara (neambigua) Este suficient de detaliata Este completa Exemplu (sau contraexemplu?): Scrieti un
program Pascal care ofera functionalitatea unei agende telefonice personale. Ar trebui sa implementeze functii pentru cautarea unui numar si pentru introducerea unui nou numar de telefon. Programul va oferi o interfata utilizator prietenoasa.
![Page 43: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/43.jpg)
43
Detalii de implementare la analiză?
NU Clientul nu este competent in detalii tehnice Clientul nu poate fi de acord in cunostinta de cauza cu
stipularile tehnice din specificatii (Stiu secretarele COM? Stiu soferii ciclul Carnot?).
E necesar sa restrangem multimea posibilelor solutiile tehnice?
DA Este nevoie sa integram intr-un sistem existent Timpul de dezvoltare depinde de implementare Intretinerea (costul) depinde de implementare
![Page 44: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/44.jpg)
44
Responsabilităţile Analistului sa extraga si sa clarifice cerintele clientului sa ajute la rezolvarea diferentelor de opinie
intre clienti si utilizatori. sa sfatuiasca clientul despre ce este tehnic
posibil sau imposibil sa documenteze cerintele sa negocieze si sa obtina o intelegere cu
clientul.
![Page 45: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/45.jpg)
45
Activităţile Analistului
Ascultare: Inregistreaza cerintele clientului. Reflectare: Traduce cerintele in limbaj
tehnic. Verifica pertinenta. Scriere: Se cade de acord asupra
formularilor. Repeta pana cand se ajunge la o intelegere
cu clientul in ceea ce priveste cerintele.
![Page 46: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/46.jpg)
46
Probleme Potenţiale
Procesul iterativ poate fi lung si complicat Negocieri (dure) Diferenta culturala dintre client si analist Diferente intre cerintele clientului si ale
utilizatorilor Filmele SF vazute de client Filmele SF vazute de programatori
![Page 47: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/47.jpg)
47
Rezultatul Analizei Document de specificare a cerintelor Acest document este folosit ca referinta Provocari
Nivelul de detaliu Mare: mai precis, obtinut mai greu, munca inutila Mic: prea vag, nu poate ghida eficient dezvoltarea
Audienta documentelor 2 versiuni: una pentru client, alta pentru dezvolatori?
Notatia folosita Informala, semiformala, formala
![Page 48: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/48.jpg)
48
Tipuri de Cerinţe Cerinte functionale
Ce trebuie sa faca sistemul Cerinte privind datele
Formatul datelor la intrare/iesire Formatul datelor din interiorul sistemului
Constrangeri Cerinte de respectat ad-literam Influenteaza direct implementarea
Recomandari Ajuta la luarea deciziilor de proiectare cand sunt mai
multe optiuni
![Page 49: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/49.jpg)
49
Exemple Cerinte functionale
Sistemul se va opri in maxim 5 secunde dupa ce temperatura procesorului atinge 80 grade Celsius.
Sistemul va permite cautarea si afisarea titlurilor cartilor scrise de un anumit autor.
Cerinte privind datele Datele vor fi exportate in format XML Datele din tampoanele de intrare si iesire vor fi criptate
Constrangeri Implementarea se va realiza folosind un limbaj orientat obiect. Metodologia de dezvoltare va fi Prototipizare
Recomandari Se va folosi cat mai putina memorie
![Page 50: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro](https://reader035.vdocuments.pub/reader035/viewer/2022081504/56649e855503460f94b88681/html5/thumbnails/50.jpg)
50
Link-uri Utile: Pagina cursului: http://thor.info.uaic.ro/~adiftene Ovidiu Gheorghieş: http://thor.info.uaic.ro/~ogh