You are on page 1of 51

El Proceso de Desarrollo de Software: Modelos, Enfoques y Mtodos

Prof. Judith Barrios Albornoz


Grupo de Ingeniera de Conocimiento GIDyC Escuela de Ingeniera de Sistemas Universidad de Los Andes
Enero 2006 VI Congreso Expotecnologa 2006

Software
El Software nos ha permitido, entre otros: ejecutar tareas ms rpido y efectivo (procesamiento de palabras, hojas de clculo, correo electrnico, telefona mvil, etc...) apoyar los desarrollos y avances en medicina, agricultura, transporte, industrias, comercio, etc... permitir hacer nuevas cosas como educacin asistida, microciruga, robtica, etc...
Enero 2006 VI Congreso Expotecnologa 2006

Software
El Software invade nuestro mundo:
hace nuestras vidas ms confortables, eficientes y efectivas trabaja explcitamente y detrs de la escena en muchos aspectos de nuestra vida incluyendo salud, bienestar, finanzas, control , educacin, comercio, administracin, hogar, ...

Hay que asegurar que el software contribuya realmente a mejorar nuestras vidas.... !!!
Enero 2006 VI Congreso Expotecnologa 2006

Software
Porque el software puede traer problemas cuando l mismo tiene problemas:
no opera como debe operar, tiene errores
falta - humano - vista interna desarrollador fallas - producto- especificado mas no requerido - vista externa usuario

hace cosas que no debe hacer


Enero 2006 VI Congreso Expotecnologa 2006

Software de alta calidad


Calidad: grado en que un
producto cumple con las especificaciones que se han establecido para l
propiedades, caractersticas, atributos

Satisfaccin de las necesidades y expectativas del cliente


Enero 2006 VI Congreso Expotecnologa 2006

Software de alta calidad


Cumple con estndares de calidad definidos segn el tipo y uso del software

Alta Confiabilidad Alta Flexibilidad Alta Eficiencia Alta Utilidad Muy Comprensible Bajo Costo
VI Congreso Expotecnologa 2006

Enero 2006

Software ... caractersticas


el Software es
Producto del intelecto del hombre Software abstracto ciclo de vida

intangible no susceptible a males del entorno es modificable - mantenimiento se desarrolla - componentes


Enero 2006 VI Congreso Expotecnologa 2006

Software
Escribir software es un arte y una ciencia Se requiere de gran ingenio y habilidad para producir resultados robustos, fciles de entender y mantener, pero sobretodo el resultado debe ser producido de la manera ms eficiente y efectiva posible
Enero 2006 VI Congreso Expotecnologa 2006

Software: Componentes
<?php $host=localhost; $port= ; $db_name=reeis; $options= ; $tty ; $db_user=daniel; $db_password= ; $err_mesg; $db_conn; function abrir_bd_reeis() { global $db_conn, $err_mesg; global $host, $db_name, $db_user, $db_password; if (($db_conn=pg_pconnect(host=$host dbname= $db_name user=$db_user password= $db_password))=false) { echo(No fue posible conectarse); } return $db_conn; } ?>

Procedimientos

Programas

Procedimientos que dirigen el diseo, construccin y operacin

Reglas

Restricciones, reglas y normas que regulan: tiempo, procesamiento, comportamiento, estructura

Programa = algoritmo + estructura datos

Datos

Tipos de datos: estticos, dinmicos

Enero 2006

VI Congreso Expotecnologa 2006

Manual del Sistema - Referencia Manual del Usuario, uso, entrenamiento Documentos Manual de Desarrollo, Instalacin, Mantenimiento

Ciclo de Vida del Software


Definicin
Desarrollo Operacin

Disposicin
Enero 2006

Mantenimiento

VI Congreso Expotecnologa 2006

Buen Producto de Software Calidad de Software vista desde


tres puntos de vista: Calidad de Producto Calidad de Proceso de produccin Calidad del Ambiente de Operacin
VI Congreso Expotecnologa 2006

Enero 2006

Buen Producto de Software * Calidad de Producto - Software


-Usuario
-Ingeniero de software
Modelos para relacionar los dos puntos de vista

* Calidad de Proceso de Produccin


- Modelo de proceso
Guas de procesos estndares

* Calidad del ambiente


- Perspectiva de negocios
- Retorno de inversin
Enero 2006 VI Congreso Expotecnologa 2006

Parmetros de medicin

Un modelo de procesos es una representacin del ciclo de vida y/o desarrollo del software

Modelo de Procesos de Software Concepto


Operacin y Mantenimiento Modelado del Dominio de la Aplicacin Ingeniera de Requisitos Entrega de la Aplicacin

Describe los procesos requeridos para desarrollar y/o mantener software define las fases, pasos, actividades o tareas que se requieren para desarrollar software sigue uno o ms enfoques o paradigmas
Enero 2006

Pruebas de la Aplicacin

Procesos Gerenciales y de Soporte

Diseo Arquitectnico

Construccin & Integracin

Diseo Detallado

Un proceso: se puede ejecutar y repetir (con resultados


esperados)

se puede medir y controlar VI Congreso Expotecnologa 2006 se puede mejorar

Modelo de Procesos de Software


Se usa como un marco metodolgico para:
Guiar al grupo de desarrollo y/o mantenimiento Ayudar al lder del proyecto a planificar y controlar el proyecto Reducir la complejidad del proceso de desarrollo y mantenimiento de software Asegurar la produccin de software de alta calidad Mejorar el proceso de desarrollo de software en una organizacin
Enero 2006 VI Congreso Expotecnologa 2006

Ciclo de Desarrollo
Desarrollo
Anlisis Diseo Instalacin Construccin Pruebas
Enero 2006 VI Congreso Expotecnologa 2006

Proceso de Produccin de Software DESARROLLO


Anlisis y especificacin de requisitos Diseo del producto Construccin codificacin Pruebas (unidades, integracin, sistema) Instalacin y Entrega Mantenimiento
Gerencia de Proyectos Caracterizacin del proyecto Planificacin y Control tiempo /recursos Equipo de trabajo habilidades Recursos Hardware, Software Especificacin y Control de la Calidad de un producto de Software

Procesos TECNICOS
Enero 2006

Procesos GERENCIALES

VI Congreso Expotecnologa 2006

Enfoques y Orientaciones de Desarrollo Un ENFOQUE es una


manera particular de ver y organizar los pasos contenidos en el ciclo de desarrollo de software
Las interacciones entre las fases/etapas, actividades y/o tareas determinan el tipo de relaciones de intercambio de informacin La interaccin define la filosofa o enfoque de desarrollo
Enero 2006 VI Congreso Expotecnologa 2006

Clasificacin de los Modelos de Procesos de Software: Enfoques


El enfoque de ingeniera de sistemas fsicos
El modelo de cascada El modelo V El modelo Sala Limpia

El enfoque evolutivo
Modelos basados en prototipos El modelo de espiral El modelo incremental El modelo de versiones

El enfoque de procesos giles


El modelo de Programacin Extrema XP

Enfoque Formal
Especificacin matemtica

Enfoque de software libre


Enero 2006

VI Congreso Expotecnologa 2006

Enfoques y Orientaciones de desarrollo: Paradigma u Orientacin


Asociado con el conjunto de conceptos bsicos sobre los que se basa la definicin del proceso de desarrollo de un producto de software Conlleva a la utilizacin de mtodos, tcnicas y herramientas especificas (propias del paradigma)
Enero 2006 VI Congreso Expotecnologa 2006

Clasificacin de los Modelos de Procesos de Software: Orientacin


El enfoque orientado a objetos - OO
El mtodo Booch OOSE El modelo de proceso unificado (RUP - Rational Unified Process)

El enfoque basado en reutilizacin de componentes


Modelos de desarrollo de software con reutilizacin Modelos de desarrollo de software para reutilizacin Modelo de proceso de dos fases o modelo TWIN
Enero 2006 VI Congreso Expotecnologa 2006

Representacin de los Modelos de Procesos de Software: Elemento Central

Modelos orientados a Actividades (tradicional )


Fundamentados en el proceso de solucin de problemas Constan de secuencias de actividades, normalmente jerrquicas, que indican qu hacer Son apropiados para procesos de desarrollo que son determinsticos Fase/Etapa Actividad Tarea
Enero 2006 VI Congreso Expotecnologa 2006

para desarrollar

Producto

Representacin de los Modelos de Procesos de Software: Elemento Central Modelos orientados a Producto
Representan el proceso de desarrollo a travs de la evolucin del producto El conjunto de actividades del proceso est encadenado a su salida: el producto Producto Fase Fase Fase Actividad Actividad Estados del Actividad Tarea producto: P1, Tarea Tarea
P2, , Pn
A2

P1
A1

A4

P2 Etapa 1
A3

A5

A9

A8

Pn Etapa n

A7

Etapa 2
Enero 2006

VI Congreso Expotecnologa 2006

Representacin de los Modelos de Procesos de Software: Elemento Central Modelos orientados a Decisiones
El proceso de transformacin sucesiva del producto es visto como resultado de decisiones que el grupo de desarrollo toma en la medida que el proyecto avanza Estos modelos no solamente indican cmo un proceso avanza sino, tambin, el porqu Son apropiados para procesos de desarrollo que no son determinsticos situacin
Situacin Intencin
determina

Nueva situacin intencin Producto modificado

Accin
modifica

Enero 2006

Producto

VI Congreso Expotecnologa 2006

Algunos MODELOS DE PROCESOS con representacin orientada a la ACTIVIDAD

Enero 2006

VI Congreso Expotecnologa 2006

Modelo CASCADA Royce, 1970


ANALISIS DISEO SISTEMA DISEO PROGRAMAS CODIFICACION
PRUEBA UNIDADES & INTEGRACION PRUEBA SISTEMA PRUEBA ACEPTACION

INSTALACIN
Enero 2006 VI Congreso Expotecnologa 2006

Modelo V Jensen & Tonies, 1979


Variacin del Modelo Cascada actividades de prueba y validacin estn relacionadas con el anlisis y diseo

Requisitos y anlisis

Valida r

equisit os

Operacin/mantenimiento

Diseo del sistema

Verifica dis
Program a

eo

Prueba aceptacin Pruebas del sistema

Diseo de programas

s correc tos

Pruebas de unidades Construccin


Re-ejecucin
Enero 2006 VI Congreso Expotecnologa 2006

Modelos de Prototipos
ANALISIS
DISEO CONSTRUCCION EVALUACION

80s

PROTOTIPO

desechable

Diseo Detallado
MODIFICACION

utilizable

CONSTRUCCION

PRUEBAS INSTALACION

Versiones sucesivas o prototipo evolutivo: se va completando la funcionalidad de manera progresiva


mientras la versin no sea aceptada Anlisis Diseo Construccin Evaluacin

Refinamiento
Enero 2006 VI Congreso Expotecnologa 2006

Modelo Incremental
Producto de Software seccionado en subsistemas, mdulos operativos o componentes En cada iteracin del proceso se desarrolla una particin que completa el producto
4 2 1
Repita para cada particin del producto

Planeacin

Anlisis

Diseo

Construccin
Refinamiento + otra particin

Evaluacin

Enero 2006

VI Congreso Expotecnologa 2006

Modelo Espiral Boehm 1988


Determinar objetivos, alternativas y restriccciones
es iccion Restr es iccion Restr

Anlisis
Anlis is

Evaluar alternativas y riesgos


de Rie s gos

t Al

iva at n er

s4 na er as 3 tiv
rn lte A

de Rie sgos

t Al
Presupuesto

as 2 tiv a

iccio Restr

nes

Anlis is
Anlis is de

Presupuesto

Presupuesto
start

Presupuesto

Al t e rna t

Re st ri

de Rie

sgos
Prototipo2 Prototipo 3 Prototipo 4

ivas

cc io n
1

es

Riesg os

Proto-tipo1 Concepto de operacin

Inte Pla graci nd n eP y rue bas

Plan d Desa e rrollo

s isito equ dos R da vali

Planificar

Plan Implementacin

o dad vali o o d Dise erifica v y bas Prue ma as e Prueb n Sist ptaci ace

i qu W e R eS d

D So ise f t w o ar e

Plan Requisitos Ciclo de vida

to si

Diseo detallado Cdigo

s ba ue idad Pr Un de

Desarrollar y probar

Enero 2006

VI Congreso Expotecnologa 2006

Modelo de Desarrollo Rpido (RAD) J. Martin


Equipo 3
Modelado de gestin gesti Modelado de datos Modelado de procesos Generacin de Generaci aplicaciones Pruebas

1991

Equipo 2

Planeacin + Diseo de arquitectura

Modelado de gestin gesti

Equipo 1 Modelado de gestin gesti

Modelado de datos Modelado de procesos

Modelado de datos Modelado de procesos

Generacin de Generaci aplicaciones Pruebas

Integracin

Generacin de Generaci aplicaciones Pruebas Tiempo (60 90 das)


Enero 2006 VI Congreso Expotecnologa 2006

Modelos Basados en Componentes


Componente de software reutilizable
Son artefactos de software auto-contenidos y claramente identificables que:
describen y/o ejecutan funciones especficas, tienen interfaces claras, tienen una documentacin apropiada y tienen un status de reuso definido se integra con relativa facilidad a un sistema de software en desarrollo a travs de su interfaz
solicita un servicio

C1
consume el servicio
Enero 2006 VI Congreso Expotecnologa 2006

C2

Modelo Basado en Componentes


El Modelo Twin integra tres procesos complementarios asociados al desarrollo de software basado en reutilizacin de componentes

Ingeniera de Dominios
Anlisis del Dominio Especificacin de requisitos

Ingeniera de Componentes
Desarrollo de Componentes

Diseo del Dominio

modelos de anlisis
Especificacin De Componentes

diseos genricos

componentes

Diseo de la Arquitectura

Bsqueda de Componentes

Adapt / Des. Componentes

Integracin de Componentes

Ingeniera de Aplicaciones
Enero 2006 VI Congreso Expotecnologa 2006

Modelo Basado en Componentes


Desarrollo de software para reutilizacin
Producir (adaptar o desarrollar) componentes de software reutilizable con el propsito expreso de ser reutilizados en el desarrollo de aplicaciones. Implica la creacin de repositorios que permiten la rpida recuperacin y el mantenimiento de componentes Emplea el modelo de procesos de la Ingeniera de Dominios y la Ingeniera de Componentes

Enero 2006

VI Congreso Expotecnologa 2006

Modelo Basado en Componentes


Desarrollo de software con reutilizacin
Desarrollar aplicaciones reutilizando componentes existentes y disponibles en repositorios o bases de componentes reutilizables Los componentes deben ser confiables y actuar de acuerdo a sus especificaciones Emplea el modelo de procesos de la Ingeniera de

Aplicaciones

Enero 2006

VI Congreso Expotecnologa 2006

Ingeniera de Dominio

Ing. de Componentes

Ingeniera de Aplicacin

Desarrollo Basado en Reutilizacin de Componentes de SW

Reutilizacin de Componentes

Fbrica de software

Instalacin y Entrega de producto de SW Ingeniera de Aplicacin

Pruebas y Depuracin de producto SW Ensamblaje de producto de SW Diseo de Aplicacin de SW Anlisis y Especificacin de Requisitos de SW

Definicin de Componentes reutilizables

Aprovisionamiento de Componentes Reutilizables

Determinacin de componentes reutilizables

Ingeniera de Componentes

Ingeniera de Dominio

Gestin de Repositorio de componentes reutilizables Estandarizacin desarrollo de componentes reutilizables

Delimitacin del dominio tecnolgico y de negocios

Creacin de componentes reutilizables

Proceso de Produccin de SW Fbricas de Software


Enero 2006 VI Congreso Expotecnologa 2006

Modelo Basado en Componentes


Lneas de productos
Es un conjunto de sistemas de software que comparten un conjunto comn y gestionado de aspectos, que satisfacen las aspectos necesidades especficas de un segmento de mercado particular, y que son desarrollados, de una manera preestablecida, a partir de preestablecida un conjunto de activos fundamentales [Clements y Northrop, fundamentales
2002]

Enero 2006

VI Congreso Expotecnologa 2006

Modelo Unificado (RUP) Krutchen, 2000


Proceso de desarrollo constituido por la repeticin de una serie de ciclos un cierto nmero de veces (iteraciones)
Ciclo
Actividades
Modelado de Negocios

Tiempo
Fases

Iniciacin

Elaboracin

Construccin

Transicin

Requisitos Analisis & Diseno Implementacion Pruebas Despliegue


Gestion de configuracion Gestion de proyectos Ambiente V1 V2 Vn

Enero 2006

Interacin

VI Congreso Expotecnologa 2006

Modelo de Programacin Extrema (XP)


XP es una coleccin de prcticas altamente disciplinadas
(English, 2002)
Anlisis An
Diseo Codificacin Prueba Diseo Codificacin Prueba Diseo Codificacin Prueba Diseo Codificacin Prueba Diseo Codificacin Prueba Diseo Codificacin Prueba Diseo Codificacin Prueba

El juego de planificacin, Entregas pequeas, Programacin en parejas, Tiempo Diseo simple, Pruebas, Refactora, semana de 40 horas, estndares de codificacin
Basada en casos (historias), iteraciones y pruebas que se elaboran antes de codificar
Enero 2006

Alcance

VI Congreso Expotecnologa 2006

Modelo de Produccin de Software Libre

Prototipo Inicial

Prototipo Mejorado i+n

Prototipo Mejorado i

Mejora de Prototipo
Prototipo Mejorado i+1

Versin Final

Prueba

Disea

Integra Integra Integra


Decide

Evala Evala Evala

Construye Construye Construye

Construye

Mdulo de SW

Decide Decide Decide

Mdulo de SW

Enero 2006

VI Congreso Expotecnologa 2006

Prototipo Mejorado

Prueba Prueba Prueba

Disea Disea Disea

Integra

Evala

Enfoque Libre de Produccin de Software Un escenario

Informacin generada

Sitio WEB Herramientas de soporte


Consenso

Enero 2006

VI Congreso Expotecnologa 2006

Proyectos de Software
Modelo de PRODUCTO Modelo de PROCESO

Enero 2006

VI Congreso Expotecnologa 2006

Metodologa

(ciencia)

El cuerpo de mtodos empleados por la Ingeniera de Software para producir, mantener y operar software

Metodologa

(punto de vista del desarrollador)

Es la descripcin, explicacin y evaluacin sistemtica de los aspectos metodolgicos del desarrollo de productos de software
contiene el razonamiento lgico seguido para resolver un problema proporciona primitivas al desarrollador de sistemas durante el proceso de desarrollo de un producto
Enero 2006 VI Congreso Expotecnologa 2006

Mtodos de DESARROLLO de Modelo de SOFTWARE Producto software

Es el que define de manera formal el conjunto de conceptos que se deben conocer y las actividades que se deben ejecutar para resolver un problema especfico Compuesto de directivas y reglas para la realizacin de las actividades de desarrollo y que permiten construir un producto o sistema Basado en un enfoque para desarrollar un proyecto o sistema de software
Enero 2006 VI Congreso Expotecnologa 2006

Modelo de Proceso produccin

Tcnica de desarrollo
Procedimiento detallado (repetible) que describe cmo debe elaborarse una parte del producto de software o un producto intermedio
Ejemplo: Tcnica de Inspeccin de Cdigo

Herramienta de desarrollo
Sistema de software usado por el grupo de desarrollo para ejecutar ciertas actividades o tareas del proceso de desarrollo
Ejemplo: Herramientas CASE, Compiladores, Ambientes de programacin

Lenguaje o notacin de modelado


Conjunto de reglas grficas o textuales usado para representar sistemas o productos subir : Ascensor
Ejemplo: Lenguaje de Modelado Unificado (UML)
: Cabina
encender cerrar

: Puerta
Enero 2006 VI Congreso Expotecnologa 2006

: Luz

Mejora de los Procesos de Software


Se puede entender como:
Aumentar su capacidad, eficacia, eficiencia y su fiabilidad. Eficacia: se obtiene el resultado deseado Eficiencia: uso optimo de recursos Capacidad: se predice su resultado Fiabilidad: se comporta como previsto Se incluyen los procesos de organizacin, gestin de proyecto, recursos y personal, medicin y control de calidad de producto y proceso
Enero 2006 VI Congreso Expotecnologa 2006

Mejora de los Procesos de Software


CMM CMMI Capability & Maturity Model Un proceso es maduro cuando esta explcitamente documentado, gestionado, medido, NIVELES de MADUREZ controlado y continuamente mejorado

5: OPTIMIZADO 4: Gestionado 3: Definido 2: Repetible 1: Inicial

Enero 2006

VI Congreso Expotecnologa 2006

RESUMEN
Software Importancia global Calidad de software (producto + proceso) Modelo de Procesos de Software
Ciclo de vida y desarrollo

Produccin de Software
Modelos, enfoques, mtodos Mejora continua
Enero 2006 VI Congreso Expotecnologa 2006

CONCLUSIONES
No hay una solucin para TODOS los problemas de desarrollo de software
Escogencia de un Modelo de Proceso depende del TIPO de PRODUCTO a desarrollar y de las restricciones de definidas para el PROYECTO
Caracterizacin de Producto y Proyecto
Enero 2006 VI Congreso Expotecnologa 2006

CONCLUSIONES
Un Proceso de Software es ejecutado por personas capacitadas mediante el uso de herramientas especficas y siguiendo un conjunto de lineamientos o guas de ejecucin Procesos dependen de las personas actividad humana que conocen profundamente el dominio de aplicacin del producto de software
Enero 2006 VI Congreso Expotecnologa 2006

CONCLUSIONES
No olvidar que los Modelos de Procesos son representaciones abstractas por lo tanto debe ser interpretado correctamente para que realmente apoye a quienes desarrollan software se requiere CRITERIO y CAPACIDAD segn contexto Surgen NUEVOS especialistas en la Ingeniera de Software: Ingenieros de mtodos
Enero 2006 VI Congreso Expotecnologa 2006

Preguntas ?

! MUCHAS GRACIAS por su ATENCION !


Enero 2006 VI Congreso Expotecnologa 2006

You might also like