0% encontró este documento útil (0 votos)
66 vistas13 páginas

Introducción a la Ingeniería del Software

El documento describe conceptos clave de ingeniería de software como ingeniería, tecnología y software. Explica que la ingeniería de software es la aplicación sistemática y cuantificable del desarrollo, operación y mantenimiento de software. También describe varios modelos de procesos de software como el modelo en cascada, incremental y evolutivo. Finalmente, explica que la modelación es importante para identificar requerimientos, evaluar viabilidad y asignar funciones antes del desarrollo de software.

Cargado por

Marcelo Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
66 vistas13 páginas

Introducción a la Ingeniería del Software

El documento describe conceptos clave de ingeniería de software como ingeniería, tecnología y software. Explica que la ingeniería de software es la aplicación sistemática y cuantificable del desarrollo, operación y mantenimiento de software. También describe varios modelos de procesos de software como el modelo en cascada, incremental y evolutivo. Finalmente, explica que la modelación es importante para identificar requerimientos, evaluar viabilidad y asignar funciones antes del desarrollo de software.

Cargado por

Marcelo Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

Conceptos de Ingeniería del Software (IS) (6Cap1)

 Ingeniería: Conjunto de conocimientos orientados a la invención y utilización de


técnicas para el aprovechamiento de recursos naturales o para la actividad
industrial.
 Tecnología: Conjunto de teorías y técnicas que permiten el aprovechamiento
practico del conocimiento científico.
 Software: Conjunto de instrucciones que cuando se ejecutan proporcionan las
características, función y desempeño buscados, también podrían ser
estructuras de datos que permiten que los programas manipulen en forma
adecuada la información.

1.1 La Ingeniería del Software:

Concepto: Según la IEEE en 1993, es la aplicación de un enfoque sistemático,


disciplinado y cuantificable al desarrollo, operación y mantenimiento del software. Ofrece
métodos o técnicas para desarrollar y mantener software de calidad que resuelven problemas
de todo tipo, y trata áreas muy diversas de la informática y de las ciencias computacionales.
Objetivos:
 Especificar, documentar, visualizar el proyecto antes de escribir una línea de
código.
 Servir de enlace entre quien tiene la idea y quien la lleva a cabo.
 Articular soluciones en base a la comprensión de problemas (Captura de
requerimientos).
 Permitir la exploración de alternativas de solución.
 Mejorar la calidad de los productos de software.
 Aumentar la productividad del proceso.
 Definir una disciplina que garantice la producción y mantenimiento del software
desarrollado.

1.2 Complejidad del Software (5Cap1)

La complejidad del software esta relacionada directamente con el tamaño de los


sistemas de este. Cuando mas grandes los sistemas, mayor es su complejidad. Se pueden
hablar de 2 factores principales que causan esta complejidad:

 Complejidad del problema: Tiene que ver con la funcionalidad que el sistema
debe brindar. Cuando mayor sea el numero de requerimientos, mayor será el
tamaño del sistema, creando sistemas mas difíciles de comprender y
desarrollar.
 Complejidad de la solución: Tiene que ver con el disenho del sistema, el cual
debe satisfacer la funcionalidad del problema. Cuando la complejidad del
problema es grande y difícil de reducir, es muy importante reducir la otra fuente
de complejidad, el de la solución o sea, el software.

1.3 Costos (Directo, Indirecto, Ocultos), Complejidad

Costo Directo: para adquirir el software, el cual incluye el software empacado, se puede
adquirir en un negocio de computación o por internet. Y el software a la medida, requiere un
desarrollo especializado y adaptado a las necesidades particulares de una empresa.
Costo Indirecto: para utilizar el software incluye aspectos como la capacitación, instalación,
soporte técnico, así como otros costos que por lo general se pueden conocer de antemano.

Costo oculto: ocasionado principalmente por las fallas del software. A diferencia de los costos
directos e indirectos, los cuales son previsibles, los costos ocultos por definición son difíciles de
prever. Vale la pena destacar que el tema de costos ocultos afecta principalmente a los
sistemas conocidos como de misión critica (aquellos sistemas críticos para la operación
correcta de una empresa).

1.4 Proceso de Software (5Cap3)

Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a


crearse algún producto del trabajo. Una actividad busca lograr un objetivo amplio (por ejemplo,
comunicación con los participantes) y se desarrolla sin importar el dominio de la aplicación,
tamaño del proyecto, complejidad del esfuerzo o grado de rigor con el que se usará la
ingeniería de software.

1.5 Modelo de Proceso, Modelos Clásicos (Cascada, Incremental, Evolutivo, Espiral),


Modelos contemporáneos

Modelo de Proceso: Un modelo de proceso de software define como solucionar la


problemática del desarrollo de sistemas de software. Para desarrollar el software se requiere
resolver ciertas fases de su proceso, las cuales se conocen en su conjunto como el ciclo de
vida del desarrollo de software. Un modelo de procesos debe considerar una variedad de
aspectos. Ej: conjuntos de personas, estructuras organizacionales, reglas, políticas,
actividades, componentes de softwares, metodologías y herramientas utilizadas.

Modelos Clásicos:

Cascada: El modelo de la cascada, a veces llamado ciclo de vida clásico, sugiere un enfoque
sistemático y secuencial para el desarrollo del software, que comienza con la especificación de
los requerimientos por parte del cliente y avanza a través de planeación, modelado,
construcción y despliegue, para concluir con el apoyo del software terminado.

Entre los problemas que en ocasiones surgen al aplicar el modelo de la cascada se encuentran
los siguientes:

Es raro que los proyectos reales sigan el flujo secuencial propuesto por el modelo. Aunque el
modelo lineal acepta repeticiones, lo hace en forma indirecta. Como resultado, los cambios
generan confusión conforme el equipo del proyecto avanza.

A menudo, es difícil para el cliente enunciar en forma explícita todos los requerimientos. El
modelo de la cascada necesita que se haga y tiene dificultades para aceptar la incertidumbre
natural que existe al principio de muchos proyectos.
El cliente debe tener paciencia. No se dispondrá de una versión funcional del (de los)
programa(s) hasta que el proyecto esté muy avanzado. Un error grande sería desastroso si se
detectara hasta revisar el programa en funcionamiento.

Incremental: Cuando se utiliza un modelo incremental, es frecuente que el primer incremento


sea el producto fundamental. Es decir, se abordan los requerimientos básicos, pero no se
proporcionan muchas características suplementarias (algunas conocidas y otras no). El modelo
incremental aplica secuencias lineales en forma escalonada a medida que avanza el calendario
de actividades. Cada secuencia lineal produce “incrementos” de software susceptibles de
entregarse de manera parecida a los incrementos producidos en un flujo de proceso evolutivo.
Ej: un software para procesar textos que se elabore con el paradigma incremental quizá
entregue en el primer incremento las funciones básicas de administración de archivos, edición y
producción del documento; en el segundo dará herramientas más sofisticadas de edición y
producción de documentos; en el tercero habrá separación de palabras y revisión de la
ortografía; y en el cuarto se proporcionará la capacidad para dar formato avanzado a las
páginas.

Evolutivo: Los modelos evolutivos son iterativos. Se caracterizan por la manera en la que
permiten desarrollar versiones cada vez más completas del software. Para ello se suele hacer
prototipos. El paradigma de hacer prototipos comienza con comunicación. Usted se reúne con
otros participantes para definir los objetivos generales del software, identifica cualesquiera
requerimientos que conozca y detecta las áreas en las que es imprescindible una mayor
definición.

El ideal es que el prototipo sirva como mecanismo para identificar los requerimientos del
software. Si va a construirse un prototipo, pueden utilizarse fragmentos de programas
existentes o aplicar herramientas (por ejemplo, generadores de reportes y administradores de
ventanas) que permitan generar rápidamente programas que funcionen.

Espiral: El modelo de desarrollo espiral es un generador de modelo de proceso impulsado por


el riesgo, que se usa para guiar la ingeniería concurrente con participantes múltiples de
sistemas intensivos en software. Tiene dos características distintivas principales. La primera es
el enfoque cíclico para el crecimiento incremental del grado de definición de un sistema y su
implementación, mientras que disminuye su grado de riesgo. La otra es un conjunto de puntos
de referencia de anclaje puntual para asegurar el compromiso del participante con soluciones
factibles y mutuamente satisfactorias.

Modelos Contemporáneos: El modelo de desarrollo concurrente, en ocasiones llamado


ingeniería concurrente, permite que un equipo de software represente elementos iterativos y
concurrentes de cualquiera de los modelos de proceso descritos en este capítulo. Ej: la
actividad de modelado definida para el modelo espiral se logra por medio de invocar una o más
de las siguientes acciones de software: hacer prototipos, análisis y diseño.
El modelado concurrente es aplicable a todos los tipos de desarrollo de software y proporciona
un panorama apropiado del estado actual del proyecto. En lugar de confinar las actividades,
acciones y tareas de la ingeniería de software a una secuencia de eventos, define una red del
proceso.

1.6 Por qué modelar? (2Cap1) (4Cap2)

Un modelo se expresa en un medio adecuado para el trabajo. Ej: Los modelos de construcción
pueden dibujarse en papel, las figuras 3D son construidas con cartón y papel cartón, o las
ecuaciones de elementos finitos en un computador. Un modelo de construcción de un edificio
muestra la apariencia del edificio, pero también puede usarse para hacer ingeniería y cálculo
de coste.

- Objetivos del Análisis de Sistemas

Identificar las necesidades o requerimientos del cliente

Evaluar la vialidad del sistema

Realizar análisis técnico

Realizar análisis económico

Asignar funciones:

Al software

Al hardware

A las personas

A la base de datos (Software)

A otros elementos del sistema

Establecer restricciones (costo y tiempo)

Crear una definición del sistema que sea la base para yodo el trabajo posterior de ingeniería

- Niveles de complejidad de los proyectos

- Qué es un modelo?. Importancia de Modelar

Un modelo es una representación de algo en el mismo u otro medio. El modelo capta los
aspectos importantes de lo que estamos modelando, desde cierto punto de vista y simplifica u
omite el resto. Un modelo de un sistema software está construido en un lenguaje de modelado,
como UML. La importancia de modelar es el modelo pretende ser más fácil de usar para ciertos
propósitos que el sistema final.
- Para qué sirven los modelos?

Para capturar, enumerar los requisitos y el dominio del problema

Para pensar en el diseño de un sistema

Para capturar decisiones del diseño a partir de los requisitos

Para generar Productos aprovechables para el trabajo

Para organizar, encontrar, filtrar, examinar y corregir información

Para explorar económicamente múltiples soluciones

Para comprender sistemas complejos

- Principios del Modelado

La elección de que modelos crear tiene una profunda influencia sobre cómo se plantea un
problema y la solución

Todo modelo puede ser expresado a diferentes niveles de precisión

Los modelos están ligados a la realidad

Un único modelo no es suficiente. Cualquier sistema no trivial se aborda a través de un


pequeño conjunto de modelos casi interdependientes

- Niveles del Modelado

Guías al proceso de pensamiento: Los modelos de alto nivel construidos al principio de un


proyecto, sirven para enfocar el proceso del pensamiento de los participantes y destacar
determinadas opciones. Capturan requisitos y representan un punto de partida hacia un diseño
del sistema.

Especificaciones abstractas de la estructura esencial de un sistema: El propósito de los


modelos abstractos es conseguir que los aspectos de alto nivel estén correctos, antes de
abordar los de los detalles más localizados. Estos modelos se piensan para evolucionar en los
modelos finales mediante un proceso cuidadoso que garantice que el sistema final implementa
correctamente el objetivo de los modelos anteriores.

Especificaciones completas de un sistema final: Un modelo de implementación incluye


suficiente información para construir el sistema. Debe incluir la semántica lógica del sistema y
los algoritmos, la estructura de datos y los mecanismos que aseguran funcionamiento
apropiado.
Ejemplos de sistema típicos o posibles: Los ejemplos de las estructuras de datos típicas,
pueden ayudar a las personas a intentar entender una situación complicada. Se deben utilizar
con un cierto cuidado.

Descripciones completas o parciales de sistemas: Un modelo puede ser una descripción


completa de un solo sistema. Se organiza como un conjunto de unidades distintas, discretas de
las cuales se puede almacenar y manipular por separado, como parte de la descripción
completa.

2. Revisión de Conceptos Básicos de Orientación a Objetos (1Cap19) (4CapEnciclopedia)


(5Cap2)

La POO define una estructura de más alto nivel llamada "objeto" que ofrece dos ventajas sobre
la programación tradicional:

 Permitir al programador que organice su programa de acuerdo con abstracciones de


más alto nivel, siendo más cercanas a los pensamientos de la gente. Es decir, los
objetos son las unidades de representación de las aplicaciones. Ej: Cuentas de banco,
reserva de vuelos, etc.

 Los datos globales desaparecen junto con las funciones (interna) de los objetos. Por lo
tanto, cualquier cambio en la estructura de los datos solo debería de afectar a las
funciones definida en ese mimo objeto y no en los demás.

2.1 Abstracción, Herencia, Polimorfismo, Encapsulamiento

Polimorfismo: Se definen múltiples funciones con nombres e interfaces similares en distintas


clases. Las funciones son implementadas de manera diferente en las clases. El polimorfismo es
útil para extender la funcionalidad del sistema al definir nuevas clases aun desconocida al
momento de especificarlo.

Encapsulación: Es el mecanismo básico de la POO para ocultar los detalles internos del
objeto de los demás objetos. Permite distinguir entre la interface del objeto, es decir, los
aspectos del objeto conocido externamente, y su implementación, es decir, sus aspectos
conocidos internamente.

Abstracción: Consiste en elevar el nivel de las representaciones necesarias para un sistema


de software, de manera que se reduzcan en términos de datos y funciones. En la POO,
representa un sistema mediante objetos, omitiendo los detalles correspondientes a datos y
funciones.
Herencia: es un concepto de la POO. El cual es un mecanismo que permite derivar una clase a
otra clase. En otras palabras, tendremos unas clases que serán hijos, y otras clases que serán
padres.

Las clases hijas pueden utilizar tanto sus métodos y propiedades como de la clase padre,
siempre que su modificador de acceso lo permita.

2.2 Clases y Objetos, Atributos, Mensajes, (Operaciones, Métodos, Servicios)

 Clases: Describe un grupo de objetos con estructura y comportamiento común. Una


clase es como un molde en el cual se crean múltiples objetos. Ej: Universidad,
Persona, Compañía, etc.

 Objetos: Son las entidades básicas del modelo de objeto. Los objetos son más que
simples cosas que se pueden arrojar. Son sustantivos, es decir, cualquier cosa que
incorpore una estructura y un comportamiento o acción. Ej: Pelota, Libro, Elefante,
Mesa (concreto), viaje (abstracto).

 Atributos: Define la estructura de una clase y de sus correspondientes objetos. El


atributo define el valor de un dato para todos los objetos perteneciente a una clase.
Deben ser únicos. Ej: Nombre, edad, peso - clase Persona.

 Mensajes: Son llamados a métodos de un objeto en particular, Por convenio, el objeto


que envía la petición se denomina emisor y el objeto que recibe la petición se
denomina receptor. Como todo objeto necesita de unos atributos, es por eso que el
envío de estos soporta todas las interacciones que se realicen en dicho objeto. Para
poder enviar y recibir mensajes, los objetos no forman parte del mismo proceso, ni de
una máquina. Ej: Jugar(), Programar(), Llevar().

 Operaciones: Son funciones o transformaciones que se aplican a todos los objetos de


una clase particular. Puede ser una acción ejecutada por el objeto o sobre objeto.
Deben ser únicas dentro una misma clase. No se debe utilizar el mismo nombre que
tengan un significado totalmente diferente. Ej: Arrojar, atrapar, inflar, patear - clase
pelota. Abrir, cerrar, ocultar - clase ventana.

 Métodos: Se utiliza para distinguir la operación como un concepto de alto nivel de la


propia implementación de la operación, algo correspondiente a un concepto de más
bajo nivel. Ej: Imprimir - clase Archivo. Se puede implementar con diferentes métodos.
Imprimir - clase Dispositivo, el cual manda el archivo a la impresora.
3. El Lenguaje Unificado de Modelado (UML)

Es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y


documentar artefactos de un sistema de software. Captura decisiones y conocimiento sobre los
sistemas que se deben construir. Se usa para entender, diseñar, hojear, configurar, mantener y
controlar la información sobre tales sistemas. El UML capta información sobre la estructura
estática y el comportamiento dinámico de un sistema.

Ejemplos de utilización: Sistemas de información de todo tipo, Aplicaciones WEB, Sistemas de


Tiempo Real, Relacionados con Medicina - Electrónica - etc., Procesos de Negocios.

3.1 Una Herramienta para Visualizar, Especificar, Construir y Documentar.

VISUALIZAR

No siempre es fácil explicar ciertos aspectos de un sistema en forma escrita. Antes de


construir debemos tener un bosquejo de lo que vamos a hacer.

UML permite modelar proyectos con un lenguaje Estándar. UML permite comunicarse
con otros actores sobre temas relativos a un proyecto.

ESPECIFICAR

Permite construir modelos precisos, que no sean ambiguos, pero si completos,


mostrando el proyecto desde diferentes ópticas.

UML cubre todas las decisiones de análisis, diseño e implementación para desarrollar,
implementar o desplegar sistemas.

CONSTRUIR

NO es lenguaje de programación. Sus modelos pueden relacionarse o corresponderse


con códigos de programas.

Existen muchas herramientas y lenguajes que lo soportan.

Esta correspondencia permite "Ingeniería de Ida y Vuelta":

- Ingeniería Directa, Generar código a partir del UML

- Ingeniería Inversa, Generar modelos de UML a partir de una implementación.


DOCUMENTAR

Una organización de Sistemas(TI) produce muchos artefactos.

UML cubre la documentación de:

- Arquitectura del Sistema con todos sus detalles

- Requisitos y Pruebas

- Planificación del Proyecto

- Gestión de Versiones

3.2 Situación de Partida, Historia, Inconvenientes, Perspectivas (2Cap2)

Los métodos de desarrollo para los lenguajes de programación tradicionales, como Cobol y
Fortran, emergieron en los años 70 y se volvieron ampliamente difundidos en los 80. Entre ellos
se encontraba el diseño el Análisis estructurado y el diseño estructurado (Yourdon-79) y sus
variantes como Diseño estructurado de tiempo real (Ward-85).

Estos métodos fueron desarrollados por: Constantine, DeMarco, Mellor, Ward, Yourdon, etc.

Estos métodos alcanzaron cierta penetración en el área de los grandes sistemas, como
proyectos contratados por el gobierno para los campos aeroespacial y de defensa. En los
cuales se necesitaba de realizar un proceso de desarrollo organizado y que contenga una
amplia documentación del diseño e implementación del sistema. Los resultados no siempre
eran buenos pero los métodos incluían buenas ideas que fueron usadas eficientemente en
algunos casos para la construcción de grandes sistemas.

El primer lenguaje que es reconocido como orientado a objetos es Simula 67 (desarrollado en


1967). Este lenguaje no tuvo un significativo seguimiento, pero influyó en los lenguajes
orientados a objetos que se fueron desarrollando posteriormente.

Primeros métodos de desarrollo orientado a objetos:

- Shlaer/Mellor -> [Shlaer-88]

- Coad/Yourdon -> [Coad-91]

- "Libros" de Booch -> [Booch-91]

Primeros libros de diseño de lenguajes de programación:

- Goldberg/Robson -> [Golderg-83]

- Cox -> [Cox-86]

- Meyer -> [Meyer-88]

La combinación de estos, iniciaron el campo de la metodología orientado a objetos. La primera


fase se completó al final de 1990. El libro de Objectory [Jacobson-92] fue publicado ligeramente
después, basado en publicaciones anteriores. Este libro tomo un acercamiento un poco
diferente con su enfoque sobre los casos de uso y el proceso de desarrollo.

Durante los siguientes 5 años, fueron lanzados más libros de metodologías orientada a objetos,
donde se añadían nuevos conceptos útiles, pero por lo general había gran similitud entre los
conceptos propuestos por los diferentes actores. Surgió un núcleo de conceptos comunes,
junto con una gran variedad de conceptos aceptados por uno o dos autores, pero no utilizados
ampliamente, esto creaba discrepancias entre los métodos que hacían que la comparación
detallada sea algo capciosa.

ESFUERZO DE UNIFICACION

Un ejemplo destacable de unificación de los conceptos entre métodos fue Fusion por Coleman
y sus colegas [Coleman-94] el cual incluyó conceptos de OMT, Booch y CRC.

El primer intento exitoso de combinar y reemplazar los métodos existentes llegó con la union de
Rumbaugh y Booch en Rational Software Corporation en 1994. Luego se une

Jacobson y juntos forman un trabajo llamado Lenguaje Unificado de Modelado (UML). Esta
unión de los 3 autores más grandes de estas metodologías, incentivo a los demás
metodólogos.

En 1996, el Object Management Group (OMG) publico una petición de propuestas para un
enfoque estándar sobre el modelado orientado a objetos a los autores del UML (Brooch,
Jacobson y Rumbaugh). Todas las propuestas se unieron a la propuesta final de UML que fue
sometida gracias a la consideración del OMG en septiembre de 1997. El producto final fue una
colaboración entre varias personas.

ESTANDARIZACION

UML fue adoptado unánimemente por los miembros de OMG como estándar en noviembre de
1997. Muchos proveedores de herramientas anunciaron apoyos o planes para ofrecer UML y
muchos metodólogos anunciaron que usarían la notación UML en sus trabajos futuros. Creían
la estandarización apoyaría tanto la expansión del uso del modelado orientado a objetos entre
los desarrolladores como la aparición de un robusto mercado de herramientas de formación y
utilización, haciendo que los usuarios ni los proveedores tengan que pensar en que
metodologías usar y mantener.

3.3 El modelo conceptual del UML (2Cap2)

3.4 Bloques Básicos de Construcción, Reglas, Mecanismos Comunes (2Cap2)

MODELO CONCEPTUAL DEL UML

Los bloques básicos de Construcción son: Elementos, Relaciones, Diagramas. También se


encuentran las Reglas y Mecanismos Comunes.

Los Elementos y las Relaciones colaboran con los Diagramas. Mientras que las Reglas y
Mecanismos Comunes afectan a dichos Diagramas.

- Elementos: Son abstracciones de los modelos. Se dividen en: Estructurales,


Comportamiento, Agrupación y Anotación.
 Estructurales

Son partes estáticas del modelo. Representan cosas que pueden ser conceptuales o
materiales.

- Casos de Uso: Produce un resultado observable. Se utiliza para estructurar los


aspectos de comportamiento en un modelo. Es realizado por una colaboración de
Objetos. Describe de una secuencia de acciones que el sistema lleva a cabo.

- Componente: Es una parte física y reemplazable de un sistema. Está conformado por


interfaces y proporciona implementación de la misma. Un componente representa un
empaquetamiento físico de Clases, Interfaces y Colaboraciones.

- Nodo: Elemento físico que existe en tiempo de ejecución. Representa un recurso


computacional que suele disponer de memoria y capacidad de almacenamiento.

 Comportamiento

Constituye la parte dinámica de los modelos UML. Son como los verbos del modelo y
representan el comportamiento en el tiempo y en el espacio.

- Interacción: Comprende un conjunto de mensajes intercambiados entre objetos, para


un contexto definido y para lograr un propósito especifico. Involucra elementos como:
mensajes, secuencia de acciones y objetos.

- Maquina de Estado: Especifica la secuencia de estados por las que pasa un objeto o
una interacción. Puede especificar el comportamiento de una Clase individual o una
Colaboración de Clases. Involucra elementos como: estados, transiciones, eventos y
actividades.

 Agrupación

Es la parte organizativa de los modelos, son como cajas en las que se descomponen los
modelos.

- Paquete: Se usa para organizar elementos en grupos. Agrupa elementos estructurales,


comportamiento y de agrupación. No existe en tiempo de ejecución, es solo conceptual.

 Anotación

Sirve para hacer aclaraciones al modelo y se aplica a cualquier elemento.

- Nota: Es un símbolo dentro del cual se muestran restricciones y comentarios sobre un


elemento o colección de estos.

Relaciones: Permiten ligar a los elementos entre sí. Se dividen en: Dependencia, Asociación,
Generalización, Realización.

 Dependencia
Es la relación de uso entre dos elementos, uno independiente y otro dependiente. Si
existe un cambio en el elemento independiente, puede afectar a la semántica del
elemento dependiente.

 Asociación

Relación estructural que describe un conjunto de enlaces. Especifica que los objetos de
una clase están relacionados con los elementos de la otra clase.

 Generalización

Los objetos del elemento especializado (hijo) pueden sustituir a los objetos del elemento
general (padre)

 Realización

Relación semántica entre clasificadores. Donde un clasificador especifica un contrato que


otro clasificador garantiza que cumplirá. Se utiliza para implementar una interfaz y para
indicar la colaboración de objetos que realizan a un caso de uso.

- Diagramas: Son las representaciones graficas de una colección de elementos de modelado,


a menudo se dibujan como un grafo con nodos conectados por arcos.

Se dividen en: Casos de Uso, Clases, Objetos, Secuencia, Colaboración, Estados,


Componentes, Despliegue.

- Reglas: El UML tiene reglas que especifican como debe ser un modelo bien formado. Se
dividen en: Nombres, Alcance, Visibilidad, Integridad.

 Nombres

Como llamar a los elementos, relaciones y diagramas, generalmente es una cadena


de texto

 Alcance

El contexto que da un significado especifico a un artefacto

- Mecanismos Comunes: Se dividen en: Especificaciones, Adornos, Divisiones comunes,


Extensibilidad, Estereotipos.

 Especificaciones

Proporcionan la explicación textual de la sintaxis y semántica de un bloque básico de


construcción. Se usa para enunciar los detalles del sistema. La notación grafica se usa
para visualizar.

 Adornos
Todos los elementos del UML comienzan con un símbolo básico. Ej: Publico (+) ;
Privado (-) ; Protegido (#)

 Divisiones Comunes

Se crean divisiones para una mejor visualización del problema observado. Ejemplos:
Clase - Objetos

 Extensibilidad

UML es abierto, es posible extender el lenguaje de manera controlada, bajo reglas


claras. Mecanismos: Estereotipos, Valores etiquetados, Restricciones.

 Estereotipos

Extiende el vocabulario del UML. Permite crear nuevos tipos de bloques de construcción
que deriven de los existentes, pero que sean bienes específicos a un problema.

Valores Etiquetados

Permite agregar nueva información a la especificación de un elemento.

Restricciones

Permite agregar nuevas reglas para los bloques de construcción

3.5 Una visión Global de los Diagramas UML

También podría gustarte