Logo Studenta

clase 10 - Jaquelin Ochoa

¡Estudia con miles de materiales!

Vista previa del material en texto

Clase 10
 Software
Es un conjunto de instrucciones que una computadora ejecuta de manera ordenada para realizar una determinada tarea o interactividad con el usuario.
Estos conjuntos de instrucciones también se conocen como programas y cada uno de ellos se desarrolla para un propósito específico.
Cuando un ordenador usa un programa, se dice que está corriendo o ejecutando ese programa.
El primer paso para ejecutar un programa es guardarlo en la memoria RAM.
Clasificación
Software de Aplicación
Es un conjunto de programas concebidos o creados para atender trabajos generales o específicos del usuario, referidos al cumplimiento de sus diversos objetivos.
El Software de Aplicación, necesita del Software de Base para poder ser ejecutado.
El Usuario Final se relaciona con el Software de Aplicación, que a su vez, utiliza los servicios del Software de Base para acceder al Hardware.
Clasificación
De propósito general: son los navegadores de internet, correo electrónico, procesadores de texto, planillas de cálculo electrónicas, software para presentaciones, software para trabajo en grupo (groupware), entre otros.
De propósito específico: diseñado para una tarea en especial. Ejemplo: el sistema de facturación de una empresa. (usuario específico)
Software de Sistema: Sistema Operativo S.O
Los sistemas operativos son conjuntos de programas concebidos para efectuar la administración o gestión de los recursos físicos de la computadora (hardware).
En una red de computadoras pueden coexistir diferentes sistemas operativos Ej windows, computadoras de usuario, Linux
(se lo denomina plataforma, cuando un software funcione en distintas plataforma, al software se lo denomina multiplataforma)
(En una misma computadora más sistemas operativos)
Objetivos
-Facilitar el uso de la computadora, proporcionando servicios para la ejecución de programas, es decir, obtener automáticamente el programa apropiado y administrar los recursos de los procesos en ejecución.
-Actuar como entorno de la aplicación, administrando los recursos de una manera eficiente (supervisar las operaciones de la computadora, determinar la asignación del procesador, administrar el uso de la memoria principal, dirigir el desenvolvimiento de las operaciones de entrada/salida y del acceso a archivos).
Multiprogramación
Consiste en el manejo casi simultáneo de dos o más programas independientes, intercalando su ejecución y compartiendo tiempos del procesador. El control de la ejecución de esta intercalación lo realiza el sistema operativo
El objetivo principal es el aprovechamiento del procesador, permitiendo que varios programas se ejecuten, intercalándose y compartiendo tiempos. De esta manera, se minimizan los “tiempos de espera” en que el procesador se encuentra “inactivo” los programas siguen ejecutandose
Multiprocesamiento
Los sistemas multi procesamiento son aquellos que usan más de un procesador, por lo que admiten la ejecución de varios procesos al mismo tiempo.
Cuando un programa termina o se detiene, uno de los procesadores queda disponible y se podrá asignar a otro programa o proceso a ese procesador
Funciones
El S.O. tiene a su cargo la administración de cinco elementos principales
1-Memoria principal: Memoria Virtual: 
Para que un programa pueda ejecutarse, tiene que estar cargado en memoria real,principal. La necesidad cada vez mayor de ejecutar programas grandes y la aparición de CPU’s más potentes obligaron a los diseñadores de S.O.’s a establecer un mecanismo para ejecutar programas más grandes que la memoria real disponible, esto es, de ofrecer memoria virtual.
El S.O. deja en memoria principal RAM las partes del programa que se están utilizando ( instrucciones y datos) y el resto lo almacena en disco mediante una zona de intercambio. 
Ejemplo: supongamos que un procesador necesita 80 MB de memoria para ejecutar programas, y sólo tenemos 64 MB. Para ello el sistema memoria virtual emplea el gestor de memoria virtual, que crea un archivo en el disco duro a modo de memoria adicional para suplir a la que falta
2-Procesador/es: 
Cuando más de un programa es ejecutable, el S.O. debe decidir cuál de ellos debe ejecutarse en primer término. El Planificador es la porción del Sistema Operativo que decide el programa que se ejecutará. 
El ordenamiento de asignaciones se realiza en una lista de aplicaciones que se encuentran en distintos estados:
-Ejecutándose: el programa se encuentra trabajando y usando el procesador.
-Listo para ejecutarse: significa que el programa se encuentra en condiciones de ser ejecutado, esperando que se le asigne procesador
-Detenido: por alguna causa el programa se encuentra a la espera de una acción que cambie su estado de detención (por ej.: un programa ejecutándose esperando requiere una operación de entrada/salida; el programa pasa a estar en estado “detenido” hasta que el supervisor reciba la señal que le indique que ya terminó la operación de entrada/salida. (Ejemplo la impresora espera a que solucionemos)
La asignación del procesador consiste, una vez rastreada la lista, en la elección de uno de los programas en estado listo para ejecutarse. 
3- Administración de procesos a ser ejecutados: 
El S.O. debe proveer los servicios necesarios para que se inicie la ejecución de los programas o procesos indicados por el usuario.
El usuario utiliza una interfaz gráfica y con un doble click del mouse, inicia la ejecución de un programa. El S.O. deberá encargarse de cargarlo en la memoria principal y preparar o asignar los recursos que utilizará la ejecución.
4- Administración de dispositivos de entrada/salida
a)Administración de dispositivos periféricos de entrada/salida
Una de las funciones principales de un S.O es el control de estos periféricos enviando órdenes para determinar que dispositivo necesita la atención del procesador para gestionar la tarea de entrada/salida de la información. Cuando se realiza el acceso a un dispositivo se hace a través de su parte electrónica llamada controladora física del dispositivo y mediante el software denominado driver o controlador lógico que es el encargado de traducir las órdenes dadas por el S.O al dispositivo. Estos drivers vienen diseñados para varios S.O.
b) Impresora
Al trabajar con multiprogramación, es muy probable que más de un programa requiera el uso de la impresora. 
Técnica de spooling: los documentos son guardados temporalmente en un área en un disco (buffer), y la impresora los saca de este a su velocidad. Así, el usuario puede realizar otras operaciones mientras la impresión tiene lugar en segundo plano. 
El spooling permite que los usuarios coloquen varios trabajos de impresión en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.
5- Administración de Datos
El S.O se encarga de que un programa pueda trabajar con la gestión lógica de entrada/salida que, a su vez, interactúa con la gestión física de la unidad periférica correspondiente.
Un programa realizará la misma operación de lectura o grabación, sin importar si utiliza un disco magnético, un disco óptico, un pendrive o un disco de estado sólido, a pesar de que cada uno de estos medios tiene características distintas.
Software de Sistema: Software para el Desarrollo
Para el desarrollo de software existen software específicos que permiten facilitar el proceso de construcción. Se utilizan lenguajes de programación que resultan más sencillos de manejar por los desarrolladores, pero que deben ser traducidos al lenguaje binario de máquina para poder ser efectivamente ejecutados.
Software de Sistema: Utilitarios
-Los programas utilitarios son usados para cumplir funciones necesarias para cualquier usuario en tareas relacionadas con el uso, diagnóstico y mantenimiento de la computadora.
-Muchos utilitarios vienen acompañando al sistema operativo, muchos otros son de uso gratuito y pueden ser bajados de internet.
-Ejemplos: antivirus, calculadora, el explorador, el editor de textos (como por ejemplo, el block de notas), reproductores de audio y video, etcétera.ya vienen cargados algunos
Lenguajes de programación
Para desarrollar un programa hay que usar un lenguaje de programación. 
Un procesador sólo puede ejecutar instrucciones que estén en lenguaje de máquina. Cualquier otro lenguaje, deberá ser traducido a lenguaje de máquina para poder ser ejecutado.
A continuación vemos como el desarrollador usando software de sistema, genera un software de aplicación.
Historia de los Lenguajes de Programación
Compiladores, Intérpretes y Entornos Traductores
Compaginadores: Con la aparición de los primeros lenguajes simbólicos "ensambladores", surgieron los primeros traductores de lenguajes simbólicos a lenguaje de máquina.
El compaginador realizaba un control general de sintaxis en todo el programa fuente y si no encontraba errores, generaba la versión ejecutable de ese programa, traduciendo una por una las instrucciones fuente.
Si había errores, los marcaba en un listado y no generaba el código ejecutable.
Compiladores: Los lenguajes simbólicos de alto nivel utilizaron como traductores a los compiladores o intérpretes. Los compiladores son traductores de características similares a los compaginadores, sólo que asociados a lenguajes de alto nivel.
Intérpretes: La traducción y la ejecución se realizan conjuntamente. Cada instrucción es analizada sintácticamente y, si es correcta, es traducida y ejecutada antes de pasar a la siguiente instrucción. Si se encuentra una instrucción errónea, la ejecución es detenida. La instrucción traducida a lenguaje de máquina no se guarda y, por lo tanto, no se genera un archivo con el programa en lenguaje de máquina.
Entornos de desarrollo: Considerando las ventajas de compiladores e intérpretes, surgieron los entornos de desarrollo que reúnen las características de ambos: permiten interpretar el código fuente y luego generar el archivo correspondiente con el programa en lenguaje de máquina, para su ejecución reiterativa por parte del usuario
Software propietario y libre
Software propietario (pago o gratuito):
-El “dueño” del software, al entregarlo, establece restricciones sobre su utilización y/o modificación.
-Puede ser gratuito o pago. Tengo restricciones
-El “propietario” al entregarla puede establecer restricciones con relación a su utilización.
-Cuando un software propietario se obtiene en forma gratuita se dice que es una pieza propietaria gratuita (freeware)
Ejemplo si es gratuito Skype, Acrobe
Software de código abierto (pago o gratuito)- open source:
-Software cuyo programa fuente es accesible y modificable por el usuario, sin restricciones.
-Puede obtenerse en forma gratuita u onerosa.
-Puede suceder que se vendan las fuentes del software sin otorgar el derecho a copiarlo y entregarlo a otros (no libre).
Software libre:
-Software cuya licencia de uso (paga o gratuita) garantiza a su receptor la libertad de utilizarlo en lo que quiera, estudiarlo, modificarlo acceder a la fuente del codigo/programa y redistribuirlo.
-La libertad de modificarlo implica que se trata de software de código abierto. Esta libertad se condiciona a incorporar mejoras y a la obligación de compartir esas mejoras con el resto de la comunidad.
-La libertad de redistribuirlo implica que se pueden hacer copias y entregar a terceros, con o sin cargo, independientemente de haberlo obtenido en forma gratuita u onerosa.
DESARROLLO DE SOFTWARE
Ingeniería del Software
Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software
Problemas en el Desarrollo de Software
Ciclo de vida del Software
El ciclo de vida del desarrollo de Software, es una secuencia estructurada y bien definida de las etapas en Ingeniería de software para desarrollar el producto software deseado.
Se divide en 7 etapas:
Etapa 1:
Es necesario definir el alcance del proyecto, justificarlo, realizar el estudio de factibilidad y escoger una metodología para su desarrollo. 
También es preciso asociar las diferentes actividades a plazos de tiempo y designar roles y responsabilidades. 
Etapa 2:
En esta etapa se define qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema, funcionales (las características que el sistema debe poseer).
Etapa 3:
Ya se sabe lo que se debe hacer, ahora se determina cómo hacerlo ¿cómo construir el sistema? se identifican y evalúan soluciones potenciales y se elige la más conveniente. se utilizará distintas herramientas
También se realiza la selección tecnológica de software y hardware, desarrollando las especificaciones para las distintas aplicaciones.
Etapa 4:
Esta fase también se puede denominar 'fase de programación'. La implementación del diseño de software empieza con el lenguaje de programación más conveniente, y desarrollando programas ejecutables y sin errores de manera eficiente. (depende de las herramienta de trabajo de los desarrolladores, también de las características de las necesidades, de requerimientos, si es algo web o aplicación de escritorio. El lenguaje de programación depende sobre todo las necesidades de lo solicite y en base a eso al equipo de desarrollo utilizar herramientas más convenientes. Entra en juego las licencias, software, base de datos, servidores si es app web)
Etapa 5:
El objetivo de esta etapa es corroborar que el diseño propuesto cumple con los requisitos de negocio establecidos. Puede ser necesario repetir las pruebas tantas veces como haga falta para evitar errores y, de hecho, conviene que el usuario final dé su conformidad con el resultado. si está corroborador va a ser o que el cliente espera.
Etapa 6:
En esta etapa se realizan las siguientes actividades:
-Instalación del hardware y software elegidos - Creación de las aplicaciones correspondientes - Realización de pruebas, aparte del cliente - Creación de la documentación pertinente y capacitación a los usuarios finales.
Etapa 7:
Esta etapa está relacionada con las operaciones diarias, es un período de operación supervisada. Entre las actividades de mantenimiento se encuentran:
-realización de backups
-soporte a los usuarios finales,
-resolución de fallos, 
-optimización del sistema para cuestiones relacionadas con la seguridad o la velocidad 
-revisión del software para garantizar la alineación con las metas del negocio
Metodologías para el Desarrollo
La metodología hace referencia al conjunto de procedimientos racionales utilizados para alcanzar un objetivo que requiera habilidades y conocimientos específicos. 
Es el conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. 
Determina los pasos a seguir y cómo realizarlos para finalizar una tarea
Metodología Tradicional
-Se centran en llevar una documentación exhaustiva de todo el proyecto.
-Imponen una disciplina estricta de trabajo sobre desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se enfatiza en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software.
-Se centra en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada.
-No se adaptan adecuadamente a los cambios, no es adecuada cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.
-Altos costos al implementar un cambio y falta de flexibilidad en proyectos donde el entorno es volátil.
Costos mano de obra
Metodología Ágil
Este enfoque nace como respuesta a los problemas que puedan ocasionar las metodologías tradicionales
Un modelo de desarrollo ágil, es un proceso:
* Incremental: entregas frecuentes con ciclos rápidos
* Cooperativo: clientes y desarrolladores trabajan constantemente con una comunicación muy fina y constante
* Sencillo:el método es fácil de aprender y modificar para el equipo
* Adaptativo: capaz de permitir cambios de último momento
Proporcionan pautas y principios que hacen que la entrega del proyecto sea menos complicada y más satisfactoria tanto para los clientes y los equipos de trabajo, evitando caminos burocráticos de las metodologías tradicionales
Generan poca documentación se centra más en el trabajo y no en la documentación
Destacan que la capacidad de respuesta a un cambio es más importante que el seguimiento estricto de un plan.
Actualmente se utiliza la metodología ágil Las etapas son las mismas sólo que en las metodologías ágiles las puedo combinar no es necesario tan estricto como la metodología tradicional que tengo que esperar a que termine una para comenzar otra y no puedo retroceder sino que tengo que esperar avanzar por todo el ciclo Algunas metodologías ágiles Define sus propios modelos por ejemplo LainOX
Muchas tiene en cuenta la experiencia de usuario. Se puede combinar entre 2 metodologías ágiles
Se puede tomar otras ideas de otros Softwares como funcionan y ofrecer un Software mas completo
AUTOEVALUACIÓN 10
La fibra óptica es un medio excelente para la transmisión de información porque tiene: gran ancho de banda, baja atenuación de la señal, integridad, inmunidad a interferencias electromagnéticas, alta seguridad y larga duración.
El router puede interconectar redes de protocolos diferentes y dirige los paquetes en dirección a su destino. Un ruteador se puede utilizar para separar un red grande en varias subredes -v-
En la conmutación de circuitos, la información/datos a ser transmitida previamente es ensamblada en paquetes. Cada paquete es entonces transmitido individualmente y éste puede seguir diferentes rutas hacia su destino. Una vez que los paquetes llegan a su destino, los paquetes son otra vez re-ensamblados -V-
El Software de Aplicación es un conjunto de programas para realizar trabajos generales o específicos del usuario. El Software de Sistema o de base, actúa como apoyo para que podamos usar, administrar, mantener la computadora. El Software de Aplicación, necesita del Software de Base para poder ser ejecutado.
Una red de computadoras es un conjunto de computadoras interconectadas, con el fin de compartir tantos recursos de hardware (almacenamiento, impresoras, escaners, etc.) como recursos de software (aplicaciones, archivos, datos, etc.) -V-
Un bridge es un dispositivo de seguridad que monitorea el tráfico de red —entrante y saliente— y decide si permite o bloquea tráfico específico en función de un conjunto de reglas de seguridad -F-
La red externa o extranet es una red que sólo pueden utilizar los usuarios autorizados de una empresa/institución/grupo y que pueden utilizarla para compartir de forma segura y rápida conocimientos e información dentro de ese grupo autorizado -F-
Banda ancha: ofrece mayor velocidad de transmisión que banda base. Brinda acceso a Internet de alta velocidad a través de múltiples tipos de tecnologías, incluidas la fibra óptica, el servicio móvil, el servicio de conexión por cable
El TCP/IP fue diseñado para ser compatible con cualquier sistema operativo, hardware o software. El protocolo TCP define la manera en que los datos son fragmentados en secciones de información manejable o en paquetes, que luego son enviados individualmente a través de la red de Internet. El protocolo IP controla el recorrido de los paquetes hasta su destino, como si fuera una especie de sistemas de direcciones basados en los números IP -F-

Continuar navegando