Inginerie Software


Prezentare Proiect

Pentru săptămâna a 12-a a semestrului (proiectul final se livrează în săptămâna a 13-a, dar săptămâna a 12-a este pentru verificarea livrabilelor) veți avea de realizat, fiecare grupă de laborator în parte, un proiect care presupune lucrul în echipă și interacțiunea acestor echipe. Enunțul proiectului îl regăsiți mai jos, iar nota obținută pe proiect reprezintă nota pe activitatea la laborator și are o pondere de 50% din nota finală a laboratorului de IS (ponderea de 50% rămasă este reprezentată de notele obținute pe temele trimise).

!! Update 17 aprilie 2010 !!
Documentația finală trebuie să cuprindă printre capitolele documentului vostru:
- Reprezentarea în XML a modelului organizației aplicabil în workflow: http://www.wfmc.org/standards/docs/if19807o.pdf
- Modelarea organizației. Relații cu interfețele WfMC (secțiunea 5.4.4 din PDF-ul de mai sus)
- Structura generală a documentației:
-- 1. Obiectivele proiectului și ale aplicației
-- 2. Concepte de bază
---- 2.1 Wf Process Definition
---- 2.2 Tranzition Information (condițiile de trecere de la o activitate la alta)
---- 2.3 Wf Relevant Data
---- 2.4 Wf Model
---- 2.5 Organizational Model
---- 2.6 MetaModel for Organizational Model (în loc de WPDL veți folosi XML) - fig. 3-2 din PDF
---- 2.7 Se definesc tipuri de date: Participant Entity Type = organizația / om / rolul / resursa (în XSD schema) - acest aspect trebuie detaliat și comentat (pag. 15-17 din PDF)
---- 2.8 Modalități posibile de reprezentare (paragraful 5.2 pe scurt)
-- 3. Prezentarea în XML a modelului organizației (echivalent cu cap. 4 care e WPDL)
-- 4. Aplicația concretă (Prezentarea modelului organizației) - pentru fiecare persoană, prezentați rolurile pe care le poate îndeplini (în XML)
-- 5. Concluzii
---- a. S-au analizat cerințele standardului propus de WfMC și s-au detaliat în XML
---- b. Pentru fiecare participant uman s-au prezentat rolurile
---- c. Sunt două etape necesare: prezentarea modelului organizației + la execuția workflow-ului este necesară atribuirea rolului persoanelor capabile să-l îndeplinească
---- d. S-a construit baza de date cu persoanele organizației și rolurile lor

FINAL DEADLINE: Săptămâna a 13-a (nu se permit întârzieri de nici un fel)

PROIECT 1: Convertor MySQL - XML/XSD

Enunțul proiectului

Având o bază de date relațională bazată pe MySQL și conținând unul sau mai multe tabele care reprezintă rolurile și ierarhiile existe într-o organizație, vi se cere să realizați o aplicație folosind Java (cu interfață grafică obligatorie, construită folosind NetBeans sau orice alt mediu vizual de construcție) care să poată să efectueze oricare dintre următoarele două sarcini:
1. Dându-se numele bazei de date, împreună cu adresa acesteia și user-ul, respectiv parola pentru conectare, aplicația să convertească baza de date împreună cu toate tabelele, precum și cu toate rândurile din acestea, într-un fișier XSD (format XML) și să îl scrie pe disc. Fișierului XSD trebuie să i se poată modifica numele undeva în interfață. (4,5p)
2. Dându-se un nume de fișier XSD (de exemplu, cel construit la pasul 1) undeva în interfața grafică, aplicația să reconstruiască baza de date relațională MySQL pe baza acestui fișier, împreună cu toate tabelele și rândurile lor. (4,5p)
3. Opțional, pentru un bonus suplimentar de 1,5 puncte pentru toate echipele implicate, se poate opta pentru salvarea constrângerilor existente în baza de date (pentru punctul 1) și, respectiv, restaurarea lor (pentru punctul 2).

Cum trebuie livrat proiectul în săptămâna a 13-a

1. Proiectul trebuie livrat funcțional, împreună cu tot codul sursă aferent și cu o documentație aferentă.
2. Se vor realiza toate diagramele UML studiate la laborator (și relevante pentru acest proiect) și vor fi prezente în documentație (puteți folosi StarUML și puteți realiza screenshot-uri pe care să le includeți în documentație).
3. Documentația trebuie să aibă un cuprins și două părți (împreună cu bibliografia obligatorie la final, cu cel puțin 20 de elemente citate în ea!!!): prima parte, cea teoretică (aprox. 20-25 de pagini), în care descrieți conceptele de XML/XSD (aprox. 66% din partea I) și ce înseamnă, în mare, o bază de date relațională cu exemple concrete pentru MySQL (aprox. 34% din partea I), iar partea a doua (aproximativ 20-25 de pagini) cu prezentarea problemei de rezolvat, modul de rezolvare (și de ce s-a ales acel mod!!!), diagramele UML aferente, modul de testare și eventual o anexă de cel mult 3 pagini (cu un exemplu concret de transformare MySQL - XSD). Trebuie obligatoriu să aveți referințe în textele voastre la cărțile/articolele/paginile Web din bibliografie! Documentația trebuie livrată în format DOC (Microsoft Word 2003) sau LaTeX.

Mod de organizare a activităților

1. Fiecare grupă de laborator va avea 4 echipe, care vor lucra împreună la rezolvarea proiectului. Fiecare echipă are cel puțin 2 persoane și cel mult 4.
2. Echipele vor fi următoarele: de proiectare (I), de dezvoltare (II), de documentare (III) și de testare (IV).
3. Pașii de dezvoltare ai proiectului vi-i puteți alege cum credeți de cuviință, însă se recomandă a urma o ordine logică a dezvoltării:
a. Echipa I proiectează structura generală a aplicației, eventual de comun acord cu echipa II.
b. Echipa II începe dezvoltarea aplicației, preferabil pe module. Fiecare modul se poate testa ulterior separat de echipa IV, iar pe măsură ce el este livrat poate fi documentat de către echipa III.
c. Proiectul începe oficial în săptămâna a 7-a (cea curentă) și se termină în săptămâna a 13-a (final deadline). Progresele înregistrate (milestones) trebuie anunțate în săptămânile a 9-a, a 10-a și a 12-a, conform graficului de mai jos.
d. Milestone 1: în săptămâna a 9-a trebuie deja construite (în proporție de minim 75%) arhitectura generală (de către echipa I) a aplicației și interfața ei grafică, împreună cu partea de conectare la baza de date (de către echipa II). Ele se vor livra echipelor III (pentru documentare) și IV (pentru testare a user-interface și a funcționalității parțial dezvoltate).
e. Milestone 2: în săptămâna a 10-a trebuie finalizat (în proporție de minim 75%) modulul de conversie MySQL -> XSD, care trebuie livrat pentru documentare echipei III și pentru testare echipei IV.
f. Milestone 3: în săptămâna a 12-a trebuie finalizat (în proporție de minim 75%) modulul de conversie XSD -> MySQL, care trebuie livrat pentru documentare echipei III și pentru testare echipei IV.
g. Final deadline: până în săptămâna a 13-a trebuie finalizate ambele module și pusă la punct documentația, împreună cu rezultatele testării.

Reguli generale

1. Puteți construi echipele așa cum credeți de cuviință. Este necesar însă să existe toate cele 4 echipe, cu o medie de 3 studenți per echipă.
2. Fiecare membru al echipei trebuie să se implice în rezolvarea proiectului. Evaluarea gradului de implicare este individuală și se face la sfârșitul semestrului.
3. Dacă într-o echipă anumite persoane nu se implică, atunci acest lucru trebuie semnalat cel târziu în săptămâna a 9-a, iar studenții respectivi vor fi redistribuiți la alte echipe sau vor fi eliminați complet din proiect (fără a primi punctele aferente proiectului).
4. Dacă doriți să schimbați echipele, acest lucru se poate face doar dacă se respectă regulile de constituire a echipelor prezentate mai sus.
5. Echipele se construiesc până cel târziu în săptămâna a 8-a.
6. Puteți împărți sarcinile în interiorul echipei așa cum considerați de cuviință.

Sfaturi

1. Interacțiunea dintre echipe este recomandată și chiar necesară pentru rezolvarea proiectului. Puteți comunica și în cadrul orelor de laborator.
2. Proiectul nu are un mod anume de rezolvare - încercați să găsiți cea mai potrivită metodologie de dezvoltare și de rezolvare a lui - inovația și eficiența sunt pe deplin încurajate!
3. Cheia unui proiect finalizat și pe deplin reușit este COMUNICAREA. Comunicați între echipe, precum și în interiorul acestora, contribuiți cu idei proprii, susțineți-vă punctul de vedere (but remain open-minded!) și construiți în consecință.
4. Un pas foarte important (chiar vital) al dezvoltării aplicației este faza de proiectare a ei, mai exact ceea ce necesită milestone 1 - atenție FOARTE MARE la acest pas!



 

Hristos A Înviat !