Você está na página 1de 73

INGENIERA DEL SOFTWARE I Tema 3

Procesos d I P de Ingeniera d l S ft i del Software


Universidad Cantabria Facultad de Ciencias
Juan Hernndez, Francisco Ruiz

Objetivos y Bibliografa

Comprender las relaciones entre los conceptos de proceso software, software ciclo de vida del software y metodologa metodologa. Conocer las caractersticas de los procesos software y cuales pueden ser dichos procesos. Conocer los principales ciclos de vida del software. Comprender la finalidad y caractersticas de una metodologa software y los principales tipos. Bsica s ca

Co p e e ta a Complementaria

Caps. 2 y 3 del libro de Piattini


(2007).

Caps. 2 y 3 del libro de Pressman


(2005). (2005).

ISO/IEC 12207 Information


espaola (norma UNE 71044)]
Juan Hernndez, Francisco Ruiz - IS1

Technology / Software Life Cycle ocesses 995 [ spo b e e s Processes. 1995. [Disponible versin

Caps. 2 y 4 del libro de Sommerville Cap 2 del libro de Pfleeger (2002) Cap. (2002).
3.2

Contenido

Procesos Software Concepto de Ciclo de Vida. Estndar ISO 12207. Ciclos de Vida Tradicionales

Metodologas de Desarrollo de Software

Naturaleza y Elementos Relacin con otros tipos de Procesos

Ciclos de Vida para Sistemas OO

En Cascada Incremental En Espiral Prototipado Reutilizacin Sntesis Automtica Comparativa Modelo Modelo Modelo Modelo

Tipos de Metodologas

Definicin y Objetivos j Elementos Caractersticas Deseables Conceptos Relacionados Impacto en el Entorno Estructuradas

Orientadas a Procesos Orientadas a Datos

Orientadas a Objetos (OO) giles. g

de Agrupamiento Fuente Remolino Pinball

APNDICE A: Evolucin Metodologas de Desarrollo de Software. APNDICE B: Ejemplos de Metodologas.

Juan Hernndez, Francisco Ruiz - IS1

3.3

Procesos Software
Un Proceso Software (PS) es

Naturaleza y Elementos

Un conjunto coherente de polticas, estructuras organizacionales, tecnologas, procedimientos y artefactos que son necesarios para concebir, d t f t i bi desarrollar, ll instalar y mantener un producto software.
(Fugetta, (Fugetta 2000) B A C Personal D Mtodos y Procedimientos que definen la relaciones entre las Tareas Tareas. Herramientas y Metodologas.

PROCESO SW

Juan Hernndez, Francisco Ruiz - IS1

3.4

Procesos Software

Naturaleza y Elementos

Son complejos. No son procesos de produccin produccin.

Dirigidos por excepciones, Muy determinados por circunstancias impredecibles impredecibles, Cada uno con sus peculiaridades. No son procesos de ingeniera pura. Desconocemos las abstracciones adecuadas, Dependen demasiado de demasiada gente, p g , Diseo y produccin no estn claramente separados, Presupuestos,calendarios,calidad no pueden ser planificados de forma fiable. No son (completamente) procesos creativos: Algunas partes pueden ser descritas en detalle, Algunos procedimientos han sido impuestos.
Juan Hernndez, Francisco Ruiz - IS1 3.5

Procesos Software

Naturaleza y Elementos

Basados en descubrimientos dependientes de la comunicacin, coordinacin y cooperacin en los marcos de trabajo definidos definidos.

Los entregables generan nuevos requerimientos, Los costes de ca b o de so t a e no sue e reconocerse, os del cambio del software o suelen eco oce se, El xito depende de la implicacin del usuario y de la coordinacin de muchos roles (ventas, desarrollo tcnico, cliente, etc.).
Tiene sub Tiene entrada Tiene intermedio Tiene salida Utiliza Tiene sub

Actividad

Producto

Desarrollador
Juega

Necesita Obedece

Herramienta
Tiene sub

Rol
Actividad Juan Hernndez, Francisco Ruiz - IS1 Recurso

Norma
Producto Organizacin 3.6

Procesos Software
Industriales
Foco

Relaciones con otros tipos de Procesos

Informacin
DATOS Procesar y transmitir datos estructurados y no estructurados, y conocimiento

Negocio
RELACIONES Alcanzar las condiciones que satisfacen las necesidades de los participantes, participantes clientes o usuarios Basados en estructuras de comunicacin y coordinacin humanas encontradas en todos los lenguajes y culturas Solicitar, Prometer, Ofrecer, Rechazar, Proponer, Cancelar, Medir
3.7

COSAS Transformar y ensamblar materiales y componentes en otros componentes y p productos finales, usando recursos Tradiciones de la ingeniera industrial Ensamblar, Transformar, Transportar, Almacenar, Inspeccionar

Propsito

Caractersticas

Tradiciones de la ingeniera informtica

Acciones

Enviar, Invocar, Grabar, Recuperar, Consultar, Clasificar. Cl ifi

Juan Hernndez, Francisco Ruiz - IS1

Concepto de Ciclo de Vida


Una aproximacin lgica a la adquisicin, el suministro, el desarrollo, la explotacin y el mantenimiento del software.
IEEE 1074

actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento d un producto d software, l i l i i de d de f abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso. uso
ISO 12207

Un marco de referencia que contiene los procesos, las

Responde a la pregunta Qu procesos se pueden realizar? (no cmo)


Ciclo de Vida

Ciclo de Desarrollo
3.8

Juan Hernndez, Francisco Ruiz - IS1

Estndar ISO 12207


Establece un marco de referencia comn para los procesos del

ciclo de vida del software, con una terminologa bien definida, , g , que puede ser referenciada por la industria del software.
ISO/IEC 12207: Information Technology/Software Life Cycle Processes. 1995

Define los procesos, actividades (que forman cada proceso) y tareas (que constituyen cada actividad) presentes en la adquisicin suministro adquisicin, suministro, desarrollo, operacin y mantenimiento del software. Segn esta norma, un proceso es un conjunto de actividades interrelacionadas que transforman entradas en salidas Un proceso define salidas. quin, qu, cundo, y cmo, para alcanzar un determinado objetivo. Versin en Espaol. AENOR Norma UNE 71044: Tecnologa de la informacin /
Procesos del ciclo de vida del software 1999 software. 1999.

Actualizacin y ampliacin integrando el ciclo de vida del software en el ciclo de vida de sistemas. ISO/IEC FDIS 12207: Systems and software
engineering Software life cycle processes 2007 processes. 2007.

Juan Hernndez, Francisco Ruiz - IS1

3.9

Estndar ISO 12207

Ley de las l L d l aleaciones d i de metales preciosos

Cascos de proteccin para usuarios de ciclomotores Emisiones gases de escape, vehculos a motor

Requisitos para los focos de motocicletas

Requisitos de seguridad de los neumticos y llantas de motocicletas

Ruido emitido por ciclomotores en mmovimiento

AENOR 2004
Juan Hernndez, Francisco Ruiz - IS1

Generalidades de neumticos, llantas y vlvulas para motocicletas 3.10

Estndar ISO 12207


PROCESOS PRINCIPALES
ADQUISICIN QU S C SUMINISTRO DESARROLLO EXPLOTACIN MANTENIMIENTO

PROCESOS DE SOPORTE
DOCUMENTACIN GESTIN DE CONFIGURACIN ASEGURAMIENTO DE CALIDAD VERIFICACIN VALIDACIN REVISIN CONJUNTA AUDITORA RESOLUCIN DE PROBLEMAS USABILIDAD EVALUACIN DE PRODUCTO

PROC. ORGANIZACIONALES
GESTIN INFRAESTRUCTURA MEJORA RECURSOS HUMANOS GESTIN DE ACTIVOS GEST. PROG. REUTILIZACIN INGENIERA DE DOMINIO

PROCESO DE ADAPTACIN
3.11

Juan Hernndez, Francisco Ruiz - IS1

ISO 12207: Procesos Principales

Proceso de Adquisicin. Actividades y tareas que el comprador comprador,


adquirir un sistema o producto software.

cliente o usuario realiza para usuario,

Proceso de Suministro. Actividades y tareas que efecta el suministrador, para proporcionar un


producto al cliente.

Proceso de Explotacin Explotacin. Incluye la operacin del producto


operativo a los clientes.

software en su entorno final y el soporte

Proceso d M t i i t P de Mantenimiento. Incluye la modificacin de un sistema o producto software despus de la


entrega para:
Corregir los fallos (correctivo) Mejorar el rendimiento u otros atributos (de mejora) Adaptarlo a un entorno modificado (adaptativo).

Esta modificacin (o retirada) debe hacerse preservando la integridad.


3.12

Juan Hernndez, Francisco Ruiz - IS1

ISO 12207: Procesos Principales

PROCESOS PRINCIPALES ADQUISICIN SUMINISTRO DESARROLLO EXPLOTACIN

Proceso de Desarrollo.

Captura de Requisitos Anlisis de Requisitos del Sistema Diseo Arquitectnico del Sistema Anlisis de los Requisitos del Software Diseo de la Arquitectura del Software Diseo del Software Construccin del Software Integracin del Software Prueba del Software Integracin del Sistema Prueba del Sistema Instalacin del Software

MANTENIMIENTO

Juan Hernndez, Francisco Ruiz - IS1

3.13

ISO 12207: Procesos de Soporte

Proceso de Documentacin: Desarrollo y


mantenimiento de la informacin software registrada por un proceso.

Proceso de Gestin de la Configuracin:


Establecer y mantener de la integridad de todos los productos de trabajo de un proceso o proyecto y hacerlos disponibles para las partes involucradas. Asegura que los productos de trabajo y los procesos cumplen las previsiones y planes predefinidos. Confirmacin de que todos los productos de trabajo y/o servicios software de un proceso o proyecto reflejan de forma apropiada los requisitos especificados. Estamos construyendo correctamente el producto? d t ? Sirve para determinar si el sistema o software final cumple con los requisitos previstos para su uso. Estamos construyendo el producto correcto?
3.14

Proceso de Aseguramiento de la Calidad: Proceso de Verificacin:

Proceso de Validacin:

Juan Hernndez, Francisco Ruiz - IS1

ISO 12207: Procesos de Soporte

Proceso de Revisin Conjunta:

Entendimiento

p p g comn entre las diferentes partes involucradas sobre el progreso respecto de los objetivos y sobre lo que debe hacerse para ayudar a asegurar el desarrollo de un producto que satisface a las partes involucradas involucradas.

Proceso de Auditora:

Permite determinar, de forma independiente, la conformidad de los productos y procesos seleccionados con los requisitos, planes y acuerdos.

Proceso de Resolucin de Problemas:


problemas descubiertos se analizan y resuelven resuelven.

Asegurar que todos los

Permitir la optimizacin del soporte y de la formacin, la mejora de la productividad, calidad y condiciones de trabajo de las personas y la reduccin de probabilidad de rechazo del sistema.

Proceso de Usabilidad:

Proceso de Evaluacin de Productos: Aseguramiento mediante el


3.15

examen y la medicin sistemticos que un producto satisface las necesidades sistemticos, implcitas y explcitas de los usuarios.

Juan Hernndez, Francisco Ruiz - IS1

ISO 12207: Procesos Organizacionales

Proceso de Gestin: Organizar, supervisar, y controlar el


inicio y el desempeo de cualquier proceso para conseguir sus objetivos de acuerdo a los objetivos de negocio de la organizacin.

Proceso de Infraestructura: Mantener una infraestructura fiable y


estable necesaria para cualquier otro proceso. procesos del ciclo de vida del software.

Proceso de Mejora: Establecer, evaluar, medir, control y mejorar los Proceso de Recursos Humanos: Proporcionar a la organizacin los
recursos humanos adecuados y mantener su competencia, consistente con las necesidades de la empresa

reutilizables desde su concepcin hasta su retirada.

Proceso P oceso de Gestin de Acti os: G ti Activos Gestionar lla vida d llos activos id de ti Proceso de Gestin del Programa de Reutilizacin: Planificar, g ,
gestionar y controlar el programa de reutilizacin de una organizacin y explotar de forma sistemtica las oportunidades de reutilizacin.

Proceso de Ingeniera del Dominio: Desarrollar y mantener modelos


de dominio, arquitecturas de dominio y activos para el dominio.
3.16

Juan Hernndez, Francisco Ruiz - IS1

ISO 12207: Proceso de Adaptacin


adecuar a nuestra t Organizacin y nuestros Proyectos

Juan Hernndez, Francisco Ruiz - IS1

3.17

ISO 12207: Procesos y Roles Participantes

Juan Hernndez, Francisco Ruiz - IS1

3.18

ISO 12207: Integracin con Sistemas

Juan Hernndez, Francisco Ruiz - IS1

3.19

Ciclos de Vida Tradicionales

Existen diferentes modelos de ciclo de vida del software que han intentado resolver el problema de crear software. p El auge de cada uno est asociado a un momento en el tiempo, unas tecnologas determinadas y una ciertas metodologas asociadas.
Cascada C d Prototipado i d

Incremental

Ciclos de Vida

Reutilizacin

Espiral

Sntesis Automtica
3.20

Juan Hernndez, Francisco Ruiz - IS1

Modelo en Cascada

Originalmente propuesto por Royce en 1970 y posteriormente refinado por diversos autores. Conocido como ciclo de vida lineal o bsico. Cada f C d fase empieza cuando termina la fase anterior, i d i l f i para lo cual es necesario conseguir todos los objetivos de la etapa previa. previa Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados. Al final de cada fase el personal tcnico y los usuarios tienen la oportunidad de revisar el progreso del proyecto.

Juan Hernndez, Francisco Ruiz - IS1

3.21

Modelo en Cascada

Crticas:
No refleja realmente el proceso de desarrollo del software software. Se tarda mucho tiempo en pasar por todo el ciclo. Acenta el fracaso de la industria del software en su comunicacin con el usuario final. Se convierten las especificaciones en implementaciones de manera informal. i f l El mantenimiento se realiza en el cdigo fuente. Las revisiones de proyectos de gran complejidad son muy difciles difciles. Impone una estructura de gestin de proyectos.

Juan Hernndez, Francisco Ruiz - IS1

3.22

Modelo Incremental
Anlisis Requisitos

Se aplican

Sistema

Anlisis Requisitos Software

Incremento 1
Diseo Preliminar

secuencias lineales de forma escalonada mientras progresa el Calendario.

Diseo Detallado

Incremento 2
Diseo Detallado

Codificacin y C difi i Pruebas

...
Codificacin y Pruebas Explotacin y Mantenimiento

Explotacin y Mantenimiento

Corrige l necesidad la d d de una secuencia no lineal de pasos de desarrollo desarrollo.


Incremento n

El sistema se crea aadiendo componentes funcionales incrementos. El sistema no se ve como una entidad monoltica con una fecha fija de entrega, sino que es una integracin de resultados sucesivos obtenidos despus de cada iteracin. Se ajusta a entornos de alta incertidumbre.
3.23

Juan Hernndez, Francisco Ruiz - IS1

Modelo Incremental

Ventajas:
Se evitan proyectos largos y se entrega algo de valor a los usuarios algo valor con cierta frecuencia. El usuario se involucra ms. Mayor retorno de la inversin.

Inconvenientes:
Difcil de evaluar el coste total. Requiere gestores experimentados. Difcil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo. Los errores en los requisitos se detectan tarde y su correccin resulta costosa.

Juan Hernndez, Francisco Ruiz - IS1

3.24

Modelo en Espiral

Modelo de proceso de software evolutivo que combina la naturaleza iterativa de construccin de prototipos con los aspectos controlados y sistemticos del modelo lineal secuencial. El software se desarrolla en una serie de versiones incrementales.

Durante las primeras iteraciones la versin incremental podra ser un modelo iteraciones, en papel o un prototipo. Durante las ltimas iteraciones, se producen versiones cada vez ms completas d l sistema di d l del i diseado.

Diferencias con los mtodos ms tradicionales (cascada):

Existe un reconocimiento explcito de las diferentes alternativas para alcanzar los objetivos de un proyecto. La identificacin de riesgos asociados con cada una de las alternativas . La divisin de los proyectos en ciclos. El modelo se adapta a cualquier ti d l d t l i tipo d actividad. de ti id d
3.25

Juan Hernndez, Francisco Ruiz - IS1

Modelo en Espiral

Cada ciclo empieza identificando:

Determinar objetivos, j , alternativas, restricciones

Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Plan de Requisitos Plan del Ciclo de Vida Concepto de Operacin Validacin de Requisitos V & V del diseo

Evaluar alternativas, identificar y resolver id tifi l los riesgos

Se evalan las Planificar las alternativas respecto a los fases siguientes objetivos y las restricciones. j Desarrolar, Verificar el producto del siguiente nivel Se formula una estrategia efectiva para resolver las fuentes de riesgos (simulacin, prototipado, etc.). Se plantea el prximo prototipo. Una vez resueltos los riesgos se sigue el ciclo en cascada. Cada ciclo se completa con una revisin que incluye todo el ciclo anterior y el plan para el siguiente.
Implementacin Prueba de aceptacin Integracin y prueba

Los objetivos de la porcin correspondiente. di t Las alternativas. Restricciones.

Prototipo 3 Prototipo 2

Prototipo Operativo

Prototipo 1 Simulaciones, modelos, benchmarks Requisitos R i it Sw Diseo Producto Sw Pruebas unitarias

Plan de Desarrollo Plan de Integracin y Pruebas

Diseo detallado Cdigo

Juan Hernndez, Francisco Ruiz - IS1

3.26

Modelo en Espiral

Ventajas:
Permite acomodar otros modelos. Incorpora objetivos de calidad y gestin de riesgos. Eli i errores y alternativas no atractivas al comienzo. Elimina lt ti t ti l i Permite iteraciones, vuelta atrs y finalizaciones rpidas.

Inconvenientes:
Es difcil de adaptar a los contratos. Ms adecuado para desarrollo interno.

Juan Hernndez, Francisco Ruiz - IS1

3.27

Prototipado

Paradigma de construccin de prototipos:

Escuchar al cliente cliente. Construir/revisar maqueta. Probar maqueta. El cliente ve el producto y refina sus requisitos. El desarrollador comprende mejor lo que necesita hacer.

Los prototipos tienen una doble funcin:

CLAVE

Definir reglas del juego entre fi i l d lj desarrollador y cliente


Rpido Evolutivo Operacional
3.28

TIPOS
Juan Hernndez, Francisco Ruiz - IS1

Prototipado - Rpido

No modifica el flujo del ciclo de vida. Reduce el riesgo de construir R d l i d t i productos que no satisfagan las necesidades de los usuarios. Reduce costos y aumenta la probabilidad de xito. Exige disponer de las herramientas adecuadas. No presenta calidad ni robustez. Suele utilizarse principalmente en dos reas:

Prototipado de la interfaz de usuario Prototipado del rendimiento.


El prototipado es un medio excelente para recoger el feedback p p p g (realimentacin) del usuario final.
3.29

Juan Hernndez, Francisco Ruiz - IS1

Prototipado - Rpido

Para que sea efectivo:

Aunque la construccin de prototipos puede ser efectiva, tambin pueden surgir problemas:

Debe ser un sistema con el que se pueda experimentar. q p p Debe ser comparativamente barato (< 10%). Debe desarrollarse rpidamente. nfasis en la interfaz de usuario. Equipo de desarrollo reducido. Herramientas y lenguajes adecuados.

El cliente ve funcionando lo que para l es la primera versin del producto, que ha sido construido con plastilina y alambres, y puede desilusionarse al decirle que el sistema an no ha sido construido. El desarrollador puede caer en la tentacin de ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de final, calidad y de mantenimiento que tiene con el cliente.
3.30

Juan Hernndez, Francisco Ruiz - IS1

Prototipado - Evolutivo

Construccin de una implementacin parcial que cubre los requisitos conocidos para ir aprendiendo el resto y conocidos, y, paulatinamente, incorporarlos al sistema. Caractersticas:

Reduce el riesgo y aumenta la probabilidad de xito, en cuanto a la satisfaccin del cliente. No se conocen niveles apropiados de calidad y documentacin. Problemas de gestin de configuracin. Construir software para que pueda ser modificado f l C f d d f d fcilmente es un arte desconocido.

Juan Hernndez, Francisco Ruiz - IS1

3.31

Prototipado - Operacional

Es una mezcla entre el prototipado rpido y el evolutivo. En algunos sistemas ni el prototipado rpido ni el evolutivo por s solos son aceptables porque los requisitos son:

Crticos al diseo y bien entendidos. No crticos al diseo y pobremente entendidos. Desconocidos.

El prototipado rpido por s solo es poco efectivo porque los requisitos pobremente entendidos no son crticos. El prototipado evolutivo por s solo es poco efectivo porque no ayuda a clarificar los requisitos que no se entienden.

Juan Hernndez, Francisco Ruiz - IS1

3.32

Prototipado - Operacional

Un prototipo evolutivo se construye con los requisitos bien conocidos. b d El usuario lo maneja y especifica nuevos cambios o detecta d t t problemas. bl Si el usuario dice que no se desechan. Si el usuario dice que s s Se implementan y completan para aadirlos al producto evolutivo. evolutivo

Modo de trabajo:

Juan Hernndez, Francisco Ruiz - IS1

3.33

Reutilizacin

Principios de la reutilizacin:

Existen similitudes entre distintos sistemas de un mismo dominio de aplicacin. Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos. El software puede representarse como una combinacin de mdulos
Disear aplicaciones = especificar mdulos + interrelaciones.

Procedimiento para construir un sistema mediante la reutilizacin de algo procedente de algn esfuerzo de desarrollo anterior. En la mayora de los proyecto de SW existe algo de reutilizacin. Esto pasa cuando las personas que trabajan en el proyecto conocen diseo o cdigo similares al requerido. La reutilizacin sobre todo se usa en el paradigma OO y supone cambios en el propio ciclo d vida. l i i l de id El software se puede construir igual que el hardware, mediante el ensamblaje de piezas (componentes). El uso de los componentes software j p ( p ) p facilita la reutilizacin.
3.34

Juan Hernndez, Francisco Ruiz - IS1

Reutilizacin
Si la reutilizacin predomina durante el d d t l desarrollo se ll habla de Desarrollo Basado en Componentes:
Anlisis de componentes (se buscan componentes p adecuados). Modificacin ( se modifican los componentes para satisfacer los requisitos). Diseo con reutilizacin (se disea o utiliza un nuevo trabajo para el sistema). Desarrollo e integracin.

BIBLIOTECA

Juan Hernndez, Francisco Ruiz - IS1

3.35

Reutilizacin

Ventajas:
R d Reduce ti tiempos y costes d d t de desarrollo. ll Aumenta la fiabilidad.

Inconvenientes:
Dificultad para reconocer los componentes potencialmente reutilizables. Dificultad de catalogacin y recuperacin. Problemas de motivacin. Problemas de gestin de configuracin.

Juan Hernndez, Francisco Ruiz - IS1

3.36

Sntesis Automtica

Los Requisitos se expresan en una especificacin formal detallada expresada en notacin matemtica. Los procesos (diseo, implementacin y pruebas) se reemplazan por un proceso basado en transformaciones donde la especificacin formal se refina.

Juan Hernndez, Francisco Ruiz - IS1

3.37

Sntesis Automtica

Ventajas:
S d fi el sistema utilizando un lenguaje formal. Se define l i t tili d l j f l La implementacin es automtica, asistida por el ordenador. La documentacin se genera de forma automtica automtica. El mantenimiento se realiza por sustitucin en las especificaciones, no mediante parches.

Inconvenientes:
Hay dificultad en la participacin del usuario. Los diseos estn poco optimizados.

Juan Hernndez, Francisco Ruiz - IS1

3.38

Comparacin entre Ciclos de Vida

Juan Hernndez, Francisco Ruiz - IS1

tiempo

3.39

Comparacin entre Ciclos de Vida

Cascada

Prototipado Rpido

Incremental
Juan Hernndez, Francisco Ruiz - IS1

Espiral p
3.40

Comparacin entre Ciclos de Vida

Sntesis Automtica

Reutilizacin l

Juan Hernndez, Francisco Ruiz - IS1

3.41

Ciclos de Vida para Sistemas OO

El modelo en cascada no permite aprovechar las ventajas de la tecnologa OO. Modelos tradicionales de ciclo de vida Proyecto. Desarrollo Orientado a Objetos Producto.
Pretende acelerar el desarrollo de sistemas de una manera iterativa e incremental. Generalizar los componentes para que sean reutilizables por la nueva reutilizables, forma de concebir los lenguajes de Agrupamiento programacin y su uso. Eliminacin de fronteras entre fases, ya Fuente que stas se difuminan por
L naturaleza it ti d l d La t l iterativa del desarrollo OO ll OO. Un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy dinmica.

Remolino Pinball
3.42

Juan Hernndez, Francisco Ruiz - IS1

Ciclos de Vida para OO Agrupamiento

(Meyer, 1990)

Adopta Filosofa de Producto vs Proyecto. Agrupamiento: Conjunto de clases relacionadas con un objetivo comn. Subciclos de vida cada uno con: vida, Especificacin. Agrupamiento n ESPEC DISREA VALGEN Diseo. Realizacin. TIEMPO Validacin. G Generalizacin. li i
ESPEC DISREA VALGEN
Agrupamiento 2

ESPEC

DISREA

VALGEN

Agrupamiento 1

TIEMPO
Juan Hernndez, Francisco Ruiz - IS1 3.43

Ciclos de Vida para OO Fuente

(Henderson, Sellers y Edwards, 1990)

Representa grficamente:

Mantenimiento Utilizacin

Evolucin

El alto grado de iteracin y solapamiento de la OO. Reutilizacin. R tili i

Pruebas sistemas Pruebas unitarias Codificacin Componentes

Aplicable a nivel de clase individual o agrupamientos agrupamientos.

Diseo Conceptual

Anlisis

Estudio Est dio de viabilidad y requisitos Piscina SW

Juan Hernndez, Francisco Ruiz - IS1

3.44

Ciclos de Vida para OO Remolino

(Rumbaugh, 1992)

Las metodologas de desarrollo no ofrecen una visin real. En la prctica, el desarrollo es desordenado e implica mltiples iteraciones relacionadas. El modelo en cascada asume una sola dimensin de iteracin: la fase del proyecto. proyecto Pero puede haber otras dimensiones de iteracin:

Amplitud Tamao de desarrollo. Profundidad Nivel de abstraccin o detalle. Madurez Grado de complecin, correccin y elegancia. Alternativas Diferentes soluciones a un problema. Alcance Objetivos del Sistema (requisitos cambiantes).

Proceso multicclico no lineal con forma de remolino. P lti li li l f d li

Juan Hernndez, Francisco Ruiz - IS1

3.45

Ciclos de Vida para OO Pinball

La pelota representa un proyecto


completo o un subproyecto.

(Ambler, 1994)

El Pinball refleja el proceso de desarrollo OO:

El jugador es el equipo de desarrollo. S procede d f Se d de forma it ti a iterativa


encontrar clases, atributos, mtodos e interrelaciones y definir colaboraciones, , herencia, agregacin y subsistemas.

Por ltimo se pasa a la programacin,


prueba e implementacin.

La habilidad y la experiencia son los


factores ms importantes aunque tambin importantes, se requiere algo de suerte.

Hay dos estilos a la hora de jugar: y j g

Seguro Tecnologas y mtodos probados. Al lmite Mayor riesgo, ms ventajas.

Juan Hernndez, Francisco Ruiz - IS1

3.46

Metodologas de Desarrollo de Sw

Definicin y Objetivos

Conjunto de procedimientos, tcnicas, herramientas y soporte documental que ayuda a los desarrolladores a realizar nuevo software software.

Por tanto, una metodologa representa el camino a seguir tanto para desarrollar software de manera sistemtica. Objetivos: j

Mejores Aplicaciones. Un mejor Proceso de Desarrollo que identifique salidas (o productos intermedios) de cada fase de forma que se pueda planificar y controlar los proyectos. Un Proceso Estndar en la organizacin.
3.47

Juan Hernndez, Francisco Ruiz - IS1

Metodologas de Desarrollo de Sw

Actividades y Tareas.

Elementos

El

Proceso se descompone hasta el nivel de Actividades y Tareas (actividades elementales). elementales)


TCNICAS ACTIVIDADES Y TAREAS C S S
ABCD

Procedimientos.

Definen la forma de llevar a cabo las Tareas. Vnculo de Comunicacin entre usuarios

y Desarrolladores.

Productos.

PRODUCTOS
WWWW WWWW WWWW

Obtenidos como resultado de seguir un


Procedimiento.

Pueden ser Intermedios o Finales Finales.


Tcnicas.

OTRAS HERRAMIENTAS PROCEDIMIENTOS

AUBC Se utilizan para aplicar un Procedimiento Ent. Rel. Int N:M R Pueden ser Grficas y/o Textuales Determinan el formato de los Productos resultantes en cada Tarea

Herramientas Software.

Proporcionan soporte a la aplicacin de las Tcnicas


Juan Hernndez, Francisco Ruiz - IS1 3.48

Metodologas de Desarrollo de Sw

Elementos

EJEMPLO: Diseo de Bases de Datos


MUNDO REAL
MODELO CONCEPTUAL
PROFESOR

ESQUEMA LOGICO (Relacional)

Imparte clase
ALUMNO

UD

Reglas de Transformacin
INGENIERO
Juan Hernndez, Francisco Ruiz - IS1 3.49

Metodologas de Desarrollo de Sw

En general:

Caractersticas Deseables

Claridad y facilidad de comprensin. comprensin Capacidad de soportar la evolucin de los sistemas (mantenimiento). Facilitar la portabilidad. Versatilidad respecto a los tipos de aplicaciones. p Flexibilidad / Escalabilidad (independencia respecto de la dimensin de los proyectos). Rigurosidad. Adopcin de estndares.

En Desarrollo de Software:
Existencia de reglas predefinidas. predefinidas Cobertura total del ciclo de desarrollo. Verificaciones intermedias. Planificacin y control. f Comunicacin efectiva. Utilizacin sobre un abanico amplio de p proyectos. Fcil formacin. Herramientas CASE CASE. Actividades que mejoren el proceso de desarrollo. Soporte mantenimiento. Sopo te al mantenimiento Soporte de la reutilizacin de software.

Juan Hernndez, Francisco Ruiz - IS1

3.50

Metodologas de Desarrollo de Sw

Conceptos Relacionados

Ciclo de Vida vs Metodologa.

Una Metodologa puede seguir uno o varios modelos de Ciclo de Vida. Vida Un Ciclo de Vida indica qu obtener, pero no cmo. Metodologa Ciclo de Vida + cmo?
Detalle de tcnicas, procedimientos y artefactos.

METODOLOGA = CICLO DE VIDA + coleccin de MTODOS para llevarlo a cabo

Juan Hernndez, Francisco Ruiz - IS1

3.51

Metodologas de Desarrollo de Sw
Opciones para la implantacin de
Metodologas:

Impacto en el Entorno

ENTORNO DE DESARROLLO DE SOFTWARE ORGANIZACION DE DESARROLLO DE SOFTWARE EQUIPO DE DESARROLLO DE SOFTWARE


Seleccionan las herramientas PROCEDIMIENTOS DE GESTION Dan una estructura visible

Seleccionar entre un gran nmero

de posibilidades y combinaciones de mtodos de gestin, tcnicas de g , desarrollo y soporte automatizado, para crear y desarrollar una Metodologa de Desarrollo Software g especfica. existentes y seleccionar la que ms se adapte a las necesidades.

Da informes a la direccin

Coordinan y guan

Analizar y evaluar las metodologas

METODOLOGIA DE DESARROLLO

Factores que influyen en las


metodologas:
organizacin.

soportan mtodos
SOPORTE

AUTOMATIZADO determinan las herramientas necesarias

TECNICAS

Tamao y estructura de la Tipo de aplicaciones a desarrollar.


Juan Hernndez, Francisco Ruiz - IS1

3.52

Tipos de Metodologas

Estructuradas Orientadas a Objetos

giles

Juan Hernndez, Francisco Ruiz - IS1

3.53

Tipos de Metodologas - Estructuradas

Proponen la representan:

creacin

de

modelos

del

sistema

que

Los procesos. Los flujos. os ujos Las estructuras de los datos . Desde una visin general hasta un nivel de abstraccin ms sencillo.

Enfoque Top-Down q p

Juan Hernndez, Francisco Ruiz - IS1

3.54

Tipos de Metodologas - Estructuradas


Orientadas a Procesos
ENTRADA

Tcnicas de Anlisis Estructurado Orientadas a Procesos FASES DEL ANALISIS ESTRUCTURADO

PROCESO

SALIDA

Mtodo de DeMarco

Mtodo de Gane y Sarson


1. Construir el modelo lgico actual (DFD lgico actual) 2. Construir el modelo del nuevo sistema: elaborar una especificacin estructurada y construir un modelo lgico de datos en tercera forma normal que exprese el contenido de los almacenes de datos. 3. Seleccionar un modelo lgico 4. Crear el nuevo modelo fsico del sistema it 5. Empaquetar la especificacin

ESTRUCTURADA: Modelo grfico, particionado, descendente y jerrquico de los p procesos del sistema y de los datos utilizados por stos. Componentes:
- Diagrama de Flujo de Datos - Diccionario de Datos - Especificaciones de Procesos

Se apoyan en tcnicas grficas para obtener una ESPECIFICACIN

1. Construir el modelo fsico actual (DFD fsico actual) 2. Construir el modelo lgico actual (DFD lgico actual) 3. Derivacin del nuevo modelo lgico l i 4. Crear un conjunto de modelos fsicos alternativos 5. Estimar los costes y tiempos de cada opcin 6. Seleccionar un modelo 6 Sl i dl 7. Empaquetar la especificacin

Metodologa de Yourdon/Constantine (Anlisis+Diseo orientados a Procesos):


Realizar los DFD del sistema Realizar el diagrama de estructuras Evaluar el diseo Preparar el diseo para la implantacin.
3.55

Juan Hernndez, Francisco Ruiz - IS1

Tipos de Metodologas - Estructuradas


Orientadas a Datos
ENTRADA PROCESO SALIDA

Los datos son ms estables que los procesos y pueden ser jerrquicos o no. La estructura de control del programa debe ser jerrquica o no (en funcin de los datos) y se debe derivar de la estructura de datos del p g programa. El proceso de diseo consiste en definir primero las estructuras de los datos de entrada y salida, mezclarlas todas en una estructura, jerrquica o no de programa y despus ordenar detalladamente la no, lgica procedimental para que se ajuste a esta estructura. El diseo lgico debe preceder y estar separado del diseo fsico. g p p
3.56

Juan Hernndez, Francisco Ruiz - IS1

Tipos de Metodologas - Orientadas a Objetos

Cambian los principios de las metodologas estructuradas:

Estructurado: Examinar el sistema desde las funciones y tareas. OO: Modelado del Sistema examinando el dominio del problema como un conjunto de objetos que interactan entre s s.
Objetos: Encapsulan Funciones + Datos.

Enfoques OO: q

Revolucionarios o Puros
La OO se entiende como un cambio profundo de las metodologas estructuradas que se ven como obsoletas. t t d b l t OOD (Booch), CRC/RDD (Wirfs-Brock).

Sintetistas o Evolutivos Sintetistas Evolutivos


nalisis y Diseo Estructurado se consideran como la base para el desarrollo OO. OMT RUP OMT, RUP.

Juan Hernndez, Francisco Ruiz - IS1

3.57

Tipos de Metodologas - giles

Simplifican la complejidad de otras metodologas haciendo que la carga de gestin y control sea ms liviana liviana.

La Agilidad es un aspecto que se puede incorporar a las metodologas estructuradas u OO. Entre las ms conocidas se encuentran:
XP (eXtreme Programming). SCRUM. RAD (Rapid Application Development).

Reducir los esfuerzos que no estn centrados en el puro cdigo tambin tiene inconvenientes.

Juan Hernndez, Francisco Ruiz - IS1

3.58

APNDICE A: Evolucin Metodologas de Desarrollo de Sw


Hay una largusima lista de metodologas de desarrollo de software. En los ltimas 30 aos se ha desarrollado software siguiendo tres filosofas principales :
AO 1968 1974 1975 1977 1978 1981 1985 1986 1987 1989 1990 1993 1995 1998 M ETODOLOGA Conceptos sobre la programacin estructurada de DIJKSTRA Tcnicas de programacin estructurada de W ARNIERy JACKSON Primeros conceptos sobre diseo estructurado de M YERS y YOURDON Primeros conceptos sobre anlisis estructurado GANE y SARSON Anlisis t t d A li i estructurado: DEM ARCOy W EINBERG Nace M ERISE SSADM(versin inicial) Information Engineering (versin inicial) g g( ) Anlisis y Diseo estructurado para sistemas de tiempo real de W ARDy M ELLOR SSADMVersin 3 Anlisis Di t t d A li i y Diseo estructurado para sistemas de tiempo real de it d ti ld HATLEYy PIRHBAY M ETRICA(versin inicial) SSADMVersin 4 SSADMVersin4 M ETRICAVersin 2 M ETRICAVersin 2.1 M TRICAVersin 3

Convencional Estructurada Orientada a Objetos

Juan Hernndez, Francisco Ruiz - IS1

3.59

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Convencional:

Aos 50. Desarrollo artesanal y ausencia de Metodologa. g Enfocado en la Tarea de Programacin. Inconvenientes:
o o o o Los resultados finales son impredecibles. No hay forma de controlar lo q est sucediendo en el Proyecto y que y Los cambios organizativos afectan negativamente al proceso de desarrollo. El xito de los proyectos se basa mucho en la figura del hroe it d l t b h l fi d l h y los hroes siempre acaban cansndose.

Juan Hernndez, Francisco Ruiz - IS1

3.60

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Estructurado:

Programacin Estructurada [ i d [Aos 60 ( (entorno acadmico), mediados 70 (industria)]


o Normas para escribir cdigo o Facilitar comprensin de Programas o Normas para la aplicacin de estructuras de datos y de control
PROGRAM NUMEROSIGUALES Estructurado BEGIN CLEARSCREEN; CLEARSCREEN A :=10 ; INPUT B; REPEAT IF B=A THEN PRINT A Y B SON IGUALES ELSE REDUCEDIFERENCIA(A,B); UNTIL B=A; END; PROCEDURE REDUCEDIFENCIA(A,B); BEGIN IF A>B THEN B:= B+1 ELSE B:= B - 1 END 3.61

Convencional 10 20 30 40 50 60 70 80 90 100 CLS A=10 INPUT B IF B=A THEN GOTO 50 ELSE GOTO 70 PRINT A Y B SON IGUALES GOTO 100 IF A>B THEN GOTO 80 ELSE GOTO 90 B= B + 1; GOTO 40 B B= B - 1; GOTO 40 END

Juan Hernndez, Francisco Ruiz - IS1

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Estructurado:

Diseo Estructurado (mitad aos 70)


o Mayor nivel abstraccin (independencia del lenguaje programacin) o Elemento bsico de diseo: Mdulo o Modularidad. Medidas de Calidad de Programas

C
opcin

Leer Opcin

3
3.62

Juan Hernndez, Francisco Ruiz - IS1

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Estructurado:

Anlisis Estructurado (finales aos 70)


o Previamente: Descripcin Narrativa Requisitos Especificaciones: M Monolticas. l i Redundantes. Ambiguas Ambiguas. Imposibles de Mantener. o Se obtienen Especificaciones Funcionales: Grficas. Particionadas. M i Mnimamente redundantes. t d d t

Juan Hernndez, Francisco Ruiz - IS1

3.63

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Orientado a Objetos:

Esencia: Identificacin y organizacin d conceptos dell d f de d Aos 80 T t F i lid d y D t d f Trata Funcionalidad Datos de forma conjunta. j t Principios:
Abstraccin b Ocultacin de Informacin (Encapsulamiento) Modularidad

dominio de la aplicacin y no tanto de su representacin final en un lenguaje de programacin

Las tcnicas estructuradas han influido en estas


metodologas.
Juan Hernndez, Francisco Ruiz - IS1 3.64

APNDICE B: Ejemplos de Metodologas

Metodologa MERISE. Administracin Pblica Francia (1976) Fases:

Estudio preliminar Estudio detallado Implementacin Realizacin y puesta en marcha.


NIVELES CONCEPTUAL DATOS Modelo Conceptual de Datos TRATAMIENTOS Modelo Conceptual de Tratamientos

ORGANIZATIVO FSICO

Modelo Lgico de Datos

Modelo Organizativo de Tratamientos

Modelo Fsico de Datos

Modelo Operativo de Tratamientos

Juan Hernndez, Francisco Ruiz - IS1

3.65

APNDICE B: Ejemplos de Metodologas

Metodologa SSADM Structured Systems Analysis and Design Method. Method Administracin Pblica Reino Unido (1980). (1980) SSADM
Estudio de Viabilid o dad Cons struccin y Pruebas P Espe ecificacin Lgica L del Sistema Es specificacin de n Requisitos s D Diseo Fsic co Anlisis de e Requisitos s

Planificacin Estratgica

Estudio completo

Desarrollo

Produccin

Administracin y Control

Juan Hernndez, Francisco Ruiz - IS1

3.66

APNDICE B: Ejemplos de Metodologas

METRICA v.3. Administracin Pblica Espaa (2001).



Con una nica estructura comn cubre dos tipos de desarrollo:
Estructurado. Orientado a objetos.

Procesos:
1. Planificacin de Sistemas de Informacin (PSI) 2. 2 Desarrollo de Sistemas de Informacin:
a. b. c. d. e. Estudio de Viabilidad del Sistema (EVS) Anlisis del Sistema de Informacin (ASI) Diseo d l Si Di del Sistema de Informacin (DSI) d I f i Construccin del Sistema de Informacin (CSI) Implantacin y Aceptacin del Sistema (IAS)

3. Mantenimiento de Sistemas de Informacin (MSI)

A travs de interfaces se facilita la realizacin de diversos procesos de soporte y organizativos: Gestin de Proyectos Gestin de Configuracin Proyectos, Configuracin,
Aseguramiento de Calidad, y Seguridad.
3.67

Juan Hernndez, Francisco Ruiz - IS1

APNDICE B: Ejemplos de Metodologas

METRICA v.3.

Patrn de Tarea: participantes productos de entrada y salida participantes, salida, tcnicas y prcticas.
Participantes

Productos de Entrada

TAREA
lista de acciones

Productos de Salida

Tcnicas
Juan Hernndez, Francisco Ruiz - IS1

Prcticas
3.68

APNDICE B: Ejemplos de Metodologas

MANTEMA

Una de las pocas especializada en Mantenimiento en lugar de desarrollo. Desarrollada por la Universidad Castilla-La Mancha (1999). Contempla los siguientes tipos de mantenimiento:
No Planificable (NP): Correctivo Urgente (UC): localizar y eliminar los posibles defectos que bloquean el programa o los procesos de funcionamiento de la empresa. empresa Planificable (P): Correctivo No Urgente (NUC): localizar y eliminar los posibles defectos de los programas que no son bloqueantes bloqueantes. Perfectivo (PER): aadir al software nuevas funcionalidades solicitadas por los usuarios. Adaptativo (A): modificar el software para adaptarlo a cambios en el entorno de trabajo (hardware o software). Preventivo (PRE): modificar el software para mejorar sus propiedades ( (calidad, mantenibilidad, etc.). , , )

Juan Hernndez, Francisco Ruiz - IS1

3.69

APNDICE B: Ejemplos de Metodologas

MANTEMA

Su modelo de proceso establece cuatro grupos de actividades y una coleccin de tcnicas tiles.
Urgent corrective U t ti Correctivo urgente activities and tasks

Common Actividades y initial tareas iniciales activities and tasks

PLANIFICABLE
Correctivo no urgente Perfectivo Preventivo Adaptativo

Common Actividades y final tareas finales activities and tasks

Tcnicas
Juan Hernndez, Francisco Ruiz - IS1 3.70

APNDICE B: Ejemplos de Metodologas

RUP Rational Unified Process.

Desarrollo OO
iterativo e incremental usando UML.

Juan Hernndez, Francisco Ruiz - IS1

3.71

APNDICE B: Ejemplos de Metodologas

OpenUP.

http://epf.eclipse.org/wikis/openup/ RUP abierto. Ciclo de desarrollo:


Iterativo. Micro-Incrementos Micro-Incrementos. Gestin gil del Proyecto.

Juan Hernndez, Francisco Ruiz - IS1

3.72

APNDICE B: Ejemplos de Metodologas

XP eXTreme Programming.

http://www.extremeprogramming.org Pone ms nfasis en la adaptabilidad que en la previsibilidad: los Se basa en la adopcin de una serie de prcticas:
Desarrollo iterativo e incremental incremental. Pruebas unitarias frecuentes y automatizadas. Peer programming (programacin por parejas). Cliente in-situ. Cli t i it Refactorizacin del cdigo (reescribir). Responsabilidad compartida sobre el cdigo.

cambios de requisitos son un aspecto natural e inevitable en un proyecto.

Juan Hernndez, Francisco Ruiz - IS1

3.73

Você também pode gostar