Definirea/continutul metodologiilor
o Etape/procese de realizare
o Fluxul realizarii
o Strategiile de lucru
o Reguli de formalizare
o Tehnici, proceduri, instrumente, norme si standarde de utilizare
o Modalitati de conducere a proiectului
Modele de parcurgere in cascada:
o Parcurgere secventiala cu eventuale reveniri;
o Mica complexitate
o Proces iterativ
Model de parcurgere in spirala:
o Elaborare completa, rapida si la cost scazut a unui prototip initial pe care se vor aplica
modificari
Model de parcurgere cu extensii:
o Pentru sisteme ce pot functiona partial, pe subsist
o Se integreaza extensii succesive sau simultane
o Extensiile se ramifica din etapa de proiectare a SI
Model de parcurgere evolutiv
o Se utilizeaza in cadrul SI complexe
Model de parcurgere compozita (ciclul in V)
o Varianta a modelului cascada
o Latura stanga se parcurge descendent – etape de dezvoltare
o Latura dreapta se parcurge ascendent – validare
Metodologia unificata de realizare a SI (RUP)
o Ghid care arata cum se poate utiliza practic UML
o A fost realizat de catre Rational si este dezvoltat de catre IMB
Fazele RUP:
o Din grafic – axa orizontala reprezinta timpul / aspectele dinamice ale procesului
o Pe axa verticala – aspecte statice ale procesului – activitati, produse, fluxuri
Faza de explorare initiala:
o Poate avea o intindere insemnata in proiectele noi
o Creeaza o viziune de ansamblu
o Documentul produs este viziunea;
o Genereaza un: glosar initial al cazurilor de utilizare, un glosar intial al proiectului, o
evaluare initiala a riscului, un plan al proiectului, un model de afaceri, etc
Faza de elaborare:
o Conturarea arhitecturii de baza
o Rezultatul cerintelor principale si a riscurilor asociate
o Rezultatele:
Un model al cazurilor de utilizare aproape complet
Cerinte suplimentare care sa cuprinda cerinte nefunctionale
O descriere a arhitecturii sistemului
Un prototip executabil;
Faza de constructie:
o Dezvoltarea efectiva
o Implementare
o 3 iteratii: managementul resurselor, controlul procesului, dezvoltarea si testarea
o rezultate:
produsul soft
manuale de utilizare
descriere versiune actuala
faza de tranzitie:
o cuprinde testarea finala, pregatirea lansarii si efectuarea de modificari minore
o configurarea si reglarea SI
o finalizarea documentatiei, testarea la client, modificari minore
o rezultate:
plan de instalare
note finale
documentatie
C V – identificarea cerintelor SI
calitate slaba cerinte = esec proiecte – putin timp alocat intelegerii problemelor + dorinta de a
furniza cat mai repede o solutie tehnica;
probelmatica ingineriei cerintelor:
o identificarea
o documentarea
o analizarea
dificultatile apar din – intelegerea insuficienta a partii de logica a aplicatiei
trebuie avute in vedere 2 aspecte legate de cerintele unui sistem:
o folosirea unui limbaj tehnic
o relatia cu obiectivele afacerii
exista 2 tipuri de cerinte:
o descriptive: legi ale naturii sau constrangeri fizice, etc
o prescriptive;
categorii de cerinte:
o functionale
o non functionale – tipuri:
calitatea serviciilor
siguranta
securitate
o integritate
o confidentialitate
o disponibilitate
fiabilitate
performanta
o timp
o spatiu
o cost
interfata
o interactiunea cu utilizatorul
o interactiunea cu dispozitivele
o interoperabilitate
conformitate
constrageri arhitecturale
instalare
distributie
constrangeri de dezvoltare
cost
termene limita
variabilitate
tehnici pentru identificarea cerintelor:
o interviurile – cea mai uzuala metoda – se concentreaza pe activitati desfasurate de
utilizator
o sesiuni comune pentru stabilirea cerintelor: JRP, pot fi asimilate cu efectuarea interviurilor
tuturor utilizatorilor – toate persoanele care vor influenta directia dezvoltarii sunt reunite
intr-un singur loc – este necesar un mediator;
o cazuri de utilizare – interactiunile dintre utilizatori si SI ;
o observatiile/ analizele sociale – existenta unui obs care sa urmareasca utilizatorii SI –
observatiile pot fi directe sau indirecte – metoda faciliteaza culegerea unor date de calitate;
o prototipurile – util pentru utilizatorul final pentru a intelege ce vreau sau la ce se asteapta
prototip de incercare – rapid, pentru validarea interfetei
prototip evolutiv – dezvolta produsul final pentru a se putea aprecia toate
caracteristicile de calitate ale produsului soft
caracterisitici de calitate ale cerintelor:
o complete
o consistente
o modificabile
o neredundante
o schimbabile
fiecare cerinta individuala trebuie sa fie:
o neambigua
o concisa
o masurabila
o fezabila
o testabila
o poate fi urmarita
etapa de definire a problemei: identificate caracteristicile principale ale unitatii economice
studiate;
etapa de structurare a solutiei: se determina si se detaliaza cerintele beneficiarului;
diagrama cazurilor de utilizare: reprezenta in forma grafica functionalitatile pe care trebuie sa le
indeplineasca SI in faza finala;
o trebuie sa aiba o descriere scurta a fiecarui caz
o sunt formate din actori si cazuri de utilizare;
o actori : persoanele/ sistemele care interactioneaza cu SI
o cazuri de utilizare: secvente de tranzactii ce au loc in dialog cu sistemul si care sunt
inrudite; orientate pe scop – ce trebuie sistemul sa faca si nu cum;
o directia de navigare a unei cai de comunicare sugereaza cine initiaza comunicatia;
o la o relatie dintre un actor si un caz de utilizare este permisa multiplicitatea
o intre 2 cazuri de utilizare pot exista diferite tipuri de relatii:
generalizare: 2 sau mai multe CU au in comun un comportament/ o structura/ un
scop
includere: integrarea unui CU in alt CU, primul devenind o parte logica din celalalt;
denota un comportament obligatoriu; nu se mostenesc proprietati de la un CU la
altul;
extindere: comportament care are loc doar in anumite conditii sau fluxuri diferite;
CU extins este independent de cel pe care l extinde;
o toate procesele care trebuie executate de SI se regasesc intr un caz de utilizare;
o diagrama CU testeaza daca sistemul raspunde cerintelor initiale;
o exemple curs;
sunt analizate specificatiile si CU si se idnetifica cele mai importante concepte cu care va lucra
sistemul;
se initializeaza reprezentarea diagramei de clase;
se contruieste diagrama obiectuala – modeleazai instantele elementelor consitnute in diagramele
de clase;
pentru a evidentia starile unui obiect – se fac diagramele de stare
diagrama de activitate – scopul de a evidentia actiunile si rezultatele lor
diagrama de interactiune:
o diagrame de secventa
o diagrame de comunicare
diagrama de clase: cea mai importanta diagrama din cadrul unei analize si a proiectarii unui SI;
prezinta natura statica a claselor si pune in evidenta atributele;
definirea unei clase: ansamblu de obiecte care au aceleasi caracteristici si constrangeri;
caracteristicile: atribute/operatii
interfata: set de caracteristici si obligatii publice – un contract;
exemple de clase uzuale:
o entitate – clasa privata, fara interactiuni
o control – initiaza interactiuni, separa entitati si limite
o limita – periferia sistemului
o enumerare – definirea tipurilor de date ale caror valori sunt enum
o primitiva – forma de clasa care reprezinta tipuri de date predefinite, boolean
atribute: definite prin numele lor
o pot fi:
publice
private
protected
package
o UML permite multiplicitate pentru atribute
o Proprietati:
Readonly
Ordered/unordered
Unique/nonunique
Operatii:
o Vizibilitate – la fel ca la clase
o Directie : in/out/inout/return
Constrangeri: expresie care restrictioneaza un anumit elemnt al diagramei de clase;
o Poate fi o expresie formala/ informala sau semi-formala;
o Reprezentate intre acolade
Relatii intre clase
o Relatia de asociere:
Denumire
Multiplicitati
Rolul asocierii
Directie de navigare
Tipuri – unare, binare, ternare;
o Relatia de agregare: forma de asociere binara
Agregare partajata
Forma slaba de agregare in care instantele partilor sunt independente de
intreg
Agregare compusa/ compunere;
Forma puternica de agregare in care partile sunt independente de intreg,
astfel daca:
o Daca clasa se sterge, si partile vor fi sterse
o Asociere: obiectele stiu de existenta celorlalte si pot lucra împreuna
o Relatia de generalizare: indica mostenirea dintre o superclasa si o subclasa – este permisa
mostenirea multipla
o Relatia de dependenta – folosita pentru a arata o gama larga de dependente intre el unui
model; tipurile de dependente sunt:
Dependenta de utilizare – clasa client are nevoie de alta clasa/clase pentru a
functiona;
Dependenta de abstractizare – pune in relatie 2 elemente sau seturi de elemente,
reprezentand acelasi concept dar la niveluri diferite de abstr;
Diagrama de obiecte: legaturile dintre obiecte – valideaza diagrama de clase;
o O legatura = relatie intre 2 obiecte
o Pot exista si obiecte anonime;
o Diferente intre diagrama de clase si cea de obiecte – in curs slide 21
Diagrama de activitate – reprezentarea vizuala a secventelor de actiuni prin care se doreste
obtinerea unui rezultat;
o Se poate realiza pentru unul sau mai multe cazuri de utilizare;
o Poate fi folosita pentru procesare paralela
o Importanta in modelarea proc de afaceri
o Activitatea – comportament parametrizat sub forma unui flux coordonat de actiuni;
o Constrangerea – atasabile unei actiuni – pre/post – conditie;
o Noduri – initial, final ( final de activitate sau final de flux)
o Fluxuri si obiecte:
Flux de control – arc pe diagrama ce descrie modul de transfer al controlului
Flux de obiecte – sunt transferate obiecte sau date
Conditie tranzitorie – text pe flux ce defineste o conditie ce trebuie sa fie adevarata
pentru a produce tranzitia;
o Noduri decizionale/de imbinare:
Decizional – intra un flux – ies mai multe
Imbinare – intra mai multe – iese un flux;
o Noduri de bifurcatie/jonctiune
Bifurcatie – intra un flux – ies mai multe – actiuni paralele
Jonctiune – intra mai multe fluxuri – iese unul – sfarseste actiunile paralele;
o Partitii: culoare ce arata cine sau ce executa actiunile intr-o diagrama de activitate
Diagrame de interactiune: aspectele dinamice ale sistemului – set de obiecte si relatiile intre ele
o Diagrama de secventa: formata din obiecte, mesajele dintre ele si dimensiunea temporala;
o Obiectele sunt plasate pe marginea de sus a diagramei; existenta lor este repr prin linii de
viata;
o Linia de viata: existenta unui obiect pe o perioada de timp
o Activare: indica perioada de timp in care obiectul realizeaaz o actiune
o Mesajele – arcuri ce pornesc de la o linie de viata si se opresc la alta linie de viata; call sau
return; acestea pot fi de creare sau distrugere – pornesc sau incheie linia de viata a unui
pbiect;
o Fragmente combinate: una sau mai multe secvente de procesare executate in anumite
circumstante;
Alt
Loop
Opt
Diagrama de comunicare: subliniaza organizarea structurala a obiectelor care trimit si primesc
mesaje
o Colectie de varfuri si arce – aceleasi informatii ca diagrama de secventa;
o Se poate face conversa intre cele 2 fara a se pierde informatii;
Diagrama de stare – starea dinamica a unui obiect specific;
o O stare = conditie sau situatie din momentul existentei unui obiect care satisface in acel
moment anumite conditii, efectueaza anumite activitati sau asteapta evenimente;
o Stare initiala/ stare finala: au aceleasi notatii ca si in diagramele de activitate
o Stare compusa – contine substari;
o Tranzitii – obiectul tranziteaza dintr o stare in alta cand apare un eveniment si cand sunt
indeplinite anumite condii; contine:
Declansator
Conditie
Efect
o Actiuni – cu exceptia starii initiale si a celei finale, fiecare stare are un nume, atributele
proprii unei stari; acestea includ:
Entry
Exit
Do
o Decizia – pseudostare realizeaza o bifurcatie conditionala; evalueaza conditiie
declansatorilor tranzitiilor pentru a alege o singura tranzitie de iesire;
Aspecte generale – consta in stabilirea solutiilor logice si specificarea dpdv fizic a componentelor
noului sistem fizic
Obiectivele proiectarii:
Activitati de analiza – sa intelega evenimentele si procesele din companie
Activitati de proiectare – sa defineasca, sa organizeze, sa structureze componenetele sistemului
solutie;
Tipuri de proiectari:
Unele metodologii impart proiectarea sistemelor in:
Proiectare generala/ de ansamblu
Proiectare de detaliu:
A fiecarui caz de utilizare
A bazei de date
A interfetelor cu utilizatorul si alte sisteme
A controlului si a securitatii
La stabilirea oridinii de prioritate in abordarea structurilor sistemului informatic pot fi avute in vedere
urmatoarele:
Prioritatea componenetelor
Asigurarea legaturilor intre ele
Disponibilitatea resurselor
Nivelul de dotare
Fortele de proiectare
Personalul de specialtate
Proiectarea mediului:
Mediul: toate tehnologiile necesare pentru a sustine aplicatia soft; se mai numeste arhitectura
tehnica;
Sistemul se imparte in subsisteme; pe trei niveluri sau model-view-controller
Diagrame de clase
Diagramde de secvente
Diagrame de stari
Proiectarea interfetelor cu utilizatorii:
Dialogul de la care pleaca cerintele: fluxul de activitati din cazurile de utilizare + diagramele de
secventa ale SI
Proiectarea interfetelor cu alte sisteme: interactioneaza cu alte sisteme interne sau externe, fiind
necesara integrarea acestora
Conectarea la alte sisteme se poate realiza astfel:
Se pot salva date din alte sisteme
Se pot utiliza acestea
Se pot solicita info in timp real
Proiectarea bazei de date:
Se pleaca de la modelul claselor domeniului
Se alege structura
Se face schema
Se aplica restrictiile
Proiectarea securitatii si controalelor
Protejarea bunurilor companiei
Element crucial
Controale la nivel
Interfata cu user
Aplicatie
Bd
Proiectarea unui sistem cu implementare interna
Sisteme stand alone
Sisteme bazate pe o retea interna: arhitectura client-server, LAN
Arhitecturi client server pe trei niveluri:
Nivelul datelor, nivelul aplicatiei, nivelul prezentare;
Proiectare pentru implementare externa:
Configurare pentru implementare pe internet
Avantaje:
Colocatie
Servicii de management
Servere virtuale
Cloud computing
Diversitatea dispozitivelor client
Dezavantaje:
Securitate – brese, atacuri
Volumul de date fiind mare, durata de transmitere poate fi foarte ridicata;
Pentru distribuire la distanta – se foloseste VPN – retea inchisa cu securitate si acces inchis;
Diagrama detaliata a claselor –
Se iau pe rand CU
Se adauga o clasa controller pentru a fi responsabila pentru CU
Se determina cerintele de vizibilitate a navigarii
Se completeaza atributele fiecarei clase cu vizibilitate si tip
Vizibilitatea navigari: abilitatea unui obiect de a interactiona cu un altul
Reguli de navigabilitate: asocierile unu la multi care indica o relatie suporior-subordonat vor asigura
navigarea respectiva;
Metodele claselor – se poate folosi tehnica CRC – class, responsibility, collaboration
Se pot folosi diagrame de secventa detaliate – fiecare mesaj trebuind sa aiba in corespondenta o
metoda in clasa respectiva
Protectia in fata schimbarii:
Separarea partilor stabile de cele care sufera schimbari
Se separa formularele si paginile din interfata cu utilizatorul
Conexiunea la sql se pastreaza in clase separate de logica
Se utilizeaza clase adaptor
Proiectarea arhitecturii SI:
Aceasta defineste tehnologiile folosite
Presupune identificarea tipului retelei si al protocolului de comunicatie ce pot fi utilizate
Cel mai cunoscute sunt:
Punct la punct
Inel
Stea
Ierarhica
Dupa alegerea tipului de retea – trebuie identificat protocolul de comunicatie – TCP/IP – SNA
Arhitectura client – server
Ansamblu de de 3 componente principale: server, client, retea
Presupune existenta unor baze de date multiple si a unor aplicatii care manipuleaza datele de la
diferite statii de lucru (SGBD)
....
C XI – proiectarea interfetelor
tipuri de interfete:
utilizeaza limbajul natural
intrebare/raspuns
bazate pe videoformate intrare/iesire
tip linie de comanda
ce permit manipulare directa
interfete ce utilizeaza limbajul natural:
idealul utilizatorilor neinformaticieni
nu trebuie sa aiba o pregatire de specialitate pentru a putea utiliza interfata
se utilizeaza in mod restrans deoarece au probleme de implementare
interfete de tip intrebare/raspuns:
afiseaza o intrebare – utilizatorul raspunde
aplicatii din domeniul de management utilizeaza astfel de interfete
conditii de proiectare – trebuie formulate intrebarile intr o maniera concisa si inteligibila
trebuie sa ofere asistenta
interfete bazate pe videoformate de intrare/iesire:
afiseaza campuri ce contin elemente de date sai parametri ce trebuie comunicati utilizatorului
pot fi simplificate prin furnizarea de valori implicite pentru campuri
avantajul major este ca versiunea tiparita furnizeaza o documentatie foarte buna
nu sunt cele mai bune pentru introducerea de date
interfete de tip linie de comanda
controlarea aplicatiei cu linii de comanda
manipuleaza calculatorul ca un instrument
cer memorarea regulilor de sintaxa
sunt dedicate programatorilor
avantaje si dezavantaje:
crearea unui procesor de comenzi este mult mai simplu decat implementarea unei interfete
grafice
utilizatorii trebuie sa invete limbajul
utilizatorii pot face greseli in tastarea comenzilor
interactiunea cu sistemul se face prin tastatura
interfete ce permit manipularea directa a elementelor de catre utilizator
interactioneaza cu aceasta prin actiuni directe
editoare de text, foi de calcul tabelar, SI informatice geografice si jocurile video au interfete de
genul
avantaje:
utilizatorul simte ca are control
timp mic de invatare
greseli usor de depistat/corectat
meniul – componeneta a interfetei care asigura o comunicare rapida si usoara cu utilizatorul
compus dintr o lista de optiuni
pentru a executa o comanda/program
pentru a afisa un submeniu
pentru a afisa o fereastra de control
SI bazate pe meniuri:
Utilizatorii pot executa comenzi fara le cunoasca sintaxa
Efortul de tastare minim
Unele tipuri de erori pot fi evitate
Se poate oferi un suport help dependent de context
Meniuri simple/ bara de selectie:
Apar sub forma unei liste de optiuni ce pot fi afisate orizontal sau vertical
Optiunile se pot selecta de pe bara de selectie
Avantajul este rapiditatea si usurinta definirii
Dezavantajele sunt legate de dificultatea utilizarii in construirea unei ierarhiii de meniuri si
asigurarea legaturii intre meniuri si submeniuri
Meniul orizontal – pull down
Cuprinde o lista de optiuni afisata orizontal sub titlul ferestrei aplicatiei
Prin selectarea unei optiuni a meniului se poate afisa un submeniu – la dreapta sau la stanga
Lmao nu stau sa descriu un drop down
Meniu vertical – pop up
Nu
Meniuri ierarhice
Selectarea unei optiuni determina ca meniul curent sa fie inlocuit cu alt meniu
Prima lista aparuta pe ecran formeaza meniul principal iar celelalte formeaza meniuri operationale
Permit utilizatorilor sa foloseasca numai optiunile care ii intereseaza
Utilizatorii se pot pierde prin ierarhie. Acestea nu sunt adecvate pentru specialisti
Meniuri cu bara de defilare (scrolling)
Meniuri „mergatoare” – cascada – walking menus
Meniuri tip toolbar
Meniuri tip „panou de control
Control panel – meniu ierarhic unde submeniul e reprezentat ca un panou de control
Harta meniului:
Navigarea poate fi simplificata prin afisarea unei harti
Arata potizita curenta
Se permite trecerea de la un meniu la altul fara a se parcurge ierarhia
Alte tipuri de interfete:
Ecrane senzitive la atingere, recunoasterea vocii
Fiecare are propriile caracteristici
Principii de proiectare a interfetelor:
Trebuie sa tina cont de nevoile, experienta si capacitatile utilizatorului
Trebuie implicati direct in procesul de proiectare a interfetei
Prototipizarea este esentiala pentru dezvoltarea interfetei
Proiectantii trebuie sa tina cont de limitele fizice si mentale ale util SI
Interfata trebuie sa utilizeze termeni si concepte cunoscute de util
Interfata trebuie sa fie consistenta. Comenzile sa aiba acelasi format
Consistenta interfetei reduce timpul de invatare pentru utilizator
Trebuie minimizata aparitia greselilor
Trebuie sa aiba abilitatea de a anula actiunile destructiva ale utilizatorului
Facilitatea undo
Trebuie sa ofere util asistenta la diferite niveluri
Help-ul oferit de sistem trebuie sa fie structura ai utilizatorii sa gaseasca usor si rapid informatia
Trebuie sa permita utilizatorilor sa acceseze sistemul intr un mod ce corespunde cerintelor lor
Trebuie sa permita introducere rapida si usoara a datelor
Trebuie sa conduca la cresterea productivitatii
Toate sistemele trebuie sa ofere un mod de reprezentare a informatiei la utilizatori