Está en la página 1de 47

METODOLOGIAS Y CICLOS DE

VIDA
Dr. Ing. Juan Oswaldo Alfaro Bernedo
Claves en el Desarrollo de SI
Herramientas Metodologa
Notacin
Sistema Computacional
Proceso de Negocios
Orden
Item
envo
El modelado captura las
partes esenciales del sistema

Notacin
Notacin:
Modelado para manejar la
Complejidad
Interface de Usuario
(Visual Basic,
Java, ..)
Lgica del Negocio
(C++, Java, ..)
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema independientemente
del lenguaje de implementacin
Notacin
Modelado de la
Arquitectura del SW
Mltiples Sistemas
Notacin
Modelado para promover la
Reutilizacin
Componentes
Reutilizados
Requisitos nuevos
o modificados
Sistema nuevo
o modificado
Proceso de Desarrollo
de Software
En un proyecto de desarrollo de software la
metodologa define Quin debe hacer Qu,
Cundo y Cmo debe hacerlo




No existe una metodologa de software
universal. Las caractersticas de cada
proyecto (equipo de desarrollo, recursos, etc.)
exigen que el proceso sea configurable
Qu es una Metodologa?
Procesos y Metodologas

La Ingeniera de Software como disciplina
Algunos modelos de proceso de desarrollo son:
desarrollo en Cascada, usando Prototipos, Basado
en Componentes, en Espiral (Incremental,
Iterativo), Programacin Automtica. Las
metodologas se basan en alguna combinacin de
estos enfoques
Las metodologas (tanto comerciales como en el
mbito acadmico y de investigacin) pueden ser
agrupadas en dos grandes corrientes:
Metodologas Estructuradas y Metodologas
Orientadas a Objetos

Metodologas Estructuradas
Los mtodos estructurados comenzaron a
desarrollar-se a fines de los 70s con la
Programacin Estructurada, luego a mediados de los
70s aparecieron tcnicas para el Diseo primero y
luego para el Anlisis. Enfocados a implementaciones
usando lenguajes de 3ra generacin

Ejemplos de metodologas estructuradas
gubernamentales: MERISE (Francia), MTRICA 3
(Espaa), SSADM (Reino Unido)

Ejemplos de mtodos estructurados en el mbito
acadmico: Gane & Sarson, Ward & Mellor, Yourdon
& DeMarco e Information Engineering

Metodologas OO
Su historia va unida a la evolucin de los lenguajes de
programacin orientada a objeto, los ms representativos:
a fines de los 60s SIMULA, a fines de los 70s Smalltalk-
80, la primera versin de C++ por Bjarne Stroustrup en
1981 y actualmente Java o C#. A fines de los 80s
comenzaron a consolidarse algunos mtodos Orientadas a
Objeto

En 1995 aparece el Mtodo Unificado, que posteriormente
se reorienta para dar lugar al Unified Modeling Language
(UML), la notacin OO ms popular en la actualidad

Algunos mtodos OO con notaciones predecesoras de UML:
OOAD (Booch), OOSE (Jacobson), Coad & Yourdon, Shaler
& Mellor y OMT (Rumbaugh)
Algunas metodologas orientadas a objetos basadas en
UML: Rational Unified Process (RUP), OPEN, MTRICA 3

Metodologa
Elementos de un Proceso SW
Proceso
SW
Notacin
Herramientas
Personas
Artefactos
Roles
Actividades
Herramientas CASE
CASE es un acrnimo para Computer-Aided
Software Engineering, aunque existen algunas
variaciones para lo que actualmente se
entiende por CASE:
C Computer
A Aided
Assisted
Automated
S Software
Systems
E Engineering

Qu es una CASE?
En Terminology for Software Engineering and
Computer-aided Software Engineering, B.Terry
& D.Logee, Software Engineering Notes, Abril
1990, CASE es definido como:
Herramientas individuales para ayudar al
desarrollador de software o administrador de
proyecto durante una o ms fases del desarrollo
de software (o mantenimiento).
En The CASE Experience, Carma McClure,
BYTE Abril 1989 p.235 se ofrece la siguiente
definicin:
Una combinacin de herramientas de software
y metodologas de desarrollo


Proceso Subproceso Tarea de desarrollo apoyada por una herramienta CASE
Representacin Representacin de objetos, relaciones o procesos
Anlisis Anlisis de objetos relaciones o procesos
Produccin
Transformacin
Automatizacin de tareas de planificacin o diseo
Generacin de cdigo/esquema de base de datos
Generacin de cdigo procedural
Generacin de datos de prueba
Anlisis de la estructura del programa
Reestructuracin automtica del cdigo del programa
Anlisis de la estructura de la base de datos
Control

Ayuda al cumplimiento de reglas, polticas o prioridades que gobiernan
las actividades del proceso de desarrollo
Administracin de recursos: presupuesto, programacin de tareas y
seguimiento
Control de acceso: auditora, control de configuracin y manejo de
autorizaciones
Coordinacin
Cooperacin
Mensajes y comunicacin electrnica
Asociacin electrnica de notas a los objetos
Soporte de interaccin de grupo
Soporte
Ayuda en lnea para comandos y caractersticas
Plantillas para tutoriales o demos
Facilidades de explicacin para acciones recomendadas
Uso de conocimiento del dominio para diagnosticar problemas del
usuario y recomendar acciones apropiadas
Organizacin
Infraestructura
Estructuras estandarizadas para representar diseos
Consistencia de definicin de estructuras de datos
Repositorio del proyecto
Communications of the ACM, Enero 2000, pp.80-88.
MODELOS DE CLICLO DE VIDA
Modelo secuencial
Anlisis Diseo Cdigo Pruebas
Ingeniera de Sistemas
Mantencin
Modelo Cascada (ciclo de vida
clsico)
Anlisis
Diseo
Cdigo
Pruebas
Mantencin
Modelo Prototipo
Escuchar al
usuario/cliente
Construir/revisar
prototipo
Aprobacin u observaciones
del usuario/cliente
Refinamiento
Refinamiento
de Requisitos
Diseo rpido
Pruebas
Modelo en Espiral
Estilo incremental.
Es similar al de prototipos, pero agrega la
evaluacin de riesgos tcnicos y de gestin.
Etapas : (desde adentro hacia fuera)
Desarrollo conceptual
Desarrollo del producto
mejora del producto
mantenimiento del producto
Caso : MS-Office
Modelo en Espiral
Comunicacin con el
usuario/cliente
Construccin y
adaptacin
Aprobacin u observaciones
del usuario/cliente
Refinamiento
Planificacin
Ingeniera
Evaluacin del
Riesgo
Modelo de ensamblaje de
componentes
Modelos anteriores, pero con uso de
bibliotecas de rutinas (tradicional) o clases
(orientacin a objetos).
Ms rpido.
Menores costos de desarrollo.
Programadores ms experimentados.
Menor dependencia de las personas que
participaron en el proyecto.
Otros modelos (a)
Modelo DRA (Desarrollo Rpido de
Aplicaciones) Orientado de proyectos cortos
y modularizables; ptimo para trabajo en
equipos diferenciables.
Ejemplo : Juego sencillo.
Equipo 1 : Algoritmos del juego
Equipo 2 : Interfaz de usuarios
Equipo 3 : Manejo de errores y situaciones
excepcionales.
Equipo 4 : Ayuda y configuracin del SW.
Otros Modelo (b)
Modelo Incremental : Mezcla del modelo
lineal incremental, con el de prototipos.
Entrega un modelo operativo con cada
entrega.
Puede irse agregando personal con cada
incremento.
Se descubren a tiempo los riesgos del
proyecto.
Otros modelos (c)
Modelo de desarrollo concurrente : Se
trabaja en distintas tareas a la vez : Anlisis,
programacin, prueba, etc..
Orientado a cliente/servidor.
Se distinguen dos dimensiones :
De sistemas : Diseo, ensamblaje y uso.
De componentes : Diseo y realizacin.
Proporciona una imagen exacta del estado
actual del proyecto.
Otros modelos (c)
Modelo de desarrollo concurrente : Se
trabaja en distintas tareas a la vez : Anlisis,
programacin, prueba, etc..
Orientado a cliente/servidor.
Se distinguen dos dimensiones :
De sistemas : Diseo, ensamblaje y uso.
De componentes : Diseo y realizacin.
Proporciona una imagen exacta del estado
actual del proyecto.
Metodologa vs Ciclo de Vida

Diferencias entre Metodologa, Ciclo de Vida y
Mtodo
Una Metodologa puede seguir uno o varios
modelos de Ciclo de Vida
Un Ciclo de Vida indica qu obtener, pero no cmo
Una Metodologa es un concepto ms amplio que
Mtodo
Se puede considerar como un conjunto de
mtodos.
Una metodologa puede englobar un conjunto
de mtodos (de anlisis, diseo, programacin,
etc.) para abarcar el ciclo de vida completo
Relacin Histrica Metodologas
Impacto de las Metodologas en el Entorno
de Desarrollo
Implantacin de Metodologas en los Entornos de
Desarrollo. Opciones:
Seleccionar entre un gran nmero de posibilidades y
combinaciones de mtodos de gestin, tcnicas de desarrollo y
soporte automatizado, para crear y desarrollar una
Metodologa de Desarrollo Software ms apropiada.
Analizar y evaluar las metodologas existentes y seleccionar la
que ms se adapte a las necesidades.
Factores que influyen en las metodologas:
Tamao y estructura de la organizacin
Tipo de aplicaciones a desarrollar
Caractersticas Deseables de una
Metodologa
Existencia de reglas predefinidas
Cobertura total del ciclo de desarrollo
Verificaciones intermedias
Planificacin y control
Comunicacin efectiva
Utilizacin sobre un abanico amplio de proyectos
Fcil formacin
Herramientas CASE
Actividades que mejoren el proceso de desarrollo
Soporte al mantenimiento
Soporte de la reutilizacin de software
Metodologas Estructuradas
Proponen la creacin de modelos del sistema que representan:
Los procesos
Los flujos
La estructura de los Datos
Enfoque Top-Down
De visin general a nivel de abstraccin ms sencillo
Tipos:
Orientadas a Procesos
Orientadas a Datos
Estructuras de Datos Jerrquicas
Estructuras de Datos no Jerrquicas
Mixtas
Metodologas Estructuradas
Metodologas Estructuradas
Metodologas Estructuradas

Metodologas Orientadas a Procesos
Metodologa de Yourdon/Constantine
Realizar los DFD del sistema
Realizar el diagrama de estructuras
Evaluar el diseo
Preparar el diseo para la implantacin
Metodologas Estructuradas
Metodologas Estructuradas
Capas de la Ingeniera de
SW
Enfoque de calidad
proceso
mtodos
herramientas
Ejemplo : Un futbolista
Herrramientas
Condiciones
fsicas
Mtodos Tcnica
Proceso
90 minutos
de juego
Enfoque de
calidad
Estilo -
Elegancia
amateur
Profesional
(normalmente)
profesion
al
Nivel de
juego
confiable
amateur
Mtodos
Actividades de trabajo : El Cmo.
Anlisis de requisitos
Diseo
Construccin
Pruebas
Mantenimiento

Herramientas
Distintas herramientas de desarrollo y/o
programacin.
Algunas presentan soporte automtico o
semi automtico : CASE, CAD, 4GL, etc.


El Proceso
Cmo controlamos o evaluamos que las cosas
vayan bien?.
{cmo se las arregla el DT para asegurar el
xito del partido, si se considera que l no
est jugando?}
Control de gestin de proyectos de sw.
Establecimiento del contexto en que se
aplican los mtodos tcnicos, modelo,
documentos, datos, informes, formularios,
etc.

Fases de la Ingeniera de
SW
Fase de Definicin : Qu?. Ingeniera
de Sistemas, planificacin del proyecto y
anlisis de requisitos.
Fase de Desarrollo : Cmo?. Diseo,
construccin (programacin) y prueba.
Fase Mantencin : El cambio. Se
aplican fases anteriores sobre SW ya
existente.
Tipos de cambio en la
mantencin
Correccin : Mantencin correctiva de defectos.
Adaptacin : Mantencin adaptativa por cambios en
el entorno del SW.
Mejora : Agrega funcionalidades adicionales a las
originales.
Prevencin : Reingeniera del SW. Lo prepara para
que sus mantenciones sean ms fciles y expeditas.
Analizar : caso ao 2.000; portabilidad; upgrade de SO.
Modelo de calidad SEI
Nivel I : Inicial. Catico. xito se debe al esfuerzo
individual.
Nivel II : Repetible. Hay gestin de proyecto. Los
xitos obtenidos pueden repetirse.
Nivel III : Definido. Estndares de desarrollo bien
definidos y exigibles. Nivel II documentado y
generalizado.
Nivel IV : Gestionado. Nivel III cuantificado
mediante control y estadsticas.
Nivel V : Optimizacin. Mejoramiento continuo.
Tcnicas de 4 generacin
Apoyado en herramientas CASE. Prototipos.
Aplicaciones pequeas y de tamao medio.
Anlisis
Diseo
Programacin
Pruebas
Upper CASE
Lower CASE
Mantencin
4GL
Resumen
La Ingeniera de SW es una disciplina.
Integra proceso, mtodos y herramientas.
Existen diversos paradigmas, con ventajas y
desventajas pero basado en fases comunes.
En este curso se estudiarn los principios,
conceptos y mtodos que permiten llevar a
cabo el Proceso que se denomina Ingeniera
del software.