Adsence

Mostrando las entradas con la etiqueta Desarrollo de Requisitos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Desarrollo de Requisitos. Mostrar todas las entradas

martes, 19 de abril de 2016

Por que es dificil construir software de calidad


Dentro de la calidad de software existen dos procesos complementarios:

Verificacion.-

La verificacion se trata de asegurar que el software (codigo) esta correcto con todo lo que implica, pruebas de diferentes clases, automatizacion de pruebas etc.

Validacion

La validacion asegura que el producto es correcto, es decir todos los requerimientos funcionales y no funcionales debe ser cubiertos.

Entonces para comprobar la calidad del software no es suficiente que no haya bugs, sino que la aplicacion haga lo que se requeria es decir funcione como debia , sin embargo ahi radica principalmente el problema: como saber todo lo que aplicacion debe hacer? , es decir conocimiento claro del dominio de negocio., y mas aun Cuales son los requerimientos no funcionales? es decir los requerimientos como calidad, rendimiento, como saber el crecimiento de una aplicacion a futuro, son cuestiones basicamente imposibles de saber su totalidad a un tiempo determinado, para este caso lo que promulgan las metologias agiles por ejemplo como tomar una desicion lo mas tarde posible, el continuo refactoring para poder tener un control en el crecimiento y tener unos niveles de deuda tecnica aceptable es lo mas cercano a la realidad de la industria.

Por cierto no hay que dejar de lado que el software es desarrollado por personas esto quiere decir mientras mas altos skills tenga el equipo mejor calidad de codigo se puede generar sin embargo no somos perfectos y requerimos aprendizaje continuo.

El software tiene una complejidad creciente y mucha presión respecto al coste y los tiempos de entrega, factores que pueden complicar conseguir un nivel de calidad razonable. La ingeniería del software como disciplina introduce procesos, técnicas y herramientas que hacen más manejable los proyectos de desarrollo y mejoran la calidad del software final. Pero. como dice el chiste, “Dios y yo tenemos un acuerdo, él no hace software y yo no hago milagros“.

lunes, 1 de diciembre de 2014

Desarrollo de Requisitos basados en CMMI Dev (RD)

Una de las fases importantes dentro del desarrollo de software es el desarrollo de requisitos, que es la fase donde se dan los lineamientos para el proceso de desarrollo. Dentro de las metodologias agiles esta fase se cumple al manejar los requerimientos de cliente y generar los backlog asi que cual fuere la metodologia de desarrollo es la fase que nos sirve de entrada para las estimaciones de esfuerzo dentro de los proyectos.
El desarrollo de requisitos es un proceso que pertenece al area de proceoso de ingenieria dentro del modelo CMMI el cual nos ayuda a ir definiendo un conjunto de practicas con la finalidad de evitar errores en la definicion de los entregables.




 

El area de proceso define define 3 metas especificas:
  • Desarrollar los requisitos de cliente.
  • Desarrollar los requisitos de producto.
  • Analizar y validar los requisitos.

Analisis

Existen un conjunto de analisis que realizar para poder realizar el desarrollo de requisitos las cuales deben incluir al menos los siguientes parametros:
  • Analisis de necesidades para cada fase de ciclo de vida de producto, factores que reflejan las espectativas del cliente y del usuario final.
  • Desarrollo de un concepto operaciones (definir un ambiente de operacion).
  • Definicion de funcionalidad requerida y atributos de calidad.

 Requisitos Derivados

Como resultado de los analisis normalmente se producen requisitos derivados como por ejemplo:
  • Limitaciones tecnologicas.
  • Limitaciones de costo
  • Limitaciones de calendario
  • Riesgos
  • Consideraciones de negocio, normativas de ley.

 Desarrollo de Requisitos de Cliente

Los requisitos del cliente trata los requisitos funcionales del producto, es decir trata los requisitos en lenguaje entendible para el cliente, dentro de estos requisitos deben incluir las espectativas, restricciones del cliente.

Desarrollo de Requisitos de Producto

 Una vez que se tiene los requisitos de cliente, estos son "procesados" es decir son traducidos a lenguaje tecnico donde se especifican los requerimientos de interfaz (comunicaciones entre componentes), donde ya podemos empezar a modelar las soluciones a nivel tecnico.

Analizar y validar los requisitos

Es necesario realizar un validacion de los requerimientos para poder lanzar una definicion de funcionalidad, validar las restricciones, tratando de asegurar que el producto resultante sea lo que el usuario pidio.

A continuacion un grafico que nos ayuda a entender el desarrollo de requisitos:





 Espero les sirva este aporte no olvidemos que del exito de esta fase depende en gran manera el exito del proyecto, tanto a nivel de entregables como a nivel comercial pues todo esfuerzo extra requiere de mayor coste para la compañia o empresa en la que trabajamos.