You are on page 1of 22

Unidad I

INTRODUCCIN A LA INGENIERA DEL


SOFTWARE Y SISTEMAS DE
INFORMACIN

El objetivo de este mdulo es dar lineamientos,


entender definiciones y conceptos para el
desarrollo de la ingeniera del software.
En este mdulo estudiaremos :

Conceptos de Ingeniera del Software: paradigma,


mitos, calidad, proceso, mtodo, herramientas,
espectro de gestin.
La importancia de la ingeniera del software.
Sistemas de informacin: concepto,
caractersticas, estructuras, procesos, clasificacin,
ERP, CRM.
03-05-2016

Introduccin a la Ingeniera del


Software

caractersticas y evolucin del software

un poco de historia
primeras dcadas:
desarrollar el hardware
reducir costos de procesamiento y almacenamiento

dcada de los ochenta:


desarrollo de la microelectrnica
mayor potencia de clculo y reduccin de costos

objetivo actual: mejorar la calidad de las soluciones software.


1959 - 1965
Orientacin
por lotes
Distribucin
limitada
Software a
medida

1965 - 1975

Multiusuario
Tiempo real
Bases de datos
Software como
producto
Mayores gastos
de mantenimiento

1975 - 1989
Sistemas distribuidos
Inteligencia Artificial
Hardware de bajo
costo
Impacto en el
consumo
Redes area local
y global
Gran demanda

1989 -

Potentes sistemas
de sobremesa
Tecnologa de
objetos
Sistemas expertos
Redes neuronales
Cliente/servidor
Tecnologas de
Internet.

AUMENTAN los problemas del desarrollo de software:


Subexplotacin del potencial del hardware
Incapacidad de atender a la demanda
Incapacidad de mantener el software existente

caractersticas y evolucin del software

software
programas
archivos de configuracin
documentacin de la estructura del sistema
manuales de instalacin y uso
sitios web con informacin y actualizaciones

tipos de software
productos genricos
sistemas producidos por una organizacin y que se venden en el mercado
abierto
sistemas gestores de bases de datos, procesadores de texto, paquetes
grficos
la organizacin controla la especificacin

productos personalizados
desarrollados especficamente para un cliente
aplicaciones de negocio, sistemas de control de trfico areo, control de
procesos de fabricacin
el cliente controla la especificacin de la aplicacin

caractersticas y evolucin del software

El software desde una perspectiva industrial


El valor del software : va desde ser un elemento aadido a
principal elemento de costo

Algunas preguntas:
Por qu se tarda tanto? (y casi siempre ms de lo previsto)
Por qu la productividad es tan baja?
Por qu cuesta tanto?
Por qu siempre quedan errores sin localizar?

naturaleza y problemas del desarrollo de software


El software como elemento lgico.
Se desarrolla, no se fabrica:
Calidad del diseo.
costos ms importantes en la ingeniera
Gestin especial de los proyectos

Se deteriora con el mantenimiento


Desarrollo a medida (ausencia de componentes)

La crisis del software: problemas que aparecen en el desarrollo del


software al desarrollar, mantener y atender la demanda de nuevas
aplicaciones.

Sin tiempo para recoger


datos histricos
Planificacin y estimaciones
imprecisas
Dificultad de mantener
el software existente
Insatisfaccin del cliente

Calidad

Baja productividad

naturaleza y problemas del desarrollo de software

Causas de la crisis del software


Naturaleza lgica del software
Mala gestin de los proyectos ( ausencia de datos, deficiente
comunicacin, ...)
Ausencia de entrenamiento formal en nuevas tcnicas
(programadores vs. ingenieros de software)
Resistencia al cambio
Mitos del software:

MITOS DE GESTIN
- Uso de estndares
- Uso de herramientas
- Mala planificacin: aumento
de programadores

MITOS DE LOS DESARROLLADORES

MITOS DEL CLIENTE

- Programa funcionando = fin del trabajo


- Calidad = el programa se ejecuta
sin errores
- Entrega al cliente: programa
funcionando

- Requisitos establecidos como


una declaracin general de
objetivos
- Flexibilidad del software ante
los cambios

la ingeniera del software

definiciones
establecimiento y uso de principios de ingeniera robustos,
orientados a obtener software econmico, fiable, eficiente y
que satisfaga las necesidades del usuario
disciplina que comprende todos los aspectos de la
produccin de software, desde las etapas iniciales hasta el
mantenimiento:
disciplina de ingeniera: aplicacin de teoras, mtodos y
herramientas para solucionar problemas, y teniendo en cuenta
restricciones financieras y organizativas
todos los aspectos de produccin: comprende procesos
tcnicos del desarrollo y actividades como la administracin de
proyectos, desarrollo de herramientas, mtodos y teoras

actividad de
modelado
solucin de problemas
adquisicin de conocimiento
dirigida por una fundamento

la ingeniera del software


trata de ser la respuesta a la crisis del software
combinacin de elementos:

mtodos completos para


todas las fases

mejores tcnicas de
control de calidad

mejores elementos
de programacin

herramientas para automatizar


los mtodos
filosofa de coordinacin,
control
y buena gestin

modelado
modelado: mtodo bsico
representacin abstracta de un sistema que da respuesta a preguntas
sobre el sistema
tiles cuando se manejan sistemas grandes, pequeos, complicados
o caros para tener una experiencia de primera mano
permiten visualizar y comprender sistemas que no existen o que slo
se supone que existen
ejemplos:
biologa: modelos de dinosaurios a partir de restos
fsica: modelos que representan cmo se renen materia y energa en los
niveles subatmicos ms bajos
el sistema en el mundo real seran dinosaurios o partculas subatmicas

modelos

modelado
los ingenieros de software necesitan
comprender el ambiente de funcionamiento del sistema:
construyen modelos del dominio del problema (sistemas de bolsa,
control de trfico areo,...)
comprender los distintos sistemas que podran construir para
evaluar alternativas: construyen modelos del dominio de la
solucin
tcnicas y herramientas para construir los modelos (por ejemplo,
diagramas de flujo de datos)

SI ST EMA DE PA GOS Y
FA CTURA CIN
Sol ici ta r b iene s o servicio s

ini ci ado r

Co nfi rm ar p ed i do
i ni ci ador

<<subsistema>>

Sistema de
visin

Envia r fa ctura al comprador


i ni ci ador

Hojear fact uras

<<subsistema>>
i ni ci ador

Pa gar factura
Ve ndedo r

Comprador

<<subsistema>>
Controlador del
brazo

<<extend >>
i nicia dor

Re al i za r transa cc i n

<<subsistem a>>
Co ntr olador del
asidero

<<subsistema>>
Sistema d e ident ificacin
de objetos

Pa gar reca rgo po r sal do deu dor

Plani ficar pago


factura

Rechazar
factura

Siste ma de
cuentas b ancari as

<<subsistema>>

Pagar factura en da
vencimiento
En vi ar aviso

<<subsistem a>>
Sistem a de seleccin
de embalajes

<<subsistema>>
<<subsistema>>
Sistema de
embalaje

Controlado r de cinta
transportadora

solucin de problemas

los ingenieros de software buscan una solucin adecuada, en varios


pasos:
1. Formular el problema
2. Analizar el problema
3. Buscar soluciones
4. Decidir la solucin ms adecuada
5. Especificar la solucin

actividades bsicas del desarrollo


1. obtencin de requerimientos
2. anlisis
3. diseo del sistema
4. implementacin

otras actividades del desarrollo para evaluar la adecuacin de los modelos


revisiones del anlisis: el modelo del dominio del problema se compara con la
realidad del cliente
revisiones del diseo: el modelo del dominio de la solucin se compara con los
objetivos del proyecto
pruebas: el sistema se valida contra el modelo del dominio de la solucin
administracin del proyecto: se compara el modelo del proceso de desarrollo
(calendario y presupuesto) con la realidad (trabajos entregados y recursos
gastados)

participantes y papeles

participantes: todas las personas involucradas en el


proyecto
cliente: encarga y paga el sistema
desarrolladores: construyen el sistema (analistas,
diseadores, programadores,...)
gerente o director del proyecto: planifica y calcula el
presupuesto, coordina a los desarrolladores y cliente
usuarios finales: los que van a utilizar el sistema

papel (rol)
conjunto de responsabilidades en el proyecto o en el sistema
asociado con un conjunto de tareas y se asigna a un
participante
un mismo participante puede cumplir varios papeles

otros conceptos de la ingeniera del software

sistemas y modelos
sistema: realidad subyacente
modelo: cualquier abstraccin de la realidad

productos de trabajo
artefacto o elemento que se produce durante el desarrollo (documento,
fragmento de software,...)
dos tipos:
producto de trabajo interno: producto para el consumo interno del proyecto (por
ejemplo, una revisin de la estructura de la base de datos, resultados de pruebas para
el gerente,...)
entrega: producto de trabajo para un cliente (especificacin de requisitos, manual de
usuario, producto final,...)

actividades, tareas y recursos


actividad (o fase): conjunto de tareas que se realiza con un propsito especfico
(obtencin de requisitos, entrega, administracin,...) que pueden componerse de
otras actividades
tarea: unidad elemental de trabajo que puede ser administrada; consumen
recursos, dan como resultado productos de trabajo y dependen de productos de
trabajo producidos por otras tareas
recursos: bienes que se utilizan para realizar el trabajo:
tiempo, equipamiento y recursos humanos
al planificar, el gerente divide el trabajo en tareas y les asigna recursos

otros conceptos de la ingeniera del software

objetivos, requerimientos y restricciones


objetivos:
principios de alto nivel que se utilizan para guiar el proyecto
definen los atributos realmente importantes del sistema
(seguridad, fiabilidad,...)
a veces hay conflicto entre objetivos (por ejemplo, seguridad y
bajo costo) que aumentan la complejidad del proyecto

requerimientos
caractersticas que debe tener el sistema
requerimiento funcional: rea de funcionalidad que debe
soportar el sistema (por ejemplo, proporcionar billetes de tren)
requerimiento no funcional: restriccin que se establece sobre
el funcionamiento del sistema (por ejemplo, proporcionar
billetes de tren en menos de un segundo)

otras restricciones: por ejemplo, utilizacin de un


determinado lenguaje, de una determinada plataforma o de
un sistema antiguo que el cliente no quiere retirar

otros conceptos de la ingeniera del software

notaciones, mtodos y metodologas


notacin: conjunto de reglas grficas o de texto para
representar un modelo (UML, Unified Modelling Language, es
una notacin grfica orientada a objetos para representar
modelos)
mtodo: tcnica repetible para resolver un problema
especfico. Por ejemplo:
un algoritmo de ordenacin es un mtodo para ordenar
elementos en una lista
la administracin de la configuracin es un mtodo para el
seguimiento de los cambios

metodologa: coleccin de mtodos para la resolucin de una


clase de problemas (OMT, metodologa de Booch, Catalysis,
Proceso Unificado de Desarrollo,...)

actividades de desarrollo

ingeniera de requerimientos
ReservaBilletes

Viajero

CompraBil let e

Anulacin reserva

Nombre del caso de uso:

CompraBillete

Actor participante:

Iniciado por Viajero

Precondicin:
1. El Viajero se para frente al distribuidor automtico de billetes
Flujo de eventos:
2. El Viajero selecciona las estaciones de origen y destino
3. El DistribuidorDeBilletes muestra el precio del billete
4. El Viajero inserta una cantidad de dinero que, al menos, debe
ser igual que el precio del billete
5. El DistribuidorDeBilletes emite el billete especificado al Viajero y
devuelve el cambio si es necesario
Postcondicin:
6. El Viajero coge el billete y el cambio
Requisitos especiales:
Si la transaccin no ser termina despus de un minuto de
inactividad, el DistribuidorDeBilletes devuelve todo el dinero
insertado

el cliente y los desarrolladores


definen el propsito y objetivos
del sistema
resultado: descripcin del
sistema en trminos de
participantes (actores) y
funciones (casos de uso)
actores: entidades externas
que interactan con el
sistema (incluyen roles como
usuarios finales u otros
sistemas con los que
interacta el sistema)
casos de uso: secuencias de
eventos que describen todas
las acciones posibles entre un
actor y el sistema para una
funcin especfica.

se acuerdan requisitos no
funcionales. Por ejemplo:
el distribuidor de billetes debe
estar disponible al menos un
95% del tiempo
el distribuidor de billetes debe
dar respuesta en menos de un
segundo despus de
seleccionada la transaccin

actividades de desarrollo

anlisis
se produce un modelo correcto, completo, consistente, claro,
realista y verificable
transformacin de los casos de uso en un modelo que
describe por completo el sistema y que se usar en el diseo
descubrimiento y resolucin con el cliente de ambigedades
e inconsistencias en el modelo de casos de uso
Transaccin
da como resultado
cantidad pagada

BilleteTren

Saldo
vlido para

Moneda

Zona

Papel

actividades de desarrollo
diseo
diseo del sistema
Gestin facturas
comprador

Gestin de planificacin
de p agos

Gestin de
cuentas

definicin de los objetivos de diseo


descomposicin del sistema en subsistemas
abordables por equipos
seleccin de estrategias para la construccin
(plataformas hardware y software,
almacenamiento de datos persistentes, control
de acceso,...)
resultado: descripcin de las estrategias,
descomposicin en subsistema

diseo de objetos:
definicin de objetos e interfaces de
subsistemas, reestructuracin del modelo de
objetos para lograr los objetivos de diseo,
optimizacin del modelo para mejorar el
rendimiento,...
resultado: modelo de objetos detallado

IU Sol icitud
de pago

Co mprado r
Procesam iento de
soli citudes de pago

actividades del diseo


Pl anificador
de pagos

Sol ici tud


de pago

Gestor de
pedi dos

Confirmacin
de pedidos

Procesami ento
de facturas

Factura

diseo arquitectnico
especificacin de los subsistemas
diseo de interfaz
diseo de componentes
diseo de la estructura de datos
diseo procedimental (algoritmos)

10

<<subsystem>>
Gestin Trabajos
Externos

<<subsystem>>
Gestin Sistema

<<subsystem>>
Gestin Mantenimiento
Correctivo

<<subsystem>>
Mantenimientos
de Gestin

<<subsystem>>
Validacin
Usuarios

<<subsystem>>
Gestin
Instalaciones

<<subsystem>>
Gestin Mantenimiento
Preventivo

<<subsystem>>
Gestin
Subgrupos-Instalaciones
<<subsystem>>
Gestin Mquinas
Subgrupo

<<subsystem>>
Gestin Trabajos
Externos

<<subsystem>>
Gestin Sistema

Alta Instalaciones

<<subsyst em>>
Mant enimient os
de Gestin

<<include>>

<<include>>
Baja Instalaciones
<<include>>
<<subsystem>>
Gestin Mantenimiento
Correctivo

<<subsystem>>
Validacin
Usuarios

<<subsystem>>
Gestin
Instalaciones

Validar Usuario
Administrador
(fromValidacin Usuarios)

<<subsystem>>
Gestin Mantenimiento
Preventivo

<<subsystem>>
Gestin
Subgrupos-Instalaciones
<<subsystem>>
Gestin Mquinas
Subgrupo

(from Validacin Usuarios)

Modificacin Instalaciones

ConsultaInstalaciones

(from Validacin Usuarios)

Alta Caracterst icas-Maq

<<subsystem>>
Gestin
Mquinas

Operario

<<include>>

<<include>>
<<include>>

Baja Caractersticas-Maq
<<include>>
Validar Usuario

Administrador

<< in clu de> >

(f rom Vali dacin U suari os)

(f ro m V ali dac i n Usuari os)

Modificacin Caractersticas-Maq

Gestin Caracterst icas


Mquinas

Gestin Tareas
Mquinas
Operario

Consulta Caractersticas-Maq

(f rom Valida cin Usu arios)

11

Nom bre
Prioridad
Actor
Extends
In clu des
Pre-Condiciones

Post-Condiciones

Descripcin

Exc epciones

Alta Caractersticas M qu in a
Media
Adminis trador
Ninguno
Validar Usuario
1. El usuario est identificado.
2. El usuario seleccion a la opcin de altas en el
formulario.
1. Los datos de la n uev a caracterstica quedan
gu ardados si el proc eso finaliza correctam ente.
2. Los datos de la nueva caracters tic a no quedan
gu ardados si se produc e algn error durante el
proceso.
1. El sis tem a m uestra el form ulario de altas.
2. El usuario introdu ce los datos .
3. El sis tem a realiza la validac in de los datos.
4. Si la caracterstica y a ex is te [A].
5. Si los datos no son correctos [B] .
6. El usuario selecciona la opcin de G uardar.
7. El sis tem a guarda los datos.
8. Si se guarda c orrec tamente se visualiza un m ens aje,
s i hay algn problem a el sistema av is a con un
m en saje de error.
El proc eso se puede can celar en cu alquier mom ento.
A. Si la caracterstica y a ex is te se v isu alizan sus datos.
B. D atos incorrectos, ir a punto 2.

Opciones Frm
Cliente

: A dmi nistra dor

CTRL Alta
Instalacin

Form_Alta

Validar

Da tos
INSTALACION

Resultado Alta

MENSAJES

Seleccionar
Crea()
Crea()

Mostrar

Introducir Datos()
Comprobar()

...

Obtener Datos

Mostrar(Datos)

Cubrir_Datos()

Si no Existe

Comprobar()

Datos Correctos

Crear_Alta()
Construir

Visualizar Resultado

Datos no Correctos

Construir

Visualizar Mensaje

Alta Caractersticas-Maq

<<include>>

Fin S i
Fin S i

<<include>>
Baja Caractersticas-Maq
<<include>>
Validar Usuario
Administrador

<<inc lude>>

(f ro m Va li dac i n Usua ri os)

(from Va li dac i n Usua ri os)

Modificacin Caractersticas-Maq

Operario

Consulta Caractersticas-Maq

(from Valida cin Usu arios)

Nombre
Prioridad
Actor
Extends
Includes
Pre-Condiciones

Post-Condiciones

Descripcin

Excepciones

Alta Caractersticas Mquina


Media
Administrador
Ninguno
Validar Usuario
1. El usuario est identificado.
2. El usuario selecciona la opcin de altas en el
formulario.
1. Los datos de la nueva caracterstica quedan
guardados si el proceso finaliza correctamente.
2. Los datos de la nueva caracterstica no quedan
guardados si se produce algn error durante el
proceso.
1. El sistema muestra el formulario de altas.
2. El usuario introduce los datos.
3. El sistema realiza la validacin de los datos.
4. Si la caracterstica ya existe [A].
5. Si los datos no son correctos [B].
6. El usuario selecciona la opcin de Guardar.
7. El sistema guarda los datos.
8. Si se guarda correctamente se visualiza un mensaje,
si hay algn problema el sistema avisa con un
mensaje de error.
El proceso se puede cancelar en cualquier momento.
A. Si la caracterstica ya existe se visualizan sus datos.
B. Datos incorrectos, ir a punto 2.

Sistema (from Validar Usuario)

Administr ador (from Al ta Mquinas)

Administrador Validado

Visualizar
Formulario

Seleccionar
Formulario

Comprobar
Datos

Introducir
Datos

Datos Incorrectos

Mensaje "Error
Datos"

Datos Correctos

Comprobar Existencia
de l a Ins talacin

Si Existe

Visual izar Datos


Instalacin

No Existe

Seleccionar
Guardar

Guardar Datos
Ins talacin
Error al Guardar

Alta Caractersticas-Maq

<<include>>

Mensaje
"Error"

Instalacin Guarda da

Mensaje "Inst alacin


guardada"

<<include>>
Baja Caractersticas-Maq
<<include>>
Validar Usuario
Administrador

<<include>>

(from Vali dacin U suari os)

(from Vali daci n Usuari os)

Modificacin Caractersticas-Maq

Operario

Consulta Caractersticas-Maq

(from Validaci n Usuarios)

12

Registra-venta-de
Descrita-por
1
n
0..1

CatalogoDe
Product os

LineaDeVenta
canti dad

Contiene

descripcin
1..n precio
articuloID

1
1
Utilizado-por
n

1.. n
Contenida-en
Registra-completas
1

1
n
1

Capturada-en
1

1
Pagada-mediante
1
Pago
cantidad

Abastece
1

1
Alberga
1..n
Registro 1

Venta
fecha
hora

Tienda
direc cin
nombre

Especificacion
DelProducto

Articulo
1..n

Iniciado-por

1 Encargado

1
Iniciada-por

Registra-ventas-en

1
1

Cliente

Cajero

O DB C

S er vid or

SGB D

TCP /IP

TCP /IP

Red Loc al

Im pres ora

Cliente
TCP /IP

Cliente

13

actividades de desarrollo

implementacin
traduccin del modelo de diseo (por ejemplo, del modelo de
objetos) en cdigo fuente
incluye:
implementacin de atributos y mtodos de cada objeto
integracin de todos los objetos para que funcionen como un solo
sistema

pruebas
pruebas de unidad: comparacin del modelo de diseo con cada
objeto y subsistema
pruebas de integracin: combinaciones de subsistemas y
comparacin con el modelo de diseo del sistema
pruebas del sistema: ejecucin de casos tpicos y excepcionales, y
comparacin con el modelo de requerimientos
objetivo: descubrir la mayor cantidad posible de errores que se
puedan reparar antes de entregar el sistema

mantenimiento
mejoras en el sistema (nuevas funciones, facilidad de uso,...)
correccin de errores
adaptacin a cambios en el entorno (hardware, software,
legislacin,...)
actividad ms costosa del ciclo de vida de un producto software

14

actividades de desarrollo

actividades de administracin del desarrollo


comunicacin
actividad crtica y costosa en tiempo
intercambio de modelos y documentos, informes de evolucin
y calidad, negociaciones, comunicacin de decisiones,...
herramientas y notaciones

gestin de la configuracin
proceso que supervisa y controla los cambios en los productos
de trabajo
cambios: requerimientos, plataformas hardware y software,
errores encontrados, mejoras del sistema,...

administracin del proyecto


objetivo: asegurar la entrega de un sistema de alta calidad a
tiempo y dentro del presupuesto
planificacin y presupuesto del proyecto
contratacin de desarrolladores y coordinacin de equipos
vigilancia de la evolucin del proyecto
deteccin de desviaciones e intervencin

el proceso de desarrollo

15

el proceso: modelos de desarrollo

proceso
conjunto ordenado de tareas, una serie de pasos que involucran actividades,
restricciones y recursos, que producen una salida determinada
proceso de software: conjunto de actividades necesarias para transformar los
requisitos de un usuario en un sistema software
caractersticas
tiene una serie de actividades principales
utiliza recursos, est sujeto a restricciones y genera productos intermedios y finales
compuesto por subprocesos que se encadenan de alguna forma
cada actividad tiene sus criterios de entrada y salida, que permiten conocer cuando
comienza y termina dicha actividad
existen principios orientadores que explican las metas de cada actividad

cuando implica la construccin de un producto, se suele llamar ciclo de vida


aportan consistencia y estructura sobre el conjunto de actividades, lo que
permite realizar la misma tarea correctamente de forma repetida
existen diferentes modelos de proceso

Requisitos
del usuario

Proceso de desarrollo
de Software

Sistema software

modelo en cascada

Requerimentos
y Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento

resultado de cada fase: uno o ms


documentos aprobados

se retrasa la localizacin y correccin


de errores

una fase comienza cuando la anterior


termina

pueden producir sistemas poco tiles


para usuarios o mal estructurados

en la prctica, las etapas se solapan

inflexibilidad del modelo: dificultad


para responder a cambios en los
requerimientos

iteraciones de costo elevado y


reelaboracin del trabajo: tendencia a
la congelacin de partes del desarrollo
(especificaciones,...)

16

desarrollo evolutivo
basado en:

dos tipos:

desarrollo de una implementacin


inicial

prototipado evolutivo:
trabajo con cliente para explorar
sus requerimientos y entregar un
sistema final
evolucin continua del prototipo
mediante la agregacin de
funciones y caractersticas
propuestas por el cliente

exposicin a comentarios y crtica del


usuario
refinamiento a travs de diferentes
versiones hasta llegar a un sistema
adecuado

prototipos desechables
Recoleccin
y refinamiento de
requisitos

comprensin de las necesidades


del cliente
desarrollo de una definicin
mejorada de los requerimientos
del sistema
prototipos centrados en la
experimentacin de requisitos
poco claros o complejos

Producto
Diseo
rpido

problemas
prisas del cliente (utilizacin del
prototipo como sistema final

Refinamiento
del prototipo

Construccin
del prototipo

pasar elecciones debidas al prototipo a


la implementacin final (entorno,
sistema operativo,...)
estructura deficiente

Evaluacin del
prototipo por
el cliente

evolucin del proceso difcil de


gestionar
herramientas y tcnicas especiales
poco adecuado para grandes sistemas

prototipos con lenguajes visuales


Hypertext
display component

Date component

File

Edit

Views

12th January 2000


Range checking
script

Layout

Options

Help
General
Index

3.876
User prompt
component +
script

Draw canvas
component

Tree display
component

fuente: I. Sommerville, Software Engineering, 6th ed.,2000

17

desarrollo incremental

Definicin general de
requerimientos

pasos

Asignacin de requerimientos
a incrementos

identificacin y priorizacin de funciones y


servicios
definicin de varios requerimientos que
proporcionan parte de la funcionalidad, segn la
prioridad (los ms importantes se entregan
antes)

Diseo de la arquitectura del


sistema

definicin detallada de requerimientos del


incremento y desarrollo con el proceso ms
adecuado

Desarrollo de incrementos
del sistema

congelacin de requerimientos de incrementos


desarrollados

Validar
incrementos

puesta en explotacin de los incrementos


completados y entregados

ventajas

Integrar
incrementos

puesta en marcha temprana


los incrementos iniciales permiten refinar
requerimientos de incrementos posteriores

Validar
sistema

satisfaccin del cliente (bajo riesgo de fallo)


sistema final muy probado y con pocos fallos

problemas

sistema incompleto

incrementos relativamente pequeos

sistema completo

adaptacin de requerimientos a incrementos del


tamao apropiado
identificacin de recursos comunes a todos los
incrementos

Sistema final

modelo en espiral

propuesto por Barry Boehm


organizacin en ciclos

PROGRESO
A TRAVS
DE LAS ITERACIONES

primer ciclo: factibilidad


segundo ciclo:
requerimientos

DETERMINAR
OBJETIVOS,
ALTERNATIVAS Y
RESTRICCIONES

tercer ciclo: diseo

EVALUAR ALTERNATIVAS,
IDENTIFICAR Y
RESOLVER RIESGOS

Anlisis de riesgos

...
Anlisis de riesgos

cada ciclo se divide en 4


sectores
definicin de objetivos,
restricciones del
producto y proceso, plan
de administracin,...

Anlisis de riesgos

REVISIN

evaluacin y reduccin
de riesgos (por ejemplo,
mejor definicin de
requerimientos
mediante prototipos)

Plan de
.
requerimientos
Plan de ciclo
de vida

desarrollo y validacin:
eleccin de un modelo
para el desarrollo
planificacin: el
proyecto se revisa y se
decide si se contina
con el siguiente ciclo. si
es as, se planifica la
siguiente fase

Plan de
desarrollo

An.
Riesgo.
Prototipo 1

Prototipo
operativo
Prototipo 3

Prototipo 2

Concepto de
operacin
Requerimientos
de software

Validacin de
requerimientos

Simulaciones, modelos,
pruebas comparativas

Diseo del
producto

Diseo
detallado

Codificar
Plan de integracin
y prueba

Diseo de validacin
y verificacin

PLANIFICAR SIGUIENTE
FASE
Prueba de
aceptacin

Prueba de
unidad
Prueba de
integracin

Explotacin
DESARROLLAR, VERIFICAR
PRODUCTO DE SIGUIENTE NIVEL

18

el proceso unificado de desarrollo

proceso unificado de desarrollo


propuesto por los autores de UML (lenguaje unificado de
desarrollo)
basado en componentes interconectados a travs de
interfaces
utiliza UML para desarrollar los esquemas y diagramas de un
sistema software
principales aspectos definitorios
dirigido por casos de uso
centrado en la arquitectura
iterativo e incremental

Requisitos
del usuario

Proceso de desarrollo
de Software

Sistema software

el proceso unificado: dirigido por casos de uso

para construir un sistema con xito hay que conocer las necesidades
y deseos de los futuros usuarios
usuario
personas que trabajan y necesitan el sistema
otros sistemas que interactan con el que estamos
desarrollando
Retirar dinero

Cliente del banco

Ingresar dinero

interaccin:
usuario inserta tarjeta en cajero automtico
usuario responde sobre la pantalla a las preguntas que
realiza el cajero
el usuario recibe una cantidad de dinero y su tarjeta
una interaccin as es un caso de uso
fragmento de funcionalidad del sistema que proporciona
al usuario un resultado importante
utilidad casos de uso

Transferencia entre cuentas

herramienta para especificar los requisitos de un sistema:


representan los requisitos funcionales y juntos constituyen el
modelo de casos de uso, que describe la funcionalidad total
del sistema
guan el proceso de desarrollo (diseo, implementacin y
prueba)
basndose en el modelo de casos de uso, se crean
modelos de diseo e implementacin
se revisa cada modelo para que sean conformes al
modelo de casos de uso
se prueba la implementacin para garantizar que los
componentes del modelo de implementacin
implementan correctamente los casos de uso
no slo inician el proceso de desarrollo sino que ste sigue un
hilo de trabajo que parte de los casos de uso

19

el proceso unificado: centrado en la arquitectura


la arquitectura de un sistema software se describe
mediante diferentes vistas del sistema en
construccin

casos de
uso

influida por diversos factores


conduce

gua

arquitectura

necesidades de la empresa, tal y como las perciben los


usuarios y clientes
otros factores, como plataforma de explotacin
(arquitectura hardware, sistema operativo, gestor de
bases de datos, protocolos de comunicacin,...),
componentes reutilizables, sistemas heredados,
requisitos no funcionales,...

es una vista del diseo completo con las


caractersticas ms importantes resaltadas, dejando
los detalles de lado.
Capa especfica
de la aplicacin

Capa general de la
aplicacin

Capa
intermedia

Capa de software
del sistema

hay una constante interaccin entre los casos de uso


y la arquitectura, que evolucionan en paralelo
los casos de uso deben encajar en la arquitectura
cuando se realizan
la arquitectura debe permitir el desarrollo de todos los
casos de uso requeridos

el arquitecto
realiza un esquema en borrador de la arquitectura que
no es especfica de los casos de uso (por ejemplo, la
plataforma)
trabaja con un subconjunto de los casos de uso
principales del sistema, especificndolo en detalle y
realizndolo en trminos de subsistemas, clases y
componentes
a medida que los casos de uso se especifican y
maduran, se descubre ms de la arquitectura, lo que a
su vez lleva a la maduracin de ms casos de uso
este proceso contina hasta que se considera que se
dispone de una arquitectura estable

el proceso unificado: iterativo e incremental


el trabajo se divide en partes ms pequeas o miniproyectos
miniproyecto: una iteracin que resulta en un incremento
iteracin: pasos en el flujo de trabajo
incremento: crecimiento del producto
las iteraciones estn controladas y planificadas
factores para seleccionar lo que se implementar en una iteracin
la iteracin se centra en un grupo de casos de uso que juntos amplan la utilidad
del producto desarrollado hasta ahora
la iteracin trata los riesgos ms importantes
las iteraciones sucesivas se construyen sobre los artefactos de desarrollo tal como
quedaron al final de la ltima iteracin
en las primeras fases del ciclo de vida los incrementos implican modificaciones
en las ltimas fases los incrementos implican menos modificaciones y ms
aadidos a los modelos
para cada iteracin:
identificacin y especificacin de los casos de uso relevantes
creacin de un diseo utilizando la arquitectura seleccionada como gua
implementacin del diseo mediante componentes
verificacin de que los componentes satisfacen los casos de uso
si una iteracin cumple con sus objetivos, el desarrollo contina con la siguiente
iteracin. Si no, se revisan las decisiones previas y se adopta un nuevo enfoque
ventajas proceso iterativo controlado
reduccin del costo del riesgo a los costos de un solo incremento
reduccin del riesgo de no sacar al mercado el producto en el calendario
previsto
se acelera el ritmo del esfuerzo de desarrollo en su totalidad, para obtener
resultados claros a corto plazo
los requerimientos del usuario se van refinando en iteraciones sucesivas, por lo
que se pueden acomodar mejor los cambios

20

la vida del proceso unificado


el proceso unificado se repite a lo largo de una serie de ciclos
cada ciclo concluye con una versin del producto y consta de cuatro fases
inicio: descripcin del producto final a partir de una idea inicial y anlisis de negocio
para el producto
principales funciones del sistema y usuarios ms importantes (modelo de
casos de uso)
posible arquitectura del sistema
plan del proyecto, costo, identificacin y priorizacin de riesgos
elaboracin:
se especifican en detalle los principales casos de uso
se disea la arquitectura del sistema: vistas arquitectnicas del modelo de
casos de uso, del modelo de anlisis, del modelo de diseo, del modelo de
implementacin y modelo de despliegue
al final se pueden planificar las actividades y estimar recursos necesarios para
finalizar el proyecto
construccin:
se crea el producto aadiendo el software a la arquitectura
al final se dispone de todos los casos de uso acordados para el desarrollo
aunque puede incorporar defectos
transicin
periodo durante el cual el producto se convierte en versin beta, en la que
usuarios prueban el producto e informan de defectos y deficiencias
se corrigen problemas e incorporan sugerencias
incluye actividades como la formacin del usuario, proporcionar una lnea de
ayuda y asistencia,...
cada fase se divide a su vez en iteraciones

la vida del proceso unificado

Fases
Flujos de trabajo
fundamentales

Inicio

Construccin

Elaboracin

Transicin

Requisitos
una iteracin en la
fase de elaboracin

Anlisis

Diseo

Implementacin

Prueba

iter #1

iter #2

---

---

---

---

---

iter #n-1

iter #n

Iteraciones

21

bibliografa

Bruegge, B., Dutoit, A.H., Ingeniera del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1
Pressman, R.S., Ingeniera del Software. Un enfoque prctico, cap. 1 y 2
Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3

22

You might also like