User:Jhony steven villarreal noguera

= ¿Qué son los requerimientos de software? = requerimientos de software son simplemente una descripción de lo que un programa de software en particular debe hacer. Actúan como pautas para que los desarrolladores creen un producto funcional que satisfaga las necesidades de los usuarios. Siga leyendo para descubrir por qué los requerimientos son importantes para usted como ingeniero de software. Según Zave (2000) [Zave 2000], la Ingeniería de Requisitos es una rama de la Ingeniería del Software que trata con el establecimiento de los objetivos, funciones y restricciones de los sistemas de software. Asimismo, se ocupa de la relación entre estos factores con el objeto de establecer especificaciones precisas.

¿Por que son importantes los requerimientos?
A través de los años se ha podido constatar que los requerimientos o requisitos son la pieza fundamental en un proyecto de desarrollo de software, ya que marcan el punto de partida para actividades como la planeación, básicamente en lo que se refiere a las estimaciones de tiempos y costos, así como la definición de recursos necesarios y la elaboración de cronogramas que será uno de los principales mecanismos de control con los que se contará durante la etapa de desarrollo. Además la especificación de requerimientos es la base que permite verificar si se alcanzaron o no los objetivos establecidos en el proyecto ya que estos son un reflejo detallado de las necesidades de los clientes o usuarios del sistema y es contra lo que se va a estar verificando si se están cumpliendo las metas trazadas



Definir el alcance de un proyecto
Los requerimientos son esenciales para el alcance de un proyecto. Los requerimientos de software ayudan a determinar qué características estarán en el producto final, cuánto tiempo llevará desarrollar esas características y cuánto costará. Si el alcance de un proyecto no está bien definido, puede conducir a un deslizamiento del alcance. El deslizamiento del alcance ocurre cuando el alcance de un proyecto comienza a expandirse más allá del acuerdo inicial. Puede suceder porque las partes interesadas comienzan a incluir una nueva característica o porque el equipo del proyecto no hizo un excelente trabajo al definir el alcance en primer lugar.



Identificar riesgos potenciales
Los requerimientos también ayudan a identificar los riesgos al principio del proceso de desarrollo y, dependiendo de la metodología que esté utilizando, ahorrando tiempo y dinero considerables más adelante. Al identificar los riesgos temprano, puede evitarlos por completo o establecer planes de contingencia para mitigar su impacto durante el desarrollo de software.

Algunos de los riesgos más comunes que puede identificar a través de la recopilación de requerimientos incluyen:


 * Objetivos indefinidos o contradictorios
 * Falta de comprensión de las necesidades del usuario
 * Falta de recursos
 * Plazos poco realistas



Proporcionar una base para las pruebas
Los requerimientos de software proporcionan la base para las pruebas prácticas. Al tener un conjunto completo y bien documentado de requerimientos, los ingenieros de software pueden crear casos de prueba que cubren todos los aspectos del software que están desarrollando. Las pruebas ayudan a garantizar que el producto final cumpla con todas las expectativas del cliente. Además, los requerimientos pueden crear pruebas automatizadas. Estas pruebas pueden ejecutarse automáticamente cada vez que se cambia el código, proporcionando comentarios a los desarrolladores sobre si los cambios que realizaron rompieron o no alguna funcionalidad existente.



Dar dirección a los desarrolladores
Los requerimientos también proporcionan una hoja de ruta para el proceso de desarrollo. Pueden ayudar a los desarrolladores a comprender cómo encajan las diferentes piezas del software y qué necesidades deben satisfacer primero. Además, los requerimientos bien escritos pueden ahorrar tiempo a los desarrolladores al proporcionar instrucciones claras y concisas. La dirección puede ayudar a evitar malentendidos sobre los objetivos del proyecto y evitar que se arrastren.

El requisito salvaguarda la experiencia del usuario final
Los requerimientos de software ayudan a salvaguardar la experiencia del usuario final en el desarrollo de software. Al tener una comprensión completa y precisa de lo que los usuarios necesitan, quieren y esperan de una aplicación de software, los desarrolladores pueden crear productos que tienen más probabilidades de satisfacer las necesidades del usuario. La consideración del usuario final es crucial en aplicaciones de misión crítica, donde la satisfacción del usuario es esencial en el desarrollo de aplicaciones.

Fomenta la comunicación y la colaboración entre los miembros del equipo
El desarrollo de software y aplicaciones es un proceso técnico que involucra a muchas personas diferentes con varios conjuntos de habilidades. Los requerimientos actúan como un lenguaje común entre los miembros del equipo, mejorando la comunicación y la colaboración. El proceso proporciona un marco para la comunicación entre los miembros del equipo que trabajan en un proyecto de desarrollo de software. Con una comprensión compartida de las metas y objetivos del proyecto, los miembros del equipo pueden colaborar más fácilmente para producir el resultado deseado.

La obtención de requerimientos
Esta fase representa el comienzo de cada ciclo. Es la parte más importante del proceso ya que todo lo que se obtenga en esta fase será la base para la construcción del sistema.

Aquí, los analistas de requerimientos deberán trabajar junto al cliente para descubrir el problema que el sistema debe resolver. Esto por lo regular se hace en una junta llamada kick off o de arranque, donde se debe especificar lo siguientes:


 * Objetivo del sistema, y fechas tentativas del inicio y fin del proyecto
 * Presentación del Equipo de Trabajo.



Análisis de requerimientos
Es el segundo paso que nos dicta la Ingeniería de Requerimientos, implica refinar, analizar, y examinar/escudriñar los requerimientos obtenidos para asegurar que todos los clientes involucrados entienden lo que pidieron, y para encontrar errores, omisiones y otras deficiencias.

En esta etapa se leen los requerimientos, se conceptúan, se investigan, se intercambian ideas con el resto del equipo, se resaltan los problemas, se buscan alternativas y soluciones, y luego se van fijando reuniones con el cliente para discutir los requerimientos.

Las actividades a contemplar durante esta etapa son:


 * Reducir ambigüedades en los requerimientos. En esta actividad se realizan las tareas que permiten eliminar los términos que tienen más de una acepción, unificando el léxico empleado.
 * Traducir a lenguaje técnico los requerimientos. Los requerimientos, ya con menos ambigüedades, deben ser tratados a los efectos de llevarlos a un lenguaje que se vaya aproximando al lenguaje técnico.
 * Plantear un modelo lógico. Se debe construir un modelo del problema ya sea en términos de diagramas de flujo o cualquier otro tipo de representación que se considere conveniente para el modelado y que permita, además, establecer un vínculo con la Etapa de Especificación.



Especificación de Requerimientos
En esta fase se documentan los requerimientos acordados con el cliente, en un nivel apropiado de detalle. Se documenta la descripción completa de las necesidades y funcionalidades del sistema que será desarrollado; describe el alcance del sistema y la forma como hará sus funciones, definiendo los requerimientos funcionales y no funcionales.

Requerimientos funcionales
Un requisito funcional es una declaración de cómo debe comportarse un sistema. Define lo que el sistema debe hacer para satisfacer las necesidades o expectativas del usuario. Los requisitos funcionales se pueden considerar como características que el usuario detecta. Son diferentes de los requisitos no funcionales, que definen cómo debe funcionar internamente el sistema, ejemplo:


 * Regulaciones comerciales.
 * Requisitos de Certificación.
 * Los requisitos de información.
 * Funciones administrativas.
 * Niveles de autorización.
 * Seguimiento de auditoría.
 * Interfaces externas.
 * Administración de datos.

Requerimientos no funcionales
Un requisito no funcional o atributo de calidad es, en la ingeniería de software, se refieren a todos los requisitos que no describen información a guardar, ni funciones a realizar, sino características de funcionamiento. Por esto, suelen denominarse atributos de calidad de un sistema, ejemplo:


 * Rendimiento.
 * Disponibilidad.
 * Durabilidad.
 * Estabilidad.
 * Accesibilidad.
 * Adaptabilidad.
 * Capacidad.
 * Integridad de datos.



Verificación de Requerimientos
Para hacer la verificación se recomienda primero seleccionar varios revisores de diferentes disciplinas puede ser un analista, arquitecto, o incluso un ingeniero de SW, pero debe ser alguien que esté familiarizado con la ingeniería de requerimientos, además debe tener conocimiento de los estándares de documentación de la organización. Se puede preparar un checklist para la revisión de los requerimientos, esto dependerá del proyecto que se esté manejando.

Lo que se debe hacer es realizar revisiones al documento, aplicarles pruebas de escritorio, ejemplo:


 * ¿Están incluidas todas las funcionalidades requeridas por el cliente? (completa).
 * ¿Existen conflictos en los requerimientos? (consistencia)
 * ¿Tiene alguno de los requerimientos más de una interpretación? (no ambigua)
 * ¿Esta cada requerimiento claramente representado? (entendible)
 * ¿Puede ser los requerimientos implementados con la tecnología y presupuesto disponible? (factible)
 * ¿Está la especificación escrita en un lenguaje apropiado? (clara)



Aceptación de Requerimientos
Este es un proceso donde los analistas involucrados se reúnen con el cliente y comienzan a dar una revisión formal al documento, esto es, comienzan a leer y explicar cada requerimiento, incluso se pueden apoyar nuevamente en prototipos en papel para que quede más claro el funcionamiento, esto con el fin de que todos estén en el mismo entendido de lo que se realizará para cada requerimiento. Una vez que todos estén de acuerdo se hace la aceptación/aprobación de la especificación de requerimientos, se realiza un compromiso formal de que lo contenga la Especificación será lo que se construya y se pide al cliente una aprobación formal vía correo electrónico o una firma sobre el documento físico.

Administración de Requerimientos
La administración de requerimientos se realiza durante todo el proyecto, esto implica llevar un buen control de los cambios, asegurarte de hacerle ver al cliente el impacto en costo y/o el tiempo de entrega del proyecto, pero también debes cuidar como pegan estos cambios a los entregables que tienes, según la etapa donde se den.

Otro punto importante es que debes asegurarte de que todas las actividades de tu proyecto se den en tiempo para no causar retrasos en la entrega.