Académique Documents
Professionnel Documents
Culture Documents
del software
enrique barreiro
departamento de informtica
universidade de vigo
escuela superior de ingeniera informtica
ingeniera del software de gestin
un poco de historia
primeras dcadas:
desarrollar el hardware
reducir costes de procesamiento y almacenamiento
1965 - 1975
Multiusuario
Multiusuario
Tiempo real
Tiempo real
Bases de datos
Bases de datos
Software como
Software como
producto
producto
Mayores gastos
Mayores gastos
de
demantenimiento
mantenimiento
1975 - 1989
Sistemas distribuidos
Sistemas distribuidos
Inteligencia Artificial
Inteligencia Artificial
Hardware de bajo
Hardware de bajo
coste
coste
Impacto en el
Impacto en el
consumo
consumo
Redes area local
Redes area local
yyglobal
global
Gran demanda
Gran demanda
1989 -
Potentes sistemas
Potentes sistemas
de
desobremesa
sobremesa
Tecnologa de objetos
Tecnologa de objetos
Sistemas expertos
Sistemas expertos
Redes neuronales
Redes neuronales
Cliente/servidor
Cliente/servidor
Tecnologas de
Tecnologas de
Internet.
Internet.
escuela superior de
2 / 41
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
escuela superior de
3 / 41
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?
escuela superior de
4 / 41
Calidad
Baja productividad
escuela superior de
5 / 41
Resistencia al cambio
Mitos del software:
- Uso de estndares
- Uso de herramientas
- Mala planificacin: aumento
de programadores
escuela superior de
6 / 41
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 fundamentacin
escuela superior de
7 / 41
mejores tcnicas de
control de calidad
mejores elementos
de programacin
escuela superior de
8 / 41
modelado
tema 1 introduccin a la ingeniera del software
modelos
escuela superior de
9 / 41
modelado
tema 1 introduccin a la ingeniera del software
SISTEMA DE PAGOS Y
FACT URACIN
Solicitar bienes o servicios
iniciador
Confirmar pedido
iniciador
<<subsistema>>
Sistema de
visin
iniciador
Hojear facturas
iniciador
<<subsistema>>
Pagar factura
Vendedor
Comprador
<<subsistema>>
Controlador del
brazo
<<extend>>
iniciador
<<subsistema>>
Realizar transaccin
<<subsistema>>
Controlador del
asidero
Sistema de identificacin
de objetos
Sistema de
cuentas bancarias
Planificar pago
factura
Rechazar
factura
<<subsistema>>
Enviar aviso
Pagar factura en da
vencimiento
<<subsistema>>
Sistema de seleccin
de embalajes
escuela superior de
<<subsistema>>
<<subsistema>>
Sistema de
embalaje
Controlador de cinta
transportadora
10 / 41
solucin de problemas
tema 1 introduccin a la ingeniera del software
Formular el problema
2.
Analizar el problema
3.
Buscar soluciones
4.
5.
Especificar la solucin
obtencin de requerimientos
2.
anlisis
3.
4.
implementacin
escuela superior de
11 / 41
participantes y papeles
tema 1 introduccin a la ingeniera del software
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
escuela superior de
12 / 41
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,...)
escuela superior de
13 / 41
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)
escuela superior de
14 / 41
escuela superior de
15 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
ingeniera de requerimientos
ReservaBilletes
Viajero
CompraBillete
Anulacin reserva
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
escuela superior de
16 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
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
Transaccin
da como resultado
da como resultado
cantidad pagada
cantidad pagada
BilleteTren
BilleteTren
Saldo
Saldo
vlido para
vlido para
Moneda
Moneda
Papel
Papel
Zona
Zona
escuela superior de
17 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
diseo
diseo del sistema
Gestin
Gestin facturas
facturas
comprador
comprador
Gestin
Gestin de
de
cuentas
cuentas
Gestin
Gestin de
de planificacin
planificacin
de
de pagos
pagos
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
IU Solicitud
Solicitud
de
de pago
pago
Comprador
Comprador
Procesamiento
Procesamiento de
de
solicitudes
solicitudes de
de pago
pago
Planificador
Planificador
de
de pagos
pagos
Solicitud
Solicitud
de
de pago
pago
Gestor
Gestor de
de
pedidos
pedidos
Confirmacin
Confirmacin
de
de pedidos
pedidos
Procesamiento
Procesamiento
de
de facturas
facturas
Factura
Factura
escuela superior de
18 / 41
<<subsystem>>
Gestin Trabajos
Externos
<<subsystem>>
Gestin Mantenimiento
Correctivo
<<subsystem>>
Gestin Sistema
<<subsystem>>
Mantenimientos
de Gestin
<<subsystem>>
Validacin
Usuarios
<<subsystem>>
Gestin Mantenimiento
Preventivo
<<subsystem>>
Gestin
Instalaciones
<<subsystem>>
Gestin
Subgrupos-Instalaciones
<<subsystem>>
Gestin Mquinas
Subgrupo
escuela superior de
19 / 41
<<subsystem>>
Gestin Trabajos
Externos
<<subsystem>>
Gestin Sistema
Alta Instalaciones
<<include>>
<<subsystem>>
Mantenimientos
de Gestin
<<include>>
Baja Instalaciones
<<include>>
<<subsystem>>
Validacin
Usuarios
<<subsystem>>
Gestin Mantenimiento
Correctivo
<<subsystem>>
Gestin Mantenimiento
Preventivo
<<subsystem>>
Gestin
Instalaciones
<<subsystem>>
Gestin
Subgrupos-Instalaciones
<<subsystem>>
Gestin Mquinas
Subgrupo
Validar Usuario
Administrador
<<include>>
Modificacin Instalaciones
Consulta Instalaciones
Operario
(from Vali dacin Usuarios)
<<subsystem>>
Gestin
Mquinas
Alta Caractersticas-Maq
<<include>>
<<include>>
Baja Caractersticas-Maq
Gestin Caractersticas
Mquinas
<<include>>
Gestin Tareas
Mquinas
Validar Usuario
Administrador
<<include>>
Modificacin Caractersticas-Maq
Operario
Consulta Caractersticas-Maq
escuela superior de
20 / 41
Descripcin
Excepciones
: Administrador
Opciones Frm
Cliente
CT RL Alta
Instalacin
Form_Alta
Validar
Datos
INSTALACION
Resultado Alta
MENSAJES
Selecci onar
Crea()
Crea()
Mostrar
Introducir Datos()
Comprobar()
...
Obtener Datos
Mostrar(Datos)
Si no Existe
Cubrir_Datos()
Comprobar()
Alta Caractersticas-Maq
<<include>>
Construir
<<include>>
Visualizar Resultado
Baja Caractersticas-Maq
<<include>>
Validar Usuario
Administrador
<<include>>
Datos no Correctos
Construir
Modificacin Caractersticas-Maq
Visualizar Mensaje
Fin Si
Fin Si
Operario
Consulta Caractersticas-Maq
escuela superior de
21 / 41
Descripcin
Excepciones
Administrador Validado
Visualizar
Formulario
Seleccionar
Formulario
Comprobar
Datos
Introducir
Datos
Datos Incorrectos
Mensaje "Error
Datos"
Datos Correctos
Comprobar Existencia
de la Instalacin
Si Existe
Visualizar Datos
Instalacin
No Existe
Alta Caractersticas-Maq
Seleccionar
Guardar
Guardar Datos
Instalacin
<<include>>
<<include>>
Error al Guardar
Baja Caractersticas-Maq
<<include>>
Mensaje
"Error"
Instalacin Guardada
Validar Usuario
Administrador
<<include>>
Mensaje "Instalacin
guardada"
Modificacin Caractersticas-Maq
Operario
Consulta Caractersticas-Maq
escuela superior de
22 / 41
Registra-venta-de
Descrita-por
1
0..1
Especificacion
DelProducto
Contiene
descripcin
1
1..n precio
articuloID
1
Utilizado-por
n
CatalogoDe
Productos
LineaDeVenta
cantidad
1..n
Contenida-en
Registra-completas
1
1
Venta
fecha
hora
1
Pagada-mediante
1
Pago
cantidad
Capturada-en
1
Iniciada-por
1
Cliente
Abastece
1
1
Alberga
1..n
Registro 1
n
1
Tienda
direccin
nombre
Articulo
n
Iniciado-por
1..n
1 Encargado
1
Registra-ventas-en
1
Cajero
escuela superior de
23 / 41
ODBC
Servidor
SGBD
TCP/IP
TCP/IP
Red Local
Impresora
Cliente
TCP/IP
Cliente
escuela superior de
24 / 41
escuela superior de
25 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
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
escuela superior de
26 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
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,...
escuela superior de
27 / 41
el proceso de desarrollo
tema 1 introduccin a la ingeniera del software
escuela superior de
28 / 41
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
escuela superior de
29 / 41
modelo en cascada
tema 1 introduccin a la ingeniera del software
Requerimentos
y Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
escuela superior de
30 / 41
desarrollo evolutivo
tema 1 introduccin a la ingeniera del software
dos tipos:
basado en:
desarrollo de una implementacin inicial
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
Producto
prototipado evolutivo:
Diseo
rpido
problemas
Refinamiento
del prototipo
Construccin
del prototipo
Evaluacin del
prototipo por
el cliente
escuela superior de
31 / 41
Hypertext
displaycomponent
Datecomponent
File
Edit
Views
12thJanuary2000
Rangechecking
script
Layout
Options
Help
General
Index
3.876
Userprompt
component+
script
Drawcanvas
component
Treedisplay
component
fuente: I. Sommerville, Software Engineering, 6th ed.,2000
escuela superior de
32 / 41
desarrollo incremental
tema 1 introduccin a la ingeniera del software
Definicin general de
requerimientos
Asignacin de requerimientos
a incrementos
Desarrollo de incrementos
del sistema
Validar
incrementos
Integrar
incrementos
Validar
sistema
pasos
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)
definicin detallada de requerimientos del
incremento y desarrollo con el proceso ms
adecuado
congelacin de requerimientos de incrementos
desarrollados
puesta en explotacin de los incrementos
completados y entregados
ventajas
puesta en marcha temprana
los incrementos iniciales permiten refinar
requerimientos de incrementos posteriores
satisfaccin del cliente (bajo riesgo de fallo)
sistema final muy probado y con pocos fallos
sistema incompleto
sistema completo
problemas
incrementos relativamente pequeos
adaptacin de requerimientos a incrementos del
tamao apropiado
Sistema final
escuela superior de
33 / 41
modelo en espiral
tema 1 introduccin a la ingeniera del software
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
definicin de objetivos,
restricciones del producto
y proceso, plan de
administracin,...
.Plan de
requerimientos
Plan de ciclo
de vida
evaluacin y reduccin de
riesgos (por ejemplo,
mejor definicin de
requerimientos mediante
prototipos)
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
Plan de integracin
y prueba
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
Diseo de validacin
y verificacin
PLANIFICAR SIGUIENTE
FASE
Explotacin
Prueba de
aceptacin
Prueba de
unidad
Prueba de
integracin
DESARROLLAR, VERIFICAR
PRODUCTO DE SIGUIENTE NIVEL
escuela superior de
34 / 41
Requisitos
del usuario
Proceso de desarrollo
de Software
Sistema software
escuela superior de
35 / 41
interaccin:
Retirar dinero
Ingresar dinero
escuela superior de
36 / 41
casos
casos de
de
uso
uso
conduce
gua
arquitectura
arquitectura
Capa especfica
de la aplicacin
Capa general de la
aplicacin
el arquitecto
Capa
intermedia
Capa de software
del sistema
escuela superior de
37 / 41
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
escuela superior de
38 / 41
elaboracin:
construccin:
transicin
escuela superior de
39 / 41
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
Iteraciones
enrique barreiro alonso
universidade de vigo - departamento de informtica
escuela superior de
40 / 41
iter #n
bibliografa
tema 1 introduccin a la ingeniera del software
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
escuela superior de
41 / 41