martes, febrero 17, 2009

Unidad I

Ingeniería del software es una disciplina o área de la informática o ciencias de la computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelvan problemas de todo tipo.

Por estos días es cada vez mas frecuente la consideración de la ingeniería del software como una nueva área de la ingeniería y el ingeniero del software comienza a ser una profesión implantada en el mundo laboral internacional. La ingeniería del software trata con áreas muy diversas de la informática y de las ciencias de la computación.



Modelos de proceso del software:

Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un software
Algunas actividades genéricas en todos los procesos de software son:
  • Especificación
  • Diseño
  • Desarrollo
  • Validación
  • Evolución

Estas actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.

Modelos Genéricos:

Modelo Cascada, separar en distintas fases de especificación y desarrollo


Fases del modelo de cascada:

  • Análisis de requerimientos y definición
  • Diseño del sistema y del software
  • Implementación y prueba de unidades
  • Integración y prueba del sistema
  • Operación y mantenimiento


Aplicabilidad del modelo de cascada


Este modelo es sólo apropiado cuando los requerimientos se conocen bien y es improbable que
cambien radicalmente durante el desarrollo del sistema.

Este modelo es usado comúnmente en proyectos grandes de ingeniería de sistemas donde el sistema es desarrollado en varios sitios

Modelo de desarrollo evolutivo

  • El desarrollo evolutivo se basa en la idea de desarrollar una implementación inicial.
  • Exponerla a los comentarios del usuario y Refinarla a través de las diferentes versiones. hasta desarrollar un sistema adecuado.
  • Las actividades de especificación, desarrollo y validación se entrelazan en vez de separarse.
  • Existe una rápida retroalimentación entre éstas etapas.


Tipos de desarrollo evolutivo

Desarrollo exploratorio

  • El objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final
  • El desarrollo empieza con las partes del sistema que se comprenden mejor
  • El sistema evoluciona agregando nuevos atributos propuestos por el cliente

Prototipos desechables

  • El objetivo del proceso es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos del sistema.
  • El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo.

Aplicabilidad del modelo de desarrollo evolutivo

  • Para sistemas interactivos pequeños o medianos
  • Para partes de sistemas grandes difíciles de especificar (p.ej. la interfaz de usuario) es aconsejable usar desarrollo exploratorio
  • Para sistemas de corta vida

Modelo de ingeniería de software basada en componentes

  • Está basado en la reutilización sistemática
  • Hace uso de un conjunto de componentes de software reutilizables y de ambientes de trabajo para la integración de éstos
  • Estos componentes puede ser sistemas por sí mismos (COTS, Commercial-off-the-shelf systems) que se pueden utilizar para proporcionar una funcionalidad específica como dar formato al texto o efectuar cálculos numéricos