Resumen Entornos 2 PDF
Document Details
Uploaded by Deleted User
Tags
Summary
Este documento resume los conceptos básicos de software, hardware y sistemas de información. Explica la relación entre hardware y software, la definición de software y el ciclo de vida del desarrollo de software.
Full Transcript
1ºER TEMA ENTORNOS DEL DESARROLLO RECUPERACIÓN 1ºEVALUACIÓN 1.SOFTWARE DEL ORDENADOR 1. SISTEMAS DE INFORMACIÓN Un sistema de información es un conjunto de procesos que organiza y utiliza datos de la empresa para crear y compartir la información necesaria. Su objetivo es ay...
1ºER TEMA ENTORNOS DEL DESARROLLO RECUPERACIÓN 1ºEVALUACIÓN 1.SOFTWARE DEL ORDENADOR 1. SISTEMAS DE INFORMACIÓN Un sistema de información es un conjunto de procesos que organiza y utiliza datos de la empresa para crear y compartir la información necesaria. Su objetivo es ayudar en todas las actividades y decisiones de la empresa, asegurándose de que cada persona reciba la información correcta, con calidad, en el momento, lugar y formato adecuados. 2. SISTEMA INFORMÁTICO Sistema de información cuyos procesos se llevan a cabo con ordenadores S.I. = Software + Hardware + Usuarios PROGRAMA: Conjunto de órdenes (instrucciones) que son ejecutadas por la máquina para resolver un problema determinado APLICACIÓN INFORMÁTICA: Conjunto de programas para realizar un trabajo determinado DEFINICIÓN DE SOFTWARE: El estándar IEEE define el software como el conjunto de programas, reglas, procedimientos, documentación y datos que permiten el funcionamiento de un sistema informático. En resumen, el software son los programas y datos que se guardan en un ordenador. Estos programas se encargan de dar instrucciones para usar el hardware o comunicarse con otros programas, además de incluir los datos que necesitan para funcionar. RELACIÓN ENTRE HARDWARE Y SOFTWARE El software funciona gracias al hardware, pero para que todo funcione correctamente, el hardware debe estar instalado y configurado como es debido. La relación entre hardware y software se entiende desde dos perspectivas: 1. Sistema Operativo: Actúa como intermediario entre el hardware y los programas. 2. Aplicaciones: Son los programas que necesitan instrucciones para usar el hardware. DESDE EL PUNTO DE VISTA DEL SISTEMA OPERATIVO: El sistema operativo es como un coordinador que gestiona el hardware para que funcione correctamente mientras usas el ordenador. Se encarga de ser el puente entre el hardware y las aplicaciones que están abiertas. Las aplicaciones necesitan recursos como tiempo de CPU, memoria RAM o acceso a dispositivos como teclado y pantalla para funcionar. El sistema operativo maneja todo esto en segundo plano, sin que el usuario o las aplicaciones tengan que preocuparse por esos detalles técnicos. DESDE EL PUNTO DE VISTA DE LAS APLICACIONES : Los programas se escriben en lenguajes que el hardware no entiende directamente. Los lenguajes de programación son fáciles de entender para las personas. El hardware solo entiende señales eléctricas (0 y 1, código binario). El código debe ser traducido a binario para que el ordenador lo ejecute. 2.DESARROLLO DE SOFTWARE. CICLO DE VIDA. HERRAMIENTAS 2.DESARROLLO DE SOFTWARE El desarrollo de software es todo el proceso que va desde que se tiene una idea para un programa hasta que ese programa está listo y funcionando en el ordenador. Incluye desde la planificación y diseño, hasta la programación, pruebas y mantenimiento. La definición del problema (el QUÉ) es la etapa en la que se identifican los requisitos clave del sistema y el software. Aquí se establecen las tareas principales: Planificación: Se organiza el trabajo y se fijan metas. Análisis de requisitos: Se define qué información se usará, sus características, y qué funcionalidades debe tener el sistema. Restricciones y rendimiento: Se determinan las limitaciones y el nivel de rendimiento que se espera del software. También se definen los recursos, el tiempo y los costes necesarios para llevar a cabo el proyecto. El desarrollo de la solución propuesta (el CÓMO) incluye varios pasos esenciales para crear el software: 1. Diseño de estructuras de datos e interfaces: Se define cómo se organizarán los datos y cómo interactuarán los usuarios o sistemas con el software. 2. Especificación detallada del diseño: Se describe con precisión el diseño del sistema, lo cual permitirá generar el código fuente. 3. Traducción a un lenguaje de programación: El diseño se convierte en código utilizando un lenguaje de programación adecuado. 4. Diseño y realización de pruebas: Se crea un plan de pruebas para asegurarse de que el sistema funcione correctamente, realizando las pruebas necesarias. Al término de esta fase se entregará el sistema. Tareas principales: Diseño del Sw. Codificación Prueba del Sw Documentación (EL CAMBIO) CICLO DE VIDA DEL SOFTWARE El ciclo de vida del software se divide en varias etapas: 1. Análisis: Se identifican los requisitos del sistema y se definen las necesidades. 2. Diseño: Se planifica cómo se organizará y estructurará el software. 3. Codificación: Se escribe el código fuente basándose en el diseño. 4. Pruebas: Se verifica que el software funcione correctamente y cumpla con los requisitos. 5. Entrega y mantenimiento: Se entrega el software a los usuarios y se realizan actualizaciones y correcciones según sea necesario. En cada etapa, se producen documentos que sirven de base para la siguiente etapa, asegurando que el desarrollo sea ordenado y eficiente. MODELOS DEL CICLO DE VIDA Los procesos generales en el ciclo de vida de un sistema de información (S.I.) se pueden realizar de distintas maneras, dando lugar a diferentes modelos de desarrollo. La elección de un modelo u otro depende de las características del proyecto a realizar. Existen varios paradigmas o modelos de ciclo de vida, los más conocidos son: Modelo en Cascada Se asume que todos los requisitos son conocidos desde el principio. Es adecuado para desarrollos pequeños. Modelo en Cascada con realimentación: Mejora del anterior, permitiendo volver a etapas anteriores para corregir errores. Es recomendable para proyectos con pocos cambios. Modelos evolutivos: Modelo Iterativo incremental: Se entrega el software en pequeñas partes, cada una construida sobre la anterior. Modelo en espiral: El desarrollo sigue una espiral, con ciclos que constan de cuatro fases para cada parte del software. Ventajas Inconvenientes Recomendado Requiere tener todos los requisitos Cuando los requisitos son estables Fácil de comprender. definidos desde el principio. y bien comprendidos. Difícil corregir errores una vez se ha Cuando los clientes no necesitan Alta calidad del producto. avanzado en las etapas. versiones intermedias. Permite trabajar con El producto no está disponible hasta Para proyectos similares a otros personal poco cualificado. que se termine. previos. Modelo Iterativo incremental Ventajas Inconvenientes Recomendado No se necesitan conocer Requisitos o diseño no están Difícil estimar esfuerzo y coste final todos los requisitos al completamente definidos y necesario. comienzo. puede haber cambios. Permite la entrega Se están probando o temprana al cliente de Se corre el riesgo de no acabar nunca. introduciendo nuevas partes operativas. tecnologías. No recomendable para desarrollos en Las entregas facilitan la sistemas en tiempo real, alto nivel de realimentación de los seguridad, procesamiento distribuido y/o próximos entregables. alto índice de riesgos. Modelo en espiral Determinar objetivos: Se identifican los objetivos, las alternativas para alcanzarlos y las restricciones impuestas. Análisis de riesgo: Se identifican los riesgos y se evalúa si es posible resolverlos. Desarrollar y probar: Se desarrolla la solución y se verifica si es aceptable. Planificación: Se realiza una revisión y evaluación de todo lo hecho, decidiendo si se continúa con el proceso. Ventajas Inconvenientes Recomendado No se necesitan conocer Proyectos de gran tamaño y que todos los requisitos para Es difícil evaluar riesgos. necesitan grandes cambios. empezar. El coste del proyecto aumenta a Proyectos donde el factor de Análisis de riesgo en todas medida que la espiral pasa por riesgo sea importante. las etapas. sucesivas iteraciones. El éxito del proyecto depende en Reduce riesgos del Muy utilizado para el desarrollo gran medida de la fase de análisis proyecto. de sistemas orientados a objetos. de riesgos. Incorpora objetivos de calidad. 2.HERRAMIENTAS DE APOYO AL DESARROLLO DEL SOFTWARE Conjunto de aplicaciones que se utilizan en el desarrollo de software con el objetivo de reducir costes y tiempo del proceso, mejorando por tanto la productividad del proceso. Herramientas CASE: Permiten: Mejorar la planificación del proyecto. Darle agilidad al proceso. Reutilizar partes del software en proyectos futuros. Hacer que las aplicaciones respondan a estándares. Mejorar la tarea del mantenimiento de los programas. Mejorar el proceso de desarrollo, al permitir visualizar las fases de forma gráfica. 3.FASES EN EL DESARROLLO Y EJECUCIÓN DEL SOFTWARE 3. FASE DE ANÁLISIS La primera etapa del proyecto: La más complicada y la que más depende de la capacidad del analista. Es fundamental una buena comunicación entre el analista y el cliente para que la aplicación que se va a desarrollar cumpla con sus expectativas. La culminación de esta fase es el documento ERS (Especificación de Requisitos Software). Obtención de los requisitos: Entrevistas Desarrollo de conjunto de aplicaciones (JAD): Entrevistas estructuradas con roles para cada persona. Planificación conjunta de requisitos: Dirigidas a la alta dirección. Brainstorming (Lluvia de ideas). Prototipos. Casos de uso: Escenarios que describen cómo interactúan los usuarios con el sistema. Definición del problema: ANÁLISIS DE REQUISITOS Se especifican los requisitos funcionales y no funcionales del sistema. Requisitos Funcionales Requisitos No Funcionales Qué funciones tendrá que realizar la aplicación. Tiempos de respuesta del programa. Qué respuesta dará la aplicación ante todas las Legislación aplicable. entradas. Cómo se comportará la aplicación en situaciones Tratamiento ante la simultaneidad de inesperadas. peticiones, etc. Para representar los requisitos se utilizan diferentes técnicas: Diagramas de flujo de datos (DFD) Diagramas de flujo de control (DFC) Diagramas de transición de datos (DTE) Diagramas Entidad/Relación (E/R) Diccionario de datos Fase de Análisis: ERS Lo especificado en la fase de análisis debe quedar reflejado en el documento ERS (Especificación de Requisitos Software). En este documento quedan especificados: La planificación de las reuniones que van a tener lugar. Relación de los objetivos del usuario cliente y del sistema. Relación de los requisitos funcionales y no funcionales del sistema. Relación de objetivos prioritarios y temporización. Reconocimiento de requisitos mal planteados o que conllevan contradicciones, etc. Requisitos funcionales: Expresan la naturaleza del funcionamiento del sistema, describiendo cómo interactúa el sistema con su entorno y cuál será su estado y funcionamiento. Requisitos no funcionales: Son restricciones sobre el espacio de posibles soluciones, e incluyen: Rendimiento del sistema: Fiabilidad, tiempo de respuesta, disponibilidad, etc. Interfaces: Dispositivos de E/S, usabilidad, interoperabilidad, etc. Proceso de desarrollo: Estándares, herramientas, plazo de entrega, etc. Aquí tienes la clasificación de los requisitos en funcionales y no funcionales en formato de tabla: Requisito Clasificación Utilizar un lenguaje multiplataforma para el desarrollo de la aplicación No Funcional (NF) El usuario puede eliminar un contacto o varios de la lista Funcional (F) La aplicación debe funcionar en S.O Linux y Windows No Funcional (NF) El usuario puede imprimir la lista de contactos Funcional (F) El tiempo de respuesta para consultas debe ser inferior a 5 segundos No Funcional (NF) El usuario puede agregar un nuevo contacto Funcional (F) La interfaz de usuario es a través de ventanas, debe ser intuitiva y de fácil No Funcional (NF) manejo El manejo de la aplicación se realizará con el teclado y el ratón No Funcional (NF) 3.Fase De diseño: En esta fase, se traducen los requisitos (funcionales y no funcionales) en una representación de software. Ya sabemos lo que hay que hacer, el siguiente paso es ¿Cómo hacerlo? Se debe dividir el sistema en partes y establecer qué relaciones habrá entre ellas. Decidir qué hará exactamente cada parte. Crear un modelo funcional-estructural de los requerimientos del sistema global, para poder dividirlo y afrontar las partes por separado. Decisiones importantes en esta fase: Entidades y relaciones de las bases de datos. Selección del lenguaje de programación que se va a utilizar. Selección del Sistema Gestor de Base de Datos. Entre otras decisiones relacionadas con el desarrollo Las construcciones básicas en el diseño estructurado son: Secuencial: Ejecución de las instrucciones de manera ordenada, una tras otra. Condicional: Toma de decisiones, donde se ejecutan bloques de código dependiendo de una condición. Repetitiva: Ejecución repetida de un bloque de código mientras se cumpla una condición. Fase de Diseño: Diseño orientado a objetos Subsistema: Diseño de los subsistemas que implementan las funciones principales del sistema. Clase y objetos: Especifica la arquitectura de objetos global y la jerarquía de clases necesarias para implementar el sistema. Mensajes: Indica la colaboración entre los objetos a través de mensajes. Responsabilidades: Identificación de operaciones y atributos de cada clase. 3.Fase de Codificación: El programador se encarga de codificar toda la información anterior en un lenguaje de programación. Características deseables de todo código: Modularidad: El código debe estar dividido en partes más pequeñas. Corrección: El código debe hacer lo que se le pide realmente. Fácil de leer: Debe ser comprensible para facilitar su desarrollo y mantenimiento futuro. Eficiencia: El código debe hacer un buen uso de los recursos. Portabilidad: El código debe poder implementarse en cualquier equipo. 3.Fase de Pruebas: Son imprescindibles para asegurar la validación y verificación del software construido. Validación: Serie de actividades para comprobar si el producto es correcto, es decir, si el software se ajusta a los requisitos del cliente. Verificación: Actividades para comprobar si el producto se está construyendo correctamente, según los estándares y requisitos establecidos. Algunos tipos de pruebas son: Pruebas unitarias Se prueban, una a una, las diferentes partes del software y se comprueba su funcionamiento de manera independiente (por separado). JUnit es el entorno de pruebas para Java. Pruebas de integración Consisten en comprobar el funcionamiento del sistema completo, con todas sus partes interrelacionadas. Beta Test: Prueba final que se realiza sobre el entorno de producción, donde el software va a ser utilizado por el cliente. Idealmente, se realiza en los equipos del cliente y bajo un funcionamiento normal de su empresa. El período de prueba será normalmente el pactado con el cliente. Técnicas para diseño de casos de prueba: Prueba de caja blanca: Examen detallado del código. Prueba de caja negra: No es necesario conocer la estructura interna del programa. 3.DOCUMENTACIÓN Todas las etapas en el desarrollo de software deben quedar perfectamente documentadas. ¿Por qué documentar el proyecto? Para proporcionar toda la información necesaria a los usuarios del software y poder acometer futuras revisiones del proyecto. Es necesario documentar el proyecto en todas las fases del mismo para asegurar una transición clara y definida entre las distintas etapas del desarrollo. Una correcta documentación permitirá la reutilización de partes del programa en otras aplicaciones, especialmente si se desarrollan con un diseño modular. Los documentos a elaborar en el proceso de desarrollo de software se pueden agrupar en: Guía técnica, Guía de uso Y Guía de instalación. Guía Documentos Objetivo Dirigido a Facilitar un correcto - Diseño de la aplicación desarrollo, realizar Personal técnico en Guía Técnica - Codificación de los programas correcciones en los informática (analistas y - Pruebas realizadas programas y permitir un programadores) mantenimiento futuro - Descripción de la funcionalidad de la aplicación - Forma de comenzar su Dar a los usuarios finales Los usuarios que van a ejecución toda la información Guía de Uso usar la aplicación - Ejemplos de uso del programa necesaria para utilizar la (clientes) - Requerimientos software aplicación - Solución de los posibles problemas Garantizar que la Personal informático - Información necesaria para: implantación de la responsable de la Guía de - Puesta en marcha aplicación se realice de instalación, en Instalación - Explotación forma segura, confiable y colaboración con los - Seguridad del sistema precisa usuarios (clientes) 3. FASE DE EXPLOTACIÓN La explotación es la instalación, puesta a punto y funcionamiento de la aplicación en el equipo final del cliente.Una vez que las pruebas demuestran que el software es fiable, carece de errores y se ha documentado todo, el siguiente paso es la explotación. En esta fase, los usuarios finales conocen la aplicación y comienzan a utilizarla. Fase Descripción - Proceso en el que los programas son transferidos al computador del usuario cliente, configurados y verificados. 1º Instalación - Es recomendable que los futuros clientes estén presentes en este momento e irles comentando cómo se va planteando la instalación. - Se asignan los parámetros de funcionamiento normal de la empresa y se prueba que la aplicación es operativa. - Puede realizarse por los propios usuarios finales si tienen la guía de 2º Configuración instalación. - Si la aplicación es más sencilla, la configuración puede ser automática. En software "a medida", lo mejor es que lo realicen los que lo han fabricado. - La aplicación pasa a manos de los usuarios finales y comienza la explotación 3º Producción del software. normal - Es crucial tener todo preparado antes de presentar el producto al cliente, ya que será el momento crítico del proyecto. 3. FASE DE MANTENIMIENTO En el caso de la construcción de software con la entrega de nuestra aplicación (la instalación y configuración de nuestro proyecto en los equipos del cliente), se debe llevar a cabo la etapa de mantenimiento, que es la más larga de todo el ciclo de vida del software. El software deberá actualizarse y evolucionar con el tiempo, adaptándose a las mejoras del hardware y afrontando situaciones nuevas que no existían cuando el software se construyó. Siempre surgen errores que habrá que ir corrigiendo, y nuevas versiones del producto que serán mejores que las anteriores. Es necesario pactar con el cliente un servicio de mantenimiento de la aplicación, que también tendrá un coste temporal y económico. Tipo de Cambio Descripción Correctivos La aplicación tendrá errores en el futuro (sería utópico pensar lo contrario). Modificaciones y actualizaciones para adaptarse a las nuevas tendencias del Adaptativos mercado, a nuevos componentes de hardware, etc. Mejora o El cliente tendrá en el futuro nuevas necesidades. Por tanto, serán necesarias Evolutivos modificaciones, expansiones o eliminaciones de código. Preventivos Cambios para facilitar las futuras operaciones de mantenimiento. 4.LENGUAJE DE PROGRAMACIÓN Un lenguaje de programación es un idioma creado de forma artificial, formado por un conjunto de símbolos y normas que se aplican sobre un alfabeto para obtener un código que el hardware de la computadora pueda entender y ejecutar. Un lenguaje de programación es un conjunto de: Alfabeto: Conjunto de símbolos permitidos. Sintaxis: Normas de construcción permitidas de los símbolos del lenguaje. Semántica: Significado de las construcciones para hacer acciones válidas. Clasificación de lenguajes de programación: Según lo cerca que está del lenguaje humano: L. máquina L. ensamblador L. de alto nivel Según la técnica de programación utilizada: L. Estructurados L. Orientados a Objetos (OO) L. Visuales Clasificación Lenguaje Máquina Lenguaje Ensamblador Lenguaje de Alto Nivel Es único para cada Lenguaje de bajo nivel, Utiliza sentencias y Según lo cerca procesador y no es compuesto solo por unos y órdenes derivadas del que está del portable entre diferentes ceros. Es el único que idioma inglés. Necesita lenguaje equipos. Requiere entiende directamente el traducción al lenguaje humano: traducción al lenguaje ordenador. máquina. máquina. Sustituyó al lenguaje Utiliza mnemotécnicos en Son más cercanos al Según la técnica máquina para facilitar la lugar de unos y ceros. razonamiento humano. de programación labor de programación. Se Necesita traducción al Son utilizados hoy día y utilizada: usan mnemotécnicos e lenguaje máquina para se traducen al lenguaje instrucciones complejas. ejecutarse. máquina. Categoría Descripción Programación Estructurada Los programas se tratan como un conjunto ordenado de Características sentencias. Secuencia: Instrucciones que se ejecutan una tras otra. Alternativa: Decisiones condicionales. Repetitiva: Ejecución repetida bajo condiciones. Ventajas Los programas son fáciles de leer, sencillos y rápidos. El mantenimiento es sencillo. La estructura del programa es clara. Todo el programa se concentra en un único bloque (si se hace Inconvenientes demasiado grande, es difícil manejarlo). No permite reutilización eficaz de código. No es útil para programas muy largos. La programación estructurada fue sustituida por la programación Solución modular, donde los programas se codifican en módulos y bloques, permitiendo mayor funcionalidad. Lenguajes Orientados a Objetos Los programas se componen de objetos independientes que Características colaboran entre sí para realizar acciones. Los objetos tienen atributos que los diferencian. Se define una clase como una colección de objetos con características similares. Los objetos se comunican entre sí mediante métodos, produciendo un cambio de estado. Ventajas El código es reutilizable. Es más fácil localizar y depurar errores en un objeto que en un programa entero. La programación orientada a objetos es menos intuitiva que la Inconvenientes estructurada. Ejemplos de Lenguajes Java, Ada, C++, C# Lenguajes Visuales Están sustituyendo a los lenguajes de alto nivel basados en Descripción código. En lugar de sentencias escritas, se programa gráficamente usando el ratón y diseñando directamente la apariencia del software. Su correspondiente código se genera automáticamente. Necesitan traducción al lenguaje máquina. Son completamente portables de un equipo a otro. 5.TIPOS DE CÓDIGO MÁQUINAS VIRTUALES ENTORNOS DE EJECUCIÓN. FRAMEWORKS 5.TIPOS DE CÓDIGO Código Fuente: Es el código original que escribe el programador en un lenguaje de alto nivel, como Java, Python o C++. Este código es fácil de entender para los humanos. 2. Código Objeto: Es el resultado de compilar el código fuente. Se convierte en código binario, pero no es entendible directamente por humanos ni por computadoras. 3. Código Ejecutable (o Código Máquina): Es el código final que se obtiene tras enlazar el código objeto con bibliotecas y rutinas necesarias. Es el único código que las computadoras pueden entender y ejecutar directamente. Este proceso convierte el programa de un lenguaje comprensible para los humanos a uno que la máquina puede ejecutar. Tipo de Código Descripción Código Fuente - Conjunto de instrucciones escritas en un lenguaje de alto nivel. - Se obtiene a partir de las etapas de análisis y diseño. - Incluye el diseño de un algoritmo y la elección de un lenguaje de programación apropiado. - Contiene la codificación de todos los módulos, funciones, bibliotecas y procedimientos necesarios. Tipos según Abierto: Disponible para estudiar, modificar o reutilizar. Licencia Cerrado: No se permite editarlo. Código Objeto - Resultado de la compilación del código fuente. - Código en formato binario (unos y ceros), aún no ejecutable por la computadora. - Sólo se genera cuando el código fuente no tiene errores sintácticos ni semánticos. Código Ejecutable - Resultado de enlazar los archivos de código objeto. - Archivo único que puede ser ejecutado directamente por la computadora. Tipo de Código Descripción - No requiere aplicaciones externas y es controlado por el sistema operativo. 5.MÁQUINAS VIRTUALES Una máquina virtual de proceso es un software especial que actúa como un puente entre una aplicación y el hardware del equipo donde se usa. Su principal objetivo es permitir que las aplicaciones funcionen en cualquier equipo, sin importar las características del hardware instalado. Gracias a las máquinas virtuales, podemos desarrollar y ejecutar programas en distintos dispositivos, asegurando que sean portables y funcionen correctamente en todos ellos. Funciones principales de una máquina virtual: Portabilidad de aplicaciones → Permite que las aplicaciones se ejecuten en diferentes dispositivos, sin importar el hardware. Gestión de memoria → Asigna memoria para objetos creados. → Libera la memoria no utilizada. Comunicación con el sistema huésped → Controla los dispositivos de hardware del sistema donde se instala la aplicación. Cumplimiento de normas de seguridad → Asegura que las aplicaciones sigan las normas de seguridad necesarias. Características de la máquina virtual: Generación de código objeto: → Al compilar el código fuente, se obtiene bytecode, un código intermedio que no depende del hardware. Independencia del hardware: → La máquina virtual permite que el código se ejecute en cualquier máquina, sin importar sus características físicas. Aislamiento de la aplicación: → Se encarga de ocultar los detalles del hardware y aísla la aplicación de las especificaciones físicas del equipo. Capa de software de bajo nivel: → Actúa como un puente entre el bytecode y los dispositivos físicos del sistema. Verificación del bytecode: → Antes de ejecutar la aplicación, la máquina virtual verifica todo el bytecode para asegurar que no haya errores. Protección de memoria: → Protege las direcciones de memoria para evitar accesos no autorizados o errores. 5. MÁQUINA VIRTUAL JVM 5.ENTORNO DE EJECUCIÓN Conjunto de utilidades para la ejecución de programas: Definición: → Es un servicio de la máquina virtual que proporciona la base de software necesaria para ejecutar programas. Componentes: Máquina virtual API's (bibliotecas de clases estándar): Necesarias para ejecutar los programas. Ubicación: → Puede ser parte del sistema operativo o instalarse como software independiente. Runtime: → Es el tiempo que tarda un programa en ejecutarse en la computadora. Funciones durante la ejecución del entorno: Configurar la memoria: → Asigna y gestiona la memoria principal disponible en el sistema. Enlazar archivos: → Conecta los archivos del programa con bibliotecas existentes y subprogramas creados. → Bibliotecas: Subprogramas preexistentes para ayudar a desarrollar o comunicar componentes de software. → Subprogramas: Aquellos que hemos creado específicamente para el programa. Depurar los programas: → Verifica si hay errores semánticos (los errores sintácticos ya se detectaron en la compilación). 5. JAVA RUNTIME ENVIRONMENT (JRE) Concepto: → JRE es el entorno de ejecución de Java. → Proporciona un conjunto de utilidades que permiten ejecutar programas Java en cualquier plataforma, independientemente del sistema operativo. Este entorno asegura que los programas Java se puedan ejecutar en diferentes dispositivos y sistemas operativos sin problemas. Componentes del JRE: 1. Máquina Virtual Java (JVM): → Interpreta y ejecuta el código de las aplicaciones escritas en Java. 2. Bibliotecas de clase estándar: → Implementan el API de Java, proporcionando herramientas y funciones esenciales para el desarrollo de programas en Java. → La JVM y el API de Java están alineados y se distribuyen juntos. Instalación: Java es software libre: → Puedes descargar el JRE desde su página oficial (por ejemplo, Java2 Runtime Environment 1.6.0.21). Pasos para la instalación: → Sigue las instrucciones del asistente de instalación para configurar JRE en tu equipo. 5.FRAMEWORKS Definición: → Plataforma de software que ayuda al programador a desarrollar proyectos sin tener que empezar desde cero. → Incluye programas de soporte, bibliotecas y herramientas para unir los diferentes módulos de un proyecto. Ejemplos de Frameworks: 1..NET: Para aplicaciones sobre Windows. Visual Studio.NET facilita la construcción de aplicaciones. El.NET Framework permite ejecutar dichas aplicaciones. Es un componente que se instala sobre el sistema operativo. 2. Spring (Java): Framework para desarrollar aplicaciones en Java, que proporciona herramientas y bibliotecas para facilitar el desarrollo. Ventajas de utilizar un framework: Desarrollo rápido de software: → Permite construir aplicaciones más rápidamente, gracias a herramientas y bibliotecas predefinidas. Reutilización de código: → Las partes de código pueden reutilizarse en otros proyectos, ahorrando tiempo y esfuerzo. Diseño uniforme: → Promueve un diseño consistente en todo el software, facilitando su mantenimiento. Portabilidad de aplicaciones: → Los bytecodes generados pueden ejecutarse en cualquier máquina virtual, permitiendo que las aplicaciones sean portátiles. Inconvenientes de utilizar un framework: Dependencia del framework: → Si se cambia de framework, es probable que se tenga que reescribir gran parte de la aplicación. Consumo de recursos: → La instalación e implementación del framework en el equipo requiere una cantidad significativa de recursos del siste 6.METODOLOGÍAS DE DESARROLLO SOFTWARE Metodología de desarrollo de sistemas de información: Definición: → Conjunto de filosofías, fases, procedimientos, reglas, técnicas, herramientas, documentación y formación para los desarrolladores de sistemas de información. Ciclo de vida: → La metodología puede seguir uno o varios modelos de ciclo de vida. → Ciclo de vida: Indica qué hay que obtener a lo largo del desarrollo del proyecto. → Metodología: Indica cómo se deben realizar las tareas dentro del proyecto. Desarrollo convencional: → El enfoque inicial del desarrollo de software, sin un marco claro ni procesos definidos. Metodologías estructuradas: → Se introdujeron procedimientos y fases más definidas para organizar el desarrollo de software. Metodologías orientadas a objetos: → Se basan en objetos y clases, promoviendo la reutilización y la modularidad en el código. Proceso unificado de desarrollo (RUP): → Modelo de desarrollo que organiza el proyecto en fases iterativas, centrado en la calidad y en la adaptación a los cambios. Modelos de desarrollo ágil: Programación extrema (XP): → Se enfoca en la comunicación continua con el cliente y el desarrollo rápido, priorizando la calidad del código. Scrum: → Un enfoque ágil basado en ciclos de trabajo cortos (sprints), con reuniones frecuentes y colaboración continua.