Conceptos Esenciales en Desarrollo, Arquitectura y Pruebas de Software
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 7,06 KB
Mantenimiento de Sistemas de Software
El mantenimiento de un sistema de software se refiere a los cambios y adaptaciones realizados una vez que el sistema ha sido entregado y puesto en operación.
Mantenimiento Correctivo
- Consiste en la reparación de defectos, errores (identificados antes de la ejecución) y fallos (ocurridos durante la ejecución del sistema).
Mantenimiento Adaptativo
- Implica la modificación del sistema para adaptarse a cambios en el entorno de hardware o software (ej., lenguaje de programación, sistema operativo, navegador web, etc.).
Mantenimiento Perfectivo
- Se refiere a los cambios introducidos por la aparición de nuevos requisitos. Puede ser de dos tipos:
- Funcional: Ampliación de funcionalidades existentes o adición de nuevas.
- No Funcional: Mejoras en aspectos como el rendimiento, la seguridad o la usabilidad, a menudo implicando una reingeniería completa del sistema.
Conectividad y Persistencia de Datos
JDBC (Java Database Connectivity)
Es un puente básico para la conexión a bases de datos desde aplicaciones Java, permitiendo la ejecución de consultas SQL.
ORM (Object-Relational Mapping)
Es una técnica que facilita la correspondencia objeto-relacional, permitiendo la conversión automática de tablas de bases de datos en clases Java (u otros lenguajes de programación orientados a objetos).
OAuth: Delegación de Autorización
OAuth es un mecanismo de delegación de autorización que permite a un usuario de un proveedor de servicios A conceder acceso, en su nombre, a un segundo proveedor de servicios B. Esto es útil cuando el usuario tiene recursos alojados en el proveedor B a los que el proveedor A necesita acceder.
Arquitectura Orientada a Servicios (SOA)
SOA (Service-Oriented Architecture) es un estilo de arquitectura de software que se basa en el uso de servicios que exponen funcionalidad de negocio para el desarrollo de aplicaciones distribuidas.
Componentes Clave de SOA
- Proveedor de Servicios: Ofrece la funcionalidad.
- Registro de Servicios: Directorio donde los servicios se publican y descubren.
- Consumidor de Servicios: Utiliza la funcionalidad ofrecida.
Tecnologías de Implementación de Servicios Web
Servicios Web SOAP
- Utilizan intensivamente XML para el intercambio de datos, la descripción de información y los protocolos.
- Componentes principales:
- Protocolo SOAP: Para el intercambio de mensajes estructurados.
- WSDL (Web Services Description Language): Lenguaje para la descripción de servicios.
- UDDI (Universal Description, Discovery and Integration): Repositorio para el descubrimiento de servicios.
Servicios Web REST
- Hacen uso de tecnologías propias de la Web (como HTTP) para el intercambio de datos y la descripción de información.
- Componentes principales:
- HTTP: Protocolo de comunicación.
- WADL (Web Application Description Language): Lenguaje para la descripción de recursos (alternativa a WSDL para REST).
- Formatos de datos: XML o JSON.
Formatos de Intercambio de Datos: XML y JSON
Estos son lenguajes para el almacenamiento e intercambio de información en un formato textual.
XML (Extensible Markup Language)
- Utiliza etiquetas que pueden tener atributos, incluir contenido y anidarse.
JSON (JavaScript Object Notation)
- Es un formato de representación de objetos derivado de JavaScript, generalmente más simple y rápido de procesar que XML.
XSD (XML Schema Definition)
- Describe la estructura de un documento XML, definiendo tipos de datos (para etiquetas), atributos, contenido y relaciones entre elementos.
Enfoques de Implementación de Servicios Web
- Llamada a Procedimiento Remoto (RPC): El servicio expone un procedimiento remoto que es invocado por el consumidor, y que recibe una respuesta tras su ejecución.
- Orientación a Recursos: El servicio expone una interfaz para la gestión de recursos almacenados en el servidor, siguiendo los principios REST.
Enfoques de Composición de Servicios
- Orquestación: Hay una entidad central que controla el orden de ejecución y la interacción de cada uno de los servicios componentes.
- Coreografía: Es un enfoque descentralizado, donde cada componente interacciona con los demás de forma independiente, sin un controlador central.
Selenium: Automatización de Pruebas Web
Selenium es un conjunto de herramientas diseñado para la automatización de pruebas de aplicaciones web. Consta de:
- Selenium IDE: Una herramienta de grabación y reproducción de pruebas.
- Selenium WebDriver: Una herramienta basada en scripts para la reproducción programática de pruebas, ofreciendo mayor flexibilidad.
Técnicas de Prueba de Software
- Pruebas Manuales: Las interacciones con la aplicación y la introducción de datos se realizan de forma manual, sin el uso de herramientas de automatización.
- Grabación-Reproducción: Herramientas como Selenium IDE o Katalon IDE permiten grabar una sesión de interacciones con la aplicación y reproducirla posteriormente.
- Basadas en Script/Programa: Herramientas como Selenium/Katalon IDE pueden grabar las interacciones de un caso de prueba como una clase de prueba (ej., JUnit). Esta clase puede ser modificada, compilada y ejecutada como un programa (script) sin necesidad de intervención manual, utilizando bibliotecas como Selenium WebDriver. Las pruebas unitarias realizadas con JUnit también se consideran pruebas basadas en script/programa.
- Basadas en Modelos: (No se ha tratado en este documento).