Dezvoltarea une i platforme de licitatii online . [632255]
Universitatea Tehnică a Moldovei
Dezvoltarea unei platforme de licitații
online
Development of an online auction
platform
Student: [anonimizat]: Dr. hab. Leahu Alexei
Chișinău 20 18
Ministerul Educației, Cult urii și Cercetării
Universitatea Tehnică a Moldovei
Facultatea Calculatoare Informatică și Microelectronică
Departamentul Ingineria Software și Automat ică
Admis la susținere
Șef de departament : dr. conf.univ. Ciorbă D.
________________________________
„__”_____________ 2018
Dezvoltarea unei platforme de licitații online
Proiect de licență
Student : _________________ (V. Zgardan )
Conducător: ______________ (A. Leahu )
Consultanți: ______________ (I. Lisnic )
______________ (A.Dodu )
Chișinău 20 18
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Departamentul Ingineria Software și Automatică
Programul de studii Tehnologii Informaționale
Aprob
dr.conf.univ. Dumitru Ciorbă
șef de departament
___________________
„__”_____________ 2017
CAIET DE SARCINI
pentru proiectu l de licență a l student: [anonimizat]
1. Tema proiectului de licență Dezvoltarea unei platforme de licitatii online ____
confirmată prin hotărârea Consiliului facultății de la „ 3” noiembrie 2017
2. Termenul limită de prezentare a proiectului 25.05.201 8
3. Date inițiale pentru elaborarea proiectului Sarcina pentru elaborarea proiectului de
diplomă .
4. Conținutul memoriului explicativ
Introducere
1. Analiza domeniului de studiu
2. Proiectarea sistemului
3. Realizarea sistemului
4. Documentarea produsului realizat
5. Argumentarea economică
Concluzii
5. Conținutul părții grafice a proiectului
Diagrama Use -Case generală a sistemului , Diagrama USE -CASE, crearea ofert ei,
Diagrama de stare generală , Interfața principală a programului .
6. Lista consultanților:
Consultant Capitol Confirmarea realizării activității
Semnătura
consultantului (data) Semnătura
student: [anonimizat] , Controlul
calității
7. Data înmânării caietului de sarcini 01.09.2017
Conducător _________________________
semnătura
Sarcina a fost luată pentru a fi executată
de către student: [anonimizat] 01.09.2017
semnătura, data
PLAN CALENDARISTIC
Nr.
crt. Denumirea etapelor de proiectare Termenul de realizare a
etapelor Nota
1 Elaborarea sarcinii, primirea datelor pentru
sarcină 01.09.1 7– 30.09 .17 10%
2 Studierea literaturii de domeniu 01.10.1 7– 30.11.1 7 20%
3 Alegerea și pregătirea de lucru a softului 01.12.1 7 – 25.12.1 7 20%
4 Realizarea programului 16.01.1 8 – 30.04.1 8 25%
5 Descrierea programului, diagramele UML 01.05.1 8– 15.05.1 8 10%
6 Testarea aplicației 16.05.1 8– 20.05.1 8 10%
7 Finisarea proiectului 21.05.1 8– 25.05.1 8 5%
Student: [anonimizat]ir , declar pe proprie răspundere că lucrarea de față este rezultatul
muncii mele, pe baza propriilor cercetări și pe baza informațiilor obținute din surse care au fost citate și
indicate, conform norme lor etice, în note și în bibliografie. Declar că lucrarea nu a mai fost prezentată sub
această formă la nici o instituție de învățământ superior în vederea obținerii unui grad sau titlu științific
ori didactic.
Semnătura autorului
Semnatura conducătorului de licentă
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Departamentul Ingineria Software și Automatică
Programul de studi i Tehnologii Informaționale
AVIZ
la proiectul de licență
Tema: Dezvoltarea une i platforme de licitatii online .
Studentul Zgardan Vladimir gr. TI -143
1. Actualitatea temei: Actualmente vînzările online reprezintă o parte considerabilă din totalul
comerțului și a vieții cotidiene a unui număr foarte mare de oameni. În ziua de azi extinderea rețelei
internet a dus la rîndul său la o mare creștere de utilizatori a diferitor platforme de comerț online.
2. Caracteristica tezei de licență : Aplicația a fost creată pentru ușurarea procesului de vînzare –
cumpărare a produselor în cadrul unui panou de anunțuri.
3. Analiza aplicației: Aplicația data este formată pentru a crea anunțuri de vînzare a produselor și
vînzarea acestora prin intermediul unui modul de licitații, astfel excludem partea de negociere între
vînzător -cumpărător .
4. Estimarea rezultatelor obținute: Acest ă platformă este creat ă pentru simplificarea vînzărilor de
produse online . Este o aplicație web usor in utilizare si intuitiv pentru orce utilizator a acestuea.
5. Corectitudinea materialului expus: Materialul expus este prezen tat prin referințe ale unor surse ce au
fost scrise de persoane ce dețin experiența în domeniul Tehnologiilor Informaționale.
6. Calitatea materialului grafic: Proiectul este prezentat prin: diagrame, tabele, interfețe ale aplicației.
7. Valoarea practică a tezei: Platforma e ste destinat ă pentru utilizatorilor ce dețin un dispozitiv cu
conecțiune la internet.
8. Observații și recomandări: Cerințele față de teza de licență au fost îndeplinite în totalitate. Observații
nu sunt.
9. Caracteristica studentului ș i titlul conferit : Studentul Zgardan Vladimir a dat dovadă de
profesionalism în elaborarea lucrării, a respectat cerințele impuse și a manifestat exigență în elaborarea și
calitatea tezei de licență. Din cele relatate, urmează că lucrarea de licență poat e fi admisă spre susținere.
Din cele relatate, urmează că lucrarea de licență poate fi admisă spre susținere, cu nota ______________
Conducătorul tezei de licență Prof. univ., D r. hab. Leahu Alexe i
Rezumat
Aceasta teză a fost creata pentru ela borarea unei platforme care va fi folos ită de catre utilizatori
pentru vînzare -cumpărare a produselor prin intermediul licitațiilor . Interfata aplicației web este simplă si
poate fi ușor î nteleasa de catre ori cine. Aplicația îndeplineste î n sine o mare economisire a timpului
pentru ca elimină negocierea între fiecare cumpărător cu . Platforma dată implementează funcționalitățile
esențiale ale unui panou de anunțuri ceea ce este un avantaj pentru utilizator.
Cuvintele cheie sunt:
Licitații ;
anunțuri ;
proiectare;
platformă .
În continuare ne este descris pe scurt fiecare capitol:
În primul capitol sunt descrise aspecte generale despre parțile împlicite în dezvoltarea si utilizarea
platforme i de licitatii onl ine, abriviaturi obiective si descrierea funcțio nalitaților ce trebue
împlinite. Tot aici se trec în revista tipurile de licitații, principalele soluții deja existente și larg
utilizate, cît și o comparație a acestora cu sistemul dezvoltat în aceasta teza.
În capitolul 2 este abordata proiectarea propriu -zisă a platformei web. Aici este analizata structura
logica a aplicației, utilizind inclusiv și diagramele UML. Sunt discutate motivele pentru care am
ales metodologiile pentru lucrare, precum și lucrările conexe.
În capitolul 3 trateaza problematica implementarii sistemului creat. Se examineaza metodologia
utilizata la proiectarea și implementarea sistemului, instrumentariul utilizat și respectiv
tehnologiile informationale (limbaje de programare, librării, API-uri) folosite.
În capitolul 4 se explică cum funcționează sistemul, componentele vizuale și ce presupun ele,
interacțiunea din viziunea utilizatorului final, prezentînd și imagini din context.
În capitolul 5 este descrisă evaluarea economică a program ului, calculul costul și beneficiul
sistemului elaborat, descrierea situației curentă și situația după finisarea sistemului.
Abstract
This sentence was created for developing a platform that will be used by the users for the purchase
and sale of produc ts through auctions. Interface the web application is simple and can be easily
understood by anyone. The app grants itself a huge time saving because it eliminates the negotiation
between each buyer. The given platform implements the essential functionalit ies of a billboard ad which
is an advantage for the user.
The key words are:
Auctions;
ads;
design;
platform.
Further we briefly described each chapter :
In the first chapter are described the general aspects about the parties împlicite in the development
and use of the platform of online auctions, abriviaturi objectives and description funcționalitaților
what you have accomplished. Here we review the types of auctions, the main solutions already
existing and widely used, as well as a comparison of them wi th the system developed in this
thesis.
In chapter 2 is addressed the actual design of the web platform. Here is analyzed the structure of
the logic of the application, using including and UML diagrams. Are discussed the reasons for
which I chose the metho dologies for work, as well as related work.
In chapter 3 treats the issue of the implementation of the system created. It examines the
methodology used in the design and implementation of the system, the instruments used and the
respective informational te chnologies (programming languages, libraries, API ’S) used.
In chapter 4 explains how the system works, the components of the visual and what I assume
them, the interaction of the vision of the end -user, presenting images out of context.
In chapter 5 is des cribed the economic assessment of the program, the calculation of the cost and
benefit of the system developed, the description of the situation current situation after the end of
the system.
Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ………………. 10
1 Analiza domeniului de studiu ………………………….. ………………………….. ………………………….. ………………. 11
1.1 Obiectivele sistemului ………………………….. ………………………….. ………………………….. ……………………… 12
1.2 Clasele de utilizatori ………………………….. ………………………….. ………………………….. ………………………… 12
1.3 Analiza altor sisteme existente ………………………….. ………………………….. ………………………….. ………….. 13
1.4 Formularea cerințelor fața de sistemul final ………………………….. ………………………….. …………………….. 14
2 Proiectarea sistemul ………………………….. ………………………….. ………………………….. ………………………….. .. 15
2.1 Comportamentul sistemului ………………………….. ………………………….. ………………………….. ………………. 16
2.2 Structura sistemului ………………………….. ………………………….. ………………………….. …………………………. 25
2.3 Diagrama de amplasări ………………………….. ………………………….. ………………………….. …………………….. 26
3 Realizarea sistemului ………………………….. ………………………….. ………………………….. ………………………….. 27
3.1 Instrumentele folosite ………………………….. ………………………….. ………………………….. ………………………. 28
3.2 Selectarea limbajului de programare ………………………….. ………………………….. ………………………….. ….. 29
3.3 Structura proiectului ………………………….. ………………………….. ………………………….. ………………………… 35
4 Documentarea produsului realizat ………………………….. ………………………….. ………………………….. ………… 37
5 Argumentarea economică ………………………….. ………………………….. ………………………….. ……………………. 43
5.1 Scopul elaborării proiectului din punct de vedere economic………………………… ……………. ………… …… 44
5.2 Planul calendaristic în scopul optimizării volumului de timp și resurselor de muncă necesare………. . 44
5.3 Analiza SWOT ………………………….. ………………………….. ………………………….. ………………………….. ……. 46
5.4 Calculul indicatorilor economici ……………………………….. ……………. ……………………………………………. . 47
5.4.1 Invest iții în imobilizari corporale și necorporale pe termen lung ………………………….. ………………….. 47
5.4.2 Consumuri directe de materiale ………………………….. ………………………….. ………………………….. ………. 48
5.4.3 Consumuri directe p rivind retribuirea muncii ………………………….. ………………………….. ……………….. 49
5.4.4 Consumuri indirecte ………………………….. ………………………….. ………………………….. ………………………. 52
5.4.5 Amortizarea imobilizărilor corporale și necorporale pe termen lu ng ………………………….. …………….. 53
UTM 526.2 .563 ME
Mod. Coala Nr. document Semnăt. Data
Elaborat Zgardan V .
Dezvoltarea unei
platforme de licitații
online.
Litera Coala Coli
Conducător Leahu A . 8 58
Consultant Lisnic I. UTM FCIM
TI– 143
Aprobat Ciorbă D .
5.4.6 Costul de elaborare a proietului ………………………….. ………………………….. ………………………….. ………. 54
5.4.7 Definirea și calculul rentabili tății financiare și economice a proiectului ………………………….. ……….. 55
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. …………………. 56
Anexa A ………………………….. ………………………….. ………………………….. ………………………….. ………………….. 58
UTM 526.2 .563 ME Coala
9 Mod. Coala Nr. document Semnăt. Data
10
Introducere
În această lucrare este prezentat procesul de proiectare, dezvoltare , elaborare și lansarea unui
sistem informațional. Scopul siste mului efectuat este de a oferi posibilitatea clie nților care sunt în
căutarea produselor și serviciilor la prețul cel mai avantajos de pe piață. Aplicația web va servi ca o
platforma unde se vor posta anunțuri și vînzarea lor prin intermediul licitațiilor pentru a obține oferta cea
mai avantajoasă. Toate aceste posibilități vor fi disponibile în varianta web, deci cei ce caută cea mai
bună ofertă vor avea posibilitate de a primi informația despre anunțuri din orice colț al lumii de pe orice
dispozitiv conectat la internet.
În lucrarea dată este prezentat procesul de proiectare și alegerea tehnologiilor necesare pentru a
realiza acest proiect, descrierea a plusurilor fiecăre i tehnologii și descrierea acestora .
De asemenea în lucrare se descrie modul de proiectare a unui sistem în limbajul de modelare
UML . În această parte a lucrării este demonstrat funcțiunalul care se va realiza în sistemul final și
descrierea lui.
Printre cele mai faimoase tipuri se numără: licitația englezească, licitația olandeză și tipul de
licitare închis. În cadrul celor englezeșt i, adjudecătorul pornește de la un preț de bază, iar ofertanții ridică
prețul până când se ajunge la un preț care este acceptabil numai pentru un anume ofertant. Pe de altă
parte, în cadrul licitațiilor olandeze, adjudecătorul pornește de la un preț de vâr f pe care îl micșorează
până când se găsește un ofertant sau un cumpărător pentru obiect la acel preț. În cadrul tipului de licitare
închis, ofertanții își prezintă ofertele de cumpărare în plicuri închise, iar adjudecătorul o alege pe cea mai
atragătoare pentru el sau ea.
Interfața aplicației date va fi alcătuită dintr -o pagina ce va oferi posibilitatea utilizatorului de a se
înregistra sau de a se loga în profilul său în caz ca este deja înregistrat. După logare va fi lansată aplicația
web cu toate anunțurile și cu coordonatele celui ce a postat anunțul. Fereastra dată va conține și butoane
ce vor oferi posibilitatea de viziona profilul vînzătorului/cumpărătorului, accesare a chat -ului și ieșire
din sistem.
În lucrare este descris de asemenea întregul proces de creăre a aplicației cu accentuarea
algoritmilor și metod ologiilor alese. În continuare este descris complet modul în care funcționează
sistemul și un îndrumar de utilizare a sistemului care va arăta succesiunea efectuării pașilor pentru a
utiliza corect sistemul .
11
1 Analiza domeniului de studiu
Una din cele mai răspândite metode de a procura sau vinde unele produse sau servicii online este
prin intermediul saiturilor sau a păginilor cu anunturi online. Însă atunci când avem nevoie de a vinde un
produs sau serviciu urgent noi suntem nevoiți să indicăm un preț mai scăzut decît media pe piață, în
această situație unica soluție sunt licitațiile prin intermediul cărora avem posibilitate de a vinde produse
sau servicii într -o perioadă scurtă d e timp și cu un preț adecvat.
Pe parcursul anilor afacerea firmei, se poate spune și piața af ectată, care la început a fost de la
persoană part iculară la persoană particulară Consumer -To-Consumer , au devenit din ce în ce mai mult o
platformă "de la comerc iant la persoană particulară Business -to-Consumer, altfel spus, a evoluat de la
talcioc la prăvălie, deoarece pe lângă persoanele particulare, care de obicei vând obiecte mai mult sau mai
puțin uzate, acum mai există și foarte mulți comercianți profesionișt i cu articole în stare nouă cu garanție.
Comertul electronic a devenit foarte cunoscut in societatea informationala care se dezvolta continuu din
1990. Internetul a facut comertul electronic sa fie disponibil unui larg grup de utilizatori, in principal mic i
intreprinderi si utilizatori caznici. In cadrul comunitatii de afaceri, indreptarea catre eficienta si
productivitate crescuta este de asteptat sa duca catre o mai mare acceptare a comertului electronic catre
intreprinderi ca fiind o cale de a face aface ri in viitor. Dezvoltarea tehnologica a infrastructurii si a
mecanismelor de acces si costurile in scadere vor ajuta dezvoltarea acestuia. Totusi temerile de securitate
si lipsa de instruire pot fi un obstacol in dezvoltarea comertului electronic.
Comertul electronic ofera o serie de avantaje majore. Principale avantaje sunt si cele mai
cunoscute atuuri din lume: timpul si banii. In ceea ce priveste timpul, se face o foarte mare economie.
Utilizatorul poate sa vada o lista de produse si preturi in cateva minute din confortul propriului fotoliu.
Nu mai sunt necasare deplasari sau alte actiuni care consuma timp inutil. Aceasta economie de timp
rezulta astfel intr -o crestere a rentabilitatii, de unde reiese si o economie de bani.
În practică, există mai multe tipuri de licitații. Printre cele mai faimoase tipuri se numără: licitația
englezească, licitația olandeză și tipul de licitare închis. În cadrul celor englezești, adjudecătorul pornește
de la un preț de bază, iar ofertanții r idică prețul până când se ajunge la un preț care este acceptabil numai
pentru un anume ofertant. Pe de altă parte, în cadrul licitațiilor olandeze, adjudecătorul pornește de la un
preț de vârf pe care îl micșorează până când se găsește un ofertant sau un c umpărător pentru obiect la acel
preț. În cadrul tipului de licitare închis, ofertanții își prezintă ofertele de cumpărare în plicuri închise, iar
adjudecătorul o alege pe cea mai atragătoare pentru el sau ea.
12
1.1 Obiectivele sistemului
Scopul de baz ă al aplicației al sistemului dat este de a oferi produse și servicii la un preț cel mai
avantajos din cardrul pieții.
Licitatiile publice sunt o oportunitate pentru dezvoltarea din punct de vedere economic a unei
societati si ofera sansa de a contract a noi lucrari, în cazul în care doriti sa participați la o licitatie, trebuie
sa urmati o anumita procedura: primul pas este de a urmari publicarea licitatiilor care va intereseaza,
pentru a putea face o oferta cat mai buna si intr -un timp cat mai scurt.
Interfața aplicației date va fi alcătuită dintr -o pagina ce va oferi posibilitatea utilizatorului de a se
înregistra sau de a se loga în profilul său în caz ca este deja înregistrat. După logare va fi lansată aplicația
web cu toate anunțurile și cu coor donatele celui ce a postat anunțul. Fereastra dată va conține și butoane
ce vor oferi posibilitatea de viziona profilul vînzătorului/cumpărătorului, accesare a chat -ului și ieșire
din sistem.
1.2 Clasele de utilizatori
În continuare vor fi arătate clas ele de utilizatori al aplicației date. cu toate posibilitățile în cadrul
aplicației date.
– Clasa Admin
Administratorul va fi capabil să monitorizeze baza de date cu toți utilizatorii aplicației. Adminul
va putea efectua și schimbări atât la nivel de des ign cât și funcțional al aplicației.
– Clasa Client
Călătorii vor fi persoanele care vor putea vizualiza postările vînzătorilor și vor putea face legătură
cu ei. Ei vor avea posibilitatea de a accesa și un chat pentru a discuta detaliile anuțului.
– Clasa Vînzător
Vînzătorii vor fi capabili să primească notificări despre starea anunțului la care urmaeză să
participle clienții, și desigur să acceseze chatul dintre clienți și vînzători.
13
1.3 Analiza altor sisteme existente
În urma unui studio am determinat câte va aplicații ce activează după principiul dat:
− DealDash;
− eBay;
DealDash este cea mai longevivă taxa de licitare Licitatie site -ul, și unul dintre cea mai mare plata
de participare Licitatie site -uri web, în Statele Unite. împreună cu site -uri similare, a f ost criticat de
grupurile de consumatori, fiind costisitoare pentru utilizatorii, și pentru a avea asemănări cu jocuri de
noroc.
DealDash a fost fondată în 2009 de către William Wolfram, Modelul de afaceri al companiei, cu
site-uri anterioare, este că clie nții introduce un proces de licitare în cazul în care ei plătesc pentru fiecare
ofertă pe un articol, indiferent dacă ei reușesc sau nu. Fiecare ofertă marginal crește prețul elementului
până la sfârșitul licitației, moment în care elementul es te vândut la ultimul ofertant. DealDash diferă de
predecesorii în principal în care pierde ofertanți sunt dat o opțiune de a aplica bani au avut petrecut fără
succes de licitare pe un element față de elementul de la un preț de vânzare cu amănuntul postat de
cumpărare.
eBay Inc. este o companie americană de comerț și shopping online care deține diverse site-uri
web și face afaceri pe Internet, aparținând astfel de branșa E-commerce. Tot „eBay” se numește și
aplicația Internet principală a acestei companii. La ora actua lă (2008) eBay este cea mai mare companie
din lume axată pe licitații online. Compania a fost fondată în 1995 de către Pierre Omidyar în orașul San
José, California, SUA, inițial sub numele "auctionweb". Între timp ea s -a extins în circa 30 de țări de pe
glob, printre care și în Anglia, Franța, Italia, Germania, Austria, Elveția ș.a. Relativ recent eBay a
cumpărat companiile d e renume mondial PayPal, Skype și altele; ulterior însă Skype a fost cumpărată de
către Microsoft iar PayPal a devenit companie indep endentă.
Pe parcursul anilor afacerea firmei, se poate spune și piața afectată, care la început a fost "de la
persoană particulară la persoană particulară" ("Consumer -To-Consumer" sau C2C), au devenit din ce în
ce mai mult o platformă "de la comerciant la persoană particulară" ("Business -to-Consumer" sau B2C),
altfel spus, a evoluat de la talcioc la prăvălie, deoarece pe lângă persoanele particulare, care de obicei
vând obiecte mai mult sau mai puțin uzate, acum mai există și foarte mulți comercianți profes ioniști cu
articole în stare nouă cu garanție.
14
Având același principiu de lucru toate aceste servicii împart aceleași avantaje și dezavantaje cum
ar fi :
Avantaje:
− Este disponibilă opțiunea de vînzare/cumpărare prin intermediul licitațiilor;
− Accesul la pr oduse de oriunde;
− Cel mai bun preț pe piață;
− Comunicare între vînzător/cumpărător;
Dezavantaje :
− Timpul de așteptare a produsului;
− Cerințe stricte fața de produsele și serviciile oferite;
1.4 Formularea cerințelor fața de sistemul final
Trebuie să se real izeze o aplicație web pentru a vinde diferite mărfuri (loturi) de către utilizatori.
Loturile trebuie să fie grupate pe categorii tematice, care exercită de către un administrator. Arborele de
categorii ar trebui să fie multi -nivel, fără a limita numărul d e atașamente.
Utilizatorul are posibilitatea de a paria în perioada de desfășurare a licitației, toate pariurile trebuie
păstrate în baza de date. Câștigătorul este utilizatorul care a propus pariul maxim. Pe pagina de lot, care
este activ, trebuie să afiș eze prețul curent (cota maximă), și trebuie să pună în aplicare o actualizare a
acestei valori, fără a actualiza pagina.
Tabloul de bord cu următoarele posibilități: management profil, cu loturi, vizualiza statistici
privind participarea la licitatie.
Interfața de administrator, cu următoarele posibilități: gestionare categorii, utilizatori, loturi (va fi
suficient de editare și posibilitatea de a șterge), vizualizarea istoricului de licitații finalizate.
În rezultatul analizei se poate de stabilit următoa rele funcții și proprietăți a sistemului ce trebuie de
creat.
Sistemul trebuie:
să permită de a vizualiza toate anunțurile valabile;
posibilitate de a grupa anunțurilor conform categoriilor;
să permită de a vizualiza detaliile despre o produse;
posibilita te de lua legătura cu vînzătorul prin intermediul chat -ului;
posibilitate de căutare a anunțurilor după un anumit criteriu;
posibilitate de a adauga anunțuri în lista favorită;
15
2 Proiectarea sistemul
In aceasta lucrare mi -am propus sa realizez un program web care sa simuleze o licitatie avand mai
multe tipuri si categorii. Utilizatorii vor trebui sa fie logati pentru a putea licita si licitaiile si conturile vor
fi gestionate printr -o interfata de administare.
Fiecare sistem informatic are un ciclu de via ță al său, care reprezintă totalitatea etapelor ce sunt
parcurse în procesul de dezvoltare a aplicației respective . Din punct de vedere al dezvoltatorilor, etapele
cele mai importante sânt cele în care se proiectezi produsul soft. Durata ciclului de viață al sistemului
informatic depinde de caracteristicele, de calitatea și performanța acestuia precum și de o serie de factori
externi ai sistemului informatic cum sânt:
− stabilitatea funcțională;
− relațiile sale cu mediul înconjurător;
− dinamica metodelor tehni ce și conceptuale.
Dezvoltarea sistemului informatic de înaltă calitate necesită procese de producție software
utilizate pentru dezvoltarea acestora, principii de inginerie software pe care să se bazeze aceste procese și
care încorporează practici ale ing ineriei software.
Metodele de analiză și proiectare orientată -obiect permit parcurgerea etapelor ciclului de viața a
aplicațiilor într -o maniera iterativă. În acest fel proiectul se împarte în proiecte mai mici, fiecare având
ciclul lui de viața, parcurs d e mai multe ori. În rezultat modelul sistemului elaborat crește treptat ceea ce
permite planificare eficientă a lucrărilor și controlul riscurilor. La finisarea acestei iterații vom obține o
versiune primară a acestui sistem .
Limbajul vizual de modelare U ML nu este un limbaj vizual de programare, deoarece nu dispune
de întreg sprijinul semantic și vizual pentru a înlocui limbajele de programare. Limbajul este destinat
vizualizării, specificării, construirii și documentării sistemelor de aplicații, dar are limitări în ceea ce
privește generarea codului. UML reunește cele mai bune tehnici și practici din domeniul ingineriei
programării, care și -au dovedit eficiența în construirea sistemelor complexe.
Pentru a înțelege UML -ul, trebuie înțelese trei elemente ma jore: blocurile constructive, regulile
care dictează modul în care aceste blocuri pot fi combinate, precum și mecanismele generale, utilizate de
OMT.
Blocurile constructive se împart în trei categorii: elementele, relațiile și diagramele. Pentru fiecare
dintre acestea s -a încercat identificarea metodelor de analiză și proiectare din care provin.
Elementele sunt abstracțiuni care reprezintă piesele fundamentale într -un model. La rândul lor se
împart în: elemente structurale, elemente comportamentale, element e de adnotare și elemente de grupare.
Relațiile sunt abstracțiuni ce leagă elementele între ele. O relație este o conexiune între elemente.
În modelarea orientată obiect, există patru tipuri de relații: dependente, generalizări, asocieri și realizări.
16
Diag ramele sunt prezentări grafice ale unui set de elemente, cel mai adesea exprimate ca un graf
de noduri (elementele) și arce (relațiile). Regulile stabilesc cum trebuie grupate blocurile constructive.
Exista reguli detaliate pentru definirea modelelor bine formate. Sunt admise însă și modele mai
puțin decât bine formate, în sensul ca se pot admite și modele cu elemente ascunse, modele incomplete
sau modele inconsistente, cel puțin pentru iterațiile preliminare ale procesului de dezvoltare .
2.1 Comportamentu l sistemului
Una dintre condițiile ce trebuie îndeplinite ca un proiect să aibă succes este aceea ca cerințele
proiectului să fie definite într -o manieră care să permită o ușoară înțelegere, indiferent de nivelul de
pregătire informatică al celui care este implicat în proiect. De asemenea, modificările ce apar pe parcurs
în cerințe trebuie să fie cu ușurință asimilate de către membrii echipei de dezvoltare.
Diagramele de cazuri de utilizare au rolul de a reprezenta într -o formă grafică funcționalitățile pe
care trebuie să le îndeplinească sistemul informatic în faza sa finală. De aceea modelul realizat de
diagramele de cazuri de utilizare alături de documentele de descriere succintă a fiecărui caz de utilizare
determinat, poartă numele de model al cerințelo r sistemului.
De asemenea este important de menționat că fața de sistemul planificat se pun cîteva cerințe
nefuncționale, dar necesare:
sistemul va fi ușor de utilizat;
sistemul va arăta bine;
utilizarea anumitor părți a sistemului să fie intuitivă;
aplica ția trebuie să lucreze repede;
aplicația trebuie să permită ca anumite părți ale ei să poată fi utilizate anonim (un exemplu –
exprimarea unei opinii poate fi anonimă).
Modelarea vizuală în UML poate fi reprezentată ca un oarecare proces de lansare pe niv eluri de la
cel mai general și abstract model conceptual al sistemului inițial către model logic și mai apoi fizic, ce
corespunde unui sistem de program. Pentru atingerea acestui scop de la început se creează un model în
formă de diagrama cazurilor de util izare (use case diagram) care descrie destinația funcțională a
sistemului sau cu alte cuvinte descrie ceea ce sistemul va executa în procesul său de funcționare.
Diagrama cazurilor de utilizare reprezintă un model inițial conceptual al unui sistem în proce sul de
proiectare și exploatare. Funcționalitățile sistemului accesate de utilizatorul simplu sunt la fel ca și în
orice sistem informațional ce prelucrează date și va dispune de bază de date.
17
Figura 2.1 – Funcțiile generale pe care le ofera sistemul pen tru toate clasele de utilizatori
Sistemul permite:
de a vedea anunțurile deja postate de către vînzători;
de a crea anunțuri cu informație detaliată despre produs;
de a crea posibilitate de comunicare intre client și vînzător;
posibilitate de a vedea info rmația despre persoane ce au postat anunțul.
posibilitate de a crea un anunț de vînzare cu ajutorul unui constrcutor;
posibilitate de a vizualiza lista de anunțurile disponibile la momentul dat;
18
Figura 2.2 – Diagrama USE CASE corespunzătoare funcționalit ăților unui sistem de licitatii online
Sistemul de licitatii a fost reprezentat printr -o entitate numită actor , deoarece o agentie online
execută funcții pentru atingerea unor a numite scopuri bine determinate. În figura dată este prezentata
interacțiunea dintre utilizator si program prin relația de asociere, deoarece mereu între aceste elemente
există schimb de informații și mesaje.
Figura 2.3 – Diagrama Use -Case „Logare”
19
În figura 2.3 am reprezentat logarea unui utilizator. Utilizatorul introduce emai l, se verifică
corectitudinea, după care utilizatorul introduce parola și tastînd butonul ”Logare” se trimit datele la
server, iar serverul transmite un răspuns utilizatorului.
În limbajul UML colaborarea între elemente se cercetează în aspectul informati v al comunicațiilor
lor, adică obiectele care interacționează fac schimb de informație anumită. Pentru modelarea colaborării
între obiecte în limbajul UML se utilizează diagramele de secvență. Vorbind despre aceste diagrame se
iau în considerație două aspe cte.
Diagrama de stare redă cele 3 stări esențiale ale utilizatorului, care sunt:
– deschiderea documentului;
– completarea intervalelor de timp;
– primirea rezultatelor in urma prelucrării.
O diagramă de stări modelează viața unui obiect prin stările sale și sc himbările de stare care au loc
pe parcursul vieții. Schimbările de stare sunt determinate de evenimente.
O diagrama de stări reprezintă un automat cu stări finite.
Diagramele de interacțiune modelează interacțiunile dintre obiecte. Diagramele de stări mod elează
efectul acestor interacțiuni asupra stării interne a fiecărui obiect.
Mesajele din diagramele de interacțiune sunt evenimente care schimbă starea internă a obiectelor.
Examinând diagramele de interacțiune putem descoperi care sunt obiectele care ar trebui modelate prin
diagrame de stări. Multe obiecte sunt create, referite și apoi distruse. Ele au o singură stare intermediară și
deci nu are sens modelarea lor printr -o digramă de stări. Alte obiecte însă, care răspund la mesaje în mod
diferit pe parc ursul vieții se pot prezenta la mod elare prin diagrame de stări .
20
Figura 2.4 – Diagrama de secvență „Inregistrarea unui Utilizator”
În figura 2.4 am reprezentat diagram de secvență, anume cum are loc înregistrarea unui profil nou în
aplicație. Vizita torul accesează aplicația, tastează butonul de înregistrare, după care întroduce cîteva date
personale. Tastează ”înregistrare”, și datele se trimit de la interfață aplicației web server, baza de date
verifică datele și returnează un email de verificare a contului creat.
Figura 2.5 – Diagrama de secvență „Editare profil”
21
În figura 2.5 am reprezentat cum are loc editarea unui profil în aplicație. Vizitatorul accesează pagina,
tastează editează profil, după care modifică cîteva date personale. Tastează ”Su bmit”, și datele se trimit
de la interfață la baza de date, baza de date verifică datele și returnează un răspuns.
Figura 2.6 – Diagrama de secvență „Efectuarea unei Tranzacții”
În figura 2.6 este reprezentată diagrama de secvență în care este descisă modalitatea efectuării unei
tranzacții prin intermediul aplicatiei. Utilizatorul accesează pagina anunțului, introduce datele personale și
tastează ”Achită”, după care datele se trimit de la interfață la web server, iar serverul la rîndul său crează
factur a și efectuează tranzacția.
Figura 2.7 – Diagrama de secvență „Utilizarea aplicației”
22
În figura 2,7 am reprezentat utilizarea aplicației, u tilizatorul vizualizează anunțurile, selectează anunțul
dorit și vizualiseaza detailat anunțul. Datele se trimit d e la aplicație la baza de date, baza de date verifică
datele și trimite un răspuns care este afișat utilizatorului.
Figura 2.8 – Prezentarea generală a modelului
În Figura 2.8 este reprezentată relația de dependență cu clasele: Formular afișare și Form ular
introducere. Relația de compiziție este constituită între clasa Aplicație și clasele care constituie
elementele de baza al e aplicației: Anunțuri ți Timp.
23
Figura 2.9 – Editarea unui anunt
În figura 2.9 am reprezentat lucrul cu un anunț personal exi stent. Se afișează pagina cu anunțuri, după
care utilizatorul selecteaza anunțul dorit, la pasul următor el efectuiază în paralel trei acțiuni: Editare
nume, descriere, tip. După efectuarea operațiilor dorite se verifică datele, datele sunt salvate în baz a de
date.
Figura 2.10 – Operațiile la deschiderea aplicației
24
În figura 2.10 am reprezentat posibilitatea de vizualizare a anunturilor de către utilizator la deschiderea
aplicației. . Utilizatorul selectează pagina de logare, introduce datele personale, d acă datele personale
sunt greșite aplicația îl introduce din nou la pagina de logare, dacă datele de logare sunt introduse
correct, utilizatorul are acces la funcționalul aplicației.
Figura 2.11 – Componentele de baza a sistemului informational
În figu ra 2 .11 este reprezentată componenta aplicație, pentru funcționarea căreia este nevoie de
componentele biblioteci speciale de integrare cu proiectul nostru. Formularele reprezintă structura si
designul aplicației. Baza de date este funcționalul aplicației care face legătura dintr utilizatori și anunțuri.
Ca o generalizare, analiza și modelarea sistemului este o problemă destul de minuțioasă și trebuie
de acordat un timp sporit pentru studierea cerințelor și prototipurilor.
Din considerentul că un sistem c omplex reprezintă o structură, care la rândul ei poate fi divizată
în alte subsisteme -structuri, am ales anume această ordine de elaborare a modelelor.
Subsistemele la nivel logic sânt materializate de clase caracterizate prin proprietăți și operații ce -i
pot descrie comportamentul, astfel atenția sporită trebuie atrasă la modelarea domeniului.
25
2.2 Structura sistemului
În acest capitol este proiectată diagrama care reprezintă baza de date utilizată de sistemul
informațional. Diagrama bazei de date poate include tabele, coloane, chei primare, chei străine, relații de
identificare, relații fără identificare, view -uri, proceduri stocate sau domenii (stereotipizate
corespunzător). Pentru a construi diagrama bazei de date va trebui parcurs un proces de ma pare a
modelului logic obiectual (extragerea din diagramele de clase acele clase ale căror obiecte vor deveni
persistente) cu un model logic ce poate fi portat într -o baza de date obișnuita. Modelele bazelor de date
actuale suporta în general următoarele p aradigme:
– modelul relațional;
– modelul relațional obiectual ;
– modelul obiectual.
Maparea modelului obiectual din UML într -un model obiectual(non -SQL) implementabil într -o
baza de date presupune implementarea identității, domeniilor, claselor, asociațiilor si relațiilor de
generalizare. O importanta parte a problemelor de mapare au fost rezolvate o data cu definirea principiilor
de mapare din E/R în relaționale în spec ial în ceea ce privește asociațiile dar chiar si relațiile de
generalizare pentru modelul E /R extins.
Figura 2.12 – Reprezentarea bazei de date
26
2.3 Diagrama de amplasări
Diagrama de amplasare reprezintă poziționarea fizică în rețea a diferitor componente ale
sistemului. Elementele acestei diagrame sînt legate între ele prin relații d e asociere. Procesul de lucru
care leagă utilizatorul de baza de date este destul de complex.
În diagrama 2. 13 sunt arătate principalele dispozitive utilizate pentru funcționarea eficientă a
sistemului . Parte backend va lucra pe un webserver. Pentru a salv a sau obtine date din baza de date se
folosește NPM Package care se conectează la un server unde este amplasat serverul de baze de date. Pe
dispozitivele clientului sunt încărcate modulele care interacționează cu webapi.
Figura 2.13 – Diagrama de ampl asare
27
3 Realizarea sistemului
Sistemul informațional propus reprezintă aplicație web . Una dintre cele mai noi și incitante
tendințe în dezvoltarea web actuală o reprezintă Aplicațiile pe o singură pagină (Single Page Application,
SPA). Diferența dintre o SPA și o aplicație web standard (PHP, MySQL, CSS, HTML și ceva Javascript)
o constituie faptul că în cadrul celei din urmă fiecare navigare la altă pagină necesită o generare completă
a paginii, adică fiecare pagină este complet (re)încărcată (ca atunci când dai refresh în browser la o
pagină) de pe serverul web. În cadrul unei SPA întreg sit e-ul este încărcat o singură dată – atunci când
intri prima oară pe el – și apoi (oricât ai naviga pe respectivul sait) nu mai este niciodată încărcată complet
vreo p agină de pe server (adică nu va mai avea lo c niciun refresh). Evident că s ite-ul va avea mai multe
pagini (de ex. "Home", "About", "Contact" etc. , dar acestea sunt încărcate (împreună cu diverse date) ca
fragmente HTML, fără a se reîncărca complet o pagin ă.
Primul beneficiu care sare imediat în ochi este faptul că o SPA este mult mai rapidă decât o
aplicație standard: nu trebuie mereu să aștepți ca o pagină să fie încărcată complet când o accesezi. Prin
aceasta, o SPA se aseamănă mai mult cu o aplicație de sktop: paginile curg mai ușor una după alta fără a
trebui să aștepți de fiecare dată ca serverul web să reîncarce toate resursele unei pagini înainte de a o reda.
Un alt beneficiu – mai puțin vizibil la prima vedere – este faptul că ma re parte din funcțion alitatea
site -ului este executată pe partea de client (adică în browser) – și nu pe partea de server (cum este într -o
aplicație web standard) și deci aștepți mai puțin după server. Cum este realizată pe partea de client? Cu
ajutorul JavaScript -ului pur sa u a unor Softuri -cadru (frameworks) în Javascript.
Al treilea beneficiu (mai ales pentru designerii web care cunosc JavaScript) este faptul că pot coda
si partea de client și partea de server (de când există node.js ) și partea de server într -un singur lim baj,
cunoscut lor: JavaScript.
Cele mai folosite (și cunoscute) softuri -cadru in JavaScript sunt:
Angular – un framework cu sursă deschisă (open source) dezvoltat și menținut de Google. În
ultimul timp a devenit probabil cel mai folosit. Trăsătura lui car acteristică o constituie faptul că extinde
HTML -ul cu etichete și proprietăți noi. Cu ajutorul directivelor poți chiar tu crea elemente HTML noi.
Backbone – printre primele softuri -cadru în JavaScript apărute. Se pare că lucrează la un nivel mai
bazic, așa că necesită să scrii mai mult cod. Este mai asemănător cu jQuery pentru că în general
manipulezi elemente DOM.
Ember – cunoscut inițial ca Sproutcore 2.0, este un framework făcut pentru a ușura munca
dezvoltatorilor web. Este cel mai nou dintre ele si se pare că este promițător.
Pentru a vede o SPA în acțiune pun mai jos un link către o aplicație demo făcută în Angular.js (a
se observa cum paginile se încarcă fără a se da refresh).
28
3.1 Instrumentele folosite
Programul WebStorm este un instrument pentru de zvoltarea de web -site-uri și de editare HTML,
CSS și cod javascript. Soluția oferă un mod rapid de a naviga prin fișierele și generează o notificare cu
privire la problemele care apar în cod în timp real. JetBrains WebStorm vă permite să adăugați un marcaj
HTML -documente sau elemente SQL direct în javascript. JetBrains WebStorm efectuează implementarea
și sincronizarea proiectelor prin intermediul protocolului FTP.
Folosind echipament de cod HTML/XHTML și XML, WebStorm asigură închiderea automată
stiluri, l ink-uri, atribute și alte elemente de cod. Atunci când se lucrează cu CSS se face completarea
codului de clase, HTML -uri, cuvinte cheie și așa mai departe WebStorm oferă soluția automată probleme
cum ar fi alegerea formatului, de proprietăți, de clase, de link-uri la fișiere și alte atribute CSS. Decizia de
a vă permite să utilizați un instrument de putere Zen coding pentru layout HTML, afișează acțiunile tag –
ului pe pagina web. Produsul efectuează completarea codului javascript -ului pentru cuvintele cheie,
etichete, variabile, parametri și caracteristici DOM și acceptă caracteristici specifice populare browsere.
Puse în aplicare în rezolvarea funcția de refactoring javascript permite de a transforma structura de cod și
fișiere și .js.
WebStorm oferă depanar e de cod javascript și oferă o gamă largă de posibilități: de a găsi punctul
de oprire în HTML și javascript, configurați setările punctului de oprire de urgență, testarea sintaxa de
cod, în timp real, și așa mai departe Produsul acceptă platforma JQuery, YUI, Prototype, DoJo,
MooTools, Qooxdoo și Bindows. WebStorm prevede integrat verificarea textului de pe tag -uri, secvența
de cod de eroare, în scris, și așa mai departe WebStorm vă permite să editați fișierele și sincroniza
automat acestora, la cerere, la distanță de locul de muncă sau de depozitare.
Produsul acceptă funcția de control al versiunilor și preventive cod variantă și înregistrează toate
realizate de acțiune și schimbare. Prin stabilirea de istorie în WebStorm poate recupera sonore de
exprimare , blocuri și chiar întregi de fișiere.
Node.js este un mediu open -source, cross -platform care rulează pe JavaScript în timp -real pentru
executarea JavaScript cod partea -client . Din p unct de vedere istoric, JavaScript a fost utilizat în principal
pentru cli ent-side scripting, în care script -urile scrise în JavaScript sunt încorporate într -o pagină web
HTML, pentru a fi rulat partea de client de un motor de JavaScript în browser -ul utilizatorului. Node.js
permite JavaScript pentru a fi utilizate pentru server -side scripting, și rulează script -uri server -side pentru
a produce conținut de pagină web dinamică înainte de filme este trimis utilizatorului browser -ul web.
Prin urmare, Node.js a devenit unul dintre elementele fundamentale ale Jav aScript"peste tot"
paradigma, care permite dezvoltarea de aplicatii web pentru a unifica in jurul un singur limbaj de
programare, mai degrabă decât să se bazeze pe o altă limbă pentru scrierea partea de server script -uri.
Deși .js este extensia fișierului convenționale pentru cod JavaScript, numele "Node.js" se referă la un
29
fișier special în acest context și este doar denumirea produsului. Node.js are o arhitectură orientată
eveniment capabile să asincrone i/o. Acestea design scopul de opțiuni pentru a optimiza tranzitată și
scalabilitate în aplicații Web cu mai multe operații de intrare/ieșire, precum și pentru aplicații Web în
timp real (de exemplu, programe de comunicare în timp re al și jocuri de browser -ul). Node.js distribuite
proiectul de dezv oltare, de Fundația Node.js, este facilitată de programul de proiecte d e colaborare Linux
Foundation. Corporațiile care utilisează Node.js includ GoDaddy, Groupon , IBM, LinkedIn , Microsoft,
Netflix, PayPal, Rakuten, SAP, Tuenti, Voxer, Walmart, Yahoo! și Cisco Systems.
Node.js permit e crearea servere lor Web și instrumente de networking, folosind JavaScript și o
colecție de "module", care se ocupa de funcționalitatea de bază diferite. Modulele sunt prevăzute pentru
sistemul de fișiere i nput/output , networking (DNS, HTTP, TCP, TLS/SSL s au UDP), date binare
(tampoane), criptografie funcții, fluxuri de date și alte funcții de bază. Node.js module utilizează un API
proiectat pentru a reduce complexitatea de a scrie aplicații pe server. Aplicațiile dezvoltate pe platforma
Node.js pot rula pe Linux, macOS , Microsoft Windows, non -stop, și servere Unix. Alternativ, ei pot fi
scrise cu Co ffeeScript (o alternativă de JavaScript), Lance sau mașina de scris (tastat puternic forme de
JavaScript) sau orice altă limbă pe care po ate compila pentru Jav aScript. Node.js este utilizat în principal
pentru a construi programe de rețea, c um ar fi servere de Web. C ea mai mare diferență între Node.js și
PHP este că cele mai multe funcții în PHP sunt bloca te până la finalizarea (comenzi execute numai după
comenz i anterioare ați terminat), în timp ce funcțiile în Node.js sunt concepute pentru a fi non -blocat e
(comenzi executa concom itent sau chiar și în paralel, și de a folosi callback semnal finalizarea sau
eșecul).
3.2 Selectarea limbajului de programare
JavaS cript (JS) este un limbaj de programare orientat obiect bazat pe
conceptul prototipurilor. Este folosit mai ales pentru introducerea unor funcționalități în paginile web,
codul JavaScript din aceste pagini fiind rulat de către browser. Limbajul este binecu noscut pentru
folosirea sa în construirea siturilor web, dar este folosit și pentru accesul la obiecte încastrate (embedded
objects) în alte aplicații. A fost dezvoltat inițial de către Brendan Eich de la Netscape Communications
Corporation sub numele de M ocha, apoi LiveScript, și denumit în final JavaScript.
În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio
legătură. Ca și Java, JavaScript are o sintaxă apropiată de cea a limbajului C, dar are mai multe î n comun
cu limbajul Self decât cu Java. Schimbarea numelui din LiveScript în JavaScript s -a făcut cam în același
timp în care Netscape încorpora suport pentru tehnologia Java în browserul web Netscape Navigator.
Microsoft a implementat limbajul JavaScript sub numele de JScript, cu o serie de modificări și
extensii față de implementarea Netscape. Pe platforma Windows, JScript este unul din limbajele
30
executabile de către Windows Script și, deci, poate fi folosit pentru scriptarea aplicațiilor ce suportă
Windo ws Script, de exemplu Internet Explorer, sau chiar sistemul de operare Windows.
Asociația ECMA a standardizat limbajul JavaScript/JScript sub numele ECMAScript (standardul ECMA –
262)
Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor web. Programatorii web pot
îngloba în paginile HTML script -uri pentru diverse activități cum ar fi verificarea datelor introduse de
utilizatori sau crearea de meniuri și alte efecte animate.
Browserele rețin în memorie o reprezentare a unei pagini web sub forma unui arbore de obiecte și
pun la dispoziție aceste obiecte script -urilor JavaScript, care le pot citi și manipula. Arborele de obiecte
poartă numele de Document Object Model sau DOM. Există un standard W3C pentru DOM -ul pe care
trebuie să îl pună la dispoziție un browser, ceea ce oferă premiza scrierii de script -uri portabile, care să
funcționeze pe toate browserele. În practică, însă, standardul W3C pentru DOM este incomplet
implementat. Deși tendința browserelor este de a se alinia standardului W3C, unele din acestea încă
prezintă incompatibilități majore, cum este cazul Internet Explorer.
O tehnică de construire a paginilor web tot mai întâlnită în ultimul timp este AJAX, abreviere de
la „Asynchronous JavaScript and XML”. Această tehnică constă în e xecutarea de cereri HTTP în fundal,
fără a reîncărca toată pagina web, și actualizarea numai anumitor porțiuni ale paginii prin manipularea
DOM -ului paginii. Tehnica AJAX permite construirea unor interfețe web cu timp de răspuns mic, întrucît
operația (costisitoare ca timp) de încărcare a unei pagini HTML complete este în mare parte eliminată.
NPM este un manager de pachete pentru limbajul de programare JavaScript. Este managerul de
pachete implicit pentru JavaScript runtime mediu Node.js. Acesta constă dintr -un virgulã linie client,
numită npm si o baza de date online publice și plătit -pentru pachetele privat, numit registrul npm.
Registrul este accesat prin intermediul softului, și pachetelor disponibile p ot fi răsfoite și cautat prin site –
ul npm. Managerul de pachete și registru sunt gestionate de npm, Inc
NPM este inclus ca o caracteristică recoma ndată în Node.js de instalare. npm constă dintr -un
virgulã linie client care interacționează cu un registru l a distanță. Acesta permite utilizatorilor de a
consuma și distribui module, JavaScript care sunt disponibile în registrul. Pachete registrul în CommonJS
format și include un fișie r de metadate în JSON format. P este 477.000 pachetele sunt disponibi le pe
registrul principal npm. R egistry a nici un proces de verificare pentru prezentarea, ceea ce înseamnă că
pachetele găsit poate fi de calitate scăzută, nesigure, sau rău intenționat. Î n schimb, npm se bazează pe
rapoartele de utilizator să ia în jos pachete d acă acestea încalcă politicile de a fi nesigure, rău inte nționat
sau scăzută calitate. N pm expune statistici, inclusiv numărul de descărcări și numărul de pachete în
funcție pentru a ajuta dezvoltatorii în a j udeca calitatea ambalajelor. Î n martie 2016, npm a atras atenția
presei după un pachet numit planșa de stânga, care a fost depindea de multe pachete populare JavaScript,
a fost nepublicat e, ca urmare a unei dispute. Deși pachetul a fost re -publicat 3 ore mai târziu, a cauzat
31
perturbarea pe scară largă , care să conducă npm pentru a schimba politicile sale privind Anulare publicare
pentru a preveni un eveniment similar în viitor
NPM poate gestiona pachetele care sunt locale dependente de un anumit proiect, precum și
instrumente de JavaScr ipt la nivel gl obal instalat. Când se utilizează ca un manager de dependență pentru
un proiect local, npm pot instala, într -o singură comandă, toate dependențele unui proiect prin fișierul
package.json. din fișierul package.json, fiecare dependență poate specifica o seri e de versiuni valabile
folosind sistemul de semantică versiuni, care permite dezvoltatorilor să auto -update pachetele lor în
același timp evita modificări nedorite de rupere. npm oferă, de asemenea, versiunea bumping instrumente
pentru dezvoltatori pentru a eticheta lor de pachete cu o anumită versiune.
Figura 3 – Arhitectura managerului de pachete npm
32
MongoDB este o bază de date NoSQL open -source orientată pe documente. Acestă bază de date
beneficiază de suport din partea companiei 10gen. MongoDB face parte din familia de sistemelor de baze
de date NoSQL. Diferența principală constă în faptul că stocarea datelor nu se face folosind tabele precum
într-o bază de date relațională, MongoDB stochează datele sub formă de documente JSON cu scheme
dinamice .
MongoDB este o bază de date open -source NoSQL scrisă în C++. Aceasta poate conține mai
multe baze de date, colecții și indecși. În unele cazuri (baze de date și colecții ) aceste obiecte pot fi create
implicit. Odată create, ele se găsesc în catalogul s istemului db.systems.collection, db.system.indexes.
Colecțiile conțin documente (BSON). Aceste documente conțin la rândul lor mai multe câmpuri. În
MongoDB nu există câmpuri predefinite spre deosebire de bazele de date relaționale, unde există
coloanele ca re sunt definite în momentul în care tabelele sunt create. Nu există schemă pentru câmpurile
dintr -un document, acestea precum și tipurile lor pot varia. Astfel nu există operația de „alter table”
pentru adăugare de coloane. În practică este obișnuit ca o colecție să aibă o structură omogenă, deși nu
este o cerință, colecțiile putând avea structuri diferite. Această flexibilitate presupune ușurință în migrarea
și modificarea imaginii de ansamblu asupra datelor.
Caracteristicile MongoDB :
− Stocarea datelor sub formă de documente
Baza de date MongoDB stochează obiecte (documente). Aceste documente reduc nevoia de join;
− Prezintă support pentru indexare
Indexarea pe fiecare din atribute se face în modul tradițional (RDBMS) asupra cheilor de regăsire ale
documente lor;
Disponibilitate – Disponibilitatea datelor este asigurată printr -un proces automat de failover;
− Auto -Sharding
Shardingul sau partiționarea datelor pe orizontală se face automat. Citirile și scrierile sunt distribuite pe
partiții. Lipsa joinurilor face ca interogările distribuite să fie rapide;
− Limbajul de interogare
Limbajul de interogare este îmbunatatit și păstreaza principii SQL si C++;
MongoDB are drivere oficiale pentru principalele limbaje de progra mare și medii de dezvoltare. De
asemenea, e xistă un număr mare de drivere neconfirmate sau sprijinite de comunitate pentru alte limbaje
de programare care nu sunt suportate oficial.
33
Angular este un framework open -source JavaScript construit și întreținut de Google, ceea ce
usurează dezvoltarea aplicați ilor web. Angular standardizează aplicațiile la nivel de client (browser),
oferind o structură robustă și ușor de implementat în dezvoltarea site -urilor.
Angular este alegerea potrivită pentru orice aplicație web, în special dacă se preferă efectele
vizua le spectaculoase. Rezultatul este un site fluid și rapid. Acesta este motivul pentru care se pretează
SPA-urilor (Single Page Application) și aplicațiilor web destinate dispozitivelor mobile.
Angular este bazat pe TypeScript și este open -source front -end w eb application platform , condus
de către echipa angular de la Google și de o comunitate de persoane fizice și corporații. Angular este o
rescriere completă de la aceeași echipă care a construit AngularJS. Se integrează ușor cu Bootstrap,
permite crearea de aplicații responsive care pot fi accesate atât din browserul calculatorului cât și de pe
dispozitivele mobile. Astfel, este ușor să creezi o singură aplicație web care să se vadă perfect pe orice
dispozitiv de pe care este accesată – PC, tabletă, telefon, plasmă.
Unul dintre cele mai mari avantaje Angular îl constituie echipa de dezvoltare și întreținere a
platformei, care este formată din ingineri dedicați de la Google. Aceasta îi conferă beneficii precum
performanța, robustețea și scalabilitatea codului și îl face ca platforma să fie de integrat cu proiectele web.
Un alt rezultat bun constă în actualizarea regulată a platformei cu ultimele noutăți în domeniul dezvoltării
web.
Deși Angular a fost preluat de Google în 2010, platforma este încă open -source. Ceea ce
reprezintă un avantaj, întrucât ea ramane gratuită. Structura aplicațiilor dezvoltate cu Angular este
intuitivă și framework -ul este suficient de flexibil pentru a ușura și a crește viteza de dezvoltare a
proiectelor.
Platforma impune un mod de de zvoltare după o structură MVVM (Model View View Model)
prezentat în figura 3.2 , design pattern care preia modularitatea din conceptele MVC și face extrem de
ușoară integrarea template -urilor HTML cu procesările ce se fac pe Javascript (prin two -way data –
binding). Modulele create la nivel de Javascript în Angular sunt ușor de integrat căci framework -ul vine
cu capacitatea de injectare a dependințelor, ceea ce contribuie și la scalabilitatea codului.
Viteza de incărcare a paginilor este mică întrucât majorita tea comunicației cu serverul este
asincronă iar apelurile la server sunt reduse, majoritatea interfeței vizuale fiind mutată pe client (în
browser).
34
Figura 3.1 – Arhitectura framework -ului AngularJS
AngularJS permite crearea de aplicații responsive și î mbunătățeste experiența utilizatorului pe site
datorită platformei sale flexibile, poate fi ușor integrată cu alte framework -uri de testare automată
(Enterprise -level Testing – Unit Testing) precum și cu framework -uri de design la nivel de UI.
Indată ce ap licația este stabilă și a fost testată, o optimizare finală necesară versiunii ce urmează să fie
lansată în producție se poate face prin simpla integrare a unui sistem de automatizare al proceselor de
publicare (ex. : Grunt). Rezultatul final : o aplicație fluidă, suplă, dezvoltată în timp scurt, care regrupează
o mare varietate de efecte vizuale și animații grafice excepționale. Este ușor de intreținut și beneficiază de
o viteză mare de incărcare. AngularJS est performant, intuitiv, atractiv și corespunde perfect platformelor
mobile. Doriți o aplicație inovatoare care să vă propulseze afacerea? Colaborați cu echipa Beler Soft
AngularJS și puteți profita de toate avantajele acestui framework polivalent. Dezvoltatorii noștri dispun
de excelente competențe teh nice, de un spirit de adaptabilitate deosebit : proiectul va fi monitorizat cu
multă usurință, aplicațiile voastre web și mobile vor respecta cele mai înalte criterii de performanță.
35
3.3 Structura proiectului
Figura 3.2 – Principiul de funcționare a unui sistem de licitații
Sistemul de licitație constă dintr -un număr de component e care interacționează între ele prin
intermediul unui software, care împreună face posibil să se efectueze, administra și evalua licitatii online.
Ca în alte aplicații baz ate pe web E -commerce, este important că datele (Licitatie date, participanții,
ofertele etc.) este folosit în mod constant pe tot parcursul componente, că bine este susținută (sigure)
comunicare folosind standarde Internet și că sistemul este cât de flexi bilă și platformă cât mai
independentă posibil.
Realizarea modelelor proceselor de business al aplicației BidPrice , aplicație folosită pentru
cumpărare/vînzare prin intermediul licitațiilor.
36
Una dintre cele mai noi și incitante tendințe în dezvoltarea web actuală o reprezintă Aplicațiile pe o
singură pagină (Single Page Application, SPA).
Beneficiu principal este faptul că o SPA este mult mai rapidă decât o aplicație standard: nu trebuie
mereu să aștepți ca o pagină să fie încărcată complet când o acce sezi. Prin aceasta, o SPA se aseamănă
mai mult cu o aplicație desktop: paginile curg mai ușor una după alta fără a trebui să aștepți de fiecare
dată ca serverul web să reîncarce toate resursele unei pagini înainte de a o reda.
Un alt beneficiu – mai puțin vizibil la prima vedere – este faptul că mare parte din funcționalitatea
site -ului este executată pe partea de client (adică în browser) – și nu pe partea de server (cum este într -o
aplicație web standard) și deci aștepți mai puțin după server. Cum este r ealizată pe partea de client? Cu
ajutorul JavaScript -ului pur sau a unor Softuri -cadru (frameworks) în Javascript.
Al treilea beneficiu (mai ales pentru designerii web care cunosc JavaScript) este faptul că pot coda
si partea de client și partea de server (de când există node.js ) și partea de server într -un singur limbaj,
cunoscut lor: JavaScript.
Denumirea completă a sistemului și abrevierea
Denumirea completă a sistemului: Web application for online auction
Denumirea prescurtată: BidPrice
Denumirea întreprinderii beneficiarului și rechizitele lui
Beneficiarul sistemului este Universitatea Tehnică a Moldovei
Adresa beneficiarului: MD, or. Chișinău, str. Studenților 9/7
Termenii planificați de elaborare și implementarea a aplicației BidPrice
Termenii planificați pentru elaborarea a aplicației BidPrice – 25 decembrie 2017
Termeni planificați de implementarea a aplicației BidPrice – 31 mai 2018.
Ordinea de predarea – primire a aplicației și a părților componente
Aplicați a se va transmite sub formă unui complex funcțional pe baza tehnică a beneficiarului în
conformitate cu termenii și cerințele stipulate în Contract, recepția aplicației se efectuează de o comisie
formată din reprezentanții beneficiarului și a executantului ordinea de predare a aplicației., de testare și de
recepție finală este stipulară în Caietul de Sarcini. Odată cu transmiterea și implementarea aplicației se
efectuează și predarea documentației tehnice în conformitate cu Caietul de Sarcini.
37
4 Document area produsului realizat
Aplicația Web BidPrice este destinată pentru aplicarea în practică a cunoștințelor obținute în
cadrul studiilor pentru a face procesul de vînzare/cumpărare mult mai accesibile decît sunt în prezent.
Pagina principală prezentat ă în figura 4.1 este prima interacțiun e a utilizatorului cu platforma,
trebui e să fie cît mai intuitiv , simplu și ușor de utilizat. Rolul principal al acestei platforme este de a oferi
potențialilor clienți posibilitatea de a propune cele mai bune oferte pe piață . Va apărea un meniu care
oferă posibilitatea de logare în sistem a utilizatorilor.
Figura 4.1 – Pagina principală
În calitate de vizitator, se accesează pagina de pornire, astfel încât se poate vedea anunțurile și
informațiile de bază ale ac estora.
Meniul vizitatorului include următoarele butoane :
Home – Pagina principalăș
Login – Pagina de logare
38
În figura 4.2 este prezentat procesul de înregistrare a utilizatorului nou și câmpurile care trebuie
completate .
Figura 4.2 – Formularul de înregistrare
În cazul dat observăm că pentru înregistrarea uni utilizator nou în sistemului dat este nevoie de
completat următoarele câmpuri:
− First Name ;
− Last Name ;
− E-mail;
− Password.
După ce datele de înregistrare a utilizatorului nou au fost introduse, următorul pas constă în validarea
și crearea utilizatorul în baza de date MongoDB. Pentru această operație folosim metoda userRegister
care preia toate cîmpurile : firstName, lastName, email și parola care au fost introduse în câmpurile pentru
înregistrare, le validează si creează utilizatorul, acest proces fiind prezentat în figura 4.
39
Figura 4.3 – Procesul de înregistrare a utilizatorul nou
Logare in sistem reprezintă in mare parte ceeași verificare și validare a datelor introduse, în cazul
nostru a ema il-ului și a parolei.
Figura 4.4 – Formularul de înregistrare
40
Aici deja se folosește metoda loginUser din figura 4.5 pentru autentificarea utilizatorului, al cărei
sintaxe este asemanatoarea cu metoda precedentă userRegister .
Figura 4.5 – Procesul de logare a utilizatorul
După ce utilizatorul se autentifica in sistem, acesta are posibilitatea să acceseze licitațiile din sistem și să
participe în ele. Astfel în figura 4.6 este prezentat interfata împreună cu meniul care este disponibil
utilizatorulu i dupa logare sau inregistrare.
Figura 4.6 – Pagina principală a utilizatorului logat
41
După ce utilizatorul efectuează logarea acestuia i se deschide posibilita tea de a accesa licitațiile
curente. Acest proces este arătat în figura 4.7 unde este afișată pagina curenta a unui anunț.
Figura 4.7 – Pagina unui anunț
Figura 4.8 – Filtrarea anunțurilor dupa nume, preț și categorie
42
Sarcina de bază a aplicației
Pentru îndeplinirea scopurilor expuse mai sus aplicația trebuie să realizeze următoarele sarc ini:
− Să arate prețul produsului în timp real pe pagină;
− Ofere posibilitatea de comunicare între client și vînzător prin intermediul unui chat;
− Să aibă opțiuni de livrare a produsului direct la adresa clientului;
Descrierea obiectului ce va fi informatiza t
Trebuie să fie informatizate procesele de crearea scopului, planificarea, implementarea precum și
testarea produsului final.
Aceste procese sunt executate de către:
− Specialiști în domeniul graficii ( crearea resurselor grafice și a bazei de date )
− Specialiști în domeniul testării produsului ( testarea aplicației pentru a garanta funcționarea
corectă )
− Specialiști în domeniul de implementarea a aplicației ( scrierea codului, setarea aplicației cu
ajutorul interfeței grafice )
Cerințe față de sistem
− Cerințe față de structura aplicației și funcționalitatea acestuia;
− Cerințe față de personalul ce va utiliza aplicația dată;
− Cerințe față de posibilitățile cantitative ale aplicației;
− Cerințe față de protecția proprietăților intelectuale, standardizarea și unificarea;
Perspective de dezvoltare și modernizare a Sistemului Informațional
Aplicația dată trebuie să fie deschisa pentru modernizări al complexului soft și a mijloacelor
tehnice, la fel să fie deschis pentru eficientizarea productivității sale.
Cerințe față de personalul și calificarea lui
Pentru exploatarea Aplicației Web BidPrice sunt determinate următoarele roluri prezentate în
figura 1:
− Vînzători ( persoana care creează anunțuri)
− Client ( persoana care vizualisează anunțurile și participă la licitații)
− Administrator ( perso ana care monitorizează aplicația)
43
5 Argumentarea economică
Platformele de vînzări online au o importanță deosebită atît în activitatea agenților economici, cît
și a utilizatorilor obișnuiți și reprezintă în plan informaț ional modul de agregare sistematică a datelor
privind anunțurile de vînzarea a produselor sau serviciilor, agregarea datelor despre posibili clienți și
informația din anunțul postat. Drept un scop aplicația este creată pentru a rezolvata cîteva probleme
importante:
crearea unei platforme stabile și comode în utilizare de achiziții online;
posibilitate de a aplica filtrarea anunțurilor dupa anumite categorii;
crearea unei baze de anunțuri -uri;
crearea unui mod simplu de comunicare între client și vînzător;
Elaborarea bugetului proiectului este o modalitate universală de a planifica veniturile și
cheltuielile și a previziona rezultatele financiare. Pentru o companie bugetul este expresia cantitativă a
obiectivelor pe care aceasta și -a propus să le atingă într -o perioadă de timp precizată, de regulă un an.
Obiectivele se formulează în termeni de costuri, prețuri, profit, rentabilitate, etc. Procesul economic nu
este un compartiment separat, el începe odată cu stabilirea temei și se manifestă pe întreaga porțiune de
timp care este cuprinsă între evenimentul “stabilirea temei” și “prezentarea proiectului la comisie ” .
Planificarea este un pas foarte important în dezvoltarea unui proiect IT. În primul rând, trebuie
să împărțițm sistemul în mai multe sarcini pentru a-l face mai ușor de înțeles și mai ușor de dezvoltat.
Trebuie să programăm sarcinile proiectului, să facem o estimare generală a fiecăruia. Pentru a reuși
planificarea inițială a proiectului, este important să înțelegem obiectivele proiectului, să defini m în mod
clar domeniul de aplicare al proiectului și să definim în mod clar sarcinile. Primul pas este planificarea,
ceea ce simplifică calculele costurilor. Pentru a atinge obiectivele pe care le avem pentru a vedea toți pașii
pentru fiecare parte a proie ctului, care ne va conduce la obținerea unor rezultate remarcabile.
Faza de determinare a cheltuielilor este foarte importantă deoarece presupune calculele
argumentului care stau la baza rentabilității proiectului. Deci, atunci când avem o viziune bună a supra
proiectului, pe cheltuiala sa, când știm bugetul proiectului, putem începe să implicăm dezvoltatorii în
lucrare.
44
5.1 Scopul elaborării proiectului din punct de vedere economic. Studiul pieței cu
identificarea potențialilor beneficiari.
Din punc t de vedere economic, proiectul este unul comercial și presupune realizarea unui
beneficiu financiar. Studiul de marketing al nișei de piață interesate, au pus în evidență faptul existenței
unei popularități considerabile și constante pentru platforme din categoria anunțurilor de vînzări de
produse sau servicii online. Studiul în cauză relevă o putere de absorbție a pieței bună și estimează
posibilitatea vînzarii publicității într -o cantitate suficientă ca proiectul să fie rentabil.
Potențialii beneficiari ai proiectului sunt utilizatorii rețelei internet, cei care necesită o platform ă
fiabilă care ar putea asigura funcționarea stabilă și gestionare informației în diverse scenarii. O altă
categorie beneficiară a proiectului dat ar constitui -o utilizator ii sau agenții economici care oferă un produs
sau serviciu.
5.2 Planul calendaristic în scopul optimizării volumului de timp și resurselor de
muncă necesare pentru elaborarea proiectului.
Obiectivele
Scopul planului calendaristitc de dezvoltare software este de a aduna toate informațiile necesare
pentru controlul proiectului. Acesta descrie abordarea dezvoltării software -ului și este planul de nivel
înalt generat și folosit de către manageri pentru a direcționa efortul de dezvoltare al echipei implicate în
dezvoltarea acestuia.
Următoarele persoane utilizează planul de dezvoltare software:
a) managerul de proiect îl folosește pentru a planifica programul de programare și nevoile de
resurse și pentru a urmări progresele înregistrate raportat la programul resp ectiv;
b) membrii echipei de proiect folosesc acesta pentru a înțelege ce trebuie să facă, c înd trebuie
să o facă și de ce alte activități depind.
Volumul de lucru
Proiectul elaborat presupune un volum de lucru mediu pentru astfel de proiecte.
Întreg volumu l de lucru poate f i divizat încîteva etape esențiale, și anume:
a) etapa de documentare, de pregatire și setare a instrumentelor de lucru;
b) etapa de elaborare propriu -zisă a produsului software;
c) etapa de finisare al produsului.
Prima etapa (de preg ătire) pres upune desf ășurarea lucrului de documentare, de studiere a
cerințelor segmentului de piață vizat, de selectare și de preg ătire a instrumentelor necesare pentru
dezvoltarea aplicației în cauz ă.
45
Etapa secundă este etapa elaborării produsului program și pres upune parcurgerea a cîtorva
subetape: proiectarea produsului, scrierea codului, descrierea produsului program utilizînd limbajul UML
și testarea programului.
Etapa a treia o constituie testarea finala a aplicației și lucr ările de finisare a produsului și
pregatirea acestuia pentru lansarea pe piață.
Timpul destinat realizarii proiectului
Timpul destinat realizării proiectului este de 4 luni, repartizat pe etapele de realizare a proiectului
în corespundere cu necesarul de timp și volumul de lucru al fiec arei etape. Pentru fiecare etapă este
stabilit și un termen limită.
Termenul limită a respectivei etape e data de 10-02-2018.
Termenul limită al acestei etape este data de 21 -04-2018.
Termenul limită al acetei etape este data de 26 -05-2018.
Planul calen daristic
În baza analizei factorilor examinați în paragrafele anterioare s -a alcătuit planul calendaristic de
proiectare, elaborare, implementare și testare a aplicației.
În tabelul ce urmeaza se face distribuirea timpului necesar pentru efectuarea acti vităților de
proiectare, elaborare, testare și implementare a proiectului, cu indicarea perioadelor de timp necesare,
persoanelor implicate șiduratei de timp necesare efectuării fiecărei operații în parte.
Tabelul 5.1 Fondul de timp necesar elaborării proi ectului
Nr.ord. Activitatea Etapele(perioada) Persoane implicate Cod Durata, zile
1 Elaborarea sarcinii,
primirea datelor
pentru sarcină 01.09.17 – 9.09.17 Manager proiect MP 21
2 Studierea
segmentului de
piață pertinent
pentru proiect 16.02.18 – 3.02. 18 Manager proiect,
Programator MP,Pr 7
3 Alegerea și
pregătirea de lucru a
softului 24.02.18 – 3.03.18 Manager proiect,
Programator MP,Pr 4
4 Realizarea
programului 05.03.18 – 1.04.18 Programator Pr 36
5 Descrierea
programului,
diagramele UML 23.04 .18 – 4.05.18 Manager proiect,
Programator MP,Pr 10
46
6 Testarea aplicației 05.05.18 – 2.05.18 Manager proiect,
Programator, Tester MP,Pr,T 6
7 Finisarea
proiectului 14.05.18 – 8.05.18 Manager proiect,
Programator MP,Pr 5
Total : 89
Inclusiv: MP 53
Pr 68
T 6
5.3 Analiza SWOT
În acest subcapitol se va face o analiz ă de ansamblu a aplicației elaborate utilizînd un instrument
larg folosit, și anume analiza SWOT.
SWOT este un acronim pentru Strengths (puncte tari), Weaknesses (puncte slabe), Opportunities
(oportunități) și Threats (amenințări). Aceasta reprezintă nu numai o metodă folosită în controlul
planificării și riscului ef ectuării unei activități, ci și o modalitate de a scoate în evidență zone ale
proiectului care pot fi maximizate în beneficiul întregului proiect sau zone specifice de unde se pot obține
avantaje competiționale.
Acest tip de analiză este utilizat at ît pen tru a evalua anumite activități din cadrul proiectului,
optimiz îndu-le potențialul, c ît și riscurile, pentru a decide care este cea mai potrivită modalitate de
minimizare a acelor riscuri.
Analiza SWOT se realizează, în general, în prima fază a proiectulu i, astfel înc ît elementele de
analiză pot alcătui baza planului de proiect și pot fi folosite ulterior în cadrul proiectului, dacă acesta
întîmpină dificultăți în ceea ce privește planificarea, resursele sau bugetul alocat și necesităsăfie readus la
nivelu rile economice preconizate inițial. De exemplu, aplicabil în cazul proiectului de față, dacă o
anumită activitate cheie din cadrul proiectului necesită utilizarea unui software nou, o analiză SWOT
poate fi folosită pentru a evalua riscurile și oportunități le achiziționării software -ului și instruirii
personalului, pentru a ajută la planificarea resurselor.
47
Tabelul 5.2 – Analiza SWOT
Puncte Forte Puncte Slabe
a) Este ușor de utilizat, interfața este intuitivă.
b) Sistemul lucreaza pe toate platform care
supor ta Browser Web.
c) Reduce timpul pentru a obține informația
necesară.
d) Permite a filtra anunțurile.
e) Sistemul este bazat pe tehnologii noi care fac
ca aplicația finală să lucreze repede și
securizat. a) Nu lucrează de sine stătător, este necesar de un
server web.
b) Nu este construit un algoritm serios de a preveni
crearea mai multor conturi de același utilizator.
c) Starea produsului o putem vedea doar pe poze și
descrierea acestuia .
Oportunități Riscuri (Pericole)
a) Sistemul poate fi mereu actualizat,
adăugindu -se dife rite posibilități funcționale
noi.
b) În caz de necesitate este posibil de utilizat
serverul de baze de date pe altă platformă .
c) Tehnologia Node.js este dezvoltată
permanent și dispune de mentenanță
calitativă. a) Erori de sistem în timpul cel mai nefavorabil.
b) Probleme cu hosting sau web server.
c) Atacurile asupra sistemului.
d) Pierderea clienților.
5.4 Calculul indicatorilor economici
Orice activitate economică, cu caracter de profit sau non -profit, are nevoie de o argumentare și de
o analiză economicăși fi nanciară.
Pentru stabilirea indicatorilor economici și financiari principali ai proiecturui se va proceda la
calculul acestor indici, utilizînd metodele de calcul standart pentru domeniul vizat.
5.4.1 Investiții în imobilizari corporale și necorporale pe termen lung
În scopul realiz ării acestui proiect va fi nevoie de achiziționarea unui șir de dispositive și
echipamente suplimentare. Structura acestor investiții este redată sub formă tabelară în următoarele
tabele.
48
Investițiile effectuate pentru achizi ționarea acestor echipamente și dispositive vor fi utilizate pe
parcursul mai multor ani și vor fi utilizate, respectiv,și pentru dezvoltarea altor produse software. Pentru
acestea se va calcula uzura care va fi incl usă în costul produsului final.
Tabelul 5.3 Imobilizări corporale
Nr.
ord. Denumirea/tipul imobilizării
corporale Unitate de
măsură Cantitatea Pretul,
lei (fără
TVA) Valoarea
de intrare,
lei
1 Laptop buc. 1 15560 15560
2 Monitor buc. 1 4500 4500
3 Imprimantă buc. 1 6500 6500
4 Router buc. 1 850 850
5 Dispozitiv extern de stocare de date buc. 1 1560 1560
Total: 28970
Pentru realizarea proietului sunt necesare și unele investiții în diverse produse software.
În tabelul 5.4 sunt indicate investițiile în produsele software sau imobiliările necorporale.
Tabelul 5.4 Imobilizări necorporale
Nr. ord. Denumirea/tipul imobilizării
necorporale Unitate de
măsura Cantitatea Pretul,
lei (fără
TVA) Valoarea de
intrare, lei
1 Software pentru laptop (OS) buc. 1 3499 3499
2 JetBrains WebStorm buc. 1 – –
Total: 3499
5.4.2 Consumuri directe de materiale
În afara investițiilor în imobiliz ări corporale și imobiliz ări necorporale, realizarea proiectului necesităși un
șir de cheltuieli pentru achiziționarea materialelor direct consumabile, necesare derulă rii activității de
dezvoltare a aplicației. Aceste cheltuieli sunt raportate în tabelul 5.5.
49
Tabelul 5.5 Consumuri directe de materiale
Nr. ord. Denumirea/tipul materialului Unitate
de
măsură Cantitatea Pretul, lei
(fără
TVA) Valoarea
de intrare,
lei
1 Memorie flash 16GB buc. 2 180 360
2 Hîrtie pentru imprimantă pachet 2 56 112
3 Toner pentru imprimantă buc. 1 800 800
4 Pixuri buc. 5 10 50
Total: 1322
5.4.3 Consumuri directe privind retribuirea muncii
Angajații implicați în dezvoltarea aplicați ei proiectului dat vor fi salarizați, utilizîndu -se forma de
salarizare în regie la calculul salariului. Acestă formă de calcul al salariului presupune calculul salariului
în raport direct cu timpul efectiv utilizat pentru dezvoltarea aplicației.
Pentru r ealizarea proiectului vor fi implicațiși cițiva lucratori – specialist atrași din exterior și
salariați din bugetul proiectului. Întreg volumul de lucru va fi distribuit între lucratorii salariați, conform
atribuțiilor din fișa postului care stau la baza c alculării salariului.
În proiectarea, elaborarea și testarea produsului program au fost implicați următorii specialiști:
a) managerul de proiect;
Obiectivul principal al managerului de proiect este coordonarea eficientă a tuturor activităților
proiectului î n vederea atingerii obiectivelor stabilite la cele mai înalte standarde de calitate.
Deasemenea, din atribuțiile managerului de proiect fac parte:
– asigurarea comunic ării cu partenerii din cadrul proiectului și respectarea obligațiilor
contractuale care de curg din acordurile de parteneriat;
– pregătirea și organizarea planurilor de activitate în cadrul proiectului și asigurarea
resurselor necesare pentru atingerea obiectivelor proiectului;
– administrarea bugetului proiectului în conformitate cu procedurile int erne aplicabile și cu
condițiile finanțatorului;
– valorificarea și dezvoltarea oportunităților pe durata implementării proiectului.
b) programatorul;
Din atribuțiile nemijlocite ale programatorului vor face parte implementarea logicii
programului nemijlocit î n cod utilizînd tehnologiile de programare necesare. Programatorul va
50
trebui să posede cunoștințe solide în domeniul programării web, să posede abilități de programare
în, cel puțin, limbajul de programare PHP/Javascript.
Deasemenea, programatorul va parti cipa active la elaborarea și derularea procesului de testare a
produsului, alături de ceilalți actori implicați în acest proces.
c) tester -ul;
În obligațiunile directe ale tester -ului intră conceperea și realizarea diverselor testări a
produsului pe parcursu l dezvoltării lui, în special în faza finala. Tester -ul trebuie să alcătuiască
seturi de teste care să testeze funcționarea aplicației în diverse configurații, cu diferse seturi de
date de intrare și confruntarea comportamentului sistemelui cu comportament ul așteptat al
produsului elaborat.
Tabelul 5.6 Consumuri directe privind retribuirea muncii
Nr. ord. Funcția
angajatului Volumul
de lucru,
zile Salariul
contractual pe
unitatea .de
timp (zile), lei FSB,
lei Salariul
suplimentar,
% FRM,
lei
1 Manager de proiect 53 400 21200 10 23320
2 Programator 68 350 23800 10 26180
3 Tester 6 320 1920 10 2112
Total: 51612
Conform datelor rezultate în urma calculelor effectuate în tabela de mai sus rezultă ca cele mai mari
cheltuieli cu salarizarea cad pe seama m anagerului de proiect și programator.
Contribuția la fondul de asigurări sociale se va calcula conform formulei 5.1:
FAS = FRM × C fs(%), (5.1)
unde:
FAS – contribuția la fondul de asigurări sociale;
Cfs(%) – cota contribuțiilor de asigurări sociale d e stat, care conform Legii bugetului asigurărilor sociale de
stat pe anul 201 8 este de 23% din fondul de remunerare a muncii.
Deci,
FAS = 51612 × 23% = 11870.8 lei.
Fondurile asigurării obligatorii de asistență medicală se va calcula după formula 5.2:
FAM = FRM × C AM(%) , (5.2)
unde:
FAM – fondurile asigurării obligatorii de asistență medicală;
51
CAM(%) – cota primei de asigurare obligatorie de asistență medicală care se aprobă în fiecare an prin Legea
Republicii Moldova privind fondurile asigurării oblig atorii de asistență medicală. Conform Legii privind
fondurile asigurării obligatorii de asistență medicală pe anul 201 8, cota primei de asigurare obligatorie de
asistență medicală suportată de angajator constituie 4,5% din fondul de remunerare a muncii.
Deci,
FAM = 51612 × 4.5% = 2322.54 lei.
Venitul (salariul) net anual și suma impozitului pe venitul anual se calculează pentru fiecare participant la
elaborarea proiectului.
Aici, însă, spre exemplificare, se vor calcula acești indici doar pentru unul din pa rticipanții la elaborarea
proiectului care reprezintă subiect de impozitare – programatorul.
Astfel, în anul 201 8 sînt prevăzute următoarele taxe și scutiri la veniturile persoanelor fizice:
a) Impozitul pe venit:
1) pentru venituri anuale pînă la 33000 lei – se aplică cota de impozitare 7%;
2) pentru venituri anuale mai mari de 33000 lei – se aplică cota de impozitare 18%;
b) fondul de pensionare – 6% din venit;
c) fondul de asigurare medicală – 4,5% din venit;
d) scutire personală (fiecare contribuabil (persoană fizică rez identă) are dreptul la o scutire personală
în sumă de 11280 lei pe an);
e) scutire pentru persoane întreținute (contribuabilul (persoană fizică rezidentă) are dreptul la o
scutire în sumă de 2520 lei anual pentru fiecare persoană întreținută);
f) suma scutirii p ersonale majore – 16800 lei anual.
Calculul sumei nete a venitului obținut de programator în baza prevederilor legale.
Venitul brut (V B) al programatorului este de 26180 lei.
Calculul reținerilor în Fondul Social(de pensii):
FP = 26180 × 6% = 1570.8 lei.
Calculul reținerilor în Fondul Asigur ărilor Medicale(FAM):
FAM = 26180 × 4.5% = 1178.1 lei.
Scutire personal ă: 11280 lei.
Scutire pentru persoane întreținute: 2520 lei ( una persoan ă).
Calculul venitului impozabil se calculeaz ă cu ajutorul formulei 5.3:
VI = V B – FP – FAM – SP – SiP – SM, (5.3)
unde:
VI – venitul impozabil;
VB – venitul brut;
52
FP – fondul de pensionare (asigurări sociale);
FAM – fondul de asigurare medicală;
SP – scutirea personală;
SiP – scutirea pentru persoana întreținută;
VI = 26180 – 1570.8 – 1178.1 – 11280 – 2520 = 14671.1 lei.
Se calculează suma venitului net (VN), după formula 5.4, aplicînd cotele de impozitare în vigoare: VN =
VB – IV – FP – FAM, (5.4)
unde:
VB – venitul brut;
IV – impozitul pe venit;
FP – fondu l de pensionare (asigurări sociale);
FAM – prima de asigurare medicală. Suma impozitului pe venit se calculează după formula 5.5:
IV = VI – I (lei), (5.5)
unde:
I – cota de impozitare a persoanei fizice:
– pentru venituri anuale de pînă la 33000 lei se aplică cota de impozitare 7%;
– pentru venituri mai mari de 33000 lei se aplică cota de impozitare 18%:
IV = 14671.1 x 7% = 1027 lei.
VN = 26180 – 1027 – 1570.8 – 1178.1 = 22404.1 lei.
Prin urmare, venitul net al programatorului e de 22404.1 lei.
5.4.4 Consumuri indirecte
Pe durata derulării proiectului sunt prevăzute și un șir de cheltuieli ce țin de consumuri indirecte.
Consumurile indirecte reprezintă consumurile volumul cărora nu depinde sau depinde neesențial de
volumul de producție dar care vor participa în calculul costului produsului finit.
Tabelul 5.7 Consumuri indirecte
Denumirea articolului Un. de măs. Cantitatea Tarif/un.măs.,
lei Valoarea
totală, lei
Energia electrică kW/h 220 1.99 437.80
Încalzire GCal 2 1.257,38 2514.76
Servicii Internet Abon. lunar 4 190 760.00
Total 3712.56
53
5.4.5 Amortizarea imobilizărilor corporale și necorporale pe termen lung
O parte considerabilă a cheltuielilor indirecte o constituie calcularea și includerea în costul
produsului final al fondului de u zură/amortizare.
Uzura imobilizărilor corporale reprezintă repartizarea sistematică a valorii uzurabile a
imobilizărilor corporale pe parcursul duratei de funcționare utilă.
Norma uzurii se calculează în funcție de durata utilizării activului. Durata uti lizării activului se
determină după categoria lui: imobilizări corporale pe termen lung – 3-5 ani, imobilizări nemateriale pe
termen lung – 2-3 ani.
Formula de calcul a fondului de amortizare este:
FA = 𝑴𝑭𝒊
𝑫𝑭𝑼 × T i , (5.7)
unde:
FA – fondul amortizării pe durata proiectului, lei;
MF i – valoarea de intrare;
Ti – durata proiectului;
DFU – durata de funcționare utilă.
Identic se calculează suma amortizării imobilizărilor nemateriale pentru fiecare categorie în parte.
Tabelul 5.8 Amortizarea imobilizărilor corporale
Nr. ord. Denumirea imobilizării
corporale MFi, lei DFU,
luni Ti, luni FA, lei
1 Laptop 1556 0 60 4 1037.33
2 Monitor 4500 60 4 300.00
3 Imprimantă 6500 48 4 541.67
4 Router 850 24 4 141.67
6 Dispozitiv extern de stocare de
date 1650 24 4 275.00
Total: 2295.67
54
Tabelul 5.9 Amortizarea imobilizărilor necorporale
Nr. ord. Denumirea imobilizării
necorporale MF i, lei DFU,
luni Ti, luni FA, lei
1 Software pentru laptop (OS) 3499 36 4 388.78
2 JetBrains WebStorm gratis – – –
Total : 388.78
5.4.6 Costul de elaborare a proietului
Costul de producție reprezintă totalitatea cheltuielilor corespunzătoare consumului de factori de
producție, pe care agenții economici le efectuează pentru producerea și vînzarea de bunuri materiale sau
prestarea de servicii. Prețul de cost se calculează pe o unitate.
Tabelul 5.10 Costul de elaborare a proiectului
Articole de calculație Valoarea, lei Ponderea, %
Consumuri directe de materiale 1322 .00 1.68
Consumuri directe privind retribuirea muncii 51612 .00 65.72
Contribuții de asigurări sociale de stat obligatorii (FAS) 11870.80 15.12
Prima de asigurare obligatorie de asistență medicală
(FAM) 2322.54 2.96
Consumuri indirecte 3712.56 4.73
Amortizarea imobilizărilor corporale pe termen lung 2295.67 2.92
Amortizarea imobilizărilor necorporale pe termen lung 388.78 0.49
Pierderi excepționale 5000.00 6.37
TOTAL 78524.35 100%
55
5.4.7 Definirea și calculul rentabili tății financiar e și economice a proiectului
Rata rentabilității financiare este un indicator pentru evaluarea performanțelor economice și
financiare ale întreprinderii pentru diagnosticul intern, ca și pentru analizele cerute de partenerii externi.
Rentabilitatea financiară constituie un indicator de bază care caracterizează performan țelor
întreprinderilor și politicii financiare a întreprinderii.
Rata rentabilitatii financiare (Rf) se poate calcula prin raportarea profitului net (Pn) la marimea
capitalului propriu (Kpr) , astfel:
Din relatia de calcul al acestei rate, rezulta ca, pe ntru cresterea nivelului sau, este necesar ca
profitul net sa creasca intr -un ritm superior cresterii capitalului propriu.
Dacă rata rentabilității economice exprimă remunerarea capitalului investit doar în relație cu
activitatea de exploatare, rata renta bilității financiare determină remunerarea capitalurilor personale prin
intermediul tuturor celor trei tipuri de activitate: de exploatare, financiară și extraordinară.
Deci putem afirma că rata rentabilității financiare prezintă un factor deosebit de important pentru
acționarii firmei, care apreciază în funcție de nivelul acesteia dacă investițiile lor sunt justificate și dacă
totodată vor continua să sprijine dezvoltarea firmei prin aportul de noi capitaluri sau prin renunțarea
pentru o perioadă li mitată la o parte din dividendele cuvenite. Managerii, la rândul lor, vor fi interesați să
păstreze un nivel corespunzător a acestei rate, pentru a -și putea păstra pozițiile și a realiza criteriile de
performanță ale firmei.
56
Concluzii
Aceast ă aplicaț ie are ca scop simularea unei licitații î ntr-un mediu in formatic in care utilizatorii să
poate interacționa printr -un mediu câ t mai user friendly, usor de utilizat ș i func țional.
Elaborând această lucrare am studiat mai aprofundat ce constituie acest domen iu al informaticii și
anume proiectarea sistemelor înzestrate cu anumite proprietăți. Am analizat ce este un sistem, de ce
cunoștințe și capacități dispun în desfășurarea activității.
Elementele ale managementului de proiect sunt o parte importantă în proi ectare deoarece ea
specifică scopurile și cheltuielile pe viitor. Caietul de sarcini este o informație importantă pentru
dezvoltatori deoarece ei își formează sarcinile în baza caietului de sarcini. În acest caiet se descrie toate
specificațiile referitoar e la sistem. Specificațiile sunt scrise de beneficiarii sistemului în comun cu
dezvoltatorii sistemului. Proiectarea sistemului este modelarea sistemului în limbajul UML (unified
model language) ce reprezintă un limbaj de modelare tuturor dezvoltatorilor c unoscut. În proiectare intră
toate reprezentările sistemului începând cu reprezentarea funcțională și terminând cu reprezentarea de
amplasarea lui.Realizarea sistemului conține în sine formarea sistemului proiectat la etapele precedente și
explicarea la ni vel de cod. Pe lîngă formare se mai introduce și proiectarea bazei de date în care se
specifică forma bazei de date, consistența și eficiența. Proiectarea bazei de date are la bază un algoritm de
formarea ei.
Descrierea la nivel de cod stă la baza realiză rii sistemului și necesită mare atenție și logică pentru
a fi realizabilă. Conține specificarea și explicarea obiectelor ce formează sistemul prin comunicarea lor.
Testarea sistemului face parte din ultima etapă de dezvoltare a sistemului. Testarea stă la baza validării
logicii sistemului. Produsul netestat nu poate fi considerat finit și bun de al introduce în producere.
De asemenea , în capitolul final, se face evaluarea economică a produsului, incluzînd analiza
SWOT și calculul indicatorilor economici. În cadrul elaborării părții economice am constatat ca aplicația
poate aduce venit daca se vor utiliza resursele și cunoștințele necesare. Finalitatea analizei economice este
stabilirea rentabilității produsului prin compararea resurselor consumate și venitu l obținut intr -un an .
57
Bibliografie
1. Liga Software. Câteva abordări metodologice în dezvoltare software. [Resursă electronică]. -Regim de
acces: http://www.ligasoftware.ro/blog/2011/04/cateva -abordari -metodologice -in-dezvoltarea -software
2. MongoD B Documentation [Resursă electronică]. -Regim de acces:
https://docs.mongodb.com/
3. Angular 2 Documentation [Resursă electronică]. -Regim de acces:
http://devdocs.io/angular~2/
4. Laravel . HTTP Middleware. [Resursă electronică]. -Regim de acces:
https://l aracasts.com/series/intermediate -laravel/episodes/7
5. Creating live web app with NodeJS and Socket.IO . [Resursă electronică]. -Regim de acces:
http://4dev.te ch/2016/02/creating -a-live-app-with-angular -2-node -js-and-socket -io/
6. UML basics: An introduction to the Unified Modeling Language [Resursă electronică]. -Regim de
acces: http://www.nyu.edu/classes/jcf/CSCI -GA.2440 -001/handouts/UMLBasics.pdf
7. Resursă electronica ”M odificări taxe și scutiri salarii 2018 ” http://salarii.md/modificari -taxe-si-scutiri -salarii –
2018/
58
Anexa A
Codul sursă
var http = require('http');
var server = http.createServer (app);
var io = require('socket.io' ).listen(server);
server.listen(8000);
io.set("origins" , "*:*");
var currentPrice = {Price};
io.on('connection' , function (socket) {
socket.emit('priceUpdate' ,currentPrice );
socket.on('bid', function (data) {
currentPrice = parseInt (data);
socket.emit('priceUpdate' ,currentPrice );
socket.broadcast .emit('priceUpdate' ,currentPrice );
});
});
Secvența de cod A1 – Serverul Socket.IO de trimitere/recep ționare a evenimentelor
var express = require( 'express' );
var path = require( 'path');
var favicon = require( 'serve-favicon' );
var logger = require( 'morgan' );
var cookieParser = require( 'cookie-parser');
var bodyParser = require( 'body-parser');
var routes = require( './routes/index' );
var app = express();
var http = require( 'http');
var server = http. createServer (app);
var io = require( 'socket.io' ).listen(server) ;
server.listen(8000);
io.set("origins" , "*:*");
io.on('connection' , function (socket) {
socket.emit('priceUpdate' ,currentPrice) ;
socket.on('bid', function (data) {
currentPrice = parseInt (data);
socket.emit('priceUpdate' ,currentPrice) ;
socket.broadcast. emit('priceUpdate' ,currentPrice) ;
});
});
app.use('/scripts' , express.static(__dirname + '/node_modules/' ));
app.use('/templates' , express.static(__dirname + '/views/templates/' ));
app.use(logger('dev'));
app.use(bodyParser .json());
app.use(bodyParser .urlencoded ({ extended : false }));
app.use(cookieParser ());
app.use(express.static(path.join(__dirname , 'public' )));
app.use('/', routes);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found' );
err.status = 404;
next(err) ;
59
});
module.exports = app ;
Secvența de cod A2 – Legătura între pachetele necesare
var server = http. createServer (app);
server.listen(port);
server.on('error', onError);
server.on('listening' , onListening );
function normalizePort (val) {
var port = parseInt (val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false ;
}
function onError(error) {
if (error.syscall !== 'listen' ) {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES' :
console. error(bind + ' requires elevated privileges' );
process. exit(1);
break;
case 'EADDRINUSE' :
console. error(bind + ' is already in use' );
process. exit(1);
break;
default:
throw error;
}
}
function onListening () {
var addr = server. address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port ;
debug('Listening on ' + bind);
}
Secven ța de cod A3 – Fișierul răspunzător de crearea serverului și eventListening
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Dezvoltarea une i platforme de licitatii online . [632255] (ID: 632255)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
