Software y Modelos de Licenciamiento

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es una característica principal de los entornos de desarrollo integrados (IDEs)?

  • Son sistemas operativos diseñados para programadores.
  • Permiten que los programadores usen múltiples lenguajes al mismo tiempo.
  • Agrupan herramientas en un entorno visual para facilitar el desarrollo. (correct)
  • Obligan a usar comandos específicos para cada acción.

¿Qué distingue al software shareware de otros tipos de software?

  • Es completamente gratuito y siempre accesible.
  • No permite ninguna distribución.
  • No tiene restricciones para su modificación.
  • Se evalúa de forma gratuita por un tiempo limitado. (correct)

¿Cuál de las siguientes afirmaciones sobre el software as a service (SaaS) es correcta?

  • Requiere que el usuario modifique el software para utilizarlo.
  • Se paga una sola vez para obtener acceso indefinido.
  • Se distribuye sin ningún tipo de cargo.
  • Normalmente incluye un costo mensual por su uso. (correct)

¿Qué aspecto define una licencia de software?

<p>Es un contrato que establece derechos y deberes entre desarrollador y usuario. (D)</p> Signup and view all the answers

¿Cuál es la principal limitación del software freeware?

<p>Normalmente incluye restricciones en su distribución y uso. (D)</p> Signup and view all the answers

¿Qué significa que el software adware cargue publicidad en el ordenador del usuario?

<p>Permite el uso libre pero introduce anuncios durante su uso. (D)</p> Signup and view all the answers

¿Cuál es una característica del modelo tradicional de distribución de software?

<p>El usuario adquiere el software y lo tiene para siempre sin cargos adicionales. (B)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones es verdadera sobre los costos de mantenimiento en el modelo tradicional de software?

<p>El mantenimiento y las actualizaciones suelen estar excluidas. (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones describe mejor a los lenguajes compilados?

<p>Generan un código objeto tras un análisis del código fuente. (B)</p> Signup and view all the answers

¿Qué es característico de un lenguaje interpretado?

<p>Ejecuta sólo las partes necesarias del programa en cada ejecución. (C)</p> Signup and view all the answers

En el contexto de los lenguajes mixtos, ¿cuál es su proceso de ejecución?

<p>Primero son compilados a un código intermedio y luego interpretados. (A)</p> Signup and view all the answers

¿Cuál de las siguientes es una ventaja de la programación modular?

<p>Permite que varios programadores trabajen en una aplicación simultáneamente. (B)</p> Signup and view all the answers

¿Qué significa la iteración en programación estructurada?

<p>Repetir un conjunto de instrucciones mientras se cumpla una condición. (D)</p> Signup and view all the answers

¿Cuál de las siguientes construcciones lógicas no pertenece a la programación estructurada?

<p>Modularidad (B)</p> Signup and view all the answers

¿Cómo se clasifica un lenguaje que permite múltiples estilos de programación?

<p>Lenguaje de medio o alto nivel (D)</p> Signup and view all the answers

¿Qué implica que un lenguaje tenga una fase de compilación previa a su ejecución?

<p>Que genera un código intermedio antes de la interpretación. (D)</p> Signup and view all the answers

¿Cuál es una ventaja del modelo evolutivo iterativo incremental?

<p>No se necesita definir todos los requisitos desde el principio. (A)</p> Signup and view all the answers

¿Qué desventaja se menciona sobre el modelo evolutivo iterativo incremental?

<p>Es complicado determinar el coste final del proyecto. (A)</p> Signup and view all the answers

Cuando se recomienda utilizar el modelo evolutivo, ¿cuál de las siguientes afirmaciones es correcta?

<p>Los requisitos pueden cambiar durante el desarrollo. (C)</p> Signup and view all the answers

¿Cuál es una de las actividades principales en el modelo evolutivo en espiral?

<p>Determinación de objetivos y evaluación de riesgos. (D)</p> Signup and view all the answers

¿Qué papel juegan los prototipos en el modelo evolutivo?

<p>Se utilizan para evaluar requisitos y opciones de diseño. (B)</p> Signup and view all the answers

¿Qué aspecto del modelo evolutivo en espiral se considera crucial?

<p>La evaluación de riesgos durante cada ciclo. (C)</p> Signup and view all the answers

¿Qué significa que el desarrollo del software se represente como una espiral?

<p>Implica un enfoque repetitivo con ciclos de evaluación. (C)</p> Signup and view all the answers

Dentro del ciclo del modelo evolutivo, qué se evalúa en la fase de evaluación de riesgos?

<p>Las alternativas y problemas de cada opción. (A)</p> Signup and view all the answers

¿Qué libertades son otorgadas por el software libre?

<p>Estudiar y modificar el programa. (B)</p> Signup and view all the answers

¿Cuál es una característica del software propietario?

<p>No permite modificar el software. (B)</p> Signup and view all the answers

¿Qué es el software de dominio público?

<p>Es software que no posee licencia y puede ser utilizado libremente. (B)</p> Signup and view all the answers

¿Cuál es la función de las licencias Creative Commons?

<p>Otorgar derechos de uso público sobre obras protegidas. (A)</p> Signup and view all the answers

Según la ISO, el ciclo de vida del software abarca desde:

<p>La definición de requisitos hasta la finalización de su uso. (C)</p> Signup and view all the answers

¿Qué obligación tiene el usuario según la licencia GPL?

<p>Hacer públicas las versiones modificadas. (B)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor el software libre?

<p>Permite a los usuarios estudiar, modificar y distribuir copias. (C)</p> Signup and view all the answers

¿Cuál de los siguientes NO es un tipo de software mencionado?

<p>Software educativo. (C)</p> Signup and view all the answers

¿Cuál es la ventaja principal de escribir programas en Java?

<p>Los programas son independientes del hardware y del sistema operativo. (D)</p> Signup and view all the answers

¿Qué se genera al compilar un programa fuente en Java?

<p>Un código intermedio conocido como bycode. (B)</p> Signup and view all the answers

¿Cuál es la característica más importante del modelo en cascada?

<p>Divide el proceso en fases consecutivas y no se puede comenzar una fase sin completar la anterior. (D)</p> Signup and view all the answers

¿Qué es la Java Virtual Machine (JVM)?

<p>Es una máquina virtual que interpreta el código bycode. (C)</p> Signup and view all the answers

¿Qué se entiende por 'realimentación' en el modelo en cascada?

<p>El retorno a fases anteriores para realizar ajustes cuando se detectan fallos. (C)</p> Signup and view all the answers

¿Cuál es una desventaja de usar la Java Virtual Machine?

<p>Consume más recursos del sistema que el software nativo. (D)</p> Signup and view all the answers

¿Cómo permite Java la ejecución de un programa en diferentes sistemas operativos?

<p>A través de la máquina virtual que se adapta a cada sistema operativo. (D)</p> Signup and view all the answers

¿Qué sucede si se requiere una mejora durante la etapa de mantenimiento en el modelo en cascada?

<p>Hay que modificar el diseño, el código y las pruebas, recorriendo nuevamente el ciclo. (D)</p> Signup and view all the answers

¿Qué permite hacer la utilización de máquinas virtuales en general?

<p>Instalar varios sistemas operativos sin múltiples discos duros. (B)</p> Signup and view all the answers

¿Cuál de los siguientes modelos no se considera parte de los modelos de ciclo de vida del software enumerados?

<p>Modelo de programación asociativa. (C)</p> Signup and view all the answers

¿Qué implica el proceso de instalar Java en una computadora?

<p>Instalar la máquina virtual de Java apropiada para el sistema operativo. (D)</p> Signup and view all the answers

En el modelo de ciclo de vida clásico, ¿qué acción se toma después de cada fase?

<p>Se realiza una revisión para comprobar si se puede pasar a la siguiente fase. (D)</p> Signup and view all the answers

En el modelo en cascada tradicional, si se detectan ambigüedades en la fase de diseño, ¿qué se debe hacer?

<p>Volver a la fase de análisis para realizar los ajustes necesarios. (A)</p> Signup and view all the answers

¿Qué se debe tener en cuenta al desarrollar aplicaciones con Java?

<p>Es necesario instalar la máquina virtual específica para cada plataforma. (D)</p> Signup and view all the answers

¿Cuál de estas metodologías ágiles no se menciona como un modelo de ciclo de vida del software?

<p>Metodología en cascada. (A)</p> Signup and view all the answers

¿Qué implica que el modelo en cascada sea un 'ciclo de vida clásico' del software?

<p>Indica que se basa en fases secuenciales bien definidas. (A)</p> Signup and view all the answers

Flashcards

Software de programación o desarrollo

Software que proporciona herramientas para que los programadores escriban y usen diferentes lenguajes de programación de forma práctica.

IDEs (Entornos de Desarrollo Integrados)

Entornos de desarrollo integrados que agrupan varias herramientas de programación en un entorno visual para facilitar el desarrollo de software.

Licencia tradicional de software

Modelo de distribución donde el usuario adquiere el derecho a usar el software de forma permanente.

Shareware

Software que se distribuye gratuitamente y permite que el usuario lo evalúe durante un tiempo limitado.

Signup and view all the flashcards

Freeware

Software que se distribuye sin ningún cargo. Puede tener restricciones de uso.

Signup and view all the flashcards

Adware

Software que se distribuye de forma gratuita, pero que incluye publicidad en el ordenador del usuario.

Signup and view all the flashcards

SaaS (Software as a Service)

Modelo de distribución en el que el usuario paga por el uso del software, normalmente con una cuota mensual.

Signup and view all the flashcards

Licencia de software

Un contrato que define los derechos y deberes del desarrollador y el usuario de un software.

Signup and view all the flashcards

Software Libre

El autor del software cede una serie de libertades al usuario, como usar el programa con cualquier fin, modificarlo y distribuir copias, incluso con modificaciones.

Signup and view all the flashcards

Software Propietario

El software se distribuye en formato binario, el código fuente no está disponible y las libertades del usuario pueden estar restringidas.

Signup and view all the flashcards

Software de Dominio Público

El software no tiene licencia o se desconoce su autor, lo que permite a cualquiera utilizarlo sin restricciones.

Signup and view all the flashcards

Ciclo de Vida del Software

Un conjunto de procesos y actividades que abarca la vida del software, desde la definición de requisitos hasta su finalización.

Signup and view all the flashcards

Licencias Creative Commons

Las licencias Creative Commons permiten compartir y utilizar obras creativas de forma legal y gratuita.

Signup and view all the flashcards

ISO y el Ciclo de Vida del Software

La ISO define el ciclo de vida del software como un marco que incluye los procesos, actividades y tareas involucradas en su desarrollo, explotación y mantenimiento.

Signup and view all the flashcards

Modelo en Cascada

Un modelo de ciclo de vida del software que divide el proceso en etapas consecutivas, donde cada etapa debe completarse antes de comenzar la siguiente.

Signup and view all the flashcards

Modelo en cascada con realimentación

Una variante del modelo en cascada que permite volver a etapas anteriores para realizar ajustes o corregir errores.

Signup and view all the flashcards

Ciclo de vida lineal

El nombre alternativo para el modelo en cascada, que enfatiza su naturaleza lineal.

Signup and view all the flashcards

Revisión en el modelo en cascada

Una revisión que se realiza al final de cada etapa en el modelo en cascada para verificar si se cumplen los requisitos y si se puede avanzar a la siguiente etapa.

Signup and view all the flashcards

Mantenimiento de software

El proceso de modificar el software o sus requisitos después de que el producto ha sido lanzado al mercado.

Signup and view all the flashcards

Mejora de software

El proceso de realizar cambios en el software para satisfacer nuevas necesidades o requisitos.

Signup and view all the flashcards

Iteraciones en el modelo en cascada

Las situaciones en las que el cliente necesita una mejora adicional en el software que implica volver a etapas anteriores del desarrollo.

Signup and view all the flashcards

Cambios en el diseño, la codificación y las pruebas

Cambios en el software que requieren modificar el diseño, la codificación y las pruebas.

Signup and view all the flashcards

Lenguajes compilados

Los lenguajes compilados transforman el código fuente a código máquina (ejecutable por el ordenador) mediante un compilador. Este analiza el código buscando errores y solo si no hay errores, genera el código objeto. Ejemplo: lenguaje C.

Signup and view all the flashcards

Lenguajes interpretados

Los lenguajes interpretados utilizan un intérprete para traducir y ejecutar las instrucciones del programa. El intérprete traduce y ejecuta solo las partes del programa que se necesitan en cada momento. Ejemplo: JavaScript.

Signup and view all the flashcards

Lenguajes mixtos

Estos lenguajes primero compilan el código fuente a un código intermedio. Luego, un intérprete ejecuta el código intermedio.

Signup and view all the flashcards

Programación estructurada

La programación estructurada utiliza tres estructuras: Secuencia (instrucciones ordenadas), Decisión (ramificación basada en condiciones), Iteración (repetición de instrucciones).

Signup and view all the flashcards

Programación modular

Es un estilo de programación que divide un programa en módulos independientes. Cada módulo se encarga de una tarea específica.

Signup and view all the flashcards

Ventajas de la programación modular

Las ventajas de la programación modular son: dividir el trabajo entre varios programadores, reutilizar módulos en otros programas, solucionar problemas pequeños que no afectan al resto del programa.

Signup and view all the flashcards

Compilador

Un compilador es un programa que traduce el código fuente de un lenguaje de programación a código máquina. Este código se utiliza para ejecutar programas en un ordenador.

Signup and view all the flashcards

Intérprete

Un intérprete es un programa que lee, traduce y ejecuta instrucciones de un lenguaje de programación. Se utiliza en lenguajes interpretados, traduciendo y ejecutando el código línea por línea.

Signup and view all the flashcards

Modelo Iterativo Incremental

Este modelo de desarrollo de software se caracteriza por la entrega de versiones funcionales del producto en iteraciones cortas. Cada versión construye sobre la anterior, incrementando la funcionalidad del software a medida que avanza el desarrollo.

Signup and view all the flashcards

Prototipos en el Modelo Iterativo Incremental

Se utiliza para evaluar mejor los requisitos del sistema y probar opciones de diseño. Permite obtener información temprana sobre la funcionalidad del sistema y realizar ajustes en las etapas iniciales.

Signup and view all the flashcards

Flexibilidad en los requisitos

Una de las ventajas del modelo iterativo incremental es que no es necesario conocer todos los requisitos del sistema desde el inicio. Se pueden ir agregando requisitos a medida que avanza el desarrollo.

Signup and view all the flashcards

Entrega rápida de versiones

Otra ventaja del modelo iterativo incremental es que permite entregar versiones funcionales del software al cliente con rapidez, lo que facilita una respuesta temprana y constante.

Signup and view all the flashcards

Dificultad para estimar el coste final

Una limitación del modelo iterativo incremental es que puede ser complicado determinar el costo final del proyecto debido a la evolución constante de los requisitos.

Signup and view all the flashcards

Tiempo de desarrollo indefinido

Otra limitación del modelo iterativo incremental es que puede resultar muy largo al no determinar desde el principio el alcance del proyecto. La falta de una planificación clara puede generar retrasos.

Signup and view all the flashcards

Cuándo usar el modelo iterativo incremental

El modelo iterativo incremental es una opción recomendada cuando los requisitos del sistema no están completamente definidos o pueden cambiar. También es ideal para probar nuevas tecnologías durante el proceso de desarrollo.

Signup and view all the flashcards

Modelo Iterativo en Espiral

Este modelo es una combinación del modelo en cascada con el modelo iterativo de construcción de prototipos. Se desarrolla una versión incremental del software en cada ciclo, y se incluye una etapa de análisis de riesgos en cada etapa del desarrollo.

Signup and view all the flashcards

Independencia de plataforma en Java

Java permite escribir programas que funcionan en diferentes sistemas operativos sin necesidad de realizar cambios en el código fuente.

Signup and view all the flashcards

Bytecode en Java

Un programa escrito en Java se compila en un código intermedio llamado 'bytecode'.

Signup and view all the flashcards

Java Virtual Machine (JVM)

La JVM es una máquina virtual que interpreta el bytecode de Java y lo ejecuta en el sistema operativo del ordenador.

Signup and view all the flashcards

Instalación de la JVM

Para ejecutar un programa Java, se necesita instalar la JVM en el sistema operativo del ordenador.

Signup and view all the flashcards

Portabilidad del bytecode

El 'bytecode' de Java se puede ejecutar en cualquier sistema operativo que tenga una JVM instalada.

Signup and view all the flashcards

JVM específica de plataforma

La JVM es específica para cada plataforma (Windows, Linux, Mac, etc.) aunque el programa Java es independiente de la plataforma.

Signup and view all the flashcards

Máquinas virtuales para probar sistemas operativos

Las máquinas virtuales permiten ejecutar diferentes sistemas operativos en un mismo ordenador sin necesidad de crear particiones.

Signup and view all the flashcards

Pruebas de software con máquinas virtuales

Las máquinas virtuales son una herramienta útil para probar versiones beta de software sin afectar al sistema operativo principal.

Signup and view all the flashcards

Study Notes

Entornos de Desarrollo

  • El curso se llama Desarrollo de Aplicaciones Multiplataforma (DAM1)
  • El curso se imparte durante el año 2024-2025
  • La profesora se llama María Miranda Herrero
  • El centro es CIFP Santa Catalina

Unidad Temática 1: Desarrollo del Software

  • La unidad temática se centra en el desarrollo del software.

Contenido

  • Introducción: Definición de Sistema Informático
  • Relación entre hardware y software: Características del hardware (elementos físicos) y el software (elementos no físicos)
  • El software: Definición y tipos
  • Ciclo de vida del software: Etapas del desarrollo de software (Análisis, Diseño, Codificación, Pruebas, Explotación, Mantenimiento)
  • Lenguajes de programación: Tipos de lenguajes.
  • Código fuente, código objeto y código ejecutable: Diferencias entre cada tipo de código.
  • Máquinas virtuales: Definición, usos, y tipos (de sistema y de proceso)

Introducción

  • Un sistema informático es una herramienta para almacenar y procesar información.
  • Está compuesto por hardware, software y personal informático.
    • Hardware: Componente físico del ordenador
    • Software: Programas y aplicaciones que hacen funcionar el ordenador.
    • Personal informático: Personal técnico que se encarga de la creación y mantenimiento del sistema.
    • Usuarios finales: Usuarios que hacen uso del sistema.

Qué es un programa informático

  • Un programa informático es un conjunto de instrucciones para realizar tareas en un ordenador.
  • Puede ser un programa ejecutable o el código fuente.
  • Las instrucciones se basan en un lenguaje de programación.
  • El software es la colección de programas y datos relacionados con el ordenador.

Relación entre hardware y software

  • Hardware: Componentes tangibles del ordenador, clasificados en dos categorías:
    • Los componentes que están dentro de la CPU (no visibles a simple vista).
    • Los periféricos, los componentes que se encuentran alrededor de la CPU.
  • Software: Instrucciones que necesita el ordenador para funcionar (no físicamente visibles). Hay dos tipos:
    • Sistemas operativos.
    • Aplicaciones.

El Software

  • Define software como programas que dan instrucciones al hardware y los datos que procesan.
  • Software se clasifica por el tipo de tarea que realiza (sistema, aplicación y programación/desarrollo) y por método de distribución (shareware, freeware, adware, SaaS).

Licencias de Software

  • Licencia de software: un contrato entre el desarrollador y el usuario que define los derechos y deberes de ambos.
  • Tipos de licencias: software libre, software propietario y software de dominio público.

Ciclo de Vida del Software

  • La Organización Internacional de Estandarización (ISO) normaliza el desarrollo de software.

  • El ciclo de vida del software abarca las actividades para desarrollar, operar, y mantener un producto de software desde la definición de los requisitos hasta su uso.

  • Etapas principales: Análisis, Diseño, Codificación, Pruebas, Explotación y Mantenimiento.

  • *Análisis: Determinar los requisitos del sistema (datos, procesos, situaciones que afectan al sistema)

  • *Diseño: Especificar cómo resolver el problema, que módulos se requieren, la comunicación entre ellos, diseño de interfaces de usuario (pantallas).

  • *Codificación: Traducción de diseño a un código ejecutable por la máquina.

  • *Pruebas: Verificación del cumplimiento de los criterios de calidad.

  • *Explotación: Instalación y puesta en marcha del software en el entorno de trabajo del cliente.

  • *Mantenimiento: Adaptar el sistema a los cambios en el entorno y requisitos.

  • Cada una de las etapas debe terminar con una documentación.

  • La documentación se compone de tres partes:

    • Documentación interna.
    • Documentación externa
    • Manual de Usuario.
  • Se distinguen diferentes modelos de ciclo de vida: en cascada, iterativo e incremental , iterativo en espiral, y modelos agiles (Scrum, programación extrema (XP), kanban).

Lenguajes de Programación

  • Lenguajes de programación.

    • Léxico (conjunto de símbolos permitidos)
    • Sintaxis (reglas de construcción correctas de las instrucciones)
    • Semántica (asociación de significado a cada construcción del lenguaje).
  • Clasificación de lenguajes de programación:

    • Según el nivel de abstracción: bajo nivel, medio nivel, alto nivel .
    • Según la manera de ejecutarse : compilados, interpretados y mixtos.
    • Según el paradigma de programación: estructurado y orientado a objetos.

Código fuente, código objeto y código ejecutable

  • Código fuente: El código escrito por los programadores en un lenguaje de programación.

  • Compilación: El proceso de convertir el código fuente en código objeto usable por la máquina.

  • Código intermedio: Una forma intermedia de representación (por ejemplo, bytecode).

  • Código objeto: Representación del código fuente en lenguaje máquina.

  • Enlace: El proceso de combinar el código objeto con librerías para crear el código ejecutable.

  • Código ejecutable: el código listo para ser ejecutado en el ordenador.

  • El área de la informática que se dedica a la escritura de programas y por tanto a la creación del código fuente es la programación.

Máquinas Virtuales

  • Una máquina virtual es un software que simula un ordenador.
  • Ofrece flexibilidad, permite ejecutar distintos sistemas operativos sin afectar al equipo principal.
  • Tipos: de sistema (permite ejecutar varias máquinas virtuales) y de proceso (se ejecuta como un proceso normal y solo se detiene cuando el proceso finaliza).
  • La función de la máquina virtual de Java es traducir el código fuente escrito en Java (código intermedio 'bycode') en código entendible por la máquina.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

UT1 Desarrollo del Software PDF

More Like This

Software Licensing Options
30 questions

Software Licensing Options

WorthwhilePyrite5473 avatar
WorthwhilePyrite5473
Software Licensing and Piracy Quiz
3 questions
Software Licensing
8 questions

Software Licensing

DurableNobility avatar
DurableNobility
Use Quizgecko on...
Browser
Browser