0% encontró este documento útil (0 votos)
22 vistas12 páginas

Exposicion

Diagrama UML

Cargado por

202212633d
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)
22 vistas12 páginas

Exposicion

Diagrama UML

Cargado por

202212633d
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

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES.

“ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E


INFORMÁTICA”

Curso:
Programación orientada a objetos.

Diagrama de clases UML.

Docente:
Mag. POCCORI UMERES, Godofredo

Presentado por los alumnos:


● TTITO LLAMACCHIMA, Aldair Junior
● SOTELO LEON, Raúl
● CHALCO CALLAÑAUPA, Edwin R
● CRUZ TINTAYA Nelson

CUSCO-2024
Diagrama de clases UML.

Introducción

Cuando se construye una casa o un edificio, arquitectos e ingenieros elaboran un conjunto de


planos para visualizar todos los aspectos de la construcción antes de que comience cualquier
trabajo. Los diagramas de clase de lenguaje de modelado unificado (UML) cumplen la misma
función que un plano, pero para el desarrollo de un software.
Así como no construirías una casa sin un plano, no es buena idea construir un sistema sin un
diagrama UML durante su inicio y actualización. Los diagramas de clases UML forman parte
de una serie de diagramas UML que visualizan diferentes aspectos del desarrollo, todos
utilizando el mismo lenguaje para una interpretación más sencilla.

Es un lenguaje de modelado estandarizado utilizado en el desarrollo de software para


especificar, visualizar construir y documentar los componentes y arquitectura de sistemas de
software. UML es una herramienta muy poderosa que ayuda a los desarrolladores y
diseñadores a crear un entendimiento común sobre el diseño y funcionamiento del sistema
1. StarUML

StarUML es una herramienta de modelado que proporciona una interfaz gráfica ara
crear diagramas UML. Permite a los desarrolladores y diseñadores de software
representar gráficamente la estructura y el comportamiento de sistemas complejos. Es
especialmente útil para equipos que trabajan en el diseño de software orientado a
objetos, pero también puede aplicarse en otros contextos.

Objetivo.

El principal objetivo de UML es ofrecer una herramienta para los desarrolladores y


diseñadores de software, permitiendo una comunicación clara y efectiva sobre el
diseño de sistema. UML ayuda a documentar y visualizar el diseño de software,
facilitando la comprensión y el mantenimiento del sistema a lo largo del tiempo.

Características clave de StarUML.

A. Soporte para varios diagramas UML


● Diagramas estructurales: como diagramas de clases, diagramas de
componentes, diagramas de despliegue, y diagramas de paquetes.
● Diagramas comportamentales: Como diagramas de casos de Uso,
diagramas de secuencia, diagramas de comunicación, diagramas de
estado y diagramas de actividades.
B. Interfaz intuitiva.
● Diseño visual: Ofrece una interfaz gráfica amigable para arrastrar y
soltar elementos de diagrama y organizar visualmente las relaciones.
● Edición y Personalización: Permite personalizar diagramas con
diferentes estilos, colores y formatos.
C. Generación de Código.
● Código Automático: StarUML puede generar automáticamente
código a partir de los diagramas, facilitando la sincronización entre el
diseño y la implementación.
D. Documentación y Exportación:
● Generación de Documentación: Puedes generar documentación
detallada del sistema en formatos como HTML, PDF, o RTF.
● Exportación de Diagramas: Los diagramas pueden ser exportados a
varios formatos de imagen y documentos.
2. Codificación en Java NetBeans (TXT)

// [Link]

public abstract class Vehiculo {

protected int velocidadActual;

protected int velocidadMaxima;

public Vehiculo(int velocidadActual, int velocidadMaxima) {

[Link] = velocidadActual;

[Link] = velocidadMaxima;

public void imprimir() {

[Link]("Velocidad Actual: " + velocidadActual);

[Link]("Velocidad Máxima: " + velocidadMaxima);

public abstract void acelerar(int velocidad);

public abstract void frenar(int velocidad);

// [Link]

public interface Motor {

int calcularRevolucionesMotor(int fuerza, int radio);

}
// [Link]

public interface Vela {

void recomendarVelocidad(int velocidadViento);

// [Link]

public class Terrestre extends Vehiculo implements Motor {

public Terrestre(int velocidadActual, int velocidadMaxima) {

super(velocidadActual, velocidadMaxima);

public void acelerar(int velocidad) {

velocidadActual += velocidad;

if (velocidadActual > velocidadMaxima) {

velocidadActual = velocidadMaxima;

public void frenar(int velocidad) {

velocidadActual -= velocidad;

if (velocidadActual < 0) {

velocidadActual = 0;

}
public int calcularRevolucionesMotor(int fuerza, int radio) {

return fuerza / radio;

// [Link]

public class Acuatico extends Vehiculo implements Motor, Vela {

public Acuatico(int velocidadActual, int velocidadMaxima) {

super(velocidadActual, velocidadMaxima);

public void acelerar(int velocidad) {

velocidadActual += velocidad;

if (velocidadActual > velocidadMaxima) {

velocidadActual = velocidadMaxima;

public void frenar(int velocidad) {

velocidadActual -= velocidad;

if (velocidadActual < 0) {

velocidadActual = 0;

public int calcularRevolucionesMotor(int fuerza, int radio) {


return fuerza / radio;

public void recomendarVelocidad(int velocidadViento) {

[Link]("Recomendar Velocidad: " + velocidadViento);

// [Link]

public interface Reactor {

void encender();

void apagar();

// [Link]

public interface Alas {

void soltarTrenAterrizaje();

void subirTrenAterrizaje();

// [Link]

public class VehiculoAereo extends Vehiculo implements Reactor, Alas {

public VehiculoAereo(int velocidadActual, int velocidadMaxima) {

super(velocidadActual, velocidadMaxima);

}
public void acelerar(int velocidad) {

velocidadActual += velocidad;

if (velocidadActual > velocidadMaxima) {

velocidadActual = velocidadMaxima;

public void frenar(int velocidad) {

velocidadActual -= velocidad;

if (velocidadActual < 0) {

velocidadActual = 0;

public void despegar() {

[Link]("Despegando...");

public void aterrizar() {

[Link]("Aterrizando...");

public void volar() {

[Link]("Volando...");

public void encender() {

[Link]("Reactor encendido");

}
public void apagar() {

[Link]("Reactor apagado");

public void soltarTrenAterrizaje() {

[Link]("Tren de aterrizaje soltado");

public void subirTrenAterrizaje() {

[Link]("Tren de aterrizaje subido");

// [Link]

public class Prueba {

public static void main(String[] args) {

VehiculoAereo vehiculoAereo = new VehiculoAereo(0, 1000);

[Link](200);

[Link]();

[Link]();

[Link]();

[Link]();

[Link]();

[Link]();

[Link]();

[Link]();

}
3. Prueba, captura de pantalla de la ejecución.

4. Enlace de la publicación.
5. Conclusión
Este ejercicio de implementación en Java demuestra cómo se pueden usar la herencia
y las interfaces para estructurar una jerarquía de clases de manera eficiente y
organizada. Al utilizar clases abstractas como “vehículos”, podemos definir
comportamientos generales y comunes para todas las subclases, garantizando que
cada tipo de vehículo implemente métodos específicos como “acelerar” y “frenar”
está compuesto por los interfaces como “motor, vela, reactor y alas” permiten definir
contratos que aseguran que las clases que los implementan y proporcionen
funcionalidad específica, como calcular revoluciones del motor o manejar trenes de
aterrizaje.
Este enfoque no solo promueve la reutilización del código y la claridad en la
estructura de la aplicación, sino que también facilita la extensibilidad del sistema. Por
ejemplo, la clase “Vehículo Aéreo” pudo integrarse fácilmente con nuevas interfaces
para agregar funcionalidades específicas de los vehículos aéreos. Este tipo de diseño
es fundamental en el desarrollo de software orientado a objetos, ya que permite una
mayor flexibilidad y mantenimiento del código a lo largo del tiempo.

Sugerencias.
1. Definir claramente el alcance del proyecto
● Identificar los requisitos
● Establecer objetivos
2. Seleccionar los diagramas adecuados
3. Mantener la simplicidad y la claridad
● No sobrecargar los diagramas
● Usar nombres claros y consistentes
6.-Bibliografía
Brutti, F. (2 de mayo de 2023). Obtenido de thePower:
[Link]
Miro. (3 de 5 de 2023). Obtenido de
[Link]

También podría gustarte