Principi di Ingegneria del Software
Transcript
Principi di Ingegneria del Software
UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 CorsodiLaureainMatematica DipartimentodiMatematicaeFisica Sistemiperl’elaborazionedelleinformazioni 9.Principidiingegneriadelsoftware DispensedelcorsoIN530a.a.2015/2016 prof.MarcoLiverani Scopodell’ingegneriadelsoftware • • L’ingegneriadelsoftwaredefiniscemodelliemetodologieperformalizzareilprocessodi progettazione,realizzazioneemanutenzionediunsistemainformatico Inquestoambitosidefinisceunveroepropriociclodivitadelsoftware,neltentativodi trasformarelosvilupposoftwaredaun’attivitàartigianaleversounprocessoindustriale – inun’attivitàartigianale sipossonoraggiungereelevatilivelliqualitativiediperformance,ma questoèstrettamentelegatoall’abilitàdell’artigiano;nonsemprel’abilitàpuòesseretrasferitaad altrimedianteunprocessodiformazione – inun’attivitàindustriale sicercadiraggiungereunlivellodiqualitàediperformanceadeguatial posizionamentodimercatodelprodotto;qualitàeperformancesonoottenutimediantela definizioneelaformalizzazionediprocessi emodalitàdirealizzazionediciascunaattività necessarianelciclodiproduzione;leattivitàsonomisurabili econtrollabili M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 1 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Ciclodivitadelsoftware Unprodottosoftwarehaunsuociclodivita,ossiaesistonodiversefasisuccessiveduranteil processodirealizzazioneemanutenzionedelsoftwarechevannodalsuoconcepimentoiniziale, finoallasuadefinitivadismissione 1. Analisipreliminare – – Studiodifattibilità,definizionedelleesigenze,definizionedelcontesto Definizionedeirequisiti 2. Progettazionedelsoftware – – – Specifichefunzionaliedarchitetturalidelsoftware Identificazionedilibrerieecomponentisoftwareriusabili Progettazionedellecomponentidelsistemasoftware 3. Realizzazionedelsoftware – – Specifichedidettagliodeimoduli Sviluppodeimodulisoftware,testunitario 4. Test,collaudoerilascioinproduzione – – – Integrazionedeimodulietestunitariediintegrazione Collaudoevalidazionedelsistemaintegrato Rilascio,migrazioneecaricamentodeidati,avvioinproduzione 5. Gestionedelsistemasoftware – – Utilizzodelsoftwareemanutenzioneordinaria,adeguativa,correttiva(MAC),evolutiva(MEV) Rilasciodinuoverelease,ripetendoipassi1–4 6. Terminedelciclodivitadelsoftware – Messafuoriserviziodelsoftware,backupdeidati,migrazionedatieservizisunuovosoftware Primafase:Analisipreliminare • Attivitàprincipali: – Studiodifattibilità,definizionedell’esigenzaedellasoluzioneinformatica,definizionedell’ambito delsoftware,identificazionedeglistakeholders (utenti,altrisistemi,ecc.) – Definizionedeirequisiti • Outputprodotti: – Notatecnicaodocumentodi“vision”:contesto,esigenzeesoluzioni,problematiche,disegno generaledelsistema – Identificazionedellerisorsenecessarie(umaneestrumentali)estimediimpegno – Documentodeirequisiti(caratteristichedelprodottosoftware,cosadevefare) • Figureprofessionalicoinvolte: – – – – • ProjectManager,AccountManager Analista SoftwareArchitect,SystemArchitect Espertodelcontestodibusiness Modalitàoperativa: – Intervistepressoilcliente – Analisideidatiedeisistemiinformaticipreesistenti – Identificazionedisoluzionidimercato,opensourceopresentiinaziendautilialprogetto M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 2 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Secondafase:Progettazionedelsoftware • Attivitàprincipali: – Definizionedellespecifichegrafico-funzionalidelsoftware – Definizionedellespecifichedidisegnoarchitetturale(architetturafisica,architetturadirete, architetturalogicaedellecomponenti) – Progettazionedellecomponentidelsistemasoftware • Outputprodotti: – Documentodispecifichefunzionali,specifichesuidati – Documentodidisegnoarchitetturale,identificazionedeiprodottihardwareesoftwareedelle componentiriusabili • Figurecoinvolte: – – – – • ProjectManager Analista SoftwareArchitect,SystemArchitect Specialistadiprodotto Modalitàoperativa: – Lavoroin-house – Usecasediagram,sequence diagram,componentdiagram,entity/relationship diagram – Studiodisoluzionidimercato,opensourceopresentiinazienda Terzafase:Realizzazionedelsoftware • • Avvieneancheinconcomitanzaconlaprogettazione(leduefasipossonoessereconcorrenti,conuno slittamentoinavantidellafasedirealizzazione);sisvolgein-house opressoilclienteasecondadegli strumentitecnologiciimpiegatiedeivincolicontrattuali Attivitàprincipali: – – – • Outputprodotti: – – – • Specifichetecnicheperlosviluppodeisingolimodulisoftware(ildettagliodipendedallacomplessitàdelsistema edallivellodicoinvolgimentodeglisviluppatorinellaprogettazione) Specifichechedescrivonolastrutturaadoggettidelmodulooilmodellorelazionaledeidati Softwaredocumentato,sottocontrollodiconfigurazione Figurecoinvolte: – – – • Specifichedidettagliodeimodulisoftware Progettazionedeimodulisoftware(classi,funzioni,packageelibrerie) Sviluppodeimodulisoftware,testunitario ProjectManager SoftwareArchitect Analista-Programmatore,Programmatore Modalitàoperativa: – – – – – Lavoroin-house opressoilcliente Classdiagram,flowchart,documentazionedelcodice(es.:Javadoc) Usodistrumentidisviluppoinbasealtipoditecnologiascelta Usodistrumentidiversioning editracciamentodellemodifiche(controllodiconfigurazione) Testcontinuodeimodulirilasciatinelrepositorydiprogetto(ilsoftwaresicompila?) M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 3 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Quartafase:Test,collaudoerilascioinproduzione • • Avvienealterminedellosviluppodiunmodulosoftwareauto-consistenteecostituisceunamilestone significativaperilprogetto Attivitàprincipali: – – – – Integrazionedeimodulietestunitariediintegrazione Testdelsistemaintegrato Pianificazionedelrilascioinproduzioneepredisposizionedellerisorsenecessarie(server,rete,ecc.) Rilascioemessainproduzione • Outputprodotti: • Figurecoinvolte: – – – – – – – – – – – – • Pianodeitestereportdiesecuzionedeitestunitariediintegrazione Pianodeitestereportdiesecuzionedeitestdisistema Pianodiindirizzamentodirete Sistemafunzionantenell’ambientediproduzioneidentificatoinsiemealcliente Manualediconfigurazioneegestione Manualeutente Pianodibackup,pianodidisaster recovery Istruzioniperilchange management eilporting deidati ProjectManager SoftwareArchitect Analista-Programmatore,Programmatore Sistemista Modalitàoperativa: – Lavoropressoilclientenell’ambientediproduzionefinaledelprodotto(inalcunicasinell’ambientedicollaudo, supportandopoiilclienteperilpassaggioinambientediproduzione) Quintafase:Gestioneemanutenzionedelsistemainproduzione • Avvienedopol’entrataineserciziodialmenounadellecomponentisoftwaresignificative;èun’attività privadiscadenzeintermedie,maconnecessitàdirendicontazionepuntualedelleattivitàconuna periodicitàeundettagliodefinitialivellocontrattuale;lamanutenzionecorrettivaèsoggettaaSLA (servicelevel agreement)definiticontrattualmente • Attivitàprincipali: – – – • Outputprodotti: – – – • Reportdiintervento Pianodiformazione Documentazionedellemodifichesoftware,conaggiornamentodelladocumentazione Figurecoinvolte: – – – – – • Supportoagliutentinell’utilizzodelsistemaeformazione,supportoagliamministratorinellagestionedelsistema Manutenzioneordinaria Manutenzionecorrettivaedevolutiva ProjectManager Programmatore,Analista-Programmatore Sistemista Espertodiprodotto/disistema Operatorehelpdesk Modalitàoperativa: – – Lavoropressoilclientenell’ambientediproduzionefinaledelprodottoperleattivitàdiassistenza,gestionee formazione Lavoroin-house epressoilclienteperleattivitàdimanutenzionecorrettivaedevolutiva M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 4 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Sestafase:Terminedelciclodivitadelsistema • Attivitàprincipali: – Supportoagliamministratoriperiltrasferimentodeidati – Backupfinaledeidatiedelsoftware – Supportoalclienteperladefinizionediunprocessodipassaggiodalvecchioalnuovosistema • Outputprodotti: • Figurecoinvolte: – • Istruzioniperilchange management eilporting deidati – ProjectManager,AccountManager – Analista – Sistemista – Espertodiprodotto/disistema Modalitàoperativa: – Lavoropressoilclientenell’ambientediproduzionefinaledelprodotto,incollaborazioneconilteamchesi occupadiimplementareilnuovosistemainformatico Aspettirilevantiperlaprogettazionedelprodottosoftware • Amontedelprocessodiprogettazioneesviluppodelsoftware,devonoesserepresiin esameedanalizzatiattentamentealcuniaspettichecondizionanoilprodottosoftware stesso – Scopodelprogetto • Contestodibusinessincuisiopera • Obiettividelprogetto – Cliente,committenteedaltriattori • Descrizionedelcliente,ossiacoluichecipagheràperillavorosvolto • Descrizionedelcommittente,ossiacoluicheharichiestoillavoro • Altrisoggetticoinvolti:sponsor,altreaziende,espertidivariogenerecoinvoltidalclienteodalcommittente – Utentidelprodottosoftware • Utentifinali,possibilmenteraggruppatiperruolonell’ambitodelcontestodibusinesseidentificandola competenzanelsettoredibusinesseinambitoinformatico • Prioritàdegliutentinellavalutazionedelnostrolavoro • Partecipazionedegliutentialprogetto(definizionedeirequisiti,fornituradiinformazionicriticheperla riuscitadelprogetto,test,approvazione,ecc.) • Utentiaddettiallagestionedelsistema(sistemisti,ealtriaddetti) M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 5 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Aspettirilevantiperlaprogettazionedelprodottosoftware – Vincoliobbligatori Vincoliallasoluzione(vincolitecnicisullecaratteristichegeneraliosuiprodottidausareononusare) Ambienteperl’implementazione(piattaformadibase,frameworkoaltrimiddlewaredausare) Applicazionidaintegrare(altrisistemipreesistenticoncuiilnostrosoftwaresideveintegrare) Prodottidimercatooopensourcedautilizzare Ambientedilavoroincuièimpiegatoilprodotto(descrizionetecnicaoanchelogisticao“culturale”) Vincolitemporali(vincoliditempodovutiafattoriesternioopportunitàchedevonoesserecolteentrouna determinatafinestratemporale) • Vincolidibudget(lapianificazionedelleattività,lerisorseeiltempoimpiegatodevonoesseredefiniti tenendocontodiquestovincolo) • • • • • • – Convenzionisuinomi • Definizionieacronimiutilizzatinell’ambitodelprogetto – Fattirilevantiealtreassunzioni • Fatti:fattorichehannoimpattosulsistema,purnoncostituendodeivincoliodeirequisiti(regoledi business,processiesternialsistema,machepossonoavereimpattosudiessoindeterminatecondizioni, ecc.) • Assunzioni:ipotesiverosimilichevengonoassuntecomeveritiereesucuisibasanoalcunedellesceltedi progetto;devonoesserecondiviseconilclienteeconilcommittenteenonpossonocontraddirelarealtà oggettiva(es.:miaspettochetuttigliutentiabbianounPCconcertecaratteristiche;miaspettocheidevice mobilipossanoesserecontinuamenteconnessiallarete,ecc.) Aspettirilevantiperlaprogettazionedelprodottosoftware – Ambitoincuivieneeseguitoilprogetto • Lasituazioneattuale(comefannoora,senzailnostroprodotto?) • Contestoincuisiinserisceilprodottosoftware • Businessevent chedevonoessereimplementati/supportatidalprodottosoftware – Ambitodelprodottosoftware • Limitidicompetenzadelprodottosoftware(finoadovedevesupportareilprocessodibusinessecosanon devefare) • Usecase(casid’uso)delprodottosoftware,ossiaazioniauto-consistentidapartedegliutentiodialtri sistemicheilprodottodeveimplementareosupportare M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 6 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Definizionedeirequisiti • Irequisiti delprodottodescrivonocosa ilsistemadeveoffrire(dominiodelproblema)enoncome il sistemadeveesseresviluppato(dominiodellasoluzione) • Lacorrettadefinizionedeirequisiti èunadelleattivitàchedeterminanolariuscitadiunprogetto eche talvoltasitendeerroneamenteasottovalutare Applicarsinelladefinizionedeirequisitièfondamentaleperdarsilapossibilitàdianalizzareafondoil contestoeleproblematicheorganizzativeetecnicheconcuicisidovràmisurarenell’ambitodel progetto Imodellidiciclodivitadelsoftwaremodernihannoabbandonatol’ideachesiapossibileidentificarei requisitidiunsistemasoftwareapriori: tendonoaprivilegiareapprocciiterativi • • • Irequisiti sonol’elementodiriscontroperverificareseilprodottosoftwareèunprodottodiqualità; spessoirequisitidelprodottoelaverificadelrecepimentodeirequisitisonounaspettorilevantedel contrattotrailcommittenteel’aziendachesviluppailsoftware • Esistonodiversitipidirequisitichepossonoesseredefinitiancheinmomentidiversinell’ambitodiun progettosoftware: – – – – – – Requisitifunzionali:cosafailsistema,comedeveinteragirecongliutentioconaltrisistemi Requisitinonfunzionali:dati,performance,affidabilità,ecc. Requisitiarchitetturali:prodotti/piattaformechesidevonoononsidevonousare,strutturadelsistema,ecc. Requisitidiprogetto:tempo,budget,risorse,logistica,ecc. Driverdiprogetto:obiettiviorganizzativi,politici,opportunitàdimercato,ecc. Altriaspettichecaratterizzanoilprogetto Definizionedeirequisiti • • Irequisitidevonoessereriportatisuunoopiùdocumentiedevonopoteressereidentificati chiaramenteeinmodosintetico Esempiodischemaperladefinizionediunrequisito: IDdelrequisito:codiceidentificativounivocodelrequisito Tipodirequisito:funzionale,nonfunzionale,ecc. Businessevent oUsecase cherichiedeilrequisito Descrizione:brevedescrizionedelrequisito Motivazione:giustificazionedelrequisito(cosasuccedesenonvieneimplementato?) Criteriodiverifica:descrizionedelcriterioconcuisipotràverificareseilrequisitoèsoddisfatto oppureno – Priorità:prioritàdelrequisitorispettoadaltri(indispensabileosuperfluo?Loharichiesto esplicitamenteilclienteoèsolounmodopermigliorareilsistema?) – Dipendenze:identificatividialtrirequisitidacuidipendequestorequisito – Data/versione:datadicreazioneomodificadelrequisito – – – – – – • • • Irequisitieledipendenzetrairequisiticostituisconoungrafoorientato(aciclico!)dicuisi devetenereconto,quandosiintendemodificareunodeirequisitidelsistema Sidevepotertracciare irequisitiinognicomponentedelprogetto:codice,casiditest,… Latracciabilità èunaspettodiqualitàdiunprogettosoftwarefondamentalepermolte attività:l’analisidegliimpattidiuncambiamentodirequisiti,laverificadellacorrettezzadi un’implementazione,iltesteilregression test M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 7 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Definizionedeirequisiti • Requisitifunzionaliesuidati 1. Requisitifunzionali(cosadevefareilsistema?) 2. Requisitigrafico-funzionali(comedevepresentarsiodevereagireilsistema?Qualestiledeve adottare?Comevienegarantitalacoerenzadell’interfacciautente?) 3. Requisitisuidati(undiagrammaE/R,maanchealtrirequisitirelativialciclodivitadeidati,allaloro persistenza,allaquantità,allacodifica,ecc.) • Requisitisull’usabilità 1. Requisitisullafacilitàd’uso 2. Requisitiperl’accessodiutenticondisabilitàoincondizionilogistichedisagevoli 3. Requisitiperl’internazionalizzazionedelprodotto(prodottomultilingua) • Requisitisulleperformance 1. Requisitisullarapiditàdirispostaesullalatenzadelsistema 2. Requisitidiprecisioneeaccuratezza(precisionenumerica,precisionenelleconversionididati,ecc.) 3. Affidabilitàedisponibilitàdelsistema(qualilivellidiserviziodevereggere?Perquantotempoil sistemapuònonesseredisponibile?) 4. Fault-tolerance (condizionidierroreacuiilsistemadevepoterresistere) 5. Requisitidicapacità(capacitàdimemorizzazione,capacitàdiservireunelevatonumerodiclient contemporanei,ecc.) 6. Requisitidiscalabilità(capacitàdelsistemadicrescereorizzontalmenteoverticalmentepervenire incontroallacrescitadelleesigenzedelcliente) Definizionedeirequisiti • Requisitisullasicurezza 1. Requisitisulcontrollodegliaccessi(chièautorizzatoadaccedere,aqualicondizioni,conquali metodidiidentificazione,ecc.) 2. Requisitisull’integritàdeidati 3. Requisitisullaprivacy(qualidatinondevonoesserememorizzati,chipuòaccedereadeterminati dati,ecc.) 4. Requisitidiauditing(qualieventidevonoesseretracciatineilogdelsistema,secondoquale modalitàtecnica,ecc.) • Requisitilegali 1. Requisitisullenormativeacuideveaderireilsistema(es.:gestionedelleutenzecomestabilitodal DPR196/2003) 2. Requisitisuglistandarddaadottare(formatodeidati,protocolli,ecc.) • Requisitisulladocumentazioneesullaformazione 1. Manualiedocumentidaprodurre,linguadelladocumentazione,formatodelladocumentazione 2. Requisitisuisistemidiaiutoon-lineperl’usodelsistema,requisitisulmaterialedidatticoa supportodellaformazione M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 8 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Definizionedell’architettura • Ladescrizionedell’architettura èunaspettoessenzialenellaprogettazionedelsoftware,dal momentocheciòchevieneprodottoèspessounsistema,formatodadiversecomponenti cheinteragisconofradiloro • Irequisitichehannounimpattodirettosull’architetturadelsistemaechequindiconcorrono allasuadefinizione,possonoessereraggruppatisullabasedellaseguenteclassificazione “FURPS”: – – – – – Funzionalità:ilsistemadeveesserecapacediforniredeterminatefunzioni Usabilità:ilsistemadeveesserefacilmentefruibiledall’utentefinale Affidabilità (Reliability):ilsistemadevegestireepossibilmente“resistere”aderroriecrash Prestazioni:ilsistemadeveavereperformanceadeguate Supportabilità:ilsistemadeveesseretaledaconsentireunacorrettagestioneemanutenzione Definizionedell’architettura • Perdescriverel’architetturadelsistemaènecessarioadottare“viste”diverse,fraloro complementari • Vistalogica – organizzazioneconcettualedelsoftwareinterminidistrati,sottosistemi,package,framework,classi einterfaccepiùimportanti;inquesta“vista” siriassumonoanchelefunzionalitàoffertedalle componentisoftwareedaisottosistemi – Puòmostraregliscenarid’usopiùimportantiopiùcriticialfinedimettereinevidenzailruolodi ciascunacomponentelogicadelsoftware • Vistadeiprocessi • Vistadideployment • Vistasuidati – Descriveilmodellodelprogettoel’organizzazioneinprocessi – Descriveillivellofisicoconcuisaràpubblicatoinambientediproduzioneilsistemasoftware – Descriveilmodellodirappresentazionedelleinformazionigestitedalsistemaediflussidi trasmissione • Vistasullasicurezza – Autenticazionedegliutenti,singlesign-on,modelloautorizzativo,cifratura,ecc. M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 9 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 UML:Unified Modeling Language • • • • UMLèunformalismograficoperdescrivereedocumentarel’architetturaelefunzionalità diunsistema;èunlinguaggiodimodellazioneespecificabasatosulparadigmaobjectoriented UMLsvolgeunafunzionedi“linguafranca”nellacomunitàdellaprogettazionee programmazioneaoggetti Ilmodelloèstrutturatosecondouninsiemedivistecherappresentanodiversiaspettidel sistemamodellato(funzionamento,struttura,comportamento,ecc.) UMLconsentedidescrivereunsistemasecondotreaspettiprincipali: – ilmodellofunzionale (diagrammideicasid'uso) – ilmodelloaoggetti(diagrammidelleclassi) – ilmodellodinamico (diagrammidisequenza) • • • Ladocumentazionedelprogettoèunostrumentocheobbligaadunaattentariflessione utileperevitaredicompiereerrorinellasuccessivafasedirealizzazione UMLoffreunostrumentodidocumentazionevicinoecompatibilecongliaspettipiùtecnici direalizzazionedelsoftware;adottainoltreunformalismonotoecomune;perquestidue motiviprincipalihaavutounsuccessonotevole UMLvieneusatoperdescrivereedocumentareaspettiassaicomplessiedastratti,percui nonèdipersésufficiente:vaintegratocondocumentazionepiùdescrittivaodimaggiore dettagliosualcuniaspetti UML,modellofunzionale:usecasediagrams • • Ilcasod’uso(usecase)èladescrizionediunoscenarioelementarediutilizzodelsistema Laspecificadiuncasod’usodovrebbeincludere – – – – • unnome,concuiidentificareilcasod’uso gliattori principaliesecondari,ossiaisoggetti(umaniotecnologici)chepartecipanoalloscenario unobiettivo,ilmotivopercuigliattoriprincipaliavvianoilcasod’uso laprecondizione nellaqualeèeseguibileilcasod’uso Lousecasediagram diUMLfornisceunarappresentazionedelcasod’uso Sistema Sistema Autenticazione Attore Utente UseCase <extends> chiede OTP Autenticazione forte M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni Amministratore 10 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 UML,modelloaoggetti:class diagrams • • • Nellaprogrammazioneobject oriented la“classe”èilconcettofondamentalesucuisi articolal’interoprogramma:descriverecorrettamenteleclassiconilorometodieattributie lerelazioniesistentitraoggettidiclassidiverseèdicrucialeimportanza Iclass diagram fornisconounavisionestaticadelleclassipresentiinunprogettosoftware object oriented Ilclass diagram dellinguaggioUMLrappresentaleclassicomeboxcontenentigliattributi dellaclasseecollegatefralorodalineecherappresentanoidiversitipidirelazioneesistenti traleclassi – lamolteplicità èuntipodiassociazioneincuisimostrailnumerodioggettiappartenentiaduna classecheinteragisceconilnumerodioggettidellaclasseassociata – l’ereditarietà mostraleproprietàchevengonocondivisetraclassepadreeclassefiglio UML,modellodinamico:sequence diagram • • • Undiagrammadisequenza(sequence diagram)descriveunoscenario,evidenziandola sequenza diazionisvoltedagliattorisulsistema(omessaggiscambiatitragliattorieil sistema) Unoscenario èunadeterminatasequenzadiazioniincuituttelesceltesonostategià effettuate;inpraticaneldiagrammanoncompaionoscelte,néflussialternativi Normalmentedaogniactivity diagram sonoderivatiunoopiùsequence diagram – adesempioseunactivity diagram descrivedueflussidiazionialternativi,senepossonoricavare duescenari,equindiduesequence diagram alternativi linea dellavita Studente Sistema ESSE3 Docente attore Pubblica esame Iscrizione esame Invia notifica Consulta iscrizioni Registra voti attivazione azionio messaggi Firma verbale Consulta libretto esami M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 11 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 UML,modellodinamico:activity diagram • • • Rappresentaipassidiunprocessoimplementatodaun sistemaperrealizzarelesuefunzionalità;èunformalismo simileaquellodeidiagrammidiflusso,mapuòessere impiegatoincontestidiminordettaglio,piùastratti InUML2.xilformalismodegliactivity diagram èstato decisioni ridisegnatoperseguirequellodelleRetidiPetri Inunactivity diagram sonoevidenziatiiseguentielementi: – azioni – decisioni(cheportanoadividereilprocessoinpiùflussi distinti) – puntidiseparazionedelprocessoopuntidiricongiungimento – puntidiavvioediconclusionedelprocesso – possonoessereancheevidenziatigliattoriresponsabilidiuna determinataazione(creandounaibridazioneconisequence diagram) attività cerca prodotto gestisci carrello utente registrato? no sì autenticaz. utente processi concorrenti registraz. utente acquisto gestione ordine consultaz. ordine consegna Altridiagrammi • BusinessProcess ModelNotation (BPMN) – rappresentazioneedescrizionediunprocessodibusiness(workflow) • DataFlowDiagram – rappresentazionedelflussodelleinformazionitraidiversimodulidiunsistemainformaticochesi scambianodatiattraversoareedimemoriacomuni,archivicondivisi,protocollidireteo meccanismidiinterprocess communication • StateDiagram – rappresentaglistatiincuipuòtrovarsiunsistemaeletransizionidistatolecite(o gestite/implementatedalsistemastesso)checonsentonoilpassaggiodaunostatoadunaltro M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 12 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedellaconfigurazione • • • Ilconfiguration managementsupportalagestioneedilcontrollodeglielementiche compongonounsistemasoftware Lagestioneditalielementi(configuration items)èaffidataadundatabase(repository di configurazione)incuisonocensitiglioggettisottopostiacontrollodiconfigurazione Nell'ambitodelconfiguration managementvengonogestitigliinput/outputdirettamenteo indirettamentelegatiallacostruzionediunprodottosoftware – Siarchivianoinmodocontrollatolevarieversionidelcodicesorgentesviluppato,idocumenti,i test,idatidiconfigurazione,ecc. • • Unadellefunzionisvoltedaunsistemadicontrollodellaconfigurazione(CMS, configuration managementsystem)èquelladicorrelaretraloroivarioggettiarchiviati relativamenteallediverseversionioaidiversibranch diunprodottosoftware Versione:èunsottoinsiemedeiconfiguration itemchedefiniscecompletamenteuna releasedelprodottosoftware; – possonocoesisterepiùversionisuccessivedellostessoprodotto(manutenzionecorrettivaed evolutivadiversioniprecedentiaquellacorrente,conmodifichechesonorecepitedalleversioni successive) – unostessoconfiguration itempuòesserepresenteinunaopiùversionidelprodotto • Branch:èunacopiadiunaversionedelprodotto,inmododaportareavantiversionidiverse eindipendentidelprodotto(lemodifichesuunbranch nonimpattanosuglialtri) Gestionedellaconfigurazione • UnprodottoCMSèunsoftwarechegestisceunarchiviodifileeoffreunprotocollodi comunicazionepereseguiredelleoperazionisulrepository delprodottosoftware – check out:siestraggonodalrepository iconfiguration itemeseneproduceunacopialocalesucui l’utente(programmatore)puòlavorare – update:siaggiornailprogettolocaleconeventualimodificheoccorsesuiconfiguration item presentisulrepository diprogetto – add,delete,move,copy:siaggiungeosimodificalaconfigurazionedelprogettoconelementi presentinellaconfigurazionelocale(nuovifile,eliminazionedifile,ecc.) – commit:sicaricasulrepository lacopialocaledelprogetto(odisingoliconfiguration item) – lock:sibloccasulrepositorylamodificaadunconfiguration itemcheèinlavorazionedapartediun utente(programmatore)sulpropriorepository locale • • • IlsoftwareCMSrilevaeventualiconflitti (es.:aggiornamentidiversidapartedidueutenti allostessoconfiguration item)eaiutagliutentidelgruppodilavoroagestirli IlsoftwareCMSadogniaggiornamentodiunconfiguration itemnecreaunanuova versione,mantenendoinarchiviolevecchieversioni(versioning) IlsoftwareCMSgestisceilcontrollodegliaccessidegliutentiairepositorydeidiversi prodottisoftware M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 13 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 Gestionedellaconfigurazione • Alcuniprodottisoftwarediconfiguration management – CVS,concurrent version system (opensource) – SVN,subversions,natocomeevoluzionediCVS(opensource) – GIT,realizzatodaLinusTorvalds perilcontrollodiconfigurazionedelkernel diLinux(opensource) – IBMRational ClearCase,componentedellasuiteditool diprogettazioneesvilupposoftwareIBM Rational (proprietario) – MicrosoftVisualSourceSafe,componentedellasuiteditool disvilupposoftwareMicrosoftVisual Studio(proprietario) SistemidiGestioneperlaQualità • Terminologia: – Prodotto: output diunprocessodilavorazione – Processodilavorazione: unprogetto perrealizzareunsistemainformatico,uninsiemediattività perrealizzareunprodotto,uninsiemediattivitàpererogareunservizio,ecc. – Requisiti: caratteristiche checisiaspettadebbaavereilprodotto – ProdottodiQualità: Prodotto cherispettainpienoairequisiti • SistemidiGestioneperlaQualità – Complessodiprocedure,regole estrumenti (tecniciedocumentali)dicuiun’organizzazionesidota pergestireilprocessoproduttivoinmodotaledarealizzareprodottidiqualità – Sibasanosualcuniprincipifondamentali: • DOCUMENTAZIONE:descrizioneesplicitadelleinformazioninecessarieperlarealizzazionedelprodotto • TRACCIABILITÀ:identificareconcertezzalostatodelprocesso,delleattivitàedellecomponentiin lavorazione • IDENTIFICAZIONE:possibilitàdiidentificareconcertezzaognielementocheentraafarpartedelprocesso produttivo,rendendoevidentilemodificheelostatodiaggiornamentodiciascunelemento • RIPRODUCIBILITÀ:possibilitàdiripetereunprocesso(èpossibileseèdocumentato) • MISURAZIONE:ogniattivitàdeveesserecaratterizzatadauninsiemediindicatoricheconsentanodi “misurarelaqualità” • Normativainternazionalechedefinisceirequisitidiunbuon sistemadigestioneperla qualità:UNIENISO9001:2000 (ultimarevisione:novembre2008) M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 14 UniversitàdegliStudiRomaTre- CorsodiLaureainMatematica a.a.2016/2017 SistemidiGestioneperlaQualità • UnSistemadiGestioneperlaQualitàcertificatosecondolanormaISO9001ècaratterizzato dauninsiemedidocumenti: – Politicaperlaqualità:documentoconcuiiltopmanagementdell’aziendadichiaralamotivazione adadottareilsistemaelelineeguidadialtolivelloperladefinizionedelsistema – Organigrammafunzionaleenominale:èildocumentoincuisidichiaralastrutturaorganizzativaei ruoli – Manualedellaqualità:documentochedescrivemacroscopicamenteiprocessipresenti nell’organizzazioneeiworkflowchedeterminanoicontributidellediversefigureprofessionali – Proceduregestionali:ogniprocessomacroscopicovienedescrittoinunaproceduracheevidenzia glistep eleresponsabilitàeindicainchemodoilprocessovienedocumentato(es.:processo selezionedelpersonale,processoacquisto,processoprogettazioneesvilupposoftware,ecc.) – Istruzionioperative:servonoperdescrivereindettagliospecificheoperazionisvoltenell’ambitodi unprocesso(es.:gestionedellacorrispondenzainentrataoinuscita,creazionediunnuovo ambientedisviluppoperunprogettosoftware,ecc.) – Modulistica:sonodocumentiutiliperle“registrazionidellaqualità”eperlarilevazionedegli indicatoridiperformance • IlsistemadigestioneperlaQualitàsiapplicaadogniprogettodisvilupposoftware • PerprogettiparticolarmenterilevantièpossibiledefinireunPianodellaQualità specifico perundeterminatoprogetto • Èimportantedefinireunacodifica univocaperidentificare idocumentiprodottinell’ambito delprogetto 1965– 2015:alcunemilestone degliultimi50annidiinformatica Alcunicomputerchenegliultimi50annihannosegnatodeipassiinavantisignificativinell’evoluzionedellatecnologiainformatica M.Liverani- DispensedelcorsoIN530- Sistemiperl'elaborazionedelleinformazioni 15