Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN
2
COMPETENCIAS
3
ESTRUCTURA TEMÁTICA
Introducción
4
7.1. Objetivos generales del modelo de análisis. ............................................... 29
7.2. Elementos del modelo de análisis ............................................................... 29
7.2.1 Modelos basados en escenarios
........................................................................................................................... 30
7.2.2 Modelos orientados al flujo
........................................................................................................................... 33
7.2.3 Modelos basados en clases.
........................................................................................................................... 35
5
IDEOGRAMA
Análisis y Diseño de
Sistemas de Información
Panorámica del enfoque de la Fundamentos de Ingeniería de Ingeniería de requerimientos Diseño de salidas efectivas
Teoría General de Sistemas Software
Sistemas abiertos Disciplinas de las Ingeniería del Procesos de especificación de Diseño de salidas impresas
Software requerimientos
Sistemas cerrados Procesos de apoyo: Gestión de Muestras Diseño de salidas por pantalla
riesgos, gestión de la configuración,
y documentación
6
1. Ingeniería de Requerimientos
Los requerimientos especifican qué es lo que el sistema debe hacer, es decir sus
funciones. La obtención de los requerimientos tiene como objetivo principal la
comprensión de lo que los clientes y los usuarios esperan que haga el sistema.
Los requerimientos identifican el qué del sistema, mientras que el diseño establece
el cómo del sistema.
SISTEMA
7
Condición o capacidad que debe satisfacer o poseer un sistema o una
componente de un sistema para satisfacer un contrato, un standard, una
especificación u otro documento formalmente impuesto.
Zave
Rama de la ingeniería del software que trata con el establecimiento de los
objetivos, funciones y restricciones de los sistemas software.
Asimismo, se ocupa de la relación entre estos factores con el objeto de establecer
especificaciones precisas.
Boehm
Ingeniería de Requerimientos es la disciplina para desarrollar una especificación
completa, consistente y no ambigua, la cual servirá como base para acuerdos
comunes entre todas las partes involucradas y en dónde se describen las
funciones que realizará el sistema.
Loucopoulos
Trabajo sistemático de desarrollo de requisitos, a través de un proceso iterativo y
cooperativo de análisis del problema, documentando los resultados en una
variedad de formatos y probando la exactitud del conocimiento adquirido.
Leite
Es el proceso mediante el cual se intercambian diferentes puntos de vista para
recopilar y modelar lo que el sistema va a realizar. Este proceso utiliza una
combinación de métodos, herramientas y actores, cuyo producto es un modelo
del cual se genera un documento de requerimientos.
La captura y el análisis de los requerimientos del sistema es una de las fases más
importantes para que el proyecto tenga éxito. Como regla de modo empírico, el
costo de reparar un error se incrementa en un factor de diez de una fase de
desarrollo a la siguiente, por lo tanto, la preparación de una especificación
adecuada de requerimientos reduce los costos y el riesgo general asociado con el
desarrollo.
El proceso de recopilar, analizar y verificar las necesidades del cliente para un
sistema de software es llamado Ingeniería de Requerimientos
La meta de la ingeniería de requerimientos es entregar una especificación de
requerimientos de software correcta y completa. La ingeniería de requerimientos
apunta a mejorar la forma en que comprendemos y definimos sistemas de
software complejos.
8
los siguientes aspectos resumidos por [Pfleeger, 2002] como se indica a
continuación:
9
Funcionalidad § ¿Qué hará el sistema?
§ ¿Cuándo lo hará?
§ ¿Existen varios modos de operación?
§ ¿Cómo y cuándo puede cambiarse o mejorarse un
sistema?
§ ¿Existen restricciones de la velocidad de ejecución,
tiempo de respuesta o rendimiento?
10
§ ¿Cómo podrán aislarse los programas de usuario de los
otros programas y del sistema operativo?
§ ¿Con qué frecuencia deben hacerse copias de respaldo?
§ ¿Las copias de respaldo deben almacenarse en un lugar
diferente?
§ ¿Deben tomarse precauciones contra el fuego, el daño
provocado por agua o el robo?
Aseguramiento § ¿El sistema debe detectar y aislar defectos?
de la calidad § ¿Cuál es el promedio de tiempo prescrito entre fallas?
§ ¿Existe un tiempo máximo permitido para la recuperación
del sistema después de una falla?
§ ¿El mantenimiento corregirá los errores, o incluirá
también el mejoramiento del sistema?
§ ¿Qué medidas de eficiencia se aplicarán al uso de
recursos y al tiempo de respuesta?
§ ¿Cuán fácil debe ser mover el sistema de una ubicación
a otra o de un tipo de computadora a otro?
§ Para que los desarrolladores expliquen cómo han entendido lo que el cliente
pretende del sistema.
§ Para los diseñadores qué funcionalidad y que características va a tener el
sistema resultante.
§ Indican al equipo de pruebas qué demostraciones llevar a cabo para convencer
al cliente de que el sistema que se le entrega es lo que solicitó.
11
Figura 1. Características de los requerimientos. Fuente: propia
3. Proceso de Especificación de requerimientos
12
Figura 2. Proceso de especificación de requerimientos. Fuente: propia
13
resultado de haber llevado a cabo las tareas que involucran estos términos puede,
en más de una oportunidad, hacer que se deba regresar a la primera etapa, a los
efectos de eliminar todas las inconsistencias y falencias que se han detectado. En
esta etapa ya se realizan aproximaciones a un lenguaje técnico.
Este documento no es uno solo, sino que, como mínimo, se entregan dos
documentos:
14
Baltzer y Goldman proponen ocho principios para una buena especificación:
PRINCIPIO 1.
Las especificaciones pueden adoptar dos formas muy diferentes. La primera forma
es la de funciones matemáticas: dado algún conjunto de entrada, producir un
conjunto particular de salida.
PRINCIPIO 2.
Considerar una situación en la que el entorno sea dinámico y sus cambios afecten
al comportamiento de alguna entidad que interactúe con dicho entorno. Su
comportamiento no puede ser expresado como una función matemática de su
entrada. En vez de ello, debe emplearse una descripción orientada al proceso, en
la cual la especificación del que se consigue mediante la especificación de un
modelo del comportamiento deseado en términos de respuestas funcionales, a
distintos estímulos del entorno.
PRINCIPIO 3.
15
puede ser modelado como una colección de objetos pasivos y activos. Estos
objetos están interrelacionados y dichas relaciones entre los objetos cambian con
el tiempo. Estas relaciones dinámicas suministran los estímulos a los cuales los
objetos activos, llamados agentes, responden. Las respuestas pueden causar
posteriormente cambios y, por tanto, estímulos adicionales a los cuales los
agentes deben responder.
PRINCIPIO 4.
PRINCIPIO 5.
16
los individuos, organizaciones y equipo de ese dominio; y las acciones que
ejecutan deben modelar lo que realmente ocurre en el dominio. Además, debe ser
posible incorporar en la especificación las reglas o leyes que gobiernan los objetos
del dominio. Algunas de estas leyes proscriben ciertos estados del sistema (tal
como "dos objetos no pueden estar en el mismo lugar al mismo tiempo"), y por
tanto limitan el comportamiento de los agentes o indican la necesidad de una
posterior elaboración para prevenir que surjan estos estados.
PRINCIPIO 6.
La especificación debe ser completa y lo bastante formal para que pueda usarse
para determinar si una implementación propuesta satisface la especificación de
pruebas elegidas arbitrariamente. Esto es, dado el resultado de una
implementación sobre algún conjunto arbitrario de datos elegibles, debe ser
posible usar la especificación para validar estos resultados. Esto implica que la
especificación, aunque no sea una especificación completa del cómo, pueda
actuar como un generador de posibles comportamientos, entre los que debe estar
la implementación propuesta. Por tanto, en un sentido extenso, la especificación
debe ser operacional.
PRINCIPIO 7.
17
Ninguna especificación puede ser siempre totalmente completa. El entorno en el
que existe es demasiado complejo para ello. Una especificación es siempre un
modelo, una abstracción, de alguna situación real (o imaginada). Por tanto, será
incompleta. Además, al ser formulad existirán muchos niveles de detalle. La
operacionalidad requerida anteriormente no necesita ser completa. Las
herramientas de análisis empleadas para ayudar a los especificadores y para
probar las especificaciones, deben ser capaces de tratar con la incompletitud.
PRINCIPIO 8.
Los principios anteriores tratan con la especificación como una entidad estática.
Esta surge de la dinámica de la especificación. Debe ser reconocido que, aunque
el principal propósito de una especificación sea servir como base para el diseño e
implementación de algún sistema, no es un objeto estático pre compuesto, sino un
objeto dinámico que sufre considerables modificaciones. Tales modificaciones se
presentan en tres actividades principales: formulación, cuando se está creando
una especificación inicial; desarrollo, cuando la especificación se está elaborando
durante el proceso iterativo de diseño e implementación; y mantenimiento, cuando
la especificación se cambia para reflejar un entorno modificado y / o
requerimientos funcionales adicionales.
18
4. Instrumentos para la recolección de los requerimientos.
4.1. Muestra
4.2. La entrevista
19
Preparación:
Realización:
Análisis:
20
Las entrevistas con los involucrados con el sistema son parte de la mayoría de los
procesos de la ingeniería de requerimientos. En estas entrevistas, el equipo de la
ingeniería de requerimientos hace preguntas sobre el sistema que utilizan y sobre
el sistema a desarrollar.
21
involucrados con el sistema y, por lo tanto, desarrolla una mejor
comprensión de sus necesidades.
22
El entrevistador debe poseer y debe evitar:
4. 3 Cuestionarios
23
§ Los cuestionarios, al igual que las entrevistas, pueden contener preguntas
estructuradas con espacios en blanco para rellenar, preguntas con
opciones múltiples o pueden incluir preguntas abiertas en las que se invita
al encuestado a contestar de forma amplia y en cierta medida elegir su
propio enfoque.
24
4.5. Diagramas de casos de uso.
25
5. Análisis de requerimientos
1
Dr. Raymond Yeh in the forward to System and Software Requirements Engineering, IEEE Computer Society Press
Tutorial, Editors, M. Dorfman, and R.H Thayer, 1990).
26
Figura 10. Costo relativo de la mala definición de requerimientos
Fuente: Somerville, Ian. “Ingeniería del Software”, 7ª Ed.,
Pearson Addison Wesley, 2005.
27
Figura 11. Proceso general de análisis de requerimientos. Fuente: propia.
28
6.3 Modelización de la evaluación y síntesis de la solución.
Se crean modelos del sistema que servirán al analista para comprender mejor el
proceso funcional, operativo y de contenido de la información. El modelo servirá
de pilar para el diseño del software y como base para la creación de una
especificación del software.
6.4 Especificación.
6.5 Revisión.
Una vez que se han descrito la información básica, se especifican los criterios de
validación que han de servir para demostrar que se ha llegado a un buen
entendimiento de la forma de implementar con éxito el software. La
documentación del análisis de requerimientos y manuales, permitirán una revisión
por parte del cliente, la cual posiblemente traerá consigo modificaciones en las
funciones del sistema por lo que deberán revisarse el plan de desarrollo y las
estimaciones previstas inicialmente.
7. Modelo de análisis
29
requisitos desde diferentes puntos de vista aumentando la probabilidad de
encontrar errores, de que surjan debilidades y de que se descubran descuidos.
• Elementos de escenario.
• Elementos de flujo.
• Elementos de clases.
• Elementos de comportamiento.
30
Figura 52: Elementos del modelo de análisis. Fuente: Propia
Este modelo en simples palabras sirve para una interacción más amena entre el
sistema y el usuario, por lo tanto, el modelo de análisis con UML comienza con la
31
creación de escenarios en la forma de “los casos de uso, diagrama de actividad y
diagrama de secuencias:
32
Figura 74: Ejemplo diagrama de actividades. Fuente:
http://www.conocimientosweb.net/portal/cursos/2008/img/09.gif
33
Figura 85. Ejemplo de diagrama de secuencias
Fuente: https://i-msdn.sec.s-msft.com/dynimg/IC378044.png
Tiene una visión del sistema del tipo entrada-proceso-salida. Los objetos de datos
fluyen hacia el interior del software, se transforman mediante elementos de
procesamiento y los objetos de datos resultantes fluyen al exterior del software.
34
Diagrama de flujo de datos: sus principales características se mencionan a
continuación:
35
Figura 17: Diagrama de Nivel 0.Fuente: https://lh4.googleusercontent.com
36
Figura 18 .Ejemplo de diagrama de clases. Fuente: https://lh4.googleusercontent.com/
37
§ Clases de entidad: llamadas clases de modelo o negocios, se extraen de
manera directa del enunciado del problema.
§ Colaboradores: son aquellas clases que se requieren para que una clase
reciba la información necesaria para completar una responsabilidad.
§ Agregación: son las subclases que forman parte de una clase, se conectan
a través de una relación de tipo” es parte de”.
38
Figura 19. Ejemplo de diagrama de estado. Fuente:
http://jms32.eresmas.net/tacticos/UML/UML08/Fig0805.gif
39
Tabla 1. Actividades de Ingeniería de requerimientos para diferentes modelos de Ingeniería
de Software. Fuente: propia
Oliver and EIA / IS-632 IEEE Std 1220- CMM nivel RUP
Steiner 1996 1994 Repetitivo (2)+
Evaluar la Análisis de Análisis de Identificación Análisis del
información requerimientos Requerimientos de Problema
disponible requerimientos
Definir métricas Análisis Estudio de los Identificación Comprender
efectivas funcional requerimientos de restricciones las
del sistema a necesidades
desarrollar de los
involucrados
Crear un modelo Síntesis Validación de Análisis de los Definir el
del requerimientos requerimientos sistema
comportamiento
del sistema
Crear un modelo Análisis Análisis Representación Analizar el
de los objetos y control del funcional de los alcance del
sistema requerimientos proyecto
Ejecutar el Evaluación y Comunicación Modificar la
análisis estudio de de los definición del
funciones requerimientos sistema
Crear un plan Síntesis Validación de Administrar los
secuencial requerimientos cambios de
de construcción y Estudio requerimientos
pruebas y evaluación del
diseño
Verificación
física
Control
40
ACTIVIDAD 01
41
GLOSARIO
Ciclo de vida del software: El conjunto de procesos sistemáticos que tienen lugar
durante la existencia del producto, desde su concepción inicial hasta que la
organización decide no continuar manteniéndolo
Mejoramiento: evolución del proceso para hacerlo más eficiente para satisfacer
las necesidades de la empresa y los individuos que lo utilizan
42
Modelo de Madurez de Capacidades: Capability Maturity Model (CMM),
Conjunto de prácticas de ingeniería de software recomendadas por el SEI-CMU en
la versión SW-CMM.
43
BIBLIOGRAFÍA
44