User:Wiki grup

Requerimiento de software
Es el análisis de un programa de software para satisfacer las necesidades a satisfacción del cliente.

Los requisitos de software son especificaciones y características que describen las funcionalidad, características y restricciones que debe tener un sistema de software. Estos requerimientos son necesarios para guiar el proceso de desarrollo y asegurar que el software cumpla con las expectativas y necesidades de los usuarios y las partes interesadas.

Algunas de las características más importantes de los requisitos de software son:

 * Claridad y comprensión


 * Completitud


 * Consistencia


 * Escalabilidad


 * Especificidad


 * Funcionalidad


 * Fiabilidad


 * Funcionalidad


 * Mantenibilidad


 * Priorización


 * Rendimiento


 * Relevancia


 * Seguridad


 * Usabilidad


 * Verificabilidad

Claridad y Comprensión.
Los requerimientos deben estar redactados de manera clara y precisa, evitando ambigüedades y asegurando que todos los involucrados tengan una comprensión común de lo que se espera del software. La claridad en los requerimientos ayuda a evitar malentendidos y confusiones durante el desarrollo del software.

Completitud.
Los requerimientos deben ser exhaustivos y abarcar todas las funcionalidades, características y restricciones necesarias para cumplir con los objetivos del software. Es importante identificar y documentar todos los requisitos relevantes para garantizar que el software sea completo y satisfaga las necesidades de los usuarios.

Consistencia.
Los requerimientos deben ser coherentes y no deben tener contradicciones o conflictos entre sí. Es importante revisar y verificar que los requerimientos no generen situaciones ambiguas o contradictorias que puedan afectar el diseño y desarrollo del software.

Escalabilidad.
Los requerimientos de escalabilidad se refieren a la capacidad del software para manejar un aumento en la carga de trabajo o en el tamaño del sistema sin una degradación significativa del rendimiento. Estos requerimientos incluyen aspectos como la capacidad de agregar recursos adicionales, como servidores o capacidad de almacenamiento, para mantener el rendimiento y la respuesta del software a medida que crecen las necesidades del sistema.

Especificidad.
Los requerimientos deben ser específicos y detallados, evitando términos vagos o ambiguos. Deben proporcionar información clara y precisa sobre qué funcionalidades debe tener el software y cómo debe comportarse. Esto ayuda a evitar interpretaciones erróneas y facilita el desarrollo y las pruebas del software.

Funcionalidad.
Los requerimientos de funcionalidad describen las acciones y comportamientos específicos que el software debe ser capaz de realizar. Estos requerimientos definen las características y capacidades del sistema, especificando qué tareas debe llevar a cabo y cómo debe responder a las entradas y eventos.

Fiabilidad.
Los requerimientos de fiabilidad se centran en la capacidad del software para funcionar de manera correcta y consistente durante un período de tiempo determinado. Estos requerimientos incluyen la tolerancia a fallos, la capacidad de recuperación, la gestión de errores y la capacidad de mantener un desempeño estable y confiable en diversas condiciones de operación.

Funcionalidad.
Los requerimientos de funcionalidad describen las acciones y comportamientos específicos que el software debe ser capaz de realizar. Estos requerimientos definen las características y capacidades del sistema, especificando qué tareas debe llevar a cabo y cómo debe responder a las entradas y eventos.

Mantenibilidad.
Los requerimientos de mantenibilidad se refieren a la facilidad con la que el software puede ser modificado, corregido y mejorado en el futuro. Estos requerimientos incluyen aspectos como el modularidad del código, la claridad de la documentación, la facilidad de pruebas y depuración, y la capacidad de comprensión del sistema por parte de los desarrolladores.

Priorización.
Los requerimientos deben estar priorizados según su importancia y urgencia. Esto ayuda a los desarrolladores a enfocar sus esfuerzos en los requerimientos más críticos y a tomar decisiones informadas en caso de limitaciones de tiempo o recursos.

Rendimiento.
Los requerimientos de rendimiento definen los criterios y objetivos relacionados con la capacidad del software para cumplir con los requisitos de tiempo de respuesta, capacidad de procesamiento, escalabilidad y eficiencia en el uso de recursos. Estos requerimientos aseguran que el software pueda funcionar de manera efectiva y eficiente en diferentes condiciones y cargas de trabajo.

Relevancia.
Los requerimientos deben ser relevantes para el objetivo del software y las necesidades de los usuarios y partes interesadas. Es esencial identificar y priorizar los requerimientos que sean críticos para el éxito del software y eliminar aquellos que sean innecesarios o no contribuyan al logro de los objetivos.

Seguridad.
Los requerimientos de seguridad se refieren a la protección del software y los datos contra amenazas y accesos no autorizados. Estos requerimientos incluyen medidas de autenticación, control de acceso, cifrado de datos, detección y prevención de intrusiones, y gestión de privacidad para garantizar la confidencialidad, integridad y disponibilidad de la información.

Usabilidad.
Los requerimientos de usabilidad se refieren a la facilidad con la que los usuarios pueden interactuar con el software y realizar sus tareas. Estos requerimientos incluyen aspectos como la intuición de la interfaz de usuario, la eficiencia en la ejecución de tareas, la capacidad de personalización y la accesibilidad para usuarios con discapacidades.

Verificabilidad.
Los requerimientos deben ser verificables, lo que significa que se debe poder evaluar de manera objetiva y medible si se han cumplido o no. Deben ser redactados de manera que se puedan realizar pruebas y validaciones para demostrar que el software cumple con los requerimientos establecidos.

Tipos de requerimientos de software
Hay dos tipos de requerimientos que son:


 * requerimientos funcionales: este requerimiento se basa en saber que es lo que el sistema va hacer.

en este requerimiento se divide en: de uso, de sistema o reglas de negocio


 * de uso: son especificaciones detalladas de como va funcionar el sistema, que va hacer

* ejemplo: el sistema debe permitir introducir los datos de los usuarios nuevos.


 * de sistema: en este requerimiento encontramos las definición de los servicios y restricciones que va tener el sistema

* ejemplo: El sistema enviara un correo cuando se registre algunas de las transacciones:

-registros

-despachos.

-pedidos

Requerimientos no funcionales: es el que define como va ser el sistema, las restricciones y requisitos que va tener el sistema, este requisito se ocupa de: mantenibilidad, confiabilidad, seguridad, rendimiento entre otras. Se divide en tres categorías que son:


 * rendimiento: este se divide en tiempo de respuesta( lo que tarda el sistema en resolver una solicitud) y rendimiento (es la cantidad de peticiones que puede manejar).
 * Seguridad: es la seguridad que tiene el sistema para proteger los datos del usuario, confidencialidad y protección, para esto maneja cifrado, automatización y autenticación.
 * calidad: este define los métodos utilizados para probar la calidad. se utiliza, la conformidad, usabilidad, confiabilidad y mantenibilidad.

Ciclo de Vida del Desarrollo de Software (SDLC)
El Ciclo de Vida del Desarrollo de Software (SDLC, por sus siglas en inglés), es un proceso estructurado para el desarrollo de software que incluye varias etapas. Este proceso se utiliza en la ingeniería de software para guiar la planificación, el análisis, el diseño, la implementación, las pruebas y el mantenimiento de los sistemas de software.

Las etapas del SDLC son:

1. Planificación
La planificación es la primera y una de las etapas más críticas del SDLC. Durante esta etapa, los desarrolladores, los gerentes de proyecto y los clientes discuten y definen los objetivos del proyecto. Esta fase también incluye la identificación de las limitaciones y los riesgos del proyecto.

2. Análisis de Requisitos
En esta fase, los analistas de sistemas y los stakeholders trabajan juntos para entender, documentar y validar las necesidades y requerimientos del sistema. Estos requisitos funcionales y no funcionales formarán la base para las etapas de diseño e implementación.

3. Diseño
Durante la fase de diseño, los desarrolladores y diseñadores de software crean un plan detallado para el sistema de software. Esto incluye la creación de diagramas de arquitectura, la selección de tecnologías y la definición de la estructura de la base de datos y la interfaz de usuario.

4. Implementación
En la fase de implementación, el equipo de desarrollo comienza a codificar el sistema de acuerdo con el diseño. Esta es la fase donde se escribe la mayor parte del código del software.

5. Pruebas
Una vez que el software ha sido implementado, comienza la fase de pruebas. Los testers ejecutan una serie de pruebas para encontrar y corregir errores en el software. Esto puede incluir pruebas unitarias, pruebas de integración, pruebas de sistema y pruebas de aceptación del usuario.

6. Despliegue
Una vez que el software ha sido probado y aprobado, se despliega en el entorno de producción. Dependiendo de la metodología utilizada, puede haber varios ciclos de pruebas y despliegue.

7. Mantenimiento
Después del despliegue, el software entra en la fase de mantenimiento. Durante esta fase, se realizan actualizaciones y mejoras en el software en respuesta a los problemas y requisitos cambiantes del usuario.