instrumente pentru dezvoltareainstrumente pentru...

42
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Instrumente Pentru Dezvoltarea Instrumente Pentru Dezvoltarea Instrumente Pentru Dezvoltarea Instrumente Pentru Dezvoltarea Programelor Programelor Ciprian Dobre Ciprian Dobre [email protected] Instrumente pentru dezvoltarea programelor – Curs 1 1

Upload: others

Post on 15-Oct-2019

51 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Instrumente Pentru DezvoltareaInstrumente Pentru DezvoltareaInstrumente Pentru Dezvoltarea Instrumente Pentru Dezvoltarea ProgramelorProgramelorgg

Ciprian DobreCiprian [email protected]

Instrumente pentru dezvoltarea programelor – Curs 1 1

Page 2: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DespreDespre CursCursDespreDespre CursCurs• Site: http://curs.cs.pub.rop p• Instrumente pentru dezvoltare

– biblioteci de nivel inalt– tehnologii avansate– paradigme moderne de programareparadigme moderne de programare– medii de dezvoltare vizuale

• Concepte de proiectare si dezvoltare a sistemelor deConcepte de proiectare si dezvoltare a sistemelor de programe

• Abordari moderne de dezvoltare a programelor, a p g ,tehnologiilor de dezvoltare existente si a particularitatilor unor medii de dezvoltare de ultima generatie

Instrumente pentru dezvoltarea programelor – Curs 1 2

Page 3: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CompetenteCompetenteCompetenteCompetente• Aplicatii software

– Proiectare, dezvoltarea, evaluarea, asigurarea mentenanteimentenantei

– Solutii tehnologice moderne

– Integrarea in diverse arhitecturi de dezvoltare;

• Analizarea proprietatilor unor sisteme software;• Analizarea proprietatilor unor sisteme software;

• Evaluarea cititica a celor mai relevante tehnologii gexistente in contextul posibilei integrari a acestora in diverse sisteme software.

Instrumente pentru dezvoltarea programelor – Curs 1 3

Page 4: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Capitole principale (1)Capitole principale (1)Cap to e p c pa e ( )Cap to e p c pa e ( )

• Etapele dezvoltarii aplicatiilorp p• Instrumente CASE

M d l ft i i t t d• Modele software si instrumente de modelare

• Metode formaleIDEs• IDEs

• Asigurarea calitatii produselor softwareg p• Instrumente in ciclul de dezvoltare

software Best practicessoftware. Best practices.

Page 5: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Capitole principale (2)Capitole principale (2)Cap to e p c pa e ( )Cap to e p c pa e ( )

• Rapid Application Developmentp pp p• Reutilizabilitatea software

D lt i t t t• Dezvoltarea orientata pe componente• Sisteme critice si dezvoltarea sistemelor

critice.Dezvoltarea orientata pe servicii• Dezvoltarea orientata pe servicii

• Dezvoltarea orientata pe aspectep p

Page 6: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

BibliografieBibliografieBibliografieBibliografie• Ian Sommerville, Software Engineering, 8th Edition, 2008

• Materiale postate pe site

– Slide-uri– Slide-uri

– Notite de curs

Instrumente pentru dezvoltarea programelor – Curs 1 6

Page 7: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

NotareaNotareaNotareaNotarea

• Regulamentul - pagina cursului• Regulamentul - pagina cursului

Instrumente pentru dezvoltarea programelor – Curs 1 7

Page 8: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

NotareaNotareaNotareaNotarea

N N P N ENota = NotaParcurs + NotaExam

11 7 4

NotaCurs + NotaLaborator

1 2 5 81.2 5.8

TemeLaborator + ActivitateLaborator + PrezentareLabTemeLaborator ActivitateLaborator PrezentareLab

4 1.2 0.6

1 1 1 1

Instrumente pentru dezvoltarea programelor – Curs 1 8

Page 9: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ProiectProiect științific (1)științific (1)ProiectProiect științific (1)științific (1)• Suplimentar, până la 1p pot fi recuperate prin

participarea în cadrul unui experiment științificparticiparea în cadrul unui experiment științific– Aplicație disponibilă la

http://cipsm hpc pub ro/MobileExp bluetooth htmlhttp://cipsm.hpc.pub.ro/MobileExp_bluetooth.html– Necesită un telefon cu Android (nu neapărat al vostru,

puteți să cooptați un coleg în cadrul experimentului – laputeți să cooptați un coleg în cadrul experimentului – la înscriere acesta va specifica in rubrica observații pentru cine participă)p p )

– Reguli: • Porniți aplicația de câte ori ajungeți la facultate (respectiv, puteți

închide aplicația când plecați de la facultate)• Datele culese includ și timpul cât aplicația rulează , se vor verifica

datele culese și se vor puncte numai studenții ce au ținut aplicațiadatele culese și se vor puncte numai studenții ce au ținut aplicația pornită cel puțin 90% din timpul cât au stat în facultate

2 Instrumente pentru dezvoltarea programelor – Curs 1 9

Page 10: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ProiectProiect științific (2)științific (2)ProiectProiect științific (2)științific (2)• Înscrierea se face accesând

htt //d l / d h t/ ?k 0AlCMhP0https://docs.google.com/spreadsheet/ccc?key=0AlCMhP0LuoqydE9abklzMV90MHJTbVNDZWpERlE5eGcUrmea ă și n al doilea e periment de trafic• Urmează și un al doilea experiment … de trafic

2 Instrumente pentru dezvoltarea programelor – Curs 1 10

Page 11: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DespreDespre laboratorlaboratorDespreDespre laboratorlaboratorSite: http://elf.cs.pub.ro/idp • Instrumente avansate de dezvoltare bazate pe

IDE• Java →Swing → Ant → … → Web Services

Asistenti:• Ioana GrigoropolIoana Grigoropol

• Catalin Gosman

Vl d D• Vlad Dogaru

• Cristina Coman

• Dragos ComaneciInstrumente pentru dezvoltarea programelor – Curs 1 11

Page 12: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Etapele dezvoltarii softwareEtapele dezvoltarii software

““He who fails to plan, plans to fail.“(Proverb)(Proverb)

„Cel care nu reuseste sa planuiasca, l i t “planuieste un esec.“

Instrumente pentru dezvoltarea programelor – Curs 1 12

Page 13: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

NoNoţţiuniiuniNoNoţţiuniiuni• Proces software = set structurat de activităţi

t d lt i i tnecesare pentru dezvoltarea unui sistem software:

S ifi ţi– Specificaţie– Proiectare

Implementare– Implementare– Validare– Evoluţie– Evoluţie

• Un model al procesului software reprezintă o reprezentare abstractă a respectivului procesreprezentare abstractă a respectivului proces

• = o descriere a unui proces dintr-o anumităperspectivă

Instrumente pentru dezvoltarea programelor – Curs 1 13

perspectivă

Page 14: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Modele generice de procese de Modele generice de procese de dezvoltaredezvoltare

• Modelul cascadă– Faze separate şi distincte de specificare şi dezvoltare

• Modelul evoluţionar– Specificaţia, dezvoltarea şi validarea sunt etape

întreţăsuteD lt b tă t• Dezvoltarea bazată pe componente– Sistemul este asamblat pornind de la un set de

componente pre existentecomponente pre-existente• Există variante ale acestor modele:

Dezvoltarea formală → implică folosirea unui proces– Dezvoltarea formală → implică folosirea unui proces de dezvoltare bazat pe modelul cascadă, dar specificaţia formală este rafinată în câteva iteraţii

Instrumente pentru dezvoltarea programelor – Curs 1 14

succesive până la stadiul de proiect implementabil

Page 15: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

O abordare pragmaticO abordare pragmaticăăO abo da e p ag at cO abo da e p ag at căăPlanul general al unui proiect software:

1. Ce trebuie facut? (-> task-uri/activităţi/paşi)2. De ce să implementăm un task? (-> rezultate, produse)2. De ce să implementăm un task? ( rezultate, produse)3. Când ar trebui făcut? (-> planificare)4. Cine e implicat? (-> oameni, roluri, responsabilităţi)5. Cum ar trebui facut? (-> metode, standarde,

instrumente)

• Există diverse modele de procese software• Nu există un singur model de proces aplicabil pentru

f ( “ f )oricare proiect software (nu există “one size fits all”)• Folosirea unui proces de dezvoltare adecvat poate

îmbunătăţi calitatea produsului final

Instrumente pentru dezvoltarea programelor – Curs 1 15

îmbunătăţi calitatea produsului final

Page 16: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Fazele unui proces (1)Fazele unui proces (1)a e e u u p oces ( )a e e u u p oces ( )Abordarea cea mai simplă: 1 S i / difi ă l ( t i l tă ii)1. Scriem/modificăm programul (etapa implementării)2. Găsim defecte, ne întoarcem la 1.

• Probleme:– Modificările ad-hoc efectuate de-a lungul timpului încurcăModificările ad hoc efectuate de a lungul timpului încurcă

structura programului– Rezultatul: schimbări ulterioare costă din ce în ce mai mult

(schimbi într o parte strici în alta )(schimbi într-o parte, strici în alta, …)

• Soluţia:Soluţia: – O etapă de proiectare în care este definită structura întregului

programModificările aduse implementării sunt permise dar ele trebuie să

Instrumente pentru dezvoltarea programelor – Curs 1 16

– Modificările aduse implementării sunt permise, dar ele trebuie sărespecte proiectul

Page 17: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Fazele unui proces (2)Fazele unui proces (2)a e e u u p oces ( )a e e u u p oces ( )Model de proces îmbunătăţit:1 D fi i i t l l i ( t d i t )1. Definim un proiect al programului (etapa de proiectare)2. Scriem/modificăm programul (etapa implementării)3 Găsim defecte ne întoarcem la 23. Găsim defecte, ne întoarcem la 2.

• Probleme:• Probleme:– Programul face ceea ce doreşte utilizatorul?– Rezultatul: programul poate fi refuzat de client.

• Soluţia:O t ă d li ă î t ifi t i ţ l l i– O etapă de analiză în care sunt specificate cerinţele programului

– Proiectul este definit astfel încât să fie satisfăcute cerinţele utilizatorului

Instrumente pentru dezvoltarea programelor – Curs 1 17

Page 18: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Fazele unui proces (3)Fazele unui proces (3)a e e u u p oces (3)a e e u u p oces (3)

Un model chiar mai bun:1. Analizăm cerinţele utilizatorului (faza de analiză)2. Definim un proiect al programului (etapa de p p g ( p

proiectare)3. Scriem/modificăm programul (etapa p g ( p

implementării)4. Găsim defecte, ne întoarcem la 3.

• E de ajuns?E de ajuns?• Lipseşte etapa de planificare şi pregătire a testării

(etapa 4) – sistemul e sistematic verificat de

Instrumente pentru dezvoltarea programelor – Curs 1 18

(etapa 4) sistemul e sistematic verificat de posibile defecte (etapă de sine stătătoare)

Page 19: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Etapele unui procesEtapele unui procesEtapa Rezultat

tape e u u p ocestape e u u p oces

Analiza Specificarea cerintelor utilizatorului – posibil un document al cerintelor

Proiectare Specificarea structurii si componentelor aplicatieiProiectare Specificarea structurii si componentelor aplicatiei software – posibil un model al sistemului

Implementare Programul executabil (calitate “alpha”)

Testare Program executabil (calitate “release”)

• Cele mai comune etape ale dezvoltării• Cele mai comune etape ale dezvoltării • Mai pot apărea: deployment/lansare, operare, asigurarea

de suport instruire mentenanţăde suport, instruire, mentenanţă• Toate fazele sunt cunoscute sub denumirea generică de

Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)

Instrumente pentru dezvoltarea programelor – Curs 1 19

Page 20: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)So t a e e e op e t e Cyc e (S C)So t a e e e op e t e Cyc e (S C)

• Modelul generic al dezvoltării unui proiect g psoftware

Instrumente pentru dezvoltarea programelor – Curs 1 20

Page 21: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CuCu cece dezvoltamdezvoltam??Cu Cu cece dezvoltamdezvoltam??• Instrumente:

– Constructie: make, ant, rake…– Compilare: gcc, Microsoft Visual Studio, CodeWarrior, Xcode…– Depanare: gdb, GNU Binutils…– Dezasamblare

Generatoare de documentatie: doxygen javadoc asciidoc– Generatoare de documentatie: doxygen, javadoc, asciidoc…– Metode formale– Verificare a compatibilitatii componentelor binarep p– Generatoare de interfete– Generatoare de parsere: Lex, Yacc– Analiza performantelor– Colaborare: cvs, svn, git, bazaar…

Analiza statica: jtest lint– Analiza statica: jtest, lint...– …

Instrumente pentru dezvoltarea programelor – Curs 1 21

Page 22: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CeCe urmeazaurmeaza??CeCe urmeazaurmeaza??• Integrated Development Environments (IDEs)

– Multe instrumente intr-un singur pachet– Proiecte de dimensiuni mariProiecte de dimensiuni mari– Dezvoltare de aplicatii nivel “enterprise”

Xcode

IBM Rational Application Developer

Code::Blocks

Instrumente pentru dezvoltarea programelor – Curs 1 22

Page 23: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Enterprise?Enterprise?Enterprise?Enterprise?• Functii business la nivel de organizatie

comercialacomerciala• Performanta• Scalabilitate• Robustete

Instrumente pentru dezvoltarea programelor – Curs 1 23

Page 24: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

LimbajeLimbaje,, ProceseProcese sisi InstrumenteInstrumenteLimbajeLimbaje, , ProceseProcese sisi InstrumenteInstrumente

Limbaje softwareLimbaje software

Instrumentelenu pot existap

separat

Procese InstrumenteProcese software

Instrumente software

Instrumente pentru dezvoltarea programelor – Curs 1 24

Page 25: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

CeCe esteeste ingineriaingineria programelorprogramelorgg p gp gsoftware?software?

• Adesea comparata cu constructia industriala– e.g., construirea unui pod

O analogie buna:• O analogie buna:– Dimensiunea conteaza: casuta cainelui vs. un zgarie-nori

– Efort de echipa ce necesita planificare corecta– Dificultati asemanatoare in modificarea proiectului– Termeni comuni: constructie, arhitectura,

componente…

Instrumente pentru dezvoltarea programelor – Curs 1 25

Page 26: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Software: probleme uzualeSoftware: probleme uzualeSoftware: probleme uzualeSoftware: probleme uzuale• Dimensiunea• Interactiunea cu oamenii

Si t• Siguranta• Securitatea• Portabilitatea• Costul • Certitudinea asupra cerintelorCertitudinea asupra cerintelor

Instrumente pentru dezvoltarea programelor – Curs 1 26

Page 27: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Curba siguranteiCurba siguranteiCurba siguranteiCurba sigurantei

• Hardware-ul se uzeaza in intregime

• Software-ul sufera modificari– sau mediul sau

f fsufera modificari

Instrumente pentru dezvoltarea programelor – Curs 1 27

sursa: “Software Engineering: CS169”, Prof. Sen, Berkeley University

Page 28: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Instrumente pentru dezvoltarea programelor – Curs 1 28

sursa: “Software Engineering: CS169”, Prof. Sen, Berkeley University

Page 29: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

24.02.2009 Instrumente pentru dezvoltarea programelor – Curs 1 29

Page 30: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Solutia?Solutia?Solutia?Solutia?• Specificatiip

– Notarea functionalitatilor cerute din partea aplicatiei softwareaplicatiei software

– Insa: • Toata lumea trebuie sa le inteleaga• Toata lumea trebuie sa le inteleaga• Trebuie sa mentinem specificatiile actualizate

P bl ?• Probleme?– Pot exista ambiguitati si contradictii in g

intelegerea specificatiilor– Acestea conduc la defecte de dezvoltareAcestea conduc la defecte de dezvoltare…

Instrumente pentru dezvoltarea programelor – Curs 1 30

Page 31: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ProblemaProblema #1#1ProblemaProblema #1#1• O specificatie permite:p p

– Verificarea functionalitatii corecte a aplicatiei software

– Constructia in echipe

• Verificarea ca aplicatia software• Verificarea ca aplicatia software functioneaza = proces dificil:– Verificarea codului (code review)

Instrumente de analiza statica– Instrumente de analiza statica

– Instrumente si metode de testare

Instrumente pentru dezvoltarea programelor – Curs 1 31

Page 32: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ProblemaProblema #2#2ProblemaProblema #2#2• Minimizarea timpuluip

– Time-to-market: presiune sporita asupra procesului de dezvoltare software

• Cod scris mai repede?– Angajam mai multi programatori!– Angajam mai multi programatori!

• Cati programatori?– Cate task-uri independente putem genera

• Lucru la mai multe module concurent– Paralelism = timp salvat

Instrumente pentru dezvoltarea programelor – Curs 1 32

Page 33: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DezvoltareDezvoltare paralelaparalela??DezvoltareDezvoltare paralelaparalela??

• Probleme ca in programarea paralela• Probleme ca in programarea paralela

• Mai multi oameni = mai multa comunicatieMai multi oameni mai multa comunicatie

– Greu de gestionatg

– Overhead de comunicatie

• Constrangeri secventiale inerente

– e.g., arhitectura pipeline

Instrumente pentru dezvoltarea programelor – Curs 1 33

Page 34: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

InterfeteInterfeteInterfeteInterfete• Componentele dezvoltate ideal sunt p

independente– dar trebuie sa poata lucra impreuna in sistemul– dar trebuie sa poata lucra impreuna in sistemul

finalI t f t i t t• Interfete intre componente– Pentru a le izola– Pentru a ne asigura ca in final sistemul

functioneaza• Interfetele nu pot suferi schimbari

(radicale)!(radicale)!Instrumente pentru dezvoltarea programelor – Curs 1 34

Page 35: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DefinireaDefinirea interfetelorinterfetelorDefinireaDefinirea interfetelorinterfetelor

• Ce sunt interfetele?Ce sunt interfetele?

– Specificatii… de un tip special

• Definesc granite intre

– componente …

– si oameni

• Ne putem opri la specificarea interfetelor

– programatorii decid asupra partilor interneInstrumente pentru dezvoltarea programelor – Curs 1 35

Page 36: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ArhitecturaArhitectura softwaresoftwareArhitecturaArhitectura softwaresoftware

• Definirea interfetelor• Definirea interfetelor

– putem descompune sistemul in parti separate p p p p

– granitele conduc la definirea de interfete

• Decompozitia? depinde de:

– ce face sistemul

– cum construim sistemul

– cine construieste sistemulInstrumente pentru dezvoltarea programelor – Curs 1 36

Page 37: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DecompozitiaDecompozitia:: CeCe faceface sistemulsistemulDecompozitiaDecompozitia: : CeCe face face sistemulsistemul• Insasi aplicatia poate conduce la o p p

descompunere naturala• e g compilator = banda de asamblare• e.g., compilator = banda de asamblare

compusa din componente pentru:– Analiza lexicala– Analiza sintactica– Analiza semantica– Generare cod intermediar– Optimizare cod– Generare cod final– ...

Instrumente pentru dezvoltarea programelor – Curs 1 37

Page 38: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DecompozitiaDecompozitia: Cum: Cum construimconstruim sistemulsistemulDecompozitiaDecompozitia: Cum : Cum construimconstruim sistemulsistemul

• Constructia unei case necesita si montarea unor schele auxiliare

• la fel si constructia aplicatiilor software• … la fel si constructia aplicatiilor software• Referire la:

– Cod suplimentar neinclus in produsul final– Influenta subsistemelor externe incluseInfluenta subsistemelor externe incluse

• Ex: cod pentru testare, stub-uri, modalitati d t ti i l i t lde constructie si rulare a sistemelor partiale, prototipuri…

Instrumente pentru dezvoltarea programelor – Curs 1 38

Page 39: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

DecompozitiaDecompozitia: Cine : Cine construiesteconstruieste sistemulsistemul

• Arhitectura software reflecta structura organizatieiArhitectura software reflecta structura organizatiei ce construieste aplicatia

• Ex: 5 programatori = 5 componente• Ex: 5 programatori = 5 componente

Instrumente pentru dezvoltarea programelor – Curs 1 39

Page 40: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

ConcluziiConcluziiConcluziiConcluzii• Ingineria programelor se ocupa de cateva g p g p

aspecte:– Specificare: Cunoaste ce vrei sa faci– Specificare: Cunoaste ce vrei sa faci– Proiectare: Dezvolta un plan eficient de a-l

faceface– Implementare: Pune-l in practica– Validare: Verifica ca in final ai obtinut ce ai

dorit• Instrumentele de dezvoltare a aplicatiilor

intervin in toate aceste etapeintervin in toate aceste etapeInstrumente pentru dezvoltarea programelor – Curs 1 40

Page 41: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

SumarSumarSumarSumar

• Procesul software si fazele acestuia• Procesul software si fazele acestuia

• Probleme uzuale in ingineria programelor siProbleme uzuale in ingineria programelor si

modalitati de rezolvare a acestora

• Specificatii

• Interfete

• Arhitectura software

Instrumente pentru dezvoltarea programelor – Curs 1 41

Page 42: Instrumente Pentru DezvoltareaInstrumente Pentru ...andrei.clubcisco.ro/cursuri/f/f-sym/4idp/1_Etapele_dezvoltarii.pdf · • Instrumente in ciclul de dezvoltare software Best practicessoftware

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Ne vedem data viitoare…Ne vedem data viitoare…Ne vedem data viitoare…Ne vedem data viitoare…

Instrumente pentru dezvoltarea programelor – Curs 1 42