Está en la página 1de 47

GESTION DE PROYECTOS

DE TI

Metodologas de Desarrollo de Software

Tema:
Introduccin a la Ingeniera de Software

Agenda

La Ingeniera de Software.
Modelado de Sistemas.

1.- La Ingeniera
de Software

1.- La Ingeniera de Software

El considerar que un proyecto


de desarrollo de software poda
abordarse como cualquier otro ha
llevado a una serie de problemas

El identificar dichos problemas


y conocer sus causas es el nico
mtodo que nos puede llevar
hacia su solucin.

1.- La Ingeniera de Software


La ingeniera del software abarca un conjunto de tres elementos
clave: mtodos, herramientas y procedimientos
Los mtodos indican cmo construir tcnicamente el software, y
abarcan una amplia serie de tareas que incluyen:
La planificacin y estimacin de proyectos,
El anlisis de requisitos
El diseo de estructuras de datos
Programas y procedimientos
La codificacin
Las pruebas
El mantenimiento.

1.- La Ingeniera de Software


Las herramientas proporcionan un soporte automtico o
semiautomtico para utilizar los mtodos, se denominan CASE
(Computer Assisted Software Engineering).
Los procedimientos definen la secuencia en que se aplican los
mtodos, los documentos que se requieren, los controles que
permiten asegurar la calidad y las directrices de evaluacin de
progresos.

1.- La Ingeniera de Software


METODOLOGIAS DE DESARROLLO DE SW
La eleccin del ciclo de vida ms
apropiado para un proyecto es una cuestin
fundamental ya que influye decisivamente
en la velocidad con la que se llevar a
cabo el proyecto y la satisfaccin que
generar al cliente.
La evolucin de la tecnologa y la alta
heterogeneidad que presentan los proyectos
hoy en da han creado la necesidad de
afrontar los proyectos con ciclos de vida
personalizados para el perfil de cada
proyecto.

1.- La Ingeniera de Software


METODOLOGIAS DE DESARROLLO DE SW
Entre los modelos Genricos de Desarrollo de Software
tenemos:
Modelo de Cascada
Modelo Espiral
Prototipado
Metodologa gil (XP)
Proceso Unificado
Modelo CMM

1.- La Ingeniera de Software


MODELOS CLASICO O CASCADA
Naturaleza estrictamente secuencial en la ejecucin de sus fases.
Modelo es adecuado cuando los requisitos estn bien definidos,
estables y se dominan las metodologas y herramientas a utilizar.

1.- La Ingeniera de Software


MODELOS CLASICO O CASCADA

Ventajas:
Minimiza las tareas de desarrollo
Minimiza la carga de planificacin.
La complejidad de proyectos grandes
se afronta de una manera ordenada y
aumenta las posibilidades de xito.
Alto control de cada actividad y sus
resultados.
Ayuda a trabajar mejor con equipos de
desarrollo de relativamente baja
cualificacin.

1.- La Ingeniera de Software


MODELOS CLASICO O CASCADA

Desventajas:
Es muy inflexible,
Retrocede en las fases para corregir
errores
Resultados tangibles para el cliente
aparecen prcticamente al final del
proyecto, algo que muchas veces no
aceptan los clientes.

1.- La Ingeniera de Software


MODELOS CLASICO O CASCADA
La cascada retarda la reduccin del Riesgo

R
I
E
S
G
O

An. Requer.
Diseo
Cod. & Test U.

Test Subs.
Test. Sistema

T I EMPO

1.- La Ingeniera de Software


DESARROLLO DEL CICLO ESPIRAL
Ciclo de vida iterativo orientado a la eliminar progresivamente los
riesgos, hasta que el nivel de riesgo sea suficientemente bajo para
continuar con un ciclo menos complejo.
En cada iteracin se realizan los siguientes pasos:
Planificacin: Determinar objetivos, alternativas y restricciones
Anlisis de riesgo: Anlisis de riesgos y evaluacin de
alternativas
Ingeniera: Desarrollo de los entregables o prototipos de la
iteracin
Evaluacin del resultado: Evaluacin y validacin del resultado

1.- La Ingeniera de Software

Desarrollo
del ciclo
Espiral

1.- La Ingeniera de Software


DESARROLLO DEL CICLO ESPIRAL
Ventajas:
Centra su atencin en la reutilizacin de
componentes y eliminacin de errores en
informacin descubierta en fases iniciales.
Los objetivos de calidad son el primer
objetivo.
Integra desarrollo con mantenimiento.
Provee un marco de desarrollo de
hardware/software.

1.- La Ingeniera de Software


DESARROLLO DEL CICLO ESPIRAL
Desventajas:
El desarrollo contractual especifica
el modelo del proceso y los resultados
a entregar por adelantado.
Requiere de experiencia en la
identificacin de riesgos.

1.- La Ingeniera de Software


DESARROLLO DEL CICLO ESPIRAL
Plantilla para una ronda del espiral

Objetivos.
Restricciones.
Alternativas.
Riesgos.
Resolucin de riesgos.
Resultados.
Planes.
Garantas (commitments).

1.- La Ingeniera de Software


DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS
Se parte de un concepto inicial de la aplicacin y es este concepto
el que evoluciona.
Se desarrolla un primer prototipo relativamente completo,
frecuentemente a ser ya utilizado por cliente.
El cliente aporta realimentacin, se desarrolla la siguiente versin, y
as sucesivamente hasta que se alcance una versin que le satisface.
Establish
prototype
objectives

Define
prototype
functionality

Develop
prototype

Evaluate
prototype

Prototyping
plan

Outline
definition

Executable
prototype

Evaluation
report

1.- La Ingeniera de Software


DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS
Ventajas:
Se detectan los servicios que hacen falta y
confusos
Un sistema desarrollado esta disponible antes
del sistema final
El prototipo puede servir como la base de la
especificacin del sistema
El cliente participa muy activamente en el
desarrollo
Aporta resultados tangibles.
Se aade mucha flexibilidad a la negociacin
del proyecto.

1.- La Ingeniera de Software


DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS
Desventajas:
En grandes proyectos es casi imposible
saber cuando se llegar al producto final
Hay una gran tentacin de no llegar al final
con las iteraciones necesarias.
Para un desarrollador este ciclo de vida
puede ser una tentacin a desarrollar de
forma anrquica (dejar de lado requisitos,
anlisis, etc.)

1.- La Ingeniera de Software


EXTREME PROGRAMING
Una metodologa gil de desarrollo de software.
Objetivo: controlar el problema en el desarrollo del SW: alta
volatilidad, especificaciones incompletas, cambios y falta de
cultura del negocio que hace que se tarden en entender el sistema
que deben desarrollar.

1.- La Ingeniera de Software


EXTREME PROGRAMING: CARACTERISTICAS
Los requerimientos continuos (user stories)
Nmero alto de versiones con pocas funcionalidades nuevas.
Alto nivel de rotacin entre tareas del proyecto
Mxima simplicidad en el diseo.
Mantener la funcionalidad en el nivel ms bsico posible.
Aplicar tcnicas de Refactoring
El cliente debe estar siempre disponible.
Programar antes el cdigo de las pruebas unitarias.
Propiedad colectiva del cdigo.
Dejar las optimizaciones para el final.
Todo el cdigo debe tener sus pruebas de unidad.
Uso intensivo de tests de aceptacin.

1.- La Ingeniera de Software


EXTREME PROGRAMING: PARTES

Designing
Planning
Coding

Testing

1.- La Ingeniera de Software


EXTREME PROGRAMING
Ventajas:
Considera la realidad en los desarrollos con los
clientes.
Enfatiza en la importancia el diseo simple y de
las pruebas.
Inconvenientes:
La metodologa no es escalable.
Algunos de los principios parecen demasiado
extremos y no tienen un respaldo: Por ejemplo, el
principio de la programacin colectiva, Refactoring.

1.- La Ingeniera de Software


DESARROLLO ORIENTADO A ENTREGABLES O HITOS
Esta metodologa tiene cierta indefinicin en las funcionalidades
implementadas en el SW, pero fija claramente un punto final en el
tiempo.
En este ciclo de vida bsicamente se trabaja secuencialmente en
la base estable del producto que incluye llegar hasta el diseo de la
arquitectura, a partir de ah se trabaja en ciclos iterativos sobre el
diseo detallado, codificacin y pruebas.

1.- La Ingeniera de Software


DESARROLLO ORIENTADO A ENTREGABLES O HITOS
Ventajas
Estrategia relativamente ptima ante una situacin
de fecha lmite rgida
Permite reducir mucho el riesgo en proyectos
grandes si se gestionan sus mdulos de menor
prioridad con esta tcnica.
Inconvenientes
Si se implementan pocas funcionalidades de las
previstas se habr perdido mucho tiempo en la
especificacin y diseo de funcionalidades no
implementadas al final, por tanto hay que medir bien
la ambicin del trabajo previo a los ciclos iterativos.

1.- La Ingeniera de Software


DESARROLLO ORIENTADO A ENTREGABLES O HITOS
Definicin de
Requisitos

Anlisis

Diseo
Arquitectura
Requisitos alta prioridad: Diseo detallado,
codificacin, depuracin y pruebas

Requisitos alta/media prioridad: Diseo


detallado, codificacin, depuracin y pruebas

Limite en el
tiempo

Requisitos prioridad media: Diseo detallado,


codificacin, depuracin y pruebas

Requisitos baja prioridad media: Diseo


detallado, codificacin, depuracin y pruebas

Entrega
Final

1.- La Ingeniera de Software


MODELO CMM (Modelo de Madurez de Capacidades)
Es el producto de la experiencia colectiva de muchos exitosos
proyectos de software, la cual se ha documentado en la forma de un
modelo.
Usado ampliamente por la comunidad del software para evaluar la
madurez y seguridad de los procesos del software.
Se basa en la evolucin de un nivel a otro para mejorar sus
capacidades.
El CMM es un modelo de tres (3) capas.
Primera capa estn los Niveles de Madurez
Segunda estn las reas de Proceso Clave
Tercera capa, las Prcticas Claves.

1.- La Ingeniera de Software


MODELO CMM Objetivos:
Objetivo 1: Determinar el nivel de
madurez del Proceso de Desarrollo que
permita establecer un indicador de
Calidad del proceso. -> 5 Niveles de
Madurez
Objetivo 2: Servir de gua en el Proceso
de Desarrollo permitiendo la Mejora
Continua de la organizacin -> Control
de Procesos

1.- La Ingeniera de Software


MODELO CMM: NIVELES DE MADUREZ

1.- La Ingeniera de Software


MODELO CMM: Niveles de Madurez
5 Niveles de Madurez
18 reas Clave de Proceso
(KPA) en el CVS
Marco de trabajo
Actividades
Conjunto de Tareas
Tareas
Hitos, entregas
Puntos SQA
Actividades de Proteccin

1.- La Ingeniera de Software


MODELO CMM : reas de Proceso Clave (KPAs - Key Process Areas)

KPA

Objetivos
Compromisos sobre distintas Unid.Negocio
Capacidades organizativas y tcnicas
Actividades
Mtodos de supervisar la implantacin
Mtodos de verificar la implantacin

1.- La Ingeniera de Software


MODELO CMM : reas de Proceso Clave (KPAs - Key Process Areas)
NIVEL 2: Repetible
Gestin de Requisitos
Planificacin del Proyecto
Seguimiento y Supervisin del Proyecto
Software
Gestin de Subcontratacin del Software
Garanta de Calidad del Software
Gestin de Configuracin del Software

1.- La Ingeniera de Software


MODELO CMM : reas de Proceso Clave (KPAs - Key Process Areas)
Nivel 3: Definido

Enfoque del proceso de la organizacin


Definicin del proceso de organizacin
Programa de formacin
Gestin de integracin del software
Ingeniera de productos software
Coordinacin entre grupos
Revisiones peridicas

1.- La Ingeniera de Software


MODELO CMM : reas de Proceso Clave (KPAs - Key Process Areas)
Nivel 4: Gestionado
Gestin cuantitativa del proceso
Gestin de calidad del software
Nivel 5: Optimizacin
Prevencin de defectos
Gestin de la tecnologa
Gestin de cambios en el proceso

1.- La Ingeniera de Software


EL PROCESO UNIFICADO
Es un producto de Rational Software Corp,
Incorpora las mejores prcticas para el desarrollo de software de una
manera adaptable a un amplio rango de proyectos y entornos
Propone Qu y Cundo desarrollar.

Objetivos
Satisfacer los requerimientos del usuario
En tiempo y presupuesto predecible.

1.- La Ingeniera de Software


EL PROCESO UNIFICADO: DIMENSIONES

2.- Modelado de
Sistemas

2.- Modelado de Sistemas


MODELADO
Para conseguir un software de calidad, hay que idear una slida
base arquitectnica que sea flexible al cambio.
Para desarrollar software rpida y eficientemente, hay que
disponer, adems de la gente y las herramientas necesarias, de un
enfoque apropiado.
Para conseguir, un producto de calidad, es necesario seguir
ciertas pautas y no abordar los problemas de manera somera, con
el fin de obtener un modelo que represente bien el problema..
El modelado es la espina dorsal del desarrollo
software de calidad.

2.- Modelado de Sistemas


MODELADO
Un modelo es una simplificacin de la realidad. El modelo nos
proporciona los planos de un sistema, desde los ms
generales, hasta los ms detallados.
Ayudan a visualizar cmo es o queremos que
sea un sistema.
Nos permiten especificar la estructura o el
comportamiento de un sistema.
Nos proporcionan plantillas que nos guan en
la construccin de un sistema.
Documentan las decisiones que hemos
adoptado.

2.- Modelado de Sistemas


MODELADO: Principios bsicos del modelado
Hay que seleccionar el modelo
adecuado para cada momento y se
obtendrn diferentes beneficios y
diferentes costes.
Todo modelo puede ser expresado a
diferentes niveles de precisin.
Los mejores modelos estn ligados a la
realidad.
Un nico modelo no es suficiente.

2.- Modelado de Sistemas


ANALISIS Y DISEO ORIENTADO A OBJETOS
Es una tcnica para el modelado de sistemas,
Anlisis

Diseo

DFDs

DEs

E-R

Implementacin

Entornos
Programacin
Visual

de

Modelo
Relacional

Diagramas de Casos de Uso


Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboracin
Diseo de Interfaces

Modelo
Relacional !!
Diagrama de Clases
Diagrama de Estados
Diagramas de Actividad

Bases de Datos
(Objeto-)
Relacionales

2.- Modelado de Sistemas


ANALISIS Y DISEO ORIENTADO A OBJETOS
Fortalezas de la Tecnologa de Objetos:
Un solo lenguaje usado por los usuarios,
analistas, diseadores e implementadores.
Facilidades de arquitectura y reso de cdigo.
Reflejan mejor el mundo real.
Mayor precisin describiendo datos corporativos
y procesos.
Descomposicin basada en divisiones naturales.
Fcil de entender y mantener.
Estabilidad.

2.- Modelado de Sistemas


LA METODOLOGA UML, PARA EL DISEO OO
UML = Unified Modeling Language
Un lenguaje de propsito general para el modelado orientado a
objetos cuyo objetivo es describir cualquier tipo de sistema en
trminos de diagramas orientados a objetos.

Resumen
La Ingeniera de software concierne a las teoras, mtodos y
herramientas para el desarrollo, administracin y evolucin de
productos de software.
Los productos de software consisten de programas y
documentacin. Los atributos de los productos son,
mantenabilidad, dependabilidad, eficiencia y usabilidad.
El proceso de software consiste en aquellas actividades
involucradas en el desarrollo de software.

Resumen
El modelo de cascada considera cada actividad del proceso
como una actividad discreta.
El modelo de espiral se basa en anlisis de riesgos.
La visibilidad del proceso involucra la creacin de documentos
o resultados de las actividades.
Los Ingenieros de software deben tener responsabilidades ticas,
sociales y profesionales.

También podría gustarte