Documente Academic
Documente Profesional
Documente Cultură
La importancia de modelar
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.
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.
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.
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.
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.
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.
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.
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.