Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian...

50
Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene [email protected]

Transcript of Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian...

Page 1: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro.

Facultatea de Informatică

Universitatea “Al.I.Cuza” - Iaşi

Practică - Cursul I –

Adrian Iftene

[email protected]

Page 2: Facultatea de Informatică Universitatea “Al.I.Cuza” - Iaşi Practică - Cursul I – Adrian Iftene adiftene@info.uaic.ro.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

50

Link-uri Utile: Pagina cursului: http://thor.info.uaic.ro/~adiftene Ovidiu Gheorghieş: http://thor.info.uaic.ro/~ogh