Documento de Universidad sobre Ingeniería de Software. El Pdf detalla el ciclo de vida del desarrollo de software, los procesos generales y la norma ISO/IEC/IEEE 12207. Aborda la arquitectura empresarial y de solución, y describe herramientas como Jira, Git y Maven, útiles para estudiantes de Informática.
See more18 Pages
Unlock the full PDF for free
Sign up to get full access to the document and start transforming it with AI.
Ingeniería de software Enfoque sistémico, diciplinado y cuantificable del desarrollo se software, con calidad, en el tiempo determinado y con el presupuesto previsto apoyado por metodologías herramientas y técnicas
Secuencia estructurada y bien definida de las etapas fases en ingeniería de software para desarrollar un producto de software con calidad
El desarrollo de software se estructura en varias etapas fundamentales que permiten planificar, construir y mantener productos de calidad. Estas etapas son:
La norma ISO/IEC/IEEE 12207 es un estándar internacional que define el ciclo de vida del software. Cubre desde su conceptualización hasta su retirada, proporcionando una estructura organizada y un lenguaje común para todos los involucrados en su desarrollo. Su propósito es asegurar que los procesos y actividades se realicen de manera coherente y eficiente a lo largo de todo el ciclo de vida del software.Ficha 1: Arquitectura Empresarial
Es el mapa completo de una organización: cómo funciona, qué procesos tiene, qué información usa y cómo la tecnología la apoya. Ayuda a alinear estrategia, procesos, personas y tecnología.
Generalmente se organiza en capas:
Capa ¿Qué cubre? Ejemplo en restaurante Negocio Procesos, objetivos, reglas de negocio Tomar pedidos, preparar comida, atender cliente Aplicaciones Sistemas que dan soporte a esos Sistema de pedidos, cocina, procesos reportes Datos Información que fluye entre procesos Menú, órdenes, clientes, ingredientes Tecnología Infraestructura y plataformas utilizadas Red local, tablets, servidor en cocina L
Es una respuesta específica a un problema o necesidad de negocio. Toma una parte de la arquitectura empresarial y propone una solución concreta, estructurada y tecnológica.
Parte de un reto (ej. "mejorar atención al cliente") y propone:· Qué módulos crear (sistema de pedidos) · Qué datos usar (menú, promociones) · Qué dispositivos (tables, impresora) · Qué comunicación habrá entre ellos (cliente-servidor, APIs) Ejemplo aplicado: Tu sistema de restaurante que automatiza pedidos, conecta cocina con caja y genera reportes diarios.
Es la descripción concreta y detallada del entorno tecnológico donde vivirá la solución: hardware, software, redes, protocolos, seguridad, etc.
· Servidores y su ubicación · Base de datos y su estructura · Lenguajes, frameworks, versiones · Canales de comunicación (REST, sockets) · Medidas de seguridad y respaldo Ejemplo aplicado: · Servidor Linux corriendo Java · Base de datos PostgreSQL local con respaldo · Frontend en tablet Android · Comunicación por REST usando JSON
Nivel Arquitectura empresarial Pregunta que responde ¿Qué necesita la organización? Resultado Visión estratégica de procesos y tecnologíaNivel Pregunta que responde Resultado Diseño funcional del sistema propuesto Arquitectura técnica ¿Con qué lo implementamos exactamente? Infraestructura, tecnologías, herramientas
Concepto Definición ¿Para qué sirve? Ejemplo práctico Una estructura Para alinear TI con metodológica que guía los objetivos del Marco (framework) cómo diseñar y gobernar una arquitectura negocio, definir procesos, roles y entregables TOGAF define procesos como ADM, roles de arquitectura, capas y entregables Modelo (model) Una representación visual o conceptual de una arquitectura desde un enfoque específico Para comunicar cómo funciona un sistema o Modelo 4+1 muestra una arquitectura desde arquitectura desde lógica, física, desarrollo, distintas vistas procesos y escenarios Piénsalo así: El marco es la receta completa para construir una arquitectura. El modelo es la foto del plato en cada fase.
Marco ¿Qué es? Ejemplo para recordar Es una receta paso a paso para Como un manual para montar un TOGAF crear y gestionar una arquitectura restaurante desde cero: visión, diseño, empresarial cocina, operación Zachman Es una tabla que organiza todo lo que hay que saber del sistema Como una hoja de Excel donde organizas TODO por roles: qué hace el chef, el mesero, el dueño Arquitectura de solución ¿Cómo resolvemos este problema específico?Marco ¿Qué es? Ejemplo para recordar Gartner Enfocado en tomar decisiones basadas en el valor al negocio Como preguntar: "¿qué menú genera más ganancias?" antes de remodelar la cocina OBASHI Muestra cómo se relacionan personas, sistemas y datos Como mapear que empleado usa que máquina para preparar qué platillo
Modelo ¿Qué muestra? Ejemplo aplicado 4+1 Diferentes vistas de un sistema (lógica, procesos, desarrollo, físico y casos de uso) Como ver tu restaurante desde los planos de cocina, flujo de atención, instalaciones y rutinas Como tener una capa para meseros (pantalla), otra para Por capas Divide el sistema en niveles: presentación, lógica, datos, etc. cocina (reglas) y otra para pedidos (datos) SOA El sistema se divide en servicios independientes que se comunican Como tener una estación de postres, otra de entradas, otra de bebidas - cada una con su función Igual que SOA pero más Como si cada chef tuviera su Microservicios pequeños, autónomos y con su propio local, menú, caja y cocina propia base de datos pero todos en el mismo food court
TOGAF (The Open Group Architecture Framework) es un marco que te dice cómo diseñar, planear y gestionar una arquitectura empresarial paso a paso. Es como una ruta bien marcada para que no te pierdas al crear un sistema complejo.Imagina que estás armando el sistema completo de un restaurante desde cero: TOGAF te dice por dónde empezar, cómo documentar, qué personas necesitas y qué entregables debes producir.
El corazón de TOGAF es un ciclo llamado ADM (Architecture Development Method), que tiene estas fases:
Fase ¿Qué haces aquí? Preliminar Preparas el terreno: defines roles, permisos, reglas y herramientas A - Visión Planteas el objetivo del sistema: que se va a hacer y por qué B - Negocio Defines procesos, áreas funcionales, actividades importantes C - Sistemas Determinas qué aplicaciones vas a desarrollar o conectar D - Tecnología Decides en qué servidores, redes o tecnologías se va a montar todo E - Oportunidades Planeas qué proyectos hay que hacer para llegar a esa arquitectura F - Migración Ordenas qué se hace primero, segundo, tercero ... como una hoja de ruta G - Verificas que se cumpla el plan, haces revisiones Implementación H - Mantenimiento Ajustas, mejoras y mantienes todo funcionando a largo plazo G Todo esto ocurre en un ciclo, porque TOGAF está pensado para sistemas vivos, que cambian con el tiempo.
Es un modelo que representa la arquitectura del sistema desde cinco puntos de vista: · Cuatro vistas técnicas (de ahí el "4") · Más una quinta vista que amarra todo: los escenarios de uso (el "+1")
· Para documentar y comunicar cómo está organizado un sistema. · Cada vista se adapta a un tipo de público diferente (analistas, desarrolladores, usuarios, etc.). · Ayuda a validar decisiones de arquitectura desde distintos frentes.
Vista ¿Qué muestra? ¿Para quién? Ejemplo en tu sistema de restaurante Lógica Estructura funcional del sistema (clases, objetos, capas) Programadores y arquitectos Diagrama de clases: Pedido, Producto, Cliente, Factura Proceso Comportamiento dinámico, concurrencia, ejecución Ingenieros de rendimiento Cómo los pedidos se procesan en paralelo mientras cocina responde Desarrollo Organización del software: módulos, paquetes Desarrolladores y testers Cómo se agrupan los paquetes: interfaz, negocio, base de datos Física Distribución en servidores Infraestructura y y dispositivos devops Tablet del mesero, impresora de cocina, servidor de datos localVista ¿Qué muestra? ¿Para quién? +1 Casos de uso que validan Todos los Escenarios el sistema involucrados Ejemplo en tu sistema de restaurante Caso: Cliente ordena > mesero registra > cocina imprime orden Analógicamente: Es como mostrar tu sistema con planos diferentes: · Plano eléctrico (procesos) · Plano arquitectónico (estructura lógica) · Plano de instalaciones (servidores) · Plano de construcción (código por módulos) · Y un storyboard de cómo se vive una escena ahí (escenarios)
· Evita que todos se pierdan viendo el sistema desde un solo ángulo. · Se puede usar junto con TOGAF en la fase de diseño técnico (C y D). · Es útil para validarte en un examen cuando te digan "representa la arquitectura desde diferentes perspectivas".
Separación de responsabilidades y funciones en componentes llamadas capas, teniendo en cuenta el software, siendo las mas comunes: presentación, lógica empresarial y acceso a datos
Distribución de los componentes en niveles físicos, teniendo en cuenta: el hardware, la topología de redes y su localización.
Todo el sistema (interfaz, lógica y datos) está unido en una sola aplicación. Características: · Un solo archivo ejecutable o paquete. · Difícil de escalar o modificar partes sin afectar el todo.· Más simple para proyectos pequeños. Ejemplo: Una app de facturación local donde la UI, lógica y BD están en el mismo programa.
El cliente (usuario) hace peticiones y el servidor las procesa. Componentes: · Cliente (UI) · Servidor (Lógica de negocio y acceso a datos) Ventajas: · El servidor puede atender múltiples clientes. · Separación clara entre presentación y lógica. Ejemplo: Una página web donde accedes a tu correo desde un navegador.
Todos los nodos (equipos) actúan como clientes y servidores al mismo tiempo. Características: . No hay un servidor central. · Cada equipo puede compartir datos directamente. Ejemplo: Aplicaciones de intercambio de archivos como BitTorrent.
El sistema se construye como un conjunto de servicios independientes que se comunican entre sí. Componentes clave: · Servicios reutilizables. · Comunicación mediante protocolos como SOAP o REST. Ventajas: · Escalabilidad. · Reutilización de servicios en otros sistemas. Ejemplo: Un sistema bancario que usa servicios separados para pagos, reportes y transferencias.
Evolución de SOA, pero con servicios más pequeños y autónomos. Características: · Cada microservicio tiene su propia lógica, base de datos y puede ser desarrollado de forma independiente. · Se comunican por APIs ligeras. Ventajas: · Escalabilidad horizontal.