lOMoARcPSD|14429369
Arquitectura de software - Taller EJE 2
Arquitectura de software y SQ (Fundación Universitaria del Área
Andina)
Escanea para abrir en Studocu
Descargado por Victor Bolivar
Studocu no está patrocinado ni avalado por ningún colegio o universidad.
Descargado por Victor Bolivar
1
Implementación de estilos arquitectónicos y patrones de diseño
Juan Gabriel Patalagua Carrillo
Luis Alfredo Argumedo Bustamante
Diego Felipe Tovar Sanchez
Fundación universitaria del Areandina
Ingeniería de sistemas
Docente: Oscar Fabian Campos Porras
Bogotá, Colombia
30 de octubre de 2023
Descargado por Victor Bolivar
2
Tabla de Contenidos
1. Introducción...............................................................................................................................3
2. Objetivo.......................................................................................................................................4
4. Conceptualización......................................................................................................................5
Descripción de la actividad...........................................................................................................5
5. Desarrollo...................................................................................................................................6
6. Conclusión................................................................................................................................11
7. Lista de referencias..................................................................................................................12
Descargado por Victor Bolivar
lOMoA
3
1. Introducción
En el desarrollo de la aplicación de software vamos a implementar patrones de diseño y
adoptar una arquitectura sólida para poder garantizar un código bien estructurado y
mantenible a lo largo del tiempo que lo establezcamos para futuras actualizaciones. En
este contexto, este proyecto nos enfocaremos en construir una aplicación en el lenguaje
de programación java que se ajuste a los principios de la Programación Orientada a
Objetos (OOP) de un sector muy conocido como la salud y podremos relacionar
pacientes con sus datos e incorporar patrones de diseño como Model-View-Controller
(MVC) o en lo posible todos como: DTO, DAO, además la aplicación se conecta a una
base de datos para permitir operaciones básicas CRUD (administración de registros). La
combinación de estos elementos permite un procesamiento de datos eficaz y una
interacción fluida con la base de datos subyacente y nos esforzamos por crear una
aplicación sólida y escalable que pueda ampliarse y mantenerse fácilmente en el futuro.
Descargado por Victor Bolivar
lOMoA
4
2. Objetivo
Construir una aplicación que implemente patrones de diseño bajo una arquitectura de
desarrollo.
3. Objetivo específicos
● Integrar en la aplicación la Programación Orientada a Objetos.
● Implementar patrones de diseño o estilos arquitectónicos (MVC, DTO, DAO).
● Realizar pruebas y depuración.
● Diseñar la arquitectura con lógica de negocio.
Descargado por Victor Bolivar
lOMoA
5
4. Conceptualización.
Descripción de la actividad
El desarrollo de la actividad consiste en implementar patrones de diseño para el
desarrollo de aplicaciones de software, de acuerdo con las siguientes instrucciones.
• Construir una aplicación que implemente uno o varios patrones de diseño
o estilos arquitectónicos, por ejemplo (MVC, DTO, DAO).
• La aplicación debe tener una conexión a una base de datos.
• Integrar en la aplicación la Programación Orientada a Objetos.
• La aplicación debe permitir las operaciones básicas para el manejo de
registros (CRUD).
• La aplicación puede ser construida en cualquier lenguaje de programación
(PHP, JAVA, PYTHON, NET, etc.)
Descargado por Victor Bolivar
lOMoA
6
5. Desarrollo.
A continuación, se adjunta el código fuente de un aplicativo en el que se implementó un
patrón DAO (Data Access Object), esto debido a que se trata de un patrón de diseño de
software utilizado en el desarrollo de aplicaciones para gestionar la interacción con una
base de datos, además, se utilizó como lenguaje Java con una conexión a una base de
datos a través de JDBC, con el objetivo que este realice operaciones CRUD en una tabla
de ejemplo.
package com.areandina.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Pacientes {
// Conexión a la base de datos
private static final String URL =
"jdbc:mysql://127.0.0.1:3306/clinicadb?serverTimezone=UTC";
private static final String USERNAME = "areandina";
private static final String PASSWORD = "4r34nd1n42023";
public Pacientes() {
}
public Connection getConnection() {
try {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public void insert(int id, String nombre, String edad, String genero, String ubicacion) {
Descargado por Victor Bolivar
lOMoA
7
String insertQuery = "INSERT INTO pacientes (id, nombre, edad,
genero, ubicacion) VALUES (?, ?, ?, ?, ?)";
try (Connection connection = getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(insertQuery)) {
preparedStatement.setInt(1, id);
preparedStatement.setString(2, nombre);
preparedStatement.setString(3, edad);
preparedStatement.setString(4, genero);
preparedStatement.setString(5, ubicacion);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Paciente getPacienteById(int id) {
String selectQuery = "SELECT id, nombre, edad, genero, ubicacion FROM
pacientes WHERE id = ?";
Paciente paciente = null;
try (Connection connection = getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(selectQuery)) {
preparedStatement.setInt(1, id);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
paciente = new Paciente(resultSet.getInt("id"), resultSet.getString("nombre"),
resultSet.getString("edad"), resultSet.getString("genero"),
resultSet.getString("ubicacion"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return paciente;
}
public void update(Paciente paciente) {
Descargado por Victor Bolivar
lOMoA
8
String updateQuery = "UPDATE pacientes SET nombre = ?, ubicacion = ?
WHERE id = ?";
try (Connection connection = getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(updateQuery)) {
preparedStatement.setString(1, paciente.getNombre());
preparedStatement.setString(2, paciente.getUbicacion());
preparedStatement.setInt(3, paciente.getId());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void delete(int id) {
String deleteQuery = "DELETE FROM pacientes WHERE id = ?";
try (Connection connection = getConnection();
PreparedStatement preparedStatement =
connection.prepareStatement(deleteQuery)) {
preparedStatement.setInt(1, id);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
De igual forma, este desarrollo se realizó en base a un modelo POM o "Modelo de Objeto
de Proyecto" que en Maven se refiere a un archivo XML (pom.xml) que se utiliza para
definir y configurar un proyecto de software. El POM contiene información esencial
sobre el proyecto, como sus dependencias, plugins, configuraciones, información del
grupo y del artefacto, entre otros detalles. En nuestro caso, allí ubicamos la biblioteca
JDBC (Java Database Connectivity) que es una API de Java que permite a un desarrollo
Descargado por Victor Bolivar
lOMoA
9
de Java interactuar con bases de datos relacionales. A continuación adjuntamos el archivo
pom.xml.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.areandina.jdbc</groupId>
<artifactId>jdbc</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.35</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>20</maven.compiler.source>
<maven.compiler.target>20</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
Por último, adjuntamos la información correspondiente a la base de datos.
CREATE DATABASE IF NOT EXISTS clinicadb;
USE clinicadb;
CREATE TABLE IF NOT EXISTS pacientes (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
edad INT,
genero VARCHAR(10),
ubicacion VARCHAR(100)
);
Descargado por Victor Bolivar
lOMoA
1
INSERT INTO pacientes (nombre, edad, genero, ubicacion) VALUES ('Jorge',
33, 'Masculino', 'Cr 5 No. 69-14');
INSERT INTO pacientes (nombre, edad, genero, ubicacion) VALUES ('Sandra',
22, 'Femenino', 'Cl. 119-24');
INSERT INTO pacientes (nombre, edad, genero, ubicacion) VALUES ('Felipe',
29, 'Masculino', 'Cr 80 No. 49A-36');
INSERT INTO pacientes (nombre, edad, genero, ubicacion) VALUES ('Valentina',
27, 'Femenino', 'Cr 14 No. 18N-55');
INSERT INTO pacientes (nombre, edad, genero, ubicacion) VALUES ('Carlos',
40, 'Masculino', 'Av 32 No. 9-40');
Descargado por Victor Bolivar
lOMoA
1
6. Conclusión.
El objetivo de aprendizaje de este trabajo de investigación se centró en la
construcción de una aplicación que implemente patrones de diseño en una
arquitectura de desarrollo. A lo largo de la actividad, se destacó la importancia de
la implementación de patrones de diseño, en nuestro caso el patrón DAO, para
lograr una estructura sólida y mantenible en las aplicaciones de software.
Además, se resaltó la necesidad de integrar la Programación Orientada a Objetos
(POO) como un enfoque fundamental en el desarrollo de software.
La aplicación desarrollada incluyó una conexión a una base de datos y
proporcionó operaciones básicas para el manejo de registros (CRUD), lo que
demuestra la aplicación práctica de los conceptos aprendidos. También se enfatizó
la versatilidad de Java como lenguaje de programación lo que amplía las
posibilidades de aplicación en diversos entornos.
Podemos concluir que este taller nos permitió comprender y aplicar los principios
esenciales de diseño de software y arquitectura, lo que contribuye al desarrollo de
habilidades y conocimientos fundamentales para la construcción de aplicaciones
de calidad en el campo de la informática.
Descargado por Victor Bolivar
lOMoA
1
7. Lista de referencias.
Valentín López, G. M. (2015). Aplicaciones informáticas de bases de datos
relacionales: Access 2010: ( ed.). Editorial CEP, S.L.
https://elibro-net.proxy.bidig.areandina.edu.co/es/lc/areandina/titulos/50761
Flórez Fernández, H. A. (2012). Programación orientada a objetos usando java: ( ed.).
Ecoe Ediciones.
https://elibro-net.proxy.bidig.areandina.edu.co/es/lc/areandina/titulos/69236
Vizcaíno Barceló, A. García Rubio, F. O. & Piattini Velthuis, M. (2014). Desarrollo global
de software: ( ed.). RA-MA Editorial.
https://elibro-net.proxy.bidig.areandina.edu.co/es/lc/areandina/titulos/106438
Descargado por Victor Bolivar