Universidad De Oviedo Trabajo de Investigación Junio 2004 Autor



Descargar 51,12 Kb.
Fecha de conversión03.02.2017
Tamaño51,12 Kb.
  • Universidad
  • De Oviedo
  • Trabajo de Investigación
  • Junio 2004
  • Autor Daniel FERNÁNDEZ LANVIN
  • Director Aquilino A. JUAN FUENTE
  • Desarrollo de una Metodología para un Nuevo Paradigma de Desarrollo de Software
  • Departamento de
  • Informática
  • Índice …
  • Introducción
  • Familias metodológicas
  • Herramientas CASE
  • Universidad
  • De Oviedo
  • Departamento de
  • Informática
  • Líneas de Investigación
  • INTRODUCCIÓN
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • ¿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?
  • Líneas de Investigación
  • INTRODUCCIÓN
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • 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.
  • Líneas de Investigación
  • Programación Orientada a Conjuntos
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • 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
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
  • Objetivos
  • Aproximar 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.
  • El Lenguaje Venn
  • Prototipo de implementación de la POC
  • En desarrollo por el OOTLAB
  • Evoluciona 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
  • PROGRAMACIÓ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
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
  • 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
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
  • Tipificación de datos
  • La 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
  • PROGRAMACIÓ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_en_vuelo );
  • 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
  • PROGRAMACIÓ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
  • PROGRAMACIÓ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
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
  • Ejemplo de aplicación: Modelado de un sistema de control de vuelo y acercamiento de aviones para aeropuertos.
  • Control de los aviones
    • En vuelo dentro del área de control del aeropuerto
    • En pista
  • ¿Modelado del objeto avió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
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
    • Clase Avión
    • Atributos: Los necesarios para el avión en vuelo, y los necesarios para el avión en tierra.
    • Métodos: Idem.
    • Inconvenientes:
    • 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.
  • Solución en POO
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • PROGRAMACIÓN ORIENTADA A CONJUNTOS
  • Solución en POC
    • Conjuntos
    • Avió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
    • Métodos: Idem.
    • Ej.
    • 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
  • Lenguajes de Modelado
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • NOTACIONES Y LENGUAJES DE MODELADO
  • Definición
    • 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 …
    • Metodologías de desarrollo
    • Paradigmas
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • NOTACIONES Y LENGUAJES DE MODELADO
  • Alcance
  • Distintos lenguajes de modelado cubren distintos aspectos del sistema.
  • Cada vista del sistema : modelo del sistema.
  • Dos tipos:
  • 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.
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • NOTACIONES Y LENGUAJES DE MODELADO
  • Modelos estáticos
  • Modelos de repositorio de datos
  • Modelos de clases
  • Modelos de instancias
  • Modelos de paquetes
  • Modelos de componentes
  • Modelos de despliegue.
  • Modelos Dinámicos
  • Modelos funcionales
  • Modelos de comportamiento interno del sistema.
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • NOTACIONES 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
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • METODOLOGÍAS DE DESARROLLO
  • Definición
  • Metodologí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
  • METODOLOGÍAS DE DESARROLLO
  • Modelos de proceso
  • Rasgo 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
  • METODOLOGÍAS DE DESARROLLO
  • Alcance
  • El 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:
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • METODOLOGÍAS DE DESARROLLO
  • Actividades 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
  • METODOLOGÍAS DE DESARROLLO
  • Actividades 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
  • METODOLOGÍAS DE DESARROLLO
  • Clasificación
  • En base a su agilidad
    • Burocrá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
  • Familias Metodológicas
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • FAMILIAS 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
  • FAMILIAS 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
  • FAMILIAS METODOLÓGICAS
  • 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
  • FAMILIAS 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
  • FAMILIAS 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
  • 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
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • Alcance:
    • Obtención de req.
    • Análisis
    • Diseño
    • Implementación
    • Pruebas
  • FAMILIAS 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)
  • Role
  • Clase
  • Código
  • Implementa
  • Implementa
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • FAMILIAS METODOLÓGICAS
  • Metodología OORAM
  • Autores: Trygve Reenskaug
  • Basada 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
  • FAMILIAS 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
  • FAMILIAS METODOLÓGICAS
  • eXtreme Programming
  • Autores: Kent Beck y Ward Cunningham
  • Modelo de proceso: iterativo, con ciclos muy cortos
  • Introducción
  • Programación Orientada a Conjuntos
  • Lenguajes de Modelado
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • Análisis
  • Diseño
  • Implementación
  • Pruebas
  • En cascada
  • Iterativo
  • XP
  • Alcance
  • Tiempo
  • 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
  • Integración continua
  • 40 horas semanales
  • Cliente en el sitio
  • Estándares de codificación
  • 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
  • FAMILIAS METODOLÓGICAS
  • Algunos ejemplos…
  • Metodologí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
  • FAMILIAS 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
  • FAMILIAS METODOLÓGICAS
  • METRICA 3
  • Autores: 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
  • Herramientas 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
  • HERRAMIENTAS CASE
  • Tecnología CASE
  • CASE (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
  • 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
  • Líneas de Investigació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
  • LÍNEAS DE INVESTIGACIÓN
  • Introducció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
  • LÍ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
  • LÍ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
  • LÍNEAS DE INVESTIGACIÓN
  • 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
  • LÍ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
  • LÍ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
  • LÍNEAS DE INVESTIGACIÓN
  • 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
  • Metodologías de desarrollo
  • Familias Metodológicas
  • Herramientas CASE
  • Líneas de Investigación
  • Alternativas:
  • Formalización de requisitos mediante lógica de predicados.
  • Línea de investigación activa (Michael R. A. Huth)
  • Fin de la presentación
  • Daniel FERNÁNDEZ LANVIN
  • Realizada con Microsoft PowerPoint y Adobe PhotoShop 5.5


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal