Professional Documents
Culture Documents
(308..Requisito:TC2003Teoradelacomputacin.9ITC).
Equivalencia:Notiene
======================================================
Intencindelcursoenelcontextogeneraldelplandeestudios
Esuncursodenivelavanzadoenelreadeingenieradesoftwareendondelos
alumnosaprendenavalorarlautilidaddelasherramientasformalesenIng.de
Software, as como a usar algunas tcnicas concretas y herramientas
computacionales para especificar propiedades de un sistema de software y
verificarlasformalmente.
Objetivogeneraldelcurso:
Alfinalizarestecursoelestudiantesercapazdeaplicarunametodologade
mtodosformalesparaeldesarrollodesoftware,especificarenunlenguajeformal
unproductodesoftware,especificarenunlenguajeformal(nonecesariamenteel
mismo)laspropiedadescrticasdediseodedichosoftware,yverificarqueste
cumplelaspropiedadesespecificadas.
Competenciasquedesarrollaelcurso:
Competenciasrelacionadasconconocimientodetareasoformasde
llevarlasacabo:
C1.Sercapazdeidentificaryjustificarlosescenariosdondelaaplicacindemtodos
formalesdesoftwarepuedesermsbenficadesdeelpuntodevistadelcostoy
beneficio.
C2.Sercapazdeencontrar,paraunsistemadesoftware,laspropiedadesexpresables
matemticamentequepuedentenermsimpactoencuantoalacalidad,
seguridadoutilidaddedichosistema.
C3.Sercapazdemodelarformalmentelascaractersticasypropiedadesquedebe
tenerunsistemadesoftware.
C4.Sercapazdeverificarformalmentequeunsistemadesoftwarecumplecon
propiedadespreviamenteestablecidas,conayudadeunaherramienta
computacional.
Competenciasrelacionadasconhabilidadesanalticasycreativas:
Especificacinformaldepropiedades
Identificacinysolucindeproblemas
Tomadedecisiones
Anlisisdeproblemas
Anlisisysntesisdeinformacin
Anlisisdelcostobeneficio
TCNICADIDCTICA:Aprendizajebasadoenproyectos
Elinstructordelcursodebeconfeccionarelcontenidotemtico,considerandoelmodelo
que adoptar para el desarrollo formal de software. El curso contempla el estudio
obligatoriodelaverificacindemodelos(modelchecking),quepuedecomplementarse
condeotratcnicamsrelacionadacondemostracindeteoremas(proofchecking).
Para especificar sistemas fijos y acotados, y analizar sus condiciones (modales)
temporales,sesugierequeelinstructorseleccioneunadelassiguientesherramientas(con
losmtodosasociados):
SMV,SymbolicModelChecking
SPIN,CommunicatingAutomata
CADP,ProcessAlgebras
DESIGN/CPN,ColouredPetriNets
Mientrasqueparaespecificarsistemasgenricos,familiasdesistemas,yanalizarsus
propiedades,sesugierequeelinstructorseleccioneunadelassiguientesherramientas
(conlosmtodosasociados):
Isabelle,HOL,PVS,etc.,Lgicasdeordenmayor
NuPRL,SystemF,etc.,Teoradetipos
Otter,Vampire,SPASS,etc.,Lgicadeprimerorden(conigualdad)
Alseleccionarestasherramientas,elinstructortieneelcompromisodecerrarelmdulo
2,estudiandoslolostemasrelacionados.
4.
1
TemasySubtemas
PanoramadeMtodosFormalesenIng.deSoftware
1.1 Quesunmtodoformal?
1.2 Algunasaplicacionesindustriales
1.3 Elpapeldelosmtodosformaleseningenieradesoftware
1.3.1 Procesosmsrigurosos
1.3.2 Desarrollodesoftwareusandomtodosformales
1.4 Limitacionesdelosmtodosformales
1.5 Unpanoramadelosmtodosformales
1.5.1 Especificacindecomportamiento(autmatas,lgebrade
procesos,lgicatemporal,etc.)
1.5.2 Especificacionesbasadasenteoradeconjuntos(notacin
Z,VDM,elmtodoB,etc.)
1.5.3 Especificacionesalgebraicas(tipos,tiposdedatos
abstractos,semntica)
1.5.4 Verificacindeprogramasmedianteaserciones(lgicade
Hoare,lgicadinmica)
2
NocionesBsicasyHerramientasMatemticas(elegirslolasnecesarias)
2.1 Revisindeconceptosmatemticos
2.1.1 Diagnsticodelagunasenconceptosmatemticos(Teora
deConjuntos,Relacionesyfunciones,Secuencias,Lgica
proposicional,Consecuencialgica,Algebrasymorfismos,
Induccinmatemtica).
2.1.2 Planindividualizadoderevisin.
2.2 Ramasdelalgica(Teorademodelos,Teoradedemostraciones,Teora
axiomticadeconjuntosyteoradetipos,Teoradelocomputable).
2.3 LgicaTemporal.
2.4 AplicacindelaLgicadeHoarealapruebadeprogramas.
2.4.1 RevisindelosconceptosdePrecondicionesy
postcondiciones.
2.4.2 ReglasdelalgicadeHoare.
2.4.3 Clculodeprecondicionesmsdbiles.
2.5 RecursividadyPuntosfijos.
2.6 Induccinmatemticabienfundada
2.6.1 Puntosfijos
EspecificacindeSistemasdeSoftwareydesuspropiedades
3.1 Enfoquesdeespecificacindeunsistema(comportamiento,estructura
(algebraico),etc.)
3.2 Descripcindesistemasmedianteautmatas,procesos,tipos,funciones,
relaciones,lenguajeimperativo,etc.)
3.3 Sintaxisdellenguajedeespecificacin
3.4 Semnticadellenguajedeespecificacin
3.5 Especificandoconlgicatemporal
3.5.1 Propiedadesdecalidaddealcance(reachability
properties)
3.5.1.1 Clculodelgrafodecalidaddealcance
3.5.2 Propiedadesdesalvedad(safetyproperties)
3.5.2.1 Definicin
3.5.2.2 Salvedadenlaprctica
3.5.2.3 Elmtododevariablesdehistoria
3.5.3 Propiedadesdevivacidad(livenessproperties)
3.5.3.1 Vivacidadenelmodelooenlapropiedad
3.5.3.2 Verificacinbajohiptesisdevivacidad
3.5.3.3 Vivacidadacotada
3.5.4 Propiedaddesininterbloqueos(deadlockfreeness)
3.5.4.1 Sininterbloqueosvssalvedad,vivacidad
3.5.4.2 Sininterbloqueosencombinacincon
abstraccin
3.5.5 Propiedadesdeequidad(fairnessproperties)
3.5.5.1 Equidadynodeterminacin
3.5.5.2 Propiedadesdeequidadehiptesisdeequidad
3.5.5.3 Equidadfuerteyequidaddbil
3.5.5.4 Equidadenelmodelooenlapropiedad
3.5.6 Mtodosdeabstraccin
3.5.6.1 Cundoesnecesariousarunmodelode
abstraccin
3.5.6.2 Abstraccinmedianteelaglutinamientode
estados
3.5.6.3 Abstraccinenlasvariables
3.5.6.4 Abstraccinporrestriccin
3.5.6.5 Qupuededemostrarseenelautmata
abstracto?
3.6 Especificandoconlgicasclsicas(ynoclsicas)
3.6.1 Correccin
3.6.2 Calidaddecobertura
3.6.3 Terminacin
3.6.4 Refinamiento
4
VerificacinformaldeSoftware
4.1 Verificacindepropiedadesmodalesytemporales
4.1.1 Qupuedehacerseconlaherramientaseleccionada?
4.1.2 Simulacin
4.1.3 Anlisis
4.1.4 Registrodedocumentacinexistenteycasosdeestudio
4.2 Verificacindepropiedadesdecorreccin,terminacin,etc.
4.2.1 Qupuedehacerseconlaherramientaseleccionada?
4.2.2 Sistemadeinferencia
4.2.3 Mtodosdeinferencia
Registrodedocumentacinexistenteycasosdeestudio
OBJETIVOSESPECIFICOSDEAPRENDIZAJE
1
PanoramadeMtodosFormalesenIng.deSoftware
Queelestudiantevalorelanecesidaddeherramientasformalesparael
desarrollodesoftware,eidentifiquelassituacionesenquelaverificacinformal
esespecialmenteimportante.
Queelestudianteadquieraunpanoramageneralyunataxonomadelos
distintostiposdemtodos(lgicos,descriptivos,operacionales,etc.)y
herramientasquesehanutilizadoparalaverificacinformaldesoftware,sus
respectivasventajasydebilidades,ascomosusaplicaciones.
NocionesBsicasyHerramientasMatemticas(elegirslolasnecesarias)
Queelestudianterepaseoadquieralasnocionesbsicasnecesariasparalos
mtodosquesevernluegoenel.
EspecificacindeSistemasdeSoftwareydesuspropiedades
Queelestudianteespecifiqueunsistemausandounlenguajeformal(autmatas,
lgebradeprocesos,lenguajesdeespecificacinalgebraicos,Z,etc.).
Queelestudianteconozcaypuedamanejarunambientecomputacional
especficoparaescribirespecificacionesformales.
Queelestudianteconozcalosdistintostiposdepropiedadesquepueden
requerirseacercadeunsoftware(viveza,calidaddealcance,propiedades
estructurales,condicionessiemprefalsas,salvedad,respuesta,precedencia,
dependientesdeldominiodelsistema,etc.).
Queelestudianteseacapazdeencontrar,enuncasoespecfico,laspropiedades
quesoncrticasyquedebenrespetarsedesdeeldiseohastalaimplementacin.
Queelestudianteseacapazdeexpresar,enunlenguajeformaldado,
propiedadesdeunsistemaexpresadasinformalmente.
Queelestudianteconozcaypuedamanejarunambientecomputacional
especficoparaexpresarconcretamentepropiedadesdeunsistema.
VerificacinformaldeSoftware
Queelestudianteconozcalasdistintasopcionesdeherramientasqueexisten
parahacerverificacinformaldesoftware,deacuerdoalenfoqueusadoenla
especificacindelsistemaydesuspropiedades.
Queelestudianteapliquealmenosdosherramientasexistentesparaverificar
formalmente,unadeellassiendoModelChecking(quedebemanejar
aceptablemente).
QueelestudianteconozcalasdistintasopcionesparaModelChecking,como:
simulacin(exploralosestadosalcanzadosporelsistema),bsquedaexhaustiva,
RunTimeResultChecking,generacindecontraejemplos,etc.
Queelestudianteseacapazdeutilizarlosmtodosdeverificacinformalde
softwareencasosespecficos,yconayudadeherramientascomputacionalesde
soporteadichosmtodos.
Metodologadelcurso:SesugierePOL,idealmenteencombinacinconotramateriaen
quesehagatambinundesarrollodesoftwarebasadoenmtodoscomoUML.
TIEMPOESTIMADODECADATEMA
1.PanoramadelosMtodosFormales(6horas)
2.NocionesBsicasyHerramientasMatemticas(6horas)
3.EspecificacindeSoftwareysuspropiedades(24horas)
4.VerificacinformaldeSoftware(12horas)
Total:48horas
POLITICASDEEVALUACIONSUGERIDAS
ExamenesParciales
30%
Tareas,leccionesaprendidas
10%
ExamenFinal
20%
40%
Bibliografa:
Understanding Formal Methods
by JeanFrancoisMonin, M.G.Hinchey (Translator)
Paperback: 276 pages
Publisher: Springer; 1 edition (January 17, 2003)
Language: English
ISBN: 1852332476
Consulta:
SystemsandSoftwareVerification:ModelCheckingTechniquesandTools
byB.Berard,M.Bidoit,A.Finkel,F.Laroussinie,A.Petit,L.Petrucci,P.Schnoebelen,
P.McKenzie(Translator)
Publisher:Springer;1edition(August9,2001)
Language:English
ISBN:3540415238
AutomatedTheoremProvinginSoftwareEngineering
byD.Loveland(Foreword),JohannM.Schumann
Hardcover:228pages
Publisher:Springer;1edition(June,2001)
Language:English
ISBN:3540679898
ModelChecking
EdmundM.Clarke,OrnaGrumberg,DoronA.Peled
TheMITPress,2000
ISBN0262032708