Ingineria programarii: Aspecte conexe

download Ingineria programarii: Aspecte conexe

of 98

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