Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas.
UML
Introducción.
Metodología.
Explicación de las fases de la Metodología.
UML.
Proceso Unificado.
Este tema tiene como objetivo, comenzar el aprendizaje de cómo realizar el análisis de un sistema,
además de la obtención y especificación de los requisitos del Sistema. Para ello, se estudiará UML y
las herramientas que se utilizan para la realización de esta etapa, utilizando una metodología.
Un proyecto de desarrollo de software no puede ser abordado de forma directa. Requiere de una
metodología, que nos permita definir los contenidos de cada fase para el desarrollo de un software y
como pasar de una etapa a otra. En este tema comenzamos el estudio de la metodología definida
por Craig Larman, unido al estudio de UML. Misma que establece una serie de actividades que
pueden desarrollarse en cada fase, las cuales pueden adaptarse a las condiciones del proyecto
software que se desea desarrollar.
Esta metodología, nace a partir del modelo de procesos descrito en RUP (Rational Unified Process).
Es un método de desarrollo de software iterativo, incremental y dirigido por casos de uso que
permite desarrollar completamente un sistema software partiendo de un prototipo funcional inicial
cuyas funcionalidades se van extendiendo hasta culminar con el desarrollo del sistema. (González,
2017)
La metodología RUP es un proceso muy abierto, adaptativo e incremental dirigido por casos de uso
(en función de las características del proyecto se podía utilizar un ciclo de vida u otro), en el cual se
pueden seguir muchos caminos distintos para desarrollar el software.
Cada una de estas actividades, serán explicadas en los próximos temas a estudiar.
Consiste en realizar el análisis de los requisitos que presenta el usuario las necesidades que debe
satisfacer el producto que se quiere construir.
Pasos a seguir:
1. Definición del Plan Borrador.
2. Informe de Investigación Preliminar.
3. Definir los requisitos.
4. Registrar Términos en el Glosario.
5. Casos de Uso.
6. Arquitectura del Sistema.
3.- Instalación
En esta fase se instalará el sistema, el usuario dará el visto bueno y se comenzará una nueva
iteración del producto con las funciones añadidas por éste.
Por mucho tiempo se habló en la industria del software sobre la llamada crisis del software. Las
discusiones de la crisis se basaban a los siguientes aspectos:
1.- Muchos proyectos de software fallan en producir sistemas que cumplen con los requerimientos y
las necesidades de los usuarios.
2.- Los proyectos de desarrollo de software terminan excediendo los presupuestos y los horarios de
tiempo.
3.- Los sistemas se han vuelto cada vez más grandes y distribuidos a través de muchas
computadoras, utilizando la arquitectura Cliente/Servidor.
4.- La necesidad de integrar sistemas complejos en un ambiente distribuido requiere que los
sistemas tengan algunos modelos comunes.
Que es UML
UML es un lenguaje estándar que sirve para escribir los planos de software, con el mismo se puede,
visualizar, especificar construir y documentar todas las partes que componen un sistema con gran
cantidad de software.
El Lenguaje de Modelaje Unificado (el UML) ha sido un intento para resolver algunos de los
problemas descritos anteriormente.
UML es el estándar formal y puede ser también el estándar de facto para construir los modelos
utilizables:
• Seguros: Describen correctamente el sistema a ser construido.
• Consistentes: Las diferentes vistas no expresan cosas que estén en conflictos con otras.
• Fáciles de comunicar a otros.
• Fáciles de cambiar.
Surgimiento de UML
Oficialmente surge en Octubre de 1994 al unirse Rumbaugh y Booch en Rational.
Tuvo como objetivo crear un nuevo método, el "Método Unificado," para unir el método de Booch y
el método OMT.
Por el 1995, Ivar Jacobson responsable del método OOSE y Objectory, se unió, y UML fue
expandido para incorporar OOSE.
El trabajo se dirigió fundamentalmente a la creación de un lenguaje de modelaje estándar, que le
llamaron "Lenguaje de Modelaje Unificado.", que pudiera ser utilizado por todos.
Uso de UML
UML puede usarse para modelar desde sistemas de información hasta aplicaciones distribuidas
basadas en WEB, pasando por sistemas empotrados de tiempo real.
Características de UML
Es un lenguaje, porque proporciona un vocabulario y las reglas para utilizarlo, por lo que es sólo una
parte de un método de desarrollo de software.
Es independiente del proceso, aunque para que sea óptimo debe usarse en un proceso dirigido por
casos de uso, centrado en la arquitectura, iterativo e incremental.
Es un lenguaje de modelado lo que significa que el vocabulario y las reglas se utilizan para la
representación conceptual y física del sistema.
Es un lenguaje que nos ayuda a interpretar grandes sistemas, mediante gráficos o mediante texto,
obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo, ya que, al ser
estándar, los modelos podrán ser interpretados por personas que no participaron en su diseño (e
incluso por herramientas) sin ninguna ambigüedad.
Sirve para especificar modelos concretos, no ambiguos y completos.
No es un lenguaje de programación. A pesar de ello, se puede conectar de manera directa a
lenguajes de programación, tales como Java, C++, o Visual Basic, esto permite lo que se denomina
ingeniería directa (obtener el código fuente partiendo de los modelos) también, es posible
reconstruir un modelo en UML partiendo de la implementación, o sea, ingeniería inversa.
Tiene la capacidad de que permite modelar actividades de planificación, especificar requisitos y las
pruebas del sistema, permite representar todos los detalles y la propia arquitectura. Obteniéndose
también, la documentación. (documentar).
ELEMENTOS
Son los conceptos utilizados en los diagramas.
Un elemento del modelo es definido con una semántica, una definición formal del elemento
o el significado exacto de lo que representa en un enunciado no ambiguo.
Un elemento del modelo también tiene un elemento de vista correspondiente, el cual es una
representación gráfica del elemento o el símbolo gráfico utilizado para representar al
elemento en los diagramas.
Un elemento puede existir en varios tipos diferentes de diagramas, pero hay reglas para las
cuales los elementos pueden ser mostrados en cada tipo de diagrama.
RELACIONES:
Las relaciones son también elementos del modelo, y son utilizadas para interconectar
otros elementos del modelo unos a otros. Algunas relaciones diferentes son:
• Asociación: Conecta elementos y enlaza instancias.
• Generalización: También llamada herencia, esto significa que un elemento puede ser la
especialización de otro elemento.
• Dependencia: Muestra que un elemento depende de alguna manera de otro
elemento.
• Agregación: Es una forma de asociación en la cual un elemento contiene otros
elementos.
• Refinamiento: Es una forma de generalización entre un elemento a mayor nivel de detalle
que otro pero que representan lo mismo.
DIAGRAMAS
Tipos de Diagramas
❖ Diagramas de Casos de Uso:
❖ Son una vista gráfica de algunos o todos los actores, casos de usos, interacciones del
sistema.
❖ Tipos de Diagramas de Casos de Usos:
❖ Diagrama de CU Principal: Es la imagen de la frontera (actores principales)
y la funcionalidad principal del Sistema.
❖ Un diagrama que muestre todos los CU para un actor determinado.
❖ Un Diag. De CU que muestre todos los CU implementados en una iteración.
❖ Un diag. Que muestre un caso de uso y sus relaciones.
❖ Diagramas de Objetos.
o Parecido al Diagrama de clases.
o Muestra una serie de objetos, en vez de clases actuales.
o Muestra las instancias de una clase.
o Utiliza la misma notación excepto que los nombres están subrayados, y son
mostradas todas las instancias en una notación.
❖ Diagramas de Secuencia.
1. Muestra una Colaboración Dinámica entre una serie de objetos.
2. Muestra una secuencia de mensajes enviados entre objetos, algo que
sucederá en un punto específico de la ejecución de un sistema.
3. Consiste en una serie de objetos.
4. Para enfatizar la secuencia.
❖ Diagramas de Actividades.
▪ Muestra el flujo secuencial de las actividades.
▪ Puede ser utilizado para describir las actividades realizadas en una
operación.
▪ Puede usarse para describir otros diagramas:
▪ Casos de usos.
▪ Iteración.
▪ Estados.
❖ Diagramas de Colaboración.
5. Muestra una Colaboración Dinámica.
6. Muestra los Objetos y sus Relaciones.
❖ Diagramas de Estado.
➢ Muestra todos los estados posibles que los objetos de la clase pueden tener.
➢ Muestra qué eventos causan un cambio de estado.
➢ No son dibujados para todas las clases, sólo aquellas que tienen estados
bien definidos.
➢ Pueden ser dibujados para el sistema en su totalidad.
➢ Complementan la descripción de una clase.
❖ Diagramas de Componentes.
❖ Diagramas de Implementación.
2.- Las reglas: Dictan pautas para la realización de asociaciones entre objetos, son reglas
semánticas, que afectan a los nombres, a la visibilidad, a la integridad y a la ejecución.
✓ Notas: No todo puede ser definido en un lenguaje de modelaje, no importa cuán extenso
sea el lenguaje. Para permitir agregar información al modelo que de otra manera no puede
ser representada, UML proporciona las notas. Una nota puede ser puesta en cualquier lugar
del diagrama, y puede contener cualquier tipo de información. Su tipo de información es
una cadena que no puede ser interpretada por el UML. La nota es agregada típicamente a
algún elemento en el diagrama con alguna línea punteada que especifica cuál elemento está
siendo explicado o detallado, junto con la información en la nota.
o Una nota contiene cualquier información adicional, tales como comentarios simples
o Una nota contiene a menudo comentarios y preguntas del modelador como un
recordatorio para resolver un dilema más tarde.
o Las notas pueden tener también estereotipos que describen el tipo de nota.
✓ Las divisiones comunes: Permiten dividir los modelos en al menos un par de formas
diferentes, para facilitar la comprensión desde distintos puntos de vistas.
o División entre clases y objeto, (clase es una abstracción y objeto es una
manifestación de esa abstracción).
o División interfaz /implementación; la interfaz presenta un contrato (algo que se va a
cumplir de una determinada manera) mientras que la implementación es la manera
en que se cumple dicho contrato.
VISTAS:
Tipos de Vistas:
Vista de Caso de Uso: Muestra la funcionalidad de un sistema como es percibida por los
actores externos.
Vista Lógica: Muestra cómo es diseñada la funcionalidad del sistema en términos de
estructuras estáticas del sistema y su comportamiento dinámico.
Vista de Componente: Muestra la organización de los componentes del código.
Vista de procesos: Muestra la concurrencia en el sistema, resolviendo problemas de
comunicación y sincronización que están presentes en un sistema concurrentes.
Vista de Despliegue: Muestra el despliegue de un sistema dentro de una arquitectura
física con computadoras y dispositivos llamados nodos.
• Sistemas Distribuidos: Distribuidos en una serie de máquinas donde los datos son
transferidos fácilmente de una máquina a otra. Requieren de mecanismos de comunicación
sincronizada para asegurar la integridad de los datos y son construidos a menudo sobre
mecanismos de objetos tales como CORBA, COM/DCOM, o Java Beans/ RMI.
• Software de Sistemas: Definen la infraestructura técnica que utiliza otro software. Los
sistemas operativos, bases de datos, e interfaces de usuario realizan operaciones de bajo nivel
en el hardware, mientras presentan interfaces genéricas para ser utilizadas por otro software.
• Sistemas de Negocios: Describen los objetivos, los recursos (humanos, computadoras, etc.),
las reglas (leyes, estrategias del negocio, políticas, etc.), y el trabajo actual en el negocio
(procesos del negocio).
Proceso Unificado
Inicio:
• Objetivos:
• Razón del negocio
• Alcance del proyecto.
• Que se hace:
• Costos.
• Beneficios.
• Definición de los Casos de Uso del negocio.
• Se determina si se sigue o no con el proyecto.
Elaboración:
▪ Analizar el dominio del problema:
▪ ¿Qué es lo que se va a construir?
▪ ¿Cómo se va a construir?
▪ ¿Qué tecnología se va a utilizar?
▪ Establecer una fundición arquitectónica sólida.
▪ Deben ser tomadas con un entendimiento completo del sistema.
▪ Debe describir la mayor cantidad de casos de usos.
▪ Tomar en cuenta algunas restricciones: requerimientos no
funcionales.
▪ Para verificar la arquitectura: debe implementar un sistema que
demuestre las opciones arquitectónicas y ejecute casos de usos
significativos.
▪ Eliminar los elementos de más alto riesgo del proyecto
▪ Riesgos de requerimientos / Riesgos tecnológicos
▪ Riesgos de habilidades / Riesgos Políticos
1. Que se hace:
2. Se obtienen requerimientos más detallados.
3. Se hace análisis y diseño para de alto nivel, para obtener la arquitectura
base.
4. Se crea el plan para la construcción.
5. Cuando Termina:
6. Cuando se conoce cuanto tiempo demora en realizar cada caso de uso
Construcción
❖ Muchas iteraciones.
❖ En cada iteración se construye software de calidad, probado e integrado.
❖ En cada iteración se hace Análisis, Diseño, Implementación y Pruebas.
❖ Iterativo.
❖ Incremental.
❖ Se desarrolla un producto completamente listo.
❖ Cada iteración es un mini proyecto(Análisis,Diseño, codificación, pruebas e integración)
para los casos de usos asignados a cada iteración.
❖ Dentro de cada iteración puede haber una planificación más detallada.
Transición.
Pruebas beta.
Optimización del rendimiento.
Capacitación del usuario.
Otros conceptos
Ciclo.
• El ciclo de vida de software está dividido en ciclos
• Cada ciclo trabaja en una nueva generación del producto.
• Un ciclo está compuesto por fases:
• Inicio
• Preparación
• Construcción
• Transición.
Hitos.
• Cada fase está construida por hitos, bien definidos.
• Hito: un punto en el tiempo donde ciertas decisiones críticas deben tomarse.
• Cada fase tiene un propósito.