Professional Documents
Culture Documents
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 Tiempo real Bases de datos Software como producto Mayores gastos de mantenimiento
Sistemas distribuidos Inteligencia Artificial Hardware de bajo coste Impacto en el consumo Redes area local y global Gran demanda
1975 - 1989
Potentes sistemas de sobremesa Tecnologa de objetos Sistemas expertos Redes neuronales Cliente/servidor Tecnologas de Internet.
1989 -
AUMENTAN los problemas del desarrollo de software: Subexplotacin del potencial del hardware
Incapacidad de atender a la demanda Incapacidad de mantener el software existente
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
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?
4 / 41
Sin tiempo para recoger datos histricos Planificacin y estimaciones imprecisas Dificultad de mantener el software existente Insatisfaccin del cliente Calidad Baja productividad 5 / 41
MITOS DE LOS DESARROLLADORES - Programa funcionando = fin del trabajo - Calidad = el programa se ejecuta sin errores - Entrega al cliente: programa funcionando
MITOS DEL CLIENTE - Requisitos establecidos como una declaracin general de objetivos - Flexibilidad del software ante los cambios
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
7 / 41
8 / 41
modelado
tema 1 introduccin a la ingeniera del software
modelos
9 / 41
modelado
tema 1 introduccin a la ingeniera del software
iniciador
<<subsistema>>
Enviar factura al comprador iniciador
Hojear facturas
iniciador Pagar factura Vendedor Comprador <<extend>> iniciador
<<subsistema>>
Realizar transaccin Pagar recargo por saldo deudor
Rechazar factura
<<subsistema>>
Enviar aviso
<<subsistema>>
Sistema de seleccin de embalajes
10 / 41
solucin de problemas
tema 1 introduccin a la ingeniera del software
2. Analizar el problema
3. Buscar soluciones 4. Decidir la solucin ms adecuada 5. Especificar la solucin
2. anlisis
3. diseo del sistema 4. implementacin
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)
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
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,...)
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)
otras restricciones: por ejemplo, utilizacin de un determinado lenguaje, de una determinada plataforma o de un sistema antiguo que el cliente no quiere retirar
14 / 41
metodologa: coleccin de mtodos para la resolucin de una clase de problemas (OMT, metodologa de Booch, Catalysis, Proceso Unificado de Desarrollo,...)
15 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
ingeniera de requerimientos
ReservaBilletes
Viajero
CompraBillete
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.
Anulacin reserva
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
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
da como resultado cantidad pagada
BilleteTren
Saldo
vlido para
Moneda
Papel
Zona
17 / 41
actividades de desarrollo
tema 1 introduccin a la ingeniera del software
diseo
Gestin facturas comprador
Gestin de cuentas
diseo de objetos:
IU Solicitud de pago
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
Solicitud de pago
Confirmacin de pedidos
Factura
diseo arquitectnico especificacin de los subsistemas diseo de interfaz diseo de componentes diseo de la estructura de datos diseo procedimental (algoritmos)
escuela superior de ingeniera informtica ingeniera del software de gestin
18 / 41
19 / 41
Alta Instalaciones
<<subsystem>> Mantenimientos de Gestin
<<include>>
Operario
(from Validacin Usuarios)
Consulta Instalaciones
Alta Caractersticas-Maq
<<include>> <<include>>
Baja Caractersticas-Maq
<<include>>
Operario
(from Validacin Usuarios)
Consulta Caractersticas-Maq
20 / 41
: Administrador
CT RL Alta Instalacin
Form_Alta
Validar
Resultado Alta
MENSAJES
Descripcin
Mostrar
Excepciones
...
Mostrar(Datos)
Si no Existe
Cubrir_Datos() Comprobar()
Alta Caractersticas-Maq
<<include>>
Construir
Visualizar Resultado
Datos no Correctos
Construir
Operario
(from Validacin Usuarios)
Consulta Caractersticas-Maq
21 / 41
Administrador Validado
Descripcin
Visualizar Formulario
Seleccionar Formulario
Comprobar Datos
Introducir Datos
Excepciones
Datos Incorrectos
Datos Correctos
Si Exi ste
No Existe
Alta Caractersticas-Maq
<<include>> <<include>>
Mensaje "Error"
Operario
(from Validacin Usuarios)
Consulta Caractersticas-Maq
22 / 41
Registra-venta-de Descrita-por 1 n 0..1 LineaDeVenta cantidad 1..n Contenida-en Registra-completas 1 Venta fecha hora 1 Pagada-mediante 1 Pago cantidad n 1 1 Iniciada-por 1 Cliente 1 Cajero Capturada-en 1 CatalogoDe Productos Especificacion DelProducto Contiene descripcin 1 1..n precio articuloID 1 Utilizado-por n Abastece 1 n Articulo 1..n
Iniciado-por
1 Encargado
Registra-ventas-en
23 / 41
Servidor
ODBC
SGBD
TCP/IP
TCP/IP Cliente
Red Local
Impresora
TCP/IP
Cliente
24 / 41
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
enrique barreiro alonso universidade de vigo - departamento de informtica
escuela superior de ingeniera informtica ingeniera del software de gestin 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,...
27 / 41
el proceso de desarrollo
tema 1 introduccin a la ingeniera del software
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
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
Sistema software
29 / 41
modelo en cascada
tema 1 introduccin a la ingeniera del software
resultado de cada fase: uno o ms documentos aprobados una fase comienza cuando la anterior termina en la prctica, las etapas se solapan iteraciones de coste elevado y reelaboracin del trabajo: tendencia a la congelacin de partes del desarrollo (especificaciones,...)
enrique barreiro alonso universidade de vigo - departamento de informtica
se retrasa la localizacin y correccin de errores pueden producir sistemas poco tiles para usuarios o mal estructurados inflexibilidad del modelo: dificultad para responder a cambios en los requerimientos
30 / 41
desarrollo evolutivo
tema 1 introduccin a la ingeniera del software
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 Recoleccin y refinamiento de requisitos Producto Diseo rpido
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
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
problemas
prisas del cliente (utilizacin del prototipo como sistema final
pasar elecciones debidas al prototipo a la implementacin final (entorno, sistema operativo,...) estructura deficiente evolucin del proceso difcil de gestionar herramientas y tcnicas especiales poco adecuado para grandes sistemas
31 / 41
Date component
File
Edit
Views
Layout
Options
32 / 41
desarrollo incremental
tema 1 introduccin a la ingeniera del software
Definicin general de requerimientos
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
Validar incrementos
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
Integrar incrementos
Validar sistema
problemas
sistema incompleto sistema completo
Sistema final
modelo en espiral
tema 1 introduccin a la ingeniera del software
Anlisis de riesgos
Anlisis de riesgos
Prototipo operativo
Plan de desarrollo
Plan de integracin y prueba
Diseo detallado
Explotacin
Prueba de aceptacin
34 / 41
Sistema software
35 / 41
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
interaccin:
Retirar dinero
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
no slo inician el proceso de desarrollo sino que ste sigue un hilo de trabajo que parte de los casos de uso
enrique barreiro alonso universidade de vigo - departamento de informtica
escuela superior de ingeniera informtica ingeniera del software de gestin
36 / 41
la arquitectura de un sistema software se describe mediante diferentes vistas del sistema en construccin
influida por diversos factores
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,...
gua
arquitectura
es una vista del diseo completo con las caractersticas ms importantes resaltadas, dejando los detalles de lado.
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
Capa intermedia
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 escuela superior de ingeniera informtica ingeniera del software de gestin
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
38 / 41
elaboracin:
construccin:
transicin
39 / 41
Inicio
Elaboracin
Construccin
Transicin
Anlisis
Diseo
Implementacin
Prueba
iter #1
iter #2
---
---
---
---
---
iter #n-1
iter #n
Iteraciones
enrique barreiro alonso universidade de vigo - departamento de informtica
escuela superior de ingeniera informtica ingeniera del software de gestin
40 / 41
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
41 / 41