Está en la página 1de 9

TC3005.MtodosFormalesdeIngenieradeSoftware.

(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%

Desarrollo del Proyecto de aplicacin del mtodo


formal

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

The Spin Model checker, primer and reference manual


Gerard J. Holzmann
Addison Wesley, 2004
ISBN0321228626
TheWayofZ:Practicalprogrammingwithformalmethods
JonathanJacky
OxfordUniversityPress
Adicionalmenteincluirsematerialbibliogrficopropiodelasherramientasseleccionadas
porelprofesor.