Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

martes, 21 de julio de 2026

100 términos clave que abarcan todo el ciclo de vida del software

Aquí tienes una lista extendida y bien estructurada con 100 términos clave que abarcan todo el ciclo de vida del software, la gestión de proyectos, la infraestructura y las metodologías de desarrollo

Está pensada para que manejes el lenguaje técnico con total soltura tanto con desarrolladores como con clientes o entrevistadores.


1. Fundamentos de Programación y Paradigmas

Código fuente (Source Code): El conjunto de instrucciones escritas en un lenguaje de programación entendible por humanos.

Sintaxis: El conjunto de reglas gramaticales que definen cómo se debe escribir el código en un lenguaje determinado.

Variable: Un espacio reservado en memoria para almacenar un dato que puede cambiar durante la ejecución.

Constante: Un valor asignado que no cambia a lo largo de la ejecución del programa.

Algoritmo: Una secuencia finita y ordenada de pasos lógicos para resolver un problema o realizar una tarea.

Función / Método: Un bloque de código reutilizable diseñado para realizar una tarea específica.

Parámetro / Argumento: Valores que se le pasan a una función para que procese su lógica.

POO (Programación Orientada a Objetos): Paradigma basado en "objetos" que contienen datos (atributos) y código (métodos).

Clase: La plantilla o molde a partir del cual se crean los objetos en POO.

Instancia: El objeto concreto creado a partir de una clase.

Herencia: Capacidad de una clase de derivar propiedades y comportamientos de otra clase padre.

Polimorfismo: Capacidad de diferentes clases de responder al mismo mensaje o método de formas distintas.

Encapsulamiento: Ocultar los detalles internos de un objeto y exponer solo lo necesario hacia afuera.

Asincronía (Async/Await): Ejecución de tareas en segundo plano sin bloquear el flujo principal de la aplicación.

Callback: Función que se pasa como argumento a otra función para ser ejecutada cuando finalice una tarea.

Promesa (Promise): Un objeto que representa el resultado futuro de una operación asíncrona (éxito o fallo).

Recursividad: Una función que se llama a sí misma para resolver un problema dividiéndolo en casos más pequeños.

Compilador: Programa que traduce código fuente a lenguaje máquina antes de ejecutarlo.

Intérprete: Programa que lee y ejecuta el código línea por línea en tiempo real.

Librería (Library): Colección de código predefinido que el desarrollador llama cuando lo necesita.

Framework: Estructura o marco de trabajo que impone reglas sobre cómo organizar y construir la aplicación.


2. Desarrollo Frontend e Interfaz de Usuario

Frontend: La parte visible e interactiva de una aplicación web o móvil con la que interactúa el usuario.

UI (User Interface): Diseño visual de botones, pantallas, tipografías y elementos gráficos de la aplicación.

UX (User Experience): La experiencia, facilidad de uso y nivel de satisfacción del usuario al interactuar con el sistema.

Responsive Design: Diseño adaptativo que permite que una web se vea bien en celulares, tabletas y computadores.

DOM (Document Object Model): Representación en árbol de los elementos de una página web que el navegador procesa.

SPA (Single Page Application): Aplicación web que carga una sola página y actualiza el contenido dinámicamente sin recargar la pantalla.

SSR (Server-Side Rendering): Renderizado de la página web en el servidor antes de enviarla al navegador (mejora el SEO).

CSR (Client-Side Rendering): El navegador del usuario descarga el código JavaScript y construye la interfaz localmente.

Estado (State): Datos guardados en memoria que determinan cómo se debe ver y comportar la interfaz en un momento dado.

Componente: Pieza de interfaz independiente, modular y reutilizable (ej. un botón, un menú, un formulario).

CSS Grid / Flexbox: Herramientas de maquetación CSS para organizar elementos en filas y columnas de forma flexible.

Preprocesador CSS (ej. Sass): Herramienta que extiende CSS permitiendo variables, anidamiento y funciones avanzadas.

PWA (Progressive Web App): Aplicación web que ofrece una experiencia similar a una app nativa móvil (funciona offline, notificaciones push).

Hydration (Hidratación): Proceso en SSR donde el JavaScript se vincula al HTML estático enviado por el servidor para hacerlo interactivo.


3. Desarrollo Backend y APIs

Backend: La lógica del servidor, manejo de datos, seguridad y procesamiento detrás de escena.

API (Application Programming Interface): Interfaz que permite la comunicación entre dos sistemas o aplicaciones.

REST / RESTful: Estilo arquitectónico común para APIs web que utiliza métodos HTTP estándar.

Endpoint: La URL o ruta específica donde se realiza una petición a la API (ej. /api/v1/users).

Payload: Los datos útiles o cuerpo de la información enviada dentro de una petición HTTP.

Petición HTTP (Request): Mensaje enviado por el cliente al servidor solicitando un recurso o acción.

Respuesta HTTP (Response): Datos y estado que el servidor devuelve al cliente tras procesar la petición.

Códigos de Estado HTTP:


200 OK: Petición exitosa.


400 Bad Request: Error en los datos enviados por el cliente.


401 Unauthorized: No autenticado / requiere inicio de sesión.


403 Forbidden: No se tienen permisos para acceder a este recurso.


404 Not Found: El recurso solicitado no existe.


500 Internal Server Error: Ocurrió un fallo en el servidor.

GraphQL: Lenguaje de consultas para APIs que permite pedir exactamente los datos necesarios, ni más ni menos.

WebSocket: Protocolo de comunicación bidireccional en tiempo real entre cliente y servidor (ej. chats).

Middleware: Software intermedio que procesa o valida peticiones antes de llegar a la lógica final (ej. verificar un token).

Autenticación (Authn): Proceso de verificar la identidad de un usuario (¿quién eres?).

Autorización (Authz): Proceso de verificar qué permisos tiene un usuario (¿qué puedes hacer?).

JWT (JSON Web Token): Formato compacto y seguro para transmitir información autenticada entre partes.

OAuth: Protocolo estándar que permite autorizar el acceso seguro sin compartir credenciales (ej. "Iniciar sesión con Google").

Rate Limiting: Control que limita cuántas peticiones puede hacer un usuario en un período de tiempo para prevenir abusos.

CORS (Cross-Origin Resource Sharing): Mecanismo de seguridad del navegador que restringe las peticiones HTTP entre distintos dominios.


4. Bases de Datos y Gestión de Información

Base de Datos Relacional (SQL): Almacenamiento estructurado en tablas con filas y columnas vinculadas por claves (ej. PostgreSQL, MySQL).

Base de Datos No Relacional (NoSQL): Almacenamiento flexible sin esquemas rígidos, basado en documentos, grafos o clave-valor (ej. MongoDB, Redis).

ORM (Object-Relational Mapping): Herramienta que mapea las tablas de la BD a objetos del código.

Migración: Script que registra y ejecuta cambios en la estructura de la base de datos de manera controlada.

Índice: Estructura en la BD que acelera drásticamente las búsquedas de información a costa de espacio extra.

Query (Consulta): Solicitud formal de lectura, inserción, actualización o borrado de datos.

CRUD: Acrónimo de las 4 operaciones básicas en datos: Create, Read, Update, Delete.

Transacción (ACID): Grupo de operaciones en la BD que se ejecutan como un solo bloque: o se cumplen todas o ninguna se guarda.

Cache / Caching: Almacenamiento de datos temporales en memoria ultrarrápida (como Redis) para evitar consultas repetitivas a la BD.


5. Arquitectura, Infraestructura y Nube

Monolito: Arquitectura donde toda la lógica, la interfaz y el servidor están integrados en un solo proyecto de código.

Microservicios: Arquitectura donde la aplicación se divide en pequeños servicios independientes comunicados por red.

Serverless: Modelo de nube donde el proveedor gestiona los servidores dinámicamente y solo se paga por el tiempo de ejecución del código.

Docker: Plataforma de contenedorización para empaquetar aplicaciones con sus dependencias exactas.

Contenedor: Entorno aislado y liviano donde corre una aplicación sin importar el sistema operativo anfitrión.

Kubernetes (K8s): Sistema de orquestación para automatizar el despliegue, escalado y gestión de contenedores.

Servidor Web (ej. Nginx, Apache): Software que escucha peticiones HTTP entrantes y entrega sitios web o enruta tráfico a las APIs.

Proxy Inverso: Servidor intermedio que recibe tráfico externo y lo distribuye eficientemente entre servidores internos.

Balanceador de Cargas (Load Balancer): Dispositivo o software que distribuye el tráfico entre varios servidores para evitar colapsos.

DNS (Domain Name System): Sistema que traduce nombres de dominio entendibles (empresa.com) en direcciones IP (192.0.2.1).

Escalabilidad Horizontal: Añadir más máquinas o servidores al sistema para soportar mayor carga.

Escalabilidad Vertical: Añadir más potencia (CPU, RAM) a una misma máquina existente.

Entornos (Environments):

Local: La computadora del desarrollador.

Staging / QA: Servidor idéntico a producción donde se realizan pruebas internas.

Producción (Prod): El entorno en vivo donde interactúan los usuarios finales.


6. DevOps, Git y Metodologías de Trabajo

Git: Sistema distribuido de control de versiones de código.

Repositorio (Repo): Espacio digital donde se guarda todo el código, archivos e historial de cambios de un proyecto.

Rama (Branch): Línea independiente de desarrollo dentro de Git para trabajar en funciones sin alterar la rama principal (main / master).

Merge: Acción de fusionar los cambios de una rama secundaria a la rama principal.

Pull Request (PR) / Merge Request: Propuesta de cambios en el código enviada para ser revisada antes de integrarla al proyecto.

Conflict (Conflicto de Git): Ocurre cuando dos desarrolladores modifican las mismas líneas de un archivo y Git requiere resolución manual.

CI/CD (Continuous Integration / Continuous Deployment): Automatización del proceso de pruebas, compilación y despliegue del software.

Despliegue (Deploy): El acto de publicar una versión del código en un servidor para que sea accesible por los usuarios.

Rollback: Restaurar la aplicación a una versión anterior estable después de que un despliegue falle.

Refactorización: Reescribir código existente para hacerlo más limpio y eficiente sin cambiar lo que hace externamente.

Deuda Técnica (Technical Debt): El costo acumulado de elegir soluciones rápidas e imperfectas hoy, lo que dificulta el desarrollo futuro.

Agile (Agilidad): Filosofía de desarrollo basada en iteraciones rápidas, adaptación al cambio y colaboraciones constantes.

Scrum: Marco de trabajo ágil basado en entregas periódicas organizadas por ciclos fijos.

Sprint: Periodo de tiempo fijo (usualmente 1 a 4 semanas) en el que el equipo completa un bloque de trabajo acordado.

Backlog: Lista priorizada de tareas, mejoras o errores pendientes de desarrollo en un proyecto.

Kamban: Sistema visual de gestión de trabajo organizado en columnas de estado (ej. Por hacer, En progreso, Completado).


7. Pruebas, Calidad y Seguridad

Bug: Error, fallo o defecto en el software que produce un resultado inesperado.

Unit Test (Prueba Unitaria): Evaluación que verifica el correcto funcionamiento de un bloque pequeño e aislado de código (ej. una función).

Integration Test (Prueba de Integración): Evaluación que verifica que varios módulos o servicios funcionen correctamente al trabajar juntos.

E2E Test (End-to-End): Prueba que simula el flujo completo de un usuario real en la aplicación, desde la interfaz hasta la BD.

QA (Quality Assurance): Área o procesos enfocados en asegurar que el producto cumpla con los estándares de calidad antes de salir a la luz.

Inyección SQL: Vulnerabilidad de seguridad donde un atacante inserta código SQL malicioso en un formulario para manipular la BD.

XSS (Cross-Site Scripting): Vulnerabilidad que permite a un atacante inyectar código JavaScript malicioso en las páginas que ven otros usuarios.

Webhooks: Mecanismo de notificaciones en tiempo real donde un sistema envía datos a otro vía HTTP tan pronto ocurre un evento.

SDK (Software Development Kit): Conjunto de herramientas, documentación y librerías facilitadas para construir apps en una plataforma específica.

Logs / Logging: Registros detallados guardados en texto sobre los eventos, errores o actividad que ocurren en el servidor en tiempo real. 

jueves, 21 de julio de 2022

Etapas del proceso de desarrollo de software

 Etapas del proceso de desarrollo de software


- Análisis de requerimientos (disparador, descubrimiento, comprensión del problema, análisis y documentación).


- Diseño de la solución (comprensión del problema, abstracción, solución detallada, modelado).


- Desarrollo y evolución (programación e integración, artefacto de software, automatización de pruebas).


- Despliegue (infraestructura, operaciones, software disponible).


- Mantenimiento y evolución (arreglo de errores, nuevas soluciones, SISTEMA DEPRECADO).

lunes, 24 de febrero de 2020

Cómo tener permisos para hacer Upload en un servidor Linux

Recientemente, hemos visto que muchas personas al subir su página web o software a la medida han tenido problemas ya que localmente no hay inconvenientes para subir sus archivos de distintos tipos, pero en el momento de hacer la prueba en el servidor se encuentran con que no se ve reflejada la subida del archivo dentro de la carpeta upload o como le hayan llamado dentro del programa. Para esto tenemos la siguiente solución:


Abrimos el Putty para conectarnos, e ingresamos la sigiente línea

chmod -R 777 /usr//www/upload/  (La ruta cambia dependiendo donde se aloje la web en el servidor)

Luego de esto solo queda verificar en la web que si funcione el upload correctamente.

miércoles, 11 de diciembre de 2019

Software de Cobros en Colombia

Qué es el Software de Cobros? conoce el aplicativo web para gestionar tus préstamos. Este programa fue creado en la ciudad de Manizales con el objetivo de llegar a personas de toda Colombia.

Blogs Colombia