Desarrollo de Software PDF

Summary

Este documento ofrece una visión general sobre el desarrollo de software, incluyendo diferentes tipos de lenguajes de programación y conceptos clave. Explica la lógica detrás de la creación y el mantenimiento de un programa.

Full Transcript

LENGUAJE DE BAJO NIVEL Conjunto de instrucciones que están escritas en un Estrechamente relacionado con el hardware, rápidos y...

LENGUAJE DE BAJO NIVEL Conjunto de instrucciones que están escritas en un Estrechamente relacionado con el hardware, rápidos y lenguaje de programación en concreto y resuelve una CÓDIGO FUENTE (ficheros.Java) determinada tarea. eficientes. Difíciles de comprender/utilizar. Instrucciones escritas por un programador. Puede ser interactivo y trabajar en segundo plano. Lenguaje legible. Se gestiona en un sistema operativo. Lenguaje máquina Define la lógica y su funcionalidad. Primitivo (binario). Utilizado por máquinas. Lenguaje ensamblador CÓDIGO OBJETO (ficheros.class) Interpretable. Para programa hardware. Utilizado en No ejecutable, requiere un proceso. No legible por nosotros. Código binario. Programa sistemas embebidos. Mnemónicos (utiliza abreviaturas) TIPOS DE Proceso de compilación. CÓDIGO informático LENGUAJE DE ALTO NIVEL CÓDIGO EJECUTABLE (ficheros.jav) Se aproxima al lenguaje humano. Gestión de hardware. Código final. Se ejecuta directamente. Específico según el S.O. Lenguaje lógico Transforma el código. DESARROLLO DE Se enfoca en qué hacer y no como hacerlo. Se utiliza para programar hardware. Sistema embebido. Lógica matemática SOFTWARE (prolog). Lenguaje procedimentales Desarrollo de aplicación: Se basa en procedimientos. Uso de variables parámetros, diseño, creación, despligue y globales y locales. Estructura modelar y enfoque descendente. mantenimiento Lenguaje funcional Funciones puras. Datos inmutables. Gran uso de recursión TIPOS DE (Erlang o Haskell). Máquina Virtual LENGUAJES Lenguaje orientado a objetos Es un entorno que simula un S.O. Utiliza código objeto. Organización bloques de SW en diferentes unidades. Basado en Ventajas: portabilidad, seguridad, gestión de 5 características (Abstracción, Herencia, Polimorfismo, memoria. Modularidad, Encapsulamiento). Importancia principios SOLID y Algunos lenguajes tienen su propia máquina patrones de diseño. buscando compatibilidad. LENGUAJE DE NIVEL INTERMEDIO Mixto de los lenguajes de alto y bajo nivel. PYTHON Lenguaje multiplataforma, alto nivel, simple, versátil. Sintaxis clara. Tipado dinámico. Multiparadigma: objetos, funcional e imperativo. Compatiblie con IA, Desarrollo web y ciencia de datos. JAVA SQL Gestión y consulta de base de datos relacionales. Muy extendido. Aplicaciones empresariales, móviles y sistemas distribuidos. Multiparadigma (orientación objetos), escalable, robusto, muy fuertemente tipado, soporta multithreadings. PHP CARACTERÍSTICAS Utilizado en el desarrollo web del lado del servidor -wordpress- C / C++ DE LOS C años 70. C++ evolución año 80. Programación orientación de LENGUAJES DE PROGRAMACIÓN objetos. Lenguaje compilado. Uso de punteros. Propósito general. Uso en software bajo nivel. Sistema embebido. MÁS UTILIZADOS GO - GOLANG Desarrollo de sistemas concurrentes y escalables, usado por Google. JAVASCRIPT Lenguaje urilizado en desarrollo web. Utilizado en Front-end (cliente), Back-end (servidor). Lenguaje versátil. Interpretado. KOTLIN Multiparadigma (orientado objetos, funcional y prototipado). Desarrollo de apps android, recomendado por Google. Tipado dinámico, ejecutado en el navegador, especializado asincronía. RUST C# Enfoque seguridad de la memoria y el rendimiento, ideal para Desarrollado por Microsoft. Ecosistema.NET. Moderno orientado sistemas y aplicaciones de alto rendimiento. a objetos. Popular desarrollo aplicaciones (escritorio, web, móviles, videojuegos). Lenguaje fuertemente tipado. Sintaxis clara, afin a Java y C++. Multiplataforma. Soporta asincronía y concurrencia. Lenguaje Type-safe. FASES DE DESARROLLO Fases reales de la APP Análisis de requisito. Identifica las necesidades y expectativas del 1 ANÁLISIS usuario. Recolección de datos, hacer entrevistas, crear documentos. Se define la arquitectura y por qué va ser de esa forma debido al CICLO DE VIDA DE UNA APP 2 DISEÑO análisis. Utiliza diagramas UML (Lenguaje Unificado de Modelado) Comprende todo el periodo desde la unifica los datos en documentos y diseños gráficos. concepción de la app hasta su retiro. Incluye la planificación inicial, el monitoreo continuo, Fase central. Creación del código fuente tomando en cuenta el análisis IMPLEMENTACIÓN 3 O CODIFICACIÓN y diseño. Uso de herramientas auxiliares para completar el código. actualizaciones y potencial retiro. Se llevan a cabo las pruebas donde podemos encontrar bugs. Fase Resumen: comprende desde la planificación, 4 final. Existen diferentes tipos de pruebas (pruebas unitarias, las fases de desarrollo hasta el retiro. PRUEBAS integración de sistemas, aceptación por el cliente o de sistema) para comprobar si la app encaja y es válido. Se encarga de la puesta en marcha. Se realiza despliegues en DESPLIEGUE O 5 servidores, dispositivos móviles. Acompañado de un manual de DOCUMENTACIÓN usuario, documentación técnica del aplicativo Aborda las necesidades de mantenimiento a lo largo del tiempo 6 MANTENIMIENTO (corregir errores, agregar nuevas funcionalidades....) COMPILACIÓN to 1. Preprocesamien Se procesan las directiva s del códi go ejecutable a HERRAMIENTAS nció n de un preprocesador. Incluye los ETAPAS DE Proceso de ob te DE eceras, Nec es ita herramientas archivos necesarios (cab iminar COMPILACIÓN partir de un có digo fu ente. COMPILACIÓN expansión de macros, el ar el código. para transformar y optimiz comentarios). t (Kit de desarrollo Etapa conocida como có digo JDK: Java Development Ki hasta código fuente expandido. Java). Desde código fuente 1.EDITORES DE CÓDIGO utab le. Compilación y en lazado. Clase.jav a Proporcionan resaltado de sintaxis, autocompletado, facilidades ejec al programador. Programas: Eclipse, Visual Code, IntelliJ, clase.jar Sublime, Notepan, Jetbrans ent (Entorno de JRE: Java Runtime Envirom 2. Compilación a el fichero.class o.jar. ejecución Java). Se ejecut 2. PREPROCESADORES Herramientas para manipular el código fuente antes de ente ya (Máquina virtual Se traduce el código fu JVM: Java Virtual Machine compilarlos. uaje intermedio preprocesado a un leng Verificación Java). o código ensamblador. del código. semántica y sintáctica El resultado es 3. COMPILADORES Advierte de los errores. o código un código ensamblador Herramienta que lleva a cabo la traducción de código fuente a máquina. lenguaje intermedio (ensamblador). Optimizar el código. 4. ENSAMBLADORES 3. Ensamblado Encargados de compilar el código ensamblador que ha sido generado por el compilador en código máquina. na que Se coge el código máqui terior etapa hemos obtenido en la an r objetos y traducirlo para obtene 5. ENLAZADORES un fichero binarios. Obtendríamos lass” Recoge los archivos necesarios para combinarlos y crear el binario, en Java sería.”c ejecutable final. 4. Enlazado sarios Se toman archivos nece 6. DEBUGGERS iotecas o para combinar con bibl Inspecciona el código mientras se está ejecutando para poder ra formar archivos requeridos pa detectar errores a través de secciones. “.exe” el ejecutable. Archivos 1. metodologías ágiles Más adaptativas y centradas en Metodologías de 2. metodologías híbridas Gestión de Proyectos colaboración, enfoque iterativo y flexible. Se adapta a los cambios. Se diferencia por la organización interna que tiene cada una de Se caracterizan por combinación de enfoque ellas: tradicional con metodologías ágiles, Estos enfoques modernos y flexibles buscan mejorar la permitiendo adaptación de forma cómoda a eficiencia, colaboración y adaptababilidad en la gestión diferentes tipos de proyectos. Divide proyectos en ciclos cortos (Sprints). Duración 2/4 semanas. Empieza por una de proyectos. Podemos tener en cuentas las siguientes planificación y termina con revisión. Roles importantes: metodologías: Scrum master: principal responsable. Combina enfoques estructurados y Garantiza que el equipo siga todas las secuenciales en cascada. Fase inicial en prácticas. cascada (planificación, diseño) y a medida Producto Owner: Representación por parte AGIL que avanza el proyecto (implementación y SCRUM del usuario final o cliente. WATERFALL pruebas) se tiende hacer cambios y Equipo de desarrollo: Los encargados de adoptan principios ágiles. Se aprovecha ejecutar el código o tareas dentro del sprint distintos enfoques. (programadores) Originaria fábrica Toyota. Visualización directa de las tareas mediante tablero. No Fusión entre Scrum y Kanvan. Fusiona el KANVAN iteración, flujo continuo de trabajo. Metodología apropiada que busca mejorar SCRUMVAN flujo característico de Kanvan a los equipos que ya trabajan con Scrum. la eficiencia sin una estructura rígida como Scrum. Mejora la calidad del software y capacidad de respuesta ante cambios/requisitos del STREAM 5. metodología DevOps cliente. Promueve desarrollo dirigido por PROGRAMMING pruebas. Integración continua. Se focaliza en técnicas de desarrollo. todología Design Thinking 4. me Unión entre equipos de desarrollo (Dev.) y equipos de operaciones 3. metodología Gestión Lean (Ops.). Enfoque en mejorar eficiencia y colaboración entre diferentes equipos. Involucra todo el ciclo de vida del software. Centrada en el usuario y solución de problemas complejos. Características principales: Derivada de los sistemas de producción de Toyota. Importancia de aspecto creativo y colaborativo en este Integración continua y entrega continua (CI-CD). Se enfoca en la eficiencia y eliminación de enfoque de solución de problemas complejos. Es útil en Automatización: optimiza pruebas, despliegues y monitoreos desperdicios. El origen viene de manufactura pero se proyectos donde es necesaria la innovación o diseñar de la app. aplica en muchos sectores (proyectos software). productos con interacción del ser humano. Colaboración: Rompe barreras entre ambos equipos. Comunicación constante.

Use Quizgecko on...
Browser
Browser