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