Está en la página 1de 73

INGENIERA DEL SOFTWARE I

Tema 3

P
Procesos
d
de IIngeniera
i d
dell S
Software
ft
Universidad Cantabria Facultad de Ciencias
Juan Hernndez, Francisco Ruiz

Objetivos y Bibliografa

Comprender las relaciones entre los conceptos de proceso


software ciclo de vida del software y metodologa.
software,
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

Complementaria
Co
p e e ta a

Caps. 2 y 3 del libro de Piattini

Caps. 2 y 3 del libro de Pressman

ISO/IEC 12207 Information

Caps. 2 y 4 del libro de Sommerville

(2007).

Technology / Software Life Cycle


ocesses 1995.
995 [[Disponible
spo b e versin
e s
Processes.
espaola (norma UNE 71044)]

Juan Hernndez, Francisco Ruiz - IS1

(2005).
(2005).

Cap.
Cap 2 del libro de Pfleeger (2002).
(2002)
3.2

Contenido

Procesos Software

Naturaleza y Elementos
Relacin con otros tipos de Procesos

En Cascada
Incremental
En Espiral
Prototipado
Reutilizacin
Sntesis Automtica
Comparativa

Modelo
Modelo
Modelo
Modelo

Concepto de Ciclo de Vida.


Estndar ISO 12207.
Ciclos de Vida Tradicionales

Ciclos de Vida para Sistemas OO


de Agrupamiento
Fuente
Remolino
Pinball

Juan Hernndez, Francisco Ruiz - IS1

Metodologas de Desarrollo de Software

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

Estructuradas

Orientadas a Objetos (OO)


giles.
g

Tipos de Metodologas

Orientadas a Procesos
Orientadas a Datos

APNDICE A: Evolucin Metodologas de


Desarrollo de Software.

APNDICE B: Ejemplos de Metodologas.

3.3

Procesos Software

Naturaleza y Elementos

Un Proceso Software (PS) es

Un conjunto coherente de polticas, estructuras


organizacionales,
tecnologas,
procedimientos
y
artefactos
t f t que son necesarios
i para concebir,
bi desarrollar,
d
ll
instalar y mantener un producto software.
(Fugetta 2000)
(Fugetta,
B
A

Mtodos y Procedimientos que


definen la relaciones entre las Tareas.
Tareas

C
Personal

Juan Hernndez, Francisco Ruiz - IS1

PROCESO
SW

Herramientas y
Metodologas.

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
p
demasiado de demasiada gente,
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
os costes de
del ca
cambio
b o de
del so
software
t a e no
o sue
suelen
e reconocerse,
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 sub

Tiene entrada
Tiene intermedio
Tiene salida

Actividad

Producto

Utiliza

Desarrollador

Herramienta

Necesita

Juega

Obedece

Rol
Actividad
Juan Hernndez, Francisco Ruiz - IS1

Tiene sub

Norma
Recurso

Producto

Organizacin
3.6

Procesos Software
Industriales

Informacin

Negocio

COSAS

DATOS

RELACIONES

Transformar y
ensamblar materiales y
componentes en otros
componentes
p
y
productos finales,
usando recursos

Procesar y transmitir
datos estructurados y no
estructurados, y
conocimiento

Alcanzar las condiciones


que satisfacen las
necesidades de los
participantes clientes o
participantes,
usuarios

Tradiciones de la
ingeniera industrial

Tradiciones de la
ingeniera informtica

Basados en estructuras
de comunicacin y
coordinacin humanas
encontradas en todos
los lenguajes y culturas

Ensamblar,
Transformar,
Transportar, Almacenar,
Inspeccionar

Enviar, Invocar, Grabar,


Recuperar, Consultar,
Cl ifi
Clasificar.

Solicitar, Prometer,
Ofrecer, Rechazar,
Proponer, Cancelar,
Medir

Foco

Propsito

Caractersticas

Acciones

Relaciones con otros tipos de Procesos

Juan Hernndez, Francisco Ruiz - IS1

3.7

Concepto de Ciclo de Vida


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

Un marco de referencia que contiene los procesos, las

actividades y las tareas involucradas en el desarrollo, la


explotacin
l
i y ell mantenimiento
i i
d un producto
de
d
d software,
de
f
abarcando la vida del sistema desde la definicin de los
requisitos hasta la finalizacin de su uso
uso.
ISO 12207

Responde a la pregunta Qu procesos se pueden realizar?


(no cmo)
Ciclo de Vida

Juan Hernndez, Francisco Ruiz - IS1

Ciclo de Desarrollo
3.8

Estndar ISO 12207


Establece un marco de referencia comn para los procesos del

ciclo de vida del software,, con una terminologa


g bien definida,,
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,
adquisicin suministro,
suministro
desarrollo, operacin y mantenimiento del software.
Segn esta norma, un proceso es un conjunto de actividades
interrelacionadas que transforman entradas en salidas.
salidas Un proceso define
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.
software 1999.
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.
processes 2007.
2007

Juan Hernndez, Francisco Ruiz - IS1

3.9

Estndar ISO 12207

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

Cascos de proteccin para


usuarios de ciclomotores

Requisitos para los focos


de motocicletas

Requisitos de seguridad
de los neumticos y
llantas de motocicletas

AENOR 2004
Juan Hernndez, Francisco Ruiz - IS1

Emisiones gases de
escape, vehculos a
motor

Ruido emitido por


ciclomotores en
mmovimiento

Generalidades de
neumticos, llantas y
vlvulas para motocicletas
3.10

Estndar ISO 12207


PROCESOS PRINCIPALES

PROCESOS DE SOPORTE

ADQUISICIN
QU S C

DOCUMENTACIN

SUMINISTRO

GESTIN DE CONFIGURACIN

DESARROLLO

ASEGURAMIENTO DE CALIDAD

EXPLOTACIN

VERIFICACIN

MANTENIMIENTO

VALIDACIN

PROC. ORGANIZACIONALES

REVISIN CONJUNTA
AUDITORA

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

Juan Hernndez, Francisco Ruiz - IS1

RESOLUCIN DE PROBLEMAS
USABILIDAD
EVALUACIN DE PRODUCTO

PROCESO
DE
ADAPTACIN
3.11

ISO 12207: Procesos Principales

Proceso de Adquisicin.
Actividades y tareas que el comprador,
comprador
adquirir un sistema o producto software.

cliente o usuario,
usuario realiza para

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
P
de Mantenimiento.
M t i i t
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.

Juan Hernndez, Francisco Ruiz - IS1

3.12

ISO 12207: Procesos Principales

Proceso de Desarrollo.

PROCESOS PRINCIPALES
ADQUISICIN
SUMINISTRO
DESARROLLO
EXPLOTACIN

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

Juan Hernndez, Francisco Ruiz - IS1

MANTENIMIENTO

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.

Proceso de Aseguramiento de la Calidad:

Asegura que los


productos de trabajo y los procesos cumplen las previsiones y planes predefinidos.

Proceso de Verificacin:

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 ?

Proceso de Validacin:

Sirve para determinar si el sistema o software


final cumple con los requisitos previstos para su uso. Estamos construyendo el
producto correcto?

Juan Hernndez, Francisco Ruiz - IS1

3.14

ISO 12207: Procesos de Soporte

Proceso de Revisin Conjunta:

Entendimiento

partes involucradas sobre el progreso


p g
comn entre las diferentes p
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:

Proceso de Resolucin de Problemas:

Permite determinar, de forma independiente, la


conformidad de los productos y procesos seleccionados con los requisitos, planes y
acuerdos.
Asegurar que todos los

problemas descubiertos se analizan y resuelven.


resuelven

Proceso de Usabilidad:

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 Evaluacin de Productos: Aseguramiento mediante el

examen y la medicin sistemticos,


sistemticos que un producto satisface las necesidades
implcitas y explcitas de los usuarios.

Juan Hernndez, Francisco Ruiz - IS1

3.15

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

Proceso de Mejora: Establecer, evaluar, medir, control y mejorar los

estable necesaria para cualquier otro proceso.


procesos del ciclo de vida del software.

Proceso de Recursos Humanos: Proporcionar a la organizacin los


recursos humanos adecuados y mantener su competencia, consistente con las
necesidades de la empresa

P oceso de Gestin de Activos


Proceso
Acti os: Gestionar
G ti
l vida
la
id de
d los
l
activos
ti

reutilizables desde su concepcin hasta su retirada.

Proceso de Gestin del Programa


g
de Reutilizacin: Planificar,,

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.

Juan Hernndez, Francisco Ruiz - IS1

3.16

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 p
problema de crear software.
El auge de cada uno est asociado a un momento en el
tiempo, unas tecnologas determinadas y una ciertas
metodologas asociadas.
C
Cascada
d

Incremental

Espiral

Juan Hernndez, Francisco Ruiz - IS1

Prototipado
i d

Ciclos
de
Vida

Reutilizacin

Sntesis
Automtica
3.20

Modelo en Cascada

Originalmente propuesto por


Royce en 1970 y posteriormente
refinado por diversos autores.
Conocido como ciclo de vida lineal o
bsico.
C d fase
Cada
f
empieza
i
cuando
d termina
i la
l fase
f
anterior,
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
i f
informal.
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

secuencias lineales
de forma escalonada

Anlisis
Requisitos
Software

Incremento 1
Diseo
Preliminar

mientras progresa el

Diseo
Detallado

Corrige la
l necesidad
d d
de una secuencia no lineal

Codificacin
C
difi
i y
Pruebas

Incremento 2

Calendario.

Diseo
Detallado

...

Explotacin y
Mantenimiento

Codificacin y
Pruebas

Incremento n

Explotacin y
Mantenimiento

de pasos de desarrollo.
desarrollo

El sistema se crea aadiendo componentes funcionales incrementos.

Se ajusta a entornos de alta incertidumbre.

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.

Juan Hernndez, Francisco Ruiz - IS1

3.23

Modelo Incremental

Ventajas:
Se evitan proyectos largos y se entrega algo
algo de valor
valor a los usuarios
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,


iteraciones la versin incremental podra ser un modelo
en papel o un prototipo.

Durante las ltimas iteraciones, se producen versiones cada vez ms


completas
l
d l sistema
del
i
di d
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
d l se adapta
d t a cualquier
l i tipo
ti
d actividad.
de
ti id d

Juan Hernndez, Francisco Ruiz - IS1

3.25

Modelo en Espiral

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

de Riesgos
Anlisis
de Riesgos
Anlisis
de Riesgos
Anlisis de
Riesgos

Prototipo 3
Prototipo 2

Plan del Ciclo de Vida

Prototipo
Operativo

Prototipo 1
Simulaciones, modelos, benchmarks

Plan de Requisitos
Concepto de
Operacin

Plan de
Desarrollo

Validacin de
Requisitos

Plan de
Integracin
y Pruebas

V & V del
diseo

Requisitos
R
i it
Sw

Diseo
Producto
Sw

Diseo
detallado
Cdigo

Pruebas
unitarias

Se evalan
las
Planificar las
alternativas respecto a los
fases siguientes
objetivos
j
y las restricciones.
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

Evaluar alternativas,
id tifi
identificar
y resolver
l
los riesgos

Anlisis

Cada ciclo empieza


identificando:

Determinar
objetivos,
j
,
alternativas,
restricciones

Juan Hernndez, Francisco Ruiz - IS1

Prueba de
aceptacin

Integracin
y prueba

3.26

Modelo en Espiral

Ventajas:
Permite acomodar otros modelos.
Incorpora objetivos de calidad y gestin de riesgos.
Elimina
Eli i errores y alternativas
lt
ti
no atractivas
t ti
all comienzo.
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.

Los prototipos tienen una doble funcin:

El cliente ve el producto y refina sus requisitos.


El desarrollador comprende mejor lo que necesita hacer.

CLAVE

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

TIPOS
Juan Hernndez, Francisco Ruiz - IS1

Rpido

Evolutivo

Operacional
3.28

Prototipado - Rpido

No modifica el flujo del ciclo de


vida.
R d
Reduce
ell riesgo
i
de
d construir
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 p
prototipado
p
es un medio excelente p
para recoger
g
el feedback
(realimentacin) del usuario final.

Juan Hernndez, Francisco Ruiz - IS1

3.29

Prototipado - Rpido

Para que sea efectivo:

Debe ser un sistema con el q


que se pueda
p
experimentar.
p

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,
final sin tener en cuenta los compromisos de
calidad y de mantenimiento que tiene con el cliente.

Debe ser comparativamente barato (< 10%).


Debe desarrollarse rpidamente.
nfasis en la interfaz de usuario.
Equipo de desarrollo reducido.
Herramientas y lenguajes adecuados.

Aunque la construccin de prototipos puede ser efectiva,


tambin pueden surgir problemas:

Juan Hernndez, Francisco Ruiz - IS1

3.30

Prototipado - Evolutivo

Construccin de una implementacin parcial que cubre los


requisitos conocidos,
conocidos para ir aprendiendo el resto yy,
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
C
f
para que pueda
d ser modificado
d f d fcilmente
f l
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

Modo de trabajo:

Un prototipo evolutivo se
construye con los requisitos
b
bien
conocidos.
d
El usuario lo maneja y
especifica nuevos cambios o
d t t problemas.
detecta
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

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 ell propio
i ciclo
i l de
d vida.
id
El software se puede construir igual que el hardware, mediante el
ensamblaje
j de p
piezas ((componentes).
p
) El uso de los componentes
p
software
facilita la reutilizacin.

Juan Hernndez, Francisco Ruiz - IS1

3.34

Reutilizacin

BIBLIOTECA

Si la reutilizacin predomina
d
durante
t
ell desarrollo
d
ll
se
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.

Juan Hernndez, Francisco Ruiz - IS1

3.35

Reutilizacin

Ventajas:
Reduce
R d
ti
tiempos
y costes
t de
d desarrollo.
d
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:
Se
S d
define
fi ell sistema
i t
utilizando
tili
d un lenguaje
l
j formal.
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

Incremental
Juan Hernndez, Francisco Ruiz - IS1

Prototipado
Rpido

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
reutilizables, por la nueva
forma de concebir los lenguajes de
Agrupamiento
programacin y su uso.
Eliminacin de fronteras entre fases, ya
Fuente
que stas se difuminan por
La
iterativa
L naturaleza
t l
it ti del
d l desarrollo
d
ll OO.
OO
Un alto grado de iteracin y solapamiento,
lo que lleva a una forma de trabajo muy
dinmica.

Juan Hernndez, Francisco Ruiz - IS1

Remolino
Pinball
3.42

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,
vida cada uno con:
Especificacin.
Agrupamiento n
ESPEC
DISREA
VALGEN
Diseo.
Realizacin.
TIEMPO
Validacin.
Generalizacin.
G
li i
ESPEC

ESPEC

DISREA

DISREA

VALGEN

VALGEN

Agrupamiento 2

Agrupamiento 1

TIEMPO
Juan Hernndez, Francisco Ruiz - IS1

3.43

Ciclos de Vida para OO Fuente

Representa grficamente:

El alto grado de iteracin

(Henderson, Sellers y Edwards, 1990)

Mantenimiento

Evolucin
Utilizacin

y solapamiento de la OO.

R tili i
Reutilizacin.

Aplicable a nivel de clase


individual o agrupamientos
agrupamientos.

Pruebas
sistemas
Pruebas
unitarias
Codificacin
Componentes

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).

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

Juan Hernndez, Francisco Ruiz - IS1

3.45

Ciclos de Vida para OO Pinball

(Ambler, 1994)

El Pinball refleja el proceso de desarrollo OO:

La pelota representa un proyecto


completo o un subproyecto.

El jugador es el equipo de desarrollo.


Se
S procede
d de
d forma
f
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,
importantes aunque tambin
se requiere algo de suerte.

Hayy dos estilos a la hora de jugar:


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,
tanto una metodologa representa el camino a seguir
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.

Juan Hernndez, Francisco Ruiz - IS1

3.47

Metodologas de Desarrollo de Sw

Elementos

Actividades y Tareas.

El

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


elementales).
elementales)

Procedimientos.

Definen la forma de llevar a cabo las Tareas.


Vnculo de Comunicacin entre usuarios

y Desarrolladores.

TCNICAS
ACTIVIDADES
C
S Y TAREAS
S
ABCD

PRODUCTOS

Productos.

Obtenidos como resultado de seguir un

WWWW
WWWW
WWWW

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

ESQUEMA LOGICO
(Relacional)

PROFESOR

Imparte
clase
ALUMNO

UD

Reglas de
Transformacin
INGENIERO
Juan Hernndez, Francisco Ruiz - IS1

3.49

Metodologas de Desarrollo de Sw

En general:

Claridad y facilidad de comprensin.


comprensin

Facilitar la portabilidad.

Flexibilidad / Escalabilidad
(independencia respecto de la
dimensin de los proyectos).

Rigurosidad.

Capacidad de soportar la evolucin


de los sistemas (mantenimiento).
Versatilidad respecto a los tipos de
aplicaciones.
p

Adopcin de estndares.

Juan Hernndez, Francisco Ruiz - IS1

Caractersticas Deseables

En Desarrollo de Software:

Existencia de reglas predefinidas.


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

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:

Seleccionar entre un gran nmero

de posibilidades y combinaciones de
mtodos de g
gestin,, tcnicas de
desarrollo y soporte automatizado,
para crear y desarrollar una
Metodologa
g de Desarrollo Software
especfica.

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

Da informes
a la direccin

existentes y seleccionar la que ms


se adapte a las necesidades.

metodologas:

Tamao y estructura de la

Coordinan
y guan

METODOLOGIA
DE
DESARROLLO

Analizar y evaluar las metodologas

Factores que influyen en las

Dan una
estructura visible

soportan
mtodos
SOPORTE

AUTOMATIZADO

TECNICAS

determinan
las herramientas
necesarias

organizacin.

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
os flujos.
ujos
Las estructuras de los datos .

Enfoque
q Top-Down
p

Desde una visin general hasta un nivel de abstraccin ms sencillo.

Juan Hernndez, Francisco Ruiz - IS1

3.54

Tipos de Metodologas - Estructuradas


Orientadas a Procesos
ENTRADA

PROCESO

SALIDA

Se apoyan en tcnicas grficas para


obtener
una
ESPECIFICACIN

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

Juan Hernndez, Francisco Ruiz - IS1

Tcnicas de Anlisis Estructurado


Orientadas a Procesos
FASES DEL ANALISIS ESTRUCTURADO

Mtodo de DeMarco

Mtodo de Gane y Sarson

1. Construir el modelo fsico


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

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

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

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,
no de programa y despus ordenar detalladamente la
lgica procedimental para que se ajuste a esta estructura.

El diseo lgico
g
debe p
preceder y estar separado
p
del diseo fsico.

Juan Hernndez, Francisco Ruiz - IS1

3.56

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
q
OO:

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

Sintetistas
Sintetistas o Evolutivos
Evolutivos
nalisis y Diseo Estructurado se consideran como la base para el
desarrollo OO.
OMT,
OMT RUP.
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 :

Convencional
Estructurada
Orientada a Objetos

Juan Hernndez, Francisco Ruiz - IS1

AO
1968
1974
1975
1977
1978
1981
1985
1986
1987
1989
1990
1993
1995
1998

METODOLOGA
Conceptos sobre la programacin estructurada de DIJKSTRA
Tcnicas de programacin estructurada de WARNIERy JACKSON
Primeros conceptos sobre diseo estructurado de MYERS y YOURDON
Primeros conceptos sobre anlisis estructurado GANE y SARSON
A li i estructurado:
Anlisis
t t d DEMARCOy WEINBERG
Nace MERISE
SSADM(versin inicial)
Information Engineering
g
g((versin inicial))
Anlisis y Diseo estructurado para sistemas de tiempo real de
WARDy MELLOR
SSADMVersin 3
A li i y Diseo
Anlisis
Di estructurado
t t d para sistemas
it
de
d tiempo
ti
reall de
d
HATLEYy PIRHBAY
METRICA(versin inicial)
SSADMVersin4
SSADM
Versin 4
METRICAVersin 2
METRICAVersin 2.1
MTRICAVersin 3

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 hayy forma de controlar lo q
que est sucediendo en el Proyecto
y
Los cambios organizativos afectan negativamente al proceso de
desarrollo.
El xito
it de
d los
l proyectos
t se basa
b
mucho
h en la
l figura
fi
del
d l hroe
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
i Estructurada
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

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 - 1; GOTO 40
B
END

Juan Hernndez, Francisco Ruiz - IS1

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

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

Juan Hernndez, Francisco Ruiz - IS1

3
3.62

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Estructurado:

Anlisis Estructurado (finales aos 70)


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

Juan Hernndez, Francisco Ruiz - IS1

3.63

APNDICE A: Evolucin Metodologas de Desarrollo de Sw

Desarrollo Orientado a Objetos:

Esencia: Identificacin
d
f
y organizacin
d
de conceptos del
d l

dominio de la aplicacin y no tanto de su representacin


final en un lenguaje de programacin

Aos 80
Trata
T t Funcionalidad
F
i
lid d y Datos
D t de
d forma
f
conjunta.
j t
Principios:
Abstraccin
b

Ocultacin de Informacin (Encapsulamiento)


Modularidad

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

DATOS

TRATAMIENTOS

CONCEPTUAL

Modelo Conceptual de Datos

Modelo Conceptual de Tratamientos

ORGANIZATIVO
FSICO

Juan Hernndez, Francisco Ruiz - IS1

Modelo Lgico de Datos

Modelo Organizativo de Tratamientos

Modelo Fsico de Datos

Modelo Operativo de Tratamientos

3.65

APNDICE B: Ejemplos de Metodologas

Metodologa SSADM Structured Systems Analysis and Design


Method Administracin Pblica Reino Unido (1980).
Method.
(1980)

Estudio completo

Consstruccin y P
Pruebas

Diseo Fsicco
D

Espeecificacin L
Lgica
del Sistema

Esspecificacin
n de
Requisitoss

Anlisis dee
Requisitoss

Planificacin
Estratgica

Estudio
o de Viabilid
dad

SSADM

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 Desarrollo de Sistemas de Informacin:
2.
a.
b.
c.
d.
e.

Estudio de Viabilidad del Sistema (EVS)


Anlisis del Sistema de Informacin (ASI)
Di del
Diseo
d l Sistema
Si
de
d Informacin
I f
i (DSI)
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,
Proyectos Gestin de Configuracin,
Configuracin
Aseguramiento de Calidad, y Seguridad.

Juan Hernndez, Francisco Ruiz - IS1

3.67

APNDICE B: Ejemplos de Metodologas

METRICA v.3.

Patrn de Tarea: participantes,


participantes productos de entrada y salida,
salida
tcnicas y prcticas.
Participantes

TAREA

Productos
de Entrada

Productos
de Salida

lista de acciones

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.
U
Urgent
t corrective
ti
Correctivo urgente
activities and tasks

Common
Actividades
initial y
tareas
activities
iniciales
and tasks

PLANIFICABLE
Correctivo no urgente

Common
Actividades
final y
tareas
activities
finales
and tasks

Perfectivo
Preventivo
Adaptativo

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:

cambios de requisitos son un aspecto natural e inevitable en


un proyecto.

Desarrollo iterativo e incremental.


incremental
Pruebas unitarias frecuentes y automatizadas.
Peer programming (programacin por parejas).
Cli t in-situ.
Cliente
i it
Refactorizacin del cdigo (reescribir).
Responsabilidad compartida sobre el cdigo.

Juan Hernndez, Francisco Ruiz - IS1

3.73

También podría gustarte