domingo, 2 de mayo de 2010

Modelos de Desarrollo de Software

—Proceso Unificado de Rational (RUP)
—El Proceso Unificado de Racional (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

El RUP está basado en 6 principios clave que
son:
Adaptar el proceso
—Equilibrar prioridades
—Enfocarse en la calidad

Proceso Unificado.

El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. El refinamiento más conocido y documentado del Proceso Unificado es el Proceso Unificado de Rational o simplemente RUP.

El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos específicos. De la misma forma, el Proceso Unificado de Rational, también es un marco de trabajo extensible, por lo que muchas veces resulta imposible decir si un refinamiento particular del proceso ha sido derivado del Proceso Unificado o del RUP. Por dicho motivo, los dos nombres suelen utilizarse para referirse a un mismo concepto.

Modelos de Desarrollo de Software

Modelo de desarrollo concurrente.
—El modelo de proceso concurrente define una serie de acontecimientos que dispararan transiciones de estado a estado para cada una de las actividades de la ingeniería del software. Por ejemplo, durante las primeras etapas del diseño, no se contempla una inconsistencia del modelo de análisis. Esto genera la corrección del modelo de análisis de sucesos, que disparara la actividad de análisis del estado hecho al estado cambios en espera.
El modelo de desarrollo concurrente se utiliza a menudo como el paradigma de desarrollo de aplicaciones cliente/servidor. Un sistema cliente/servidor se compone de un conjunto de componente funcionales. Cuando se aplica a cliente/servidor, el modelo de proceso concurrente define actividades en dos dimensiones: una división de sistemas y una división de componentes. Los aspectos del nivel de sistemas se afrontan mediante dos actividades: diseño y realización.
En realidad, el modelo de desarrollo concurrente es aplicable a todo tipo de desarrollo de software y proporciona una imagen exacta del estado actual de un proyecto. En vez de confinar actividades de ingeniería de software a una secuencia de sucesos, define una red de actividades, todas las actividades de la red existen simultáneamente con otras. Los sucesos generados dentro de una actividad dada o algún otro lado de la red de actividad inicia las transiciones entre los estados de una actividad.

Modelos de Desarrollo de Software

continuamos con cada uno de los modelos.



Modelo en Espiral:
El desarrollo en espiral es un modelo utilizado generalmente en la Ingeniería de software. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades. Las actividades no están fijadas sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.

—En cada vuelta o iteración hay que tener en cuenta
—Los Objetivos: Que necesidad debe cubrir el producto.
—Alternativas: Las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser:

Características: experiencia del personal, requisitos a cumplir, etc.

Formas de gestión del sistema.

Riesgo asumido con cada alternativa.
—Desarrollar y Verificar: Programar y probar el software.



Desarrollo por etapas 

El modelo de desarrollo de software por etapas es similar al Modelo de prototipos ya que se muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.

Pueden distinguirse las siguientes fases:
—Especificación conceptual
—Análisis de requerimientos
—Diseño inicial
—Diseño detallado, codificación, depuración y liberación


Estas diferentes fases se van repitiendo en cada etapa del diseño.

Desarrollo iterativo y creciente (o incremental) 
—Es una repetición de varios ciclos de vida en cascada y al final de cada ciclo presenta una versión parcial del software.
—Este modelo fue creado en respuesta a las debilidades del modelo tradicional de cascadaç

Desarrollo rápido de aplicaciones (RAD) 
—El desarrollo rápido de aplicaciones o RAD (acrónimo en inglés de (rapid application development) es un proceso de desarrollo de software El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.

Modelos de Desarrollo de Software

Aqui estan cada uno de los modelos de Desarrollo de software si tiene algo que agregar haganlo:





—Modelo cascada:

Una etapa después de la otra de tal forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.
—Un ejemplo de una metodología de desarrollo en cascada es:
—Análisis de requisitos
—Diseño del Sistema Diseño del Programa

—Codificación
—Pruebas
—Implantación
—Mantenimiento

De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado.


Cuatro Capas

Las Cuatro Capas de La ingenieria de software son: 1. Un enfoque de Calidad 2. Procesos 3.Metodos 4. Herramientas.

Alguno de ustedes puede decir mas de cada una de ellas??

Karlos Najarro:

Yo encontre esto:


Dichas capas se describen a continuación:
Cualquier disciplina de ingeniería (incluida la ingeniería del software) debe descansar sobre un esfuerzo de organización de calidad. La gestión total de la calidad y las filosofías similares fomentan una cultura continua de mejoras de procesos que conduce al desarrollo de enfoques cada vez más robustos para la ingeniería del software.
El fundamento de la ingeniería de software es la capa proceso. El proceso define un marco de trabajo para un conjunto de áreas clave, las cuales forman la base del control de gestión de proyectos de software y establecen el contexto en el cual: se aplican los métodos técnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.
Los métodos de la ingeniería de software indican cómo construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Estos métodos dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.
Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos, a estas herramientas se les llama herramientas CASE(Computer-Aided Software Engineering).
Dado lo anterior, el objetivo de la ingeniería de software es lograr productos de software de calidad (tanto en su forma final como durante su elaboración), mediante un proceso apoyado por métodos y herramientas.
Capas de la ingeniería de software
Independientemente de la complejidad del sistema y de su área de aplicación la ingeniería de software puede considerarse una tecnología multicapa, donde la primer capa enfatiza que los cimientos de la ingeniería de software están orientadas hacia la calidad (Pressman).
Un proceso de software es el conjunto de actividades, métodos, prácticas ytecnologías aplicables a todos los proyectos de software. Un proceso básico (también conocido como ciclo de vida básico) está conformado por el análisis, diseño, codificación, pruebas y mantenimiento.
Los métodos, o modelos, de la ingeniería de software indican como realizar los pasos necesarios del ciclo de vida (cada uno con un enfoque distinto). Así pues, está el modelo de Construcción de Prototipos, el modelo de Desarrollo Rápido de Aplicaciones, el de Procesos Evolutivos - que se divide en el modelo incremental, en espiral, de ensamblaje de componentes y de desarrollo concurrente - el modelo de Métodos Formales, y por último las Técnicas de Cuarta Generación (Pressman).
Las herramientas ayudan a organizar tareas de trabajo, controlar y supervisar los progresos y administrar la calidad técnica. Su objetivo principal es proporcionar un soporte automático o semiautomático, para los procesos y para los métodos.