Universidad De Oviedo Trabajo de Investigación Junio 2004

1 Universidad De Oviedo Trabajo de Investigación Junio 20...
Author: Milagros Ojeda Navarro
0 downloads 2 Views

1 Universidad De Oviedo Trabajo de Investigación Junio 2004 Desarrollo de una Metodología para un Nuevo Paradigma de Desarrollo de Software Departamento de Informática Autor Daniel FERNÁNDEZ LANVIN Director Aquilino A. JUAN FUENTE

2 Índice … Universidad De Oviedo IntroducciónProgramación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Departamento de Informática Familias metodológicas Herramientas CASE Líneas de Investigación

3 ¿Porqué otra metodología más?INTRODUCCIÓN ¿Porqué otra metodología más? Principalmente, aparición del paradigma POC Nuevo paradigma conlleva nuevas necesidades. Necesaria una adaptación de los procesos de la ingeniería del software. Una adaptación es momento adecuado de reflexión: ¿Funcionan las metodologías de desarrollo de software? ¿Cuáles son los problemas? ¿Qué soluciones se han propuesto? ¿Qué estamos haciendo mal? ¿Qué caminos hay que seguir? Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

4 ¿Líneas de continuación?INTRODUCCIÓN Metodología aplicada Pasos Seguidos: Estudio del paradigma POC Anatomía de lenguajes de modelado y metodologías de desarrollo. Clasificación. Estudio de las metodologías más representativas de cada familia Análisis de la tecnología CASE ¿Líneas de continuación? Siempre desde un enfoque próximo a la OO. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

5 Programación Orientada a ConjuntosIntroducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

6 Solucionar los problemas evidenciados por la orientación a objetos.PROGRAMACIÓN ORIENTADA A CONJUNTOS Introducción Actualmente en desarrollo por el OOTLAB (Object Oriented Technology Laboratory) Evolución de la Orientación a Objetos Aproximación a SBCs Programación Lógica Motivación de la iniciativa, Solucionar los problemas evidenciados por la orientación a objetos. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

7 Objetivos El Lenguaje Venn PROGRAMACIÓN ORIENTADA A CONJUNTOSAproximar la implementación al análisis Alejar al programador de detalles y tareas técnicas que pueden ser obviadas o resueltas. Flexibilizar la gestión del modelo de negocio de los sistemas orientados a objetos. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado El Lenguaje Venn Metodologías de desarrollo Prototipo de implementación de la POC En desarrollo por el OOTLAB Evoluciona la orientación a objetos Familias Metodológicas Herramientas CASE Líneas de Investigación

8 Características diferenciadoras de VennPROGRAMACIÓN ORIENTADA A CONJUNTOS Características diferenciadoras de Venn Venn parte de la OO. Se distancia en: Tipificación de los datos Métodos disociados Aritmética de conjuntos Tratamiento de contextos Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

9 Los objetos contienen sólo atributosPROGRAMACIÓN ORIENTADA A CONJUNTOS Tipificación de datos En POO los miembros de un objeto viene determinado por la clase a la que pertenece. En POC los miembros de un objeto en un momento dado se determinan por el conjunto al que pertenece en ese momento. Justificación: Ligar métodos a clases en tiempo de diseño es inflexible. En Venn no existe conjunto estático y limitado de métodos ligados a una clase Los objetos contienen sólo atributos Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

10 Tipificación de datos PROGRAMACIÓN ORIENTADA A CONJUNTOSLa pertenencia de un objeto a un conjunto se asocia con su estado. La existencia de determinados atributos puede estar ligada al estado, careciendo de razón de ser en estados distintos. Solución en POO –> Superconjunto de atributos En POO sólo se puede controlar el uso de atributos por código -> Engorroso y difícil de mantener. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

11 Métodos independientesPROGRAMACIÓN ORIENTADA A CONJUNTOS Métodos independientes Los métodos no se asocian a las clases Tratamiento similar a los SBCs (Ej, Kappa) y programación declarativa: matching de reglas. Nombre_Método( Conjunto_A, conjunto_B, …) Ejemplo Aviones: Aterriza_Avión( Avión_en_vuelo ); Sobrecarga de métodos. Aterriza_Avión( Avión_harrier_vuelo ); Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

12 Aritmética de ConjuntosPROGRAMACIÓN ORIENTADA A CONJUNTOS Aritmética de Conjuntos Es posible emplear operaciones de aritmética de conjuntos al invocar métodos en Venn Unión Intersección Negación Etc. Ejemplo: Nombre_método( Conjunto_A + Conjunto_B ) Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

13 Tratamiento de ContextosPROGRAMACIÓN ORIENTADA A CONJUNTOS Tratamiento de Contextos Definen ámbitos que limitan el alcance de una modificación de comportamiento. Permiten limitar el alcance de modificaciones de comportamiento de métodos. Establecen una modificación temporal de la implementación de un método. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

14 ¿Modelado del objeto avión?PROGRAMACIÓN ORIENTADA A CONJUNTOS Ejemplo de aplicación: Modelado de un sistema de control de vuelo y acercamiento de aviones para aeropuertos. Introducción Programación Orientada a Conjuntos Control de los aviones En vuelo dentro del área de control del aeropuerto En pista ¿Modelado del objeto avión? Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

15 Solución en POO PROGRAMACIÓN ORIENTADA A CONJUNTOS Clase AviónAtributos: Los necesarios para el avión en vuelo, y los necesarios para el avión en tierra. Métodos: Idem. Introducción Programación Orientada a Conjuntos Inconvenientes: Lenguajes de Modelado Hay atributos y métodos que pierden sentido dependiendo del estado. Ej, Altitud de avión en tierra Es necesario controlar por código que no se invoquen ciertos métodos en determinados estados. Ej: Guardar tren de aterrizaje en tierra Abrir puertas en vuelo. Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

16 Solución en POC PROGRAMACIÓN ORIENTADA A CONJUNTOS ConjuntosAvión en vuelo Atributos: Los necesarios para el avión en vuelo Métodos: Idem. Ej. GuardarTrenAterrizaje(Avion_en_vuelo) Avión en tierra Atributos: Los necesarios para el avión en tierra AbrirPuertas(Avion_en_tierra) Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

17 Lenguajes de Modelado Introducción Programación Orientada a ConjuntosMetodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

18 Definición NOTACIONES Y LENGUAJES DE MODELADO Suelen estar ligados a …Notación: Cualquiera de los diagramas que representan los distintos modelos que definen un sistema software. Lenguaje de Modelado: Conjunto de notaciones. No todos los lenguajes de modelado cubren los mismos aspectos del sistema. Suelen estar ligados a … Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Metodologías de desarrollo Herramientas CASE Paradigmas Líneas de Investigación

19 Alcance NOTACIONES Y LENGUAJES DE MODELADODistintos lenguajes de modelado cubren distintos aspectos del sistema. Cada vista del sistema : modelo del sistema. Dos tipos: Introducción Programación Orientada a Conjuntos Modelos estáticos: Aspectos estructurales y arquitectónicos del sistema Modelos dinámicos: Muestran la secuencia de eventos y mensajes susceptibles de aparecer en el ciclo de vida del sistema. Ligados a la escala de tiempo. Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

20 Modelos estáticos Modelos Dinámicos NOTACIONES Y LENGUAJES DE MODELADOModelos de repositorio de datos Modelos de clases Modelos de instancias Modelos de paquetes Modelos de componentes Modelos de despliegue. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Modelos Dinámicos Familias Metodológicas Modelos funcionales Modelos de comportamiento interno del sistema. Herramientas CASE Líneas de Investigación

21 Lenguaje de Modelado UMLNOTACIONES Y LENGUAJES DE MODELADO Lenguaje de Modelado UML Estándar creado por Rational y tutelado por OMG Versión 2.0. Es independiente de metodología, aunque concebido como soporte para RUP (Rational Unified Process). Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

22 Metodologías de DesarrolloIntroducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

23 Definición METODOLOGÍAS DE DESARROLLOMetodología o proceso de desarrollo. Definición de Rumbaugh: … proceso para la producción organizada del software, empleando una colección de técnicas predefinidas y convenciones en las notaciones. … se presenta normalmente como una serie de pasos, con técnicas y notaciones asociadas a cada paso... … Los pasos de la producción del software se organizan normalmente en un ciclo de vida consistente en varias fases de desarrollo Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

24 Modelos de proceso METODOLOGÍAS DE DESARROLLORasgo principal de una metodología. Define el ciclo de vida del proyecto: Modelo Clásico o en Cascada. Desarrollo Evolutivo o Prototipado. Espiral. Desarrollo Incremental. Desarrollo formal de sistemas. Codificar y Corregir. Modelos de Proceso Híbridos. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

25 Alcance METODOLOGÍAS DE DESARROLLOEl proceso de desarrollo de un proyecto se divide en actividades. Cada método de una metodología soluciona una actividad. No todas las metodologías cubren las mismas actividades. Tipos: Actividades técnicas o de desarrollo Actividades de administración y gestión del proceso de desarrollo. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

26 METODOLOGÍAS DE DESARROLLOActividades Técnicas o de desarrollo Manejan la complejidad mediante la construcción de modelos del sistema. Obtención de requisitos Análisis Diseño del sistema Diseño detallado Implementación Pruebas Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

27 METODOLOGÍAS DE DESARROLLOActividades de administración y gestión del proceso de desarrollo Orientadas a la gestión, planificación y gestión del proyecto. Se denominan burocráticas. Comunicación Administración de la fundamentación Administración de la configuración del software Administración del proyecto Ciclo de vida del software. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

28 Clasificación METODOLOGÍAS DE DESARROLLO En base a su agilidadBurocráticas o ingenieriles Ágiles En base a su alcance Metodología de análisis Metodología de desarrollo En base a la naturaleza del proyecto Metodologías orientadas a flujo de información Metodologías orientadas a datos Metodologías orientadas a objetos Metodologías basadas en roles Metodologías ágiles de desarrollo Metodologías de dominio específico. Metodologías híbridas Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

29 Familias MetodológicasIntroducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

30 Metodologías orientadas al Flujo de informaciónFAMILIAS METODOLÓGICAS Metodologías orientadas al Flujo de información Contemplan los sistemas software como procesadores de flujo de información. La información entra, se transforma a su paso por las distintas unidades (hardware, software y elementos humanos) y sale procesada. Entrada: señales eléctricas, voz, pulsaciones de teclado, sensores, etc. Transformación: comparaciones sencillas, algoritmos complejos, inferencia lógica, etc. Salida: listados, actuadores, dispositivos multimedia, etc. Metodología Análisis Estructurado Metodología de diseño estructurado de Yourdon Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

31 Análisis & Diseño estructuradoFAMILIAS METODOLÓGICAS Análisis & Diseño estructurado Autores: Análisis estructurado de Tom DeMarco 1979 & Diseño estructurado de Yourdon Modelo de proceso: en cascada. Lenguaje de Modelado: Diagramas de flujos de datos (DFDs). Diagramas de flujos de control (DFCs). Diagramas de Transición de estados (DTEs). Diagramas de E-R. Alcance Actividades Técnicas cubiertas: Análisis: DFDs, DFCs, CSPEC, PSPEC, Diccionario de requisitos. Diseño: Método de transformación de Yourdon Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

32 Metodologías orientadas a DatosFAMILIAS METODOLÓGICAS Metodologías orientadas a Datos Se basan en la estructuración de la información manejada por el modelo. Utilizan las estructuras de datos como base para el desarrollo de software. Suponen una estructura de información jerárquica. Se basan en tres estructuras de control: Secuencia Selección Repetición Proponen un conjunto de pasos que transforman directamente las estructuras de datos en programas. Metodología de Jackson Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

33 Metodología de JacksonFAMILIAS METODOLÓGICAS Metodología de Jackson Autores: Michael Jackson (JSP & JSD) Se caracteriza por dar importancia a los requisitos. Principios: El desarrollo debe comenzar por una descripción y modelado del mundo real, y no especificando, describiendo o estructurando la función que debe desarrollar el sistema (Jackson) Un modelo adecuado para representar el evidentemente ordenado en el tiempo mundo real debe también estar ordenado en el tiempo El sistema debe ser implementado transformando la especificación en un eficiente y conveniente conjunto de procesos Modelo de proceso: en cascada. Lenguaje de Modelado: Diagramas de Jackson (Secuencia, selección y repetición) Alcance Actividades Técnicas cubiertas: 6 pasos que cubren obtención de requisitos, análisis, diseño e implementación. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

34 Metodologías Orientadas a ObjetosFAMILIAS METODOLÓGICAS Metodologías Orientadas a Objetos Concebidas para el desarrollo de sistemas basados en el paradigma de la orientación a objetos. Se desarrollan alrededor del concepto de clase. Conciben el diseño como una evolución o refinamiento del análisis, eliminando el salto existente hasta entonces. Emplean lenguajes de modelado OO. Rápido desarrollo y proliferación: Objectory, Booch, OMT, RUP, … Método Unificado de Rational (RUP –Rational Unified Process) Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

35 Metodología RUP (Rational Unified Process)FAMILIAS METODOLÓGICAS Metodología RUP (Rational Unified Process) Autores: Booch, Rumbaugh & Jacobson De la mano de Rational junto con UML y Rose Modelo de proceso: Iterativo e incremental (híbrido). En cuatro fases: inicio, elaboración, construcción y transición. Lenguaje de Modelado: UML Introducción Programación Orientada a Conjuntos Alcance: Obtención de req. Análisis Diseño Implementación Pruebas Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

36 Metodologías Orientadas Basadas en RolesFAMILIAS METODOLÓGICAS Metodologías Orientadas Basadas en Roles Evolución de las OO. No por desarrollar con objetos, hay que diseñar con objetos No se basan en la abstracción de clase, sino de la del rol que juega cada clase. La clase no es un elemento atómico, sino la implementación de un rol. OORAM (Object Oriented Role Analysis and Modelling) Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Role Clase Código Implementa Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

37 Metodología OORAM FAMILIAS METODOLÓGICAS Autores: Trygve ReenskaugBasada en el modelo de roles. Marco referencial. Modelo de proceso: No definido aunque induce a cascada Principios: Divide y vencerás Ningún objeto es una isla: El interés de un objeto viene dado no por su estructura, sino por su forma de interactuar con el resto del sistema. Lenguaje de Modelado: Propietario, pero cercano a UML o Booch. Alcance: Análisis Diseño Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

38 Metodologías Ágiles de DesarrolloFAMILIAS METODOLÓGICAS Metodologías Ágiles de Desarrollo Se basan en la creencia de que las metodologías ingenieriles no son válidas para el desarrollo de software. Las metodologías clásicas se basan en la planificación. No es posible planificar cuando el desarrollo de software no es predecible. Centran su filosofía en la adaptabilidad al cambio en los requisitos. Orientadas a la gente. Ciclos de vida muy cortos. eXtreme Programming (XP) Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

39 eXtreme Programming FAMILIAS METODOLÓGICASAutores: Kent Beck y Ward Cunningham Modelo de proceso: iterativo, con ciclos muy cortos Lenguaje de modelado: No determinado, recomendado UML Prácticas propuestas: Planificación Versiones pequeñas Metáfora Diseño simple Prueba continua Refactoring Pair Programming Propiedad colectiva del código Análisis Diseño Implementación Pruebas En cascada Iterativo XP Alcance Tiempo Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Integración continua 40 horas semanales Cliente en el sitio Estándares de codificación Herramientas CASE Líneas de Investigación

40 Metodologías de Dominio Específico.FAMILIAS METODOLÓGICAS Metodologías de Dominio Específico. Diseñadas para construir soluciones software que responden a perfiles muy concretos cuya característica diferenciadora no es la naturaleza tecnológica de los proyectos que están orientadas a gestionar No se fundamentan en paradigmas, sino más bien en las particularidades de los sistemas específicos. Enfatizan los aspectos particulares del dominio específico. Normalmente son compatibles y complementarias con las metodologías de propósito general Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

41 Algunos ejemplos… FAMILIAS METODOLÓGICASMetodologías orientadas al desarrollo de aplicaciones hipermedia: OOHDM RMM EORM etc. Metodologías orientadas al desarrollo de SBCs KADs CommonKADS Metodologías orientadas al desarrollo de software para equipos hardware muy específicos: autómatas, PLCs, etc. Metodologías orientadas al desarrollo de compiladores: Holub Aho Otras… Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

42 Metodologías HíbridasFAMILIAS METODOLÓGICAS Metodologías Híbridas No se centran en la naturaleza tecnológica del proyecto Abarcan más de una de las familias anteriores Suelen surgir del interés de grandes organizaciones en normalizar todos sus desarrollos de software. Pretender satisfacer otros objetivos distintos a los puramente técnicos. Más orientadas a la gestión del proyecto. Metodología MÉTRICA 3 Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

43 METRICA 3 FAMILIAS METODOLÓGICASAutores: Consejo Superior de Informática. Ministerio Administraciones Públicas Concebida para homogeneizar los desarrollos software en todas las empresas públicas y administraciones. Modelo de proceso: En cascada Lenguaje de Modelado: DFDs + UML Alcance Actividades Técnicas: Cubre todo el proceso de desarrollo, incluso el mantenimiento Actividades de gestión y administración. Se caracteriza por cubrir un gran número de ellas. Metodología muy burocrática, orientada al documento más que al desarrollo técnico de los productos. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

44 Herramientas CASE Introducción Programación Orientada a ConjuntosLenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

45 Tecnología CASE HERRAMIENTAS CASECASE (Computer Aided Systems Engineering): Aplicación de tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo de sistemas Objetivos: Permitir la aplicación práctica de las metodologías respaldadas por la herramienta Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas Mejorar y estandarizar la documentación. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilización de componentes software. Permitir un desarrollo y un refinamiento visual Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

46 Herramientas CASE HERRAMIENTAS CASE Clasificación:Case de Alto Nivel (Upper Case) Case de Medio Nivel (Middle Case) Case de Bajo Nivel (Lower Case) Herramientas de Ingeniería Inversa Herramientas de Ingeniería de Ida y Vuelta. Herramientas de ámbito específico. Herramientas CASE OO: Rational Rose. Desarrollada por Rational. Together Control Center de Borland Enterprise Architect de sparxx systemas Todas soportan UML 2.0. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

47 Líneas de InvestigaciónIntroducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

48 Introducción LÍNEAS DE INVESTIGACIÓN Objetivos a satisfacer.Reducir la distancia entre el análisis y el diseño Flexibilizar los productos software para que se adapten a los cambios en el dominio. Agilizar el proceso de construcción de software Adaptar el desarrollo orientado a objetos al concepto de conjunto. Dos macrolíneas de investigación: La adaptación a la POC Solventar los problemas actuales de las metodologías OO. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

49 Agilización de Metodologías ClásicasLÍNEAS DE INVESTIGACIÓN Agilización de Metodologías Clásicas Metodologías clásicas o ingenieriles no son adecuadas para el desarrollo de software porque, Se basan en la predicción Los proyectos software no son predecibles. Hay cambios en los requerimientos Las metodologías ágiles son inmaduras y poco experimentadas. Alternativa: Agilizar las metodologías orientadas a objetos Diversos estudios (Hirsh, Fowler) sobre ello. Líneas … Incorporando técnicas ágiles ya propuestas y probadas Investigando nuevas alternativas de agilización Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

50 Automatización de procesos de desarrolloLÍNEAS DE INVESTIGACIÓN Automatización de procesos de desarrollo Línea relacionada con las herramientas CASE. Las posibilidades de automatización dependen Del tratamiento que realice la metodología de desarrollo aplicada. Ej, concepto de arquitectura software. De la potencia expresiva del lenguaje de modelado Reducen la sensibilidad a los cambios en los requisitos Puede considerarse como una técnica ágil Se trata de una línea de investigación activa. Ej, Model Driven Architecture (MDA) de OMG. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

51 Modelado de sistemas basados en conjuntosLÍNEAS DE INVESTIGACIÓN Modelado de sistemas basados en conjuntos Principal peculiaridad del la POC: Disociación de los métodos y los objetos. Invalida el UML como lenguaje de modelado de sistemas basados en POC. Ej: Diagrama de clase Diagrama de objetos. Diagramas de interacción, etc. Alternativas Extensión del UML Nuevo lenguaje de modelado Consideraciones: El concepto de conjunto es próximo al modelo de roles propuesto por OORAM. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

52 Métodos de desarrollo de sistemas basados en conjuntosLÍNEAS DE INVESTIGACIÓN Métodos de desarrollo de sistemas basados en conjuntos Rasgo diferencial de la POC: Disociación de los métodos y los objetos. Se requiere un cambio en la filosofía del tratamiento de las reglas de negocio Se requiere un tratamiento específico para dichos métodos. El diseño e implementación del método puede ser posterior al del objeto. Consecuencia: Los métodos de análisis y diseño del dominio del sistema para la OO no son válidos. Hay que modelar para modificar. Disociar arquitectura software y reglas de negocio. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

53 Integración con herramientas CASE/IDEsLÍNEAS DE INVESTIGACIÓN Integración con herramientas CASE/IDEs CASE y metodologías van de la mano: Una CASE no orientada a metodología no tiene sentido, no se usa. Una metodología sin soporte CASE no es aplicable. POC: Nuevo lenguaje de modelado Nueva metodología Alternativas: Integrar POC en herramientas CASE actuales. Desarrollo de nuevas CASE. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

54 Formalización de requisitos mediante lógica de predicadosLÍNEAS DE INVESTIGACIÓN Formalización de requisitos mediante lógica de predicados Metodologías actuales: Pérdida de información durante la abstracción. Desprecio por los artefactos generados durante el análisis Consecuencia: Se pierden los razonamientos del analista. Introducción Programación Orientada a Conjuntos Lenguajes de Modelado Alternativas: Formalización de requisitos mediante lógica de predicados. Línea de investigación activa (Michael R. A. Huth) Metodologías de desarrollo Familias Metodológicas Herramientas CASE Líneas de Investigación

55 Daniel FERNÁNDEZ LANVINFin de la presentación Realizada con Microsoft PowerPoint y Adobe PhotoShop 5.5 Daniel FERNÁNDEZ LANVIN