jueves, 23 de mayo de 2013

Análisis de requisitos


Análisis de requisitos


La ingeniería de requisitos del software es un proceso de descubrimiento, refinamiento, modelado y especificación. Se refinan en detalle los requisitos del sistema y el papel asignado al software.

El análisis y la especificación de requisitos pueden parecer una tarea relativamente sencilla, pero las apariencias engañan. El contenido de comunicación es muy denso. Abundan las ocasiones para malas interpretaciones o falta de información. 
Es muy probable que haya ambigüedad. El dilema al que se enfrenta el ingeniero de software puede entenderse muy bien repitiendo la famosa frase de un cliente anónimo: “Sé que cree que entendió lo que piensa que dije, pero no estoy seguro de que se dé cuenta de que lo que escuchó no es lo que yo quise decir”.

El análisis de requisitos es una tarea de ingeniería del software que cubre el hueco entre la definición del software a nivel sistema y el diseño de software. El análisis de requerimientos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software.

División del análisis.
  1. Reconocimiento del problema
  2. Evaluación y síntesis
  3. Modelado
  4. Especificación
  5. Revisión
    Funciones y habilidades del analista
       
   La función principal de un analista del software (o ingeniero de requisitos es llevar a cabo las actividades necesarias para cumplir con las cinco áreas de esfuerzo descritas en la sección anterior. Para lo cual hace uso de las siguientes técnicas :
    -Entrevistas
    -Talleres
    -Observación
    -Encuestas
    -Revisión documental
  -Uso de especificaciones formales para requerimientos (formatos estándar de documentos, UML, etc.)
    
    Tipos de requisitos
     
  Requisitos funcionales: Describen las interacciones entre el sistema y su ambiente, en forma independiente a su implementación. El ambiente incluye al usuario y cualquier otro sistema externo con el cual interactúe el sistema.
Requisitos no funcionales: Describen atributos sólo del sistema o del ambiente del sistema que no están relacionados directamente con los requisitos funcionales. Los requisitos no funcionales incluyen restricciones cuantitativas, como el tiempo de respuesta o precisión, tipo de plataforma (lenguajes de programación y/o sistemas operativos, etc.)












Técnicas de recolección de la información


Técnicas de recolección de la información


Existen 3 métodos interactivos que se pueden utilizar para la obtención de los requerimientos de información de los miembros de la organización. Dichos métodos son las entrevistas, el diseño conjunto de aplicaciones y la realización de encuestas mediante cuestionarios. La base de los métodos está en preguntas formuladas cuidadosamente.Cada uno de los métodos para la recuperación de información tiene su propio proceso para interactuar con los usuarios. 
Si se siguen estos enfoques ayudarán a garantizar el diseño y la implementación apropiados de entrevistas y cuestionarios.



ENTREVISTAS

Una entrevista es una conversación dirigida con un propósito específico que utiliza un formato de preguntas y respuestas. En la entrevista necesitamos obtener las opciones de los entrevistados y su parecer acerca del estado actual del sistema, metas organizacionales y personales y procedimientos informales.Además se debe tratar de captar los sentimientos de los entrevistados, y con ello,poder entender la cultura de la organización de una manera más compleja. Se debe de tratar de averiguar lo más que se pueda acerca de las metas de la organización por medio de las entrevistas; y dentro de ella, nosotros debemos de establecer un ambiente de confianza y de entendimiento rápidamente, pero al mismo tiempo, llevar el control de la entrevista.

Pasos para preparar una entrevista:

  • Leer los antecedentes.
  • Establecer los objetivos de la entrevista
  • Decidir a quien entrevistar
  • Preparar al entrevistado
  • Decidir el tipo de preguntas y el estructurado de las mismas.
CUESTIONARIOS

El uso de los cuestionarios es una técnica de recopilación de información que permite a los analistas de sistemas estudiar las actitudes, creencias, comportamiento y características de personas importantes dentro de la organización que podrían resultar afectadas por los sistemas actuales y los propuestos.

Al usar los cuestionarios, el analista podría estar buscando cuantificar lo que se haya descubierto con la entrevista. Por otra parte los cuestionarios se pueden usar para encuestar a una muestra considerable de usuarios de sistemas con el fin de detectar problemas o poner de manifiesto cuestiones importantes. La plantación de los cuestionarios implica una considerable cantidad de tiempo de planeación.


Análisis Personal

Determinando cada uno de los temas visto en este capitulo, damos cuenta que existe una vital importancia en cuanto al desarrollo de un software y su posterior evaluación en el mundo global de su resultado final, ya que debemos abarcar cada uno de estos temas, y hacer uso de manera correcta ya que para cada uno de los desarrollos y dependiendo de la factibilidad de nuestro proyecto entrará en uso ya sea la ENTREVISTA, la OBSERVACIÓN  o cualquiera de los diferentes métodos que tenemos por mencionar los principales.

Sabiendo también, relacionar con cada técnica o método las herramientas que usaremos en cada uno de los casos, ya que dentro de este contexto no debemos confundir un método o una técnica con una herramienta. Por ejemplo:

Si queremos ir a almorzar, y nos sirven un plato de pasta usaremos nuestra herramienta que seria un tenedor, y una técnica que seria la de digerir el alimento.


Paginas consultadas





Administración de un proyecto de Ingeniería del Software


Administración de un proyecto de Ingeniería del Software



Otra cuestión indeseable que surge al hablar de Ingeniería de Software, es que muchos lo asocian a administración de proyectos de desarrollo de software. Lamentablemente, esto es inevitable, ya que el concepto de Ingeniería de Software se acuñó hace 40 años, y este fue un aspecto en el que se puso mucho énfasis.


Debemos tomar en cuenta también que al hablar de ADMINISTRACIÓN  estamos caminando hacia un tema de gestión, guiamiento a la realización excelente de un proyecto, es decir que, dentro de estos campos debemos tener claro términos como: 

Planificación: Predeterminación de un curso de acción para alcanzar los objetivos organizacionales. 

Organización: Arreglo de las relaciones entre las unidades de trabajo para el cumplimiento de objetivos y el otorgamiento de responsabilidad y autoridad para obtener esos objetivos. 

Staffing: Selección y entrenamiento de personas para puestos en la organización. 

Dirección: Creación de una atmósfera que apoye y motive a la gente para alcanzar los resultados finales deseados. 


Establecimiento, medición y evaluación del desempeño de las actividades a través de los objetivos planeados.

Para tenerlo esquematizado podemos graficar lo siguiente:




Estar al frente de un proyecto de Ingeniería, implica:

  • Identificar requisitos.
  • Abordar las diversas necesidades, inquietudes y expectativas de los interesados según se planifica y efectúa el proyecto.
  • Equilibrar las restricciones contrapuestas del proyecto que se relacionan, entre otros aspectos, con:
    • Alcance
    • Calidad
    • Crono-grama
    • Presupuesto
    • Recursos
    • Riesgo

Análisis Personal

Para concluir y definir de alguna manera este tema podemos mencionar que el estar frente a de un proyecto de Ingeniería de Software, recataremos que hay que tener en cuenta cada uno de los campos establecidos implica una responsabilidad determinada que en su resultado global, establece una satisfacción como proyecto para el grupo.

Teniendo en cuenta que la administración se la debe considerar o realizar en secuencia de etapas ya que son procesos que deben realizarlos en equipos previamente organizados. 

Para continuar hablando sobre la manera de sobre llevar un Tema importante dentro de la administración de un proyecto de software, debemos incluirnos en un tema que formara parte de este mundo global, el cual es LAS MÉTRICAS.


MÉTRICAS

Cuando se planifica un proyecto se tiene que obtener estimaciones del costo y esfuerzo humano requerido por medio de las mediciones de software que se utilizan para recolectar los datos cualitativos acerca del software y sus procesos para aumentar su calidad.

Las métricas nos ayudan a entender tanto el proceso técnico que se utiliza para desarrollar un producto, como el propio producto. El proceso para intentar mejorarlo y el producto para intentar aumentar su calidad.

Son medidas cuantitativas que permiten a los ingenieros de software obtener una visión de la eficacia del proceso de software y los proyectos que llevan a cabo utilizando el proceso como marco de trabajo. 

Los involucrados en analizar, evaluar y recopilar estas métricas son los gestores de software.

Se comienza definiendo un conjunto limitado de medidas del proceso y del proyecto que puedan recopilarse con facilidad, se normaliza empleando métricas orientadas al tamaño o la función. 

MÉTRICAS DEL SOFTWARE

Son las que están relacionadas con el desarrollo del software como funcionalidad, complejidad, eficiencia.

  • MÉTRICAS TÉCNICAS: Se centran en las características de software pro ejemplo: la complejidad lógica, el grado de modularidad. Mide la estructura del sistema, el cómo esta hecho.
  • MÉTRICAS DE CALIDAD: proporcionan una indicación de cómo se ajusta el software a los requisitos implícitos y explícitos del cliente. Es decir cómo voy a medir para que mi sistema se adapte a los requisitos que me pide el cliente.
  • MÉTRICAS DE PRODUCTIVIDAD. Se centran en el rendimiento del proceso de la ingeniería del software. Es decir que tan productivo va a ser el software que voy a diseñar.
  • MÉTRICAS ORIENTADAS A LA PERSONA. Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi personal que va hará el sistema.
  • MÉTRICAS ORIENTADAS AL TAMAÑO. Es para saber en que tiempo voy a terminar el software y cuantas personas voy a necesitar.
  • MÉTRICAS ORIENTADAS A LA FUNCIÓN. Son medidas indirectas del software y del proceso por el cual se desarrolla. En lugar de calcularlas las LDC, las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa.



Tomando en cuenta cada uno de los tipos de métricas, y la medición de cada uno de los procesos dentro de Proyecto, y saber que las métricas de software proveen mediciones para ver el progreso y la retroalimentación necesaria para el ajuste de planes. 

Desde el inicio, las métricas  de software han sido consideradas como parte de la ingeniería de software. Desde luego nunca se tendría "ingeniería" sin mediciones como parte importante de los métodos. 

Paginas Consultadas