Informatica
Instrumente folosite in modelarea sistemelor softInstrumente folosite in modelarea sistemelor soft 1. Tipuri de modele si instrumente Tipuri de modele (dupa nivelul de abstractizare) conceptual - in analiza cerintelor si analiza (modelare) contine elemente specifice domeniului problemei grad redus de detaliere logic - proiectarea logica separat de domeniul problemei detaliaza modelele conceptuale adauga elemente noi, specifice solutiei fizic - proiectarea fizica, constructie detalii constructive cod sursa Tipuri de modele (dupa continut) de arhitectura componente, interactiuni, relatii de cazuri de utilizare actori, scenarii, functii sistem domeniul informatiei obiecte din domeniul problemei, atribute si relatii functional impactul functiilor asupra obiectelor din domeniul problemei descompunerea functiilor sistem descrierea functiilor si subfunctiilor comportamental evenimente externe, stari, tranzitii de stare interfata cu utilizatorul analiza sarcinilor, prototipuri de ecran Tipuri de instrumente (pe tipuri de modele) de arhitectura diagrama de context de arhitectura diagrama de componente (UML) de cazuri de utilizare diagrama cazurilor de utilizare (UML) domeniul informatiei diagrama entitate-relatie (E-R) diagrama de clase si de obiecte (UML) functional diagrama de flux de date (DFD) diagrama de descompunere a proceselor diagrama de activitati, secventa, colaborare (UML) comportamental diagrama de stari (UML) 2. Diagrame entitate-relatie (E-R) P.P. Chen, The entity-relationship model: toward a unified view of data, ACM Transactions on Database Systems 1(1976), No.1, 9-36 reprezentare detaliata si structurata a datelor din domeniul problemei constructii folosite (concepte, termeni) (1) entitate (2) relatie (3) atribut se reprezinta grafic prin diagrama entitate-relatie (diagrama E-R, Entity-Relationship Diagram) foloseste notatiile E-R
2. Diagrame entitate-relatie (E-R) (cont) (1) Entitati persoane, locuri, obiecte, evenimente, concepte din mediul utilizatorului pentru care organizatia doreste sa detina date exemple: persoana; ANGAJAT, STUDENT, PACIENT loc: STAT, REGIUNE, TARA obiect: MASINA, CLADIRE, AUTOMOBIL eveniment: VANZARE, INREGISTRARE, SCHIMBARE concept: CONT BANCAR, CURS UNIVERSITAR, CENTRU DE PRELUCRARE
(2) Atribute proprietate sau caracteristica a unui tip de entitate care prezinta interes este memorata in fiecare instanta a tipului de entitate respective toate instantele unui tip de entitate E au aceleasi atribute valorile unui atribut difera de la o instanta a lui E la alta exemple de tipuri de entitati si atribute: STUDENT: NUMAR MATRICOL, NUME, ADRESA, NUMAR TELEFON ANGAJAT: MARCA, NUME, ADRESA, CALIFICARE TARA: DENUMIRE, CONTINENT, SUPRAFATA, POPULATIE AUTOMOBIL: NUMAR INMATRICULARE, CULOARE, GREUTATE, PUTERE VANZARE: DATA, CINE VINDE, CUI VINDE, VALOARE CURS UNIVERSITAR: DENUMIRE, SPECIALIZARE, SEMESTRU, PROFESOR, NUMAR ORE PE SAPTAMANA, FORMA DE EXAMINARE Clasificarea atributelor unui tip de entitate atribut cheie: identifica o instanta a entitatii cheie simpla - un singur atribut cheie compusa - un grup de atribute atribut non-cheie Tipuri de atribute cheie cheie candidat: identifica unic o instanta a entitatii o entitate poate avea mai multe chei candidat cheie primara: cheia candidat ca identificator pentru tipul de entitate atributele ce formeaza cheia primara sunt subliniate in diagrama E-R cheie surogat: atribut artificial pe post de cheie primara Stabilirea cheii primare CP a unei entitati E (Bruce, 1992) (i) cheia candidat a lui E care nu-si modifica valoarea pe toata durata de viata a oricarei instante (ii) pentru orice instanta a lui E, atributele lui CP au valori valide si non-nule (iii) daca CP are prea multe atribute, se inlocuieste cu o cheie surogat (iv) nu folosi chei "inteligente" (clasificare, localizare, structurare)
2. Diagrame entitate-relatie (E-R) (cont) Gradul unei relatii numarul de tipuri de entitati care participa in relatie clasificarea relatiilor dupa gradul lor: unare sau recursive (de gradul 1) binare (de gradul 2) ternare (de gradul 3) Cardinalitatea unei relatii de la entitatea A la entitatea B: numarul de instante ale entitatii B asociate unei instante a entitatii A de la entitatea B la entitatea A: numarul de instante ale entitatii A asociate unei instante a entitatii B Relatii unare
3. Diagrame de flux de date (DFD) reprezentare schematica a proceselor complexe intr-o forma cat mai abstracta instrument de modelare a proceselor care ilustreaza fluxul de date in sistem si prelucrarile efectuate de acesta Sinonime: bubble chart transformation graph process model DFD este abstracta nu ia in considerare aspectele de implementare suportul pe care sunt memorate datele mijloacele si mediile de comunicatie calculatoarele pe care se fac prelucrarile introduse de metodele analiza si proiectare structurata: De Marco, Yourdon, Constantine Gane, Sarson
(1) Procesul (transformarea, prelucrarea) actiunea sau prelucrarea efectuata asupra fluxurilor de date de intrare pentru a produce fluxuri de date de iesire cine face actiunea: oameni masini departamente calculatoare notatie De Marco/Yourdon: elipsa, cerc Gane, Sarson: dreptunghi cu colturi rotunjite numele procesului scheme de numerotare (2) Fluxul de date desemneaza: datele ce intra intr-un proces (intrarile) datele care sunt produse de un proces (iesirile) actualizarile intr-un depozit de date se reprezinta printr-o linie continua ce leaga un proces cu un alt simbol din DFD linia este etichetata si are o directie (sageata) eticheta indica ce informatie se transporta (ce reprezinta fluxul de date) sageata indica sensul propagarii informatiei Fluxul de control desemneaza evenimentele produse de procese sau entitati care influenteaza comportamentul altor procese sau entitati se reprezinta printr-o linie intrerupta ce leaga un proces cu un alt simbol din DFD are aceleasi caracteristici ca si fluxul de date (eticheta, orientare) (3) Entitate externa defineste frontiera sistemului supus modelarii produce date de intrare in sistem foloseste date produse de sistem sinonime agent sursa, destinatie se reprezinta sub forma de dreptunghiuri (patrate) numele entitatii (substantiv la singular) fiecare flux de date se ilustreaza separat daca aceeasi entitate apare de mai multe ori in diagrama, se marcheaza coltul din dreapta jos (paralela la diagonala secundara) numerotare Xm, m indice (deasupra numelui) (4) Depozit de date descrie entitatile despre care sistemul trebuie sa inmagazineze date contine toate realizarile (instantele) unei entitati exemple de categorii de depozite de date roluri: clienti, furnizori, angajati, studenti, profesori; obiecte: produse, subansamble, carti; locatii: magazii, cladiri, depozite; evenimente: comenzi, note, cursuri. se reprezinta prin dreptunghi deschis la ambele capete (notatia Yourdon/De Marco) dreptunghi inchis la un capat (notatia Gane/Sarson, uneori si Yourdon/De Marco) nume eticheta (notatia Gane/Sarson) daca acelasi depozit de date apare de mai multe ori in diagrama, capatul inchis este cu line dubla o paralela la acesta Deosebirea dintre DFD si schemele logice paralelismul scheme logice: prelucrari secventiale DFD: procesele se pot executa in paralel ce exprima schema logica: numai prelucrari (structuri secventiale, alternative, repetitive) DFD: modul de propagare a datelor din sistem + prelucrarea acestora frecventa prelucrarilor schema logica: exprima un proces de calcul DFD: fiecare proces are frecventa proprie de prelucrare (zilnic, saptamanal, decadal, lunar, trimestrial, semestrial, anual) Reguli privind trasarea DFD fiecare proces trebuie sa aiba cel putin o intrare si cel putin o iesire daca procesul are numai o intrare si numai o iesire, s-ar putea ca el sa fie critic (si se pune intrebarea: nu s-ar putea combina cu alt proces?) cel putin un capat al fiecarui flux de date trebuie conectat la un proces celalalt capat poate fi conectat la un proces un depozit de date o entitate externa fiecare depozit de date trebuie sa aiba cel putin un flux de date de intrare si unul de iesire daca depozitul are numai o intrare si numai o iesire, trebuie analizat cu atentie, pentru a vedea daca depozitul de date este o cerinta functionala sau numai un depozit temporar care nu este necesar conceptual. Detalierea DFD notatia De Marco/Yourdon maximum 7 procese intr-o DFD atatea nivele de detaliere cate sunt necesare notatia Gane, Sarson doua nivele de detaliere (leveling): DFD pe nivelul 0, care contine procesele si fluxurile de date esentiale (de nivel inalt) pentru descrierea completa a unui astfel de proces este nevoie de zeci sau sute de pagini de text DFD pe nivelul 1, pentru acele procese a caror descriere depaseste un anumit numar de pagini (intre 5 si 10) se expandeaza doar cutia procesului, fara a se lua in considerare procesele, depozitele de date sau entitatile externe - apar astfel fluxuri de date cu un capat liber daca fluxul de date n-a fost etichetat pe nivelul anterior, el trebuie etichetat obligatoriu pe nivelul curent de detaliere Procese esentiale acele procese care reprezinta actiuni care trebuie efectuate indiferent de modul in care se implementeaza sistemul sunt efectuate manual (de oameni) mecanizat (de diverse masini, dispozitive, roboti) automat (de calculator) clasificare dupa scop (ce fac): efectuarea de calcule (calculul salarului, calculul mediei de absolvire, etc) luarea de decizii (stabilirea bursei unui student pe baza mediei si a situatiei materiale, stabilirea statutului de promovare a unui concurs, stabilirea drepturilor de bursa) descompunerea fluxurilor de date complexe in fluxuri mai simple (separarea corespondentei primite de universitate pe facultati, dispecerarea apelurilor la o statie de salvare, etc) combinarea fluxuri de date mai simple intr-un singur flux mai complex (combinarea fluxurilor de date despre discipline, profesori, grupe de studenti si sali pentru a construi orarul) filtrarea sau efectuarea de calcule statistice asupra fluxurilor de date pentru a obtine alte fluxuri de date (selectarea studentilor care au ales un anumit curs optional in vederea stabilirii grupelor; numararea optiunilor studentilor pentru a vedea care cursuri sunt cele mai putin solicitate) clasificare dupa nivelul de detaliere procese sistem (nivelul 0) subsisteme sau functii majore (nivelul 1) functii (nivelul 2) procese (urmatoarele nivele de detaliere) procese primitive (cele de pe ultimul nivel de detaliere) procesele de pe primele doua nivele sunt numite si procese generale se noteaza printr-o clauza substantivala (sistemul de marketing, sistemul financiar-contabil, sistemul evidenta studentilor) procesele de pe celelalte nivele se mai numesc si procese detaliate numele lor incepe cu un verb (valideaza creditul clientului, citeste adresa studentului, verifica existenta produsului in stoc, actualizeaza stocul, creeaza o factura noua, actualizeaza notele) Clasificarea DFD dupa nivelul de detaliere a proceselor DFD de nivel inalt (nivelele 0 si 1) DFD de nivel mediu (nivelul 2 si urmatoarele) DFD de nivel jos (contin numai procese primitive) Numerotarea proceselor - scheme de numerotare trebuie sa respecte ordinea logica in care se desfasoara ilustreze descompunerea proceselor in subprocese schema de numerotare procesul radacina (procesul sistem) se numeroteaza cu 0 descompunerea procesului sistem: subsistemele (functiile majore) 1, 2, ., n descompunerea unui subsistem i netrivial in functiile i.1, i.2, , i.m descompunerea unei functii i.j netriviale in procesele i.j.1, i.j.2, , i.j.q procesele primitive (care nu se mai descompun) au sufixul 'p'. Analizarea proceselor dupa trasarea DFD se pot descoperi erori in identificarea proceselor: procese care au numai fluxuri de date de intrare gauri negre, black holes procese care au numai fluxuri de date de iesire miracole, miracle procese care au prea putine fluxuri de intrare pentru a produce iesirea specificata gauri gri, gray holes cele mai frecvente si mai greu de detectat aceste situatii impun reanalizarea proceselor in cauza Fluxuri de date trebuie sa ilustreze minimul de date esentiale de care are nevoie un proces sau pe care acesta le produce cerinta de minimalitate are ca scop reducerea cuplarii intre procese, adica reducerea efortului de intretinere numele fluxului de date contine substantive descriptive trebuie sa fie unic intr-o DFD (cu exceptia fluxurilor spre sau dinspre depozitele de date) se pot folosi adjective sau adverbe pentru a califica mai exact substantivele respective Factura de la client Dispozitie de incasare Catalog de note Catalog de note de la examenul de restanta Fluxuri de date categorii de fluxuri de date dupa nivelul de detaliere al DFD fluxuri de date compuse sunt proprii DFD de nivel inalt sunt formate din mai multe fluxuri de date primitive exemplu: COMANDA (acest flux de date se va descompune ulterior in COMANDA OBISNUITA, COMANDA SPECIALA, COMANDA AMANATA) fluxuri de date primitive apar in DFD de nivel mediu si jos sunt formate din atribute de date bine precizate, care se transporta (propaga) impreuna, intr-un singur pachet corespund de regula unui document bine precizat (de intrare sau de iesire): dispozitie de plata chitanta cerere de inscriere la admitere. Entitati externe stabilesc frontiera, marginile sistemului studiat adjectivul extern se refera la sistemul studiat, nu la organizatia tinta (mediul) in care acesta functioneaza exemple subdiviziune administrativa a organizatiei tinta (departament, divizie, sector, serviciu, birou) care ofera intrari in sistem si/sau primesc iesiri din sistem alte organizatii externe: agentii guvernamentale si non-guvernamentale, persoane din afara organizatiei tinta care ofera intrari in sistem si/sau primesc iesiri din sistem (clienti, furnizori, banci, firme de audit, bursa, organe tutelare) alt sistem din organizatie, nu neaparat informatic, care este separat de sistemul supus modelarii insa interactioneaza cu acesta se mai numesc si agenti interni (organizatiei) trebuie luate in considerare numai daca daca sistemul tinta comunica cu procesele din agentul intern daca comunica numai cu datele, atunci nu se ia in considerare, ci se considera numai depozitele de date cu care se comunica utilizator al sistemului sau conducator (sef, manager) utilizatorul/managerul este o sursa de date pentru sistem si/sau destinatie pentru iesirile acestuia. Depozite de date contin date esentiale, reutilizabile, persistente care sunt colectate, memorate, regasite si actualizate de sistemul tinta variante de abordare a modelarii in analiza cerintelor (I) modelarea proceselor se face dupa modelarea datelor (recomandata) identificarea depozitelor de date este simpla: fiecarui tip de entitate din diagrama E-R ii va corespunde un depozit de date (II) modelarea proceselor inainte de modelarea datelor (nerecomandata) (a) identificarea implementarilor existente de depozite de date (fisiere, BD, cartoteci, cataloage, registre) si (b) redenumirea depozitelor pentru a reflecta datele care le contin intr-o DFD, numai procesele se pot conecta cu depozitele de date datele din depozitele de date D nu se folosesc si nu se actualizeaza decat prin intermediul proceselor P Depozite de date conventii particulare de notare pentru fluxurile de date spre/dinspre depozitele de date D -> P P foloseste datele din D (citirea este implicita) numele fluxului de date trebuie sa reflecte ce date se folosesc din D poate sa fie chiar numele lui D (daca se folosesc toate atributele din D) P -> D P actualizeaza D adaugare de instante noi: mai bine "D nou" in loc de "adauga D" CLIENT nou STUDENT nou modificare de instante existente: mai bine "D modificat" in loc de "modifica D" CLIENT modificat, STUDENT modificat stergere de instante existente: mai bine "D sters" in loc de "sterge D" CLIENT sters, STUDENT sters P utilizeaza D (utilizeaza = foloseste + actualizeaza) Instrumente folosite in abordarile structurate: DFD, diagrama ierarhica obiectuale: diagrame de activitati Unde se face modelarea proceselor si a fluxurilor analiza cerintelor modelul de context al organizatiei - diagrama de context DFD cu un proces, entitati externe, fluxuri de date compuse modelul de procese al organizatiei: diagrama ierarhica descompune activitatea organizatiei in subsisteme si functii majore modelul de procese al ariei de activitate DFD mai detaliata: entitati externe, procese, depozite de date, fluxuri de date modelarea in analiza modelul contextului aplicatiei - diagrama de context DFD cu un proces, entitati externe, fluxuri de date compuse, modelul de date diagrama de descompunere a proceselor primul nivel de descompunere a sistemului studiat in subsisteme si functii modelul esential al prelucrarilor ierarhie de DFD rezultate din modelul contextual urmand descompunerea proiectare implementare
Enuntul problemei Firma TOTALCOM S.R.L are ca domeniu de activitate comertul en-gros cu produse. Se cere realizarea unui sistem de gestiune a comenzilor de la clienti, expeditie si facturare. Descrierea sistemului Aplicatia de gestiune a comenzilor, expeditie si facturare (numita pe scurt aplicatia COMENZI) trebuie sa gestioneze comenzile de produse emise de clienti. Fiecare comanda contine produsele cerute de client si cantitatea care trebuie livrata din fiecare produs. Pretul produsului se stabileste la prelucrarea comenzii, prin consultarea nomenclatorului de produse, iar disponibilitatea produsului in magazie prin consultarea fisierului de stocuri. Daca produsul este disponibil, se rezerva cantitatea ceruta in comanda si comanda se pastreaza pentru prelucrarile ulterioare (expediere si facturare) intr-un fisier de comenzi ordinare. Daca produsul nu este disponibil, se creeaza o comanda in asteptare. Comenzile in asteptare sunt consultate periodic, iar cand produsele continute in ele exista in magazie ele sunt transformate inapoi in comenzi ordinare. Din fisierul de comenzi ordinare se preiau loturi de comenzi si acestea se planifica pentru expeditie, folosindu-se informatiile despre masinile disponibile si rutele geografice spre clienti oferite de departamentul Transporturi. Pentru fiecare lot de comenzi se pregatesc liste de magazie, care permit muncitorilor ca dintr-o singura parcurgere a magaziei sa ia toate produsele de un anumit tip care se incarca intr-un camion. Livrarile efectuate, ca si produsele negasite se noteaza pe listele de magazie, care se folosesc pe urma la actualizarea stocului de produse din magazie. Dupa ce s-au luat din magazie toate produsele pentru o ruta si s-au incarcat in camionul aferent, se completeaza avizele de expeditie (care cuprinde produsele care se livreaza la fiecare client). Ajunse la client, acesta face receptia produselor livrate si noteaza toate neconcordantele pe avizul de expeditie, care este folosit ulterior pentru elaborarea facturii pentru produsele receptionate de catre client si pentru actualizarea conturilor de incasari.
|