You are on page 1of 42

Universidad

De Oviedo

Departamento de

Trabajo de Investigacin

Junio 2004

Desarrollo de una
Metodologa para un
Nuevo Paradigma de
Desarrollo de Software

Informtica

Autor Daniel FERNNDEZ


LANVIN
Director
Aquilino A.
JUAN FUENTE

Universidad
De Oviedo

ndice

Introduccin
Programacin Orientada a
Conjuntos
Lenguajes de Modelado
Metodologas de
desarrollo

Departamento de
Informtica

Familias
metodolgicas
Herramientas CASE
Lneas de
Investigacin

INTRODUCCIN

Porqu otra metodologa ms?

Principalmente, aparicin del paradigma POC

Nuevo paradigma conlleva nuevas


necesidades.

Necesaria una adaptacin de los procesos de


la ingeniera del software.

Una adaptacin es momento adecuado de


reflexin:

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Funcionan las metodologas de desarrollo de


software?
Cules son los problemas?
Qu soluciones se han propuesto?
Qu estamos haciendo mal?
Qu caminos hay que seguir?

INTRODUCCIN

Metodologa aplicada
Pasos Seguidos:

Estudio del paradigma POC

Introduccin

Programacin
Orientada a
Conjuntos

Anatoma de lenguajes de modelado y


metodologas de desarrollo. Clasificacin.

Estudio de las metodologas ms


representativas de cada familia

Anlisis de la tecnologa CASE

Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Lneas de continuacin?
Siempre desde un enfoque prximo a la OO.

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Programacin
Orientada a Conjuntos

PROGRAMACIN ORIENTADA A
CONJUNTOS

Introduccin

Introduccin
Programacin
Orientada a
Conjuntos

Actualmente en desarrollo por el OOTLAB


(Object Oriented Technology Laboratory)

Evolucin de la Orientacin a Objetos

Aproximacin a

Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

SBCs

Programacin Lgica

Motivacin de la iniciativa,
Solucionar los problemas evidenciados por la
orientacin a objetos.

PROGRAMACIN ORIENTADA A
CONJUNTOS

Objetivos

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Aproximar la implementacin al anlisis

Alejar al programador de detalles y tareas


tcnicas que pueden ser obviadas o resueltas.

Flexibilizar la gestin del modelo de negocio


de los sistemas orientados a objetos.

El Lenguaje Venn

Prototipo de implementacin de la POC

En desarrollo por el OOTLAB

Evoluciona la orientacin a objetos

PROGRAMACIN ORIENTADA A
CONJUNTOS

Caractersticas diferenciadoras
de Venn
Venn parte de la OO. Se distancia en:
Introduccin

Tipificacin de los datos

Mtodos disociados

Lenguajes de
Modelado

Aritmtica de conjuntos

Metodologas de
desarrollo

Tratamiento de contextos

Programacin
Orientada a
Conjuntos

Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

PROGRAMACIN ORIENTADA A
CONJUNTOS

Tipificacin de datos

Introduccin

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.

Justificacin:

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo

Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Ligar mtodos a clases en tiempo de


diseo es inflexible.

En Venn no existe conjunto esttico y limitado


de mtodos ligados a una clase
Los objetos contienen slo atributos

PROGRAMACIN ORIENTADA A
CONJUNTOS

Mtodos independientes

Introduccin

Los mtodos no se asocian a las clases

Tratamiento similar a los SBCs (Ej, Kappa) y


programacin declarativa: matching de reglas.

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Nombre_Mtodo( Conjunto_A, conjunto_B, )


Ejemplo Aviones:
Aterriza_Avin( Avin_en_vuelo );

Sobrecarga de mtodos.
Aterriza_Avin( Avin_en_vuelo );
Aterriza_Avin( Avin_harrier_vuelo );

PROGRAMACIN ORIENTADA A
CONJUNTOS

Aritmtica de Conjuntos

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Es posible emplear operaciones de aritmtica


de conjuntos al invocar mtodos en Venn

Unin

Interseccin

Negacin

Etc.

Ejemplo:
Nombre_mtodo( Conjunto_A +
Conjunto_B )

PROGRAMACIN ORIENTADA A
CONJUNTOS

Tratamiento de Contextos

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Definen mbitos que limitan el alcance de una


modificacin de comportamiento.

Permiten limitar el alcance de modificaciones


de comportamiento de mtodos.

Establecen una modificacin temporal de la


implementacin de un mtodo.

PROGRAMACIN ORIENTADA A
CONJUNTOS

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo

Ejemplo de aplicacin: 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

Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Modelado del objeto avin?

PROGRAMACIN ORIENTADA A
CONJUNTOS

Solucin en POO

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Clase Avin
Atributos: Los necesarios para el avin en
vuelo, y los necesarios para el avin en
tierra.
Mtodos: Idem.
Inconvenientes:
Hay atributos y mtodos que pierden
sentido dependiendo del estado. Ej, Altitud
de avin en tierra
Es necesario controlar por cdigo que no
se invoquen ciertos mtodos en
determinados estados. Ej:
Guardar tren de aterrizaje en
tierra
Abrir puertas en vuelo.

PROGRAMACIN ORIENTADA A
CONJUNTOS

Solucin en POC

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Conjuntos
Avin en vuelo
Atributos: Los necesarios para el avin en
vuelo
Mtodos: Idem.
Ej.
GuardarTrenAterrizaje(Avion_en_vuelo)

Avin en tierra
Atributos: Los necesarios para el avin en
tierra
Mtodos: Idem.
Ej.
AbrirPuertas(Avion_en_tierra)

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Lenguajes de
Modelado

NOTACIONES Y LENGUAJES DE MODELADO

Definicin

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Notacin:
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

Metodologas de desarrollo

Paradigmas

NOTACIONES Y LENGUAJES DE MODELADO

Alcance

Distintos lenguajes de modelado cubren


distintos aspectos del sistema.

Introduccin

Cada vista del sistema : modelo del sistema.

Programacin
Orientada a
Conjuntos

Dos tipos:

Modelos estticos:

Lenguajes de
Modelado

Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Aspectos estructurales y arquitectnicos


del sistema

Modelos dinmicos:

Muestran la secuencia de eventos y


mensajes susceptibles de aparecer en el
ciclo de vida del sistema. Ligados a la
escala de tiempo.

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Metodologas de
Desarrollo

METODOLOGAS DE DESARROLLO

Definicin

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Metodologa o proceso de desarrollo.


Definicin de Rumbaugh:

proceso para la produccin organizada del


software, empleando una coleccin de
tcnicas predefinidas y convenciones en las
notaciones.
se presenta normalmente como una serie de
pasos, con tcnicas y notaciones
asociadas a cada paso...
Los pasos de la produccin del software se
organizan normalmente en un ciclo de vida
consistente en varias fases de desarrollo

METODOLOGAS DE DESARROLLO

Modelos de proceso

Introduccin

Rasgo principal de una metodologa.

Define el ciclo de vida del proyecto:

Modelo Clsico o en Cascada.

Desarrollo Evolutivo o Prototipado.

Espiral.

Desarrollo Incremental.

Desarrollo formal de sistemas.

Familias
Metodolgicas

Codificar y Corregir.

Herramientas
CASE

Modelos de Proceso Hbridos.

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo

Lneas de
Investigacin

METODOLOGAS DE DESARROLLO

Alcance

El proceso de desarrollo de un proyecto se


divide en actividades.

Introduccin

Programacin
Orientada a
Conjuntos

Cada mtodo de una metodologa soluciona


una actividad.

No todas las metodologas cubren las mismas


actividades.

Tipos:

Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Actividades tcnicas o de desarrollo

Actividades de administracin y
gestin del proceso de desarrollo.

METODOLOGAS DE DESARROLLO

Clasificacin

Introduccin

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

En base a su agilidad

Burocrticas o ingenieriles

giles

En base a su alcance

Metodologa de anlisis

Metodologa de desarrollo

En base a la naturaleza del proyecto

Metodologas orientadas a flujo de informacin

Metodologas orientadas a datos

Metodologas orientadas a objetos

Metodologas basadas en roles

Metodologas giles de desarrollo

Metodologas de dominio especfico.

Metodologas hbridas

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Familias
Metodolgicas

FAMILIAS METODOLGICAS

Metodologas orientadas al Flujo


de informacin

Contemplan los sistemas software como


procesadores de flujo de informacin.

La informacin entra, se transforma a su paso por


las distintas unidades (hardware, software y
elementos humanos) y sale procesada.

Entrada: seales elctricas, voz, pulsaciones de


teclado, sensores, etc.

Transformacin: comparaciones sencillas,


algoritmos complejos, inferencia lgica, etc.

Familias
Metodolgicas

Salida: listados, actuadores, dispositivos


multimedia, etc.

Herramientas
CASE

Metodologa Anlisis Estructurado

Metodologa de diseo estructurado de Yourdon

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo

Lneas de
Investigacin

FAMILIAS METODOLGICAS

Metodologas orientadas a Datos

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado

Se basan en la estructuracin de la informacin


manejada por el modelo.

Utilizan las estructuras de datos como base para el


desarrollo de software.

Suponen una estructura de informacin jerrquica.

Se basan en tres estructuras de control:

Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Secuencia

Seleccin

Repeticin

Proponen un conjunto de pasos que transforman


directamente las estructuras de datos en programas.

Metodologa de Jackson

FAMILIAS METODOLGICAS

Metodologas Orientadas a
Objetos

Concebidas para el desarrollo de sistemas basados


en el paradigma de la orientacin a objetos.

Se desarrollan alrededor del concepto de clase.

Lenguajes de
Modelado

Conciben el diseo como una evolucin o


refinamiento del anlisis, eliminando el salto
existente hasta entonces.

Emplean lenguajes de modelado OO.

Metodologas de
desarrollo

Rpido desarrollo y proliferacin:

Introduccin
Programacin
Orientada a
Conjuntos

Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Objectory, Booch, OMT, RUP,

Mtodo Unificado de Rational (RUP Rational Unified


Process)

FAMILIAS METODOLGICAS

Metodologas Orientadas Basadas


en Roles

Evolucin de las OO.

No por desarrollar con objetos, hay que disear con


objetos

No se basan en la abstraccin de clase, sino de la


del rol que juega cada clase.

La clase no es un elemento atmico, sino la


implementacin de un rol.

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo

Implementa

Role

Familias
Metodolgicas

Implementa

Clase

Cdigo

Herramientas
CASE
Lneas de
Investigacin

OORAM (Object Oriented Role Analysis and


Modelling)

FAMILIAS METODOLGICAS

Metodologas giles de
Desarrollo

Introduccin
Programacin
Orientada a
Conjuntos

Se basan en la creencia de que las metodologas


ingenieriles no son vlidas para el desarrollo de
software.

Las metodologas clsicas se basan en la


planificacin.

No es posible planificar cuando el desarrollo de


software no es predecible.

Centran su filosofa en la adaptabilidad al cambio


en los requisitos.

Orientadas a la gente.

Ciclos de vida muy cortos.

eXtreme Programming (XP)

Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

FAMILIAS METODOLGICAS

Metodologas de Dominio
Especfico.

Diseadas para construir soluciones software que


responden a perfiles muy concretos cuya
caracterstica diferenciadora no es la naturaleza
tecnolgica de los proyectos que estn orientadas a
gestionar

No se fundamentan en paradigmas, sino ms bien


en las particularidades de los sistemas especficos.

Enfatizan los aspectos particulares del dominio


especfico.

Normalmente son compatibles y complementarias


con las metodologas de propsito general

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

FAMILIAS METODOLGICAS

Metodologas Hbridas

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

No se centran en la naturaleza tecnolgica del


proyecto

Abarcan ms de una de las familias anteriores

Suelen surgir del inters de grandes organizaciones


en normalizar todos sus desarrollos de software.

Pretender satisfacer otros objetivos distintos a los


puramente tcnicos.

Ms orientadas a la gestin del proyecto.

Metodologa MTRICA 3

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Herramientas CASE

HERRAMIENTAS CASE

Tecnologa CASE

CASE (Computer Aided Systems Engineering):


Aplicacin de tecnologa informtica a las
actividades, las tcnicas y las metodologas propias
de desarrollo de sistemas

Objetivos:

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Permitir la aplicacin prctica de las


metodologas respaldadas por la herramienta

Facilitar la realizacin de prototipos y el


desarrollo conjunto de aplicaciones.

Simplificar el mantenimiento de los


programas

Mejorar y estandarizar la documentacin.

Aumentar la portabilidad de las aplicaciones.

Facilitar la reutilizacin de componentes


software.

Permitir un desarrollo y un refinamiento visual

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Lneas de
Investigacin

LNEAS DE INVESTIGACIN

Introduccin

Objetivos a satisfacer.

Reducir la distancia entre el anlisis y el


diseo

Flexibilizar los productos software para


que se adapten a los cambios en el
dominio.

Agilizar el proceso de construccin de


software

Adaptar el desarrollo orientado a objetos


al concepto de conjunto.

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Dos macrolneas de investigacin:

La adaptacin a la POC

Solventar los problemas actuales de las


metodologas OO.

LNEAS DE INVESTIGACIN

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Agilizacin de Metodologas
Clsicas

Metodologas clsicas o ingenieriles no son


adecuadas para el desarrollo de software porque,

Se basan en la prediccin

Los proyectos software no son predecibles. Hay


cambios en los requerimientos

Las metodologas giles son inmaduras y poco


experimentadas.

Alternativa: Agilizar las metodologas


orientadas a objetos

Diversos estudios (Hirsh, Fowler) sobre ello.

Lneas

Incorporando tcnicas giles ya propuestas y


probadas

Investigando nuevas alternativas de agilizacin

LNEAS DE INVESTIGACIN

Automatizacin de procesos de
desarrollo

Introduccin

Lnea relacionada con las herramientas CASE.

Las posibilidades de automatizacin dependen

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Del tratamiento que realice la metodologa 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 tcnica gil

Se trata de una lnea de investigacin activa. Ej,


Model Driven Architecture (MDA) de OMG.

LNEAS DE INVESTIGACIN

Modelado de sistemas basados


en conjuntos

Introduccin

Principal peculiaridad del la POC: Disociacin de los


mtodos y los objetos.

Invalida el UML como lenguaje de modelado de


sistemas basados en POC. Ej:

Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Diagrama de clase

Diagrama de objetos.

Diagramas de interaccin, etc.

Alternativas

Extensin del UML

Nuevo lenguaje de modelado

Consideraciones: El concepto de conjunto es prximo al


modelo de roles propuesto por OORAM.

LNEAS DE INVESTIGACIN

Mtodos de desarrollo de
sistemas basados en conjuntos

Rasgo diferencial de la POC: Disociacin de los


mtodos y los objetos.

Programacin
Orientada a
Conjuntos

Se requiere un cambio en la filosofa del


tratamiento de las reglas de negocio

Lenguajes de
Modelado

Se requiere un tratamiento especfico para


dichos mtodos.

El diseo e implementacin del mtodo puede


ser posterior al del objeto.

Introduccin

Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Consecuencia: Los mtodos de anlisis y diseo del


dominio del sistema para la OO no son vlidos.

Hay que modelar para modificar.

Disociar arquitectura software y reglas de negocio.

LNEAS DE INVESTIGACIN

Integracin con herramientas


CASE/IDEs

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado

Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

CASE y metodologas van de la mano:

Una CASE no orientada a metodologa no tiene


sentido, no se usa.

Una metodologa sin soporte CASE no es


aplicable.

POC:

Nuevo lenguaje de modelado

Nueva metodologa

Alternativas:

Integrar POC en herramientas CASE actuales.

Desarrollo de nuevas CASE.

LNEAS DE INVESTIGACIN

Formalizacin de requisitos
mediante lgica de predicados

Introduccin
Programacin
Orientada a
Conjuntos
Lenguajes de
Modelado
Metodologas de
desarrollo
Familias
Metodolgicas
Herramientas
CASE
Lneas de
Investigacin

Metodologas actuales:

Prdida de informacin durante la abstraccin.

Desprecio por los artefactos generados durante


el anlisis

Consecuencia: Se pierden los razonamientos del


analista.

Alternativas:
Formalizacin de
requisitos
mediante lgica
de predicados.

Lnea de investigacin
activa (Michael R.
A. Huth)

Fin de la
presentacin

Realizada con Microsoft PowerPoint y


Adobe PhotoShop 5.5

Daniel FERNNDEZ LANVIN

You might also like