Platformă de e learning și curriculă e content pentru învățământul superior tehnic. Instrumente pentru Dezvoltarea Programelor

Similar documents
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

VISUAL FOX PRO VIDEOFORMATE ŞI RAPOARTE. Se deschide proiectul Documents->Forms->Form Wizard->One-to-many Form Wizard

Cur s 2 - Metodologii de realizare a sistemelor informatice

Aplicatii ale programarii grafice in experimentele de FIZICĂ

GRAFURI NEORIENTATE. 1. Notiunea de graf neorientat

PREZENTARE INTERFAŢĂ MICROSOFT EXCEL 2007

Ghid de instalare pentru program NPD RO

Press review. Monitorizare presa. Programul de responsabilitate sociala. Lumea ta? Curata! TIMISOARA Page1

Ghidul administratorului de sistem

TTX260 investiţie cu cost redus, performanţă bună

Referat II. Arhitectura unei interfeţe avansate pentru un Sistem Suport pentru Decizii. Coordonator ştiinţific: Acad. prof. dr. ing. Florin G.

Exerciţii Capitolul 4

O abordare orientată pe componente generice pentru crearea dinamică a interfeţelor cu utilizatorul

Executive Information Systems

ARHITECTURI SOFTWARE PENTRU ÎNTREPRINDERI

Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator.

Split Screen Specifications

Tema 4. Tipurile şi elementele de conţinut ale metodologiilor de realizare a sistemelor informatice

Parcurgerea arborilor binari şi aplicaţii

Pasul 2. Desaturaţi imaginea. image>adjustments>desaturate sau Ctrl+Shift+I

Managementul Proiectelor Software Principiile proiectarii

Material suport pentru stagii de practică Dezvoltarea cunoştinţelor în domeniul managementului calităţii. - Volum I -

Structura sistemelor de operare Windows şi Linux

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE ŞTIINŢE ECONOMICE ŞI GESTIUNEA AFACERILOR TEZĂ DE DOCTORAT. rezumat

PROCESOARE NUMERICE DE SEMNAL DIGITAL SIGNAL PROCESSORS

PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT. Curs 1

riptografie şi Securitate

2 MEDIUL BAZELOR DE DATE

Click pe More options sub simbolul telefon (în centru spre stânga) dacă sistemul nu a fost deja configurat.

CAPITOLUL 2. FACILITATILE SI ARHITECTURA SISTEMULUI ORACLE

DIRECTIVA HABITATE Prezentare generală. Directiva 92/43 a CE din 21 Mai 1992

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Programul de instruire ADM1 Reţele de comunicaţii

conţinut ale metodologiilor de realizare a sistemelor informatice

CURS Nivele de management al SAN Nivelul de stocare *I LTO Tape Library Specialist

ENVIRONMENTAL MANAGEMENT SYSTEMS AND ENVIRONMENTAL PERFORMANCE ASSESSMENT SISTEME DE MANAGEMENT AL MEDIULUI ŞI DE EVALUARE A PERFORMANŢEI DE MEDIU

MANAGEMENTUL MEDIULUI ȘI DEZVOLTAREA DURABILĂ

FIŞA DISCIPLINEI. îndrumar de laborator

Laboratorul 1. Primii paşi în Visual Basic.NET

Lt.cdor conf.univ.dr.ing. Ghiţă BÂRSAN

FISA DE EVIDENTA Nr 2/

SUPORT CURS MANAGEMENTUL CALITATII

Standardele pentru Sistemul de management

PLANIFICAREA UNUI SISTEM MODERN DE TRANSPORT

Managementul documentelor

CERCETARE ŞTIINŢIFICĂ,

CE LIMBAJ DE PROGRAMARE SĂ ÎNVĂŢ? PHP vs. C# vs. Java vs. JavaScript

Sisteme integrate pentru -business

Material de sinteză privind conceptul de intreprindere virtuală şi modul de implementare a mecanismelor care susţin funcţionarea acesteia

IBM OpenPages GRC on Cloud

SISTEME SUPORT PENTRU MANAGEMENTUL CUNOȘTINȚELOR DIN CADRUL ORGANIZAȚIILOR

FISA DE EVIDENTA Nr 1/

Mail Moldtelecom. Microsoft Outlook Google Android Thunderbird Microsoft Outlook

Geographical data management in GIS systems

FIŞA DISCIPLINEI Semestrul Tipul de evaluare. Obligatorie. 2.7 Regimul disciplinei

Sistemul de operare Windows (95, 98) Componenta My Computer

STANDARDUL INTERNAŢIONAL DE AUDIT 120 CADRUL GENERAL AL STANDARDELOR INTERNAŢIONALE DE AUDIT CUPRINS

Modalităţi de redare a conţinutului 3D prin intermediul unui proiector BenQ:

De ce calcul paralel?

Circuite Basculante Bistabile

IBM Sterling B2B Integration Services

Referat I. Sisteme Suport pentru Decizii. Utilizare. Tehnologie. Construire.

. Microsoft Project 2010 / 2013 / 2016 aplicat in Constructii pentru Planificarea si Controlul Proiectelor

ACTION LEARNING UN PROGRAM DE DEZVOLTARE MANAGERIALĂ

FIŞA DISCIPLINEI. 2.7 Regimul disciplinei. Examen. Obligatoriu

MANAGEMENTUL PROIECTELOR EUROPENE

Prezentareaşi evoluţia sistemelor. Prof.dr. Doina Fotache, suport curs , Informatică Economică, FEAA Iaşi

ISA 620: Utilizarea activității unui expert din partea auditorului

Menţinerea în funcţiune a unui sistem eficient ABC/ABM

ŞtiinŃa, proiectarea şi ingineria serviciilor în electronică, telecomunicații şi tehnologia informației

Mediul XWindow. Dr. Sabin-Corneliu. Facultatea de Informatică Universitatea A.I.Cuza Iaşi, România ://

SISTEMUL INFORMAŢIONAL LOGISTIC: COMPONENTE ŞI MACRO PROCESE

Application form for the 2015/2016 auditions for THE EUROPEAN UNION YOUTH ORCHESTRA (EUYO)

Split Screen Specifications

ABORDĂRI ŞI SOLUŢII SPECIFICE ÎN MANAGEMENTUL, GUVERNANŢA ŞI ANALIZA DATELOR DE MARI DIMENSIUNI (BIG DATA)

PROIECTUL: iei publice. Cod SMIS: 26932

Sisteme de management al calităţii PRINCIPII FUNDAMENTALE ŞI VOCABULAR

Competenţe IT ale profesioniştilor contabili. Auditul sistemelor informaţionale contabile. Evaluarea mediulul de control IT al entităţii

Procedura Controlul documentelor

SISTEMUL INFORMATIONAL-INFORMATIC PENTRU FIRMA DE CONSTRUCTII

AUDIT ȘI CERTIFICAREA CALITĂȚII

Clasele de asigurare. Legea 237/2015 Anexa nr. 1

Sisteme de operare şi programe specifice. Material de predare partea a I-a. Material de învăţare

Capitolul V MODELAREA SISTEMELOR CU VENSIM

Sisteme informationale economice (3)

INFORMATICĂ MARKETING

STUDIU DE FEZABILITATE PRIVIND DIGITIZAREA, PREZERVAREA DIGITALĂ ŞI ACCESIBILITATEA ON-LINE A RESURSELOR BIBLIOTECILOR

Veaceslav BULAT. Ghid de reguli şi principii de bază în scrierea unui proiect

Comisia Europeana MODEL REQUIREMENTS FOR THE MANAGEMENT OF ELECTRONIC RECORDS

Free software and open source databases

Contribuţii la managementul proceselor de afaceri în companii

Programul de master Managementul şi protecţia Informaţiei. Descrierea disciplinelor din planul de învăţământ

ECHIVALENTE PENTRU TOATĂ GAMA DE ECHIPAMENTE ORIGINALE PREZENTARE GENERALĂ A PRODUSELOR

Clasificarea internaţională a funcţionării, dizabilităţii şi sănătăţii

Universitatea din Bucureşti şi Universitatea Transilvania din Braşov

Prezentare Modelarea Proceselor de Afaceri bazate pe Managementul de Cunoştinţe Partea I Impactul Managementului de Cunoştinţe la nivelul Firmei 5.

SUBIECTE CONCURS ADMITERE TEST GRILĂ DE VERIFICARE A CUNOŞTINŢELOR FILIERA DIRECTĂ VARIANTA 1

Anexa 3. Universitatea POLITEHNICA din Bucureşti Facultatea E.T.T.I. FIŞ A DISCIPLINEI 1. DATE DE IDENTIFICARE

asist. univ. dr. Alma Pentescu

MODULUL nr. 2 3 Standardul internaţional pentru managementul documentelor (ISO 15489)

Transcription:

Platformă de e learning și curriculă e content pentru Instrumente pentru Dezvoltarea Programelor 2. Instrumente CASE.

Computer Aided d Software Engineering i Ingineria i asistată ittă de calculator l (CASE) instrumente t de asistenţă a ciclurilor de dezvoltare şi evoluţie software Prin instrumente CASE înţelegem aplicaţiile software care i sprijină/ajută j pe analişti, proiectanţi, programatori, inclusiv personalul de testare şi întreţinere, ţ să analizeze, să proiecteze, să implementeze (cel puţin parţial), să modifice (extindă), respectiv să construiască teste pentru sistemele informatice. 2

Perspectiva Software Engineering Computer aided Fundamente Metode Instrumente Metode complexe devin accesibil de folosit CASE 3

Instrumente CASE Programatorii au nevoie de: Versiuni la zi ale documentelor unui proiect Sistem de ajutor online pentru limbajul de programare, editor, etc. Diverse manuale online Editoare cu funcţii de automatizare (auto completion, syntax checker, etc) Automatizarea activităţilor IDEs (ex. Eclipse, Visual Studio) Instrumente de automatizare a construcţiei (ex. ant, make) Instrumente de construcţie grafică (GUI) pentru interfeţe utilizator (ex. VE pentru Eclipse, VS Designer) Version control systems (Subversion, CVS, etc.) Instrumente de modelare (Together, ArgoUML, Rational Rose) Generatoare (JET, ANTLR) de rapoarte, ecrane, etc. Reverse engineering tools 4

Exemplu de instrument CASE 5

Istoric Evoluţia instrumentelor CASE: Programarea P considerata o forma de arta anii 60 Metode structurate 1965 Tehnici Thiide modelare dl a datelor dtl 1970 Limbaje de generaţia a patra 1975 Instrumente de proiectare a specificaţiilor software 1980 Instrumente pentru prototipizarea interfeţei utilizator 1985 Instrumente pentru generarea automată a codului 1990 CASE uri integrate, CASE uri orientate obiect 1995 Component Software (Java) 1996 Mai multe pe http://en.wikipedia.org/wiki/computer-aided_software_engineering#history_of_case 6

Evolutie? Software tools? 7

Evolutie Ei ar putea lucra fara instrumente? Dar voi? IDP 10.03.2010 Instrumente pentru Dezvoltarea Programelor. 8 8

Trei generaţii de instrumente CASE Prima generaţie CASE Un instrument pentru o anumita etapa a procesului software planificarea strategică (la nivelul sistemelor complexe) etapa de analiză etapa de proiectare generare de cod Caracteristici: oferă interfaţă grafică pentru utilizator instrumente de dimensiuni mici, volum mare de date generare de cod se referă la definirea datelor (ecrane, rapoarte, definiţii, fragmente de cod). 9

Trei generaţii de instrumente CASE A doua generaţie de produse CASE Aceleaşi facilităţica şi cele din prima generaţie şi în general aceleaşi tipuri de instrumente + Generarea de cod să se realizeze pemain frame uri pecare să existe un generator central de cod şicare să stocheze codul generat într un depozit. Permit lucrul în echipă pentruelaborarea elaborarea deproiecte de obicei complexe Asigură facilităţide management de proiect. Acestei generaţii îi aparţin CASE uri care oferă suport pentru întreg ciclul de viaţă (integrated CASE sau I CASE) oferăf ă suport pentru realizarea proiectelor folosind mai multe metode de analizăşiproiectare. 10

Trei generaţii de instrumente CASE Generaţia a treia de produse CASE cuprinde CASE urile ultimeiperioade, numiteşi mediisau Workbench (colecţie de instrumente CASE şide alte componente integrate care asigură suportul pentru majoritateatipurilor de interacţiuni între componentele mediului şi între utilizator şi mediu) Generaţiaţ a treia de CASE presupune p utilizarea acestora în organizaţii elaboratoare de software şi este generaţia actuală care oferă: facilităţif ă i individuale id pe PC facilităţila nivel de proiect pe LAN facilităţi la nivel de organizaţie pe mainframe 11

Clasificarea CASE 1.Instrumente CASE de nivel superior utilizate în fazele de analiză şi de proiectare ale procesului de dezvoltare a sistemelor (asigură realizarea diagramelor, generarea formularelor şi a rapoartelor etc.); 2.Instrumente CASE de nivel inferior permit proiectarea şi realizarea sistemului vizat (CASE pentru implementare, verificare, stabilire a configuraţiei etc.). 1.UpperCASE (front end tool) 2.LowerCASE (back end tool) 12

Clasificarea CASE Ian Sommerville clasifică instrumentele din 3 perspective: 1. Perspectiva funcţională pe baza funcţiilor specifice furnizate 2. Perspectiva espect apoceseo proceselor în funcţie de activităţile de proces suportate 3. Perspectiva integrării în funcţie de modul în care sunt organizate în unităţi integrate ce furnizează suport pentru unul sau mai multe activităţi ale procesului software 13

Clasificare funcţională Tip de instrument CASE Instrumente de planificare Instrumente de editare Instrumente de gestiune a modificărilor Instrumente de management a configurărilor Instrumente de prototipare Instrumente de suport a metodelor Instrumente de procesare a limbajului Instrumente de analiză a programului Instrumente de testare Instrumente de depanare Instrumente de documentare Instrumente de re-eingineering Exemple Instrumente PERT, instrumente de estimare, spreadsheets Editoare text, editoare de diagrame, procesoare word Instrumente de gestiune a cerinţelor, sisteme de control a modificărilor Sisteme de management a versiunilor, instrumente de construcţie a sistemelor Limbaje de nivel foarte înalt, generatoare de interfeţe utilizator Editoare de proiect, dicţionare de date, generatoare de cod Compilatoare, interpretoare Generatoare de referinţe încrucişate, analizoare statice, analizoare dinamice Generatoare de date de test, comparatoare de fişiere Sisteme de depanare interactivă Programe de formatare a paginilor, editoare de imagini Sisteme de referinţe încrucişate, sisteme de restructurare a programelor 14

Clasificare bazată ă pe activităţi ii ă i Instrumente pentru re-engineering Instrumente pentru testare Instrumente pentru depanare Instrumente de analiză a programului Instrumente de procesare a limbajului Instrumente de suport a metodelor Instrumente de prototipare Instrumente de management a configuraţiilor Instrumente de management a modificărilor Instrumente de documentare Instrumente de editare Instrumente de planificare Speficare Proiectare Implementare Verificare şi Validare 15

Suportul oferit procesului software Instrumente (ex. make, ant, javadoc) Suportă task uri individuale precum compilare, editare, etc. Medii de lucru/workbenches (=IDE/Integrated Development Environments) (ex. Eclipse, Eli Visual Studio) Suportă etape distincte ale procesului software (specificaţia, proiectarea, etc.) Includ adesea un număr de instrumente integrate Medii de dezvoltare/environments (ex. suita IBM WebSphere) Suportă toate sau un set substanţial al activităţilor procesului software Includ de obicei mai multe medii de lucru 16

Instrument vs. Mediu de lucru vs. mediu de dezvoltare (a) Tool vs. (b) workbench vs. (c) environment 17

Instrumente, medii de lucru, medii de dezvoltare Tehnologia CASE Instrumente Medii de lucru Medii de dezvoltare Editoare Compilatoare Comparatoare de fişiere Medii de dezvoltare integrate Medii de dezvoltare orientate pe proces Analiză şi proiectare Programare Testare Mediu de lucru Mediu de lucru multi-method single-method Mediu de lucru generic Mediu de lucru orientat limbaj 18

Ahi Arhitectura unui mediu CASE User Interface Tool Set Object management system (OMS) Repository 19

Componente de bazăă ale unui sistem it CASE Depozitul de date (data repository) acumulează şi stochează, în mod organizat, toate informaţiile introduse de diferite persoane, la momente diferite de timp, care vor servi în etapele de analiză, proiectare şi creare a codului se pot delimita depozitul de informaţii (Information Repository) conţinând informaţiile despre afacerea organizaţiei şi despre portofoliul său de aplicaţii şi dicţionarul de date (Data Dictionary), care specifică numele (identificatorii) şi descrierea datelor, gestionează controlul accesului la depozitul de informaţii, conţine descrierile resurselor necesare prelucrărilor datelor; Editorul de diagrame componentă ce facilitează realizarea şi modificarea diagramelor specifice metodologiei pentru a fost creat instrumentul CASE respectiv; Analizorul de structură găseşte şi elimină erorile dificil de localizat at după culegerea informaţiilor, efectuând comparaţii între datele nou introduse şi cele deja existente în baza de informaţii; 20

Componente de bază ale unui sistem CASE Instrumente pentru reverse engineering asigură actualizarea diagramelor conform schimbărilor realizate în codul sursă; ă Generatorul de cod poateconverti în cod diagramele realizate în faza de proiectare; Navigatorul specializat instrument pentru vizualizarea informaţiilor unui ansamblu de entităţi care au o structură complexă, între care există un mare număr de relaţii; Generatorul de documentaţie include modele de documente, oferind utilizatorilor posibilitatea de a şi concepe propriile documente într o manieră flexibilă; 21

Componente de bazăă ale unui sistem it CASE Generatorul de formulare şi de rapoarte conceperea interfeţelor (interactivitatea) produsului cu utilizatorii; Componente de transformare permit trecerea de la un model sau o diagramă la alt model, respectiv la altă diagramă; Instrumentele pentru managementul de proiect oferă facilităţi destinate gestiunii configuraţiei fiecărui proiect (proiectul de aplicaţie, codul şi documentaţia unui sistem dezvoltat); Instrumentele de verificare automată a aplicaţiei 22

Instrumente CASE şi procesul software 23

Avantaje ale folosirii iicase Realizarea automată a documentaţiei sistemelor Documentaţia şi specificaţiile de proiectare reprezintă piesele de bază ale unui proiect de dezvoltare Din lipsă de timp sau din neglijenţă, documentaţia este ultimul lucru la care se gândesc cei din echipa de realizare Dupăă implementarea sistemului şi maiales în timpul exploatării ă şi întreţinerii lui se consumă un timp foarte mare din lipsa informaţiilor privind detaliile de proiectare a sistemului Prin instrumentele CASE, documentaţiaşi specificaţiile sistemului se pot obţine automat pe baza depozitului datelor, oferind astfel posibilitatea ca echipa de specialişti să nu mai fie sufocaţi şi de această responsabilitate 24

Avantaje ale folosirii CASE Automatizarea parţială sau totală a fazelor de analizăşi proiectare a sistemelor Determină scurtarea ciclului de viaţă al sistemelor, creşterea calităţiiţ lor şi eliminarea erorilor de proiectare Instrumentele CASE dispun de module de verificare şi validare, de tehnici de normalizare a datelor şi chiar de prototipizare a sistemelor 25

Avantaje ale folosirii iicase Coordonarea/managementul proiectelor de dezvoltare a sistemelor Sunt puse la dispoziţia membrilor echipei de proiectare informaţii cu privire la activităţile desfăşurate şi rezultatele obţinute, astfel încât există ităposibilitatea t ca în orice moment săă se cunoască cu exactitate stadiul de dezvoltare al sistemului, timpul şi resursele consumate Generarea automată a codului sursă al aplicaţiilor Una din promisiunile ii il CASE ului o constituie i susţinerea eforturilor din faza de formulare a cerinţelor şipânăîn faza de implementare şiîntreţinere Dezvoltatorul D t l componenta de creativitate it t (âdiţi (gândiţi vă ă la RPC, CORBA, etc.) 26

Studiu de caz: instrumente CASE pentru analiză şi proiectare În procesul de analiză sunt adesea folosite modele înţelegerea şi dezvoltarea sistemului omise o serie de detalii (abstractizare a sistemului studiat şi nu o reprezentare alternativă a sistemului) Exemple de tipuri de modele de sistem posibil create de a lungul fazei de analiză includ: Modelul flux de date. Arată modul în care sunt procesate datele în diversele etape ale funcţionării sistemului. Modelul compozit = model agregare. Arată modul în care entităţile sistemului sunt compuse din alte entităţi. Modelul arhitectural. Prezintă principalele subsisteme ce compun sistemul. Modelul clasificare. Clasele de obiecte/diagramele de moştenire prezintă modul în care entităţile sistemului prezintă caracteristici comune. Modelul stimul răspuns = diagramă stare tranziţie.arată modul în care sistemul reacţionează la evenimente interne şi externe. 27

Studiude de caz: instrumentecase pentru analizăşiproiectare Dictionar de date Instrumente de proiectare structurata Facilitati de generare de rapoarte Generator de cod Repository central de informatii Facilitati de limbaj de interogare Instrumente de creare de formulare Instrumente de proiectare, analiza si verificare Facilitati de import/export 28

Studiude de caz: instrumentecase pentru analiză şiproiectare Editoarele de diagrame folosite pentru crearea de modele ale obiectelor, modele ale datelor, modele comportamentale, etc. captează p diverse informaţii ţ legate de entităţi ţ şi pot salva informaţii ţ în repository ul central. Instrumentele de analiză şi verificare a proiectului ajută la procesarea proiectului şi la raportarea unor erori şi anomalii. pot fi integrate cu sistemul de editare astfel încât erorile utilizatorului să fie regăsite într un stagiu timpuriu al procesului software Limbaje de interogare a repository ului permit proiectantului regăsirea erorirlor şi a informaţiilor asociate de proiectare în repository ul central. Dicţionarul de date menţine informaţii relative la entităţile folosite într un proiect al sistemului. 29

Studiude de caz: instrumentecase pentru analiză şiproiectare Instrumentele de definire şi generare a rapoartelor preiau informaţia din repository şi generează documentaţie privind sistemul. Instrumente de definire a formularelor permit specificarea de formate pentru ecrane şi documente. Facilităţile de import/export permit schimbul de informaţii din repository ul central cu diverse ale instrumente de dezvoltare. Generatoarele de cod GenerareaG decod d sau schelete hlt de cod automat tpornind dde la proiectul sistemului definit şi păstrat în repository ul central. 30

Version Control lsystems Tehnologie pentru gestionarea schimbărilor pe care maimulţi dezvoltatori le fac în comun asupra unui repository partajat Schimbarea duce la crearea de noi versiuni i ale fişierelori modificate Versiunile vechi sunt întotdeauna accesibile Permite utilizatorilor partajarea proiectelor asigurarea că schimbările efectuate de un dezvoltator nu sunt accidental şterse sau alterate de un alt dezvoltator prin schimbărileefectuate efectuate de acesta 31

Version Control lsystems Dezvoltatorii t Working Copy Repository Working Copy Working Copy Version 5 Version 4 Version 3 Version 2 Version 1 32

Exemplu: Subversion 33

SVN Platformă de e learning și curriculă e content pentru SVN sau Subversion Instrument CASE folosit astăzi de mulţi dezvoltatori pentru menţinerea modificărilor efectuate asupra codului sursă (dezvoltare colaborativă) SVN este popular în rândul comunităţilor open source Folosit în multe proiecte open source, precum Apache Software Foundation, KDE, GNOME, Python, and etc. SVN rulează pe sisteme de operare precum UNIX, Win32 sau MacOS X 34

Istoria SVN În 2000 CollabNet Inc. a încercat scrierea unui înlocuitor al popularului l (la vremea aceea) CVS din cauza a limitărilor acestuia. Bad News! CVS la ora respectivă devenise standardul de facto în rândul comunităţilor open source! De ce? Pentru că oamenii nu aveau altă soluţie decât să folosească CVS! CollabNet s a hotărât să scrie o noua versiune de version control system de la zero! DAR bazat pe CVS şi folosind CVS Obiectivele ele urmărite: Menţinerea unei metodologii de control a versiunilor Păstrarea funcţionalităţilor oferite de CVS Produsul trebuia să fie similar CVS a.î. aî Orice utilizator putea uşor adopta noul produs fără mare efort de înţelegere a conceptelor În August 2001 Subversion a devenit disponibil gratuit şi descărcabil dintr un repository CVS!!! 35

Câteva dintre funcţionalităţile ă il oferite Directory versioning SVN implementează un sistem de fişiere virtual ce menţine consistenţa modificărilor la nivelul întregului arbore de directoare de a lungul timpului True version history Se pot adăuga, şterge, copia şi redenumi ATÂT fişiere cât şi directoare. Atomic commits Previne apariţia unor probleme ca urmare a comiterii numai a unui set parţial de modificări. Numerele N l de revizie i se acordă per commit şi i nu pentru fiecare fişier i comis Fiecărei revizii îi sunt ataşate mesaje de log (şi nu sunt stocate redundant ca în cazul CVS) Versioned metadata Metadatelestocate tdtl t t împreună ă cu fişierele i şi i directoare pot fi de asemenea versionate. Choice of network layers Este permisă folosirea mai multor protocoale de acces la repository: HTTP şi HTTPS (Apache servercuprotocolul WebDAV/DeltaV) 36

Funcţionalităţi ă i oferite (cont.) Consistent data handling Folosind un algoritm de diferenţiere binară ce funcţionează asupra atât a fişierelor text, cât şi a celor binare. Diferenţele întrefişieresunttransmiseîn transmise ambele direcţii în reţea (client < > repository server) Efficient branching and tagging Sunt S tcreate ramuri şi i taguri noi prin copierea proiectelor (similar (i il modalităţii lităţiihard link) reducerea timpului Hackability Este implementat ca o colecţie de biblioteci C partajate. Uşor de menţinut şi folosit de către alte aplicaţii şi limbaje de dezvoltare. 37

SVN vs. CVS CVS Pros folosit pe scară largă, bine documentat suportat pretutindeni Cons permite comiterea numai a fişierelori Încet adecvat pentru stocarea datelor text, necesită informaţii ţ speciale pentru stocarea altor formate de fişiere SVN Pros mutarea atât a fişierelor, cât şi a directoarelor overall revision number: versionare şi testare regresivă mai uşoară previne comiterea accidentală a fişierelor aflate în conflict suport pentru comanda diff Cons necesită de două ori mai mult spaţiu decât CVS no rollback of commit: e nevoie de stocarea unor stări bune a proiectului i pentru a suprascrie comituri greşite 38

Arhitectura Subversion 39

Elementele l Controlului l iversiunii ii Repository Locul în care sunt păstrate şi menţinute proiectele versionate NU SE LUCREAZĂ NICIODATĂ direct asupra fişierelor din repository Working Directory Stochează o cope locală a proiectului Interacţionează cu Repository prin Fişierele pot fi checked out din repository şi se lucrează asupra fişierelor locale situate în directorul de lucru Sepot comite modificărileînapoi înrepository atunci când modificările au fost efectuate complet 40

Elementele l Controlului l iversiunii ii Revizii Sistemul de control al versiunii (VCS) stochează o istorie a modificărilor într o revizie (revision) odată cu comiterea setului de modificări Unele VCS uri, ca şi Subversion, lucrează cu revizii ce sunt globale în întreg repository Fiecare revizie este identificată printr un număr unic de revizie repository Revision 1 Revision 2 Revision 3 Commit foo.java Commit bar.java Commit changes to foo.java 41

Proiectele /trunk /tags Păstrează linia principală a dezvoltării Snapshot al unui proiect în timp /branches Conţine copiide tip branch Copii de tip ramură al trunk Exemplu: client branch 42

Clientul l SVN de tip Command dline $ svn import /tmp/myproject file:///path/to/repos/myproject p -m "initial import" Adding /tmp/myproject/branches Adding /tmp/myproject/tags Adding /tmp/myproject/trunk Adding /tmp/myproject/trunk/foo.c Adding /tmp/myproject/trunk/bar.c Adding /tmp/myproject/trunk/makefile Committed revision 1. $ 43

Setarea unui repository Se crează un nou repository $ svnadmin create --fs-type fsfs /uac/gds/cprj/my_repository Se crează o structură de director pentru import $ mkdir repos $ mkdir repos/trunk $ mkdir repos/branches $ mkdir repos/tags $ touch repos/trunk/hello.c Repository Structure - my_repository - trunk - branches - tags Se importă directorul în repository $ svn import --message Initial import repos file:///uac/gds/cprj/my_repository Se şterg fişierele originale $ \rm rf repos Repository ul este accesatfolosind următorul URL: file:///uac/gds/cprj/my_repository protocol name: file:// UNIX path name: /uac/gds/cprj/my_repository Pentru un repository în Windows: file:///c:/path/to/repository 44

Regăsirea ă fişierelor i din Repository Se obţine o copie a celei mai recente revizii şi aceasta se stochează localîntr un director de lucru localnumit my_repos_trunk $svn checkout file:///uac/gds/cprj/my_repository/trunk my_repos_trunk $ svn <command> [<options>] [<targets>] Cmd Option --message --revision (-r) --username Description Attach log to revision Specify a specific revision Specify a username 45

Ciclul l de bază ă al procesului ide lucru 1. Actualizarea copiei locale $ svn update 2. Modificări $ svn add hello.c $ svn delete hello.c $ svn copy hello.c bye.c $ svn move hello.c bye.c Don t make changes using commands provided by your OS, use Subversion commands! Otherwise, Subversion will not be aware of the change 3. Examinarea schimbărilor curente $ svn status $ svn diff hello.c bye.c $ svn revert hello.c 4. Merge între modificările efectuate de alţii şi copia locală $ svn update $ svn resolved hello.c 5. Comiterea propriilor modificări $ svn commit $ svn ci 46

TortoiseSVN Checkout: 47

Subclipse Plug in Eclipse Proiect open source http://subc clipse.tigris s.org/ 48

Subclipse 49

Build Tools. Mk Make all: calc calc: main.o math.o g++ main.o math.o -o calc Graf de depedenţă calc main.o: main.cpp g++ -c main.cpp main.o math.o math.o: math.cpp math.h g++ -c math.cpp clean: rm *.o main.cpp math.cpp math.h 50

Instrumente de documentare. Javadoc public class Stack { /** * Pushes an item on to * the top of this stack. * @param item the item to be pushed. */ public void push(objec item){ this.elements.add(item);} } } /** * Removes the object at the top * of this stack and returns that * object. * @return The object at the top * of this stack. * @exception NoSuchElementException * if this stack is empty. */ public Object pop() throws NoSuchElementException { //... 51

Instrumentede modelare 52

Generatoare (1) Există taskuri de dezvoltare de rutină : interfeţe (DB, GUI), unele pattern uri de proiectare şi functionalităţi standard, d etc. Idee: task uri de automatizare folosind generatoare parametrizate Implică transformarea unor construcţii de nivel înalt în construcţii de nivel redus Avantaje: reducerea timpului de dezvoltare evitarea erorilor prin reducerea gradului de implicare a oamenilor acolo unde acest lucru nu este neapărat o necesitate Input (Parameter) Generator Output 53

Generatoare (2) Generarea unei interfeţe web Generator JSP JSP JSP JSP Generarea de clase Java Generator Class Class Class Class Generarea de parsere de limbaj Gramatica Generator Cod sursa pentru parser 54

Reverse Engineering i Tools (1) Regăsirea informaţiei plecând de la un sistem finalizat Metode: Analiza statică: examinarea codului Analiza A dinamică: i ă observarea comportamentului t programului ila runtime Analiza black box: observarea ieşirilor programului Analiza white box: black box + observarea comportării interne a programului Program RE Tool Source Code Architecture Diagram Data Model Documentation Specifi- cation 55 55

Reverse Engineering Tools (2) Recuperarea codului sursă Aplicatie Instrument t Cod sursa Cod sursa Cod sursa Recuperarea modelului de date Class Class Class Class Instrument Explorarea comportamentului de runtime Aplicatie executabila Trace de executie Instrument (ex., graf de apeluri) 56

Problemele l CASE Tehnologia CASE a dus la îmbunătăţiri semnificative ale procesului software Dar nu de ordinul de mărime prezis: Dezvoltarea software necesită creativitate greu de automatizat Ingineria dezvoltării este o activitate de grup implică interacţiune în cazul unor proiecte de mare amploare Tehnologiile CASE suportă greu astfel de probleme 57

Productivitatea i folosind dcase (1) Studiu realizat în 45 de companii (1995) ½ ½ sisteme it informatice ¼ software scientific ¼ software real time (pentru control aerian) Rezultatele: DoarD 10% câştig anual în productivitate it t Costuri: 125.000$ per person/an 58

Productivitatea i folosind dcase (2) Studiu condus pe 15 companii din Fortune 500 (1997) Este vitalca într o companiesă existe: Training Un proces software bine conturat Mediile CASE ar trebui folosite numai dacă există un nivel de maturitate în dezvoltarea procesului software suficient de matur A fool with a tool is still a fool 59

Exemple de produse CASE 60

Microsoft Visio i Professional Furnizează soluţii de tip diagrame pentru documentare şi comunicare de informaţii 61

IBM Rational lunified dp Process (RUP) Concept de dezvoltare software (Rational Software Corporation) integrat cu unelte de dezvoltare software în suitele IBM Rational Este compus din: Best B tpractices RUP include o bibliotecă ă de best practices pentru software engineering, acoperind de la managementul proiectului până la testarea detaliată a produselor. Process delivery tools RUP este livrat folosind tehnologii web ce permit integrarea cu alte instrumente de dezvoltare software. Configuration tools RUP este alcătuit din componente şi plug inuri ce pot fi selectate şi configurare în funcţie de necesităţile fiecărui proiect. Process authoring tools O organizaţie poate extinde sau modifica instrumentele RUP prin crearea propriilor plug inuri folosind produsele din suita Rational Process Workbench. Community/Marketplace Rational Developer Network (RDN) furnizează un loc pentru partajarea diverselor extensii de procese software. 62

Framework ul RUP 63

Ciclul l de dezvoltare RUP Alcătuit din patru faze secvenţialeţ ce modelează aspecte financiare, strategice, comerciale şi umane din derularea proiectului software. Nouă activităţi ce modelează aspectele tehnice ale dezvoltării proiectului: modelarea proceselor de business, implementare, testare, etc. O fază a unui proiect RUP este împărţită în iteraţii cuprind activităţi de dezvoltare ce produc releases a softwareului final executabil. 64

RUP Patru faze secvenţiale ecte tehnice Aspe Iteraţii 65

Componente ale activităţilor ii ă il RUP Un rol presupune: -Set de activităţi -Set de produse livrate (artifacts) Artifact guidelines arată cum sunt dezvoltate, evaluate şi folosite produsele Work guidelines explică cum trebuie implementată o activitate Tool mentor descrie cum pot ajuta instrumentele software fiecare dintre actvităţi 66

Selectarea Componentelor şi Plug ins Constructor RUP (RUP Builder) Patru etape Ajută la: selectarea unei configuraţii de bază, folosirea plug in urilor în alte componente ale procesului, configurarea viziunilor ii il procesului, publicarea p RUP ului personalizat 67

Definirea i Vederilor de Proces Process View reprezintă un control bazat pe roluri personalizat ce conţine legături către elemente din RUP Process Configuration, precum şi legături către fişiere sau alte URL uri externe configuraţiei. Process Views sunt create în RUP Builder. MyRUP permite fiecărui individ să şi contureze propria sa viziune asupra proiectului Asistenţi de instrument (Tools Mentors) oferă asistenţă ţ pentru utilizarea instrumentelor Rational în scopul îndeplinirii sarcinilor RUP. 68

Tool Ment tor Process view 69

RUP Modeler RUP Modeler instrument de modelare ce permite modificarea proceselor RUP 70

Instrumente din suita IBM Rational 71

Instrumente din suita IBM Rational IBM Rational Requisite Pro Furnizează o bază de date centralizată a tuturor cerinţelor programelor dezvoltate. Este integrat cu Microsoft Word, aspect ce permite importarea tuturor cerinţelor descrise în documentul cerinţelor direct în baza de date Beneficii : Ajută la vizualizarea de către echipă a proceselor de business. Îmbunătăţesc comunicarea între acţionari şi clarificarea cerinţelor de business. Ajută la gestionarea complexităţii. Ajută la capturarea fenomenelor de business vitale pentru produsul final şi înţelegerea lor de către echipele de dezvoltare. Familia de produse IBM Rational Rose Permite analiştilor de business modelarea proceselor de business, folosind Unified Modelling Language (UML) Beneficii: Reducerea timpului şi efortului necesar în producerea documentaţiei aferente dezvoltării programului. Producerea de rapoarte la termen, actualizate şi consistente privind datele activităţilor implicate de procesul de dezvoltare. Oferă capabilităţi de publicare online (Web) a documentelor şi rapoartelor. 72

Instrumente din suita IBM Rational IBM Rational ClearCase Gestionează modificările apărute în cadrul produselor dezvoltare şi furnizează un control automatizat al diverselor versiuni software. Beneficii: Gestiunea automată a modificărilor. Protejarea integrităţii produselor dezvoltate. IBM Rational ClearQuest Automatizează procesele aferente managementului problemelor, riscurilor şi modificărilor. Beneficii: Salvarea timpului i şi i efortului şi i îmbunătăţirea preciziei iimanagementului prin automatizarea ti proceselor de modificare manuală a diverselor documente aferente activităţilor de dezvoltare a produsului software. Furnizează rapoarte asupra managementului problemelor, riscurilor şi modificărilor apărute. IBM Rational Project Console Automatizează ă procesul de cercetare şi i raportare a stării ă curente a dezvoltării ă produsului software. Include metrici ii asupra progresului în format Web şi poate fi adaptat pentru a captura diverse metrici privind beneficiile curente ale dezvoltării. Beneficii: Salvarea timpului necesar creării, construirii şi menţinerii unui site Web privind progresul curent al procesului de dezvoltare software. Salvarea timpului şi efortului presupus p de colectarea manuală a stării diverselor activităţi ţ de dezvoltare. Furnizează un punct unic de depozit a informaţiilor actualizate privind starea proiectului ce poate fi folosit de către toţi membrii echipei de dezvoltare. 73

Rational ClearQuest Client for WebSphereStudio Workspace view Result Set view Properties view Console view Record Details, Chart and Report views 74

Arhitectura ClearCase Remote Client Eclipse / Rational SDP Maşina client Stand-alone (Eclipse RCP) HTTP(S) Maşina server CC Web Server CCRC Plug-ins CCRC WAN library Rational Web Platform (RWP) CC Core libraries RPC Copy area Based on web views View VOB Servere CC MVFS 75

ClearCaseC Remote Client for Eclipse Eli 76

Designer 2000 Produs al firmei i Oracle 77

Sumar Instrumente CASE: definiţie, proprietăţi Clasificarea instrumentelor CASE Arhitectura generică a unui mediu CASE Studiu de caz: instrumente CASE pentru etapele de analiză şi proiectare Exemple de instrumente CASE: Version Control Systems (SVN) Exemple de produse CASE: Microsoft Visio Professional, IBM Rational Unified Process 78