domingo, 25 de septiembre de 2011

INGENIERÍA DE REQUISITOS

Es el proceso de desarrollo de un sistema, sea o no para la web, el equipo de desarrollo se enfrenta al problema de la identificación de requisitos. La definición de las necesidades del sistema es un proceso muy complejo, pues en el hay que identificar los requisitos que el sistema debe cumplir para satisfacer las necesidades de los usuarios finales y de los clientes.
Para llevar acabo este proceso nos vamos a las técnicas de recolección de hechos que se refiere a una gran variedad de técnicas y herramientas que pueden ser utilizadas por analistas para desarrollo de sistemas en el que encontramos la entrevista.


LA ENTREVISTA
Las entrevistas se utilizan para obtener información de forma verbal, atraves de preguntas que propone el analista. Dentro de una organización, la entrevista es la técnica mas significativa y productiva de que dispone el analista para obtener datos. En otras palabras, la entrevista es un intercambio de información que se efectúa cara a cara.

TIPO DE ENTREVISTAS
Los diferentes tipos de entrevistas son:
  • Entrevista estandarizada: Es una especie de cuestionario oral. El entrevistador lee las preguntas y anota las respuestas que obtiene.
  • Entrevista libre: Es como una charla de carácter informal, que permite la obtención de datos acerca del cliente.
  • Entrevista mixta: No se sirve de un cuestionario fijo, ni plantea unas preguntas prefijadas, sino que sigue una especie de guía de entrevista en las que se detallan, no las preguntas sino las áreas que han de ser exploradas.


IMPORTANCIA DE LOS REQUISITOS
Los requisitos son muy importantes para la realización de un proyecto de software porque como dijo Roger S.Pressman, " para que un esfuerzo de desarrollo de software tenga éxito, es esencial comprender los requisitos del software". Eso quiere decir que independiente de lo bien diseñado o codificado que este un programa, si no se analizo o especifico como debe ser, decepcionara al cliente y desprestigiara al que lo desarrollo. 
En esta imagen podemos observar de el porque de la importancia de los requisitos a la hora de hacer un software.

Otros puntos serian:
  • Mostrar que resultados quieren los participantes.
  • Dar a los participantes la oportunidad de decir que quieren.
  • Representar diferentes puntos de vistas.
  • Probar el diseño.
  • Medir el progreso.
  • Aceptar productos contra criterios.


TIPOS DE REQUISITOS
  • Funcional: Característica requerida del sistema que expresa una capacidad de acción del mismo, generalmente expresada en una declaración verbal.
  • No funcional: Característica requerida del sistema, del proceso de desarrollo, del servicio prestado o de cualquier otro aspecto del desarrollo, que señala una restricción del mismo.
  • Empresariales u organizacionales: Son el marco contextual en el cual se implementara el sistema para conseguir in objetivo.


TÉCNICAS PRINCIPALES DE REQUISITOS
Para conseguir todos los requisitos que se necesitan para la realización de un proyecto debemos tener una serie de técnicas para identificar y asegurar las necesidades de los usuarios. Estas técnicas son:
  • Entrevistas: Es donde se le pregunta al personal que se va a ver mas afectado con el nuevo sistema, de allí surgen unos requisitos que a menudo se contradicen unos a otros o se formulan desde la ignorancia de los detalles del funcionamiento del sistema, sus potencialidades, interdependencia o limitaciones; por lo general se debe trabajar con los mismos para corregir sus fallos. Las entrevistas pueden ser personales o grupales.
  • Talleres: Es donde las personas implicadas participan en discusiones para descubrir requisitos, analizan sus detalles y las implicaciones cruzadas.
  • Forma de contrato: En lugar de una entrevista, se pueden llenar formularios indicando los requisitos. En sistemas complejos estos pueden tener centenares de paginas.
  • Objetivos medibles: Es donde se analizan una y otra vez desde un punto de vista del sistema hasta determinar los objetivos críticos del funcionamiento interno que luego darán forma a los comportamientos apreciables por el usuario. Luego, se establecen formas de medir el progreso en la construcción  para evaluaren cualquier momento que tan avanzado se encuentra el proyecto.
  • Prototipos: Es una pequeña muestra, de funcionalidad limitada, de como seria el producto final una vez terminado. Ayudan a conocer la opinión de los usuarios y ayudan a rectificar algunos aspectos antes de llegar al producto terminado.


¿QUIENES DEBERÍAN ESTAR INVOLUCRADOS?
  • Clientes: Son los que compran el producto.
  • Analistas: Persona que hacen el análisis informatico.
  • Arquitectos: Se refiere a la estructura y a los detalles necesarios para que sea funcional.
  • Usuarios: Conjunto de permisos y de recursos o dispositivos a los cuales se tiene acceso. Es decir, Un usuario puede ser tanto una persona como una maquina, un programa, etc.
  • Desarrolladores: Es la persona encargada de programar una o mas facetas del proceso de desarrollo de software.
  • Directores de proyectos: Son los últimos responsables de que el software se ejecute de acuerdo a los plazos, costes y estándares de calidad establecidos.


CARACTERISATICAS DE LOS REQUISITOS
Algunas de estas características son:
  • Necesario: Lo que se pida en el requisito debe ser necesario para el producto.
  • No ambiguo: El texto debe ser claro. preciso y tener una unica interpretación posible.
  • Conciso: Debe redactarse en un lenguaje comprensible.
  • Consistente: Ningún requisito debe entrar en conflicto con otro requisito diferente, ni con parte de otro.
  • Completo: Los requisitos deben contener en si mismo toda la información necesaria.
  • Alcanzable: Un requisito debe ser un objetivo realista, posible de ser alcanzado con dinero, el tiempo y  los recursos disponibles.
  • Verificable: Se debe poder verificar con absoluta certeza, si el requisito fue satisfecho o no. 


SOFTWARE MAS SERVICIOS
Esta idea lo que hace es ofrecer una experiencia superior gracias a los programas que ya vienen instalados localmente, con esto aprovechamos las ventajas de la maquina y también las ventajas de los servicios de Internet como almacenamiento remoto, ya que nos da la posibilidad de compartir los contenidos y la disponibilidad en cualquier equipo que tenga conexión a la Internet. La clave de una buena ejecución de software mas servicios esta en la buena integración entre la aplicación local y el servicio en la red.


CARACTERÍSTICAS
Las características incluyen:
  • Acceso y administración atraves de una red.
  • Permite al cliente el acceso remoto a las aplicaciones mediante la web.
  • Actualización centralizadas, lo cual elimina la necesidad de descargar partes por parches de los usuarios finales.
Este fue un evento de microsoft en el cual se hablo de la implementacion de software mas servicio.







jueves, 15 de septiembre de 2011

PROCESO DEL SOFTWARE

El proceso del software es un marco de trabajo para las tareas que se requieren en la construcción de un software de alta calidad. El proceso va de la mano con el proyecto del software en el que se dan las fases de la administración que son:


  • Planeacion
  • Organización 
  • Dirección
  • Control
El proceso cuenta con un patrón en el cual se ofrece una plantilla, se describe el problema, se define una posible solución, formaliza un vocabulario común, etc.
El proceso cuanta ademas de una tecnología estratificada en el que se divide en varias partes:
  • Prefactibilidad del proyecto: Es ese resumen ejecutivo o propuesta inicial.
  • Factibilidad del proyecto: Se refiere a los recursos que necesito para poder llevar a cabo nuestro proyecto, de aqui se desprende 4 areas que son:
  1. Factibilidad operacional: este se refiere al que si nuestro sistema trabajara o no si este llega a desarrollarse.
  2. Factibilidad técnica:Estudia si el trabajo para el proyecto, puede desarrollarse con el software y el personal existente, y si en caso de necesitar nueva tecnología, cuales son las posibilidades de desarrollarlas.
  3. Factibilidad económica  Investiga si los costos se justifican con los beneficios que se obtienen, y si se ha invertido demasiado, como para no crear el sistema si se cree necesario.
  4. Factibilidad legal: Se determina cualquier posibilidad de infracción, violación o responsabilidad legal en que se podría incurrir al desarrollar el sistema.
  • Análisis del proyecto: Se recoge toda la información necesaria y se determina como se va hacer el proyecto.
  • diseño del proyectoDespués del análisis se determina como se va a diseñar el proyecto.

DIAGRAMA DE GANTT

Es una herramienta que nos permite planificar las tareas necesarias para la realización de un proyecto. El diagrama de gantt es una herramienta para el director del proyecto ya que esto le permite realizar una representación grafica del progreso del proyecto.
     
      Ejemplo de un diagrama de gantt



LIBROS DE ANÁLISIS Y DISEÑO

Aquí les presento dos interesantes libros con los que vamos a expander nuestro conocimiento acerca de los sistemas de información y que es un analista de sistema y que funciones desempeña.


    James A. Senn
Pulsa aquí para descargar el libro


    KENDALL Y KENDALL
Pulsa aquí para descargar el libro



SISTEMAS DE INFORMACIÓN

Un sistema de información no es mas que un conjunto de elementos que interactuan entre si para poder sobrellevar la actividades de una organización. Por ejemplo:


  • Un equipo computo ya que es necesario para para que el sistema de información opere.
  • Las personas de una organización  ya que ellos son los que van a utilizar ese sistema.
los sistema de informacion realizan 3 actividades basicas que son:
  • La alimentación o insumo: captura los datos dentro de la organización o del entorno que la rodea.
  • El procesamiento: transforma esos datos en algo que tenga mas sentido.
  • El producto o salida: transfiere la información a la persona o lugar donde deba ser aprovechada.
Retos de los sistemas de información 
    Los sistemas de información siempre busca la mejora de una empresa y ademas que esta no caiga en la quiebra por eso tienen unos retos que son los que ayudan al crecimiento de una organización.
    Los principales retos de los sistemas de información son:

    • El reto estratégico de los negocios: Es donde todo debe de estar en constante mejora, deben rediseñar sus productos y su organización para no dejar de ser productiva y no perder mercado.
    • El reto de la globalización: Es aquel reto donde las empresas deben expander sus productos hacia diferentes partes del mundo para que cuenten con mayor cantidad de consumidores.
    • El reto de la arquitectura de la información: La organización como tal debe tener un objetivo común una mentalidad que todos y cada uno de los empleados de la misma se identifique.
    • El reto de la inversión en los sistemas de información: En este reto es donde nos preguntamos  ¿la inversión que hagamos en nuestro sistema nos va a servir para generar mas ganancias?.  
    • El reto de la responsabilidad y el control: Este es el reto en que las personas que trabajan con el sistema de información deben ser responsables y cuidar sus herramientas de trabajo ya que si no hace estaría perjudicando a la empresa y a la persona misma.
    Clases principales de sistemas de información
    • Sistema de procesamiento de operaciones(SPO): Son sistemas computarizados que realizan y registran las operaciones diarias de rutina necesarias para la operación de una empresa. El SPO son los principales generadores de información para los demás sistemas.
    • Sistema de trabajo de conocimiento(STE): Son aquella personas con títulos universitarios que diseñan productos y crean nueva información y conocimiento para la institución.
    • Sistemas de automatización en la oficina(SAO): Son sistemas computarizados que ayudan a los trabajadores de la información para procesar, utilizar y distribuir información. 
    • Sistemas de información para la administración(SIA): Reúne información de los SPO y la presenta a los administradores como resumen rutinario y de excepción.
    • Sistemas para el soporte a decisiones(SSD): Combinan información y modelos de análisis para dar apoyo a la toma semiestructurada y estructurada de decisiones.
    • Sistemas de soporte gerencial(SSG): Están diseñados para dirigir la toma de decisiones estratégica mediante gráficas y comunicaciones avanzadas, también dan información a los administradores cuando este se requiere de una manera altamente interactiva.





    INGENIERÍA DE SOFTWARE

    La ingeniería de software no es mas que la construcion y el desarrollo de un proyecto al que le aplicamos unos métodos y técnicas  para la solución de problemas, todo esto atraves de la informática que nos facilita las herramientas y los procedimientos con el cual se apoya dicha ingeniería.
    Los objetivos mas importantes de la ingeniería del software son:


    • la mejora de la calidad de los productos de software.
    • El aumento de la productividad y el trabajo de los ingenieros.
    • Suministrar a los desarrolladores las bases para la construcion de un software de alta calidad de una manera muy eficiente.
    • Tener disciplina para garantizar la producción y el mantenimiento del producto.


    CALIDAD DEL SOFTWARE


    Podríamos definirlo como la evolución del software que esta basado en estándares en el cual tengan un rendimiento y una funcionalidad optima para satisfacer los requerimientos del cliente.
    Las principales caracteristicas que hacen un software de alta calidad son:
    • Mantenibilidad: Es donde el software debe ser diseñado de una manera que pueda ser ajustable a cambios en un futuro por los requerimientos que pueda hacer el cliente.
    • Confiabilidad: Es aquella característica en donde hay que estar seguros,confiados de lo que se esta haciendo.
    • Eficiencia: Tiene que ver con el uso eficiente de los recursos que necesita un sistema para su funcionamiento.
    • Usabilidad: El software debe ser utilizado sin ningún problema por los usuarios.
    como pudimos darnos cuenta estas caracteristicas varían mucho ya que unas tienen que ver con los diseñadores, otras con el usuario y otras con el líder del proyecto.


    CICLO DE VIDA DEL SOFTWARE


    El ciclo de vida no es mas que el desarrollo del software desde que se inicia hasta que se termina. El propósito de esto es definir a las distintas fases que se requiere para garantizar que el software cumpla con los requisitos para la aplicación y verificación de los procedimientos de desarrollo. El ciclo de vida permite que se detecten los posibles errores lo antes posibles y por lo tanto permite a los desarrolladores concentrarse mas en la calidad del software.
    Las diferentes fases de un ciclo de vida son:


    • Análisis: Construye un modelo de los requisitos.
    • Diseño: A partir de un análisis se deducen las estructuras de datos, la estructura en la que descompone el sistema y la interfaz de usuario.
    • Codificación: Es la implementacion de un lenguaje de programación en donde se crean las funciones dadas durante el diseño. 
    • Pruebas: Se comprueban que se cumplan criterios de correcion y calidad.
    • Mantenimiento: después que se entrega el software este se asegura de que el sistema siga funcionando y adaptándose a nuevos requisitos.
    Modelos de ciclo de vida


    Se utilizan para facilitar la metodología entre el usuario y los creadores del software, esto hace que se valide cada etapa antes de continuar con la siguiente etapa.


    Ciclo de vida en cascada
    Este ciclo es donde terminas una etapa y sigues con otra, sin embargo, es poco visto que un proyecto es así de lineal ya que no tendría que haber cambios en los requerimientos.




















    Ciclo de vida espiral


    En este ciclo de vida nos permite recorrer las fases una y otra vez, haciendo ajustes segun se requiera. una de las ventajas de este ciclo es que se permite crear el proyecto de acuerdo a las especificaciones del cliente, la desventaja es que no hay claridad en el tiempo que  se requiere.

    Para obtener un mayo conocimiento acerca de la ingeniería de software aquí les dejo este libro en donde explican todo acerca del producto y su proceso para realizar un software de alta calidad.

       ROGER S. PRESSMAN