Está en la página 1de 16

ANÁLISIS Y DESARROLLO DE SOFTWARE (2758307)

ELABORACIÓN DE LOS DIAGRAMAS DEL MODELO DE DOMINIO DEL PROYECTO

PRESENTADO POR
MILENA AMAYA
SERGIO GONZALEZ

INSTRUCTOR
JAIME ZABALA DIAZ

PLATAFORMA VIRTUAL DE APRENDIZAJE SENA


GA2-220501093-AA2-EV01
NEIVA
2023
TABLA DE CONTENIDO

INTRODUCCIÓN

1.DIAGRAMA DE CLASES
➢ CONCEPTO DE DIAGRAMA DE CLASES
• DEFINICIÓN Y PROPÓSITO
• IMPORTANCIA EN EL DISEÑO DE SOFTWARE
➢ ELEMENTOS CLAVE EN UN DIAGRAMA DE CLASES
• CLASE
• ATRIBUTO
• MÉTODO
• RELACIONES ENTRE CLASES
➢ TIPOS DE RELACIONES ENTRE CLASES
• ASOCIACIÓN
• AGREGACIÓN
• COMPOSICIÓN
• HERENCIA
• DEPENDENCIA
➢ USO DE VISIBILIDAD EN ATRIBUTOS Y MÉTODOS
• PUBLIC (+)
• PRIVADO (-)
• PROTEGIDO (#)
➢ ERRORES COMUNES EN LOS DIAGRAMAS DE CLASES
• RELACIONES MAL DEFINIDAS
• ABUSO DE LA HERENCIA
• COMPLEJIDAD EXCESIVA
➢ CASOS DE USO Y APLICACIONES
• DESARROLLO DE APLICACIONES WEB
• DISEÑO DE SISTEMAS EMPRESARIALES
• PLANIFICACIÓN DE VIDEOJUEGOS
➢ CREACIÓN DE UN DIAGRAMA DE CLASES
• PASOS PARA DISEÑAR UN DIAGRAMA DE CLASES
• HERRAMIENTAS PARA CREAR DIAGRAMAS DE CLASES
➢ VENTAJAS Y BENEFICIOS DE LOS DIAGRAMAS DE CLASES

2.DIAGRAMA DE PAQUETES
➢ CONCEPTO DE DIAGRAMA DE PAQUETE
• DEFINICIÓN Y PROPÓSITO
• RELACIÓN CON LA ORGANIZACIÓN Y ESTRUCTURA DEL SOFTWARE
➢ ELEMENTOS CLAVE EN UN DIAGRAMA DE PAQUETE
• PAQUETE
• SUBPAQUETE
• DEPENDENCIAS ENTRE PAQUETES
➢ RELACIONES DE DEPENDENCIA EN UN DIAGRAMA DE PAQUETES
• DEPENDENCIA DE ACCESO
• IMPLEMENTACIÓN
• ABSTRACCIÓN
• USO
➢ VISIBILIDAD DE LOS ELEMENTOS
➢ BENEFICIOS Y APLICACIONES DE LOS DIAGRAMAS DE PAQUETE
• ORGANIZACIÓN Y MODULARIDAD DEL SOFTWARE
• VISUALIZACIÓN DE JERARQUÍAS Y RELACIONES
• DOCUMENTACIÓN Y COMUNICACIÓN EFECTIVA
➢ EJEMPLO PRÁCTICO: DISEÑO DE UNA APLICACIÓN UTILIZANDO DIAGRAMA DE PAQUETES
➢ CREACIÓN DE UN DIAGRAMA DE PAQUETE
• IDENTIFICACIÓN DE COMPONENTES RELEVANTES
• DEFINICIÓN DE PAQUETES Y SUBPAQUETES
• ESTABLECIMIENTO DE DEPENDENCIAS
➢ HERRAMIENTAS PARA CREAR DIAGRAMAS DE PAQUETES
➢ CASOS DE USO Y ESCENARIOS DE APLIACCIÓN
• DESARRROLLO DE SOFTWARE DE GRAN ESCALA
• PROYECTOS COLABORATIVOS
• DOCUMENTACIÓN DE ARQUITECTURA
➢ DESAFÍOS Y CONSIDERACIONES AL USAR DIAGRAMAS DE PAQUETE

3.ANÁLISIS DE DIAGRAMA DE PAQUETE Y DIAGRAMA DE CLASES EN EL SOFTWARE QUE ESTAMOS


TRABAJANDO: LA BARBERIA

4.CONCLUSIÓN

5.BIBLIOGRAFÍAS
INTRODUCCIÓN

En el mundo del desarrollo de software, la eficacia y la estructura son pilares fundamentales para
la creación de sistemas exitosos y mantenibles. En este contexto, dos herramientas esenciales
emergen como guías clave para los desarrolladores: los Diagramas de Paquete y los Diagramas de
Clases. Estas poderosas herramientas permiten la visualización y organización de la arquitectura
del software, así como la comprensión de las interacciones entre componentes.
Los Diagramas de Paquete se alzan como mapas estructurales que delinean la jerarquía y
organización de los componentes de un sistema. Con la capacidad de agrupar elementos
relacionados en contenedores lógicos, estos diagramas facilitan la creación de un código modular y
coherente. Además, permiten una visión panorámica de cómo los diferentes paquetes interactúan
entre sí, brindando claridad y facilitando la comunicación entre los miembros del equipo de
desarrollo.
Por otro lado, los Diagramas de Clases revelan la esencia de la colaboración entre objetos en un
sistema orientado a objetos. A través de la representación de clases, atributos, métodos y sus
relaciones, estos diagramas capturan la estructura estática del software. Esta herramienta permite
a los desarrolladores modelar la arquitectura de sus aplicaciones de manera comprensible,
identificando cómo las clases interactúan y contribuyen a la funcionalidad general del sistema.
En este trabajo teórico, exploraremos en detalle tanto los Diagramas de Paquete como los
Diagramas de Clases. Analizaremos sus componentes, su aplicación en diversos contextos y cómo
influyen en el diseño y desarrollo de software. A través de esta exploración, se busca proporcionar
una visión integral de cómo estas herramientas transforman la forma en que se construyen y
comprenden los sistemas informáticos.
1. DIAGRAMA DE CLASES

➢ Concepto de Diagrama de Clases

• Definición y Propósito
Los Diagramas de Clases son representaciones gráficas que muestran la relación entre las clases de
un sistema, las cuales encapsulan atributos y métodos. Estos diagramas proveen una vista
estructural, permitiendo que los equipos de desarrollo comprendan la arquitectura del software de
manera clara y efectiva. En esencia, los Diagramas de Clases son ventanas al mundo interno de las
aplicaciones, facilitando la comunicación entre los desarrolladores y mejorando la calidad del
diseño.
• Importancia en el Diseño de Software
El uso de Diagramas de Clases en el diseño de software es esencial por varias razones. Primero,
proporcionan una representación visual que simplifica la comprensión de la estructura del sistema.
Segundo, permiten la abstracción de detalles innecesarios, concentrándose en la relación entre las
clases y evitando la sobrecarga de información. Tercero, fomentan la reutilización de componentes
y el diseño modular, lo que acelera el desarrollo y mejora la eficiencia. En última instancia, los
Diagramas de Clases son una herramienta invaluable para garantizar que el diseño del software sea
sólido, coherente y escalable.

➢ Elementos Clave en un Diagrama de Clases

• Clase: La Piedra Angular


La clase es el pilar fundamental de un Diagrama de Clases. Representa una plantilla que define las
propiedades (atributos) y acciones (métodos) que los objetos de esa clase tendrán. Por ejemplo, si
consideramos una aplicación de biblioteca, una clase "Libro" podría tener atributos como título y
autor, así como métodos para prestar y devolver.
• Atributo: Detalles que Definen
Los atributos son los datos que describen las propiedades de una clase u objeto. Pueden ser tan
simples como un número o tan complejos como una estructura de datos. En el contexto de una
clase "Estudiante", los atributos podrían incluir nombre, edad y número de identificación.
• Método: Acciones y Funciones
Los métodos definen las acciones que una clase u objeto puede realizar. Son las funciones que
permiten que los objetos hagan algo o interactúen con otros objetos. En una clase "Cuenta
Bancaria", los métodos podrían ser "depositar" y "retirar".

• Relaciones entre Clases


Las relaciones entre clases son esenciales para representar cómo interactúan en un sistema. Una
relación establece una dependencia, la cual puede manifestarse entre dos o más clases (lo más
común) o incluso dentro de una clase hacia sí misma (un caso menos frecuente, pero presente),
conocido como dependencia reflexiva. Estas relaciones se representan mediante líneas que
conectan las clases, cuya apariencia variará según el tipo de relación.

Relación reflexiva

Las relaciones presentes en el diagrama de clases poseen varias propiedades, algunas de las cuales
se optará por representar o no según el nivel de detalle deseado para el diagrama. Entre estas
propiedades destacan:

• Multiplicidad: Esto indica la cantidad de elementos de una clase que participan en una
relación. Puede denotarse con un número, un rango o emplear n o * para indicar un
número indeterminado.
• Nombre de la Asociación: Ocasionalmente se agrega una descripción de la asociación para
ayudar a comprender la relación entre dos clases. En este caso, suelen utilizarse verbos
como "Una empresa contrata a n empleados". Ejemplo:
➢ TIPOS DE RELACIONES ENTRE CLASES

• La asociación muestra la relación entre dos clases. Puede ser un vínculo simple o llevar
asociados multiplicidades que indican la cantidad de objetos involucrados. Se representa
con una simple línea continua que une las clases que están incluidas en la
asociación

• Agregación y Composición: Relaciones Parte-Todo (su diferencia es semántica)

La agregación representa una relación "todo-parte" entre clases. Es decir, representa relaciones en
las que un objeto es parte de otro, pero aun así debe tener existencia en sí mismo.
Se representa con una línea con rombo en la parte de la clase que es una agregación de la otra
clase (es decir, en la clase que contiene las otras).

La composición es similar, pero con una relación más fuerte; cuando el elemento que contiene los
otros desaparece, deben desaparecer todos ya que no tienen sentido por sí mismos, sino que
dependen del elemento que componen. Además, suelen tener los mismos tiempos de vida. Los
componentes no se comparten entre varios elementos, esta es otra de las diferencias con la
agregación. Se representa con una línea continua con rombo relleno en la clase que es compuesta
• La Herencia de clases

La herencia permite que una clase herede atributos y métodos de otra clase. Estos atributos y
métodos recibidos se suman a los que la clase tiene por sí misma. Se utiliza en relaciones «es un».

Un ejemplo de esta relación podría ser la siguiente: Un pez, un perro y un gato son animales.

• Dependencia: Influencias entre Clases


La dependencia indica que una clase depende de otra para funcionar correctamente. Si una clase
cambia, la clase dependiente también podría verse afectada. Se representa con una flecha
discontinua que va desde la clase que necesita la utilidad de la otra flecha hasta esta misma

➢ Uso de Visibilidad en Atributos y Métodos

La visibilidad controla el acceso a los atributos y métodos en una clase.


• Public (+): Puede ser accedido desde cualquier lugar.
• Privado (-): Solo puede ser accedido dentro de la propia clase.
• Protegido (#): Puede ser accedido desde la clase misma y sus subclases.

➢ Errores Comunes en los Diagramas de Clases

• Relaciones Mal Definidas


Una de las dificultades comunes es definir relaciones de manera incorrecta, lo que puede llevar a
una representación incorrecta de la interacción entre las clases.
• Abuso de la Herencia
Aunque la herencia es poderosa, su uso excesivo puede llevar a una jerarquía complicada y difícil
de mantener.
• Complejidad Excesiva
Un Diagrama de Clases demasiado complejo puede ser contraproducente. Es importante
mantenerlo claro y enfocado en las relaciones más relevantes.

➢ Casos de Uso y Aplicaciones

• Desarrollo de Aplicaciones Web


En el desarrollo de aplicaciones web, los Diagramas de Clases son esenciales para modelar la
estructura de datos, las interacciones y las relaciones entre las diferentes partes del sistema.
• Diseño de Sistemas Empresariales
En sistemas empresariales, los Diagramas de Clases ayudan a diseñar la arquitectura de software
que maneja operaciones comerciales complejas y relaciones entre diferentes entidades.
• Planificación de Videojuegos
En la planificación de videojuegos, los Diagramas de Clases son utilizados para modelar personajes,
objetos, niveles y sus interacciones, garantizando que el juego funcione de manera cohesiva.

➢ Creación de un Diagrama de Clases

• Pasos para Diseñar un Diagrama de Clases


La creación de un Diagrama de Clases implica varios pasos:
1. Identificar las clases relevantes en el sistema.
2. Definir los atributos y métodos de cada clase.
3. Establecer las relaciones entre las clases.
4. Indicar la visibilidad de los atributos y métodos.
5. Verificar la coherencia y estructura del diagrama.
• Herramientas para Crear Diagramas de Clases
Hay diversas herramientas disponibles para crear Diagramas de Clases, como software
especializado o aplicaciones en línea. Algunas de las opciones populares incluyen Lucidchart,
draw.io y herramientas integradas en IDEs de programación.

➢ Ventajas y Beneficios de los Diagramas de Clases

• Visualización Clara y Efectiva


Los Diagramas de Clases permiten una visualización clara de la estructura de un sistema, lo que
facilita la comprensión y comunicación entre los miembros del equipo de desarrollo.

• Abstracción de la Complejidad
Los Diagramas de Clases abstraen los detalles innecesarios y se centran en las relaciones esenciales
entre clases. Esto ayuda a comprender la arquitectura general del sistema sin verse abrumado por
los detalles técnicos.

• Facilita la Comunicación entre Equipos


En proyectos de desarrollo de software, diferentes equipos pueden trabajar en partes diferentes
del sistema. Los Diagramas de Clases proporcionan una representación visual que facilita la
comunicación y la colaboración entre estos equipos, ya que todos pueden entender la estructura
general y las interacciones.

• Promueve la Reutilización de Código


Al modelar relaciones y estructuras de clases, los Diagramas de Clases fomentan la reutilización de
componentes. Esto significa que las clases ya diseñadas y probadas pueden ser utilizadas en
diferentes partes del sistema, ahorrando tiempo y esfuerzo en el desarrollo.

2. DIAGRAMA DE PAQUETES

➢ Concepto de Diagrama de Paquete

• Definición y Propósito
Un Diagrama de Paquete es una representación gráfica que muestra la estructura jerárquica de un
sistema de software en términos de paquetes y sus relaciones. Los paquetes son contenedores
lógicos que agrupan elementos relacionados, como clases, Subpaquete, interfaces y otros
artefactos. El propósito principal de los Diagramas de Paquete es proporcionar una vista
organizada y modular del software, lo que facilita la comprensión de su arquitectura general.
• Relación con la Organización y Estructura del Software
Los Diagramas de Paquete juegan un papel crucial en la organización y estructura del software.
Ayudan a los desarrolladores a crear una división clara y coherente del código en unidades lógicas.
Esto no solo mejora la legibilidad y mantenibilidad del software, sino que también facilita la
colaboración entre equipos al proporcionar una visión unificada de la arquitectura.

➢ Elementos Clave en un Diagrama de Paquete

• Paquete: Contenedor Lógico


El paquete es el elemento central en un Diagrama de Paquete.
Representa un contenedor lógico que agrupa elementos
relacionados. Los paquetes pueden contener clases, interfaces,
Subpaquete y otros componentes, lo que permite una organización
eficiente del software. (representado mediante un símbolo con
forma de carpeta, este se describe colocando el nombre en la
pestaña y el contenido dispuesto para éste dentro de la carpeta.) Además, si se ha definido un
estereotipo para el paquete, este será representado encima del nombre entre el símbolo << … >>,
y en caso de que se definan propiedades, estás se representan debajo del nombre y entre llaves.
• Subpaquete: Niveles de Jerarquía
Los Subpaquete son subdivisiones de un paquete principal. Permiten una jerarquía más profunda
en la estructura del software, lo que es especialmente útil en sistemas complejos.

• Dependencias entre Paquetes


Los paquetes pueden tener dependencias entre ellos. Estas dependencias representan las
relaciones entre diferentes partes del software. Por ejemplo, un paquete puede depender de otro
para acceder a sus clases o funciones. ------------> (Visualmente, se representa con una flecha
discontinúa que parte del elemento de origen y apunta hacía el elemento de destino.)

Además de los componentes simbólicos del diagrama de paquetes, existen elementos adicionales
que debes conocer para analizar y comprender un diagrama.
• Elemento empaquetables: es un elemento con nombre, de posible propiedad directa de
otro paquete. Estos pueden incluir componentes, eventos, casos de uso e incluso los
propios paquetes. Además, los elementos empaquetables pueden ser representados con
un rectángulo dentro del paquete, siempre y cuando estén rotulados con el nombre
pertinente.
• Importación de paquete: se trata de la relación dirigida entre el espacio de nombres de
importación y un paquete previamente importado. Este modelo de relación dirigida agrega
los nombres de los integrantes del paquete importado en su propio espacio para nombres.
• Importación de elemento: es la relación dirigida entre el espacio de nombres de
importación y un elemento empaquetables importado. Se utiliza para importar algunos
elementos sin acudir a una importación de paquete y sin que se publique dentro del
espacio de nombres.
• Fusión de paquetes: consiste en la relación dirigida donde los contenidos de un paquete se
difunden según los contenidos de otro paquete. Básicamente, el contenido de dos
paquetes se combina para producir un nuevo paquete.

➢ RELACIONES DE DEPENDENCIA EN UN DIAGRAMA DE PAQUETES

El empleo principal del diagrama de paquetes radica en su capacidad para representar las
interdependencias, tanto de acceso como de importación, entre diversos elementos con nombre,
como paquetes, componentes y clases, en un sistema.
La relación entre dos o más elementos se manifiesta en dos categorías predominantes de
dependencias:
• Dependencia de acceso: Esto señala que un paquete busca acceder a las funcionalidades
establecidas en otro paquete. Su representación se concreta con la etiqueta <<access>>.
• Dependencia de importación: Indica que una funcionalidad ha sido incorporada desde un
paquete a otro. Esta variante se refleja mediante la etiqueta <<import>>.

No obstante, estas variaciones en la dependencia pueden subdividirse en categorías más


específicas:
• Implementación: Facilita la observación de cómo un elemento se implementa para lograr
un objetivo específico.
• Abstracción: Establece una conexión entre dos elementos que representan un mismo
concepto, aunque en diferentes niveles de interpretación dentro del sistema.
Ejemplificando, la relación entre un cliente y un proveedor.
• Uso: Ocurre cuando un elemento en particular requiere de otro elemento para su propia
definición e implementación.

➢ VISIBILIDAD DE LOS ELEMENTOS

La visibilidad de los elementos que conforman un paquete se debe identificar colocando antes del
nombre alguno de los siguientes símbolos con el objeto de proporcionarlos de una característica
específica de uso:
• Elemento público: Se representa con un “+” y significa que está disponible para otros
elementos del paquete contenedor, para los paquetes anidados y para los paquetes que
importan el contenido del paquete contenedor.
• Elemento privado: Se representa con un “-” y significa que no está disponible fuera del
paquete contenedor.
• Elemento protegido: Se representa con un “#” y significa que el elemento no está
disponible ni es visible.

➢ Beneficios y Aplicaciones de los Diagramas de Paquete

• Organización y Modularidad del Software


Uno de los mayores beneficios de los Diagramas de Paquete es su capacidad para organizar el
software en módulos cohesivos y autónomos. Esto facilita la gestión y el mantenimiento del código
a medida que el sistema crece en tamaño y complejidad.
• Visualización de Jerarquías y Relaciones
Los Diagramas de Paquete ofrecen una visión clara de la jerarquía y las relaciones entre los
distintos componentes del software. Esto permite a los desarrolladores comprender cómo se
conectan las partes y cómo contribuyen al funcionamiento general del sistema.
• Documentación y Comunicación Efectiva
En proyectos colaborativos, los Diagramas de Paquete actúan como herramientas de
documentación. Proporcionan una representación visual de la arquitectura que puede ser
compartida entre equipos y utilizada para discutir y planificar el diseño del software.

➢ Herramientas para Crear Diagramas de Paquete


Hay una variedad de herramientas disponibles para crear Diagramas de Paquete, desde software
especializado hasta herramientas de modelado en línea. Ejemplos incluyen Visual Paradigm,
Lucidchart y draw.io.

➢ Casos de Uso y Escenarios de Aplicación

• Desarrollo de Software de Gran Escala


En proyectos de software de gran envergadura, los Diagramas de Paquete ayudan a mantener la
organización y la claridad en la arquitectura, permitiendo un desarrollo más eficiente y
colaborativo.
• Proyectos Colaborativos
Cuando múltiples equipos trabajan en diferentes partes de un proyecto, los Diagramas de Paquete
sirven como guía compartida que asegura una comprensión uniforme de la estructura del
software.
• Documentación de Arquitectura
Los Diagramas de Paquete son herramientas valiosas para documentar la arquitectura del
software. Proporcionan una visión general que facilita la comunicación y la toma de decisiones en
el equipo de desarrollo.

➢ Desafíos y Consideraciones al Usar Diagramas de Paquete

• Complejidad Excesiva
Un desafío común es mantener la simplicidad en los Diagramas de Paquete. Una estructura
demasiado compleja puede dificultar la comprensión y la navegación.
• Mantenibilidad y Actualización
A medida que el software evoluciona, es esencial mantener actualizados los Diagramas de Paquete
para reflejar con precisión la estructura del sistema. Esto requiere un esfuerzo constante de
documentación.
3.ANÁLISIS DE DIAGRAMA DE CLASE Y DIAGRAMA DE PAQUETE EN EL SOFTWARE QUE ESTAMOS
TRABAJANDO: LA BARBERIA
CONCLUSIÓN

En este trabajo, hemos explorado con detalle dos elementos fundamentales en el diseño y
desarrollo de software: los Diagramas de Paquete y los Diagramas de Clases. Estas herramientas
esenciales nos han permitido adentrarnos en la arquitectura y organización de sistemas
informáticos de manera profunda y efectiva.
Los Diagramas de Paquete han demostrado ser un medio poderoso para visualizar la estructura
jerárquica de los componentes y sus interdependencias en un sistema. Con la capacidad de
agrupar elementos relacionados y brindar claridad en la organización, estos diagramas se erigen
como guías valiosas en la creación de sistemas modulares y mantenibles.
Por otro lado, los Diagramas de Clases nos han llevado a explorar la estructura estática de un
sistema orientado a objetos. Mediante la representación de clases, atributos y relaciones, hemos
comprendido cómo esta herramienta facilita la modelación y comunicación de la arquitectura, así
como la comprensión de la colaboración entre diferentes elementos del sistema.
Al profundizar en los conceptos, elementos y aplicaciones de los Diagramas de Paquete y los
Diagramas de Clases, hemos adquirido una comprensión sólida de cómo estas herramientas
transforman la forma en que concebimos, diseñamos y construimos sistemas informáticos. Su
papel en la simplificación de la complejidad, la organización de la información y la comunicación
efectiva no puede ser subestimado.

En conclusión, este trabajo nos ha proporcionado una visión holística de dos herramientas
fundamentales en el ámbito del desarrollo de software. Los Diagramas de Paquete y los Diagramas
de Clases se presentan como compañeros indispensables en la caja de herramientas de todo
desarrollador, empoderándonos para crear sistemas informáticos robustos, eficientes y
perfectamente estructurados.
BIBLIOGRAFÍAS

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/diagramas-de-clases-con-uml/

https://diagramasuml.com/diagrama-de-clases/

https://plantillaarbolgenealogico.net/diagramas/paquetes/

https://sena.territorio.la/content/index.php/institucion/Titulada/institution/SENA/Tecnologia/228
118/Contenido/OVA/CF8/index.html - /curso/tema3

También podría gustarte