Mostrando las entradas con la etiqueta Modelo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Modelo. Mostrar todas las entradas

jueves, enero 3

RUP

RUP - Rational Unified Process

El Proceso Unificado Racional (RUP) es un proceso de desarrollo de software que junto con el Lenguaje Unificado de Modelado (UML), constituyen 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 que sigue pasos establecidos para el desarrollo de un proyecto, sino que sigue un conjunto de metodologías que se adaptan a las necesidades de cada uno.

RUP se basa en 6 principios:
  •       Adaptar el proceso
  •       Balancear prioridades
  •       Demostrar valor iterativamente
  •       Elevar el nivel de abstracción
  •       Enfocarse en la calidad
  •       Ciclo de vida

RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en un número variable según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades.
  1. Concepción
  2. Elaboración
  3. Construcción
  4. Transición

En  la siguiente figura podemos apreciar mejor estas fases:
http://xherrera334.blogspot.es/img/RUP.JPG 
http://xherrera334.blogspot.es/1194229380/rup-i-/

martes, junio 26

Modelo de prototipos

El modelo de prototipos o de prototipaje previo a su desarrollo debe considerar las siguientes partes fundamentales:
  • La definición de los objetivos globales para el software.
  • Identificar los requisitos conocidos.
  • Identificar las áreas del esquema del software en donde sea necesaria una mayor definición.
El siguiente esquema represente el proceso que sigue este modelo:
http://xherrera334.blogspot.es/img/prototipaje.JPG 


Su diseño es rápido y se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida).

Ayuda al desarrollador de software y al cliente a entender de mejor manera cuál será el resultado de la construcción cuando los requisitos estén satisfechos y ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.

La clave de su éxito esta en definir las reglas del juego desde el principio; es decir, el cliente y el desarrollador se deben poner de acuerdo en:
  • Que el prototipo se construya y sirva como un mecanismo para la definición de requisitos
  • Que el prototipo se descarte, o al menos en parte.
  • Que después se desarrolle el software real con un enfoque hacia la calidad
Cabe resaltar que este modelo solamente es útil cuando tanto el cliente como el desarrollador conocen los objetivos y las necesidades generales para el software.


lunes, junio 25

Modelo Espiral




 Modelo en Espiral


Desarrollado por B. Boehm, básicamente, la idea es Desarrollo Evolutivo, usando el Modelo de Cascada para cada etapa. Está orientado a evitar riesgos de trabajo. 
No define en detalle el sistema completo a la primera. Los desarrollares deberían solamente definir las mas altas prioridades.

El Modelo Espiral mejora el Modelo de Cascada enfatizando la naturaleza iterativa del proceso de diseño. Eso introduce un ciclo de prototipo iterativo. En cada iteración, las nuevas expresiones que son obtenidas transformando otras dadas son examinadas para ver si representan progresos hacia el objetivo.

El proceso se representa como una espiral más que como una secuencia de actividades con vuelta hacia atrás  Es decir: cada iteración integra el resultado anterior. Cada vuelta en la espiral representa una fase del proceso. Cada fase supone un avance en el proceso de desarrollo

No hay “etapas” fijas tradicionales, ligadas a actividades como la especificación o diseño. Cada vuelta en la espiral determina las actividades a realizar.

http://xherrera334.blogspot.es/img/espiral.JPG




http://xherrera334.blogspot.es/1193195700/modelos-de-desarrollo-de-software/

jueves, junio 21

Modelo en Cascada


Modelo en Cascada

            El más conocido, esta basado en el ciclo convencional de una ingeniería, el paradigma del ciclo de vida abarca las siguientes actividades:
http://xherrera334.blogspot.es/img/fig4.GIF 

Ingeniería y Análisis del Sistema: debido a que el software es siempre parte de un sistema mayor el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software.

Análisis de los requisitos del software: el proceso de recopilación de los requisitos se centra e intensifica especialmente en el software. El ingeniero de software (Analistas) debe comprender el ámbito de la información del software, así como la función, el rendimiento y las interfaces requeridas.

Diseño: el diseño del software se enfoca en cuatro atributos distintos del programa: la estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterización de la interfaz. El proceso de diseño traduce los requisitos en una representación del software con la calidad requerida antes de que comience la codificación.

Codificación: el diseño debe traducirse en una forma legible para la maquina. El paso de codificación realiza esta tarea. Si el diseño se realiza de una manera detallada la codificación puede realizarse mecánicamente.

Prueba: una vez que se ha generado el código comienza la prueba del programa. La prueba se centra en la lógica interna del software, y en las funciones externas, realizando pruebas que aseguren que la entrada definida produce los resultados que realmente se requieren.

Mantenimiento: el software sufrirá cambios después de que se entrega al cliente. Los cambios ocurrirán debido a que hayan encontrado errores, a que el software deba adaptarse a cambios del entorno externo (sistema operativo o dispositivos periféricos), o debido a que el cliente requiera ampliaciones funcionales o del rendimiento.
Desventajas: 

  • Los proyectos reales raramente siguen el flujo secuencial que propone el modelo, siempre hay iteraciones y se crean problemas en la aplicación del paradigma. 

  • Normalmente, es difícil para el cliente establecer explícitamente al principio  todos los requisitos. El ciclo de vida clásico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden existir al comienzo de muchos productos. 

  • El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estará disponible una versión operativa del programa. Un error importante no detectado hasta que el programa este funcionando puede ser desastroso.

Ventaja:
La ventaja de este método radica en su sencillez ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software.

http://xherrera334.blogspot.es/1192588380/resumen/ 

martes, junio 19

Modelo Iterativo Incremental


El modelo iterativo incremental combina elementos del modelo cascada (aplicado repetidamente) así como la filosofia iterativa del prototipado.

La parte inicial es el nucleo del producto (es la parte más importante).
Una nueva version del producto surge cuando nuevas características han sido implementadas a medida que han sido sugeridas por el usuario.
Este modelo es aplicable cuando es dificil establecer los requisitos iniciales de un proyecto y es más apropiado para proyectos pequeños.
Las nuevas versiones pueden ser planeadas de modo que los requisitostecnicos puedan ser administrados.
El objetivo es trabajar junto al usuario para descubrir sus requisitos de manera incremental antes de que el producto final sea obtenido.

El modelo iterativo de desarrollo de software se basa en que antes de entregar el sistema de una vez, tanto el desarrollo como las entregas se dividen en incrementos.

Los requisitos del usuario se priorizan y los requisitos de prioridad más alta se incluyen en los incrementos más tempranos.

Cuando el desarrollo de un incremento comienza, sus requisitos son inamovibles, aunque los requisitos de incrementos posteriores pueden continuar desarrollándose.
Los clientes no tienen que esperar hasta tener el sistema completo. El primer incremento satisface los requisitos más críticos. Los primeros incrementos sirven como prototipo y ayudan en la tarea de detectar los posteriores requisitos.

Un gráfico que muestra cual es el desarrollo de este proceso es el siguiente:

lunes, junio 18

Modelo W

El modelo en W es una evolución del Modelo V.
Más que aportar algo nuevo lo que pretende es aclarar ciertos aspectos que el modelo en V no termina de dejar claros (si bien bastantes de las características del modelo en W ya eran de aplicación en el modelo en V).
Existen diferentes implementaciones del modelo en W, es este artículo me voy a centrar en la propuesta por Paul Herzlich.

http://www.juntadeandalucia.es/servicios/madeja/sites/default/files/imagecache/wysiwyg_imageupload_lightbox_preset/wysiwyg_imageupload/10/modeloW.jpg

En el modelo en V tenemos dos secuencias de pasos, una se consideraba que era de carácter constructivo, la primera recta de la V y la segunda de carácter destructivo (en el mejor de los casos, si ha pasado el test se continua hacia adelante), lo cual seguía marginando en cierto modo las actividades de testing, algo que precisamente intentaba evitar el modelo en V, al situar las mismas a la misma altura y a la vez que las de desarrollo.
En este caso tenemos dos V, una correspondiente al proceso de desarrollo y otra correspondiente al proceso de testing. Hay quienes piensan y tal vez no les falte razón que añadir una V específica para el testing lo único que ha hecho es trasladar el mismo defecto a otra dimensión, ya que vamos a seguir teniendo un caso donde se construye y otro donde se “fiscaliza”, si bien, el hecho de que este modelo integre explícitamente las vueltas a atrás acerca más ambos tipos de tareas.

Y es lógico que sea así porque todos sabemos que es muy complicado (por no decir casi imposible) acertar a la primera, por lo que el proceso de verificación, feedback y ajuste debe entenderse como un proceso integrado en el desarrollo y no como tareas independientes y enfrentadas.
Entonces, si tenemos ahora dos V, qué representa el lado creciente de cada una de ellas. Pues realmente lo que hace el modelo en W es diferenciar cláramente cuáles son los hitos de un proyecto software (algo que podía resultar confuso en el modelo en V) de manera que en la primera recta están los hitos previos a la construcción del software (con las pruebas y verificaciones correspondientes a los hitos documentales) y en la segunda los posteriores a la construcción del software (verificación sobre el producto software).

jueves, junio 14

Modelo V


El Modelo en V, o Modelo de Cuatro Niveles, del ciclo de vida de un proyecto de desarrollo de software. El modelo representa, en forma de V, las relaciones temporales entre las distintas fases del ciclo de desarrollo de un proyecto. 

En los niveles lógicos del 1 al 4, para cada fase del desarrollo, existe una fase correspondiente o paralela de verificación o validación. Esta estructura obedece al principio de que para cada fase del desarrollo debe existir un resultado verificable.

Modelo en V o Modelo de Cuatro Niveles
En la misma estructura se advierte también que la proximidad entre una fase del desarrollo y su fase de verificación correspondiente va decreciendo a medida que aumenta el nivel dentro de la V. La longitud de esta separación intenta ser proporcional a la distancia en el tiempo entre una fase y su homóloga de verificación.
  • El nivel 1 está orientado al “cliente”. El inicio del proyecto y el fin del proyecto constituyen los dos extremos del ciclo. Se compone del análisis de requisitos y especificaciones, se traduce en un documento de requisitos y especificaciones.
  • El nivel 2 se dedica a las características funcionales del sistema propuesto. Puede considerarse el sistema como una caja negra, y caracterizarla únicamente con aquellas funciones que son directa o indirectamente visibles por el usuario final, se traduce en un documento de análisis funcional.
  • El nivel 3 define los componentes hardware y software del sistema final, a cuyo conjunto se denomina arquitectura del sistema.
  • El nivel 4 es la fase de implementación, en la que se desarrollan los elementos unitarios o módulos del programa.
¿Tengo que hacer documentación de todo?
Por supuesto. Cada fase tiene que estar respaldada por su documento correspondiente y test.
¿Por qué utilizar una metodología?
Porque es lo más rápido y barato. Volviendo al ejemplo de la casa, imaginad la cantidad de veces que debería volver atrás y tirar paredes ya hechas porque de pronto descubro que el suelo es inestable, la bañera no cabe, la instalación eléctrica no la había tenido en cuenta…
Pues, con el código pasa exactamente lo mismo.


El Modelo V tiende a estar muy relacionado con el Modelo de Cascada puesto que es una evolución del mismo.

http://xherrera334.blogspot.es/img/fig5.GIF
 
Puede notarse que su primera mitad es similar al Modelo en Cascada, y la otra mitad tiene como finalidad hacer pruebas e integración asociado a cada una de las etapas de la mitad anterior.
            Se puede identificar una ventaja principal con respecto al Modelo Cascada más simple, y se refiere a que este modelo involucra chequeos de cada una de las etapas del modelo de cascada.

Desventajas:
  • El riesgo es mayor que el de otros modelos, pues en lugar de hacer pruebas de aceptación al final de cada etapa, las pruebas comienzan a efectuarse luego de haber terminado la implementación, lo que puede traer como consecuencia un “roll-back” de todo un proceso que costó tiempo y dinero.
  • El modelo no contempla la posibilidad de retornar a etapas inmediatamente anteriores, cosa que en la realidad puede ocurrir.
  • Se toma toda la complejidad del problema de una vez y no en iteraciones o ciclos de desarrollo, lo que disminuye el riesgo.
            A pesar de todo lo antes mencionado, definitivamente se trata de un modelo más robusto y completo que el Modelo de Cascada, y puede producir software de mayor calidad que con el modelo de cascada.

lunes, junio 11

Modelos de proceso software


Modelos de proceso software

 

Los modelos genéricos no son descripciones definitivas de procesos de software; sin embargo, son abstracciones útiles que pueden ser utilizadas para explicar diferentes enfoques del desarrollo de software. Entre los principales tenemos los siguientes:

·       Codificar y corregir
·       Modelo en cascada
·       Desarrollo evolutivo
·       Desarrollo formal de sistemas
·       Desarrollo basado en reutilización
·       Desarrollo incremental
·       Desarrollo en espiral


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.


Modelos de Ciclo de Vida de Desarrollo de Software (SDLC):
 

 
Fuente: http://xherrera334.blogspot.es/1192588380/resumen/