You are on page 1of 41

tema 1 introduccin a la ingeniera del software

enrique barreiro departamento de informtica universidade de vigo escuela superior de ingeniera informtica ingeniera del software de gestin

caractersticas y evolucin del software


tema 1 introduccin a la ingeniera del software

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

dcada de los ochenta:


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

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

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

2 / 41

caractersticas y evolucin del software


tema 1 introduccin a la ingeniera 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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

3 / 41

caractersticas y evolucin del software


tema 1 introduccin a la ingeniera del software

El software desde una perspectiva industrial


El valor del software: de elemento aadido a principal elemento de coste

El desarrollo del software:

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?

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

4 / 41

naturaleza y problemas del desarrollo de software


tema 1 introduccin a la ingeniera del software

El software como elemento lgico.


Se desarrolla, no se fabrica:
Calidad del diseo. Costes 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 5 / 41

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

naturaleza y problemas del desarrollo de software


tema 1 introduccin a la ingeniera del 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 DE GESTIN

Mitos del software:

- Uso de estndares - Uso de herramientas - Mala planificacin: aumento de programadores

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

6 / 41

la ingeniera del software


tema 1 introduccin a 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 fundamentacin

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

7 / 41

la ingeniera del software


tema 1 introduccin a 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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

8 / 41

modelado
tema 1 introduccin a la ingeniera del software

modelado: mtodo bsico de la ciencia modelo


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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

9 / 41

modelado
tema 1 introduccin a la ingeniera del software

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

SIST EMA DE PAGOS Y FACT URACIN Solicitar bienes o servicios

iniciador

Confirmar pedido iniciador

<<subsistema>>
Enviar factura al comprador iniciador

Hojear facturas
iniciador Pagar factura Vendedor Comprador <<extend>> iniciador

Sistema de visin <<subsistema>>


<<subsistema>> Controlador del brazo <<subsistema>> Controlador del asidero

<<subsistema>>
Realizar transaccin Pagar recargo por saldo deudor

Sistema de identificacin de objetos

Planificar pago factura


Sistema de cuentas bancarias

Rechazar factura

<<subsistema>>

Enviar aviso

Pagar factura en da vencimiento

<<subsistema>>
Sistema de seleccin de embalajes

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


Controlador de cinta transportadora

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

10 / 41

solucin de problemas
tema 1 introduccin a la ingeniera del software

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)

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

11 / 41

participantes y papeles
tema 1 introduccin a la ingeniera del software

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

12 / 41

otros conceptos de la ingeniera del software


tema 1 introduccin a 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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

13 / 41

otros conceptos de la ingeniera del software


tema 1 introduccin a 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 coste) 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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

14 / 41

otros conceptos de la ingeniera del software


tema 1 introduccin a 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,...)

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

15 / 41

actividades de desarrollo
tema 1 introduccin a la ingeniera del software

ingeniera de requerimientos
ReservaBilletes

el cliente y los desarrolladores definen el propsito y objetivos del sistema

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

Nombre del caso de uso: Actor participante:

CompraBillete 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

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

17 / 41

actividades de desarrollo
tema 1 introduccin a la ingeniera del software

diseo
Gestin facturas comprador

diseo del sistema


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

Gestin de planificacin de pagos

Gestin de cuentas

diseo de objetos:
IU Solicitud de pago

Comprador Procesamiento de solicitudes 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

actividades del diseo


Planificador de pagos Gestor de pedidos Procesamiento de facturas

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

enrique barreiro alonso universidade de vigo - departamento de informtica

18 / 41

tema 1 introduccin a la ingeniera del software

<<subsystem>> Gestin Trabajos Externos

<<subsystem>> Gestin Sistema

<<subsystem>> Mantenimientos de Gestin

<<subsystem>> Gestin Mantenimiento Correctivo

<<subsystem>> Validacin Usuarios

<<subsystem>> Gestin Instalaciones

<<subsystem>> Gestin Mantenimiento Preventivo <<subsystem>> Gestin Mquinas Subgrupo

<<subsystem>> Gestin Subgrupos-Instalaciones

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

19 / 41

tema 1 introduccin a la ingeniera del software

<<subsystem>> Gestin Trabajos Externos

<<subsystem>> Gestin Sistema

Alta Instalaciones
<<subsystem>> Mantenimientos de Gestin

<<include>>

<<include>> Baja Instalaciones <<include>>

<<subsystem>> Gestin Mantenimiento Correctivo

<<subsystem>> Validacin Usuarios

<<subsystem>> Gestin Instalaciones

Validar Usuario Administrador


(from Validacin Usuarios)

<<include>> Modificacin Instalaciones

(from Validacin Usuarios)

<<subsystem>> Gestin Mantenimiento Preventivo <<subsystem>> Gestin Mquinas Subgrupo

<<subsystem>> Gestin Subgrupos-Instalaciones

Operario
(from Validacin Usuarios)

Consulta Instalaciones

<<subsystem>> Gestin Mquinas

Alta Caractersticas-Maq

<<include>> <<include>>

Baja Caractersticas-Maq

Gestin Caractersticas Mquinas

<<include>>

Gestin Tareas Mquinas

Validar Usuario Administrador


(from Validacin Usuarios)

<<include>> Modificacin Caractersticas-Maq

(from Validacin Usuarios)

Operario
(from Validacin Usuarios)

Consulta Caractersticas-Maq

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

20 / 41

tema 1 introduccin a la ingeniera del software


Nombre Prioridad Actor Extends Includes Pre-Condiciones Post-Condiciones 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.

: Administrador

Opciones Frm Cliente

CT RL Alta Instalacin

Form_Alta

Validar

Datos INST ALACION

Resultado Alta

MENSAJES

Seleccionar Crea() Crea()

Descripcin

Mostrar

Introducir Datos() Comprobar() Obtener Datos

Excepciones

...

Mostrar(Datos)

Si no Existe

Cubrir_Datos() Comprobar()

Alta Caractersticas-Maq

Datos Correctos Crear_Alta()

<<include>>
Construir

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


(from Validacin Usuarios)

Visualizar Resultado

Datos no Correctos

Construir

<<include>> Modificacin Caractersticas-Maq

(from Validacin Usuarios)

Visualizar Mensaje Fin Si Fin Si

Operario
(from Validacin Usuarios)

Consulta Caractersticas-Maq

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

21 / 41

tema 1 introduccin a la ingeniera del software


Nombre Prioridad Actor Extends Includes Pre-Condiciones Post-Condiciones 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)

Administrador (from Alta Mquinas)

Administrador Validado

Descripcin

Visualizar Formulario

Seleccionar Formulario

Comprobar Datos

Introducir Datos

Excepciones

Datos Incorrectos

Mensaje "Error Datos"

Datos Correctos

Comprobar Existencia de la Instalacin

Si Exi ste

Visualizar Datos Instalacin Seleccionar Guardar

No Existe

Alta Caractersticas-Maq

<<include>> <<include>>

Guardar Datos Instalacin


Error al Guardar

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


(from Validacin Usuarios)
Instalacin Guardada

Mensaje "Error"

<<include>> Modificacin Caractersticas-Maq

(from Validacin Usuarios)

Mensaje "Instalacin guardada"

Operario
(from Validacin Usuarios)

Consulta Caractersticas-Maq

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

22 / 41

tema 1 introduccin a la ingeniera del software

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

Tienda direccin nombre

1 Alberga 1..n Registro 1 1 1

Iniciado-por

1 Encargado

Registra-ventas-en

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

23 / 41

tema 1 introduccin a la ingeniera del software

Servidor

ODBC

SGBD

TCP/IP

TCP/IP Cliente

Red Local

Impresora

TCP/IP

Cliente

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

24 / 41

tema 1 introduccin a la ingeniera del software

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

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

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

27 / 41

el proceso de desarrollo
tema 1 introduccin a la ingeniera del software

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

28 / 41

el proceso: modelos de desarrollo


tema 1 introduccin a la ingeniera del software

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

29 / 41

modelo en cascada
tema 1 introduccin a la ingeniera del software

Requerimentos y Anlisis Diseo Implementacin Pruebas Mantenimiento

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

escuela superior de ingeniera informtica ingeniera del software de gestin

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

Refinamiento del prototipo Evaluacin del prototipo por el cliente

Construccin del prototipo

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

31 / 41

prototipado con lenguajes visuales


tema 1 introduccin a la ingeniera del software

Date component

Hypertext display component

File

Edit

Views

Layout

Options

Help General Index

12th January 2000 Range checking script 3.876

Draw canvas component

User prompt component + script

Tree display component


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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

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

Asignacin de requerimientos a incrementos

Diseo de la arquitectura del sistema

Desarrollo de incrementos del sistema

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

incrementos relativamente pequeos adaptacin de requerimientos a incrementos del tamao apropiado

Sistema final

identificacin de recursos comunes a todos los incrementos


escuela superior de ingeniera informtica ingeniera del software de gestin 33 / 41

enrique barreiro alonso universidade de vigo - departamento de informtica

modelo en espiral
tema 1 introduccin a la ingeniera del software

propuesto por Barry Boehm organizacin en ciclos


primer ciclo: factibilidad segundo ciclo: requerimientos tercer ciclo: diseo ...

DETERMINAR OBJETIVOS, ALTERNATIVAS Y RESTRICCIONES

PROGRESO A TRAVS DE LAS ITERACIONES

EVALUAR ALTERNATIVAS, IDENTIFICAR Y RESOLVER RIESGOS

Anlisis de riesgos

Anlisis de riesgos

Anlisis de riesgos An. Riesgo. Prototipo 1 Prototipo 3 Prototipo 2

cada ciclo se divide en 4 sectores


definicin de objetivos, restricciones del producto y proceso, plan de administracin,...
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
PLANIFICAR SIGUIENTE FASE REVISIN Plan de . requerimientos Plan de ciclo de vida

Prototipo operativo

Concepto de operacin Requerimientos de software Validacin de requerimientos

Simulaciones, modelos, pruebas comparativas

Plan de desarrollo
Plan de integracin y prueba

Diseo del producto

Diseo detallado

Codificar Diseo de validacin y verificacin Prueba de unidad Prueba de integracin

Explotacin

Prueba de aceptacin

DESARROLLAR, VERIFICAR PRODUCTO DE SIGUIENTE NIVEL

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

34 / 41

el proceso unificado de desarrollo


tema 1 introduccin a la ingeniera del software

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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

35 / 41

el proceso unificado: dirigido por casos de uso


tema 1 introduccin a la ingeniera del 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

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

una interaccin as es un caso de uso


Cliente del banco Ingresar dinero

fragmento de funcionalidad del sistema que proporciona al usuario un resultado importante

utilidad casos de uso


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

Transferencia entre cuentas

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

el proceso unificado: centrado en la arquitectura


tema 1 introduccin a la ingeniera del software

casos de uso conduce

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

Capa especfica de la aplicacin

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

Capa general de la aplicacin

el arquitecto
Capa intermedia

Capa de software del sistema

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

enrique barreiro alonso universidade de vigo - departamento de informtica

37 / 41

el proceso unificado: iterativo e incremental


tema 1 introduccin a la ingeniera del software

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 coste del riesgo a los costes 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

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

38 / 41

la vida del proceso unificado


tema 1 introduccin a la ingeniera del software

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, coste, identificacin y priorizacin de riesgos 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 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 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,...

elaboracin:

construccin:

transicin

cada fase se divide a su vez en iteraciones

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

39 / 41

la vida del proceso unificado


tema 1 introduccin a la ingeniera del software

Fases Flujos de trabajo fundamentales


Requisitos
una iteracin en la fase de elaboracin

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

Pressman, R.S., Ingeniera del Software. Un enfoque prctico, cap. 1 y 2


Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3

enrique barreiro alonso universidade de vigo - departamento de informtica

escuela superior de ingeniera informtica ingeniera del software de gestin

41 / 41

You might also like