Ingineria Programării

Curs
8/10 (3 voturi)
Domeniu: Calculatoare
Conține 10 fișiere: doc
Pagini : 149 în total
Cuvinte : 37558
Mărime: 235.76KB (arhivat)
Publicat de: Ghenadie Milea
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Ilie Marcel

Extras din curs

CURS 1. Ingineria programării

1.1 Introducere

Să presupunem că slujba unui angajat de către o companie e de a determina cerinţele unui nou sistem computerizat pe care aceasta trebuie să-l realizeze. Aceasta înseamnă că angajatul va fi responsabil pentru specificarea tuturor elementelor soft necesare inginerilor, tehnicienilor, managerilor,etc., implicaţi în proiect. Ei le vor folosi pentru a crea, a menţine şi a coordona aplicaţia soft folosită de noul sistem. Pentru a înţelege semnificaţia slujbei ce i s-a oferit, i se va face o scurta trecere în revistă a ceea ce se cere de la acest nou sistem:

- arhitectura sistemului va conţine câteva zeci de calculatoare legate în reţea, dar dispersate pe distanţa de sute sau mii de km. Mai mult decât atât, sistemul va îngloba un foarte mare număr de elemente spaţiale ce vor comunica în mod continuu prin legături pamântene şi satelit.

- Elementele de siguranţă ale sistemului sunt foarte severe. Nu se admit căderi individuale ale părţilor sistemului. Mai mult, în cazul oricărei inserări de nou soft sau părţi în acest sistem nu se admite oprirea sitemului. Odată ce sistemul a devenit operaţional, el va trebui să rămână aşa până la sfârşitul ciclului său de viaţă.

- Deoarece se intenţionează ca sistemul să funcţioneze 20-30 de ani sau mai mult, el trebuie să a ofere posibilitatea de a i se adăuga cu uşurinţă un nou soft sau hard (flexibilitatea sistemului).

Primele estimări arată că vor fi scrise în jur de 100.000 linii cod sursă în limbaj de nivel înalt pentru a îndeplini cerinţele actuale ale sistemului şi in jur de 300000 linii cod pentru softul ce va indeplini scopuri ulterioare ale aceluiaşi sistem.

Sitemul trebuie creat în 7 ani, la timp, fără depăşirea cheltuielilor. Şi încă ceva, el va trebui foarte bine documentat. Şi vor mai fi implicate aprox. 4000 persoane în dezvoltarea acestui proiect, în 30 de companii răspândite de-a lungul SUA şi posibil în Europa şi Japonia, toate acestea trebuind să lucreze cu acest sistem.

Deşi acest sistem este mult simplificat, el reprezintă unele dintre cerinţele unui proiect spaţial NASA, din anii 1990. Se poate spune că este un proiect ambiţios, totuşi nu este unic în ceea ce priveşte complexitatea sa, costul sau programarea. Există multe sisteme computerizate, de mare amploare şi complexitate, care sunt utilizate în viaţa de zi cu zi: sistemele de tranzacţii financiare ale băncilor, sistemele utilizate de companiile telefonice, sistemele de rezervare pentru liniile aeriene, sunt doar câteva exemple. Atât securitatea naţională cât şi linistea casei devin devin din ce în ce mai dependente de sistemele computerizate. Totusi, există ceva din ce în ce mai neliniştitor în privinţa acestui nivel de dependenţă: prăbuşirile avioanelor, abandonarea sondelor spaţiale, trenurile fantomă, rachete lansate care au părăsit traiectoria prevăzută, sunt doar câteva exemple de ceea ce s-ar putea întampla atunci când un sistem computerizat nu funcţionează corect.

Unii autori consideră că de cele mai multe ori eforturile de a construi un sistem software este îngreunat de faptul că nu ştim ceea ce construim şi nici cum s-o facem.

Pe de altă parte ne lovim de inerenta complexitate a sistemelor software şi de incapacitatea umană de a stăpâni complexitatea.

Există sisteme software care nu sunt complexe, acestea sunt aplicaţiile specificate, construite, întreţinute şi folosite de aceeaşi persoană, de obicei un programator amator sau profesionist. Acestea au un scop limitat şi un ciclu scurt de viaţă. E mai uşor să fie înlocuite decât să fie extinse sau refăcute. De aceea, nu proiectarea acestora este interesantă ci a sofware-ului de putere industrială (ex: sisteme pentru controlul proceselor fizice, pentru care spaţiul şi timpul sunt resurse foarte importante, sisteme care mimează inteligenţa umană, sisteme pentru coordonarea traficului aerian sau al căilor ferate, etc.). Aceste sisteme au un ciclu de viaţă mult mai lung şi, de-a lungul timpului, mulţi utilizatori depind de funcţionarea lor corectă.

O trăsătură distinctă a softului de putere industrială e aceea de a fi foarte dificil, dacă nu chiar imposibil pentru un proiectant singur să înţeleagă toate subtilităţile unui asemenea proiect. Se pare că această complexitate este o proprietate esenţială a marilor sisteme software. Prin urmare, proiectantul nu se poate bizui pe inspiraţie, el are nevoie de un mod organizat de a stăpâni complexitatea. Pentru a înţelege mai bine ceea ce urmărim să controlăm, examinăm mai întâi de ce complexitatea e o proprietate esenţială

1.2 Complexitatea sistemelor software

derivă din 4 elemente:

1) complexitatea domeniului problemei.

Problemele care cer o rezolvare software sunt deosebit de complexe, începând chiar cu specificaţiile care pot fi contradictorii (ex: specificaţiile pentru construirea unui robot). Funcţionalitatea acestor sisteme este suficient de greu de înţeles şi la aceasta se mai adaugă şi cerinţele nefuncţionale pe care trebuie să le îndeplinească sistemul: performanţă, utilitate, fiabilitate, cost, etc. Această complexitate provine şi din neînţelegerile care există între proiectanţii sistemului şi utilizatorii săi: utilizatorii, de obicei, nu-şi pot exprima clar cerinţele într-o formă pe care proiectanţii să o înţeleagă. Uneori, ei au doar o vagă idee despre ceea ce doresc de la un sistem. Practic, aceste probleme apar deoarece fiecărui grup îi lipsesc cunoştinţele despre domeniul celuilalt grup. Utilizatorii şi proiectanţii au perspective diferite de a vedea soluţia problemei. Chiar şi atunci când utilizatorii ştiu ceea ce doresc, lipsesc instrumentele pentru extragerea precisă a cerinţelor lor. Calea obişnuită prin care aceste specificaţii sunt exprimate constă în a scrie mult text, incluzând ocazioanl şi diverse figuri. Dar aceste documente sunt greu de înţeles, sunt deschise la diverse interpretări, şi deseori, conţin elemente care sunt mai degrabă de proiectare decât de specificaţiile esenţiale ale problemei.

Complicaţii mai mari apar atunci când specificaţiile sistemului se modifică în timpul dezvoltării lui. Sistemele mari tind să evolueze de-a lungul timpului, o condiţie ce impropriu este denumită “întreţinere”. Mai precis, întreţinerea înseamnă corectarea erorilor. Evoluţia înseamnă modificarea cerinţelor şi menţinerea înseamnă folosirea unor mijloace extraordinare de a păstra în utilizare un sistem vechi şi depăşit.

Preview document

Ingineria Programării - Pagina 1
Ingineria Programării - Pagina 2
Ingineria Programării - Pagina 3
Ingineria Programării - Pagina 4
Ingineria Programării - Pagina 5
Ingineria Programării - Pagina 6
Ingineria Programării - Pagina 7
Ingineria Programării - Pagina 8
Ingineria Programării - Pagina 9
Ingineria Programării - Pagina 10
Ingineria Programării - Pagina 11
Ingineria Programării - Pagina 12
Ingineria Programării - Pagina 13
Ingineria Programării - Pagina 14
Ingineria Programării - Pagina 15
Ingineria Programării - Pagina 16
Ingineria Programării - Pagina 17
Ingineria Programării - Pagina 18
Ingineria Programării - Pagina 19
Ingineria Programării - Pagina 20
Ingineria Programării - Pagina 21
Ingineria Programării - Pagina 22
Ingineria Programării - Pagina 23
Ingineria Programării - Pagina 24
Ingineria Programării - Pagina 25
Ingineria Programării - Pagina 26
Ingineria Programării - Pagina 27
Ingineria Programării - Pagina 28
Ingineria Programării - Pagina 29
Ingineria Programării - Pagina 30
Ingineria Programării - Pagina 31
Ingineria Programării - Pagina 32
Ingineria Programării - Pagina 33
Ingineria Programării - Pagina 34
Ingineria Programării - Pagina 35
Ingineria Programării - Pagina 36
Ingineria Programării - Pagina 37
Ingineria Programării - Pagina 38
Ingineria Programării - Pagina 39
Ingineria Programării - Pagina 40
Ingineria Programării - Pagina 41
Ingineria Programării - Pagina 42
Ingineria Programării - Pagina 43
Ingineria Programării - Pagina 44
Ingineria Programării - Pagina 45
Ingineria Programării - Pagina 46
Ingineria Programării - Pagina 47
Ingineria Programării - Pagina 48
Ingineria Programării - Pagina 49
Ingineria Programării - Pagina 50
Ingineria Programării - Pagina 51
Ingineria Programării - Pagina 52
Ingineria Programării - Pagina 53
Ingineria Programării - Pagina 54
Ingineria Programării - Pagina 55
Ingineria Programării - Pagina 56
Ingineria Programării - Pagina 57
Ingineria Programării - Pagina 58
Ingineria Programării - Pagina 59
Ingineria Programării - Pagina 60
Ingineria Programării - Pagina 61
Ingineria Programării - Pagina 62
Ingineria Programării - Pagina 63
Ingineria Programării - Pagina 64
Ingineria Programării - Pagina 65
Ingineria Programării - Pagina 66
Ingineria Programării - Pagina 67
Ingineria Programării - Pagina 68
Ingineria Programării - Pagina 69
Ingineria Programării - Pagina 70
Ingineria Programării - Pagina 71
Ingineria Programării - Pagina 72
Ingineria Programării - Pagina 73
Ingineria Programării - Pagina 74
Ingineria Programării - Pagina 75
Ingineria Programării - Pagina 76
Ingineria Programării - Pagina 77
Ingineria Programării - Pagina 78
Ingineria Programării - Pagina 79
Ingineria Programării - Pagina 80
Ingineria Programării - Pagina 81
Ingineria Programării - Pagina 82
Ingineria Programării - Pagina 83
Ingineria Programării - Pagina 84
Ingineria Programării - Pagina 85
Ingineria Programării - Pagina 86
Ingineria Programării - Pagina 87
Ingineria Programării - Pagina 88
Ingineria Programării - Pagina 89
Ingineria Programării - Pagina 90
Ingineria Programării - Pagina 91
Ingineria Programării - Pagina 92
Ingineria Programării - Pagina 93
Ingineria Programării - Pagina 94
Ingineria Programării - Pagina 95
Ingineria Programării - Pagina 96
Ingineria Programării - Pagina 97
Ingineria Programării - Pagina 98
Ingineria Programării - Pagina 99
Ingineria Programării - Pagina 100
Ingineria Programării - Pagina 101
Ingineria Programării - Pagina 102
Ingineria Programării - Pagina 103
Ingineria Programării - Pagina 104
Ingineria Programării - Pagina 105
Ingineria Programării - Pagina 106
Ingineria Programării - Pagina 107
Ingineria Programării - Pagina 108
Ingineria Programării - Pagina 109
Ingineria Programării - Pagina 110
Ingineria Programării - Pagina 111
Ingineria Programării - Pagina 112
Ingineria Programării - Pagina 113
Ingineria Programării - Pagina 114
Ingineria Programării - Pagina 115
Ingineria Programării - Pagina 116
Ingineria Programării - Pagina 117
Ingineria Programării - Pagina 118
Ingineria Programării - Pagina 119
Ingineria Programării - Pagina 120
Ingineria Programării - Pagina 121
Ingineria Programării - Pagina 122
Ingineria Programării - Pagina 123
Ingineria Programării - Pagina 124
Ingineria Programării - Pagina 125
Ingineria Programării - Pagina 126
Ingineria Programării - Pagina 127
Ingineria Programării - Pagina 128
Ingineria Programării - Pagina 129
Ingineria Programării - Pagina 130
Ingineria Programării - Pagina 131
Ingineria Programării - Pagina 132
Ingineria Programării - Pagina 133
Ingineria Programării - Pagina 134
Ingineria Programării - Pagina 135
Ingineria Programării - Pagina 136
Ingineria Programării - Pagina 137
Ingineria Programării - Pagina 138
Ingineria Programării - Pagina 139
Ingineria Programării - Pagina 140
Ingineria Programării - Pagina 141
Ingineria Programării - Pagina 142
Ingineria Programării - Pagina 143
Ingineria Programării - Pagina 144
Ingineria Programării - Pagina 145
Ingineria Programării - Pagina 146
Ingineria Programării - Pagina 147
Ingineria Programării - Pagina 148
Ingineria Programării - Pagina 149
Ingineria Programării - Pagina 150
Ingineria Programării - Pagina 151
Ingineria Programării - Pagina 152
Ingineria Programării - Pagina 153

Conținut arhivă zip

  • Ingineria Programarii
    • Curs_IP_01.doc
    • Curs_IP_02.doc
    • Curs_IP_03.doc
    • Curs_IP_04.doc
    • Curs_IP_05.doc
    • Curs_IP_06.doc
    • Curs_IP_07.doc
    • Curs_IP_08.doc
    • Curs_IP_09.doc
    • Curs_IP_10.doc

Alții au mai descărcat și

Fiabilitatea Softurilor

Fiabilitatea softurilor. 2 Aspecte teoretice ale fiabilităţii software 2.1 Indicatori de fiabilitate Definiţie: Fiabilitatea unui program este...

Inginerie de Sistem

• Condiţionări şi cunoştinţe prerechizite Cursul nu are condiţionări prerechizite. Cunoştinţele prerechizite care pot facilita asimilarea...

Analiza și Modelarea Sistemelor Informaționale

I. Scopul lucrării: 1. Studierea părţii teoretice şi verificarea cunoştinţelor în mediul instrumentului CASE “Rational Rose”. 2. Aprecierea...

Ingineria programării

În “Ghidul cunoștințelor esențiale referitoare la Ingineria Programării” (Guide to the Software Engineering Body of Knowledge -...

Structuri de Date și Algoritmi

Curs 1 Structuri de date Structurile de date erau definite în limbajul C drept organizarea datelor primare. În limbajul C++, acestea reprezinta o...

Analiza Datelor și Extragerea Cunostiintelor

Capitolul 1 REPREZENTĂRI, DESCRIPTORI ŞI METRICI ALE DATELOR MULTIDIMENSIONALE 1.1. Formalizarea noţiunii de variabilă O colecţie de date...

Informatică - cursuri pentru Fox Pro

I. Noţiuni, concepte şi metode utilizate în organizarea datelor Datele constituie materializarea, reprezentarea simbolică a informaţiilor (prin...

Introducere în PHP

Introducere in php Un fisier php poate contine text, etichete html si scripturi. Scripturile in fisierele php sunt executate de server. What is...

Te-ar putea interesa și

Ingineria programării

1. Descrierea problemei Principalul obiectiv indeplinit de sistemul software e-quiz este acela de a evalua cunostintele studentilor cu ajutorul...

Ingineria programării

Inmatriculari de masini Sa presupunem ca proprietarul unei masini Logan vrea sa isi inmatriculeze masina, folosind un system software. Cu privire...

Ingineria programări - Enlight browser

Analiza cerintelor Conform cu standardul IEEE STD-830-1993, IEEE Recommended Practice for Software Requirements Specification. 1. Introducere...

Ingineria programării - arbori și grafuri

Problema 1 Fie G un graf conex cu n varfuri. Fiecarui arc (i,j) i se pune in corespondenta un cost c[i][j]. Sa se listeze toti arborii acestui...

Portofoliu de probleme ingineria programării

Problema din Siracuza Fie n un număr natural oarecare citit de la tastatură. Dacă n este număr par, se împarte la 2, iar dacă este număr impar, se...

Ingineria programării

Acest proiect implementeazǎ operaţiile ce se realizeazǎ în mod curent cu structura avansatǎ de date denumitǎ B-arbore (B-Tree în englezǎ)....

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Ingineria programării - probleme

1. Enunt: Se considera un set de date ale unor elefanti (greutate si coeficient de inteligenta). Se cere sa se gaseasca o secventa cat mai lunga a...

Ai nevoie de altceva?