Professional Documents
Culture Documents
un poco de historia
primeras dcadas:
desarrollar el hardware
reducir costos de procesamiento y almacenamiento
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.
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
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?
Calidad
Baja productividad
MITOS DE GESTIN
- Uso de estndares
- Uso de herramientas
- Mala planificacin: aumento
de programadores
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
mejores tcnicas de
control de calidad
mejores elementos
de programacin
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
<<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
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
participantes y papeles
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
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,...)
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)
actividades de desarrollo
ingeniera de requerimientos
ReservaBilletes
Viajero
CompraBil let e
Anulacin reserva
CompraBillete
Actor participante:
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
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
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
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
Modificacin Instalaciones
ConsultaInstalaciones
<<subsystem>>
Gestin
Mquinas
Operario
<<include>>
<<include>>
<<include>>
Baja Caractersticas-Maq
<<include>>
Validar Usuario
Administrador
Modificacin Caractersticas-Maq
Gestin Tareas
Mquinas
Operario
Consulta Caractersticas-Maq
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
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>>
Modificacin Caractersticas-Maq
Operario
Consulta Caractersticas-Maq
Nombre
Prioridad
Actor
Extends
Includes
Pre-Condiciones
Post-Condiciones
Descripcin
Excepciones
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
No Existe
Seleccionar
Guardar
Guardar Datos
Ins talacin
Error al Guardar
Alta Caractersticas-Maq
<<include>>
Mensaje
"Error"
Instalacin Guarda da
<<include>>
Baja Caractersticas-Maq
<<include>>
Validar Usuario
Administrador
<<include>>
Modificacin Caractersticas-Maq
Operario
Consulta Caractersticas-Maq
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
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,...
el proceso de desarrollo
15
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
Requisitos
del usuario
Proceso de desarrollo
de Software
Sistema software
modelo en cascada
Requerimentos
y Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
16
desarrollo evolutivo
basado en:
dos tipos:
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
prototipos desechables
Recoleccin
y refinamiento de
requisitos
Producto
Diseo
rpido
problemas
prisas del cliente (utilizacin del
prototipo como sistema final
Refinamiento
del prototipo
Construccin
del prototipo
Evaluacin del
prototipo por
el cliente
Date component
File
Edit
Views
Layout
Options
Help
General
Index
3.876
User prompt
component +
script
Draw canvas
component
Tree display
component
17
desarrollo incremental
Definicin general de
requerimientos
pasos
Asignacin de requerimientos
a incrementos
Desarrollo de incrementos
del sistema
Validar
incrementos
ventajas
Integrar
incrementos
Validar
sistema
problemas
sistema incompleto
sistema completo
Sistema final
modelo en espiral
PROGRESO
A TRAVS
DE LAS ITERACIONES
DETERMINAR
OBJETIVOS,
ALTERNATIVAS Y
RESTRICCIONES
EVALUAR ALTERNATIVAS,
IDENTIFICAR Y
RESOLVER RIESGOS
Anlisis de riesgos
...
Anlisis de riesgos
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
Requisitos
del usuario
Proceso de desarrollo
de Software
Sistema software
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
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
19
casos de
uso
gua
arquitectura
Capa general de la
aplicacin
Capa
intermedia
Capa de software
del sistema
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
20
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