Vous êtes sur la page 1sur 13

Lenguaje UML.

La importancia de modelar

1. ¿Por qué modelamos?


2. La importancia de modelar
3. ¿Qué es entonces un modelo?
4. Principios de modelado
5. Modelado orientado a objetos
6. Presentación de UML
7. Elementos en UML
8. Diagramas en UML
9. Reglas de UML
10. Mecanismos comunes en UML
11. Arquitectura
12. Ciclo de vida del desarrollo de software

¿Por qué modelamos?


Una empresa que:
• Produce de forma consistente software que satisface las necesidades de sus usuarios.
• Puede desarrollar el software de forma predecible y puntual.
• Con un uso eficiente y efectivo de recursos tanto humanos como materiales
Tiene un negocio sostenible.
El producto principal de un equipo de desarrollo:
• No son documentos ni reuniones muy importantes.
• Es un buen software que satisfaga las necesidades de sus usuarios y la empresa.
Para desarrollar software rápida, efectiva y eficientemente es necesario:
• Trabajo repetido.
• Mínimo desecho de software.
• Gente apropiada.
• Enfoque apropiado.
• Herramientas apropiadas.
• Considerar las necesidades del problema y tecnología.
El modelado es una parte central de todas las actividades que conducen a la producción de buen software.
Construimos modelos para:
• Comunicar la estructura deseada y el comportamiento de nuestro sistema.
• Visualizar y controlar la arquitectura de nuestro sistema.
• Comprender qué estamos construyendo, muchas veces descubriendo oportunidades para la
simplificación y reutilización.
• Controlar el riesgo.

La importancia de modelar
De acuerdo al tipo de emprendimiento, tanto en su tamaño como en características se necesitará de
distintas herramientas, procesos, arquitectura, recursos humanos y las tecnologías. El truco está en crear el
software apropiado y en imaginar cómo escribir menos software. Un proyecto puede ser concebido con
respecto a su tamaño en un programa pequeño, y crecer enormemente, pero si no se han tenido en cuenta,
previamente la arquitectura, el proceso o las herramientas, este colapse.
El modelado es común en los proyectos software exitosos.
El modelado es una técnica de ingeniería probada y bien aceptada. Nos ayuda a:
• Visualizar a sus usuarios el producto final.
• Comprender mejor el sistema.
• Comunicar las ideas a otros.

¿Qué es entonces un modelo?


“UN MODELO ES UNA SIMPLIFICACIÓN DE LA REALIDAD”.
Pueden involucrar planos detallados como planos más generales que ofrecen una visión global del sistema
en consideración.

Para ver trabajos similares o recibir información semanal1sobre nuevas publicaciones, visite www.monografias.com
¿POR QUÉ MODELAMOS?
Construimos modelos para comprender mejor el sistema que estamos desarrollando.
A través del modelado se consiguen cuatro objetivos:
• Nos ayuda a visualizar como es ó queremos que sea un sistema.
• Nos permite especificar la estructura ó el comportamiento de un sistema.
• Nos proporcionan plantillas que nos guían en la construcción de un sistema.
• Documentan las decisiones que hemos tomado.
El modelado es útil tanto en pequeños como en grandes sistemas. Mientras más grande y complejo sea el
sistema el modelado se hace importante por una simple razón:
“CONSTRUÍMOS MODELOS DE SISTEMAS COMPLEJOS PORQUE NO PODEMOS COMPRENDER EL
SISTEMA EN SU TOTALIDAD”.
A través del modelado, reducimos el problema que se está estudiando, centrándonos en un solo aspecto a
la vez. Se puede modelar formal e informalmente, pero este último no proporciona un lenguaje común que
se pueda compartir fácilmente con otros. Mientras más complejo sea el sistema, requiere modelaje. Si se
construye un sistema simple y este es sencillo al principio no se piensa que este necesite de modelaje, pero
si este evoluciona y crece, se lamentará no haberlo realizado.

Principios de modelado
1. LA ELECCIÓN ACERCA DE QUÉ MODELOS CREAR TIENE UNA PROFUNDA INFLUENCIA
SOBRE CÓMO SE ACOMETE UN PROBLEMA Y CÓMO SE DA FORMA A UNA SOLUCIÓN. De
acuerdo con el paradigma con el que se enfoque el problema a solucionar serán distintas las
herramientas, los procesos, la arquitectura, los recursos humanos y las tecnologías a utilizar.
2. TODO MODELADO PUEDE SER EXPRESADO CON DIFERENTES NIVELES DE PRESICIÓN.
3. LOS MEJORES MODELOS ESTÁN LIGADOS A LA REALIDAD. Los modelos simplifican la
realidad, hay que asegurarse que las simplificaciones no enmascaren ningún detalle importante. En
las técnicas de análisis estructurado el punto débil es que existe una brecha entre el modelo de
análisis y el modelo de diseño del sistema. En los sistemas orientados a objetos es posible conectar
todas las vistas casi independientes de un sistema en un todo semántico.
4. UN ÚNICO MODELO O VISTA NO ES SUFICIENTE. CUALQUIER SISTEMA NO TRIVIAL SE
ABORDA MEJOS A TRAVÉS DE UN PEQUEÑO CONJUNTO DE MODELOS CASI
INDEPENDIENTES CON MÚLTIPLES PUNTOS DE VISTA. Significa tener modelos que podemos
construir y estudiar separadamente, pero aún así, están interrelacionados.

Modelado orientado a objetos


En el desarrollo de software hay varias formas de enfocar un modelo. Las dos formas más comunes son la
perspectiva algorítmica y la perspectiva orientada a objetos.
Perspectiva algorítmica basada en:
• Procedimientos.
• Funciones.
Perspectiva orientad a objetos basada en:
• Objetos.
• Clases.
Definición de objeto:
• Tiene una identidad, puede distinguirse de otros objetos.
• Tiene un estado, datos asociados a él.
• Tiene un comportamiento, se le pueden hacer cosas a él y a su vez él le puede hacer cosas a otros
objetos.
Definición de clase:
• Es un descripción de un conjunto de objetos que son lo suficientemente similares para compartir
una especificación.
Del paradigma de orientación a objetos se derivan varias implicaciones ¿cuál es la estructura de una buena
arquitectura orientada a objetos? ¿qué artefactos debería crear el proyecto? ¿quién debería crearlos?
¿cómo deberían medirse?
VISUALIZAR, ESPECIFICAR, CONSTRUIR y DOCUMENTAR sistemas orientados a objetos es
exactamente el propósito de UML.

Para ver trabajos similares o recibir información semanal2sobre nuevas publicaciones, visite www.monografias.com
Presentación de UML
UML es un lenguaje estándar para escribir planos de software. Se usa para visualizar, especificar, construir
y documentar los artefactos de un sistema que involucre una gran cantidad de software. Es apropiado para
todo tipo de desarrollo software. Es muy expresivo, sirve para desarrollar y luego desplegar tales sistemas.
Tiene tres elementos principales:
• Bloques básicos de construcción de UML.
• Reglas que dictan cómo pueden combinarse esos bloques.
• Algunos mecanismos comunes.
Es un lenguaje por lo tanto, es tan sólo una parte de un método de desarrollo de software. Es
independiente, pero para utilizarlo óptimamente se lo debería usar en un proceso dirigido por los casos de
uso, centrado en la arquitectura, iterativo e incremental.
VISIÓN GENERAL DE UML
UML es un lenguaje para:
• Visualizar.
• Especificar.
• Construir.
• Documentar.
Los artefactos de un sistema con gran cantidad de hardware.
UML ES UN LENGUAJE
Un lenguaje proporciona vocabulario y las reglas para combinar palabras de ese vocabulario con el objetivo
de posibilitar la comunicación. En un lenguaje de modelado su vocabulario y reglas se centran en la
representación conceptual y física de un sistema. UML es un lenguaje estándar para los planos software.
Proporciona una comprensión del sistema. Nunca es suficiente un único modelo, para comprender cualquier
cosa se necesitan múltiples modelos conectados entre sí. Para sistemas con gran cantidad de software, se
requiere un lenguaje que abarque las diferentes vistas de la arquitectura de un sistema conforme evoluciona
a través del ciclo de vida del desarrollo de software. El vocabulario y las reglas de un lenguaje como UML
indican cómo crear y leer modelos bien formados pero no dicen qué modelos se deben crear ni cuándo se
deberían crear. Esta es la tarea del proceso de desarrollo de software. Un proceso bien definido guiará a
sus usuarios al decidir qué artefactos producir, qué actividades y qué personal se emplea para crearlos y
gestionarlos, y cómo usar esos artefactos para medir y controlar el proyecto de forma global.
UML ES UN LENGUAJE PARA VISUALIZAR
Un programador a veces realiza el modelado mentalmente, es decir, avanza en el desarrollo codificando
simultáneamente. Se puede vales de bosquejos de ideas, pero no son entendibles fácilmente por otros ó
simplemente este sujeta a errores, a menos que haya personas implicadas que hablen el mismo lenguaje.
El código fuente del sistema no es bagaje suficiente para interpretar un sistema y surgen lenguajes de texto
y gráficos como UML.
UML ES UN LENGUAJE PARA ESPECIFICAR
Especificar es construir modelos precisos, no ambiguos y completos. UML cubre la especificación de todas
las decisiones de análisis, diseño e implementación que deben realizarse al desarrollar y desplegar un
sistema con gran cantidad de software.
UML ES UN LENGUAJE PARA CONSTRUIR
No es un lenguaje de programación visual , pero sus modelos pueden conectarse de forma directa a un gran
variedad de lenguajes de programación. Java, C++, Visual Basic, tablas en una base de datos relacional.
Las cosas que se expresan mejor se gráficamente se expresan en UML mientras que las que se expresan
mejor textualmente se plasman en el lenguaje de programación. Esto permite la ingeniería directa, es decir
la generación de código a partir de un modelo UML como también la ingeniería inversa que consiste en
escribir código a partir de una implementación, ésta requiere de herramientas que la soporten y de la
intervención humana. UML es lo suficientemente expresivo y no ambiguo para permitir la ejecución directa
de modelos, la simulación de sistemas y la coordinación de sistemas de ejecución.
UML ES UN LENGUAJE PARA DOCUMENTAR
Una organización de software, además de código ejecutable, debe producir toda clase de artefactos como:
• Requisitos.
• Arquitectura.
• Diseño.
• Código fuente.
• Planificación de proyectos.
• Pruebas.

Para ver trabajos similares o recibir información semanal3sobre nuevas publicaciones, visite www.monografias.com
• Prototipos.
• Versiones.
Estos son críticos para el control, la medición y comunicación que requiere un sistema durante sus
desarrollo y después de su despliegue. UML cubre la documentación de la arquitectura y todos sus detalles.
UML proporciona un lenguaje para expresar requisitos y pruebas y para modelar las actividades de
planificación de proyectos y gestión de versiones.
¿DÓNDE PUEDE UTILIZARSE UML?
Sistemas con gran cantidad de software tales como:
• Sistemas de información empresarial.
• Bancos y servicios financieros.
• Telecomunicaciones.
• Transporte.
• Defensa / industria aeroespacial.
• Comercio.
• Electrónica médica.
• Ámbito científico.
• Servicios distribuidos basados en la Web.
Otras áreas:
• Flujos de trabajo (workflows) en el sistema jurídico.
• Estructura y comportamiento de un sistema de vigilancia médica de un enfermo.
• Diseño de hardware.
UN MODELO CONCEPTUAL DE UML
Para entenderlo se requiere entender:
• Bloques básicos de construcción.
• Reglas que dictan cómo se pueden combinar estos bloques básicos.
• Mecanismos comunes.
BLOQUES BÁSICOS DE UML
1. Elementos: abstracciones que constituyen los ciudadanos de primera clase en un modelo.
2. Relaciones: ligan estos elementos entre sí.
3. Diagramas: agrupan colecciones interesantes de elementos.

Elementos en UML
1. elementos estructurales.
2. elementos de comportamiento.
3. elementos de agrupación.
4. elementos de anotación.
Estos son los bloques básicos de construcción orientados a objetos.
ELEMENTOS ESTRUCTURALES
Son los nombres de los modelos UML. Son las partes estáticas de un modelo, representan conceptos ó
cosas materiales de un modelo. Se lo denomina CLASIFICADORES.
Clase: es una descripción de un conjunto de métodos que comparten os mismos atributos, operaciones,
relaciones y semántica. implementa una ó más interfaces.

Para ver trabajos similares o recibir información semanal4sobre nuevas publicaciones, visite www.monografias.com
Interfaz: es una colección de operaciones que especifican un servicio de una clase o componente. Describe
el comportamiento visible externamente de ese elemento.

Colaboración: define una interacción y es una sociedad de roles y otros elementos que colaboran para
proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de sus elementos.
Tiene una dimensión estructural y otra de comportamiento.

Caso de uso: es un descripción de un conjunto de secuencias de acciones que ejecuta un sistema y que
produce un resultado observable de interés para un actor particular. Se utiliza para estructurar los aspectos
de comportamiento de un modelo. Es realizado por una colaboración.

Para ver trabajos similares o recibir información semanal5sobre nuevas publicaciones, visite www.monografias.com
Clase activa: es una clase cuyos objetos tienen uno ó más procesos ó hilos de ejecución y, por lo tanto,
pueden dar origenes a actividades de control. Es igual que una clase, excepto en que sus objetos
representan elementos cuyo comportamiento es concurrente con otros elementos.

Componentes: es un parte modular del diseño del sistema que oculta su implicación tras un conjunto de
interfaces externas.

Los elementos artefactos y nodos representan elementos físicos mientras que los seis elementos anteriores
representan cosas conceptuales ó lógicas.

Artefacto: es una parte física y reemplazable de un sistema que tiene información física.

Nodo: es un elemento físico que existe en tiempo de ejecución y representa un recurso computacional, que
por lo general dispone de algo de memoria y, con frecuencia capacidad de almacenamiento.

Para ver trabajos similares o recibir información semanal6sobre nuevas publicaciones, visite www.monografias.com
ELEMENTOS DE COMPORTAMIENTO
Interacción: comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un
contexto particular, para alcanzar un propósito específico.

Máquina de estados: es un comportamiento que especifica las secuencias de estados por las que pasa un
objeto ó una interacción durante su vida en respuesta a eventos, junto con sus reacciones a estos eventos.

Actividad: es un comportamiento que especifica la secuencia de pasos que ejecuta un proceso


computacional.

Semánticamente, estos elementos están conectados normalmente a diversos elementos estructurales,


principalmente clases, colaboraciones y objetos.
ELEMENTOS DE AGRUPACIÓN
Son las parte organizativas de los modelos UML. Son cajas en las que puede descomponerse un modelo.
Paquetes: es un mecanismo de propósito general para organizar el propio diseño. Un paquete es puramente
conceptual, sólo existe en tiempo de desarrollo.

ELEMENTOS DE ANOTACIÓN
Son las partes explicativas de un modelo UML. Son comentarios que se pueden aplicar para describir,
clarificar y hacer observaciones sobre cualquier elemento de un modelo.

Para ver trabajos similares o recibir información semanal7sobre nuevas publicaciones, visite www.monografias.com
RELACIONES EN UML
1. dependencia.
2. asociación.
3. generalización.
4. realización.
Son los bloque básicos de construcción para relaciones en UML.

Dependencia: es un relación semántica entre dos elementos, en la cual un cambio a un elemento puede
afectar a la semántica del otro elemento.

Asociación: es una relación estructural entre clases que describe un conjunto de enlaces, los cuales son
conexiones entre objetos que son instancias de clases.

Generalización: es una relación de especialización de especialización / generalización en la cual el elemento


especializado (el hijo) se basa en la especificación del elemento generalizado (el padre).

Realización: es una relación semántica entre clasificadores, en donde un clasificador especifica un contrato
que otro clasificador cumplirá.

Diagramas en UML
Es la representación gráfica de un conjunto de elementos visualizado la mayoría de las veces como conexo
de nodos (elementos) y arcos (relaciones). Se construye para visualizar un mismo sistema desde distintos
puntos de vista.
Tipos de diagrama:
1. diagrama de clases.
2. diagrama de objetos.
3. diagrama de componentes.
4. diagrama de estructura compuesta.
5. diagrama de casos de uso.
6. diagrama de secuencia.
7. diagrama de comunicación.
8. diagrama de estados.
9. diagrama de actividades.
10. diagrama de despliegue.
11. diagrama de paquetes.
12. diagrama de tiempos.
13. diagrama de visión global de interacciones.

Para ver trabajos similares o recibir información semanal8sobre nuevas publicaciones, visite www.monografias.com
Diagrama de clases: muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones.
Diagrama de objetos: muestra un conjunto de objetos y sus relaciones.
Diagrama de componentes: representa la encapsulación de una clase, junto con sus interfaces, puertos y
estructura interna.
Diagrama de casos de uso: muestra una interacción que consta de un conjunto de objetos ó roles,
incluyendo los mensajes que pueden ser enviados entre ellos.
Diagrama de estados: muestra una máquina de estados que consta de estados, transiciones, eventos y
actividades.
Diagrama de actividades: muestra la estructura de un proceso u otra computación como el flujo de control y
datos paso a paso en la computación.
Diagrama de despliegue: muestra la configuración de nodos de procesamiento en tiempo de ejecución y los
artefactos que residen en ellos.
Diagrama de artefactos: muestra los constituyentes físicos de un sistema en el computador.
Diagrama de paquetes: muestra la descomposición del propio modelo en unidades organizativas y sus
dependencias.
Diagrama de tiempos: es un diagrama de interacción que muestra los tiempos reales entre diferentes
objetos ó roles.

Reglas de UML
Son reglas sintácticas y semánticas:
• nombres: cómo llamar a los elementos, relaciones y diagramas.
• Alcance: el contexto que da un significado específico a un nombre.
• Visibilidad: cómo se pueden ver y utilizar esos nombres por otros.
• Integridad: cómo se relacionan apropiada y consistentemente unos elementos con otros.
• Ejecución: qué significa ejecutar ó simular un modelo dinámico.
Los modelos construidos durante el desarrollo de un sistema con gran cantidad de software tiende a
evolucionar por lo que además de modelos bien formados hay otros que pueden ser:
• Abreviados.
• Incompletos.
• Inconsistentes.
Su solución es considerar las cuestiones más importantes de análisis, diseño e implementación.

Mecanismos comunes en UML


Se aplican en forma consistente a través de todo el lenguaje.
1. especificaciones.
2. adornos.
3. divisiones comunes.
4. mecanismos de extensibilidad.
Especificaciones: detrás de un icono de clase hay una especificación que proporciona el conjunto completo
de atributos, operaciones y comportamiento que incluye la clase. La notación gráfica de UML se utiliza para
visualizar un sistema, la especificación de UML se utiliza para expresar los detalles del sistema.
Proporcionar una base semántica que incluye a todos los modelos de un sistema y cada parte está
relacionado con las otras de manera consistente.
Adornos: se pueden incluir detalles como abstracción, visibilidad de sus atributos y operaciones.

Para ver trabajos similares o recibir información semanal9sobre nuevas publicaciones, visite www.monografias.com
Divisiones comunes.
• División entre clase y objeto: una clase es una abstracción, un objeto es una manifestación concreta
de esa abstracción.

• División entre interfaz e implementación: una interfaz declara un contrato y una implementación re
presenta una realización concreta de ese contrato.

• División entre tipo y rol: el tipo declara la clase de una entidad como un objeto, un atributo, un
parámetro. Un rol describe el significado de una entidad en un contexto, como una clase, un
componente ó una colaboración.

MECANISMOS DE EXTENSIBILIDAD
1. estereotipos.
2. valores etiquetados.
3. restricciones.
Estereotipo: extiende el vocabulario UML.
Valor etiquetado: extiende las propiedades de un estereotipo permitiendo añadir nueva información en la
especificación de ese estereotipo.
Restricción: extiende la semántica de un bloque de construcción.

Para ver trabajos similares o recibir información semanal10


sobre nuevas publicaciones, visite www.monografias.com
Arquitectura
Es el conjunto de decisiones significativas sobre:
• la organización de un sistema software.
• La selección de elementos estructurales y sus interfaces a través de los cuales se construye el
sistema.
• Su comportamiento, cómo se especifica en las colaboraciones entre esos elementos.
• La composición de esos elementos estructurales y de comportamiento en subsistemas
progresivamente más grandes.
• El estilo arquitectónico que guía esta organización.
La arquitectura del software no tiene que ver solamente con la estructura y el comportamiento, sino también
con el uso, la funcionalidad, el rendimiento, la capacidad de adaptación, la reutilización, la capacidad de ser
comprendido, las restricciones económicas y tecnológicas y los compromisos entre alternativas, así como
los aspectos estéticos.

Vista de casos de uso: comprende los casos de uso que describen el comportamiento del sistema tal y
como es percibido por los usuarios finales, analistas y encargados de las pruebas.
Vista de diseño: comprende las clases, interfaces y colaboraciones que forman el vocabulario del problema
y su solución. Esta vista soporta principalmente los requisitos funcionales del sistema, entendiendo por ellos
los servicios que el sistema debería proporcionar a sus usuarios finales.

Para ver trabajos similares o recibir información semanal11


sobre nuevas publicaciones, visite www.monografias.com
Vista de interacción: muestra el flujo de control entrre sus diversas partes, incluyendo los posibles
mecanismos de concurrencia y sincronización.
Vista de implementación: comprende los artefactos que se utilizan para ensamblar y poner en producción el
sistema físico.
Vista de despliegue: contiene los nodos que forman la topología hardware sobre la que se ejecuta el
sistema.

Ciclo de vida del desarrollo de software


UML es bastante independiente del proceso, sin embargo lo ideal es un proceso que sea:
• Dirigido por los casos de uso.
• Centrado en la arquitectura.
• Iterativo e incremental.
Dirigido por los casos de uso: se utilizan como un artefacto básico para establecer el comportamiento
deseado del sistema, para verificar y validar la arquitectura del sistema, para las pruebas y para la
comunicación entre las personas involucradas en el proyecto.
Centrado en la arquitectura: la arquitectura del sistema se utiliza como un artefacto básico para conceptuar,
construir, gestionar y hacer evolucionar el sistema en desarrollo.
Iterativo: es aquel que involucra la gestión de un flujo de versiones ejecutables.
Incremental: es aquel que implica la integración continua de la arquitectura del sistema para producir esas
versiones, donde cada nuevo ejecutable incorpora mejoras incrementales sobre los otros. En conjunto, un
proceso iterativo e incremental está dirigido por el riesgo, lo que significa que cada nueva versión se
encarga de atacar y reducir los riesgos más significativos del proyecto.

concepción: es la primera fase del proceso, cuando la idea principal para el desarrollo se lleva al punto de
estar suficientemente bien fundamentada para garantizar la entrada en la fase de elaboración.
Elaboración: es la segunda fase del proceso, cuando se definen los requisitos del producto y su
arquitectura.
Construcción: es la tercer fase del proceso, cuando el software se lleva desde una base arquitectónica
ejecutable hasta su disponibilidad para la comunidad de usuarios. Aquí los requisitos del sistema y los
criterios de evaluación son constantemente reexaminados frente a las necesidades del proyecto.
Transición: es la cuarta fase del proceso, cuando el software es puesto en las manos de la comunidad de
usuarios.
El ciclo de vida del desarrollo de software puede caracterizarse por involucrar un flujo continuo de versiones
ejecutables de la arquitectura del sistema con correcciones entre ellas , después de cada iteración.

Para ver trabajos similares o recibir información semanal12


sobre nuevas publicaciones, visite www.monografias.com
Autor:
Alejandro Pérez Cuvit
alejandroperezcuvit@gmail.com

Para ver trabajos similares o recibir información semanal13


sobre nuevas publicaciones, visite www.monografias.com

Vous aimerez peut-être aussi