tarea 2
TRANSCRIPT
3 SOFTWARE OPERATIVO Y DE DESARROLLO
3.1 Evolución del software y su situación actual.
Software
El término “evolución” del software se utiliza desde los sesenta para denominar la dinámica de crecimiento del software.
Una definición atribuida a Lehman y Ramil dice que la evolución del software es “todas las actividades de programación que se orientan a generar una nueva versión de un software a partir de una versión anterior operativa.
La industria del software ya es la cuna de la economía del mundo. Las técnicas de la cuarta generación para el desarrollo del software están cambiando en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de los sistemas basados en computadora, y estos problemas continúan aumentando:
1. Los avances del software continúan dejando atrás nuestra habilidad de construir software para alcanzar el potencial del hardware.
2. Nuestra habilidad de construir nuevos programas no pueden ir al mismo ritmo de la demanda de nuevos programas, ni podemos construir programas lo suficientemente rápido como para cumplir las necesidades del mercado y de los negocios.
3. El uso extenso de computadoras ha hecho de la sociedad cada vez más dependiente de la operación fiable del software. Cuando el software falla, pueden ocurrir daños económicos enormes y ocasionar sufrimiento humano.
4. Luchamos por construir software informático que tengan fiabilidad y alta calidad.
5. Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseños pobres y recursos inadecuados.
3.2 Software de base: sistemas operativos, lenguajes y traductores.
Clasificación
Según su función Software de base Software aplicativos Por su uso o estandarización El software aplicativo El software a la medida El software de acuerdo al cliente Libre y propietario
Software de Base
Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones:
•Coordina •Manipula•Organiza los archivos
Sistema Operativo
Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con la computadora.
Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos de utilizar.
Sistemas por Lotes
Estos sistemas se diseñaron en la década de 1950 para controlar las computadoras mainframe. Cada programa a ejecutarse se llamaba tarea. Un programador que deseaba ejecutar una tarea enviaba una solicitud a la sala de operaciones junto con tarjetas perforadas para el programa y los datos. El programador no tenía ningún control o interacción con el sistema. Un operador procesaba las tarjetas perforadas. Si el programa era satisfactorio, el resultado se enviaba al programador, de lo contrario, se enviaba un listado de error.
Ejemplos de Sistemas Operativos
MS-DOS
Windows Linux Unix BSD
MS-DOS •Apareció en los años 70’s• No es multiusuario o multitarea• Se regía por medio de comandos
Windows
Aparición el 20 de noviembre de 1985
Dispone de una interfaz gráfica que facilita el manejo de los procedimientos: cada comando puede ser visualizado en una pantalla mediante una imagen que lo representa.
Mayor difusión en el mercado actual, y su imponente popularidad se torna elemento indispensable para la inserción de todo nuevo usuario informático.
LINUX
•Aparición en 1991.
•Creado por Linus Torvalds
•Sistema informático libre, gratuito y de código fuente abierto.
•Flexibilidad de configuración
•Estabilidad
UNIX
• Principios de los años setentas.
• Creado por Ken Thompson y Dennis
Ritchie.
• Capacidad de soportar
Multiprogramación.
• Capacidad de tiempo compartido.
BSD
• Berkeley Software Distribution.
• En 1977 Bill Joy, entonces un estudiante de grado en Berkeley, grabó y envió cintas del primer BSD.
• Nacido a partir de los aportes realizados a ese sistema por la Universidad de
California en Berkeley.
• Manejo de memoria virtual paginado por demanda.
• Control de trabajos.
Lenguaje de programación
Cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por una computadora.
Conjunto de normas «lingüísticas» que permiten escribir un programa y que éste sea entendido por la computadora y pueda ser trasladado a computadoras similares para su funcionamiento en otros sistemas.
Lenguaje de bajo nivel
Lenguaje de programación que la computadora puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete que traduzca cada línea de instrucciones.
Lenguaje de alto nivel
Lenguaje de programación en el que las instrucciones enviadas para que la PC ejecute ciertas órdenes son similares al lenguaje humano.
Dado que la PC no es capaz de reconocer estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender.
3.3 Software aplicativo
Software Aplicativo
Programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo.
Posee ciertas características que le diferencia de un S.O., como por ejemplo, suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén.
3.1.1 Software a la medida
Software a la medida
Son ciertas aplicaciones desarrolladas ‘a medida’ que ofrecen una gran potencia, ya que, están exclusivamente diseñadas para resolver un problema en específico.
3.1.2 Software de propósito general
Software de propósito general
Son paquetes integrados de software que incluyen varias aplicaciones, como por ejemplo:
•Procesadores de Texto
•Hoja de Cálculo
•Base de datos
3.2 Evolución del software y su situación actual
Los objetivos específicos de este subtema son que el alumno:
• Defina el concepto de software
Es la estructura lógica de una computadora, todo lo intangible, es decir, son los programas de aplicación, sistemas operativos que no son tangibles para el usuario.
• Identifique las diferentes clasificaciones del software
• Según su función
• Por uso o estandarización
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos:
Software de sistema: 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, 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 Software de programación: 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). Software de aplicación: 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)
3.3 Software de base: sistemas operativos, lenguajes y traductores
Los objetivos específicos de este subtema son que el alumno:
• Describa a los lenguajes de programación y su clasificación de acuerdo:
• Al nivel
Libertades del Software Libre
Libertad 0: la libertad de usar el programa, con cualquier propósito.
Libertad 1: la libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades.
Libertad 2: la libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie.
Ciclo de Vida del Software
El software primero se desarrolla por un grupo de desarrolladores/programadores. Por lo general, está en uso durante algún tiempo antes de que se requiera hacerle modificaciones. Las modificaciones a menudo son necesarias debido a errores encontrados en el software, a cambios en las normas o leyes, o a cambios en la compañía misma. El software debe modificarse antes para su uso posterior. Estos dos pasos, usar y modificar, continúan hasta que el software se vuelve obsoleto.
Calidad de Software
“La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, std. 610-1990).
Software que satisface los requerimientos explícitos e implícitos del usuario, está bien documentado, cumple con las normas operativas de la organización y se ejecuta de manera eficiente en el hardware para el cual se desarrolló.
• Al tipo de traductor (compilador o intérprete)
Compilador
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina).
De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
• A la aplicación
Intérprete
Es un programa capaz de analizar y ejecutar programas escritos en un lenguaje de alto nivel.
Los intérpretes se diferencian de los compiladores en que los primeros sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción y normalmente no guardan el resultado de dicha traducción.