Requisitos Software


Anuncios


Los requisitos software son la descripci贸n de las caracter铆sticas y las funcionalidades del sistema 'target'. Los requisitos nos comunican las expectativas de los consumidores de productos software. Los requisitos pueden ser obvios o estar ocultos, conocidos o desconocidos, esperados o inesperados, des del punto de vista del cliente.

Ingenier铆a de requisitos

El proceso de recogida de informaci贸n, an谩lisis y documentaci贸n sobre los requisitos software des del cliente, se conoce como ingenier铆a de requisitos.

El objetivo de este tipo de Ingenier铆a es el de desarrollar y mantener un documento de especificaci贸n de requisitos del sistema de forma sofisticada y descriptiva.

Proceso de la Ingenier铆a de requisitos

Es un proceso que consta de cuatro pasos 鈥

  • Estudio de viabilidad
  • Recogida de requisitos
  • Requisitos del Software
  • Validaci贸n de los requisitos de Software

Veamos el proceso de manera breve -

Estudio de viabilidad

Cuando el cliente se acerca a la organizaci贸n para obtener el producto deseado desarrollado, expone una idea aproximada de las funciones que el sofware debe cumplir y qu茅 caracter铆sticas se esperan del software.

Refiri茅ndose a esta informaci贸n, los analistas elaboran un estudio detallado sobre la viabilidad del sistema deseado y de sus funcionalidades, para proceder a desarrollarlo.

Este estudio de viabilidad se centra en el objetivo de la organizaci贸n. El estudio analiza la materializaci贸n pr谩ctica del producto software respecto a su implementaci贸n, la contribuci贸n de proyecto a la organizaci贸n, los l铆mites de costes, y seg煤n los objetivos y valores de la organizaci贸n. Explora aspectos t茅cnicos del proyecto y del producto, como la utilidad, el mantenimiento, la productividad y la capacidad de integraci贸n.

El resultado o output de esta fase debe ser un informe del estudio de viabilidad, conteniendo comentarios adecuados y recomendaciones para la gesti贸n sobre si se debe tirar adelante o no el proyecto.

Recogida de requisitos

Si el informe de viabilidad es positivo en relaci贸n a tomar el proyecto, la siguiente fase empieza con la recolecci贸n de requisitos por parte del consumidor. Analistas e Ingenieros se comunican con el cliente y los consumidores para conocer sus ideas sobre qu茅 debe aportar el software y qu茅 caracter铆sticas quieren que incluya 茅ste.

Requisitos del Software

El SRS es un documento creado por los analistas de sistema despu茅s de recoger los requisitos.

El SRS define c贸mo va a interactuar el sofware que quiere crearse con el hardware, las interfaces externas, la velocidad operativa, el tiempo de respuesta del sistema, la portabilidad del software en las diversas plataformas, el mantenimiento, la velocidad de reponerse despu茅s de estropearse, su seguridad, calidad, limitaciones, etc.

Los requisitos recibidos por parte del cliente se escriben en lenguaje natural. Es responsabilidad del analista de sistemas documentar sobre los requisitos en lenguaje tecnol贸gico para que puedan ser 煤tiles y comprendidos por el equipo de desarrollo de software.

El SRS debe venir con las siguientes caracter铆sticas:

  • Los requisitos del usuario se deben expresar en lenguaje natural.
  • Los requisitos t茅cnicos se deben expresar en lenguaje estructurado, el cual se usar谩 dentro de la organizaci贸n.
  • La descripci贸n del dise帽o se debe escribir en pseudoc贸digo.
  • El formato de Forms y GUI impresiones de pantalla.
  • Anotaciones condicionales y matem谩ticas para DFDs etc.

Validaci贸n de los requisitos de Software

Despu茅s del desarrollo de los requisitos, los que se mencionen en este documeno ser谩n v谩lidados. El usuario puede que pida soluciones ilegales y poco pr谩cticas, y los expertos puede que interpreten los requisitos de forma incorrecta. Estos resultados se incrementan en coste si no se cortan de ra铆z. Los requisitos se pueden evaluar en contraste con las siguientes condiciones -

  • Si pueden ser implementados de manera pr谩ctica.
  • Si son v谩lidos a nivel de funcionalidad y dominio del software
  • Si hay alguna ambiguedad
  • Si se han completado
  • Si se pueden demostrar

Proceso de educci贸n de requisitos

El Proceso de educci贸n de requisitos se puede representar usando el siguiente diagrama:

Proceso de obtenci贸n Requisito
  • Recogida de requisitos - Los desarrolladores hablan con el cliente y los consumidores finales para conocer sus expectativas respecto al software.

  • Organizar requisitos - Los desarrolladores priorizan y organizan los requisitos en orden de importancia, urgencia, y conveniencia.

  • Negociaci贸n y debate - Si los requisitos son ambiguos o hay alg煤n conflicto en los requisitos de varios accionistas, hay una negociaci贸n y un debate con ellos. Los requisitos entonces, se priorizan y se acuerdan de manera razonable.

    Los requisitos vienen de varios accionistas. Para eliminar cualquier ambiguedad o conflicto, se debate para encontrar claredad y correci贸n. Los requisitos surrealistas se acuerdan de forma razonable.

  • Documentaci贸n - Los requisitos formales y no formales, funcionales y no funcionales, son documentados y se ponen disponibles para procesar en la siguiente fase.

T茅cnicas de educci贸n de requisitos

Las educci贸n de requisitos es un proceso para encontrar los requisitos para un sistema de software que se intenta desarrollar, usando la comunicaci贸 con el cliente, los consumidores finales, usuarios del sistema y otros que tienen alg煤n papel en el desarrollo del sistema de software.

Hay varios caminos para descubrir requisitos

Entrevistas

La entrevistas son medios de recogida de requisitos medianamente fuertes. La organizaci贸n puede conducir muchos tipos de entrevistas, tales como:

  • Entrevistas estructuradas (cerradas), donde cada informaci贸n que se recoge es decidida con antelaci贸n, siguen patrones y temas de debate de forma firme.

  • Las entrevistas no estructuradas (abiertas), donde la informaci贸n que se busca no se decide con antelaci贸n, es m谩s flexible y menos tendenciosa.

  • Entrevistas orales

  • Entrevistas por escrito

  • Entrevistas cara a cara entre 2 personas

  • Entrevistas de grupo que se llevan a cabo entre grupos de participantes. Ayudan a destapar cualquier requisito que falte, ya que mucha gente est谩 inclu铆da.

Encuestas

La organizaci贸n puede conducir encuestas o sondeos entre varios accionistas pidiendo sus expectativas y requisitos para el sistema que se va a desarrollar.

Cuestionarios

Un documento con preguntas objetivas definidas previamente con sus opciones respectivas. Se entrega a todos los accionistas para que las respondan, se recogen y se recopilan.

Una limitaci贸n de esta t茅cnica es que si una opci贸n por alg煤n asunto no se menciona en el cuestionario, el asunto puede quedar desatendido.

An谩lisis de tareas

El equipo de ingenieros y de desarrolladores puede analizar la operaci贸n por la cual se requiere el nuevo sistema. Si el cliente ya tiene alg煤n software para realizar ciertas operaciones, se estudia y los requisitos del sistema propuesto se recogen.

An谩lisis de dominio

Cada software pertenece a una categor铆s de dominio. Los expertos en dominio pueden ser de gran ayuda para analizar requisitos generales y espec铆ficos.

Lluvia de ideas

Un debate informal se lleva a cabo entre varios accionistas y todos los inputs o entradas se graban para el an谩lisis de requisitos posterior.

Modelo de prototipos

Se basa en construir interfaces de usuario sin a帽adir detalles de las funcionalidades para que el usuario interprete las caracter铆sticas del producto software que se quiere desarrollar. Ayuda aportando una mejor idea de los requisitos. Si el consumidor final no tiene el software instalado para que el desarrolador lo tome como referencia y el cliente no sabe cu谩ls son sus propios requisitos, el desarrollador crea un prototipo basado en los requisitos mencionados al inicio. El prototipo se muestra al cliente y el feedback que se obtiene se registra. El feedback del cliente sirve d input o entrada para la recogida de requisitos.

Observaci贸n

El equipo de expertos visita la organizaci贸n o el lugar de trabajo de los clientes. Observan el funcionamiento de los sistemas instalados ya existentes. Tambi茅n observan el flujo de trabajo y c贸mo se tratan los problemas de ejecuci贸n. El equipo traza las conclusiones que ayudan a formar los requisitos esperados para el software.

Carcater铆sticas de los requisitos del Software

La recogida de requisitos de sofware es la fundaci贸n de la totalidad del proyecto de desarrollo software. Por ello, debe de ser clara, correcta y bien definida.

Una completa especificaci贸n de requisitos Software debe ser:

  • Clara
  • Correcta
  • Consistente
  • Coherente
  • Comprensible
  • Modificable
  • Verificable
  • Priorizada
  • sin ambiguedades
  • Trazable
  • Origen cre铆ble

Requisitos de Software

Debemos intentar entender qu茅 tipo de requisitos pueden aparecer en la fase de educci贸n de requisitos y qu茅 tipo de requisitos se esperan del sistema de software.

En l铆neas generales los requisitos de software se deben caracterizar en dos categor铆as:

Requisitos funcionales

Requisitos que se relacionan a aspectos funcionales del software ir铆an en esta categor铆a.

Definen las funciones y la funcionalidad en y desde el sistema de software.

Ejemplos -

  • Buscar una opci贸n dada al usuario para buscar desde varias facturas.

  • El usuario debe ser capaz de enviar por correo electr贸nico cualquier informe a la Direcci贸n.

  • Los usuarios se pueden dividir en grupos y los grupos pueden tener derechos diferentes.

  • Debe cumplir reglas empresariales y funciones administrativas.

  • El Software se desarrolla manteniendo intacta la compatibilidad en descenso.

Requisitos no funcionales

Los requisitos, los cuales no est谩n relacionados con aspectos funcionales del software, est谩n en esta categor铆a. Son caracter铆sticas del software impl铆citas o esperadas, asumidas por los usuarios.

Los requisitos no funcionales incluyen -

  • Seguridad
  • Acceso
  • Almacenaje
  • Configuraci贸n
  • Actuaci贸n
  • Coste
  • Interoperabilidad
  • Flexibilidad
  • Recuperaci贸n de desatre
  • Accessibilidad

Los requisitos se categorizan de forma l贸gica como

  • Tienen que tener : El Software no puede ser operacional sin ellos.

  • Deben tener : Motivando la funcionalidad del software.

  • Pueden tener : El Software a煤n puede funcionar bien con estos requisitos.

  • Lista de deseo : Estos requisitos no contienen ning煤n objetivo de software.

Mientras se desarrolla el software, el 鈥榯iene que tener鈥 se debe implementar, el 鈥榙ebe tener鈥 es un asunto de debate y negociaci贸n, en cambio el 鈥榩uede tener鈥 y la 鈥榣ita de deseo鈥 se pueden mantener para futuras actualizaciones del software.

Requisitos de la interfaz de usuario

La UI es uan parte importante de cualquier software, hardware o sistema h铆brido. Un software es ampliamente aceptado si es -

  • F谩cil de manejar
  • r谩pido en responder
  • efectivo tratando errores operacionales
  • aportando interfaces de usuario simples y consistentes

La aceptaci贸n del usuario mayormente depende de c贸mo 茅ste pueda usar el software. La UI es el 煤nico camino para percibir el sistema por parte de los usuarios. Un sistema software de buena actuaci贸n tambi茅n debe estar equipado con interfaces de usuario atractivas, claras, consistentes y receptivas. En caso contrario las funcionalidades del sistema softwar no pueden usarse de una manera conveniente. A system is said be good if it provides means to use it efficiently. User interface requirements are briefly mentioned below -

  • Presentaci贸n de contenido
  • De f谩cil navegaci贸n
  • Interfaces simples
  • Receptivo
  • Elementos consistentes de UI
  • Mecanismo de retroalimientaci贸n
  • Configuraci贸n Default
  • Disposici贸n significante
  • Uso estrat茅gico del color y la textura.
  • Aportar informaci贸n de ayuda
  • Aproximaci贸n centrada en el usuario
  • Vista de la configuraci贸n basada en el grupo.

Analista de sistemas Software

El analista de sistemas es una persona de una organizaci贸n inform谩tica, que analiza los requisitos del sistema propuesto y asegura que los requisitos sean concebidos y documentados correctamente. El papel del analista empieza durante la fase del SDLC de an谩lisis del Software. El analista tiene la responsabilidad de asegurar que el software que se desarrolle cumpla los requisitos del cliente.

Los analista de sistemas tienen las siguientes responsabilidades:

  • Analizar y entender los requisitos del software deseado
  • Entender c贸mo ser谩 la contribuci贸n del proyecto en los objetivos de la organizaci贸n
  • Identificar el origen de los requisitos
  • Validaci贸n de requisitos
  • Desarrollo e implementaci贸n el plan de gesti贸n de requisitos
  • Documentaci贸n empresarial, t茅cnica, de proceso, y requisitos del producto.
  • Coordinaci贸n con los clientes para priorizar requisitos y eliminar ambiguedad
  • Terminar la aceptaci贸n de criterios con el cliente y otros accionistas

M茅tricas y medidas de Software

Las medidas de Software se pueden entender como un proceso para cuantificar y simbolizar varios atributos y aspectos del software.

Las m茅tricas de Software aportan medidads para varios aspectos del proceso y del producto software.

Las medidads de Software son requisitos fundamentales de la ingenier铆a de software. No solamente ayudan a controlar el desarrollo del proceso software sino que tambi茅n contribuyen a mantener la calidad del producto final excelente.

Seg煤n Tom DeMarco, un ingeniero de Software, 鈥淣o se puede controlar lo que no se puede medir.鈥 Con esta frase, deja muy clara la gran importancia de las medidas de software.

Veamos algunas m茅tricas de software:

  • M茅trica de tama帽o - Las LOC (L铆neas de c贸digo), se calculan mayoritariamente en miles de l铆neas de c贸digo de origen entregadas, llamado KLOC.

    La medida del punto de funci贸n, se focaliza en la funcionalidad aportada por el software. La medida del punto del funci贸n define el tama帽o de los aspectos funcionales del software.

  • M茅trica de complejidad - La complejidad ciclom谩tica de McCabe cuantifica el nivel m谩s alto en cuanto al n煤mero de caminos independientes en un programa, lo que se percibe como complejidad del programa o de sus m贸dulos. Se representa siguiendo los conceptos de teor铆a gr谩fica usando gr谩ficos de flujo de control.
  • M茅trica de calidad - Defectos, tipos y causas, consecuencias, intensidad en la severidad y sus implicaciones definen la calidad del producto.

    El n煤mero de defectos encontrados en el proceso de desarrollo y el n煤mero de defectos encontrados por el cliente despu茅s de la instalaci贸n o entrega al consumidor final, define la calidad del producto.

  • M茅trica de Proceso - En varias fases del SDLC, los m茅todos y herramientas usados, los est谩ndares y la actuaci贸n de desarrollo de la compa帽铆a, son m茅trica de procesos software.
  • M茅trica de recursos - El esfuerzo, el tiempo y varios recursos usados, representan la m茅trica para la medidad de recursos.


Advertisements