Overblog Todos los blogs Blogs principales Estilo de vida
Edit post Seguir este blog Administration + Create my blog
MENU

Publicidad

Requerimientos de Información Unefa Ing de sistemas secciones A y B

Especificación y manejo de los requerimientos del Software

 Introducción

Definición de requerimiento: En la ingeniería de sistemas, un requerimiento es una necesidad documentada sobre el contenido, forma o funcionalidad de un producto o servicio.

Los requerimientos son la Pieza fundamental en un proyecto de desarrollo de software, es ellos se basan muchos participantes del proyecto para:

Planear el proyecto y los recursos que se usarán en él. Los lideres de proyecto usan los requerimientos como una base para la estimación del esfuerzo necesario en un proyecto.

Especificar el tipo de verificaciones que se habrán de realizar al sistema. Por ejemplo: cuando se esta tratando de alinearse a cierta norma oficial o estándar.

Planear la estrategia de prueba a la que habrá de ser sometido el sistema. Los requerimientos son la base sobre la cual se decide si un caso de prueba fue ejecutado exitosamente por el sistema o no.

Son el fundamento del ciclo de vida del proyecto. Los requerimientos documentados son la base para crear la documentación del sistema

De ahí su importancia y la importancia de que deban de ser definidos y manejados de la forma mas adecuada posible.

Características de un requerimiento

Ya que visualizamos la importancia de los requerimientos en un sistema de software entonces debemos de definir que características deben de poseer los requerimientos adecuadamente formulados.

Los requerimientos deben ser:

 

 

 

 

 

 

 

Especificados por escrito. Como todo contrato o acuerdo entre dos partes

Posibles de probar o verificar. Si un requerimiento no se puede comprobar, entonces ¿cómo sabemos si cumplimos con él o no?

Descritos como una característica del sistema a entregar. Esto es: que es lo que el sistema debe de hacer (y no como debe de hacerlo)

Lo más abstracto y conciso posible. Para evitar malas interpretaciones.

 Los requerimientos de un sistema de software, cuando se ven en su conjunto son extensos y detallados, y además contienen múltiples relaciones entre si. Lo que nos da a concluir, de acuerdo a lo expuesto en el capítulo de complejidad en el software, que el conjunto de requerimientos de un sistema computacional es complejo.

Obtenemos la posibilidad de especificar sistemas complejos al documentar especificaciones simples y concisas para el sistema. Esto se logra mediante al clasificar, estructurar y organizar todo lo que el sistema debe de hacer. En otras palabras al analizar sus requerimientos.

El análisis de requerimientos consiste brevemente en los siguientes pasos:

  • Obtener información acerca de lo que los usuarios desean
  • Clasificar esos deseos para comenzar a estructurar requerimientos
  • Identificar los niveles de jerarquía del sistema y empezar a alojar los ya clasificados requerimientos en cada nivel.
  • Especificar formalmente los requerimientos de acuerdo al nivel de audiencia que se desea.

 

Obteniendo  la información

Los requerimientos son el punto de acuerdo entre el cliente y el proyecto de desarrollo de software, este entendimiento es necesario para poder construir software que satisfaga las necesidades de nuestro cliente.

Si los requerimientos se enfocan a describir las necesidades del cliente, entonces es lógico que para recabarlos haya que obtener la información de primera mano. Esto es, mediante entrevistas con el cliente o recabando documentación que describa la manera que el cliente desea que funcione el sistema de software.

Las necesidades y/o requerimientos del cliente evolucionan con el tiempo y cada cambio involucra un costo. Por eso es necesario tener archivada una copia de la documentación original del cliente, así como cada revisión o cambio que se haga a esta documentación

Como cada necesidad del cliente es tratada de diferente forma, es necesario clasificar estas necesidades para saber cuales de ellas serán satisfechas por el software y cuales por algún otro producto del sistema.

Clasificación de los requerimientos

El clasificar requerimientos es una forma de organizarlos, hay requerimientos que por sus características no pueden ser tratados iguales. Por ejemplo, los requerimientos de entrenamiento de personal no son tratados de la misma manera que los requerimientos de una conexión a Internet.

La siguiente es una recomendación de como pueden ser clasificados los requerimientos aunque cada proyecto de software pueda usar sus propias clasificaciones.

  • Requerimientos del "entorno"

El entorno es todo lo que rodea al sistema. Aunque no podemos cambiar el entorno, existen cierto tipo de requerimientos que se clasifican en esta categoría por que:

El sistema usa el entorno y lo necesita como una fuente de los servicios necesarios para que funcione. Ejemplos del entorno podemos mencionar: sistemas operativos, sistema de archivos, bases de datos.

El sistema debe de ser robusto y tolerar los errores que puedan ocurrir en el entorno, tales como congestión en los dispositivos y errores de entrada de datos, por lo tanto el entorno se debe de considerar dentro de los requerimientos.

  • Requerimientos "ergonómicos"

El mas conocido de los requerimientos ergonómicos es la interface con el usuario o GUI (Graphic User Interface). En otras palabras, los requerimientos ergonómicos son la forma en que el ser humano interactua con el ser sistema.

  • Requerimientos de Interface

La interface es como interactua el sistema con el ser humano o con otros sistemas (el enfoque es prácticamente el opuesto a los requerimientos ergonómicos), La interface es la especificación formal de los datos que el sistema recibe o manda al exterior. Usualmente se especifica el protocolo, el tipo de información, el medio para comunicarse y el formato de los datos que se van a comunicar.

  • Requerimientos funcionales

Estos son los que describen lo que el sistema debe de hacer. Es importante que se describa el ¿Que? Y no el ¿Como?. Estos requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lógica y gran parte del código del sistema.

  • Requerimientos de desempeño

Estos requerimientos nos informan las características de desempeño que deben de tener el sistema. ¿Que tan rápido?, ¿Que tan seguido?, ¿Cuantos recursos?, ¿Cuantas transacciones? .

Este tipo de requerimientos es de especial importancia en los sistemas de tiempo real en donde el desempeño de un sistema es tan crítico como su funcionamiento.

  • Disponibilidad (en un determinado periodo de tiempo)

Este tipo de requerimientos se refiere a la durabilidad, degradación, potabilidad, flexibilidad, contabilidad y capacidad de actualización. Este tipo de requerimientos es también muy importante en sistemas de tiempo real puesto que estos sistemas manejan aplicaciones críticas que no deben de estar fuera de servicio por periodos prolongados de tiempo.

  • Entrenamiento

Este tipo de requerimientos se enfoca a las personas que van usar el sistema. ¿Que tipo de usuarios son?, ¿Que tipo de operadores?, ¿Que manuales se entregarán y en que idioma?

Este tipo de requerimientos, aunque muchas veces no termina en un pedazo de código dentro de el sistema, son muy importantes en el proceso de diseño ya que facilitan la introducción y aceptación de el sistema en donde será implementado.

  • Restricciones de diseño

Muchas veces las soluciones de un sistema de software son normadas por leyes o estándares, este tipo de normas caen como "restricciones de diseño".

  • Materiales

Aquí se especifica en que medio se entregara el sistema y como esta empaquetado. Es importante para definir los costos de industrialización del sistema.

 

 

 

Publicidad
Regresar al inicio
Compartir este post
Repost0
Para estar informado de los últimos artículos, suscríbase:
Comentar este post