SlideShare uma empresa Scribd logo
1 de 45
Uso de métodos formales para desarrollar un sistema de información ATC Raúl Alonso Álvarez Roberto Bernárdez Vázquez Xabier Fernández López
Introducción El equipo Praxis utiliza usa métodos formales para ayudar el desarrollo de CDIS, que consiste en una gran pantalla de información dentro de un sistema ATC de apoyo del sistema.
CDIS Informa a los controladores de vuelos de llegada y salida. Condiciones meteorológicas. Estado del equipo en los aeropuertos. Otra información introducida por el personal. Información en tiempo real de su estado.
Equipo Trabajo
Requisitos
Desarrollo de CDIS 1989 definición de requisitos y la ejecución se produjo en  1992. El proyecto tiene 5 fase: Especificación del sistema. Diseño del software. Pruebas de código y unidad. Pruebas del sistema Pruebas de aceptación. Código y pruebas se hacen por separado en 2 equipos: Eq1:codoficación y pruebas de unidad Eq2:integración y pruebas del sistema de caja negra y pruebas de aceptación. Implementación incremental en 6 etapas del software.
Requisitos funcionales 3 técnicas: Análisis Entidad-Relación. Diagrama de flujo de datos persiguiendo un método de análisis estructurado en tiempo real, para la definición del proceso. VDM es un leguaje de especificación formal para la definición de operaciones de CDIS de manera precisa. Esta etapa es de uso parcial donde se incluyen las estructuras mas importantes y las operaciones más críticas.
Notaciones formales y semiformales. Primero piensan: diagrama de flujo para cada operación y especificación formal para procesos de más bajo nivel. Mal por 2 razones Descomponer una operación en niveles más bajos de diseño no especifica operaciones solo da un boceto. Especificación de procesos en flujos de datos no especifican claramente el diagrama  como un conjunto, porque el significado de los diagramas de flujo esta sin definir.  Se decide usar especificación formal en el nivel superior. Definen un estado que representa el sistema CDIS como un conjunto, y las operaciones individuales de VDM se corresponden con operaciones a nivel de usuario. Los estados VDM están relacionados como modelo E/R.  Es posible derivar del modelo E/R pero VDM es más rico y es mejor para sustituir algunas construcciones E/R por ser más simple y tener representaciones formales más directas
Tipos de especificaciones
Tipos de especificaciones El flujo de datos no es satisfactorio como requisito declarativo  debido a que : No aclara que hace la validación o que hacer en caso de fallo. La difusión de un mensaje como hace la pantalla es cosa de diseño que no interesa al usuario, y es prematuro suponer la implementación como una estrategia en la etapa de requisitos. Si se especifica los procesos en el diagrama, menos que el resultado de las especificaciones de bajo nivel no ayudan al usuario a entender el efecto del proceso de mensajes.
Especificación VDM Para escribir una especificación VDM de la operación. Primero modelaremos el estado de los diagramas entidad-relaciónalos VDM. VDM utiliza como notaciones la lógica usual y la teoría de conjuntos Y además…
Especificación VDM Y además usa las siguientes notaciones: estado: declaración de los componentes de estado inv: restricciones sobre el estado operaciones: operaciones en el estado ext: estado externo afectado por una operación post: poscondición definiendo el efecto de una operación data: valor de los datos antes de la operación
Versión simplificada del estado VDM Especificación de operaciones en VDM
Especificación VDM Mejoras utilizando VDM: representa la secuencia de aproximación directamente por una secuencia de vuelos relacionados con el complejo del aeropuerto principal esto expresa que, para un vuelo que está en la secuencia de aproximación para complejo del aeropuerto principal, esta debe estar encabezada por un aeropuerto asociado con ese complejo. Este hecho no se puede expresar en una notación entidad-relación.
Especificación VDM Conclusiones: Usamos VDM como una parte del análisis de requisitos porque creemos que su precisión ayuda a aclarar nuestra comprensión de los requisitos y los hace completos y no ambiguos Esta creencia se confirma en la práctica Durante el estudio respondemos un montón de preguntas, muchas de ellas son el resultado de tratar de formalizar ciertos requisitos, y eso nos proporciona una buena comprensión de lo que el sistema estaba destinado a hacer Sin embargo tiene varios problemas.
Problemas Este tipo de especificación funcional no puede distinguir entre los requisitos esenciales de los que son simplemente deseables. No puede representar los requisitos que expresan términos globales. Ej: que todas las operaciones sean reversibles Sólo los requisitos funcionales pueden ser capturadas con este tipo de especificación, la facilidad de uso, rendimiento, fiabilidad, y los aspectos de seguridad están fuera de su alcance
Especificación del sistema En el comienzo de la implementación, se decidió producir una especificación completa de CDIS que sirva de base para el diseño Gracias a nuestra experiencia en el estudio de requisitos, abandonamos el uso de diagramas de flujo de datos y basamos la especificación sobre todo en la notación formal.
Especificación del sistema Sin embargo, una especificación en su totalidad en VDM no habría sido adecuado por dos razones principales: VDM no proporciona ninguna ayuda real para especificar los detalles de la interfaz de usuario, uno de los aspectos más importantes del CDIS. La especificación VDM sólo se describen los aspectos secuenciales del comportamiento. CDIS procesa muchas entradas concurrentemente, y teníamos que saber qué operaciones pueden ocurrir  concurrentemente y la forma en que pueden interferir unas con otras.
Especificación del sistema Se divide la especificación del sistema en 3 partes:  Corespecification Userinterfacedefinitions Concurrencyspecification Las especificaciones constituyen tres puntos de vista diferentes del sistema
Especificación del sistema La especificación principal describe los datos gestionados por CDIS y todas las operaciones que podría realizar CDIS. Cada operación se ha especificado en un nivel semántico mediante la definición de sus entradas, salidas, y el efecto sobre el estado. Para cada operación en la especificación básica, se produjo la correspondiente definición de la interfaz de usuario La especificación de concurrencia mostró que procesos del mundo real podrían llevar a cabo las operaciones
Corespecification Estos módulos no son independientes y las operaciones típicas afectan el estado de varios módulos. Por ejemplo, ciertos errores en los enlaces externos causan que las comunicaciones con el Sistema de Espacio Aéreo Nacional se pierda; las porciones de la base de datos de llegadas por lo tanto dejan de ser válidos y producen cambios en las pantallas del  controlador. Para expresar claramente este tipo de comportamiento, necesitamos un mecanismo de modularización que nos permita escribir las operaciones que afectan al estado de varios módulos de forma natural.
Corespecification Debido a que CDIS tiene cerca de 150 operaciones de especificación de nivel, nos enfrentamos al problema de cómo estructurar la especificación en módulos entendibles. Los módulos de alto nivel están relacionados con las principales áreas de funcionalidad: llegadas, salidas, los aeropuertos, las pantallas y las páginas, las comunicaciones, y dirección de ingeniería.
Corespecification Se consideraron tres alternativas: VDM, que no tienen un mecanismo de modularización útil Z, que parecía ofrecer el tipo de estructuración que necesitábamos y VVSL, un lenguaje con una sintaxis similar a VDM y una estructura de módulos bien desarrollada, que proporcionan la mayor parte de las facilidades que necesitábamos
Corespecification ¿por qué elegimos VDM? Debido a que habíamos utilizado VDM durante el análisis de requerimientos. El manejo de errores en convenciones Z son torpes en comparación con los de VVSL.
Definiciones de interfaz de usuario Contienen dos tipos de información: Apariencia física de la interfaz Sintaxis de los diálogos de usuario Cada operación de la corespecificationtiene una especificación concreta en la interfaz de usuario Problema: El nivel de abstracción no es uniforme, depende de la complejidad e importancia de las operaciones
Concurrencyspecification Describe la concurrencia inherente al entorno CDIS, los procesos que podrían ejecutarse concurrentemente en el mundo real. Cada proceso fue definido en el lenguaje CSP. El alfabeto de cada proceso fue el conjunto de las operaciones VVSL disponibles para el Los procesos se representan por diagramas de flujo
DISEÑO Se dividió en 4 partes: Diseño funcional Proceso de diseño  Diseño de interfaz de usuario Diseño de infraestructura
DISEÑO La relación entre los distintos componentes de diseño produce la división: Del software en subsistemas Del esfuerzo entre los equipos de desarrollo Cada parte requiere distintas anotaciones
DISEÑO FUNCIONAL Diseño de los módulos de la aplicación Inicialmente se esperaba especificar los módulos con VVSL como mejora No se hizo por la dificultad de las notaciones y la dificultad de escribir las relaciones de refinamiento con VVSL
DISEÑO FUNCIONAL Diseño de los módulos de la aplicación Inicialmente se esperaba especificar los módulos con VVSL como mejora No se hizo por la dificultad de las notaciones y la dificultad de escribir las relaciones de refinamiento con VVSL
DISEÑO FUNCIONAL Problemas: Muchos estados del CDIS se ven afectados La especificación de una operación de usuario se define como un conjunto de transacciones entre operaciones de otros módulos Abandono de relación formal entre especificación y diseño
PROCESO DE DISEÑO Identificación de procesos y mecanismos de comunicación e intercambio de datos Documentación con diagramas de flujo Para diagramas de proceso de diseño se usan autómatas de estados finitos
DISEÑO DE INTERFAZ DE USUARIO Derivada de interfaz de usuario y otros módulos de servicios de la aplicación Se definen mensajes y respuestas de cada proceso
INFRAESTRUCTURA Constituida por software LAN Requisitos muy estrictos Definidos con VVSL
Problemas: Comportamiento dinámico de protocolos LAN y relaciones entre extremos difíciles de capturar Se necesitó usar notación que soportase concurrencia.(Sistema de Cálculo de Comunicaciones, CCS)
RESULTADOS Problemas con nivel de formalidad: Muy formal: la especificación formal puede ser tan complicada como el código en sí mismo Poco formal: desarrolladores sin información suficiente de las definiciones de la operaciones
Causas de fallos puede deberse a incorrecta relación entre especificación y diseño Uso de métodos formales mejora trazabilidad
Coste de no realizar una prueba = a la probabilidad de que exista un error que sólo se detecta con la prueba   + coste del error Si coste de pruebas es menor que el coste de no realizarlas entonces estarán justificadas
PUNTO DE VISTA DEL CLIENTE Ventajas de uso de métodos formales en especificación del sistema: Comprensible Precisa El CAA podía ver el nivel de capacidad del CDIS en cualquier momento
Desventajas de uso de métodos formales: Equipo de CAA tenían que interpretar la especificación para el resto del personal Especificación de interfaz de usuario menos precisa y completa que la del núcleo Especificaciones poco claras en determinados puntos
CONCLUSIONES Especificación formal debe ir acompaña de información explicativa (texto, diagramas, anotaciones…) Interfaz de usuario debe ser más precisa y completa Uso de métodos formales ahorró costes, no esfuerzo La fase de especificación se ha realizado correctamente. Se define la funcionalidad CDIS con precisión y se proporciona una base sólida para el proyecto.
Fallos insignificantes relacionados con los problemas de especificación  Permite construir sistema correcto sin coste extra No práctico pero sí beneficioso en proyectos de gran escala Escribir la especificación fue un ejercicio útil en sí mismo
La especificación fue base para el diseño, implementación y pruebas Se utilizó para las pruebas de caja negra Sirvió de base para la documentación. Nos ha ayudado a aclarar los requisitos de forma precisa. Gracias a la formalidad de la notación.
Ingenieros deben preguntarse: NO si deben usar método formales sino CÓMO beneficiarse de estos métodos como parte de un completo enfoque de ingeniería del software

Mais conteúdo relacionado

Destaque

Calidadexpo
CalidadexpoCalidadexpo
Calidadexpoyolanda
 
Towards an Agile Foundation for the Creation and Enactment of Software Engine...
Towards an Agile Foundation for the Creation and Enactment of Software Engine...Towards an Agile Foundation for the Creation and Enactment of Software Engine...
Towards an Agile Foundation for the Creation and Enactment of Software Engine...Brian Elvesæter
 
Scrum Con Exito
Scrum Con ExitoScrum Con Exito
Scrum Con Exitojsalvata
 
Formalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid MuñozFormalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid Muñoz2008PA2Info3
 
Cessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos AgilesCessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos AgilesDiego Ferreyra
 
Enseñanza en contextos no formales
Enseñanza en contextos no formalesEnseñanza en contextos no formales
Enseñanza en contextos no formalesLaura Gonzalez
 
Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)Aspenware
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
CÍRCULO DE VIENA - NEOPOSITIVISMO
CÍRCULO DE VIENA - NEOPOSITIVISMOCÍRCULO DE VIENA - NEOPOSITIVISMO
CÍRCULO DE VIENA - NEOPOSITIVISMOCastercantha
 
LóGica MatemáTica
LóGica MatemáTicaLóGica MatemáTica
LóGica MatemáTicageartu
 
Metodologías SCRUM + PMBOK
Metodologías SCRUM + PMBOKMetodologías SCRUM + PMBOK
Metodologías SCRUM + PMBOKitproiectus
 
Metodo agil scrum
Metodo agil scrumMetodo agil scrum
Metodo agil scrumtestlucero
 
VSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorVSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorRodríguez Saúl
 

Destaque (20)

Calidadexpo
CalidadexpoCalidadexpo
Calidadexpo
 
Towards an Agile Foundation for the Creation and Enactment of Software Engine...
Towards an Agile Foundation for the Creation and Enactment of Software Engine...Towards an Agile Foundation for the Creation and Enactment of Software Engine...
Towards an Agile Foundation for the Creation and Enactment of Software Engine...
 
SEMAT
SEMATSEMAT
SEMAT
 
Scrum Con Exito
Scrum Con ExitoScrum Con Exito
Scrum Con Exito
 
Formalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid MuñozFormalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid Muñoz
 
Cessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos AgilesCessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos Agiles
 
Wuep un proceso de evaluacion de usabilidad web ..
Wuep   un proceso de evaluacion de usabilidad web ..Wuep   un proceso de evaluacion de usabilidad web ..
Wuep un proceso de evaluacion de usabilidad web ..
 
Enseñanza en contextos no formales
Enseñanza en contextos no formalesEnseñanza en contextos no formales
Enseñanza en contextos no formales
 
Escalabilidad con SCRUM
Escalabilidad con SCRUMEscalabilidad con SCRUM
Escalabilidad con SCRUM
 
Metodologias formales
Metodologias formalesMetodologias formales
Metodologias formales
 
SCRUM
SCRUMSCRUM
SCRUM
 
Metodos formales
Metodos formalesMetodos formales
Metodos formales
 
Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)Implementing Scrum with Microsoft Team Foundation Service (TFS)
Implementing Scrum with Microsoft Team Foundation Service (TFS)
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
CÍRCULO DE VIENA - NEOPOSITIVISMO
CÍRCULO DE VIENA - NEOPOSITIVISMOCÍRCULO DE VIENA - NEOPOSITIVISMO
CÍRCULO DE VIENA - NEOPOSITIVISMO
 
LóGica MatemáTica
LóGica MatemáTicaLóGica MatemáTica
LóGica MatemáTica
 
Scrum paso a paso
Scrum paso a pasoScrum paso a paso
Scrum paso a paso
 
Metodologías SCRUM + PMBOK
Metodologías SCRUM + PMBOKMetodologías SCRUM + PMBOK
Metodologías SCRUM + PMBOK
 
Metodo agil scrum
Metodo agil scrumMetodo agil scrum
Metodo agil scrum
 
VSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valorVSM (value Stream Map) Mapeo de valor
VSM (value Stream Map) Mapeo de valor
 

Semelhante a Presentacion

C:\fakepath\diseño orientado a flujo de datos
C:\fakepath\diseño orientado a  flujo de datosC:\fakepath\diseño orientado a  flujo de datos
C:\fakepath\diseño orientado a flujo de datosAbel Rodriguez Carreon
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capashome
 
Diseño orientado al fd
Diseño orientado al fdDiseño orientado al fd
Diseño orientado al fdYazmin Ibarra
 
SISTEMA DE BASE DE DATOS
SISTEMA DE BASE DE DATOSSISTEMA DE BASE DE DATOS
SISTEMA DE BASE DE DATOSNatalia Perez
 
Diseño orientado a flujo de datos
Diseño orientado a flujo de datosDiseño orientado a flujo de datos
Diseño orientado a flujo de datosOlaya Molina
 
Diseño orientado al flujo de datos
Diseño orientado al flujo de datosDiseño orientado al flujo de datos
Diseño orientado al flujo de datosYazmin Ibarra
 
Diseño orientado a flujo de datos deahesy
Diseño orientado a flujo de datos deahesyDiseño orientado a flujo de datos deahesy
Diseño orientado a flujo de datos deahesydeahesy najera garcia
 
Cliente servidor mv
Cliente servidor mvCliente servidor mv
Cliente servidor mvMACARENAV10
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NETV Sanchez
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en CapasHelenSaravia
 
Diseño de aplicaciones
Diseño de aplicacionesDiseño de aplicaciones
Diseño de aplicacionesUTN
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia interssuser948499
 
WCF for Dummies (Parte I)
WCF for Dummies (Parte I)WCF for Dummies (Parte I)
WCF for Dummies (Parte I)Will.i.am
 
Taller en clases 1-blob
Taller en clases 1-blobTaller en clases 1-blob
Taller en clases 1-blobluisrapalino
 

Semelhante a Presentacion (20)

Trabajo
TrabajoTrabajo
Trabajo
 
Diseño orientado al flujo de datos
Diseño orientado al flujo de datosDiseño orientado al flujo de datos
Diseño orientado al flujo de datos
 
C:\fakepath\diseño orientado a flujo de datos
C:\fakepath\diseño orientado a  flujo de datosC:\fakepath\diseño orientado a  flujo de datos
C:\fakepath\diseño orientado a flujo de datos
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capas
 
Diseño orientado al fd
Diseño orientado al fdDiseño orientado al fd
Diseño orientado al fd
 
SISTEMA DE BASE DE DATOS
SISTEMA DE BASE DE DATOSSISTEMA DE BASE DE DATOS
SISTEMA DE BASE DE DATOS
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Diseño orientado a flujo de datos
Diseño orientado a flujo de datosDiseño orientado a flujo de datos
Diseño orientado a flujo de datos
 
Diseño orientado al flujo de datos
Diseño orientado al flujo de datosDiseño orientado al flujo de datos
Diseño orientado al flujo de datos
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
11271320110505163923 (1)
11271320110505163923 (1)11271320110505163923 (1)
11271320110505163923 (1)
 
Diseño orientado a flujo de datos deahesy
Diseño orientado a flujo de datos deahesyDiseño orientado a flujo de datos deahesy
Diseño orientado a flujo de datos deahesy
 
Cliente servidor mv
Cliente servidor mvCliente servidor mv
Cliente servidor mv
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en Capas
 
Diseño de aplicaciones
Diseño de aplicacionesDiseño de aplicaciones
Diseño de aplicaciones
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
 
WCF for Dummies (Parte I)
WCF for Dummies (Parte I)WCF for Dummies (Parte I)
WCF for Dummies (Parte I)
 
Taller en clases 1-blob
Taller en clases 1-blobTaller en clases 1-blob
Taller en clases 1-blob
 

Presentacion

  • 1. Uso de métodos formales para desarrollar un sistema de información ATC Raúl Alonso Álvarez Roberto Bernárdez Vázquez Xabier Fernández López
  • 2. Introducción El equipo Praxis utiliza usa métodos formales para ayudar el desarrollo de CDIS, que consiste en una gran pantalla de información dentro de un sistema ATC de apoyo del sistema.
  • 3. CDIS Informa a los controladores de vuelos de llegada y salida. Condiciones meteorológicas. Estado del equipo en los aeropuertos. Otra información introducida por el personal. Información en tiempo real de su estado.
  • 6. Desarrollo de CDIS 1989 definición de requisitos y la ejecución se produjo en 1992. El proyecto tiene 5 fase: Especificación del sistema. Diseño del software. Pruebas de código y unidad. Pruebas del sistema Pruebas de aceptación. Código y pruebas se hacen por separado en 2 equipos: Eq1:codoficación y pruebas de unidad Eq2:integración y pruebas del sistema de caja negra y pruebas de aceptación. Implementación incremental en 6 etapas del software.
  • 7. Requisitos funcionales 3 técnicas: Análisis Entidad-Relación. Diagrama de flujo de datos persiguiendo un método de análisis estructurado en tiempo real, para la definición del proceso. VDM es un leguaje de especificación formal para la definición de operaciones de CDIS de manera precisa. Esta etapa es de uso parcial donde se incluyen las estructuras mas importantes y las operaciones más críticas.
  • 8. Notaciones formales y semiformales. Primero piensan: diagrama de flujo para cada operación y especificación formal para procesos de más bajo nivel. Mal por 2 razones Descomponer una operación en niveles más bajos de diseño no especifica operaciones solo da un boceto. Especificación de procesos en flujos de datos no especifican claramente el diagrama como un conjunto, porque el significado de los diagramas de flujo esta sin definir. Se decide usar especificación formal en el nivel superior. Definen un estado que representa el sistema CDIS como un conjunto, y las operaciones individuales de VDM se corresponden con operaciones a nivel de usuario. Los estados VDM están relacionados como modelo E/R. Es posible derivar del modelo E/R pero VDM es más rico y es mejor para sustituir algunas construcciones E/R por ser más simple y tener representaciones formales más directas
  • 10. Tipos de especificaciones El flujo de datos no es satisfactorio como requisito declarativo debido a que : No aclara que hace la validación o que hacer en caso de fallo. La difusión de un mensaje como hace la pantalla es cosa de diseño que no interesa al usuario, y es prematuro suponer la implementación como una estrategia en la etapa de requisitos. Si se especifica los procesos en el diagrama, menos que el resultado de las especificaciones de bajo nivel no ayudan al usuario a entender el efecto del proceso de mensajes.
  • 11. Especificación VDM Para escribir una especificación VDM de la operación. Primero modelaremos el estado de los diagramas entidad-relaciónalos VDM. VDM utiliza como notaciones la lógica usual y la teoría de conjuntos Y además…
  • 12. Especificación VDM Y además usa las siguientes notaciones: estado: declaración de los componentes de estado inv: restricciones sobre el estado operaciones: operaciones en el estado ext: estado externo afectado por una operación post: poscondición definiendo el efecto de una operación data: valor de los datos antes de la operación
  • 13. Versión simplificada del estado VDM Especificación de operaciones en VDM
  • 14. Especificación VDM Mejoras utilizando VDM: representa la secuencia de aproximación directamente por una secuencia de vuelos relacionados con el complejo del aeropuerto principal esto expresa que, para un vuelo que está en la secuencia de aproximación para complejo del aeropuerto principal, esta debe estar encabezada por un aeropuerto asociado con ese complejo. Este hecho no se puede expresar en una notación entidad-relación.
  • 15. Especificación VDM Conclusiones: Usamos VDM como una parte del análisis de requisitos porque creemos que su precisión ayuda a aclarar nuestra comprensión de los requisitos y los hace completos y no ambiguos Esta creencia se confirma en la práctica Durante el estudio respondemos un montón de preguntas, muchas de ellas son el resultado de tratar de formalizar ciertos requisitos, y eso nos proporciona una buena comprensión de lo que el sistema estaba destinado a hacer Sin embargo tiene varios problemas.
  • 16. Problemas Este tipo de especificación funcional no puede distinguir entre los requisitos esenciales de los que son simplemente deseables. No puede representar los requisitos que expresan términos globales. Ej: que todas las operaciones sean reversibles Sólo los requisitos funcionales pueden ser capturadas con este tipo de especificación, la facilidad de uso, rendimiento, fiabilidad, y los aspectos de seguridad están fuera de su alcance
  • 17. Especificación del sistema En el comienzo de la implementación, se decidió producir una especificación completa de CDIS que sirva de base para el diseño Gracias a nuestra experiencia en el estudio de requisitos, abandonamos el uso de diagramas de flujo de datos y basamos la especificación sobre todo en la notación formal.
  • 18. Especificación del sistema Sin embargo, una especificación en su totalidad en VDM no habría sido adecuado por dos razones principales: VDM no proporciona ninguna ayuda real para especificar los detalles de la interfaz de usuario, uno de los aspectos más importantes del CDIS. La especificación VDM sólo se describen los aspectos secuenciales del comportamiento. CDIS procesa muchas entradas concurrentemente, y teníamos que saber qué operaciones pueden ocurrir concurrentemente y la forma en que pueden interferir unas con otras.
  • 19. Especificación del sistema Se divide la especificación del sistema en 3 partes: Corespecification Userinterfacedefinitions Concurrencyspecification Las especificaciones constituyen tres puntos de vista diferentes del sistema
  • 20.
  • 21. Especificación del sistema La especificación principal describe los datos gestionados por CDIS y todas las operaciones que podría realizar CDIS. Cada operación se ha especificado en un nivel semántico mediante la definición de sus entradas, salidas, y el efecto sobre el estado. Para cada operación en la especificación básica, se produjo la correspondiente definición de la interfaz de usuario La especificación de concurrencia mostró que procesos del mundo real podrían llevar a cabo las operaciones
  • 22. Corespecification Estos módulos no son independientes y las operaciones típicas afectan el estado de varios módulos. Por ejemplo, ciertos errores en los enlaces externos causan que las comunicaciones con el Sistema de Espacio Aéreo Nacional se pierda; las porciones de la base de datos de llegadas por lo tanto dejan de ser válidos y producen cambios en las pantallas del controlador. Para expresar claramente este tipo de comportamiento, necesitamos un mecanismo de modularización que nos permita escribir las operaciones que afectan al estado de varios módulos de forma natural.
  • 23. Corespecification Debido a que CDIS tiene cerca de 150 operaciones de especificación de nivel, nos enfrentamos al problema de cómo estructurar la especificación en módulos entendibles. Los módulos de alto nivel están relacionados con las principales áreas de funcionalidad: llegadas, salidas, los aeropuertos, las pantallas y las páginas, las comunicaciones, y dirección de ingeniería.
  • 24. Corespecification Se consideraron tres alternativas: VDM, que no tienen un mecanismo de modularización útil Z, que parecía ofrecer el tipo de estructuración que necesitábamos y VVSL, un lenguaje con una sintaxis similar a VDM y una estructura de módulos bien desarrollada, que proporcionan la mayor parte de las facilidades que necesitábamos
  • 25. Corespecification ¿por qué elegimos VDM? Debido a que habíamos utilizado VDM durante el análisis de requerimientos. El manejo de errores en convenciones Z son torpes en comparación con los de VVSL.
  • 26. Definiciones de interfaz de usuario Contienen dos tipos de información: Apariencia física de la interfaz Sintaxis de los diálogos de usuario Cada operación de la corespecificationtiene una especificación concreta en la interfaz de usuario Problema: El nivel de abstracción no es uniforme, depende de la complejidad e importancia de las operaciones
  • 27. Concurrencyspecification Describe la concurrencia inherente al entorno CDIS, los procesos que podrían ejecutarse concurrentemente en el mundo real. Cada proceso fue definido en el lenguaje CSP. El alfabeto de cada proceso fue el conjunto de las operaciones VVSL disponibles para el Los procesos se representan por diagramas de flujo
  • 28. DISEÑO Se dividió en 4 partes: Diseño funcional Proceso de diseño Diseño de interfaz de usuario Diseño de infraestructura
  • 29. DISEÑO La relación entre los distintos componentes de diseño produce la división: Del software en subsistemas Del esfuerzo entre los equipos de desarrollo Cada parte requiere distintas anotaciones
  • 30. DISEÑO FUNCIONAL Diseño de los módulos de la aplicación Inicialmente se esperaba especificar los módulos con VVSL como mejora No se hizo por la dificultad de las notaciones y la dificultad de escribir las relaciones de refinamiento con VVSL
  • 31. DISEÑO FUNCIONAL Diseño de los módulos de la aplicación Inicialmente se esperaba especificar los módulos con VVSL como mejora No se hizo por la dificultad de las notaciones y la dificultad de escribir las relaciones de refinamiento con VVSL
  • 32. DISEÑO FUNCIONAL Problemas: Muchos estados del CDIS se ven afectados La especificación de una operación de usuario se define como un conjunto de transacciones entre operaciones de otros módulos Abandono de relación formal entre especificación y diseño
  • 33. PROCESO DE DISEÑO Identificación de procesos y mecanismos de comunicación e intercambio de datos Documentación con diagramas de flujo Para diagramas de proceso de diseño se usan autómatas de estados finitos
  • 34. DISEÑO DE INTERFAZ DE USUARIO Derivada de interfaz de usuario y otros módulos de servicios de la aplicación Se definen mensajes y respuestas de cada proceso
  • 35. INFRAESTRUCTURA Constituida por software LAN Requisitos muy estrictos Definidos con VVSL
  • 36. Problemas: Comportamiento dinámico de protocolos LAN y relaciones entre extremos difíciles de capturar Se necesitó usar notación que soportase concurrencia.(Sistema de Cálculo de Comunicaciones, CCS)
  • 37. RESULTADOS Problemas con nivel de formalidad: Muy formal: la especificación formal puede ser tan complicada como el código en sí mismo Poco formal: desarrolladores sin información suficiente de las definiciones de la operaciones
  • 38. Causas de fallos puede deberse a incorrecta relación entre especificación y diseño Uso de métodos formales mejora trazabilidad
  • 39. Coste de no realizar una prueba = a la probabilidad de que exista un error que sólo se detecta con la prueba + coste del error Si coste de pruebas es menor que el coste de no realizarlas entonces estarán justificadas
  • 40. PUNTO DE VISTA DEL CLIENTE Ventajas de uso de métodos formales en especificación del sistema: Comprensible Precisa El CAA podía ver el nivel de capacidad del CDIS en cualquier momento
  • 41. Desventajas de uso de métodos formales: Equipo de CAA tenían que interpretar la especificación para el resto del personal Especificación de interfaz de usuario menos precisa y completa que la del núcleo Especificaciones poco claras en determinados puntos
  • 42. CONCLUSIONES Especificación formal debe ir acompaña de información explicativa (texto, diagramas, anotaciones…) Interfaz de usuario debe ser más precisa y completa Uso de métodos formales ahorró costes, no esfuerzo La fase de especificación se ha realizado correctamente. Se define la funcionalidad CDIS con precisión y se proporciona una base sólida para el proyecto.
  • 43. Fallos insignificantes relacionados con los problemas de especificación Permite construir sistema correcto sin coste extra No práctico pero sí beneficioso en proyectos de gran escala Escribir la especificación fue un ejercicio útil en sí mismo
  • 44. La especificación fue base para el diseño, implementación y pruebas Se utilizó para las pruebas de caja negra Sirvió de base para la documentación. Nos ha ayudado a aclarar los requisitos de forma precisa. Gracias a la formalidad de la notación.
  • 45. Ingenieros deben preguntarse: NO si deben usar método formales sino CÓMO beneficiarse de estos métodos como parte de un completo enfoque de ingeniería del software