User:JohaZapata

Requerimientos de Software:
Son utilizados para tener claridad sobre el proyecto de software que se espera recrear, en donde el objetivo del proyecto y sus funcionalidades deben ser especificas desde el principio, sin dar cabida a confusiones o posibles retrasos en la estapa de desarrollo del proyecto y en donde todaas las partes involucradas estén de acuerdo.

Proceso de Requerimientos de Software:
Como primera medida el equipo de desarrollo debe reunirse con el cliente y obtener los requerimientos, de manera detallada, sin dejar paso a cabos sueltos que puedan alterar el proyecto en etapa de desarrollo. Una vez realizado esto, se generará un análisis de dichos requerimientos, para luego generar un documento con la especificación completa y clara de dichos requerimientos, documento que se revisará junto al cliente con el fin de obtener su aval y continuar con la siguiente fase del proyecto de software a desarrollar.

=
Nota: Es muy importante que los requerimientos sean lo suficientemente espoecificos y claros, ya que de lo contrario podrían generar costos mayores, necesidad de otro tipo de personal especializado y/o la entrega de un proyecto incompleto o no funcional. =====

Caracteristicas de los requerimientos de software:

 * Necesario: significa que este debe estar presente cuando represente algún riesgo para el proyecto de software
 * Conciso: Debe ser intuitivo, facil de entender.
 * Completo: un requerimiento está completo cuando no necesita más redacción, y cuando este expresa de manera clara y precisa su objetivo
 * Consistente: Cuando no es contraproducente sobre otro requeriemiento
 * No ambiguo: Cuando este tiene una sola interpretación
 * Verificable: Se basa en  3 métodos de verificación: Inspección, Análisis y Pruebas

Requisitos Funcionales:
Son declaraciones de los servicios que proveerá el sistema y comprenden la interacción entre el sistema y su ambiente, la reacción a entradas particulares de datos y su comportamiento en condiciones específicas. En algunos casos también declaran lo que el sistema no debe hacer. (Vista de ANÁLISIS DE INGENIERÍA DE REQUERIMIENTOS: ALTA DE UNIDADES DE APRENDIZAJE EN LA UAI-UAGRO (MÉXICO) | Revista Vínculos, s. f.)

Requisitos No Funcionales:
Son especificaciones de las restricciones de los servicios o funciones ofrecidas por el sistema; estas restricciones limitan las elecciones en la solución a un problema. Los requerimientos no funcionales no se refieren directamente a las funciones específicas que entrega el sistema, sino a sus propiedades emergentes. (Vista de ANÁLISIS DE INGENIERÍA DE REQUERIMIENTOS: ALTA DE UNIDADES DE APRENDIZAJE EN LA UAI-UAGRO (MÉXICO) | Revista Vínculos, s. f.)

En los requisistos no funcionales encontramos las siguientes propiedades:


 * Software: Requisitos de plataforma para el correcto desarrollo y funcionamiento del proyecto.
 * Usabilidad: Interfaz de usuario familiar
 * Seguridad: Empleando roles y gestión administrada mediante usuarios y contraseñas.
 * Desempeño y escalabilidad: Adaptable a lo largo del proyecto y después de su finalización
 * Mantenimiento y actualización: Actualizaciones al alcance del cliente final
 * Soporte: Soporte técnico en cualquier momento
 * Hardware: Servidores o infraestructura adecuada para el proyecto

Tipos de requerimientos de acuerdo con la audiencia:
Significa que depende a quién vaya dirigida la explicación esta debe darse de una manera clara y concisa, por ejemplo no es lo mismo explicarle al cliente final el desarrollo del proyecto que al equipo de ingenieros que se harán cargo del mismo.


 * Requermientos del usuario: Se explican de la manera más sencilla, clara y especifica posible utilizando presentación de Mockups o alguna herramienta que permita su fácil entendimiento.
 * Requerimientos del Sistema: Se explican de manera más detallada siendo especificos en sus funcionalidades y restricciones técnicas.

Documentación:
En un documento digital se consignan las caracteristicas y requisitos del software a desarrollar.

Prototipo:
Simulación digital por ejemplo Mockups del funcionamiento total de proyecto, con el fin de dar claridad al cliente final y afinar detalles que pueden haberse olvidado o que se deban ajustar.

Atributos:
Propiedad medible de un sistema, con el que se puede determinar si satisface las necesidades del proyecto

Patrones de arquitectura de Software:
Son formas de capturar estructuras de diseño con el fin de ser reutilizadas, encontramos 5 patrones:


 * Sistemas de Software Microkernel: Se utiliza cuando los equipos de software crean sistemas con componentes intercambiables
 * Microservicios: Cada microservicio tiene su propia responsabilidad aunque dependen de la comunicación pueden generar diversas solicitudes.
 * En Capas: Son los más utilizados ya que cuentan con n cantidad de niveles en donde los componentes están organizados en capas horizontales.
 * Event-based pattern: Consiste en componentes de procesamiento de eventos de un solo propósito que escuchan los eventos y los procesan asincrónicamente
 * Basado en el Espacio: está diseñado específicamente para abordar y resolver problemas de escalabilidad y concurrencia (Novoseltseva, 2021)

Referencias Bibliográficas:

IEEE (2004). Computer Society. SWEBOK Guide V3 Topics

Borrell, C. R. (2006). Importancia de la ingeniería de requerimientos dentro del ciclo de desarrollo de software. Tono Revista Técnica de La Empresa de Telecomunicaciones de Cuba, S.A, (3), 52–56.

(Vista de ANÁLISIS DE INGENIERÍA DE REQUERIMIENTOS: ALTA DE UNIDADES DE APRENDIZAJE EN LA UAI-UAGRO (MÉXICO) | Revista Vínculos, s. f.)