1 Ingeniería de Requisitos Tema 3: Administración de Requisitos.
Análisis e Ingeniería de Requisitos · 2013-01-17 · Análisis e Ingeniería de Requisitos –...
Transcript of Análisis e Ingeniería de Requisitos · 2013-01-17 · Análisis e Ingeniería de Requisitos –...
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Análisis e Ingeniería de Requisitos Tema 1: Introducción a la Ingeniería del Software
Curso 2012-2013
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Bibliografía Básica
Ingeniería del Software
Ian Sommerville, Ed. Prentice Hall
Ingeniería del Software: Un enfoque práctico Roger S. Pressman, Ed. MacGraw-Hill
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Ingeniería
Conjunto de procedimientos y técnicas que permiten el uso apropiado de todas las herramientas, métodos y teorías para solucionar los problemas que aparecen.
RAE: Estudio y aplicación, por especialistas, de las diversas ramas de la tecnología.
Ejemplos: Ingeniería química, aeronáutica, de telecomunicaciones, informática, del software, etc.
AIR - 3
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Software
Suma total de los programas de ordenador, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo (Ian Sommerville)
El software se forma con 1) Las instrucciones (programas de ordenador) que al ejecutarse proporcionan las características, funciones y el grado de desempeño deseado; 2) las estructuras de datos que permiten que los programas manipulen información de manera adecuada; y 3) los documentos que describen la operación y uso de los programas. (Roger S. Pressman)
AIR - 4
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Software
Tipos de software:
Software de sistema
Software de programación
Software de aplicación
Otros
AIR - 5
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Software de sistema
Software que permite desvincular al usuario y al programador de los detalles de la computadora que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.
Ejemplos: sistemas operativos, herramientas de diagnóstico, controladores de dispositivo, etc.
AIR - 6
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Software de programación
Conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica.
AIR - 7
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Software de aplicación
Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios.
Son programas independientes que resuelven una capacidad de negocio específica.
Ejemplos: bases de datos, telecomunicaciones (por ejemplo Internet y toda su estructura lógica), videojuegos, software educativo, software médico, aplicaciones de gestión, etc.
AIR - 8
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Tipos de Software: Otros
Software científico y de ingeniería
Software de líneas de productos
Aplicaciones basadas en Web
AIR - 9
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Producto Software
Producto diseñado para usuario tipo o un cliente determinado.
Tipos de productos software:
o Genéricos: Productos de uso genérico. Desarrollados por una organización y que se venden a un mercado abierto a cualquier cliente que desea comprarlo (sistemas operativos, procesadores de texto, bases de datos, herramientas de gestión de proyectos, etc).
o A medida: Sistemas requeridos por un cliente particular (sistemas desarrollados para llevar a cabo procesos de negocio, sistemas de control de tráfico aéreo, web de la URJC, portal de servicios, etc).
AIR - 10
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Diferencias entre el concepto de usuario y cliente
o Usuario: persona o personas que van a manipular de manera directa un producto software.
o Cliente: Persona, entidad u organización que encarga el desarrollo de un producto software y que invierte en dicho producto.
Por ejemplo, en el caso de una aplicación desarrollada a medida el cliente o
comprador puede ser una compañía, pero el usuario final puede ser solamente un empleado o grupo de empleados dentro de la misma.
AIR - 11
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Atributos de un buen software
o Mantenibilidad o Debe poder evolucionar para adecuarse a los cambios del cliente o del
negocio o Generadores de código, desarrollo de aplicaciones basadas en modelos (Model
Driven Development)
o Confiabilidad o Se ha desarrollado atendiendo a requisitos de calidad como la fiabilidad,
seguridad, tolerancia a fallos, etc.
o Eficiencia o No malgastar recursos, como memoria y buenos tiempos de respuesta.
o Usabilidad o Fácil de usar, sin esfuerzo adicional por parte del usuario. Buena interfaz de
usuario y documentación adecuada.
AIR - 12
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
¿Qué es Ingeniería del Software?
“La Ingeniería del Software es la disciplina de ingeniería que comprende todos los aspectos relacionados con la producción de software desde sus etapas más tempranas de la especificación del sistema hasta el mantenimiento del sistema tras su puesta en marcha.”
AIR - 13
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
“Disciplina de ingeniería” Aplican teorías, métodos y herramientas donde sean convenientes, pero lo utilizan de manera selectiva.
Los ingenieros hacen que las cosas funcionen.
Uso apropiado de todas las herramientas, métodos y teorías para solucionar los problemas que aparecen.
Trabajo con restricciones económicas y de organización.
“Todos los aspectos de la producción de software” o Procesos técnicos de desarrollo, dirección y gestión de proyectos,
desarrollo de herramientas métodos y teorías de apoyo a la producción de apoyo.
¿Qué es Ingeniería del Software?
AIR - 14
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
o Ciencia de la computación: Teorías y métodos subyacentes a las computadoras y los sistemas software.
o Ingeniería del software: Se ocupa de problemas prácticos de la producción de software. Enfoque sistémico y organizado para la producción de software de calidad.
Diferencia entre ingeniería del software y ciencia de la computación
AIR - 15
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
o Los sistemas de información, hoy en día, incorporan software. Siendo un sistema algo más complejo que el software. Un sistema es un avión, una planta química.
o El software es el soporte de los sistemas informatizados.
Diferencia entre ingeniería del software e ingeniería de sistemas de información
AIR - 16
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Diferencia entre ingeniería del software e ingeniería de sistemas de información
AIR - 17
Negocio/Empresa
Sistema de información (SI)
Sistema de información automatizado
Software
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
¿Qué es el proceso software?
o Proceso software es el conjunto de actividades y resultados asociados para producir un producto software
Ejemplo de proceso: Procedimiento para matricularse en GIS, procedimiento para solicitar una hipoteca bancaria, etc.
o Un proceso software consta de 4 actividades comunes: o Especificación software
o Desarrollo software
o Validación software
o Evolución software
AIR - 18
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
o Los clientes e ingenieros definen el software a producir y las restricciones para su operación.
o Ejemplo: Especificar cómo se hace una sangría
Especificación Software
AIR - 19
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Desarrollo software
Relacionado con el diseño y programación del software.
o Ejemplo: Realizar la sangría
AIR - 20
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Validación del software
o El software se valida (comprueba) para asegurar que es lo que el cliente quiere y espera.
o Ejemplo: Probar la sangría.
o Primero vosotros mismos.
o Después, dádsela a probar a quien os la encargó.
AIR - 21
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Evolución del software
o El software se modifica para adaptarlo a los cambios solicitados por el cliente y/o a los requisitos del mercado.
o Ejemplo: En la siguiente sangría, hacer una parte de sangría
con edulcorantes para que la puedan tomar los diabéticos.
AIR - 22
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
¿Qué es un modelo de proceso software?
o Modelo de proceso software es una descripción simplificada de un proceso software (actividades, productos, roles,...)
o Modelos de proceso software
o Modelo en cascada
o Modelo incremental
o Modelo en espiral
AIR - 23
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en cascada
Definición de requisitos
Diseño
Codificación y pr. unitarias
Integración y pruebas
Operación y mantenimiento
AIR - 24
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en cascada
Características: Cada fase empieza cuando se ha terminado la fase anterior.
Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa.
Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados.
Al final de cada fase el personal técnico y los usuarios tienen la oportunidad de revisar el progreso del proyecto.
AIR - 25
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en cascada
Críticas No refleja realmente el proceso de desarrollo del software.
Se tarda mucho tiempo en pasar por todo el ciclo.
Perpetua el fracaso de la industria del software en su comunicación con el usuario final.
El mantenimiento se realiza en el código fuente.
Las revisiones de proyectos de gran complejidad son muy difíciles.
AIR - 26
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo incremental
Definir requisitos
Asignar requisitos
a incrementos
Diseñar la arquitectura del sistema
Desarrollar incremento
Validar incremento
Integrar incremento
Validar sistema
Sistema incompleto
Sistema final
AIR - 27
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo incremental
AIR - 28
Análisis
Requisitos
Sistema Análisis
Requisitos
Software
Diseño
Preliminar Diseño
Detallado
Codificación y
Pruebas
Explotación y
Mantenimiento
Incremento 1
Diseño
Detallado
Codificación y
Pruebas
Explotación y
Mantenimiento
Incremento 2
Incremento n
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo incremental
Características: o No lineal.
o El sistema software se crea añadiendo componentes funcionales al sistema (incrementos).
o El sistema software ya no se ve como una única entidad monolítica, sino como una integración de resultados sucesivos.
o Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.
o Se ajusta a entornos de alta incertidumbre.
AIR - 29
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo incremental
Críticas: o Persiste el problema de determinar si los requisitos propuestos
son válidos (los errores en los requisitos se detectan tarde y su corrección resulta tan costosa como en el modelo en cascada).
o Difícil de evaluar el coste total.
o Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y operan como un todo.
AIR - 30
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en espiral
AIR - 31
Plan de Requisitos
Plan del Ciclo de Vida
Plan de
Desarrollo
Plan de
Integración
y Pruebas
Planificar las
fases siguientes
Determinar
objetivos,
alternativas,
restricciones
Evaluar alternativas,
identificar y resolver
los riesgos
Análisis
de Riesgos
Análisis
Análisis
Análisis de
de Riesgos
de Riesgos
Riesgos Prototipo 1
Prototipo 2 Prototipo 3
Prototipo
Operativo
Concepto de
Operación Requisitos
Sw
Validación de
Requisitos
Diseño
Producto
Sw
V & V del
diseño
Simulaciones, modelos, benchmarks
Diseño
detallado
Código
Pruebas
unitarias
Integración
y prueba Prueba de
aceptación Imple-
menta-
ción
Desarrolar, Verificar el
producto del siguiente nivel
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en espiral
Características: o División del proyecto en ciclos o División en actividades estructurales
o Objetivos o Análisis de riesgos o Desarrollo y validación o Planificación
o Cada ciclo se completa con una revisión o Enfoque realista del desarrollo o Construcción de prototipos o Reduce los riesgos o Pero: Precisa expertos en riesgos
AIR - 32
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Modelo en espiral
Principales diferencias respecto a otros métodos:
Reconocimiento explícito de las alternativas Identificación de riesgos asociados a las alternativas División del proyecto en ciclos. Se adapta a cualquier tipo de actividad.
AIR - 33
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
CASE (Computer Aided/Assisted Software/System Engineering)
Conjunto de herramientas y metodologías que prestan soporte a un enfoque de ingeniería en el desarrollo de software en alguna o en todas las fases de este
proceso.
Objetivos de las herramientas CASE: Permitir la aplicación práctica de metodologías estructuradas, lo que resulta
muy difícil sin emplear herramientas Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones Simplificar el mantenimiento de los programas Mejorar y estandarizar la documentación Aumentar la portabilidad de las aplicaciones Facilitar la reutilización de componentes software Permitir un desarrollo y un refinamiento «visual» de las aplicaciones, mediante
la utilización de gráficos
¿Qué es CASE?
AIR - 34
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Elementos de una herramienta CASE:
¿Qué es CASE?
AIR - 35
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
¿Por qué es complejo el software?
o Brooks: “La complejidad del software es una propiedad esencial y no accidental”
o Tres motivos: La complejidad del dominio del problema.
La dificultad de controlar el proceso de desarrollo.
Los problemas para caracterizar sistemas discretos.
AIR - 36
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
La complejidad del dominio del problema (I)
o Los problemas del mundo real son complejos (miles de requisitos compitiendo y quizás contradictorios).
o Ahora, añade requerimientos no funcionales: eficiencia, coste, fiabilidad...
o Diferente perspectiva del mismo problema entre los usuarios y los desarrolladores.
AIR - 37
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
La complejidad del dominio del problema (II)
o Los requisitos cambian durante el desarrollo. o Los grandes sistemas cambian a lo largo del tiempo:
o Mantenimiento: proceso de mejora y optimización del software después de
su entrega al usuario final, así como también la corrección y prevención de los defectos.
o Evolución: todas las actividades de generación de software que se orientan
a generar una nueva versión de un software a partir de una versión anterior operativa. Incluye cambios en los requisitos.
o Conservación: uso continuo de medios extraordinarios para mantener operativo un sistema viejo.
AIR - 38
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
La complejidad del dominio del problema (II)
o Ejemplo: ¿Podéis resumir qué pasos hay que dar para matricularos en la
UNIVERSIDAD?
o Ejemplo: ¿Podéis resumir qué pasos hay que dar para solicitar una hipoteca bancaria?
AIR - 39
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
La dificultad de controlar el proceso de desarrollo
o Miles de líneas de código. Atajar con reutilización (de código, diseños reutilizables-patrones)
o Abordar complejidad por “divide y vencerás” obtener módulos.
o Equipo de desarrolladores
AIR - 40
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Los problemas para caracterizar sistemas discretos (I)
o El software trabaja con sistemas con estados discretos: o Conjunto de variables.
o Flujos de control.
o Eventos externos.
o Los valores de cada uno definen cada estado del sistema.
o El mundo real es analógico se puede describir por funciones continuas.
AIR - 41
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Los problemas para caracterizar sistemas discretos (II)
o En sistemas discretos la transición entre estados no puede modelarse con funciones continuas
o Cada evento externo puede cambiar el estado del sistema.
o Necesidad de pruebas complejo, costoso y en ocasiones imposible que sean exhaustivas
AIR - 42
Análisis e Ingeniería de Requisitos – Tema 1 www.kybele.urjc.es
Ejercicio
Un reloj digital tiene una pantalla y dos botones para accionarlo, el botón A y el botón B. El reloj tiene dos modos de operación, visualizar la hora y establecerla. En el modo de visualización aparecen las horas y los minutos separados por dos puntos (:) intermitentes. El modo de establecer la hora tiene dos submodos: poner las horas y poner los minutos. El botón A se utiliza para seleccionar el modo de operación. Cada vez que se aprieta, el modo avanza en secuencia: visualizar la hora, poner hora, poner minutos, visualizar la hora, etc. Dentro de los submodos, el botón B se utiliza para avanzar una hora o un minuto cada vez que se aprieta. Prepare un diagrama de estados del reloj.
AIR - 43