Anda di halaman 1dari 47

METODOLOGIAS Y CICLOS DE

VIDA

Dr. Ing. Juan Oswaldo Alfaro Bernedo

Claves en el Desarrollo de SI
Notacin

Herramientas

Metodologa

Notacin
El modelado captura las
partes esenciales del sistema
Orden
Item

envo

Proceso de Negocios

Sistema Computaciona

Notacin:
Modelado para manejar la
Complejidad

Notacin
Modelado de la
Arquitectura del SW
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 para promover la
Reutilizacin
Mltiples Sistemas

Componentes
Reutilizados

Qu es una Metodologa?
En un proyecto de desarrollo de software la
metodologa define Quin debe hacer Qu,
Cundo y Cmo debe hacerlo
Requisitos nuevos
o modificados

Proceso de Desarrollo
de Software

Sistema nuevo
o modificado

No existe una metodologa de software


universal. Las caractersticas de cada
proyecto (equipo de desarrollo, recursos, etc.)
exigen que el proceso sea configurable

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 Smalltalk80, 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
Actividades
Herramientas

Personas

Proceso
SW

Roles

Artefactos

Notacin

Herramientas CASE
CASE es un acrnimo para Computer-Aided
Software Engineering, aunque existen algunas
variaciones para lo que actualmente se
entiende por CASE:
C
A

S
E

Computer
Aided
Assisted
Automated
Software
Systems
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 de objetos relaciones o procesos
Anlisis

Produccin

Transformacin

Control

Coordinacin
Cooperacin

Soporte
Organizacin
Infraestructura

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
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
Mensajes y comunicacin electrnica
Asociacin electrnica de notas a los objetos
Soporte de interaccin de grupo
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
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
Ingeniera de Sistemas

Anlisis

Diseo

Cdigo

Pruebas
Mantencin

Modelo Cascada (ciclo de vida


clsico)
Anlisis
Diseo
Cdigo
Pruebas
Mantencin

Modelo Prototipo
Refinamiento
de Requisitos

Diseo rpido

Escuchar al

Construir/revisar

usuario/cliente

prototipo

Refinamiento

Pruebas
Aprobacin u observaciones
del usuario/cliente

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
Planificacin

Evaluacin del
Riesgo
Ingeniera

Comunicacin con el
usuario/cliente

Construccin y
adaptacin

Refinamiento

Aprobacin u observaciones
del usuario/cliente

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

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:

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

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
herramientas
mtodos
proceso
Enfoque de calidad

Ejemplo : Un futbolista
Herrramientas

Condiciones
fsicas

Mtodos

Tcnica

Proceso

90 minutos
de juego

Enfoque de
calidad

Estilo Elegancia

amateur
Profesional
(normalmente)

amateur
profesion
al
Nivel de
juego
confiable

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

Upper CASE

Diseo
Programacin
Pruebas
Mantencin

4GL

Lower CASE

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.

Anda mungkin juga menyukai