medii interactive de dezvoltare a produselor software

82
Lector univ  Boleac R MIDPS

Upload: gicu

Post on 05-Jul-2018

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 1/82

MIDPS

Page 2: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 2/82

Definiţii

n Limbaj de programare: notaţie sistematicăprin care este descris un proces de calcul

n Procesul de calcul este constituit dintr-omulţime de paşi pe care o maşină îiexecută pentru a rezolva o problemă

n Limbaj maşină: limbajul nativ al unuicomputer 

Page 3: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 3/82

Limbaj maşină

n Operaţii aritmetice şi logice,n Operaţii de intrare-ieşiren Funcţii speciale, funcţii de controln Strâns legat de arhitectură0000101011110000

00101111111111110010000000000101

Page 4: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 4/82

Limbaj de asamblare

n Atribuie nume simbolice (mnemonici)codificărilor operaţiilor maşinii şi locaţiilor dememorie asociate

LOAD IADD JSTORE K

K := I + J

Page 5: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 5/82

Niveluri ale limbajelor 

n Limbaje de nivel scăzut (lb. maşină, asm)

n Limbaje de nivel înalt (C, C++, C# etc.)

n Traducerea este realizată de translatoare

(compilator, asamblor)

n

Traducerea duce la scăderea performanţein Lb. nivel înalt portabilitate

Page 6: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 6/82

Paradigme de programare

n Colecţii individualizate de caracteristici deevaluare şi criterii de abstractizare care

determină şi diferenţiază clasele delimbaje de programaren Criterii:

¨ structura programului¨ noţiunea de stare a execuţiei¨ metodologia programării

Page 7: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 7/82

Paradigme de programare

1. Programare nestructurată (GOTO)

2. Programare structurată

3. Programarea procedurală (ALGOL60)

4. Programare funcţională (Lisp, Miranda,ML, Haskell)

5. Programare imperativă

Page 8: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 8/82

Paradigme de programare

6. Programare declarativă (Prolog, Haskell, SQL,WSDL)

7. Programare logică (Prolog)8. Programare bazată pe obiecte şi orientată pe

obiecte (Smalltalk, C++, Java, C#)

9.

Programare concurentă şi distribuită10. Programare la nivelul bazelor de date (SQL)

Page 9: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 9/82

Generaţii de limbaje

n 1954-1958 Limbajele de programare deprima generaţie (FORTRAN I, ALGOL 58).

n  Acestea au făcut pasul decisiv de la asmla lb de nivel înalt.n Rolul lor primordial a constat în

promovarea şi dezvoltarea conceptelor cestau la baza limbajelor de programare denivel înalt precum şi a implementării lor.

Page 10: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 10/82

Generaţii de limbaje (cont.)

n 1959-1961 Limbaje de generaţia a doua(ALGOL60, FORTRAN II, Cobol, Lisp)

n Sunt considerate limbaje stabile, durabile, ALGOL60 a avut o influenţă imensă îndezvoltarea limbajelor Pascal, PL/1,

Simula şi Ada.

Page 11: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 11/82

Generaţii de limbaje (cont.)n 1962-1971 Limbaje de generaţia a treia (PL/1,

ALGOL68, Pascal, Simula)n au reprezentat un pas înainte,n succesul lor nu se poate compara cu cel al limbajelor de

generaţia a doua.n C.A.R. Hoare „ALGOL60 reprezintă un pas înainte faţă

de succesorii(!) săi”.n Limbajul PL/1 a combinat elemente de FORTRAN,

 ALGOL şi Cobol rezultând un limbaj puternic, dar mult

prea complex, dificil de învăţat şi de implementat.n Limbajul Pascal, succes din punct de vedere didactic, nu

a fost considerat suficient de robust pentru utilizarea lascară industrială. (Delphi)

Page 12: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 12/82

Generaţii de limbaje (cont.)

n 1972-1979 Limbaje de generaţia a patra (CLU, CSP,Ada, Smalltalk)

n  Au avut o răspândire şi mai redusă decât cele de

generaţia a treia, justificând pe bună dreptate denumireaacestei perioade drept „gol de generaţie” (generationgap).

n accentul cade pe structurare.¨ La nivel micro acest lucru s-a făcut prin eliminarea instrucţiunilor

goto

¨ la nivel macro s-a pus mare accent pe modularizare,abstractizarea datelor 

Page 13: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 13/82

Generaţii de limbaje (cont.)

n 1980-1990 Paradigme ale limbajelor deprogramare

n  Această perioadă se caracterizează printr -o intensă activitate de cercetare,concentrată pe studiul paradigmelorasociate claselor de limbaje.

n limbaje funcţionale, logice, orientate obiectşi distribuite

Page 14: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 14/82

Istoria lb. de programare

n Primul limbaj¨ Ada Lovelace scrie programe pentru proiectul

motor diferenţial al lui Charles Babbage iarmai apoi pentru motorul analitic. În 1945,germanul K. Zuse, inventatorul calculatoruluiZ3 a definit un limbaj evoluat pentru acest

motor (folosind tablouri şi înregistrări)

Page 15: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 15/82

Istorie (cont.)

n Asamblare¨ Asambloarele au apărut o dată cu primele

calculatoare. Acestea asociază un nume simboliccodului la nivel maşină, de ex: Add bx, 4cmp [adr], 3 jmp address

n

Programarea în limbaj de asamblare nu se maipractică pe scară largă, nici măcar pentru rutinece trebuie să ruleze foarte rapid.

Page 16: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 16/82

Istorie (cont.)

n FOTRAN – FORmula TRANslator¨ 1954-1958John Backus şi alţi cercetători de la

IBM¨ Limbaj dedicat calculelor matematice

n Fortran II (1958) introduce subrutine,funcţii, bucle, o structură de controlprimitivă de tip FOR. Identificatorii suntlimitaţi la şase caractere

Page 17: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 17/82

Istorie (cont.)

n LISP – LISt Processing¨ 1958-1960 Mac Carthy

¨ Limbaj funcţional pentru procesarea listelor.¨ Este recursiv, nu este iterativ.

¨ Nu există diferenţă între cod şi date.

Page 18: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 18/82

Istorie (cont.)

n ALGOL - 1960 / Algol W - 1966 / Algol 68ALGOrithmic Language¨ limbaj universal independent de maşin㨠Introduce utilizarea gramaticilor BNF (Backus Naur

Form)¨ blocurile de instrucţiuni şi variabilele locale în cadrul

unui bloc

¨ Recursivitatea, tablouri dinamice¨ instrucţiunea IF THEN ELSE, FOR, simbolul := pentru

atribuire (folosit mai apoi în Pascal), instrucţiuneaSWITCH cu GOTO, indicatori BEGIN, END şi cicluWHILE

Page 19: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 19/82

Istorie (cont.)

n Cobol - 1960¨ COmmon Business Oriented Langage.

¨ Definit de CODASYL,¨ COnference on DAta SYsystems Languages.

Page 20: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 20/82

Istorie (cont.)n Basic – 1964

¨ Beginner’s All-purpose Symbolic Instruction Code¨ John Kemeny, Thomas Kurtz¨

Uşor de învăţat¨ Bill Gates, Paul Allen, QuickBasic – Altair (4KB)¨ Microcomputerele au fost furnizate cu Basic în ROM

până la sfârşitul anilor ‘80.¨ În 1977, Appel II se vindea cu Basic¨ Primul PC de la IBM (1981) folosea sistemul de

operare MS-DOS de la Microsoft şi Basic interpretat(Basica).

¨ În 1982 Microsoft a produs primul Basic compilat

(Quick Basic)

Page 21: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 21/82

Istorie (cont.)

n Logo – 66¨ W Fuerzeig, S Papert,

¨ Folosit pentru a-i învăţa pe copii programare. ̈Asemănător cu Lisp

¨ Se bazează pe mişcarea unei broaşte

ţestoase pe ecran.

Page 22: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 22/82

Istorie (cont.)n Pascal – 1970 Niklaus Wirth.

¨ A fost proiectat pentru a simplifica creareacompilatoarelor şi pentru îndruma procesul de

 învăţare a programării spre programarea structurată.¨ Includea un mediu pentru dezvoltare de aplicaţii

complet, un principiu folosit cu succes mai târziu înTurbo Pascal. În 1981, jocul Wizardry scris în Pascala avut un succes foarte mare pe Apple.

¨ Turbo Pascal (proiectat de Anders Hejlsberg) aapărut în 1983. Rapid, IDE complet -> succesinstantaneu.

¨ Structurile de control asemănătoare cu cele din C.

Page 23: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 23/82

Page 24: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 24/82

Istorie (cont.)

n Sql - 1970+¨ Standard Query Language

¨ IBM Limbaj pentru interogarea bazelor dedate relaţionale.n SELECT * from table where ...

n INSERT INTO ....

n UPDATE ...

Page 25: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 25/82

Page 26: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 26/82

Istorie (cont.)n Java – 1994 James Gosling,

¨ Sun Microsistems Proiectat în 1991 ca un limbajinteractiv numit Oak.

¨ La vremea respectivă nu a avut succes.¨

 În 1994 a fost rescris pentru Internet şi redenumitJava.¨ În 1995 se puteau crea applet-uri.¨ În ianuarie 1996, Javasoft distribui JDK 1.0.¨ Se compilează în bytecode JVM.¨ Este mai simplu decât C++: memoria este gestionată

automat,¨ nu există pointeri, moştenire multiplă,

supraîncărcarea operatorilor dar include multi-tasking.

Page 27: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 27/82

Istorie (cont.)n PHP – 1995 Personal Home Pages Hypertext

Processor ¨ Rasmus Lerdorf Limbaj script mutliplatformă, ce se

include în HTML.¨ Asemănător cu C dar nu este tipizat.¨ Variabilele se prefixează cu $.¨ Interpretorul prelucrează pagina html ce include

instrucţiuni php şi o transformă într -o pagină html

pură.¨ Biblioteca de funcţii permite crearea de pagini web

dinamice.¨ Microsoft foloseşte ASP (asemănător cu Basic)

Page 28: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 28/82

Istorie (cont.)n UML - 1996 Unified Modeling Language

¨ Standard (Object Management Group) – ¨ Grady Booch, Jim Rumbaugh, and Ivar Jacobson¨ Uml reprezintă reunirea a trei limbaje de modelare

proiectate de cei trei autori.¨ foloseşte o notaţie grafică pentru a proiecta software.¨ Se fac diagrame care exprimă obiecte şi interacţiunile

dintre acestea.¨ Un model este realizat din vizualizări şi combinarea

lor descriu un sistem complet.¨ Este limbaj pentru specificarea, vizualizarea,

construirea şi documentarea proiectelor sotware

intense.

Page 29: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 29/82

Istorie (cont.)n C# - 2000(C-sharp), succesor al C++?

¨ Anders Hejlsberg / Microsoft.¨ Principalul limbaj din platforma .NET¨ Îmbunătăţiri: garbage collector, nu are pointeri,

interfeţe, multi-tasking…¨ Varietate de limbaje ce pot fi compilate în MSIL¨ Structurile sunt speciale fiind transmise prin valoare¨ Identificatorii sunt obiecte cu metode¨

 Atributele sunt obiecte descriptive ataşateelementelor programului şi folosite la execuţie¨ Proprietăţi (get/set)¨ Foreach pentru parcurgerea unor liste de obiecte¨ Delegaţi (înlocuiesc pointerii la funcţii din C)

Page 30: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 30/82

MIDPS

Ciclul de viata de creare a software-ului

Page 31: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 31/82

Procesul de creare a soft-ului

n Limbaj de programare = instrument pentru

scrierea de programe

n Limbaj de programare = componentă aprocesului de creare a software-ului

n Realizarea unui nou limbaj este structural

identică cu realizarea unei aplicaţiisoftware complexe

Page 32: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 32/82

Fazele procesului de creare a

software-uluin Analiza şi specificarea cerinţelor 

n Proiectarea şi specificarea software-

ului

n Implementarea

n Certificarea

n  Întreţinerea

Page 33: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 33/82

Analiza şi specificarea cerinţelor 

n O aplicaţie software este concepută pentru a veni însprijinul unui anumit grup de utilizatori potenţiali.

n Cerinţele - stabilite sub forma unui document ce

precizează CE trebuie să facă aplicaţia şi nu CUM.n La elaborarea documentului participă atât potenţialii

utilizatori, cât şi specialiştii în dezvoltarea de software.n Documentul conţine specificaţii privind manualele

utilizator, studii de cost şi fezabilitate, cerinţe privindperformanţele

Page 34: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 34/82

Proiectarea şi specificarea

software-uluin De la cerinţele specificate în faza precedentă, echipa

care realizează această etapă (proiectanţii software)realizează specificaţiile de proiectare,

n Se identific㨠fiecare modul al sistemului,

¨ interferenţele dintre module.

n Metodologia de proiectare utilizată în această fază are omare importanţă pentru alegerea limbajului deprogramare utilizat în faza imediat următoare.

Page 35: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 35/82

Implementarea

n Singura fază în care se utilizează explicit unlimbaj de programare.

n Implementarea¨ scrierea de unităţi de program corespunzătoare

modulelor descrise în specificaţiile de proiectare

¨ editarea documentaţiei corespunzătoare.

n Rezultă un sistem implementat şi documentatcomplet.

Page 36: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 36/82

Certificarea

n Verificarea cerinţelor impuse în prima etapăn Se realizează prin testarea sistemului în raport

cu fiecare cerinţă specificată, utilizându-se o

baterie de teste,n Din punctul de vedere al testării, nu se poate

face o distincţie clară între fazele 3 şi 4.n  În faza de implementare se realizează testarea

la nivel de modul, efectuată de fiecareprogramator şi parţial testarea interfeţelor inter -module (testare de integrare),

Page 37: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 37/82

Certificarea (cont.)

n Se realizează testarea sistemului, careverifică sistemul în ansamblul său.

n Rezultatul acestei faze este un sistemverificat şi certificat complet, livrabilutilizatorilor.

n  În această fază se includ toate activităţilecare sunt legate de verificareacorectitudinii programelor scrise

Page 38: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 38/82

 Întreţinerea

n Modificări, provocate fie de detectareaunor erori care au scăpat din faza 4,

n  Adăugarea de noi specificaţii (cerinţe).n Costul întreţinerii unei aplicaţii întrece

costul tuturor celorlalte faze luate

 împreună.

Page 39: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 39/82

Cerinţe pentru un produs

softwaren Fiabilitate

n  Întreţinere uşoară

n Execuţie eficientă

Page 40: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 40/82

 Aspecte ale calităţii software-ului

n Programele: fiabile, rapide, uşor defolosit, lizibile, modulare, structurate

n Calitatea produselor program se defineşteca o compunere a mai multor trăsături.

n Există o serie de factori externi şi factori

interni

Page 41: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 41/82

Factori externi - interni

n Factorii externi de calitatea sunt sesizaţide cei care interacţionează direct cu

produsul final şi care cumpără produsul,contractează dezvoltarea şi întreţinerealui.

n Factorii interni de calitate se pot detecta

doar de către persoanele implicate înprocesul de dezvoltare de software.

Page 42: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 42/82

Factorii externi

n Corectitudinea (abilitatea produsului de a

executa exact sarcinile sale, în

conformitate cu cerinţele)n Robusteţea (abilitatea sistemului de a

funcţiona chiar şi în condiţii anormale)

n Fiabilitate = corectitudine+robusteţe

Page 43: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 43/82

Factorii externi (cont.)

n Extensibilitatea (uşurinţa cu careprodusele software se pot adapta la

schimbări ale specificaţiilor) simplitate +descentralizare

n Reutilizabilitatea

n Compatibilitatea (uşurinţa cu careprodusele software pot fi combinate)

Page 44: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 44/82

Factorii externi (cont.)

n Eficienţa (folosirea raţională a resurselorhardware)

n Portabilitatea (uşurinţa cu care se pottransfera în diverse medii hard şi soft)

n Verificabilitatea

Page 45: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 45/82

Factorii externi (cont.)

n  Integritatea (abilitatea produselor softwarede a-şi proteja componentele - programe,

date, documente - faţă de accesări şimodificări neautorizate)n Uşurinţa în utilizare (învăţarea utilizării

sistemului, operarea, pregătirea datelor de

intrare, interpretarea rezultatelor şirecuperarea din situaţii de eroare)

Page 46: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 46/82

Factori interni

n Modularitatea: structural produsul program

trebuie să fie alcătuit din module,

urmărindu-se principiul descentralizării.n Documentarea completă: presupune

existenţa unei documentaţii clare şi adusă

la zi pentru fiecare fază din ciclul de viaţăal programului.

Page 47: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 47/82

Calităţi ale limbajelor de

programaren Să permită o descriere cât mai naturală a

problemei care se rezolvă, permiţândprogramatorului să se concentreze asupra

problemei şi nu asupra detaliilor de adresare,indexare etc.

n Să aibă un grad de lizibilitate cât mai ridicat,adică un program să poată fi uşor de descifrat(sintactic şi semantic) de oricine îl consultă.

n Să permită gestiunea excepţiilor (depăşiriaritmetice, erori de intrare-ieşire etc.)

Page 48: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 48/82

Microsoft Solutions Framework

(MSF)n Un set de modele, principii şi linii

directoare pentru proiectarea şi

dezvoltarea aplicaţiilor de dimensiuni mari într-un mod care asigură faptul că toateelementele unui proiect (oameni, procese,unelte) pot fi gestionate corespunzător.

n Practici pentru planificarea, proiectarea,dezvoltarea şi lansarea soluţiilor 

Page 49: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 49/82

Modele de proces

n Modelul Cascadă

n Modelul Spirală

n Modelul MSF

Page 50: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 50/82

Modelul cascadă

Milestone

Milestone

Milestone

Milestone

n Există puncte de tranziţie şi evaluare

n Trebuie terminată o fază înainte de atrece la alta

n Cerinţele trebuie să fie definite foarte

clar n Se poate monitoriza evoluţia

Page 51: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 51/82

Modelul Spirală

n Se bazează pe rafinarea continuă acerinţelor şi a diferitelor estimări asupra

proiectuluin Util la aplicaţii mici ce trebuie făcute

repede

n Nu există puncte de control foarte claren Procesul de dezvoltarea poate deveni

haotic

Page 52: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 52/82

Modelul MSF

n Bazat pe faze

n  Are puncte de control şi trecere

n Iterativn Poate fi folosit pentru dezvoltarea oricărui

tip de aplicaţie

n Combinaţie între modelul cascadă şispirală

Page 53: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 53/82

Faze ale modelului de proces MSF

n Envisioning

n Planning

n Developing

n Stabilizing

n Deploying

Page 54: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 54/82

Triunghiul compromisurilor 

Resurse Deadline

Funcţionalitate

Page 55: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 55/82

Page 56: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 56/82

2

Limbaj de programare,

program sursăn Translator = program ce traduce un

program sursă (PS), scris într -un anumit

limbaj de programare (LP) într-un program

echivalent exprimat într-un alt limbaj, pe

care îl vom numi program destinaţie (PD).

Page 57: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 57/82

3

Translatoare

n Compilatoarele,

n  Asambloarele

n Interpretoarele

Page 58: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 58/82

4

Compilatoare - asambloare

n La compilator PD se numeşte program

obiect sau cod obiect (apropiat de codul

maşină)n  Asamblorul este compilatorul unui limbaj

de asamblare

n Traducerea este urmată de link-editare

Page 59: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 59/82

Page 60: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 60/82

6

Interpretor 

n Realizează execuţia instrucţiune cuinstrucţiune a programului sursă

Page 61: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 61/82

7

Preprocesor - macroprocesor 

n Traduc PS din limbaje de nivel înalt în PD

scrise tot în limbaje de nivel înalt,

compilabile.n De ex. preprocesorul C #include...

Page 62: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 62/82

8

Cross-compilatoarele

Cross-asambloarelen Se execută pe un calculator „gazdă” şi

generează cod obiect pentru o altă maşină

„obiect”n Exemplu - maşina gazdă minicalculator

sau calculator mare, iar maşina obiecteste un microcalculator cu memorie mică,

pe care nu se poate implementaprogramul de traducere)

Page 63: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 63/82

9

Compilarea

n Compilatorul este un program complex, a

cărui realizare presupune abordarea

sistematică a procesului de traducere.n  În procesul de compilare, PS suferă un şir

de transformări în cascadă, din ce în ce

mai apropiate de codul obiect

Page 64: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 64/82

10

Operaţii ale compilatorului

n  Analiza textului sursă

n Sinteza codului obiect

Page 65: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 65/82

11

Structura unui compilator 

Analizălexicală

Analizăsintactică

Analizăsemantică

Optimizare

de codGenerare

de cod

ANALIZĂ SINTEZĂ

Program

sursăŞir de atomilexicali

 Arbore

sintactic

Cod

intermediar Cod intermediar

optimizat

Tratarea erorilor  Gestiunea tabelelor 

Cod obiect

Page 66: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 66/82

12

 Analiza lexicală

n Realizează prima parcurgere a PS(considerat ca şir de caractere), grupând

aceste caractere în sub-şiruri, numiteatomi lexicali: cuvinte cheie sau rezervate,

operatori, constante, identificatori,

separatori.

Page 67: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 67/82

13

 Analiza sintactică

n Depistează în şirul atomilor lexicalistructuri sintactice: expresii, liste,

instrucţiuni, proceduri, generând arborelesintactic (arborele de derivare), care

descrie relaţiile dintre aceste structuri (deincluziune, de separare).

Page 68: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 68/82

14

 Analiza semantică

n foloseşte arborele sintactic pentru extragerea deinformaţii privind apariţiile obiectelor purtătoare de datedin PS (tipuri de date, variabile, proceduri, funcţii) şi

pentru verificarea consistenţei utilizării lor.n Pe măsura parcurgerii arborelui sintactic, se genereazăcodul intermediar  (şir de instrucţiuni simple, cu formatfix, în care: codurile operaţiilor sunt asemănătoare cucodurile maşină corespunzătoare, ordinea operaţiilor

respectă ordinea execuţiei, iar operanzii suntreprezentaţi sub forma variabilelor din PS şi nu subformă de registre sau adrese de memorie.

Page 69: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 69/82

15

Optimizarea codului intermediar 

n are ca obiectiv eliminarea redundanţelor, acalculelor inutile, pentru o execuţie eficientă acodului obiect.

n Pentru realizarea se încearcă:¨ Realizarea tuturor calculelor posibile încă din faza de

compilare (de exemplu în expresii cu operanziconstante)

¨ Eliminarea subexpresiilor comune (prin evaluarea lor

o singură dată)¨ Factorizarea invariaţiilor din cicluri.

Page 70: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 70/82

16

Generarea programului obiect

n Constă în alocarea de locaţii de memorie şi registre aleunităţii centrale pentru variabilele programului şi

 înlocuirea codurilor de operaţii din codul intermediar cucele maşină.

n Codul obiect rezultat poate fi:¨ absolut (direct executabil)

¨ relocabil (care va face obiectul editării de legături, unde va filegat de alte module obiect

¨  în limbaj de asamblare, lucru ce asigură un efort mic deimplementare a generatorului de cod.

¨  în alt limbaj de programare, în cazul preprocesoarelor.

Page 71: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 71/82

17

Modulul de tratare a erorilor 

n Proceduri care sunt activate la detectarea

erorilor în timpul operaţiilor de analiză.

¨ Traducerea se continuă cu ignorareaelementului ce conţine eroarea;

¨ Se încearcă corectarea erorii

¨

Se abandonează procesul de traducere.

Page 72: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 72/82

18

Modulul de tratare a erorilor 

n După momentul în care apar avem erori¨ lexicale,

¨ sintactice

¨ semantice.n După gravitatea erorilor:

¨ avertismente (de obicei omisiuni de programare),

¨ erori care se pot „corecta” de către un compilator maiinteligent

¨ erori „fatale”, care provoacă abandonarea procesuluide compilare.

Page 73: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 73/82

19

Gestionarul de tabele

n Colecţie de proceduri care realizează crearea şiactualizarea bazei de date a compilatorului, care

conţine două categorii de informaţii:¨ proprii compilatorului (generate la implementare şi

constituite din mecanismele de descriere a analizei

lexicale, sintactice şi semantice)

¨ caracteristice programului sursă (identificatori,constante, cuvinte cheie), care de obicei se

memorează într -o tabelă de simboluri.

Page 74: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 74/82

20

Gestionarul de tabelen La întâlnirea unui nume nou, acesta este

introdus în tabela de simboluri, reţinându-seadresa intrării.

n Ori de câte ori numele este referit, informaţia

prezentă în tabelă este actualizată cu informaţiisau atribute noi ale numelui respectiv,verificându-se totodată consistenţa utilizăriiacestuia (analiza semantică).

n La generare de cod, atributele numeluidetermină lungimea zonei de memorie alocatăacestuia. Atributele numelui pot servi şi în fazade tratare a erorilor.

Page 75: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 75/82

21

Unităţi de program

n Structura generală a unui program scris într-un limbaj de programare convenţional(imperativ, dirijat de control)

¨ Program principal

¨ Unul sau mai multor subprograme

n Comunicarea prin:n Parametri,

n Variabile globale.

Page 76: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 76/82

Page 77: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 77/82

23

Compilare separată

n Posibilă datorită modularizării programelor n Fiecare modul are un rol bine precizat

n La modificarea unui modul nu trebuierecompilat tot programul.

n Combinarea modulelor o face link-editorul

n

Rezultatul = economie de timpn Demonstraţie în C (cuv. cheie extern)

Page 78: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 78/82

24

Link-editarea

n Link-editorul sau editorul de legături este o

componentă a mediului pentru dezv. de

aplicaţii care grupează unul sau mai multemodule obiect, rezultate din compilare sau

asamblare, împreună cu cod din biblioteci, într-un program executabil.

Page 79: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 79/82

25

Execuţia programelor 

n operare la nivelul liniei de comandă: se introducpe rând comenzile de compilare, link-editare şilansare în execuţie;

n asistat de un mediu de programare: comenzilede mai sus sunt lansate şi executate dininteriorul unui astfel de mediu;

n sistem batch (prelucrare în loturi): scrierea unor

fişiere de comenzi care vor „automatiza” înlănţuirea fazelor de la punctul 1.

Page 80: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 80/82

27

Medii de programare şi execuţie

n Sisteme complexe destinate activităţii dedezvoltare de programe¨ editor de texte

¨ compilator interactiv¨ editor de legături¨ interpretor pentru execuţia rezultatului compilării

(numit şi mediu de execuţie – runtime environment),

¨ depanator simbolic

¨ componente de legătură cu mediul exterior (de regulăcu sistemul de operare cu care lucrează

Page 81: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 81/82

28

Medii de programare

n Visual Studio de la Microsoft,

n Builder de la Borland

n Eclipse

n ZEND Studio (PHP)

Page 82: Medii interactive de dezvoltare a produselor software

8/16/2019 Medii interactive de dezvoltare a produselor software

http://slidepdf.com/reader/full/medii-interactive-de-dezvoltare-a-produselor-software 82/82

Interpretarea

n Interpretorul este un program care executăpas cu pas instrucţiunile descrise într -un

limbajn Viteza de interpretare este mult mai mică

decât codului compilat

n Mult mai simplu de implementat