martes, 5 de octubre de 2010

Metodologías de desarrollo del software


          La Metodología de desarrollo de software en ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.

Metodologías estructuradas

          En las metodologías estructuradas se realiza una aproximación a la resolución del problema descendente. Es decir, se pasa de una visión más general del problema con un nivel de abstracción alto (cercano a las personas), a un nivel de abstracción más bajo (cercano a la máquina).

Según se enfoque el desarrollo desde un punto de vista u otro tenemos:
  • Las metodologías orientadas a procesos.
  • Las orientadas a datos.
  •  También existen metodologías mixtas que toman en consideración tanto los procesos como los datos, añadiendo el factor tiempo según un modelo de eventos.

Metodologías orientadas a objetos: RUP

          Se trata de una metodología orientada a objetos ya que el sistema se organiza como una colección de objetos que interactúan entre sí y que contienen tanto estructuras de datos como un comportamiento.
          Esto se opone a la programación convencional, en la cual las estructuras de datos y el comportamiento solamente están relacionadas de forma débil, ya que estos se enfocan principalmente a las funciones.

Metodologías para sistemas de tiempo real

          Un sistema informático que debe captar señales sin perder ninguna y que debe contestar a las mismas antes de un determinado momento es un sistema de tiempo real. En estos sistemas la velocidad de respuesta es fundamental porque el usuario no pueden esperar.
          No debemos confundir los sistemas de tiempo real con los sistemas interactivos, en los que hay que responder lo más rápido posible al usuario pero no hay riesgo de perder señales o datos a la entrada, ni un límite de tiempo en la respuesta.

Metodologías de desarrollo ágil

          Las metodologías ágiles se basan en el trabajo en equipo y pretenden:
  • Centrarse en el desarrollo y en satisfacer al cliente, es decir, producir un sistema con las funcionalidades correctas. Esto significa que el sistema final tiene que incluir sólo el mínimo número de características necesarias para satisfacer por completo al cliente real.
  • Mejorar las predicciones y previsiones para cumplir plazos y ajustarse a los recursos.
  • Eliminar riesgos tomando en consideración la incertidumbre.
  • Disminuir costes. Por ejemplo, deben eliminarse actividades relacionadas con algunos productos intermedios, como documentos formales de especificaciones que no tienen una relación directa clara con el resultado final del producto.

Metodologías de las administraciones europeas

          Con la intención de estandarizar los diferentes proyectos informáticos que utilizaban y desarrollaban diferentes administraciones del mismo país, los organismos públicos comenzaron a desarrollar a finales de los años 70 y principios de los 80, metodologías de desarrollo software basadas en el método estructurado. Sin embargo, como las distintas administraciones necesitaban dar respuesta a proyectos de desarrollo muy diferentes, modificaron y ampliaron las metodologías existentes para adaptarlas a sus necesidades.

          Ejemplos de este tipo de metodologías son:
  •  Merise: Nace en 1977 dentro del centro CTI (Centre Technique d'Information) perteneciente al Ministerio de Industria Francés. Su objetivo era desarrollar una metodología de desarrollo del software para cubrir las necesidades tanto de la empresa pública como de las empresas en general.
  • SSADM: En 1980 el gobierno británico plantea la necesidad de crear una metodología para unificar y estandarizar los proyectos de software de las distintas administraciones. Así se desarrolló, entre el Central Computing and Telecommunications Agency (CCTA) y Learmonth and Burchett Management Systems (LBMS), la metodología SSADM (Structures Systems Analysis and Design Method). Está centrado en los usuarios, atendiendo a sus requisitos y su participación. Define de forma clara el proceso de producción, dando especificaciones acerca de qué hacer, cuándo y cómo. Para ello utiliza tres puntos de vista para orientarse a datos, eventos y procesos. Posee una gran flexibilidad en herramientas y técnicas de implementación, proporcionando un conjunto de procedimientos para llevar a cabo las distintas tareas del análisis y diseño.
  • Métrica: Al igual que ocurrió en otras administraciones públicas europeas, en España surgió la necesidad de crear una metodología de desarrollo de software común para todas las administraciones y organismos públicos. La propuesta del Ministerio de Administraciones Públicas fue el desarrollo de la metodología Métrica para que todas las organizaciones siguiesen el mismo modelo y unificasen los criterios para aportar homogeneidad y eficiencia a las aplicaciones informáticas. El ámbito original de aplicación fue la administración general del estado español, pero puede ser utilizada por otras administraciones o empresas privadas. La primera versión es de 1989, la segunda versión apareció en 1993 y en el año 2001 apareció la tercera versión (Métrica V3).

Metodologías de desarrollo del software

lunes, 4 de octubre de 2010

Modelos de ciclo de vida del SW.

 
El modelo en cascada es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.

El modelo incremental está basado en varios ciclos de tipo Cascada realimentados siguiendo una filosofía iterativa.


MODELO EN ESPIRAL


EL modelo en Espiral consiste en una serie de ciclos que se repiten. Cada uno tiene las mismas fases y cuando termina da un producto ampliado con respecto al ciclo anterior. En este sentido es parecido al modelo incremental, la diferencia importante es que tiene en cuenta el concepto de riesgo. Un riesgo puede ser muchas cosas: requisitos no comprendidos, mal diseño, errores en la implementación, etc

Fases del ciclo de vida del SW.

             Podemos definir el Ciclo de Vida del Software como el conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea inicial hasta que el software es retirado o reemplazado por otro más adecuado.

             El ciclo de vida clásico consta de las siguientes fases:
  • Planificación: Planificación preliminar, estudio de viabilidad, análisis de riesgos y planificación temporal.
  • Análisis: Análisis y especificación de requisitos. Modelado de software y modelado conceptual de bases de datos.
  • Elección del SGBD si se trata de una base de datos.
  • Diseño: Diseño lógico y físico de bases de datos y diseño de programas de aplicaciones.
  • Implementación y ajuste del sistema: Se crea y carga la base de datos y se implementan las aplicaciones.
  • Validación y pruebas: De información, rendimiento y comportamiento.
  • Despliegue: Operación, mantenimiento y actualizaciones del sistema.

Fases de desarrollo del SW

El trabajo de Desarrollo del SW se compone de las siguientes fases:


  • Análisis de requisitos: Extraer los requisitos de un producto de software es la primera etapa para crearlo. La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aun no está formalizada, ya se habla de la Ingeniería de Requisitos.
  • Diseño y arquitectura: Se refiere a determinar como funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc.   
  • Programación: Es la fase del desarrollo encargada de reducir el diseño del producto a código, la complejidad y duración de este proceso depende del lenguaje de programación utilizado. 

  • Pruebas: Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación.  

  • Documentación: Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc.; todo con el propósito de eventuales correcciones, funcionalidad, mantenimiento futuro y ampliaciones al sistema.  

  • Mantenimiento: Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas.


jueves, 30 de septiembre de 2010

Fundamentos de la Ingenieria del SW.

La ingeniería del SW se fundamenta en 3 pasos o técnicas que incluyen:

 Métodos: definen cómo construir el software desde el punto de vista técnico y se dividen en:

  • Planificación y estimación de proyectos: Fase inicial que permite establecer plazos a  cumplir y recursos a utilizar durante el proyecto.
  • Análisis de requisitos: Que va a concretar las necesidades del usuarioy cuales se puden llevar a cabo y de que modo.
  • Diseño: Va a permitir especificar cómo solucionar las necesidades del cliente y cómo llevar a cabo dichas soluciones.
  • Codificación: Consiste en la elaboracióndel programa de ordenador que sintetiza dichas soluciones mediante la programación del código.
  • Pruebas: Fase durante la que se realizan las pruebas que permitan asegurar que el software funciona adecuadamente.
  • Mantenimiento: Una vez que la aplicación informática está funcionando en un sistema real es necesario hacer un seguimiento periódico para concretar ajustes y solucionar cualquier problema que pudiera surgir.
Herramientas: Proporcionan un soporte automático o semi-automático para los métodos. Ayudan a automatizar muchas de las tareas anteriores, y pueden ser:

  • Herramientas CASE: Computer Aided Software Engineering. Permiten realizar dentro del ordenador las tareas de análsis y diseño.
  • Herramientas CAD: Computer Aided Designer. Básicamente se centran en tareas de diseño.
Procedimientos: Son el punto de unión entre métodos y herramientas y definen.
  •  La secuencia en la que se aplican los métodos.
  • Cómo usar las herramientas
  • Las entregas que se requieren
  • Controles de seguimiento y calidad.
  • Guías para facilitar la labor de gestores y desarrolladores.
  • etc...
Además se suelen emplear algunas técnicas de apoyo como abstracciones,para crear modelos virtuales, representaciones, evaluaciones, etc...

martes, 28 de septiembre de 2010

Actividad de investigación 2

- Tipos de Sistemas de Información -


Sistema de procesamiento de transacciones (TPS).- Gestiona la información referente a las transacciones producidas en una empresa u organización.

Sistemas de información gerencial (MIS).- Orientados a solucionar problemas empresariales en general.

Sistemas de soporte a decisiones (DSS).- Herramienta para realizar el análisis de las diferentes variables de negocio con la finalidad de apoyar el proceso de toma de decisiones.

Sistemas de información ejecutiva (EIS).- Herramienta orientada a usuarios de nivel gerencial, que permite monitorizar el estado de las variables de un área o unidad de la empresa a partir de información interna y externa a la misma.

Sistema Planificación de Recursos (ERP).- Integran la información y los procesos de una organización en un solo sistema.

Sistema experto (SE).- Emulan el comportamiento de un experto en un dominio concreto.