Diferencia entre revisiones de «Proceso Unificado de Desarrollo»

Contenido eliminado Contenido añadido
Sin resumen de edición
Línea 29:
Estas son las fases en que se divide cada uno de los ciclos de vida por los que pasa un proyecto software:
 
*'''Concepción''': El alcance de un acuerdo entre todos los interesados respecto a los objetivos (de este ciclo) del proyecto. Los objetivos en esta fase son:
*'''Concepción'''
**Finalidad:Establecer Alcanzarel unámbito acuerdode entresoftware todosy loslas interesadoscondiciones respecto ade los objetivoslímites del ciclo vital para el proyecto.
**Discriminar los casos de uso más importantes del sistema.
**Objetivos:
***EstablecerEstimar el ámbitocosto de softwareglobal y lasla condicionesplanificación de lostodo límites delel proyecto.
**Estimar los riesgos potenciales.
***Discriminar los casos de uso más importantes del sistema.
***EstimarPreparar el costoentorno globalde ysoporte la planificación de todopara el proyecto.
***Estimar los riesgos potenciales.
***Preparar el entorno de soporte para el proyecto.
 
*'''Elaboración''': El establecimiento de una línea base para la arquitectura del sistema. Los objetivos en esta fase son:
*'''Elaboración'''
**Garantizar que la arquitectura, los requisitos y los planes son lo bastante estables, y que los riesgos están suficientemente mitigados.
**Finalidad: El establecimiento de una línea base para la arquitectura del sistema
**Tratar todos los riesgos arquitectónicamente significativos del proyecto.
**Objetivos:
**Producir un prototipo de componentes de calidad de producción.
***Garantizar que la arquitectura, los requisitos y los planes son lo bastante estables, y que los riesgos están suficientemente mitigados.
**Establecer un entorno de soporte.
***Tratar todos los riesgos arquitectónicamente significativos del proyecto.
***Producir un prototipo de componentes de calidad de producción.
***Establecer un entorno de soporte.
 
*'''Construcción''': La finalización del desarrollo del sistema basado en la arquitectura de línea base anterior. Los objetivos en esta fase son:
*'''Construcción'''
**Minimizar los costos de desarrollo optimizando los recursos y evitando las reconstrucciones y los fragmentos innecesarios.
**Finalidad: Completar el desarrollo del sistema basado en la arquitectura de línea base.
**Conseguir la calidad adecuada de forma rápida y práctica.
**Objetivos
**Conseguir versiones útiles (alfa, beta y otros releases de prueba) de forma rápida y práctica.
***Minimizar los costos de desarrollo optimizando los recursos y evitando las reconstrucciones y los fragmentos innecesarios.
**Completar el análisis, diseño, desarrollo y prueba de toda la funcionalidad necesaria.
***Conseguir la calidad adecuada de forma rápida y práctica.
**Desarrollar de forma iterativa e incremental un producto.
***Conseguir versiones útiles (alfa, beta y otros releases de prueba) de forma rápida y práctica.
***Completar el análisis, diseño, desarrollo y prueba de toda la funcionalidad necesaria.
***Desarrollar de forma iterativa e incremental un producto.
 
*'''Transición''': La garantía de que el software está operativo y es de utilidad para los usuarios. Los objetivos en esta fase son:
*'''Transición'''
**Ejecutar el despliegue.
**Finalidad: Garantizar que el software está listo para entregarlo a los usuarios.
**Prueba de versión beta para validar el nuevo sistema contra las expectativas del usuario.
**Objetivos
**Convertir bases de datos operativas.
***Ejecutar el despliegue.
**Formación de usuarios y mantenedores.
***Prueba de versión beta para validar el nuevo sistema contra las expectativas del usuario.
**Despliegue de la fuerza de marketing, distribución y ventas.
***Convertir bases de datos operativas.
**Alcanzar la capacidad de soporte propio del usuario.
***Formación de usuarios y mantenedores.
***Despliegue de la fuerza de marketing, distribución y ventas.
***Alcanzar la capacidad de soporte propio del usuario.
 
=== Componentes y servicios===
Línea 76 ⟶ 68:
SOA define un conjunto de técnicas y productos de trabajo, tal como aparece en la figura de esta sección, para definir modelos de solución de extremo a extremo.
 
===Ventajas y recomendacionesCasos de uso===
Los casos de uso son una técnica, muy característica de este modelo de proceso, con la que especificar el comportamiento del sistema.
 
Un Caso de Uso es una secuencia de interacciones entre un sistema y alguien o algo que usa alguno de sus servicios.
 
Si vemos el software como un sistema que ofrece a su entorno una serie de servicios, un caso de uso es una forma de expresar la manera en que un usuario o un sistema externo (llamado 'actor') lo utiliza.
 
Los casos de uso no describen ninguna funcionalidad interna (oculta al exterior) del sistema, ni explican cómo se implementará. Simplemente muestran los pasos que el actor sigue para realizar una tarea.
 
La técnica de caso de uso es muy útil en el desarrollo de sistemas interactivos, ya que expresa la intención que tiene el actor al hacer uso del sistema.
Como técnica de extracción de requisitos permite que el analista se centre en las necesidades del usuario (¿qué espera éste lograr al utilizar el sistema?), evitando que los desarrolladores dirijan la funcionalidad del nuevo sistema basándose solamente en criterios tecnológicos.
A su vez, mientras se obtienen los requisitos, el analista se concentra en las tareas centrales del usuario, las más importantes, describiendo por lo tanto los casos de uso que mayor valor aportan al negocio. Esto facilita luego la priorización de estos requisitos.
 
Los casos de uso pueden ser útiles para establecer requisitos de comportamiento, pero no establecen completamente los requisitos funcionales ni permiten determinar los requisitos no funcionales. Los casos de uso deben complementarse con información adicional como reglas de negocio, requisitos no funcionales, diccionario de datos, etc. que complementa los requisitos formales del sistema. De hecho cada caso de uso considerado 'crítico' debería tener una serie de requisitos no funcionales que especifiquen a fondo el comportamiento asociado.
 
==Ventajas y recomendaciones de uso==
Cualquier Proceso Unificado, y concretamente RUP, proporciona un entorno de proceso bastante configurable y basado en fuertes estándares. Este entorno de proceso permite establecer un método personalizado para cada organización, configurándolo para satisfacer las necesidades exclusivas de cada proyecto.
 
Línea 90 ⟶ 97:
*La estructura del ciclo vital del proyecto (número de iteraciones, duración total del proyecto y de cada una de sus fases)
 
==Casos de usoConclusiones==
En resumidas cuentas, podemos decir que el Proceso Unificado es un importante marco de referencia en Ingeniería de Software con el que definir, implementar y distribuir aplicaciones de software.
Los casos de uso son una técnica, muy característica de este modelo de proceso, con la que especificar el comportamiento del sistema.
 
''"Un Caso de Uso es una secuencia de interacciones entre un sistema y alguien o algo que usa alguno de sus servicios"''
 
Presenta un modelo dividido en 4 fases:
Todo sistema de software, ofrece a su entorno una serie de servicios, Un caso de uso es una forma de expresar cómo alguien o algo externo a un sistema lo usa.
*Concepcion: Sobretodo define el alcance del proyecto
*Elaboración: Especificación formal, análisis y diseño
*Construcción: Implementación
*Transición: Cierre del proyecto y paso a producción
 
Las ventajas de este modelo son la reducción de riesgos en el proyecto, la garantía de calidad, y la integración entre lo que es propiamente desarrollo con mantenimiento de software (a base de ir iterando en cada fase, combinando actividades de uno y otro tipo).
Los casos de uso no describen ninguna funcionalidad interna (oculta al exterior) del sistema, ni explican cómo se implementará. Simplemente muestran los pasos que el actor sigue para realizar una tarea.
 
'''Ventajas'''
La técnica de caso de uso tiene éxito en sistemas interactivos, ya que expresa la intención que tiene el actor (su usuario) al hacer uso del sistema.
Como técnica de extracción de requerimiento permite que el analista se centre en las necesidades del usuario, qué espera éste lograr al utilizar el sistema, evitando que la gente especializada en informática dirija la funcionalidad del nuevo sistema basándose solamente en criterios tecnológicos.
A su vez, durante la extracción (elicitation en inglés), el analista se concentra en las tareas centrales del usuario describiendo por lo tanto los casos de uso que mayor valor aportan al negocio. Esto facilita luego la priorización del requerimiento.
 
'''Limitaciones'''
Los casos de uso pueden ser útiles para establecer requisitos de comportamiento, pero no establecen completamente los requisitos funcionales ni permiten determinar los requisitos no funcionales. Los casos de uso deben complementarse con información adicional como reglas de negocio, requisitos no funcionales, diccionario de datos que complementen los requerimientos del sistema. Sin embargo la ingeniería del funcionamiento especifica que cada caso crítico del uso debe tener un requisito no funcional centrado en el funcionamiento asociado.
 
==Conclusiones==
En resumidas cuentas, podemos decir que:<br />
RUP es el Marco de referencia de ingeniería de software para definir, implementar y distribuir aplicaciones de software sus características principales.<br />
Se divide en 4 fases:<br />
*Concepcion : Define el alcance del proyecto.<br />
*Elaboración : Definicion, análisis, diseño.<br />
*Construcción : Implementación.<br />
*Transición : Fin del proyecto y puesta en producción.<br />
 
Como desventajas, podemos señalar que requiere una gran previsión sobre lo que va a ocurrir (para poder controlarlo) y que genera abundante trabajo adicional (y costes asociados) de documentación y comunicación, con lo que no suele resultar práctico para proyectos pequeños.
''VENTAJAS'': <br />
*Reduce riesgos del proyecto.
*Incorpora fielmente el objetivo de calidad
*Integra desarrollo con mantenimiento.
''DESVENTAJAS'': <br />
*Pretende prever y tener todo el control de antemano
*Genera trabajo adicional
*Genera muchos costos
*No recomendable para proyectos pequeños.
 
==Lecciones relacionadas==
*{{cita web |url=https://es.wikiversity.org/wiki/Procesos_de_desarrollo_software |título=[[Procesos de desarrollo software}}]]
*{{cita web |url=https://es.wikiversity.org/wiki/Metodolog%C3%ADas_pesadas_de_desarrollo_software |título=[[Metodologías pesadas de desarrollo software}}]]
*{{cita web |url= https://es.wikiversity.org/wiki/Metodolog%C3%ADas_%C3%A1giles_de_desarrollo_software |título=[[Metodologías ágiles de desarrollo software}}]]
*[[Scrum]]
*{{cita web |url= https://es.wikiversity.org/wiki/Scrum |título=Scrum}}
 
==Referencias==