El documento presenta diferentes tipos de software como software de sistema, software de aplicación y lenguajes de programación. También describe varios sistemas operativos populares como Windows, Linux, Android e iOS. Finalmente, cubre las etapas típicas en el desarrollo de software.
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Fundamentos Software
1. Fundamento Del
Computador
Diferentes tipos de Software
Etapas De Desarrollo De Software
Presentado por:
Leslie Ramírez Gordian
Matricula: 20142241
2. Consiste en un software que sirve para controlar e
interactuar con el sistema operativo,
proporcionando control sobre el hardware y dando
soporte a otros programas; en contraposición del
llamado software de aplicación. Como ejemplos
cabe mencionar a las bibliotecas, como por
ejemplo OpenGL, para la aceleración gráfica; PNG,
para el sistema gráfico; o demonios que controlan
la temperatura, la velocidad del disco duro,
como hdparm, o la frecuencia del procesador
como cpudyn.
3. Cargadores de programas
Sistemas operativos (y sus componentes, muchos de los cuales
pueden considerarse como software de sistema)
Controladores de dispositivos
Herramientas
de programación: compiladores, ensambladores, enlazadores,
etc.
Programas utilitarios
Entorno de escritorio / Interfaz gráfica de usuario (que pueden
incluir Gestores de ventanas)
Línea de comandos
BIOS
Hipervisores
Bootloaders (Gestor de arranque)
Si el software de sistema se almacena en una memoria no volátil
tal como circuitos integrados, usualmente se lo
denomina firmware.
4. Microsoft Windows: Es el
nombre de una familia de
sistemas operativos
paraPC y Smartphone desarrolla
dos y vendidos por Microsoft.
Microsoft introdujo un entorno
operativo
denominado Windows el 20 de
noviembre de 1985 como un
complemento para MS-DOS en
respuesta al creciente interés
en las interfaces gráficas de
usuario (GUI).
5. Gnu/Linux: Es uno de los
términos empleados para referirse
a la combinación del núcleo
o kernel libre similar a Unix
denominado Linux con el
sistema GNU. Su desarrollo es uno
de los ejemplos más prominentes
de software libre; todo su código
fuente puede ser utilizado,
modificado y redistribuido
libremente por cualquiera bajo
los términos de la GPL
(Licencia PúblicaGeneral de
GNU, en
inglés: General PublicLicense) y
otra serie de licencias libres.1
6. Android Es un sistema
operativo basado en el kernel
de Linux diseñado principalmente
para dispositivos
móviles con pantalla táctil,
como teléfonos
inteligentes o tabletas, y también
para relojes inteligentes, televisores
y automóviles, inicialmente
desarrollado por Android Inc.,
que Google respaldó
económicamente y más tarde
compró esta empresa en 2005.
7. iOS (por sus siglas
en inglés iPhone/iPod/iPad Operating
System) es unsistema operativo móvil de
la empresa Apple Inc. Originalmente
desarrollado para el iPhone (iPhone OS),
siendo después usado en dispositivos
como eliPod Touch, iPad y el Apple TV.
Apple, Inc. no permite la instalación de
iOS en hardware de terceros.
La interfaz de usuario de iOS está basada
en el concepto de manipulación directa,
usando gestos multitáctiles. Los
elementos de control consisten de
deslizadores, interruptores y botones. La
respuesta a las órdenes del usuario es
inmediata y provee de una interfaz
fluida. La interacción con el sistema
operativo incluye gestos como deslices,
toques, pellizcos, los cuales tienen
definiciones diferentes dependiendo del
contexto de la interfaz.
8. Una aplicación es un tipo de programa
informático diseñado como herramienta para
permitir a un usuario realizar uno o diversos
tipos de trabajos. Esto lo diferencia
principalmente de otros tipos de programas
como los sistemas operativos (que hacen
funcionar al ordenador), las utilidades (que
realizan tareas de mantenimiento o de uso
general), y los lenguajes de programación (con
el cual se crean los programas informáticos).
9. VCL Media Player: Es como una varita
mágica que puede correr prácticamente
cualquier formato de archivo multimedia.
Si tu reproductor multimedia estándar no
puede abrir el archivo, lo más probable
es que VLC lo reproduzca sin problemas.
Un reproductor multimedia de código
abierto multiplataforma, también puede
manejar la radio y la TV por Internet.
Hay un sinfín de controles, ajustes y
efectos como brillo, contraste,
saturación, velocidad de reproducción,
compensación de retardo de audio y
mucho más.
10. Spotify: Es una aplicación empleada
para la reproducción de música
víastreaming disponible en los
sistemas operativos Microsoft
Windows, Mac OS X, Linux, Windows
Phone, Symbian, iOS, Android Java y
BlackBerry(multiplataforma).
Permite escuchar en modo radio
buscando por artista, álbum o listas
de reproducción creadas por los
propios usuarios. El programa fue
lanzado el 7 de octubre de 2008 al
mercado europeo, mientras que su
implantación en otros países se
realizó a lo largo de 2009.
11. Flappy Bird fue un juego para
móviles de 2013 desarrollado
en Hanói por el
desarrollador vietnamita Nguyen
Hà Đông (Dong Nguyen) y
publicado por GEARS Studios, un
pequeño desarrollador de juegos
independiente, también con sede
en Vietnam. El juego, publicado
el 24 de mayo de 2013, fue
eliminado de App Store y Google
Play por su creador el 9 de
febrero de 2014 a las 17:00.
12. Es una aplicación de mensajería
de pago para enviar y recibir
mensajes mediante Internet,
complementando servicios
de correo
electrónico, mensajería
instantánea, servicio de
mensajes cortos o sistema de
mensajería multimedia. Además
de aprovechar la mensajería en
modo texto, los usuarios pueden
crear grupos y enviarse
mutuamente, imágenes, videos
y grabaciones de audio.
13. Es el conjunto de herramientas que permiten
al programador escribir programas informáticos, usando
diferentes alternativas y lenguajes de programación, de
una manera práctica.
Un lenguaje de programación es un idioma
artificial diseñado para expresar computaciones que
pueden ser llevadas a cabo por máquinas como
las computadoras. Pueden usarse para
crear programas que controlen el comportamiento
físico y lógico de una máquina, para expresar solución
a problemas con pasos lógicos y con precisión, o como
modo de comunicación humana. Está formado por un
conjunto de símbolos y reglas que definen su estructura
y el significado de sus elementos y expresiones.
14. Java: Es la base para prácticamente
todos los tipos de aplicaciones de red,
además del estándar global para
desarrollar y distribuir aplicaciones
móviles y embebidas, juegos, contenido
basado en web y software de empresa.
Con más de 9 millones de desarrolladores
en todo el mundo, Java le permite
desarrollar, implementar y utilizar de
forma eficaz interesantes aplicaciones y
servicios.
Desde portátiles hasta centros de datos,
desde consolas para juegos hasta súper
computadoras, desde teléfonos móviles
hasta Internet, Java está en todas partes.
15. PHP es un lenguaje de programación de
uso general de código del lado del
servidor originalmente diseñado para
el desarrollo web de contenido dinámico.
Fue uno de los primeros lenguajes de
programación del lado del servidor que se
podían incorporar directamente en el
documento HTML en lugar de llamar a un
archivo externo que procese los datos. El
código es interpretado por un servidor
web con un módulo de procesador de PHP
que genera la página Web resultante.
PHP ha evolucionado por lo que ahora
incluye también una interfaz de línea de
comandos que puede ser usada
en aplicaciones gráficas independientes.
Puede ser usado en la mayoría de los
servidores web al igual que en casi todos
los sistemas operativos y plataformas sin
ningún costo.
16. Software De
Programación
En Móviles
La plataforma Java Micro Edition (Java ME), o
anteriormente Java 2 Micro Edition (J2ME), es
una especificación de un subconjunto de la
plataformaJava orientada a proveer una colección
certificada de APIs de desarrollo de software para
dispositivos con recursos restringidos. Está
orientado a productos de consumo
como PDAs, teléfonos móviles o electrodomésticos.
Java ME se ha convertido en una buena opción
para crear juegos en teléfonos móviles debido a
que se puede emular en un PC durante la fase de
desarrollo y luego subirlos fácilmente al teléfono.
Al utilizar tecnologías Java el desarrollo de
aplicaciones o videojuegos con estas APIs resulta
bastante económico de portar a otros dispositivos.
17. .NET : Es un Framework (estructura de soporte
para organizar y desarrollar software) de
Microsoft que permite un rápido desarrollo de
aplicaciones. Python : Este lenguaje de
programación orientado a objetos es utilizado
para dispositivos móviles tales como Symbian,
Palm, teléfonos inteligentes de Nokia, etc.,
también se puede emplear en otras
plataformas tales como Windows, Linux/Unix,
Mac OS X, OS/2 y también ha sido portado para
maquinas virtuales de Java y .Net, distribuido
bajo la licencia de código abierto OSI lo hace
libre en su uso.
18. El modelo de desarrollo de software por etapas es similar
al Modelo de prototipos ya que se muestra al cliente el
software en diferentes estados sucesivos de desarrollo, se
diferencia en que las especificaciones no son conocidas en
detalle al inicio del proyecto y por tanto se van desarrollando
simultáneamente con las diferentes versiones del código.
Pueden distinguirse las siguientes fases:
Especificación conceptual
Análisis de requisitos
Diseño inicial
Diseño detallado, codificación, depuración y liberación
Estas diferentes fases se van repitiendo en cada etapa del
diseño.
19. 1. Plan operativo Etapa donde se define el problema a resolver,
las metas del proyecto, las metas de calidad y se identifica
cualquier restricción aplicable al proyecto.
2. Especificación de requisitos Permite entregar una visión de
alto nivel sobre el proyecto, poniendo énfasis en la descripción
del problema desde el punto de vista de los clientes y
desarrolladores. También se considera la posibilidad de una
planificación de los recursos sobre una escala de tiempos.
3. Especificación funcional Especifica la información sobre la
cual el software a desarrollar trabajará.
4. Diseño Permite describir como el sistema va a satisfacer los
requisitos. Esta etapa a menudo tiene diferentes niveles de
detalle. Los niveles más altos de detalle generalmente describen
los componentes o módulos que formarán el software a ser
producido. Los niveles más bajos, describen, con mucho detalle,
cada módulo que contendrá el sistema.
20. 5. Implementación Aquí es donde el software a ser desarrollado se codifica.
Dependiendo del tamaño del proyecto, la programación puede ser distribuida entre
distintos programadores o grupos de programadores. Cada uno se concentrará en la
construcción y prueba de una parte del software, a menudo un subsistema. Las
pruebas, en general, tiene por objetivo asegurar que todas las funciones están
correctamente implementadas dentro del sistema.
6. Integración Es la fase donde todos los subsistemas codificados
independientemente se juntan. Cada sección es enlazada con otra y, entonces,
probada. Este proceso se repite hasta que se han agregado todos los módulos y el
sistema se prueba como un todo.
7. Validación y verificación Una vez que el sistema ha sido integrado, comienza
esta etapa. Es donde es probado para verificar que el sistema es consistente con la
definición de requisitos y la especificación funcional. Por otro lado, la verificación
consiste en una serie de actividades que aseguran que el software implementa
correctamente una función específica. Al finalizar esta etapa, el sistema ya puede
ser instalado en ambiente de explotación.
8. Mantenimiento El mantenimiento ocurre cuando existe algún problema dentro de
un sistema existente, e involucraría la corrección de errores que no fueron
descubiertos en las fases de prueba, mejoras en la implementación de las unidades
del sistema y cambios para que responda a los nuevos requisitos. Las mantenciones
se puede clasificar en: correctiva, adaptativa, perfectiva y preventiva.
21. Una licencia de software es un contrato entre el licenciante
(autor/titular de los derechos de explotación/distribuidor) y
el licenciatario del programa informático (usuario
consumidor /usuario profesional o empresa), para utilizar el
software cumpliendo una serie de términos y condiciones
establecidas dentro de sus cláusulas.
Las licencias de software pueden establecer entre otras
cosas: la cesión de determinados derechos del propietario al
usuario final sobre una o varias copias del programa
informático, los límites en la responsabilidad por fallos, el
plazo de cesión de los derechos, el ámbito geográfico de
validez del contrato e incluso pueden establecer
determinados compromisos del usuario final hacia el
propietario, tales como la no cesión del programa a terceros
o la no reinstalación del programa en equipos distintos al que
se instaló originalmente.
22. Según los derechos que cada autor se reserva sobre su obra
Licencia de software de código abierto permisivas
Se puede crear una obra derivada sin que ésta tenga obligación de protección alguna.
Muchas licencias pertenecen a esta clase, entre otras:
Academic Free License v.1.2.
Apache Software License v.1.1.
Artistic License v.2.0
Attribution Assurance license.
BSD License.
MIT License.
University of Illinois/NCSA Open Source License.
W3C Software Notice and License.
Zope Public License v.2.0
Open LDAP License v.2.7
Perl License.
Academic Free License v.3.0
Python License v.2.1
PHP License v.3.0
Q Public License v.1.0
23. Licencia de software de código abierto robustas
Estas licencias aplican algunas restricciones a las obras derivadas, haciendo que según
el grado de aplicación se puedan dividir a su vez en dos subcategorías:
Licencias de software de código abierto robustas fuertes
Las licencias de software de código abierto robustas fuertes o con copyleft fuerte,
contienen una cláusula que obliga a que las obras derivadas o modificaciones que se
realicen al software original se deban licenciar bajo los mismos términos y condiciones
de la licencia original.
Entre las licencias de esta categoría están:
Common Public License v.1.0.
GNU General Public License v.2.0.
GNU General Public License v.3.0.
Eclipse Public License.
eCos License v.2.0
Sleepycat Software Product License.
Affero License v.1.0
Affero License v.2.0
OpenSSL License.
24. Licencias de software de código abierto robustas débiles
Las licencias de software de código abierto robustas débiles,
con copyleft débil/suave o híbridas, contienen una cláusula
que obliga a que las modificaciones que se realicen al
software original se deban licenciar bajo los mismos términos
y condiciones de la licencia original, pero que las obras
derivadas que se puedan realizar de él puedan ser licenciadas
bajo otros términos y condiciones distintas.
Entre las licencias de esta categoría están:
GNU Lesser General Public License v.2.1.
Mozilla Public License
Open Source License.
Apple Source License v.2.0
CDDL.
EUPL.
25. En informática una 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".