Ingineria programarii: Aspecte conexe
-
Upload
enrollinfo -
Category
Documents
-
view
227 -
download
0
Transcript of Ingineria programarii: Aspecte conexe
-
8/7/2019 Ingineria programarii: Aspecte conexe
1/98
Ingineria programrii
14. Aspecte conexeprocesului de dezvoltare
Florin LeonUniversitatea TehnicGheorgheAsachi din IaiFacultatea de Automatici Calculatoare
http://florinleon.byethost24.com/curs_ip.htm
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
2/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea
5. Psihologia programrii6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
3/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea
5. Psihologia programrii6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
4/98
4
Lansarea
engl. release
Lansarea unui produs software reprezint
distribuia (public sau privat) a versiuniiiniiale sau actualizate a produsului
Ciclul de via al lansrii are mai multe etapecare indic stabilitatea produsului i efortul de
dezvoltare necesar pn la lansarea final
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
5/98
5
Pre-alfa
Stadiul pre-alfa se refer la perioada de lanceputul dezvoltrii pn la faza de testare asistemului
Nu are toate funcionalitile implementate
Pot exista mai multe versiuni pre-alfa (deexemplu, n dezvoltarea open source,
milestone versions i nightly builds) carepermit testerilor s testeze imediat ultimelefuncionaliti implementate
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
6/98
6
Alfa
Este versiunea livrat de obicei testerilorinterni, din organizaia dezvoltatoare ns pot fi implicai i parteneri externi, pentru
testarea utilizabilitii
Versiunea alfa poate fi instabil n general, nu este livrat utilizatorilor finali
Exist excepii, mai ales la produsele open-source
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
7/98
7
Beta (I)
Se mai numete previzualizare (preview), sau previzualizaretehnologic/tehnic (technology/technical preview)
Este versiunea livrat n general unui numr limitat de utilizatoripentru testare naintea lansrii oficiale
Testerii beta pot primi produsul mai ieftin sau gratuit, dar factestarea gratis Testerii sunt de obicei familiarizai cu tehnologia sau cu versiunile
precedente Versiunile beta nchise se adreseaz unui grup selectat de persoane
(de obicei produsele proprietare) Versiunile beta deschise se adreseaz unei comuniti mari sau
ntregului publicului (de obicei produsele open-source)
Permite testarea utilizabilitii cu utilizatori finali care raporteazproblemele ntlnite
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
8/98
8
Beta (II)
Nu estenc o versiune stabil n general include toate funcionalitile, dar conine i
defecte cunoscute, mai mult sau mai puin serioase
Unele produse pot sta n versiune beta un timpndelungat, n care s fie utilizate pe scar larg,de exemplu Gmail (2004-2009)
Dezvoltatorii pot s nu ofere suport tehnic i s nu-iasume responsabilitatea pentru problemele aprute
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
9/98
9
Candidat pentru lansare
engl. release candidate
Este o versiune cu potenial de a deveni produsulfinal
n faza de stabilizare, toate funcionalitile au fostimplementate i testate fr a mai fi gsite defecteserioase
Mai poate fi inclus cod pentru a corecta defectele,se mai poate modifica documentaia i fiierele dedate, dar nu se mai scrie cod funcional nou
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
10/98
10
RTM, GA
RTM engl. release to manufacturing, lansare pentru fabricaie Indic faptul c produsul ndeplinete un standard de
calitate bine definit i este gata pentru distribuia de mas gold master CD, utilizat pentru duplicare imaginea pentru lansarea pe web
GA engl. general availability, disponibilitate general Punctul n care toate activitile de comercializare au fost
terminate i produsul poate fi livrat ca mediu fizic sauelectronic box copy, web release
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
11/98
11
Sfritul vieii
engl. end of life
Cnd compania nu mai vinde produsul i numai asigur suport (nu mai lanseaz noipatch-uri)
Produsul ajunge n stadiul de motenire(legacy)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
12/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea
5. Psihologia programrii6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
13/98
13
Desfurarea
engl. deployment
Reprezint toate activitile care fac unsistem software disponibil pentru utilizare
Este un proces general care trebuieparticularizat n funcie de cerinele concreteale fiecrei situaii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
14/98
14
Activiti
Lansarea Cu precizarea resurselor
necesare
Instalarea Activarea
Dezactivarea De exemplu, nainte de
actualizare
Adaptarea Local(de exemplu, dup
schimbarea unei piese ncalculator)
Actualizarea Manual sau automat, la
distan
Urmrirea versiunilor Informarea utilizatoruluiasupra apariiei unor noiversiuni
Dezinstalarea
Retragerea ncheierea suportului tehnic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
15/98
15
Cicluri de desfurare
Ciclul de livrare Livrarea iterativ de software operaional
Ciclul de suport Documentaie i asisten specializat
Ciclul de reacie (feedback) Modificri ale funcionalitii sau trsturilor pentru
urmtoarea iteraie
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
16/98
16
Principii (I)
Gestionarea ateptrilor clientului Nu trebuie descris sau promis mai mult dect ce se poate livra efectiv la un
moment dat
Nu trebuie livrat la o iteraie mai mult dect ce s-a promis i mai puin laurmtoarea iteraie
Crearea i testarea unui pachet de distribuie complet Incluznd produsul software executabil testat n prealabil, scripturi de
instalare, documentaie, fiiere de date etc.
Stabilirea unui sistem de suport nainte de livrare Rspusuri prompte la problemele clientului
Mecanism de nregistrare pentru evaluarea tipurilor de suport solicitate
Materiale suplimentare pentru clieni Ghiduri de rezolvare a problemelor frecvente (troubleshooting), ce e nou n
versiunea curent etc.
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
17/98
17
Principii (II)
Produsele software cu defecte trebuie mai nti corectatei abia apoi livrate Clienii vor uita c ai livrat un produs de calitate cu cteva zile
ntrziere, dar nu vor uita niciodat problemele cauzate de un
produs cu defecte. Produsul softwarensui le amintete acestlucru n fiecare zi.
Reaciile trebuie colectate i nregistrate. Aciunile echipei dedezvoltare la defectele semnalate trebuie s includ: Modificri imediate n versiunea curent
Definirea modificrilor pentru versiunea urmtoare Modificri n proiectare pentru includerea schimbrilor
Revizuirea planificrii (inclusiv a datei de livrare) pentru urmtoareaversiune
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
18/98
18
Sarcini generice
Crearea suportului fizic pentru distribuire
Stabilirea persoanei sau grupului de suport tehnic
Stabilirea mecanismelor de reacie Formulare de raportare, baze de date, procesul de evaluare
Diseminarea mediului de distribuie la utilizatori
Asigurarea asistenei pentru instalare i operare
Colectarea reaciilor utilizatorilor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
19/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea5. Psihologia programrii6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
20/98
20
Modificrile
Modificrile produselor software sunt inevitabile Apar noi cerine cnd este folosit programul
Mediul economic se schimb
Trebuie reparate defectele Sistemului i se adaug noi calculatoare sau
echipamente
Performanele sau ncrederea produsului trebuiembuntite
Implementarea i gestionarea modificrilor nsistemele software existente sunt probleme cheiepentru o organizaie
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
21/98
-
8/7/2019 Ingineria programarii: Aspecte conexe
22/98
22
ntreinerea
engl. maintenance
Standardul ISO/IEC 14764
ntreinerea reprezint modificarea unui produssoftware dup livrare pentru a corecta defecte,pentru a crete performanelesau alte atribute ipentru a adaptaprodusul la un mediu modificat
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
23/98
23
Tipuri de ntreinere (I)
Standardul ISO/IEC 14764 identific 4 tipuride ntreinere:
ntreinere corectiv
ntreinere adaptiv
ntreinere perfectiv
ntreinere preventiv
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
24/98
24
Repararea defectelor Modificrile aduse pentru corectarea deficienelor
pentru ca sistemul s-i ndeplineasc cerinele
Adaptarea produsului software la un alt mediu deexecuie Modificarea sistemului pentru a opera ntr-un mediu
diferit (calculatoare cu alte configuraii, un alt sistem deoperare etc.) fa de implementarea iniial
Adugarea sau modificarea funcionalitilorsistemului Modificarea sistemului pentru a satisface noi cerine
Tipuri de ntreinere (II)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
25/98
25
Distribuia efortului dentreinere
Adugarea sau modificarea funcionalitilor 65% Adaptarea la un alt mediu18% Repararea defectelor17%
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
26/98
26
ntreinerea este inevitabil
ntreinerea nu implic n mod normal schimbri majore alearhitecturii sistemului
Schimbrile sunt implementate prin modificarea componentelorexistente i adugarea altora noi
Cerinele sistemului se pot schimba chiar n timpul dezvoltriisale deoarece mediul se schimb; n acest caz sistemul livratnu-i va ndeplini cerinele
Sistemele sunt strns legate de mediul de execuie. Cndsistemul este instalat n mediul de execuie, el schimb acestmediu i deci se schimb astfel i cerinele sistemului nsui
Pentru ca sistemele software s rmn utile n mediul lor deexecuie, ele trebuie ntreinute
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
27/98
27
Legile lui Lehman
Schimbarea continu: Un program utilizat ntr-un mediu realtrebuie n mod necesar s se schimbe. Altfel, devine din ce n cemai puin util n mediul respectiv
Complexitatea crescnd: Pe msur ce un program evolueaz,
structura sa devine din ce n ce mai complex. Pentru pstrarea isimplificarea structurii trebuie alocate resurse suplimentare
Evoluia programelor mari: Evoluia unui program este un procescu autoreglare. Atributele sistemului precum dimensiunea, intervalulde timp dintre lansri i numrul de defecte raportate este
aproximativ invariant pentru fiecare lansare Stabilitatea organizaional: Pe parcursul ciclului de via al unui
program, rata sa de dezvoltare este aproximativ constant iindependent de resursele alocate pentru dezvoltarea sistemului
de fapt, sunt ipoteze
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
28/98
28
Legile lui Lehman
Conservarea familiaritii: Pe parcursul ciclului de via al unuisistem, schimbrile incrementale la fiecare lansare sunt aproximativconstante
Dezvoltarea continu: Funcionalitile oferite de sistem trebuie s
creasc n mod continuu pentru a menine satisfacia utilizatorului Scderea calitii: Calitatea sistemului va prea c scade dac
acesta nu se adapteaz schimbrilor din mediul de execuie
Sistem cu reacie: Procesele evolutive ncorporeaz sisteme cureacie (engl. feedback) multi-agent imulti-iterative i trebuietratate ca atare pentru a obine mbuntiri semnificative aleproduselor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
29/98
29
Sunt de obicei mai mari dect costurile de dezvoltare
Sunt influenate att de factori de natur tehnic cti non-tehnic
Costurile cresc pe msur ce produsul este ntreinut ntreinerea afecteaz structura sistemului astfel nct
ntreinerea devine din ce n ce mai dificil
Programele nvechite (legacy) implic mari costuri
de ntreinere: limbaje vechi (compilatoare), optimizripentru creterea performanelor (lips de claritate),lipsa managementului configuraiei etc.
Costurile de ntreinere
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
30/98
30
Dezvoltare i ntreinere
Efortul de dezvoltare i efortul de ntreinere
Stabilitatea echipei Responsabilitatea contractual Competena personalului Vrsta i structura programului
Investiiile suplimentaren flexibilitate din faza
de dezvoltare scadcosturile fazei dentreinere
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
31/98
31
Schimbri urgente
Schimbrile urgente trebuie implementate fr aparcurge toate etapele procesului de dezvoltare alunui produs software
Cnd trebuie reparat un defect critic al sistemului Cnd schimbrile din mediul de execuie au efecte
neprevzute (de exemplu introducerea unei noi versiunia unui sistem de operare)
Cnd schimbrile din mediul comercial necesit unrspuns foarte rapid (de exemplu lansarea unui produsconcurent)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
32/98
32
Re-inginerie
engl. re-engineering
Restructurarea sau rescrierea unei pri sau antregii funcionaliti a unui sistem nvechit
Aplicabil cnd unele sub-sisteme ale unui sistemmai mare necesit schimbri frecvente
Restructurarea implic un efort suplimentar pentruuurarea ntreinerii
n urma restructurrii poate aprea necesitatearedocumentrii sistemului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
33/98
33
Activiti
Traducerea codului surs Conversia codului ntr-un alt limbaj de programare
Inginerie invers (engl. reverse engineering)
Analiza programului vechi pentru a-l nelege mbuntirea structurii programului
Restructurarea pentru creterea claritii i a niveluluide nelegere
Modularizarea programului Reorganizarea structurii programului
Restructurarea datelor (engl. data re-engineering) Curarea i restructurarea datelor sistemului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
34/98
34
Avantajele restructurrii
Reducerea riscurilor Dezvoltarea unui nou produs software poate fi
riscant: probleme de dezvoltare, de personal,
de specificaii Reducerea costurilor
Costul restructurrii este de cele mai multe ori
semnificativ mai mic dect costul dezvoltriiunui nou produs software
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
35/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea5. Psihologia programrii6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
36/98
36
Reutilizarea
n majoritatea disciplinelor inginereti, sistemelesunt proiectate prin compunerea unor componenteexistente care au fost utilizate i verificate n alte
sisteme Iniial, ingineria programrii s-a concentrat pe
dezvoltarea de produse noi de la zero
n prezent, pentru a obine mai rapid i mai ieftin
produse software mai bune, trebuie adoptatreutilizarea sistematic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
37/98
C f
-
8/7/2019 Ingineria programarii: Aspecte conexe
38/98
38
Clasificarea tehnologiilorde reutilizare
Tehnologii bazate pe compunere Reutilizarea se face parial prin compunerea unui nou sistem din
componentele existente
Elementele constitutive (engl. building blocks) sunt fragmente
pasive ce sunt copiate dintr-o baz de componente existent De exemplu: bibliotecile de funcii
Tehnologii bazate pe generare Cunotinele reutilizate se regsesc ntr-un program care
genereaz un alt program
Tiparele reutilizabile reprezint un element activ folosit pentru agenera sistemul int
De exemplu: generatoarele de aplicaii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
39/98
-
8/7/2019 Ingineria programarii: Aspecte conexe
40/98
40
Deziderate pentru reutilizare
Pentru reutilizarea cu uurin a unor funcii,trebuie s avem: Un domeniubine cunoscut, cu o terminologie
standardizat; cosinussau cosreprezint acelailucru pentru toat lumea
O interfabine precizat: avem nevoie de exact unnumr pentru a calcula funcia cosinus
Un format de datestandardizat: un numr poate fireprezentat n virgul fix, n virgul mobil, n dublprecizie
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
41/98
41
Granularitatea componentelor
Cu ct este mai mare o component, cu att va fi mai bunrezultatul reutilizrii ei
Pe de alt parte, componentele mari tind s devin maigreu de reutilizat, avnd n vedere c gradul de reutilizare aunei componente scade o dat cu creterea mrimiicomponentei
Acest lucru este datorat faptului c, n general,componentele mai mari tind s impun constrngeri mai
multe mediului lor Analogie cu teorema fundamental a biologiei (Fisher): cu
ct un organism este mai adaptat unui mediu dat, cu atteste mai puin pregtit pentru un alt mediu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
42/98
42
Clasificarea componentelor
Biblioteca de componente realizat de Prieto iDaz
Fiecare component este descris de un numr
de faete (atribute) De exemplu, aciunea pe care o ncorporeaz,
obiectul pe care l manipuleaz sau structura de datefolosit
Pentru a determina apropierea de ocomponent, se folosesc msuri ale distaneidintre noiunile care compun faetele
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
43/98
43
Reutilizarea proiectrii
Reutilizarea proiectrii (arhitecturii) se refer lamodalitatea n care se mbin diverse pri ale unuisistem
Ea se dovedete profitabil ntr-un mediu n careeste dezvoltat mereu i mereu acelai tip deprogram
Exemple: Construcia compilatoarelor
Parser, analizor lexical, analizor sintactic, tabel de simboluri,generator de cod etc.
Mediile de dezvoltare software
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
44/98
44
Reutilizarea conceptelor
Cnd se reutilizeaz programele sau componentele deproiectare, trebuie respectate deciziile de proiectare aledezvoltatorului originar Acest fapt poate limita ocaziile de reutilizare
O form mai abstract de reutilizare este reutilizareaconceptelor O anumit abordare este descris ntr-o manier
independent de implementare
Dou mari tipuri de reutilizare a conceptelor sunt: abloanele de proiectare
Programarea generic (clase generice, template-uri, aspecte)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
R tili b t
-
8/7/2019 Ingineria programarii: Aspecte conexe
45/98
45
Reutilizarea bazat pegenerare
Generatoarele de programe implic reutilizareaabloanelor i algoritmilor standard
Acetia sunt integrai n generator i parametrizai
prin comenzile utilizatorului, apoi se genereazautomat programele
Reutilizarea bazat pe generare este posibil cndpot fi identificate abstraciunile domeniului i
acestea pot fi transformate n cod executabil Pentru a controla i compune aceste abstraciuni
se utilizeaz un limbaj specific domeniului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
46/98
R tili i t l d
-
8/7/2019 Ingineria programarii: Aspecte conexe
47/98
47
Reutilizarea sistemelor deaplicaii
Presupune reutilizarea unor aplicaii ntregi princonfigurarea sistemului pentru un anumit mediusau prin integrarea a dou sau mai multe
sisteme pentru a crea un nou produs
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
R tili d l
-
8/7/2019 Ingineria programarii: Aspecte conexe
48/98
48
Reutilizarea produselorcomerciale
engl. COTS, Commercial Off-The-Shelf, Sisteme comerciale gata fcute (de pe raft) Sistemele comerciale sunt de obicei aplicaii complete care
ofer o interfa de programare a aplicaiilor (API)
Construirea de sisteme de mari dimensiuni prin integrareaproduselor comerciale este n prezent o strategie viabil dedezvoltare. Exemple: Sisteme de gestiune a bazelor de date Sisteme de comer electronic (client/server, module de
programare web pentru trimiterea i preluarea comenzilor) Avantaje
Rapiditatea dezvoltrii aplicaiilor Costuri (de obicei) mai mici
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
49/98
49
Exemplu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
50/98
50
ntrebri
Care produs comercial ofer funcionalitatea ceamai potrivit? Pot exista mai multe produse similare care pot fi utilizate
Cum pot fi importate/exportate datele? Multe produse utilizeaz propriile structuri de date i
formate
Ce caracteristici ale produsului vor fi folosite defapt? Majoritatea produselor au mai multe funcionaliti dect
cele necesare Accesul la funciile neutilizate ar trebui mpiedicat
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
51/98
51
Probleme
Lipsa controlului asupra funcionalitii i performanelor Sistemele COTS pot fi mai puin eficiente dect par
Probleme de interoperabilitate Integrarea mai multor sisteme COTS poate fi dificil datorit
particularitilor fiecrui sistem Lipsa controlului asupra evoluiei sistemului
Evoluia sistemului e controlat de creatorii produsului COTS inu de utilizatorii sistemului
Suportul din partea creatorilor produsului COTS Este posibil ntreruperea suportului tehnic la un moment dat,
nainte de ncheierea ciclului de via al sistemului client
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Configurarea produselor
-
8/7/2019 Ingineria programarii: Aspecte conexe
52/98
52
Configurarea produselorcomerciale
Configurarea la lansare Sistemul generic este configurat prin integrarea
de cunotine privind cerinele clientului
Programul propriu-zis nu este modificat Configurarea la proiectare Codul generic este adaptat i modificat potrivit
cerinelor clienilor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
53/98
53
Linii de produse software
Numite i familii de aplicaii Reprezint o mulime de aplicaii cu arhitectur
similar n care fiecare aplicaie este specializatns nucleul comun este reutilizat pentru fiecareaplicaie nou
Tipuri de specializri: Platform: sisteme de operare Mediu: medii de execuie, echipamente periferice Funcionalitate: clieni diferii cu cerine specifice Proces: procese de lucru (de exemplu sisteme de
comand centralizate sau distribuite)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
54/98
54
Reconfigurarea
Liniile de produse software sunt proiectatepentru a fi reconfigurate Configurare n momentul desfurrii
De ctre client sau consultanii acestuia Configurare n momentul proiectrii
Organizaia dezvoltatoare adapteaz componentelepentru a crea un sistem nou pentru client
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
55/98
55
ERP
engl. Enterprise Resource Planning,planificarea resurselor ntreprinderilor
Exemple: SAP, BEA Sisteme integrate de scar larg, destinate
sprijinirii proceselor de afaceri De exemplu: comenzi, facturi, inventar,
planificarea produciei etc.
Folosesc configurarea n momentuldesfurrii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
56/98
56
Configurarea unui ERP
De obicei necesit configurarea de ctre clientsau consultant a sistemului general pentruprocesele specifice ale clientului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
57/98
57
Etapele reutilizrii
Abstractizrile utile sunt descoperite, nuinventate
Blocurile reutilizabile corespund pieselor de
cunoatere cristalizate care pot fi folosite in alte situaii dect cele pentru care au fostgndite iniial
Componentele ar trebui s reflecte noiunileprimitive ale domeniului aplicaiei
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
58/98
58
Primitivele unui domeniu
Un domeniu este caracterizat printr-o colecie denoiuni comune care au coeren, n timp ce nafara domeniului, aceleai noiuni nu exist sau
nu prezint aceeai coeren Domeniile pot fi mai largi sau mai restrnse
Pentru majoritatea domeniilor, nu este evident
imediat care sunt primitivele corecte; este nultim instan o problem de ncercare ieroare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
59/98
59
Evoluia unui domeniu
La nceput, nu exist nc un set clar de noiuni i tot programul este scrisde la nceput. Experiena se ctig ncet, pe msur ce se nva dingreelile anterioare
n etapa a doua, probleme similare sunt depistate i rezolvate n modurisimilare. Sunt recunoscute primele primitive semantice. Dup ce se
ncearc i se d gre, se decide care sunt primitivele utile i care sunt celeinutile
n a treia etap, domeniul este gata de reutilizare. S-au implementat unnumr rezonabil de programe, s-a stabilit o mulime de concepte, s-au gsitsoluii standard pentru o serie de probleme standard
n sfrit, domeniul a fost explorat n totalitate. Implementarea programelorpentru domeniu poate fi automatizat. Nu se mai programeaz efectiv, ci sefolosete o interfa standard format din primitivele semantice aledomeniului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
60/98
60
Reutilizarea domeniului
n prima etapnu existreutilizare
n a doua etapreutilizarea este ad hoc
n a treia etapreutilizarea este structurat,
componentele existente sunt refolosite ntr-un modorganizat atunci cnd se implementeaz un nouprogram
n etapa a patra, reutilizarea este instituionalizat iautomatizat, efortul uman este concentrat lanivelurile superioare de abstractizare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
61/98
61
Formalizarea unui domeniu
A formaliza un domeniu nseamn a construi unlimbaj formal (pe domeniu) care mimeaz un limbajinformal existent
Trebuie apoi s se aleag dintre diverseleprimitivele semantice care exist informal
Uneori se adaug noi primitive, care se potrivescbine domeniului formalizat
Formalizarea este un proces iterativ Persoanele care lucreaz n domeniu ncep s
foloseasc primitivele limbajului construit
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
62/98
62
Economia reutilizrii software
Reutilizarea este o investiie pe termen lung
Recuperri imediate ale investiiei pot fi obinutedac programul refolosit este mic la nceput i
are o bibliotec iniial ai crei membri suntextrai din produsele existente
Economiile datorate reutilizrii software pot
depi costurile de producie i ntreinere
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
63/98
-
8/7/2019 Ingineria programarii: Aspecte conexe
64/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea5. Psihologia programrii
6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
65/98
65
Psihologia programrii
Psihologia programrii prezint factorii umani legai deconceperea i utilizarea programelor,cum ar fi: Uurina cu care programatorii manipuleaz diverse
construcii ale limbajelor de programare
Problemele legate de capacitatea de nvare a programrii
Predispoziia spre erori i robusteea construciilor unui limbaj
Tipurile de erori fcute de programatori
Uurina de a utiliza aplicaii software, cum ar fiprocesoarelede text, de ctre neiniiai
Rolul help-ului on-line
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
66/98
66
Aplicabilitatea ecologic
n momentul cnd se fac experimente, o ateniesporit trebuie acordat aplicabilitii ecologice(adic a relevanei rezultatelor n cazul generalizrii
n situaii reale) Factori care trebuie luai n considerare:
Mulimea subiecilor: diferenele ntre indivizi influeneazrezultatele obinute
Contextul sistemului: limbaje jucrievs. situaii reale Dimensiunea problemei: aplicaii micivs. aplicaii mari i
probleme vagi
Contextul de lucru: suprapunerea mai multor sarcini
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
67/98
67
Memoria uman
Programatorii trebuie s memoreze construciisintactice i semantice i s le prelucreze pentrugsirea unei soluii
Tradiional, se consider c exist 3 tipuri dememorie: Memoria senzorial
Memoria de scurt durat (7 2)
Memoria de lung durat (semantic, avnd ocapacitate foarte mare, 70000 20000 ? )
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
68/98
68
Cunotine semantice
Concepte generale care nu sunt direct legate deun anumit limbaj de programare
Privesc att concepte de nivel sczut
(de exemplu atribuirea unei variabile), ct iconcepte de nivel nalt (de exemplu un algoritmde sortare)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
69/98
69
Cunotine sintactice
De exemplu formatul construciei whiledin C
Cunotinele sintactice sunt arbitrare i deci uor de uitat
E mai uor de nvat o structur sintactic atunci cnd
structura semantic corespunztoare este dejacunoscut nvarea unui prim limbaj de programare este mai dificil dect
nvarea urmtorului (sau urmtoarelor). Dup un timp estenecesar numai stpnirea unei sintaxe noi
Acest lucru nu se ntmpl dac noul limbaj are o structursemantic diferit (de exemplu un limbaj declarativ cum ar fiCLIPS fa de un limbaj procedural ca C-ul)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
70/98
70
Semantic i sintactic
Cunoaterea semantic trebuie nvat i asimilat
Cunotinele sintactice pot fi stpnite prin simpleexerciii
Aceste dou tipuri de cunotine nu sunt integratempreun n memorie
De exemplu, nelegerea sensului unei sarcini nueste legat neaprat de modul n care aceasta estetranspus ntr-un anumit limbaj de programare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
71/98
71
Rezolvarea problemelor
Etape: nelegerea problemei
Realizarea unui plan, descoperirea unei strategii
de obinere a soluiei Executarea planului
Verificarea rezultatelor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
72/98
72
Planuri de programare
Fragmente de program care corespund unoraciuni stereotipe i reguli care descriu conveniide programare
Jaloanele sunt cunotine care indic prezenaunei anumite structuri sau operaii De exemplu, o idee fundamental n rutinele de
sortare este interschimbarea a dou valori
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
73/98
73
nelegerea unui program
Cnd studiem codul unui program, construim ostructur semantic intern care s corespundprogramului
Elemente precum adugarea comentariilor,numele sugestive ale variabilelor, aliniereauureaz acest proces
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
74/98
-
8/7/2019 Ingineria programarii: Aspecte conexe
75/98
75
Comentarii utile
Comentariile care explic funcionalitatea suntpreferate comentariilor de nivel sczut
Comentariile nu trebuie s imite codul, ca n
exemplul urmtor: x = 0;// x devine 0
Comentariile trebuie s foloseasc terminologiadomeniului. De exemplu, este mai bine s folosim
// Caut studentul cu media cea mai maredect
// Caut cea mai mare valoare din tabel
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
76/98
76
Numele variabilelor
Dac ne confruntm cu un program n carevariabilele sunt numite P, Q, i R, vom ntmpinadificulti n a nelege semnificaia lor
Pe de alt parte, mnemonice de forma contsaufacturreflect un anumit rol semantic i determino legtur direct ctre ceea ce reprezint ele Mnemonicele faciliteaz procesul de nelegere
Totui, dac cel care citete programul cunoatedeja algoritmul, numele variabilelor nu mai prezinto importan deosebit
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
77/98
77
Indentaia
Indentaia (engl. spaiere, zimuire) se referla determinarea distanei fa de margine (ncaractere albe) a liniilor de program, astfel nct
s poat fi puse n eviden anumite structuri aleprogramului
Scopul indentaiei este creterea lizibilitiicodului
Stilul indentaiei poate diferi considerabil, chiardac este folosit acelai limbaj de programare
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
78/98
78
Limbaj i gndire
O ipotez din lingvistic afirm c modul nostrude gndire este ngrdit de limbajul n care neexprimm.Reciproc, modul nostru de a gndi
constrnge utilizarea limbajului Limbajele de programare ar trebui concepute n
aa fel nct s faciliteze o exprimare ct mainatural a algoritmilor
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
79/98
79
Go to
Cercetrile experimentale au artat c sunt preferate construciileif-then-elsefa de construciile if-goto
Mai uor de indentat
Sunt construcii de nivel mai nalt deci mai puin complexe
Prezena instruciunilor gotocrete dificultatea i timpul necesardepanrii. Concluziile unui experiment:
Programele cu rezultate eronate aveau de dou ori mai multe goto-uridect programele cu rezultate corecte
Programele cu goto-uri aveau o structur cu mult mai proast dect cele
fr goto Timpul mediu pentru depanarea programelor cu goto-uri era mai mare
dect cel al programelor fr goto
Totui, un program fr goto-uri nu este obligatoriu fr defecte
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
80/98
80
Abstractizarea
Utilizarea structurilor i claselor crete gradul deabstractizare al programului, cu efecte benefice asupra
nelegerii Astfel se explic i tendina de nlocuire a programrii structurate
cu programarea orientat obiect n timpul proiectrii, problema este descompus n
module Pentru programe de mici dimensiuni, avantajul modularizrii nu
este evident Cnd dimensiunea programelor crete, tehnica modularizrii
devine foarte important, iar modificrile sunt mult mai rapidedect n cazul programelor monolitice echivalente
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
81/98
81
Interfaa cu utilizatorul
n multe cazuri, interfaa cu utilizatorul necesit mai mult de 30% dincod, deoarece este un factor critic pentru succesul sau eeculsistemului
Factori care influeneaz interaciunea dintre utilizatorul uman icalculator: Modelul mental al utilizatorului (modelul mainii pe care l creeaz
utilizatorul)
Imaginea sistemului (toate elementele sistemului cu care vine ncontact utilizatorul)
Modelul conceptual(modelul precis din punct de vedere tehnic creat
de proiectani) Problema fundamental a realizrii unei interfee ntre om i
calculator este apropierea ct mai mare a modelului conceptual demodelul mental al utilizatorului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
82/98
82
Interfaa cu utilizatorul
Aciunile percepute ca o singur unitate conceptualtrebuie implementate ca o singur comand
Sarcinile apropiate semantic trebuie s fie apropiate
i n interfa Introducerea datelor trebuie s fie uoar pentru
utilizator, nu pentru programator: ^ 10 2 vs. 102
Mesajele de eroare trebuie s fie explicite iformulate n termenii utilizatorului, nu aiprogramatorului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
83/98
83
Aa nu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
84/98
84
Aa nu
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
85/98
85
Cunotine generale
Dac CTRL+Jntr-un editor de text mutcursorul cu o linie mai jos
Atunci CTRL+S: Mut cursorul cu o linie mai sussau
terge fiierul?
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
86/98
86
Consistena interfeei
Compromis ntre consisten i funcionalitate
De exemplu dispunerea tastelor sgei
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
87/98
87
Curb de nvare
Cnd omul ncepe s nvee ceva, eltraverseaz o curb de nvare
Viteza cu care utilizatorul traverseaz curba de
nvare este o msur a complexitiiprogramului
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
88/98
88
ncrcarea cognitiv
Determinat de limitrile memoriei de scurt durati ateniei
Noile cunotine sunt integrate cunotinelor
existente Secvenele lungi de comenzi, meniurile cu un mare
numr de elemente, nesigurana asupra loculuiunde ne aflm au ca efect stnjenirea interaciunii
Pe msur ce ncrcarea cognitiv crete, sistemuldevine mai greu de nvat, utilizatorul obosete mairepede i ncepe s fac mai multe greeli
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
89/98
89
Help-ul
Pentru submulimea de comenzi abia cunoscute,se recomand un sistem de help pasiv, on-linesau off-line (documentaie)
Pentru comenzile necunoscute de utilizator, serecomand un help activ, care s-l ndrume peutilizator i s-i explice noile noiuni necunoscute(tips, hints)
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
90/98
-
8/7/2019 Ingineria programarii: Aspecte conexe
91/98
Aspecte conexeprocesului de dezvoltare
1. Etapele lansrii unui produs software2. Desfurarea3. ntreinerea4. Reutilizarea5. Psihologia programrii
6. Etica programrii7. Concluzii
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
92/98
92
Valori
Tehnologia nu este neutr din punctul devedere al valorilor
Un program poate transmite valorile
programatorului Filosofia open source
Virui
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
93/98
93
Codul etic IEEE
Acceptarea responsabilitii de luare a deciziilor inginereti nconformitate cu sigurana, sntatea i bunstarea public idezvluirea prompt a factorilor care ar putea pune n pericoloamenii i mediul
Evitarea conflictelor de interese reale sau percepute ori de cteori acest lucru este posibil i dezvluirea lor ctre prileimplicate atunci cnd asemenea conflicte exist
Corectitudinea i realismul cerinelor sau estimrilor bazate pedate disponibile
Respingerea mitei sub toate formele ei Perfecionarea nelegerii tehnologiei, aplicaiilor sale adecvate
i a consecinelor poteniale
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
94/98
94
Codul etic IEEE
Meninerea sau perfecionarea propriei competene tehnice iasumarea rspunderii pentru sarcinile care i privesc pe alii numai
n cazul calificrii prin instruire sau experien sau dupdezvluirea complet a limitrilor legate de acestea
Cutarea, acceptarea i acordarea de critici oneste ale lucrrilortehnice, recunoaterea i corectarea erorilor i creditareaadecvat a contribuiilor altora
Tratarea neprtinitoare a tuturor persoanelor, fr a ine seama defactori precum ras, religie, sex, handicap, vrst sau naionalitate
Evitarea defavorizrii altora, a proprietii, reputaiei sau serviciuluilor prin aciuni incorecte sau ruvoitoare
Asistena acordat colegilor n dezvoltarea lor profesional i nrespectarea prezentului cod de etic
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
95/98
95
Legea drepturilor de autor
Legea drepturilor de autor (nr. 8 / 14 martie 1996) Recunoate i garanteaz dreptul de autor asupra operelor de creaie
intelectual, literar, artistic sau tiinific, incluznd i programele decalculator
Valoarea programelor de calculator nu este dat de suportul
material i nici de munca depus pentru realizarea acestor suporturi(de exemplu CD/DVD-ROM-uri)
Consimmntul pe care titularul dreptului de autor l d uneipersoane pentru a putea reproduce, folosi, difuza sau importa cpiiale unui program de calculator, se concretizeaz n practic n
licene Lipsa licenelor echivaleaz cu lipsa autorizrii din partea autorului,
iar desfurarea activitilor menionate fr aceste licenereprezint infraciuni
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
96/98
96
Licena public general GNU
Intenia Licenei Publice Generale GNU este dea garanta libertatea de a distribui i modificaprogramele i de a se asigura c programele
sunt libere pentru toi utilizatorii Licena GNU dorete evitarea pericolului ca cei
ce redistribuie programe libere s obin patente
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
97/98
97
Termeni i condiii
Se pot copia i distribui cpii nemodificate alecodului surs specificnd vizibil autorulprogramului i licena GNU
Se pot modifica sursele menionndu-se autorul,data modificrii i lipsa oricrei garanii
Se pot copia i distribui programe nsoite decodul surs
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
-
8/7/2019 Ingineria programarii: Aspecte conexe
98/98
Concluzii
Dup livrare, produsele software trebuie ntreinutepentru a-i pstra valoarea n mediul lor defuncionare
Avantajele reutilizrii sunt costurile mai mici,dezvoltarea mai rapid i riscurile sczute
Psihologia programrii studiaz factorii umani legaide conceperea i utilizarea programelor
Ca orice creaie intelectual, programele sunt supusereglementrilor privind drepturile de autor