Este documento presenta una introducción al software, incluyendo diferentes tipos como software de sistema, de aplicación y de programación, así como las etapas del proceso de desarrollo de software. También discute conceptos como licencias de software, máquinas virtuales y lenguajes de programación.
El documento habla sobre diferentes tipos de software, incluyendo software de sistema, software de aplicación, y software de programación. También describe las etapas del proceso de desarrollo de software como la captura de requisitos, el diseño, la programación y más. Finalmente, explica conceptos como licencias de software, máquinas virtuales y diferentes formatos de código durante el desarrollo de software.
Este documento describe la importancia de la ingeniería de requisitos en el desarrollo de software y resume varias técnicas clave utilizadas en el proceso de ingeniería de requisitos, como entrevistas, lluvia de ideas, casos de uso y prototipos. También explica las fases e involucra a los usuarios en la definición de requisitos para asegurar que se satisfagan sus necesidades.
El documento describe las diferentes categorías de software, incluyendo software de sistema, software de aplicación, software de programación y las etapas del proceso de desarrollo de software como la captura de requisitos, diseño, codificación, pruebas, instalación y mantenimiento. Además, proporciona ejemplos de software populares para cada categoría y describe brevemente cada etapa del proceso de desarrollo.
Este documento define y explica los principales conceptos relacionados con el software. Define software como el conjunto de programas y datos lógicos que hacen posible las operaciones de un sistema computacional. Explica las clasificaciones principales de software, incluyendo software de sistema, software de programación y software de aplicación. También describe las etapas clave en el proceso de desarrollo de software, como la captura de requisitos, diseño, codificación, pruebas e implementación.
Este documento describe la diferencia entre los requerimientos del cliente y los requerimientos del desarrollador. Explica que los requerimientos del cliente se expresan en lenguaje natural y se enfocan en lo que el usuario desea, mientras que los requerimientos del desarrollador son más técnicos y detallados, describiendo cómo debe funcionar el sistema internamente. También señala algunos errores comunes a evitar en la expresión de requerimientos del cliente.
The document discusses key concepts in requirements engineering, including defining what a requirement is, what requirements engineering is, and the basic activities and participants involved in developing a software system. It provides an overview of requirements engineering processes and techniques to understand the necessary elements for defining a software project.
El documento trata sobre conceptos fundamentales de diseño de software como la importancia del diseño en el desarrollo de software, técnicas de diseño como el diseño orientado a objetos, y métodos para garantizar la calidad del software como las pruebas y el mantenimiento preventivo. También cubre temas como los fundamentos del diseño, especificaciones de requisitos, y métodos de análisis de requisitos.
Este documento presenta los conceptos fundamentales de la ingeniería de requisitos. Define los tipos de requisitos como requisitos de usuario, funcionales y no funcionales. Explica las actividades de elicitación, validación y gestión de requisitos. Además, describe los formatos para escribir requisitos de manera clara y precisa.
El documento habla sobre diferentes tipos de software, incluyendo software de sistema, software de aplicación, y software de programación. También describe las etapas del proceso de desarrollo de software como la captura de requisitos, el diseño, la programación y más. Finalmente, explica conceptos como licencias de software, máquinas virtuales y diferentes formatos de código durante el desarrollo de software.
Este documento describe la importancia de la ingeniería de requisitos en el desarrollo de software y resume varias técnicas clave utilizadas en el proceso de ingeniería de requisitos, como entrevistas, lluvia de ideas, casos de uso y prototipos. También explica las fases e involucra a los usuarios en la definición de requisitos para asegurar que se satisfagan sus necesidades.
El documento describe las diferentes categorías de software, incluyendo software de sistema, software de aplicación, software de programación y las etapas del proceso de desarrollo de software como la captura de requisitos, diseño, codificación, pruebas, instalación y mantenimiento. Además, proporciona ejemplos de software populares para cada categoría y describe brevemente cada etapa del proceso de desarrollo.
Este documento define y explica los principales conceptos relacionados con el software. Define software como el conjunto de programas y datos lógicos que hacen posible las operaciones de un sistema computacional. Explica las clasificaciones principales de software, incluyendo software de sistema, software de programación y software de aplicación. También describe las etapas clave en el proceso de desarrollo de software, como la captura de requisitos, diseño, codificación, pruebas e implementación.
Este documento describe la diferencia entre los requerimientos del cliente y los requerimientos del desarrollador. Explica que los requerimientos del cliente se expresan en lenguaje natural y se enfocan en lo que el usuario desea, mientras que los requerimientos del desarrollador son más técnicos y detallados, describiendo cómo debe funcionar el sistema internamente. También señala algunos errores comunes a evitar en la expresión de requerimientos del cliente.
The document discusses key concepts in requirements engineering, including defining what a requirement is, what requirements engineering is, and the basic activities and participants involved in developing a software system. It provides an overview of requirements engineering processes and techniques to understand the necessary elements for defining a software project.
El documento trata sobre conceptos fundamentales de diseño de software como la importancia del diseño en el desarrollo de software, técnicas de diseño como el diseño orientado a objetos, y métodos para garantizar la calidad del software como las pruebas y el mantenimiento preventivo. También cubre temas como los fundamentos del diseño, especificaciones de requisitos, y métodos de análisis de requisitos.
Este documento presenta los conceptos fundamentales de la ingeniería de requisitos. Define los tipos de requisitos como requisitos de usuario, funcionales y no funcionales. Explica las actividades de elicitación, validación y gestión de requisitos. Además, describe los formatos para escribir requisitos de manera clara y precisa.
Este documento presenta una descripción general del análisis de un proyecto de software, incluyendo el modelado, la construcción, la medición y los tipos de métricas. Se describen etapas como el análisis, diseño, codificación, pruebas, documentación y métricas. El documento también explica conceptos como métricas de proceso, métricas de proyecto, métricas orientadas a puntos de función y métricas de tamaño para medir la calidad del software.
El documento describe varios conceptos clave relacionados con el desarrollo de software, incluyendo la modularidad, la arquitectura de software, la jerarquía de control, las estructuras de datos, los procedimientos de software, y las técnicas para el análisis de requerimientos como la descomposición funcional, la especificación de texto, el modelado de procesos, el modelo de dominio, los casos de uso, las listas de verificación, la inspección y los prototipos. También discute conceptos como la calidad del software, las p
El documento describe los diferentes aspectos del proceso de desarrollo de software, incluyendo las etapas de modelado, división del producto y proceso, y los diferentes ciclos de vida como la cascada, prototipos y en espiral. También discute las metodologías formales, semi-formales y ágiles, y los niveles de madurez de la capacidad de proceso de software de una organización.
Este documento presenta los fundamentos de la ingeniería de software, incluyendo las definiciones de software, sus cualidades y factores de calidad. Explica los diferentes modelos de ciclo de vida de software, como el modelo en cascada y en V, así como los paradigmas de programación orientada a objetos. Finalmente, describe los métodos de desarrollo de software, incluyendo la definición del problema, análisis, diseño, implementación y pruebas.
Este documento presenta conceptos básicos sobre ingeniería de software. Explica que el software es el producto que construyen los ingenieros de software y puede aplicarse en cualquier situación donde se hayan definido previamente los pasos procedimentales. Además, describe las diferentes actividades del proceso de software como planificación, análisis, diseño, implementación, pruebas, instalación y mantenimiento. Finalmente, introduce conceptos como ciclo de vida del software, calidad de software y diferentes modelos de ciclo de vida.
Este documento presenta una introducción a los fundamentos del diseño de software, incluyendo conceptos como la modularidad, la arquitectura de software, la jerarquía de control, la estructura de datos, los procedimientos de software y el diseño orientado a objetos. También cubre temas como la garantía de calidad de software, los métodos de prueba de software y el mantenimiento de software. Por último, describe varios métodos de análisis de requerimientos como la descomposición funcional y la especificación a través de declaraciones de texto.
Este documento presenta conceptos básicos de ingeniería de software. Explica que el software es el producto que diseñan los ingenieros de software y que puede aplicarse en cualquier situación donde se hayan definido previamente un conjunto de pasos procedimentales. Además, describe los principales componentes de un producto de software, las categorías de software, las características de calidad deseables y los conceptos clave de ingeniería de software como procesos, actividades, métodos y modelos de ciclo de vida.
El documento describe los diferentes tipos de software, incluyendo software de sistema, software de programación y software de aplicación. También explica el proceso de creación de software, incluyendo etapas como la captura de requisitos, diseño, codificación y pruebas. Además, discute modelos de proceso como el modelo en cascada y modelos evolutivos.
Este documento presenta una introducción al modelado, análisis, diseño y documentación de proyectos de software. Explica que el modelado es una actividad formal para entender y comunicar aspectos del mundo real mediante el uso de lenguajes naturales, notaciones semi-formales o formales. Describe técnicas como el modelado empresarial, de requerimientos funcionales y no funcionales. También cubre conceptos clave del análisis como las transformaciones y flujos de datos. Finalmente, detalla etapas del diseño como el preliminar, detallado
El documento proporciona una introducción al concepto de software, incluyendo definiciones, clasificaciones y el proceso de creación de software. Define el software como el conjunto de programas y datos que hacen posible que un sistema informático funcione, y lo clasifica en software de sistema, software de programación y software de aplicación. Describe las principales etapas del proceso de creación de software, como la captura de requisitos, diseño, codificación y pruebas, y los modelos de ciclo de vida como el modelo en cascada y el modelo iterativo incremental.
Este documento presenta una introducción al concepto de software y sus componentes, incluyendo aplicaciones y sistemas operativos. También describe los fundamentos del diseño de software como la modularidad, la arquitectura y la jerarquía de control. Finalmente, cubre temas como el diseño orientado a objetos, las pruebas y el mantenimiento de software.
Fundamentos Básicos para el Diseño del Software - Sistemas IIJimmyWilfredMassVerd
El documento describe el proceso de diseño de software, incluyendo actividades como el diseño de datos, diseño arquitectónico y diseño procedimental. También cubre conceptos clave como la abstracción, modularidad, refinamiento y arquitectura de software. El objetivo del diseño de software es traducir los requisitos en una representación que se acerque al código final.
El documento habla sobre los sistemas de información y los requerimientos en la ingeniería de requerimientos. Explica que un sistema de información es un conjunto de componentes que permiten procesar y distribuir información para apoyar la toma de decisiones. También describe los diferentes tipos de requerimientos como los de proceso, usuarios, análisis y gestión. Finalmente, resalta la importancia de la ingeniería de requerimientos para definir de manera clara y sin ambigüedades las necesidades de un sistema.
Este documento trata sobre el análisis de requerimientos en el desarrollo de software. Explica que el análisis de requerimientos es fundamental para comprender el propósito y función del sistema, y que los requerimientos definen lo que los usuarios esperan que haga el sistema. Además, describe los diferentes tipos de requerimientos, como los funcionales, no funcionales y de dominio, y explica el proceso de ingeniería de requerimientos que incluye la obtención, análisis, especificación y validación de los requ
La documentación de un proyecto de software es importante para conservar la historia del proyecto, facilitar el uso para los usuarios, garantizar la permanencia de la información, y disminuir los costos de operación. La documentación debe incluir los requerimientos, diseño, pruebas, manuales para usuarios y capacitación, e informes sobre el progreso y costos del proyecto. La documentación debe estar organizada en carpetas gerenciales, técnicas y económicas, y debe usar lenguaje claro adecuado para cada audiencia.
El documento habla sobre el software. Define software como el conjunto de componentes lógicos necesarios para realizar tareas específicas en un sistema informático. Explica que el software incluye aplicaciones, sistemas operativos y otros programas. También clasifica el software en software de sistema, de programación y de aplicación. Describe las etapas de diseño, codificación, pruebas unitarias y de integración en el desarrollo de software.
El documento describe diferentes modelos del ciclo de vida del desarrollo de sistemas de información, incluyendo el modelo clásico o en cascada, el modelo incremental, y el modelo de desarrollo evolutivo. Explica las diferentes fases de cada modelo como el análisis de requisitos, diseño, codificación, pruebas y mantenimiento.
El documento describe diferentes tipos de software, incluyendo software de sistema que controla el hardware y da soporte a otros programas, software de aplicación que permite al usuario realizar tareas, software de programación que permite escribir programas, y diferentes tipos de licencias de software como propietario, dominio público, semi libre y libre. También define una máquina virtual como un software que simula una computadora para ejecutar programas.
Las redes permiten conectar personas y equipos sin importar su ubicación, proporcionando servicios como llamadas telefónicas, televisión, radio e Internet. Las nuevas redes convergentes pueden ofrecer voz, video y datos a través de un solo canal o estructura, a diferencia de las redes dedicadas del pasado. Las redes vienen en diferentes tamaños y tipos de topología, y son valiosas para compartir recursos e información entre usuarios.
Este documento presenta una descripción general del análisis de un proyecto de software, incluyendo el modelado, la construcción, la medición y los tipos de métricas. Se describen etapas como el análisis, diseño, codificación, pruebas, documentación y métricas. El documento también explica conceptos como métricas de proceso, métricas de proyecto, métricas orientadas a puntos de función y métricas de tamaño para medir la calidad del software.
El documento describe varios conceptos clave relacionados con el desarrollo de software, incluyendo la modularidad, la arquitectura de software, la jerarquía de control, las estructuras de datos, los procedimientos de software, y las técnicas para el análisis de requerimientos como la descomposición funcional, la especificación de texto, el modelado de procesos, el modelo de dominio, los casos de uso, las listas de verificación, la inspección y los prototipos. También discute conceptos como la calidad del software, las p
El documento describe los diferentes aspectos del proceso de desarrollo de software, incluyendo las etapas de modelado, división del producto y proceso, y los diferentes ciclos de vida como la cascada, prototipos y en espiral. También discute las metodologías formales, semi-formales y ágiles, y los niveles de madurez de la capacidad de proceso de software de una organización.
Este documento presenta los fundamentos de la ingeniería de software, incluyendo las definiciones de software, sus cualidades y factores de calidad. Explica los diferentes modelos de ciclo de vida de software, como el modelo en cascada y en V, así como los paradigmas de programación orientada a objetos. Finalmente, describe los métodos de desarrollo de software, incluyendo la definición del problema, análisis, diseño, implementación y pruebas.
Este documento presenta conceptos básicos sobre ingeniería de software. Explica que el software es el producto que construyen los ingenieros de software y puede aplicarse en cualquier situación donde se hayan definido previamente los pasos procedimentales. Además, describe las diferentes actividades del proceso de software como planificación, análisis, diseño, implementación, pruebas, instalación y mantenimiento. Finalmente, introduce conceptos como ciclo de vida del software, calidad de software y diferentes modelos de ciclo de vida.
Este documento presenta una introducción a los fundamentos del diseño de software, incluyendo conceptos como la modularidad, la arquitectura de software, la jerarquía de control, la estructura de datos, los procedimientos de software y el diseño orientado a objetos. También cubre temas como la garantía de calidad de software, los métodos de prueba de software y el mantenimiento de software. Por último, describe varios métodos de análisis de requerimientos como la descomposición funcional y la especificación a través de declaraciones de texto.
Este documento presenta conceptos básicos de ingeniería de software. Explica que el software es el producto que diseñan los ingenieros de software y que puede aplicarse en cualquier situación donde se hayan definido previamente un conjunto de pasos procedimentales. Además, describe los principales componentes de un producto de software, las categorías de software, las características de calidad deseables y los conceptos clave de ingeniería de software como procesos, actividades, métodos y modelos de ciclo de vida.
El documento describe los diferentes tipos de software, incluyendo software de sistema, software de programación y software de aplicación. También explica el proceso de creación de software, incluyendo etapas como la captura de requisitos, diseño, codificación y pruebas. Además, discute modelos de proceso como el modelo en cascada y modelos evolutivos.
Este documento presenta una introducción al modelado, análisis, diseño y documentación de proyectos de software. Explica que el modelado es una actividad formal para entender y comunicar aspectos del mundo real mediante el uso de lenguajes naturales, notaciones semi-formales o formales. Describe técnicas como el modelado empresarial, de requerimientos funcionales y no funcionales. También cubre conceptos clave del análisis como las transformaciones y flujos de datos. Finalmente, detalla etapas del diseño como el preliminar, detallado
El documento proporciona una introducción al concepto de software, incluyendo definiciones, clasificaciones y el proceso de creación de software. Define el software como el conjunto de programas y datos que hacen posible que un sistema informático funcione, y lo clasifica en software de sistema, software de programación y software de aplicación. Describe las principales etapas del proceso de creación de software, como la captura de requisitos, diseño, codificación y pruebas, y los modelos de ciclo de vida como el modelo en cascada y el modelo iterativo incremental.
Este documento presenta una introducción al concepto de software y sus componentes, incluyendo aplicaciones y sistemas operativos. También describe los fundamentos del diseño de software como la modularidad, la arquitectura y la jerarquía de control. Finalmente, cubre temas como el diseño orientado a objetos, las pruebas y el mantenimiento de software.
Fundamentos Básicos para el Diseño del Software - Sistemas IIJimmyWilfredMassVerd
El documento describe el proceso de diseño de software, incluyendo actividades como el diseño de datos, diseño arquitectónico y diseño procedimental. También cubre conceptos clave como la abstracción, modularidad, refinamiento y arquitectura de software. El objetivo del diseño de software es traducir los requisitos en una representación que se acerque al código final.
El documento habla sobre los sistemas de información y los requerimientos en la ingeniería de requerimientos. Explica que un sistema de información es un conjunto de componentes que permiten procesar y distribuir información para apoyar la toma de decisiones. También describe los diferentes tipos de requerimientos como los de proceso, usuarios, análisis y gestión. Finalmente, resalta la importancia de la ingeniería de requerimientos para definir de manera clara y sin ambigüedades las necesidades de un sistema.
Este documento trata sobre el análisis de requerimientos en el desarrollo de software. Explica que el análisis de requerimientos es fundamental para comprender el propósito y función del sistema, y que los requerimientos definen lo que los usuarios esperan que haga el sistema. Además, describe los diferentes tipos de requerimientos, como los funcionales, no funcionales y de dominio, y explica el proceso de ingeniería de requerimientos que incluye la obtención, análisis, especificación y validación de los requ
La documentación de un proyecto de software es importante para conservar la historia del proyecto, facilitar el uso para los usuarios, garantizar la permanencia de la información, y disminuir los costos de operación. La documentación debe incluir los requerimientos, diseño, pruebas, manuales para usuarios y capacitación, e informes sobre el progreso y costos del proyecto. La documentación debe estar organizada en carpetas gerenciales, técnicas y económicas, y debe usar lenguaje claro adecuado para cada audiencia.
El documento habla sobre el software. Define software como el conjunto de componentes lógicos necesarios para realizar tareas específicas en un sistema informático. Explica que el software incluye aplicaciones, sistemas operativos y otros programas. También clasifica el software en software de sistema, de programación y de aplicación. Describe las etapas de diseño, codificación, pruebas unitarias y de integración en el desarrollo de software.
El documento describe diferentes modelos del ciclo de vida del desarrollo de sistemas de información, incluyendo el modelo clásico o en cascada, el modelo incremental, y el modelo de desarrollo evolutivo. Explica las diferentes fases de cada modelo como el análisis de requisitos, diseño, codificación, pruebas y mantenimiento.
El documento describe diferentes tipos de software, incluyendo software de sistema que controla el hardware y da soporte a otros programas, software de aplicación que permite al usuario realizar tareas, software de programación que permite escribir programas, y diferentes tipos de licencias de software como propietario, dominio público, semi libre y libre. También define una máquina virtual como un software que simula una computadora para ejecutar programas.
Las redes permiten conectar personas y equipos sin importar su ubicación, proporcionando servicios como llamadas telefónicas, televisión, radio e Internet. Las nuevas redes convergentes pueden ofrecer voz, video y datos a través de un solo canal o estructura, a diferencia de las redes dedicadas del pasado. Las redes vienen en diferentes tamaños y tipos de topología, y son valiosas para compartir recursos e información entre usuarios.
La computadora es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Los primeros precursores de las computadoras modernas incluyen la máquina de Pascal de 1642, la máquina analítica de Charles Babbage en 1833 y el telar automático de Joseph Marie Jacquard en 1801. La primera generación de computadoras desde 1938 hasta 1958 usaban válvulas electrónicas y lenguaje de máquina, mientras que la segunda generación desde 1958 a 1964 usaban transistores y lenguaje de alto nivel.
El documento describe los conceptos básicos de las redes informáticas, incluyendo los tipos de redes según su área geográfica y propiedad, los dispositivos necesarios para crear una red local, y los principios básicos de seguridad en sistemas informáticos como el análisis de riesgos y las técnicas para asegurar un sistema como cortafuegos y antivirus.
Para acceder a Internet, sigue estos 4 pasos sencillos: 1) Haz clic en el botón de menú de inicio, 2) Dale doble clic al icono de Internet Explorer, 3) Se abrirá una ventana de Internet Explorer, 4) ¡Disfruta de Internet!
-----------Espero que cada uno de estos materiales de apoyo, les puedan servir de ayuda, soy estudiante de “Ing. En Sistemas e Informática” Sabaneta estado Barinas.-------------
La ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora. Incluye métodos, herramientas y técnicas para el desarrollo de software, así como la documentación requerida para desarrollar, operar y mantener los sistemas de software.
SUMMARY
El documento describe diferentes tipos de software, incluyendo software de sistema, software de programación, y software de trabajo. También describe las etapas clave en el desarrollo de software, como la elicitación de requisitos, el diseño, la codificación, y el mantenimiento. Señala que el desarrollo de software es un proceso evolutivo en el que los sistemas deben cambiar continuamente para mantenerse útiles.
El documento define y explica varios conceptos clave relacionados con el software. Define software como el conjunto de programas, procedimientos, reglas y documentación asociados a un sistema computacional. Luego explica los diferentes tipos de software como software de sistema, de aplicación y de programación, e ilustra ejemplos de cada uno. También resume las principales etapas en el desarrollo de software.
El documento define varios conceptos clave relacionados con el software y su desarrollo. Explica que el software son las herramientas lógicas que hacen posible que un sistema informático realice tareas específicas, a diferencia del hardware que son los componentes físicos. Luego describe los diferentes tipos de software como el sistema operativo, las aplicaciones, el software de desarrollo y las licencias de software de código abierto y cerrado. Finalmente, resume las etapas típicas en el proceso de desarrollo de software.
El documento describe tres tipos principales de software: software de sistema, que permite la interacción con el hardware como los sistemas operativos; software de programación, que permite a los programadores desarrollar programas; y software de aplicación, que permite a los usuarios realizar tareas específicas. También discute los procesos de desarrollo de software y modelos como la cascada y los iterativos incrementales.
El documento habla sobre el software, definiéndolo como el conjunto de programas, procedimientos y datos que hacen posible que un sistema informático funcione. Explica que el software se puede clasificar en tres tipos: software de sistema, software de programación y software de aplicación. También menciona que el proceso de desarrollo de software de gran porte requiere seguir etapas como la especificación de requisitos, diseño, codificación, pruebas e implementación.
Este documento presenta las preguntas y respuestas de un módulo sobre ingeniería de software. Explica las diferencias entre programa, software y aplicación, define ingeniería y ingeniería de software, y describe las etapas clave del desarrollo de software como análisis de requisitos, especificación, arquitectura, programación, prueba y documentación. También cubre temas como calidad de software, modelos de desarrollo y garantizar calidad.
El documento presenta una introducción al software, clasificando los tipos de software en aplicaciones, sistemas y programación. Explica las etapas del proceso de desarrollo de software, incluyendo la captura de requisitos, diseño, codificación, pruebas e instalación. También describe los tipos de licencias de software y define una máquina virtual.
Este documento describe el software y su proceso de creación. Define el software como el conjunto de programas, datos y documentación que hacen posible que un sistema informático funcione. Explica que el software se clasifica en tres tipos principales: software de sistema, software de programación y software de aplicación. También describe las etapas típicas en el proceso de desarrollo de software, como la captura de requisitos, el diseño, la codificación, las pruebas y el mantenimiento.
El documento trata sobre ingeniería de software. Explica que la ingeniería de software es el conjunto de métodos, técnicas y herramientas que controlan el proceso de desarrollo de software para construir software de calidad de forma eficiente. También señala que los ingenieros de software deben adoptar un enfoque sistemático y utilizar las herramientas adecuadas para resolver los problemas planteados según las restricciones y recursos disponibles.
El documento describe diferentes tipos y clasificaciones de software, así como los procesos de desarrollo de software. Se mencionan tres tipos principales de software: sistema, programación y aplicación. También se describen varios modelos de procesos de desarrollo de software como el modelo cascada, evolutivo, iterativo incremental y espiral.
El software se refiere a los componentes lógicos de un sistema informático, en contraposición al hardware. El software incluye sistemas operativos, aplicaciones como procesadores de texto, y software de programación. El software se puede clasificar en software de sistema, software de programación, y software de aplicación.
Este documento describe los conceptos básicos de software y hardware. Define software como los componentes lógicos de una computadora, en contraste con el hardware que son los componentes físicos. Explica que el software se puede clasificar en tres tipos: software de sistema, software de programación y software de aplicación. También describe los componentes de hardware típicos como la CPU, memoria RAM, tarjetas de expansión y periféricos.
El documento describe los conceptos de software y hardware. Define el software como los componentes lógicos de una computadora, en contraste con el hardware que son los componentes físicos. Explica que el software se puede clasificar en tres tipos: software de sistema, software de programación y software de aplicación. También describe los componentes de hardware típicos como la CPU, memoria RAM, tarjetas de expansión y periféricos.
Este documento describe los diferentes tipos de software, incluyendo software de sistema, software de programación, software de aplicaciones, e interfaces de usuario. También discute los procesos de desarrollo de software, modelos de procesos como el modelo cascada e iterativo incremental, y las etapas iniciales de captura y especificación de requisitos.
Este documento presenta una introducción a la ingeniería de software. Define la ingeniería de software como una disciplina que ofrece métodos y técnicas para desarrollar software de calidad. Explica que la ingeniería de software trata con áreas como sistemas operativos e Internet y se aplica a muchas industrias. También describe los fundamentos teóricos, el proceso de desarrollo de sistemas informáticos, y concluye explicando cómo la ingeniería de software puede mejorar la eficiencia y calidad de sistemas críticos.
El documento describe el software, que se refiere a los componentes lógicos de un sistema informático en contraposición al hardware. Explica que el software incluye aplicaciones como procesadores de texto y sistemas operativos, y que su creación involucra etapas como la especificación de requisitos, diseño, codificación y pruebas. Además, discute modelos de procesos como el modelo en cascada para el desarrollo de software.
Este documento presenta los fundamentos de la ingeniería de software. Explica que la ingeniería de software incluye el análisis, diseño, desarrollo, pruebas e implementación de sistemas de software. También describe las diferentes etapas del desarrollo de software y las tecnologías estructuradas y orientadas a objetos. Finalmente, introduce las herramientas CASE y su clasificación según las fases del ciclo de vida que cubren.
El documento describe las diferentes fases del desarrollo de software, incluyendo el análisis de requisitos, diseño, programación, pruebas, documentación, mantenimiento e implementación. Cada fase tiene objetivos específicos como establecer las necesidades del producto, determinar su arquitectura general, convertir el diseño en código, garantizar la calidad a través de pruebas y documentar el proceso.
Este documento describe el software, incluyendo su definición, clasificación y el proceso de creación. El software se refiere a los programas y datos procesados por sistemas informáticos. Se clasifica en software de sistema, software de programación y software de aplicación. El proceso de creación de software involucra seguir etapas ordenadas como el análisis, diseño, implementación y pruebas, siguiendo una metodología como el desarrollo ágil o procesos pesados.
Obra plástica de la exposición de esculturas exentas “Es-cultura. Espacio construido de reflexión”, en la que me planteo la interrelación entre escultura y cultura y el hecho de que la escultura, como yo la creo, sea un espacio construido de reflexión. Ver los documentos: vídeo de presentación, texto de catálogo, fichas técnicas y títulos en inglés, alemán y español en:
Consultar página web: http://luisjferreira.es/
ARTE Y CULTURA - SESION DE APRENDIZAJE-fecha martes, 04 de junio de 2024.VICTORHUGO347946
sesion de aprendizaje en el marco de la educación de calidad- Los estudiantes aprenden a trabajar en está área consolidadndo aprendizajes según las competencias de aplicación en estas áreas.
2. INDICE
Software.
Software de sistema. (2 ejemplos desktop y 2
mobiles)
Software de Aplicación (2 ejemplos desktop y
2 mobiles)
Software de programación. (2 ejemplos
desktop y 2 móviles)
Etapas del proceso de desarrollo de software
Los tipos de licencias que existen en el
software.
Maquina virtual.
3. Se conoce como software1 al equipamiento lógico
o soporte lógico de un sistema informático, que
comprende el conjunto de los componentes
lógicos necesarios que hacen posible la realización de
tareas específicas, en contraposición a los
componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos
otros, las aplicaciones informáticas; tales como
el procesador de texto, que permite al usuario realizar
todas las tareas concernientes a la edición de textos;
el llamados Software de sistema, tal como el sistema
operativo, que básicamente permite al resto de los
programas funcionar adecuadamente, facilitando
también la interacción entre los componentes físicos
y el resto de las aplicaciones, y proporcionando
una interfaz con el usuario.
4. Su objetivo es desvincular adecuadamente al usuario
y al programador de los detalles del sistema
informático en particular que se use, aislándolo
especialmente del procesamiento referido a las
características internas de: memoria, discos, puertos
y dispositivos de comunicaciones, impresoras,
pantallas, teclados, etc. El software de sistema le
procura al usuario y programador
adecuadas interfaces de alto nivel, controladores,
herramientas y utilidades de apoyo que permiten el
mantenimiento del sistema global. Incluye entre
otros: Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
5. Es aquel que permite a los usuarios llevar a cabo una o
varias tareas específicas, en cualquier campo de actividad
susceptible de ser automatizado o asistido, con especial
énfasis en los negocios. Incluye entre muchos otros:
Aplicaciones para Control de
sistemas y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software empresarial
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su
estructura lógica)
Videojuegos
Software médico
Software de cálculo numérico y simbólico.
Software de diseño asistido (CAD)
Software de control numérico (CAM)
6. Es el conjunto de herramientas que permiten
al programador desarrollar programas informáticos,
usando diferentes alternativas y lenguajes de
programación, de una manera práctica. Incluyen
básicamente: Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE): Agrupan las
anteriores herramientas, usualmente en un entorno
visual, de forma tal que el programador no necesite
introducir múltiples comandos para compilar,
interpretar, depurar, etc. Habitualmente cuentan con
una avanzada interfaz gráfica de usuario (GUI).
7. Captura, análisis y especificación de requisitos
Al inicio de un desarrollo (no de un proyecto), esta es la primera fase
que se realiza, y, según el modelo de proceso adoptado, puede casi
terminar para pasar a la próxima etapa (caso de Modelo Cascada
Realimentado) o puede hacerse parcialmente para luego retomarla
(caso Modelo Iterativo Incremental u otros de carácter evolutivo).
En simple palabras y básicamente, durante esta fase, se adquieren,
reúnen y especifican las características funcionales y no funcionales
que deberá cumplir el futuro programa o sistema a desarrollar.
Las bondades de las características, tanto del sistema o programa a
desarrollar, como de su entorno, parámetros no funcionales y
arquitectura dependen enormemente de lo bien lograda que esté esta
etapa. Esta es, probablemente, la de mayor importancia y una de las
fases más difíciles de lograr certeramente, pues no es automatizable,
no es muy técnica y depende en gran medida de la habilidad y
experiencia del analista que la realice.
8. Siendo que la captura, elicitación y especificación de
requisitos, es una parte crucial en el proceso de desarrollo
de software, ya que de esta etapa depende el logro de los
objetivos finales previstos, se han ideado modelos y
diversas metodologías de trabajo para estos fines.
También existen herramientas software que apoyan las
tareas relativas realizadas por el ingeniero en requisitos.
Universo de Discurso (UdeD): es el contexto general en el
cual el software deberá ser desarrollado y deberá operar.
El UdeD incluye todas las fuentes de información y todas
las personas relacionadas con el software. Esas personas
son conocidas también como actores de ese universo. El
UdeD es la realidad circunstanciada por el conjunto de
objetivos definidos por quienes demandaron el software.
9. A partir de la extracción y análisis de información en su
ámbito se obtienen todas las especificaciones necesarias
y tipos de requisitos para el futuro producto software.
El objetivo de la Ingeniería de requisitos (IR) es
sistematizar el proceso de definición de requisitos
permitiendo elicitar, modelar y analizar el problema,
generando un compromiso entre los ingenieros de
requisitos y los clientes/usuarios, ya que ambos participan
en la generación y definición de los requisitos del sistema.
La IR aporta un conjunto de métodos, técnicas y
herramientas que asisten a los ingenieros de requisitos
(analistas) para obtener requisitos lo más seguros,
veraces, completos y oportunos posibles, permitiendo
básicamente:
Comprender el problema
Facilitar la obtención de las necesidades del
cliente/usuario
Validar con el cliente/usuario
Garantizar las especificaciones de requisitos
10. Aquí muestro un esquema, más o menos riguroso, aunque no
detallado, de los pasos y tareas a seguir para realizar la captura,
análisis y especificación de requisitos software. También allí se
observa qué artefacto o documento se obtiene en cada etapa
del proceso. En el diagrama no se explicita metodología o
modelo a utilizar, sencillamente se pautan las tareas que deben
cumplirse, de alguna manera.
11. Una posible lista, general y ordenada, de tareas recomendadas para
obtener la definición de lo que se debe realizar, los productos a obtener
y las técnicas a emplear durante la actividad de elicitación de
requisitos, en fase de Especificación de Requisitos Software es:
Obtener información sobre el dominio del problema y el sistema actual
(UdeD).
Preparar y realizar las reuniones para elicitación/negociación.
Identificar/revisar los objetivos del usuario.
Identificar/revisar los objetivos del sistema.
Identificar/revisar los requisitos de información.
Identificar/revisar los requisitos funcionales.
Identificar/revisar los requisitos no funcionales.
Priorizar objetivos y requisitos.
Algunos principios básicos a tener en cuenta:
Presentar y entender cabalmente el dominio de la información del
problema.
Definir correctamente las funciones que debe realizar el Software.
Representar el comportamiento del software a consecuencias de
acontecimientos externos, particulares, incluso inesperados.
Reconocer requisitos incompletos, ambiguos o contradictorios.
Dividir claramente los modelos que representan la información, las
funciones y comportamiento y características no funcionales.
12. Se pueden identificar dos formas de requisitos:
Requisitos de usuario: Los requisitos de usuario son frases en lenguaje
natural junto a diagramas con los servicios que el sistema debe
proporcionar, así como las restricciones bajo las que debe operar.
Requisitos de sistema: Los requisitos de sistema determinan
los servicios del sistema y pero con las restricciones en detalle. Sirven
como contrato.
Es decir, ambos son lo mismo, pero con distinto nivel de detalle.
Ejemplo de requisito de usuario: El sistema debe hacer préstamos
Ejemplo de requisito de sistema: Función préstamo: entrada código
socio, código ejemplar; salida: fecha devolución; etc.
Se clasifican en tres los tipos de requisitos de sistema:
Requisitos funcionales
Los requisitos funcionales describen:
Los servicios que proporciona el sistema (funciones).
La respuesta del sistema ante determinadas entradas.
El comportamiento del sistema en situaciones particulares.
Requisitos no funcionales
13. Los requisitos no funcionales son restricciones de los servicios o
funciones que ofrece el sistema (ej. cotas de tiempo, proceso de
desarrollo, rendimiento, etc.)
Ejemplo 1. La biblioteca Central debe ser capaz de atender
simultáneamente a todas las bibliotecas de la Universidad Ejemplo 2. El
tiempo de respuesta a una consulta remota no debe ser superior a 1/2 si
su vez, hay tres tipos de requisitos no funcionales: Requisitos del
producto. Especifican el comportamiento del producto (Ej.
prestaciones, memoria, tasa de fallos, etc.)
Requisitos organizativos. Se derivan de las políticas y procedimientos
de las organizaciones de los clientes y desarrolladores (Ej. estándares
de proceso, lenguajes de programación, etc.)
Requisitos externos. Se derivan de factores externos al sistema y al
proceso de desarrollo (Ej. requisitos legislativos, éticos, etc.)
Requisitos del dominio.
Los requisitos del dominio se derivan del dominio de la aplicación y
reflejan características de dicho dominio.
Pueden ser funcionales o no funcionales.
Ej. El sistema de biblioteca de la Universidad debe ser capaz de
exportar datos mediante el Lenguaje de Intercomunicación de
Bibliotecas de España (LIBE). Ej. El sistema de biblioteca no podrá
acceder a bibliotecas con material censurado.
14. En ingeniería de software, el diseño es una fase de ciclo de vida del software. Se
basa en la especificación de requisitos producido por el análisis de los requisitos
(fase de análisis), el diseño define cómo estos requisitos se cumplirán, la
estructura que debe darse al sistema de software para que se haga realidad.
El diseño sigue siendo una fase separada del la programación o codificación,
esta última corresponde a la traducción en un determinado lenguaje de
programación de las premisas adoptadas en el diseño.
Las distinciones entre las actividades mencionadas hasta ahora no siempre son
claras cómo se quisiera en las teorías clásicas de ingeniería de software. El
diseño, en particular, puede describir el funcionamiento interno de un sistema en
diferentes niveles de detalle, cada una de ellos se coloca en una posición
intermedia entre el análisis y codificación.
Normalmente se entiende por "diseño de la arquitectura" al diseño de "muy alto
nivel", que sólo define la estructura del sistema en términos de la módulos de
software de que se compone y las relaciones macroscópicas entre ellos. A este
nivel de diseño pertenecen fórmulas como cliente-servidor o “tres niveles”, o,
más generalmente, las decisiones sobre el uso de la arquitectura de hardware
especial que se utilice, el sistema operativo, DBMS, Protocolos de red, etc.
Un nivel intermedio de detalle puede definir la descomposición del sistema en
módulos, pero esta vez con una referencia más o menos explícita al modo de
descomposición que ofrece el particular lenguaje de programación con el que el
desarrollo se va a implementar, por ejemplo, en un diseño realizado con la
tecnología de objetos el proyecto podría describir al sistema en términos
de clases y sus interrelaciones.
El diseño detallado, por último, es una descripción del sistema muy cercana a la
codificación (por ejemplo, describir no sólo las clases en abstracto, sino también
sus atributos y los métodos con sus tipos).
15. Durante esta etapa se realizan las tareas que
comúnmente se conocen como programación;
que consiste, esencialmente, en llevar a código
fuente, en el lenguaje de programación elegido,
todo lo diseñado en la fase anterior. Esta tarea la
realiza el programador, siguiendo por completo
los lineamientos impuestos en el diseño y en
consideración siempre a los requisitos
funcionales y no funcionales (ERS) especificados
en la primera etapa.
16. Durante la fase de programación, el código puede adoptar varios
estados, dependiendo de la forma de trabajo y del lenguaje
elegido, a saber:
Código fuente: es el escrito directamente por
los programadores en editores de texto, lo cual genera
el programa. Contiene el conjunto de instrucciones codificadas
en algún lenguaje de alto nivel. Puede estar distribuido en
paquetes, procedimientos, bibliotecas fuente, etc.
Código objeto: es el código binario o intermedio resultante de
procesar con un compilador el código fuente. Consiste en
una traducción completa y de una sola vez de éste último. El
código objeto no es inteligible por el ser humano (normalmente
es formato binario) pero tampoco es directamente ejecutable
por la computadora. Se trata de una representación intermedia
entre el código fuente y el código ejecutable, a los fines de un
enlace final con las rutinas de biblioteca y entre procedimientos
o bien para su uso con un pequeño intérprete intermedio [a
modo de distintos ejemplos véase EUPHORIA, (intérprete
intermedio), FORTRAN (compilador puro) MSIL (Microsoft
Intermediate Language)(intérprete) y BASIC (intérprete puro,
intérprete intermedio, compilador intermedio o compilador puro,
depende de la versión utilizada)].
17. El código objeto no existe si el programador trabaja con un lenguaje a
modo de intérprete puro, en este caso el mismo intérprete se encarga
de traducir y ejecutar línea por línea el código fuente (de acuerdo al flujo
del programa), en tiempo de ejecución. En este caso tampoco existe el o
los archivos de código ejecutable. Una desventaja de esta modalidad es
que la ejecución del programa o sistema es un poco más lenta que si se
hiciera con un intérprete intermedio, y bastante más lenta que si existe
el o los archivos de código ejecutable. Es decir no favorece el
rendimiento en velocidad de ejecución. Pero una gran ventaja de la
modalidad intérprete puro, es que el esta forma de trabajo facilita
enormemente la tarea de depuración del código fuente (frente a la
alternativa de hacerlo con un compilador puro). Frecuentemente se
suele usar una forma mixta de trabajo (si el lenguaje de programación
elegido lo permite), es decir inicialmente trabajar a modo de intérprete
puro, y una vez depurado el código fuente (liberado de errores) se utiliza
un compilador del mismo lenguaje para obtener el código ejecutable
completo, con lo cual se agiliza la depuración y la velocidad de
ejecución se optimiza.
Código ejecutable: Es el código binario resultado de enlazar uno o más
fragmentos de código objeto con las rutinas y bibliotecas necesarias.
Constituye uno o más archivos binarios con un formato tal que
el sistema operativo es capaz de cargarlo en la
memoria RAM (eventualmente también parte en una memoria virtual), y
proceder a su ejecución directa. Por lo anterior se dice que el código
ejecutable es directamente «inteligible por la computadora». El código
ejecutable, también conocido como código máquina, no existe si se
programa con modalidad de «intérprete puro».
18. Entre las diversas pruebas que se le efectúan al
software se pueden distinguir principalmente:
Prueba unitarias: Consisten en probar o testear
piezas de software pequeñas; a nivel de secciones,
procedimientos, funciones y módulos; aquellas que
tengan funcionalidades específicas. Dichas pruebas
se utilizan para asegurar el correcto funcionamiento
de secciones de código, mucho más reducidas que el
conjunto, y que tienen funciones concretas con cierto
grado de independencia.
Pruebas de integración: Se realizan una vez que las
pruebas unitarias fueron concluidas exitosamente;
con éstas se intenta asegurar que el sistema
completo, incluso los subsistemas que componen las
piezas individuales grandes del software funcionen
correctamente al operar e interpelar en conjunto.
19. La instalación del software es el proceso por el cual los
programas desarrollados son transferidos apropiadamente al
computador destino, inicializados, y,
eventualmente, configurados; todo ello con el propósito de ser
ya utilizados por el usuario final. Constituye la etapa final en el
desarrollo propiamente dicho del software. Luego de ésta el
producto entrará en la fase de funcionamiento y producción,
para el que fuera diseñado.
La instalación, dependiendo del sistema desarrollado, puede
consistir en una simple copia al disco rígido destino (casos raros
actualmente); o bien, más comúnmente, con una de complejidad
intermedia en la que los distintos archivos componentes del
software (ejecutables, bibliotecas, datos propios, etc.)
son descomprimidos y copiados a lugares específicos
preestablecidos del disco; incluso se crean vínculos con otros
productos, además del propio sistema operativo. Este último
caso, comúnmente es un proceso bastante automático que es
creado y guiado con herramientas software específicas
(empaquetado y distribución, instaladores).
20. En productos de mayor complejidad, la segunda alternativa es la
utilizada, pero es realizada o guiada por especialistas; puede
incluso requerirse la instalación en varios y distintos
computadores (instalación distribuida).
También, en software de mediana y alta complejidad
normalmente es requerido un proceso de configuración y
chequeo, por el cual se asignan adecuados parámetros de
funcionamiento y se testea la operatividad funcional del
producto.
En productos de venta masiva las instalaciones completas, si
son relativamente simples, suelen ser realizadas por los propios
usuarios finales (tales como sistemas operativos, paquetes de
oficina, utilitarios, etc.) con herramientas propias de instalación
guiada; incluso la configuración suele ser automática. En
productos de diseño específico o «a medida» la instalación
queda restringida, normalmente, a personas especialistas
involucradas en el desarrollo del software en cuestión.
Una vez realizada exitosamente la instalación del software, el
mismo pasa a la fase de producción (operatividad), durante la
cual cumple las funciones para las que fue desarrollado, es
decir, es finalmente utilizado por el (o los) usuario final,
produciendo los resultados esperados.
21. El mantenimiento de software es el proceso de control, mejora y optimización
del software ya desarrollado e instalado, que también incluye depuración de
errores y defectos que puedan haberse filtrado de la fase de pruebas de control y
beta test. Esta fase es la última (antes de iterar, según el modelo empleado) que
se aplica al ciclo de vida del desarrollo de software. La fase de mantenimiento
es la que viene después de que el software está operativo y en producción.
Durante el período de mantenimiento, es común que surjan nuevas revisiones y
versiones del producto; que lo liberan más depurado, con mayor y mejor
funcionalidad, mejor rendimiento, etc. Varias son las facetas que pueden ser
alteradas para provocar cambios deseables, evolutivos, adaptaciones o
ampliaciones y mejoras.
Básicamente se tienen los siguientes tipos de cambios:
Perfectivos: Aquellos que llevan a una mejora de la calidad interna del software
en cualquier aspecto: Reestructuración del código, definición más clara del
sistema y su documentación; optimización del rendimiento y eficiencia.
Evolutivos: Agregados, modificaciones, incluso eliminaciones, necesarias en el
software para cubrir su expansión o cambio, según las necesidades del usuario.
Adaptivos: Modificaciones que afectan a los entornos en los que el sistema
opera, tales como: Cambios de configuración del hardware (por actualización o
mejora de componentes electrónicos), cambios en el software de base, en
gestores de base de datos, en comunicaciones, etc.
Correctivos: Alteraciones necesarias para corregir errores de cualquier tipo en
el producto software desarrollado.
22. software Libre o Free Software
Es un software disponible para cualquiera que desee utilizarlo, copiarlo y
distribuirlo, ya sea en su forma original o con modificaciones. La posibilidad de
modificaciones implica que el código fuente está disponible. Si un programa es
libre, puede ser potencialmente incluido en un sistema operativo también
libre. Es importante no confundir software libre con software gratis, porque la
libertad asociada al software libre de copiar, modificar y redistribuir, no significa
gratuidad. Existen programas gratuitos que no pueden ser modificados ni
redistribuidos. Y existen programas pagos.
Copyleft
La mayoría de las licencias usadas en la publicación de software libre permite
que los programas sean modificados y redistribuidos. Estas prácticas están
generalmente prohibidas por la legislación internacional de copyright, que
intenta impedir que alteraciones y copias sean efectuadas sin la autorización del
o los autores. Las licencias que acompañan al software libre hacen uso de la
legislación de copyright para impedir la utilización no autorizada, pero estas
licencias definen clara y explícitamente las condiciones bajo las cuales pueden
realizarse copias, modificaciones y redistribuciones, con el fin de garantizar las
libertades de modificar y redistribuir el software registrado. A esta versión de
copyright, se le da el nombre de Copyleft.
23. GPL
La Licencia Pública General GNU (GNU General Public License GPL) es
la licencia que acompaña los paquetes distribuidos por el Proyecto
GNU, más una gran variedad de software que incluye el núcleo del
sistema operativo Linux. La formulación de GPL es tal que en vez de
limitar la distribución del software que protege, llega hasta impedir que
este software sea integrado en software propietario. La GPL se basa en
la legislación internacional de copyright, lo que debe garantizar
cobertura legal para el software licenciado con GPL.
Debían
La licencia Debían es parte del contrato realizado entre Debían y la
comunidad de usuarios de software libre, y se denomina Debían Free
Software Guidelines (DFSG). En esencia, esta licencia contiene criterios
para la distribución que incluyen, además de la exigencia de
publicación del código fuente: (a) la redistribución libre ; (b) el código
fuente debe ser incluido y debe poder ser redistribuido; (c) todo trabajo
derivado debe poder ser redistribuido bajo la misma licencia del
original; (d) puede haber restricciones en cuanto a la redistribución del
código fuente, si el original fue modificado; (e) la licencia no puede
discriminar a ninguna persona o grupo de personas, así como tampoco
ninguna forma de utilización del software; (f) los derechos otorgados no
dependen del sitio en el que el software se encuentra; y (g) la licencia
no puede 'contaminar' a otro software.
24. Open Source
La licencia de Open Source Initiative deriva de Debían.
BSD
La licencia BSD cubre las distribuciones de software de
Berkeley Software Distribution, además de otros
programas. Ésta es una licencia considerada 'permisiva', ya que
impone pocas restricciones sobre la forma de uso, alteraciones
y redistribución del software. El software puede ser vendido y no
hay obligaciones de incluir el código fuente. Esta licencia
garantiza el crédito a los autores del software pero no intenta
garantizar que las modificaciones futuras permanezcan siendo
software libre.
X.org
El Consorcio X distribuye X Windows Sistema bajo una licencia
que lo hace software libre, aunque sin adherirse al Copyleft.
Existen distribuciones bajo la licencia de la X.org que son
software libre, y otras distribuciones que no lo son. Existen
algunas versiones no-libres del sistema de ventanas X11 para
estaciones de trabajo y ciertos dispositivos de IBM-PC que son
las únicas funciones disponibles, sin otros similares que sean
distribuidos como software libre.
25. Software con Dominio Público
El Software con dominio público es software sin
copyright. Algunos tipos de copia o versiones modificadas
pueden no ser libres si el autor impone restricciones adicionales
en la redistribución del original o de trabajos derivados.
Software Semi-libre
El Software semi-libre es un software que no es libre pero
permite que otros individuos lo usen, lo copien, lo distribuyan y
hasta lo modifiquen. Ejemplos de software semi-libre son las
primeras versiones de Internet Explorer de Microsoft, o algunas
versiones de browsers de Netscape, y StarOffice.
Freeware
El término freeware no posee una definición ampliamente
aceptada, pero es utilizada para programas que permiten la
redistribución pero no la modificación, y que incluyen su código
fuente. Estos programas no son software libre.
Es un programa gratuito. Sin embargo, no es libre. En este tipo
de licencia el autor puede restringir su programa al uso
empresarial, redistribución no autorizada, modificación por
usuarios y otro tipo de restricciones. (Ejemplos: Internet
Explorer, Adobe Flash Player, Windows Live Messenger)
26. Shareware
Shareware es el software disponible con el permiso
para que sea redistribuido, pero su utilización implica
el pago. Generalmente, el código fuente no se
encuentra disponible, y por lo tanto es imposible
realizar modificaciones.
Es un programa distribuido gratuitamente, pero por
tiempo limitado o con algunos recursos
restringidos. A través del pago de un valor definido
por el autor del programa, se puede obtener el
registro del programa o la versión integral con todos
los recursos. Abarca las licencias adware, trial y
demo.
Software Propietario
El Software propietario es aquel cuya copia,
redistribución o modificación están, en alguna
medida, prohibidos por su propietario. Para usar,
copiar o redistribuir, se debe solicitar permiso al
propietario o pagar.
27. Software Comercial
El Software comercial es el software desarrollado por una empresa con
el objetivo de lucrar con su utilización. Nótese que "comercial" y
"propietario" no son lo mismo. La mayor parte del software comercial
es propietario, pero existe software libre que es comercial, y existe
software no-libre que no es comercial.
Adware
Subprograma que descarga publicidad sobre otro programa principal.
Esto ocurre cuando un programa tiene versiones comerciales o más
avanzadas que necesitan ser compradas para poder ser utilizadas.
Pagando por la versión comercial, esos anuncios desaparecen. Es una
licencia muy poco usada. Un ejemplo es el Ashampoo Burning Studio
2009.
Trial
Versión de programa pago, distribuido gratuitamente con todos los
recursos activos, pero por un tiempo determinado. Es como un
programa freeware, que después de determinado tiempo deja de
funcionar. Para continuar con la utilización del programa, se debe
comprar la clave de registro e insertarla en el programa, para que
vuelva a ejecutarse. Ejemplo: Nero, Alcohol 120% y Photoshop.
28. Demo
Versión de demostración, liberada por el autor, que no
contiene todas las funciones del programa original. Es
distribuida gratuitamente, y no tiene plazo de validez, pero
también tiene pocos recursos y funciones. Ejemplo: Need
for Speed DEMO, Fifa 09 DEMO.
Crippleware
Es un programa con menos recursos y funciones. Muy
conocido como "versión lite". Ideal para ser usado
en computadoras viejas. Ejemplo: BurnAware Free.
Donationware
Versión de programa en la que el autor solicita una
donación, para cubrir los gastos del desarrollo del
programa. No es obligatoria, pero si solicitada. El
programa no sufre variantes por realizar o no la donación.
Ejemplo: FreeRapid Downloader, Linux Slax.
29. Abandonware
Programa cuyo desarrollo fue abandonado. El
autor debe anunciar públicamente el abandono
del programa para ser abandoware, mientras
tanto el programa está protegido contra los
derechos de copia (copyright). Si la
discontinuidad es anunciada, el programa puede
ser distribuido y modificado por cualquier usuario
o desarrollador.
"Queda asegurada la tutela de los derechos
relacionados a programas informáticos por el
plazo de cincuenta años, a partir del 1 de enero
del año siguiente de su publicación o, en la
ausencia de esta, de su creación."
30. Licencias bastante extrañas o muy poco
utilizadas
Careware
Licencia de programa que solicita la ayuda de
donaciones para fondos de caridad y
organizaciones de ayuda humanitaria.
Postcardaware (o cardaware)
Tipo de licencia en la que el autor solicita que
una tarjeta o postal se le sea enviada. El usuario
es sólo invitado a hacer eso. Muy similar al
Emailware, en que los usuarios mandan e-mails al
autor del programa.
31. máquina virtual es un software que simula a una computadora y
puede ejecutar programas como si fuese una computadora real.
Este software en un principio fue definido como "un duplicado
eficiente y aislado de una máquina física". La acepción del
término actualmente incluye a máquinas virtuales que no tienen
ninguna equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los
procesos que ejecutan están limitados por los recursos y
abstracciones proporcionados por ellas. Estos procesos no
pueden escaparse de esta "computadora virtual".
Uno de los usos domésticos más extendidos de las máquinas
virtuales es ejecutar sistemas operativos para "probarlos". De
esta forma podemos ejecutar un sistema operativo que
queramos probar (GNU/Linux, por ejemplo) desde nuestro
sistema operativo habitual (Mac OS X por ejemplo) sin necesidad
de instalarlo directamente en nuestra computadora y sin miedo
a que se desconfigure el sistema operativo primario.