Sunteți pe pagina 1din 9

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII

Universitatea Tehnică a Moldovei


Facultatea Calculatoare Informatică şi Microelectronică
Departamentul Ingineria Software și Automatică

Proiect de an

Disciplina: Tehnici și Mecanisme de Proiectare Software


Tema: „Fabricarea calculatoarelor”

Student: _____________ Gorea Filip, TI-173

Coordonator: _____________ Cebotari Daria, asis. univ.

Chişinău, 2020

10
Cuprins
Introducre.................................................................................................................................................................10
1 Analiza domeniului de studiu.................................................................................................................................11
1.1 Importanța temei...............................................................................................................................................11
1.2 Scopul, obiectivele și cerințele sistemului..........................................................................................................11
2 Realizarea sistemului............................................................................................................................................12
2.1 Descrierea la nivel de cod pe module.................................................................................................................12
2.2 Testarea sitemului..............................................................................................................................................12
3 Documentarea produsului realizat........................................................................................................................13
Concluzii................................................................................................................................................................... 14
Anexa A..................................................................................................................................................................... 16

9
Introducre

Datorită dezvoltării rapide a tehnologiei informaționale, calculatorul a devenit un instrument


indispensabil oricarei persoane, un instrument prin intermediul căruia putem avea acces la surse de
informare datorită numărului imens de site-uri web existente, biblioteci virtuale, un instrument cu ajutorul
căruia orice persoană poate ține legătura cu familia sau cu prietenii, și de asemenea cu ajutorul căreia
putem obține informații într-un timp redus și cu costuri minime. Se poate spune că trăim într-o lume, într-
o societate informatizată, acest fapt m-a motivate să aleg ca temă al acestui proiect tema fabricării de
calculatoare, procedeu care este esențial societății actuale și este legat în cel msi strâns mod de activitatea
de programator.
În acest raport voi analiza și explica pe pași etapele realizării unui aplicații de setare a
caracteristicilor și simulare a procedeului de construire a unui calculator, descrisă prin titlul sugestiv al
lucrarii „Fabricarea calculatoarelor”. Această aplicație va avea ca scop principal implementarea
șabloanelor de programare studiate în cadrul orelor de curs ale disciplinei TMPS și aplicate în cadrul
orelor de laborator. Un sablon reprezintă o soluţie comună a unei probleme într-un anumit context.

Importanţa şabloanelor (standardelor) în construirea sistemelor complexe a fost de mult


recunoscută în alte discipline. În cadrul comunităţii proiectanţilor de software OO (orientate pe obiecte)
ideea de a aplica şabloane se pare că a fost inspirată de propunerea unui arhitect, Christopher Alexander,
care a lansat iniţiativa folosirii unui limbaj bazat pe șabloane pentru proiectarea clădirilor şi a orașelor.
Acesta afirmă că: "Fiecare şablon descrie o problemă care apare mereu în domeniul nostru de activitate şi
indică esenţa soluţiei acelei probleme într-un mod care permite utilizarea soluţiei de nenumărate ori în
contexte diferite".
Deşi în domeniul sistemelor OO soluţiile sunt exprimate în termeni de obiecte şi interfeţe (în loc de
ziduri, uşi, grinzi etc), esenţa noţiunii de sablon este aceeaşi, adică de soluţie a unei probleme într-un
context dat.
Şabloanele de proiectare sunt o memorare pentru posteritate a experienţei în domeniul proiectării
sistemelor OO.
Un şablon este descris de patru elemente:
 Nume: foloseşte pentru identificare; descrie sintetic problema rezolvată de şablon şi
soluţia.
 Problema: descrie când se aplică şablonul; se descrie problema şi contextul.
 Solutia: descrie elementele care intră în rezolvare, relaţiile între ele, responsabilităţile lor şi
colaborările între ele.
 Consecinţe si compromisuri: implicaţiile folosirii şablonului, costuri şi beneficii. Acestea
pot privi impactul asupra flexibilităţii, extensibilităţii sau portabilităţii sistemului, după cum pot să se

10
refere la aspecte ale implementării sau limbajului de programare utilizat. Compromisurile sunt de cele
mai multe ori legate de spaţiu şi timp.

Sabloanele de proiectare rezolva multe din problemele zilnice cu care se confrunta proiectantii. Cateva
din aceste probleme sunt urmatoarele:

Gasirea obiectelor adecvate


Asa cum se stie, un obiect, care este caramida de baza a unui sistem OO, include atat date, cat si metode
(operatii) care opereaza asupra datelor. Obiectul executa o operatie cand primeste o cerere (mesaj) de la
un client.
Mesajele reprezinta singura cale prin care un obiect este determinat sa execute o operatie, in timp ce
operatiile sunt singurul mod de a modifica datele interne ale obiectului. Din cauza acestor restrictii starea
interna a obiectului se spune ca este incapsulata: ea nu poate fi accesata direct, iar reprezentarea ei este
invizibila dinspre exteriorul obiectului.

Partea dificila in proiectarea unui sisitem OO este descompunerea sistemului in obiecte. Aceasta deoarece
procesul este influentat de mai multi factori care actioneaza adesea in mod contradictoriu: incapsularea,
granularitatea, dependentele, flexibilitatea, performantele, evolutia, gradul de reutilizare etc.

Determinarea granularitatii obiectelor


Obiectele ce compun un sistem pot varia "ingrozitor" ca marime si numar. Ele pot reprezenta practic
orice: de la componente hardware pana la aplicatii intregi. Este dificil de stabilit unde trebuie sa se
"opreasca" un obiect.
Exista sabloane care acopera si acest aspect. Astfel, sablonul Facade descrie modul in care subsisteme
complete pot fi reprezentate ca obiecte, iar sablonul Flyweight arata cum se poate gestiona un numar urias
de obiecte la nivelele cele mai fine de granularitate. Alte sabloane descriu caile prin care un obiect poate
fi descompus in obiecte mai mici. Abstract Factory si Builder reprezinta obiecte a caror unica
responsabilitate este crearea de alte obiecte. Visitor si Command reprezinta obiecte a caror unica
responsabilitate este implementarea unui mesaj catre alt obiect sau grup de obiecte.

Specificarea interfetelor obiectelor


Pentru fiecare operatie declarata intr-un obiect se precizeaza numele, obiectele pe care le ia
ca parametri si valoarea returnata; aceste elemente formeaza semnatura operatiei. Multimea tuturor
semnaturilor corespunzatoare operatiilor dintr-un obiect reprezinta interfata obiectului. Interfata unui
obiect descrie complet setul mesajelor care pot fi trimise spre obiectul respectiv.

11
Un tip este un nume utilizat pentru a referi o anumita interfata. Astfel, vom spune despre un obiect ca este
de tipul Window daca el accepta toate mesajele corespunzatoare operatiilor definite in interfata
numita Window. Ca urmare, un obiect poate avea mai multe tipuri, adica o parte a interfetei sale poate fi
de un tip, iar alta parte - de alt tip. De asemenea, mai multe obiecte pot partaja un anumit tip comun, daca
interfetele lor includ tipul respectiv.

1 Analiza domeniului de studiu


Proiectul dat face parte din sfera tehnologiilor informaționale, având la bază tema descrisă în
subcapitolul anterior adică producția de calculatoare. Această aplicație va fi una realizată în limbjul C#
fiind realizată pentru rularea pe dispozitivele desktop. Aplicația portăun caracter economic fiind
compatibilă cu sfera serviciilor astfel clientul va putea comanda calculatorul dorit în dependență de
propria dorință și necesitate. Această aplicație va avea ca scop automatizarea procesului de asamblare
individuală a calculatoarelor în dependențăde dorința clientului.
Aplicația va fi una desktop fiind disponibilă de fapt pe toate dispozitivele care rulează pe sistemul
de operare Windows, am ales acest sistem din motivul că marea majoritate dintre utilizatorii de calculator
optează pentru acest sistem de operare prin urmare fiind unul foarte popular.
Lansat publicului in iunie 2000 si oficial in primavara anului 2002, C# este un limbaj de
programare care combina facilitati testate de-a lungul timpului cu inovatii de ultim moment. Creatorii
acestui limbaj au fost o echipa de la firma Microsoft condusa de Anders Hejlsberg. Desi limbajul este
creat de Microsoft, acesta nu este destinat doar platformelor Microsoft. Compilatoare C# exista si pentru
alte sisteme precum Linux sau Macintosh. Creat ca instrument de dezvoltare pentru arhitectura .NET,
limbajul ofera o modalitate facila si eficienta de a scrie programe pentru sistemul Windows, internet,
componente software etc. C# deriva din doua dintre cele mai de succes limbaje de programare: C si C++.
De asemenea, limbajul este o “ruda” apropiata a limbajului Java. Pentru o mai buna intelegere a
limbajului C# este interesant de remarcat care este natura relatiilor acestuia cu celelalte trei limbaje
mentionate mai sus. Pentru aceasta, vom plasa mai intai limbajul C# in contextul istoric determinat de
cele trei limbaje.
Pentru îndeplinirea sarcinii propuse am ales limbajul de programre C# din o serie de motive
 C# este un limbaj de programare orientat-obiect .
 Deține biblioteci grafice bogate.

12
 Datorită faptului că este un limbaj OOP este perfect pentru implementarea șabloanelor
studiate.
 Posibilitatea utilizării instrumentului Visual Studio, care este unul bine structurat și puternic.
Ca instrument am utilizat Visual Studio care este perfect adaptat pentru scrierea codului în C# dar
cel mai improtant este un bun instrument pentru aplicarea bibliotecilor grafice.
Visual Studio include un set complet de instrumente de dezvoltare pentru generarea de aplicații
ASP.NET, Servicii Web XML, aplicații desktop și aplicații mobile. Visual Basic, Visual C++, Visual C#
și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE) care le permite partajarea
instrumentelor și facilitează crearea de soluții folosind mai multe limbaje de programare. Aceste limbaje
permit să beneficieze de caracteristicile .NET Framework care oferă acces la tehnologii cheie care
simplifica dezvoltarea de aplicații web ASP și XML Web Services cu Visual Web Developer.
Prezentare generală a beneficiilor IDE Visual Studio

 Codificare precisă Cu Visual Studio IDE, utilizatorilor li se oferă asistență de codare live,
indiferent de limbajul de programare pe care îl utilizează. 
 Debugging rapid
 Testare riguroasă
 Colaborarea echipei
 Opțiuni de personalizare

1.1 Importanța temei


Un calculator, numit și sistem de calcul, computer sau ordinator, este o mașină de
prelucrat date și informații conform unei liste de instrucțiuni numită program. În zilele noastre
calculatoarele se construiesc în mare majoritate din componente electronice și de aceea cuvântul
„calculator” înseamnă de obicei un calculator electronic. Calculatoarele care sunt programabile liber și
pot, cel puțin în principiu, prelucra orice fel de date sau informații se numesc universale (engleză general
purpose, pentru scopuri generale). Calculatoarele actuale nu sunt doar mașini de prelucrat informații, ci și
dispozitive care facilitează comunicația între doi sau mai mulți utilizatori, de exemplu sub formă de
numere, text, imagini, sunet sau video sau chiar toate deodată (multimedia).

Considerat de multi cea mai mare inventie a secolului al XX-lea, calculatorul influenteaza intr-un
mod sau altul vietile noastre. Inventatorul lui, informaticianul Bill Gates a devenit cel mai bogat om de pe
planeta. Calculatorul se foloseste aproape in toate domeniile de activitate, de la medicina la comunicarea
intre oamenii care se afla in cele mai îndepartate colturi ale pamantului. In cadrul Politiei calculatorul a
devenit un obiect indispensabil in cautarea rapida si detectarea infractorilor si a obiectelor furate. De
asemenea, fabricarea masinilor a devenit computerizata, acest lucru ducand la disponibilizarea multor

13
oameni. Noua generatie se pare ca foloseste cel mai mult calculatorul: fie pentru jocuri, fie pentru a gasi
prieteni sau pentru a naviga pe internet. Lista utilizării calculatorului poate urma la nesfârșit începând cu
simpla navigare pe internet și terminând cu rezolvarea problemelor de o complexitate imensă, efectuarea
calculelor sau calcularea distanțelor până la alte galxii, în toate astea ne ajută calculatorul. Aceste lucruri
fiind spuse putem sa nominalizam calculatorul ca cea mai mare inventie a tuturor timpurilor.

Prin urmare calculatorul și caracteristicile acestuia determină capacitățile lui și zona lui de
utilizare astfel cu ajutorul acestei aplicații mi-am propus să pun la dispoziția utilizatorului o metodă
simplistă prin care ar putea să comande un calculator care ulterior va fi construit după propriile sale
cerințe fapt care vasimplifica cu mult procesul de ulterioara asamblare a calculatorului.

1.2 Scopul, obiectivele și cerințele sistemului


Scopul

Scopul acestei aplicații este de a realiza o interfață grafică cât mai accesibilă utilizatorului în
scopul simplifcării procesului de comandare a unui calculator, partea funcționalăa aplicație având ca scop
principal implementarea șabloanelor studiate în cadrul disciplinei TMPS.

Obiectivele
 Realizarea unei aplicații care să asigure implementarea șabloanelor de programare
studiate.

 Realizarea unei interfețe accesibile utilizatorului și ușor de înțeles

 Crearea unui design atractiv pentru utilizator.

 Îndeplinirea tuturor funcționalităților de bază ale aplicației reieșind din faptul că


aceasta ar trebui să transmită datele de la utilizator către „fabrica de calculatoare”
pentru îndeplinirea comenzii.

 Realizarea unei aplicații actuale.

Cerințele sistemului
Funcționale

14
Aplicația desktop va fi utilizată de către clienți în scopul comandării calculatorului dorit, care va
corespunde specificațiilor clientului, la fel pentru vizualizarea ofertelor deja disponibile.
NOTA:Din motive de timp și pentru simplitate aplicația va fi disponibilă doar pe platforma
Windows. Ca perspectivă de viitor îmi propun realizarea unei aplcații mobile care ar putea mări accesul
clienților la serviciul dat.
Inregistrare automata
În momentul în care clientul deschide aplicația i se va cere sa se logheze, în cazul în care clintul
deschide pentru prima oara aplicația i se vor solicita informatiile personale descrise in atributele entitatii
client. Daca datele introduse respecta criteriile de validare pentru fiecare atribut sistemul va verifica daca
adresa de email exista deja in baza de date. Daca adresa NU exista sistemul va crea automat o inregistrare
de tip client si va permite accesul in aplicatie. Daca adresa exista deja (clientul deja s-a inregistrat)
aplicatia va permite direct accesul in aplicatie (fara a mai crea o inregistrare).

Selectare cerințe calculator


Sistemul va trebui să conțină o serie de funcționalități îndreptate spre asigurarea funcționalității
sistemului de a trasmite o factură „fabricii de calculatoare” unde vor fi specificate dorințele clientului
referitor la calculatorul dorit, astfel din cerințele funcționale pot specifica prezența câmpurilor de
introducere a datelor în drept cu categoria respectivă cum ar fi alegere tip(laptop, desktop), tip procesor,
tip ram, volum ram, tip memorie statică, volum memorie, tip monitor etc. după completarea toturor
campurilor acestease vor valida sau în caz contrar se va afișa rapunsul de eroarea cu indicația respectivă,
datele vor fi trimise cu ajutorul butonului de expediere.

Nefuncționale
Volume de date
 Este estimat un numar de maxim 5000 clienți.
 Nr administratori maxim 2.
 Nr grupe maxim de cereri pe secundă 10
Numarul de mesaje este greu de estimat. Dar vom presupune ca un client va da 3
mesaje pe zi in medie. Avand in vedere volumul mare este posibil sa fie necesare
masuri de optimizarea a functionalitatii de mesagerie. Estimari de utilizare Estimam
ca un client va deschide aplicatia in medie de 3 ori pe zi.
Performanta
Aplicatia ar trebui să se deschidă în 2 secunde in conditii normale de utilizare si in maxim 5 secunde in
conditii atipice de utilizare.
Securitate

15
Aplicatia ar trebui să fie maxim de sigură luând în considerare faptul că se vor opera cu date
personale.

Tehnologie
Aplicatiile vor folosi urmatoarele tehnologii: C#, Microsoft SQL Server,

Usurinta in utilizare
Ușurința în utilizare este un scop primordial astfel îmi propun să realizez o aplicație cât mai
simplistă în utilizare.
Localizare
Interfata aplicatiilor va fi in limba română. Nu sunt prevazute localizari in alte limbi in viitor.

2 Realizarea sistemului
Pentru realizarea sistemului în cauză am decis să aleg limbajul de programare C# care permite

16