Documente Academic
Documente Profesional
Documente Cultură
Obiective
Ingineria software ?! Ciclul de viata al unui produs software Modele de dezvoltare software Caietul de sarcini
1.Ingineria software ?!
De ce inginerie software? Definitia ingineriei software
la
o dezvoltare strucurata, constructiva si sistematica
Istorie
Programarea modulara Pascal Programarea orientata obiect C++/Java Programarea cu ajutorul componentelor
Entreprise Java Beans
Proiectarea software
Livrarea n ntrziere a tuturor proiectelor Cost mult ridicat fata de cel prevazut Livrarea unui produs de proasta calitate Esuarea n majoritatea cazurilor Studiu american din 1995 : 81 miliarde $ / an datorat esecului software
Ingineria software
Sistemele informatice devin foarte repede extrem de complexe Esecuri foarte numeroase Craparea este un fenomen des ntlnit si obisnuit Pierderi minore n general Cu exceptia sistemelor critice putem spune ca un produs software nu poate anticipa orice situatie Adaugarea sau schimbarea functionalitatilor, de platforme
Efort
10
Pas 1
Pas 2
Pas 3
Specificarea detaliata a functionalitatilor ce trebuiesc suportate de catre sistemul informatic (adica realizarea diagramei de cazuri de utilizare) Este de fapt realizata prin caietul de sarcini Analiza functionala (vezi Curs 2 UML)
2.3.1.1.Stabilirea obiectivelor
Se face de catre managerul de proiect; Fiecarea idee buna trebuie promovata indiferent de cel care a contribuit la ea; D1 Clientul este cel care doreste acel produs. D2 Utilizatorul este cel care doreste sa utilizeze acel produs software. D3 Dezvoltatorii sunt aceia care intentioneaza sa fabrice acel produs.
2.3.2 Analiza
Cautarea solutiilor corecte posibile
A gasi solutiile corecte posibile nseamna a alege tehnica de programare ( orientat obiect, procedural, componente); a gasi algoritmii potriviti si adaptarile lor la necesitatile problemei; determinarea modelului obiectual necesar dezvoltarii proiectului; a alege solutia software necesara dezvoltarii;(MySQL sau Oracle,Java sau C#, JavaBuilder sau Eclipse,etc ). - a gasi criteriile de dezvoltare (ergonomie, accesibilitate, rapiditate, etc )
2.3.2.2 Planificare
Defalcarea proiectului n sarcini care se nlantuiesc n mod continu si logic. Afectarea fiecarui membru al echipei pentru o anumita durata si scop. Definitia normelor de calitate ce trebuiesc satisfacute . Alegerea metodelor de concepere si testare. Stabilirea dependentelor externe (umane, materiale, preturi, calitate a serviciilor)
Rezultatul acestei etape
- Plan de calitate al produsului, Planul proiectului - Estimarea costurilor reale - Deviz destinat clientului (pret, ntrzieri, livrabile)
2.3.3 Proiectarea
La modelele rezultate n urma etapei de analiza se adauga noi elemente pentru a defini o solutie particulara ce transpune problema n cauza. Proiectarea trebuie sa aibe n vedere optimizarea unor criterii de dezvoltare. Proiectarea este de fapt o rafinare a modelului obiectual ( o diagrama de clasa aproape perfecta, constrngeri pentru atribute si metode, coerenta modelului )
Faza de concepere
Definirea arhitecturii software. Interfete dintre diferite module. Rolul acestei etape este de a concepe arhitectura de asa natura astfel nct componentele produsului sa fie independente pentru a facilita dezvoltarea.
Testarea
Se verifica echivalenta dintre implementare si modelul proiectat. Validarea implementarii n raport cu criteriile de corectitudine identificate n etapa de analiza. Implementarea si testarea se face pentru fiecare modul n parte.De fapt testarea se mparte n doua : este vorba de testarea pentru fiecare modul al aplicatiei dar si testarea ntregii aplicatii.Testarea ntregii aplicatii este de fapt o alta etapa din ciclul de viata si trebuie facuta aceasta distinctie. Rezultate Module testate Rezultatele testarilor unitare
Exploatare Retragere
3.2 Modelul n V
Specificatii functionale si planificare
Calificare
Conceptie globala
Integrare
Conceptie detaliata
Teste unitare
Programare
Comparatie
Modelul n V permite - O buna anticipare n dezvoltare - Evita ntoarcerea Dar - Cadrul de dezvoltare este foarte rigid - Durata este adesea foarte lunga - Produsul soft apare adesea foarte trziu
Mini-concluzie
Ascultarea clientului
3.3 RAD
Rapid Aplication Develoment
Discutii si interactiuni cu utilizatorul Verificarea eficacitatii reale a unui algoritm Verficarea specificatiei interfetei cu utilizatorul (GUI) Metoda utilizata adesea pentru stabilirea si identificarea necesitatilor Utilizata adesea de catre generatoarele de coduri
3.4 RUP
Rational Unified Process
Workflow= disciplina
Definitii
Initiere : este faza n care se : Stabileste domeniul proiectului; Stabilesc criteriile pentru stabilirea reusitei; Evalueaza riscurilor; Estimeaza resurselor necesare; Un grafic de executie preliminar,raportat la cele patru faze principale. Elaborare :stabilirea unei arhitecturi robuste,adica se realizeaza planul proiectului si se elimina factorii de risc majori. Constructie : n mod iterativ si incremental se va implementa un produs complet. Tranzitie : sosftul este livrat utilizatorilor pentru testarea ( versiune beta a sistemului )
Faze de dezvoltare
Initiere
Elaborare
Constructie
Tranzitie
Obiective (Viziune)
Arhitectura
Produs fabricat
timp
Elemente RUP
Workflow: Requirements
Workers
Activities
Artefactos
4 valori :
-Comunicare -Simplitate -Feedback -Curaj
4.Caietul de sarcini
Ce este un caiet de sarcini ? Structura 1. Introducere 2.Organizarea proiectului 3.Gestiune 4.Tehnici 5.Calendar si Buget 6.Functiile produsului 7.Constngeri non-functionale
4.2.1 Introducere
Rezumatul
contine o descriere detaliata a aplicatiei, asupra scopului aplicatiei respective, a directiilor de cercetare pentru atingerea obiectivelor aplicatiei si alte amanunte considerate esentiale n ntelegerea aplicatiei .
Etapa
Functionalitati
4.2.3 Gestiune
Obiective si prioritati Ipoteze,dependente si constrngeri Gestiunea riscului Mijloace de control
4.2.4 Tehnici
Metode si utilitare utilizate Metode si utilitare utilizate n proiectare Metode si utilitare utilizate n dezvoltare Metode si utilitarea utilizate n crearea documentatiei Metode si utilitare utilizate n testare Metode si utilitare utilizate n integrarea modulelor Utilitar pentru asigurarea gestiunii proiectului
Documentatie - Documentatia utilizata pentru folosirea metodelor si utilitarele de mai sus - Documentatia proiectului (JavaDoc sau Doxygen) http://www.stack.nl/%7Edimitri/doxygen/index.html Doxygen http://java.sun.com/j2se/javadoc/ JavaDoc
Va multumesc !