Este documento presenta una introducción a los fundamentos y métodos de análisis de requerimientos para el desarrollo de sistemas de software. Explica principios clave como la distinción del tipo de datos, el análisis basado en hipótesis y la selección de muestras representativas. También describe métodos como el análisis orientado a objetos, la descomposición funcional, los casos de uso y los prototipos. Finalmente, introduce conceptos fundamentales de la programación orientada a objetos como la abstracción, encapsulación,
Fundamentos y metodos de analisis de requerimientos
Análisis Requisitos Software
1. Instituto Universitario Politécnico
“Santiago Mariño”
Extensión Maracay
Escuela de Ingeniería de Sistemas
Maracay, Julio 2019
Fundamentos y Métodos de
Análisis de Requerimientos
Autor:
Luis Mortell
V26.055.569
Docente:
José Castillo
2. Introducción
La construcción de un sistema software, con independencia de su
tamaño, de sus características funcionales y de la tecnología
elegida, consta de una serie de fases que abarcan desde su
concepción hasta su retirada, definiendo un espacio temporal que
recibe el nombre de ciclo de vida del software. Existen diferentes
modelos de ciclo de vida, cada uno con sus propias peculiaridades,
adaptándose unos mejor que otros a los distintos paradigmas o
estilos de programación. Pero, lo que sí se puede afirmar es que en
ninguno de estos modelos de desarrollo se comienza un proyecto
software por la fase de implementación, sino de su análisis.
3. Principios del Análisis
El Análisis consta de varios principios que se definirán a
continuación:
1) Distinga el tipo de dato que está analizando:
La visualización de datos no consiste solamente en ver progresos en
el tiempo o la composición de algunos gráficos en particular,
realmente la importancia radica en primer lugar en la naturaleza del
dato, lo que significa, su amplitud e implicaciones. Dependiendo de
estas cualidades del dato a analizar, usted podrá obtener indicadores
de desempeño comercial mucho más sustanciosos en cuanto a
conclusiones se refiere.
4. 2) Analice la información con base en hipótesis
Todo estudio debe tener un propósito para poder sacar el mayor
provecho. Analizar datos sin ningún propósito realmente no es analizar, es
divagar en un mar de datos.
La divagación es muy común en la gerencia, usted puede dar fe de
personas que se sientan a visualizar gráficos sin ningún propósito concreto,
y tienen además la creencia que los datos por sí solos darán algún tipo de
respuesta o premonición, nada diferente a sentarse en el fuego esperando
algún tipo de visión del señor de la luz.
3) Escoja siempre una muestra representativa y coherente con lo que
quiere demostrar
Una muestra es un subconjunto de datos. De toda esa información
sistematizada sobre su negocio, usted deberá tomar lo necesario para
contrastar su hipótesis. Si está evaluando el anuncio publicitario ejecutado
a partir del 05 de abril de 2017, no tendrá utilidad alguna que empiece a
analizar sus ventas desde enero de 2016, pues es mucho el tiempo
transcurrido y los eventos asociados antes de aplicarse el anuncio.
5. Análisis Orientado a Objetos
Es el proceso que modela el dominio del problema mediante la
identificación y la especificación de un conjunto de objetos
semánticos que interaccionan y se comportan de acuerdo a los
requisitos del sistema. Permite describir el sistema en los mismos
términos que el mundo real y se centra en la comprensión del
espacio (dominio) del problema.
6. Metodología de Análisis de
Requerimiento
El análisis de requerimientos consiste en aplicar una serie de
técnicas para desglosar y analizar los requisitos y sus partes, algunas
de estas técnicas son: Modelado de procesos, Modelado de dominio,
casos de uso, inspecciones, listas de chequeo y prototipos. Se
explican a continuación:
1) Descomposición Funcional:
La descomposición funcional se refiere al proceso de
identificar y resolver las relaciones funcionales en sus partes
constituyentes, de tal forma que la función global pueda ser
reconstruida a partir de sus partes.
7. 2) Especificación vía Sentencias Textuales:
Se usan especificaciones textuales en lenguaje natural, que se
documentan en matrices de trazabilidad de requerimientos o
definiciones del alcance.
4) Modelo de dominio:
En Ingeniería de software, en análisis de dominio consiste en analizar
sistemas o software relacionados en un dominio, con la finalidad de
encontrar sus partes comunes y partes que los diferencian.
3) Modelado del proceso:
Comprende la elaboración de diagramas de flujo de
procesos (Flujogramas) a partir de los requerimientos
del software.
8. 5) Casos de Uso:
Un caso de uso es una secuencia de interacciones entre un sistema y
alguien o algo que usa alguno de sus servicios.
6) Checklists:
Consiste en una serie de preguntas o revisiones que se realizan sobre
los requerimientos de software, que nos sean presentados de forma
escrita.
7) Inspección:
De forma similar al uso de la lista de chequeo, la inspección consiste en
tomar el requerimiento definido en la matriz de trazabilidad o definición
de alcance, leerlo y producir un resultado para su corrección.
8) Prototipos:
Consiste en elaborar representaciones visuales (interfaz gráfica con el
usuario) de los requerimientos de software.
9. Método de Análisis Orientado al
Flujo de Datos.
Un diagrama de flujos de datos (DFD), es una técnica grafica que
describe el flujo de información y las transformaciones que se aplican a
los datos, conforme se mueven de la entrada a la salida. El diagrama es
similar en la forma a otros diagramas de flujo de actividades, y ha sido
incorporado en técnicas de análisis y diseños propuesto por Yourdon y
Constantine, DeMarco y Gane y Sarson. También se le conoce como un
grafo de flujo de datos o un diagrama de burbujas.
10. Desarrollo del Sistema
Estructurado de Datos
Muchos especialistas en sistemas de información reconocen la
dificultad de comprender de manera completa sistemas grandes y
complejos. El método de desarrollo del análisis estructurado tiene como
finalidad superar esta dificultad por medio de:
1) La división del sistema en componentes
2) La construcción de un modelo del sistema.
El análisis estructurado se concentra en especificar lo que se
requiere que haga el sistema o la aplicación. Permite que las personas
observen los elementos lógicos (lo que hará el sistema) separados de los
componentes físicos (computadora, terminales, sistemas
de almacenamiento).
11. Desarrollo del Sistema Jackson
El desarrollo de sistema de Jackson se obtuvo a partir del trabajo
de M.A. Jackson sobre el análisis del dominio de la información y
sus relaciones con el diseño de programas y sistemas.
1) Paso de las Acciones y Entidades:
Usando un método muy similar a la técnica de análisis orientada
al objeto, en este paso se identifican las entidades y acciones.
2) Paso de estructuración de las entidades:
Las acciones que afectan a cada entidad son ordenadas en el
tiempo y representadas mediante diagramas de Jackson (una
notación similar a un árbol).
12. 3) Paso de Modelación Inicial:
Las entidades y acciones se representan como un modelo del
proceso; se definen las conexiones entre el modelo y el mundo real.
4) Paso de las Funciones:
Se especifican las funciones que corresponden alas acciones
definidas.
5) Paso de Temporización del Sistema:
Se establecen y especifican las características de planificación del
proceso.
6) Paso de Implementación:
Se especifica el hardware y software como un diseño.
13. Metodología de Programación
Orientado a Objeto
Es un paradigma de programación que usa los objetos en sus
interacciones, para diseñar aplicaciones y programas informáticos.
Está basado en varias técnicas, incluyendo herencia, cohesión,
abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de los años 1990.
En la actualidad, existe una gran variedad de lenguajes de
programación que soportan la orientación a objetos.
14. Análisis de Lenguajes Orientado a
Objetos
Tradicionalmente, la programación fue hecha en una manera
secuencial o lineal, es decir una serie de pasos consecutivos con
estructuras consecutivas y bifurcaciones.
Los lenguajes basados en esta forma
de programación ofrecían ventajas al principio,
pero el problema ocurre cuando los sistemas se
vuelven complejos.
Frente a esta dificultad aparecieron
los lenguajes basados en la programación
estructurada. La idea principal de esta forma de
programación es separar las partes complejas
del programa en módulos o segmentos que sean
ejecutados conforme se requieran.
15. Fundamentos de Programación
Orientada a Objetos
Existen cuatro fundamentos dentro de la Programación Orientada a
Objetos que se relacionan entre sí y que nos permitirán tener las riendas
de nuestro código:
1) Abstracción:
Proceso mental de extracción de las características esenciales de algo,
ignorando los detalles superfluos.
2) Encapsulación:
Proceso por el que se ocultan los detalles del soporte de las
características esenciales de una abstracción.
16. 3) Modularización:
Proceso de descomposición de un sistema en un conjunto de
módulos o piezas independientes y cohesivos. Lo adecuado es
conseguir los mínimos acoplamientos.
4) Jerarquización:
Proceso de estructuración por el que se produce una organización
(jerarquía) de un conjunto de elementos en grados o niveles de
responsabilidad, incumbencia o composición entre otros.
17. Conclusión
Aún quedan muchos métodos que deben ser incluidos o mejorados,
tales como la integración de requerimientos funcionales y no
funcionales, la evaluación de especificaciones alternativas, la
formalización de la SRS, entre otras.
Cada actividad y técnica utilizada en la metodologías de
programación o software, dará diferentes soluciones para diferentes
proyectos, incluyendo aquellos casos en los que el dominio y el área
del problema son el mismo. Por esta razón, se considera que no existe
un modelo de proceso ideal para realizar un proyecto; encontrar el
método o la técnica perfecta es una ilusión, pues cada método y
técnica ofrece diferentes soluciones ante un problema.
18. Bibliografía
Hernández, R. Y Fernández, C. (2017). Introducción a la Ingeniería
de Requerimientos. (Tercera Segunda Edición) Argentina: Editorial
Valley.
Molina, C. (2017). Análisis y Fundamentos del Software.
Venezuela: Editorial Monumento.
Huagan, B. (2015). Proyectos de Software Vol.2. Perú: Tinka