SlideShare uma empresa Scribd logo
1 de 45
Tema III. Software
operativo y de desarrollo

 Objetivo: El alumno conocerá y entenderá la evolución
 del software y la situación actual que éste presenta.
 Asimismo distinguirá los diferentes tipos de programas
 (software) necesarios tanto para operar la máquina
 como para realizar desarrollos y aunado a esto tendrá las
 bases para seleccionar aquel software que le permita
 resolver un problema.
3.1 Evolución del software y su
                   situación actual
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.

    Conjunto de programas, instrucciones y
   reglas informáticas para ejecutar ciertas
   tareas en una computadora.
http://rae.es/rae.html

   El término “evolución” del software se
   utiliza desde hace varias décadas para
   denominar la dinámica de crecimiento
   del software.
3.1 Evolución del software y su
                   situación actual
   En 1999 Ned Chapin lo definió como “la aplicación de las actividades
   y procesos de mantenimiento del software que generan una nueva
   versión operativa de un software con una funcionalidad de usuario o
   propiedades cambiadas a partir de una versión anterior […] junto con
   los procesos y actividades de garantía de calidad y con la gestión de
   esos procesos”.
http://www.program-transformation.org/Transform/SoftwareEvolution
3.1 Evolución del software y su
                    situación actual
Durante los primeros años de la era de la
computadora, el software se contemplaba
como un añadido. La programación de
computadoras era "artesanal" y existían
pocos métodos sistemáticos.

El desarrollo del software se realizaba
virtualmente sin ninguna planificación,
hasta que los planes comenzaron a
descalabrarse y los costos a elevarse.

La misma persona lo escribía, lo ejecutaba
y, si fallaba, lo depuraba. El diseño era un
proceso implícito, realizado en la mente
de     alguien     y   la    documentación
normalmente no existía.
3.1 Evolución del software y su
               situación actual
La segunda era en la evolución de
los sistemas de computadora se
extienden desde la mitad de la
década de los sesenta hasta finales
de los setenta.

La multiprogramación y los sistemas
multiusuario introdujeron nuevos
conceptos de interacción hombre-
máquina.

También se caracterizó por el
establecimiento del software como
producto y la llegada de las "casas
de software".
3.1 Evolución del software y su
              situación actual
La tercera era en la evolución de los
sistemas de computadora comenzó a
mediados de los años setenta y
continúo más allá de una década.

Los sistemas distribuidos, múltiples
computadoras, cada una ejecutando
funciones      concurrentes          y
comunicándose   con    alguna    otra,
incrementaron    notablemente       la
complejidad   de      los    sistemas
informáticos.

Las redes, las comunicaciones digitales
de alto ancho de banda y la creciente
demanda de acceso "instantáneo" a los
datos, supusieron una fuerte presión
sobre los desarrolladores del software.
3.1 Evolución del software y su
              situación actual

La cuarta era de la evolución de los
sistemas informáticos se aleja de las
computadoras individuales y de los
programas      de     computadoras,
dirigiéndose al impacto colectivo de
las computadoras y del software.

Potentes     máquinas     personales
controladas por sistemas operativos
sofisticados, en redes globales y
locales,      acompañadas        por
aplicaciones de software avanzadas
se han convertido en la norma.
3.1 Evolución del software y su
               situación actual
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.
3.1 Evolución del software y su
                  situación actual
    Sin embargo, un conjunto de problemas relacionados con el software
    ha persistido a través de su evolución:

   Los avances del software continúan dejando atrás nuestra habilidad
    de construir software para alcanzar el potencial del hardware.
   Nuestra habilidad de construir nuevos programas no pueden ir al
    mismo ritmo de la demanda de nuevos programas.
   El uso extenso de computadoras ha hecho de la sociedad cada vez
    más dependiente de la operación fiable del software.
   Luchamos por construir software informático que tenga fiabilidad y
    alta calidad.
   Nuestra habilidad de soportar y mejorar los programas existentes se
    ve amenazada por diseños pobres y recursos inadecuados.
3.2 Software de base

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
3.2 Software de base

Software de Base

    Software básico que controla una computadora.

El sistema operativo tiene tres grandes funciones:

   Coordina
   Manipula
   Organiza los archivos
3.2 Software de base
Sistemas operativos
    Un sistema operativo (SO) es el
    programa o conjunto de programas
    que efectúan la administración de
    los procesos básicos de una
    computadora, sus funciones básicas
    son:

   Coordinar y manipular el HW.
   Organizar archivos en diversos
    dispositivos.
   Gestionar errores.
   Interpretar y ejecutar comandos.
3.2 Software de base
3.2 Software de base
Algunos sistemas operativos son:
   MS-DOS.
   Windows.
   UNIX.
   BSD.
   Linux
   Symbian.
   iOS.
   BlackBerry.
   Android.
   Chrome OS
3.2 Software de base

Sistemas operativos, MS-DOS

   Microsoft Diskette Operating System:
   Aparece en 1981.
   Monousuario y monotarea.
   Usado a base de comandos.
3.2 Software de base

Windows
   Hace su 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.
   A partir de la versión 3, consiguió éxito comercial a principios de los 90’s, primeras
    pruebas de WinNT.
   Windows 95 fue el primero considerado como sistema operativo real; incorporó el “Plug
    and Play”.
   Win98, muy lento y sustituido por Win98-SE.
   Win2k y WinME, “Universal Plug and Play”.
   WinXP, aparece en 2001, el más utilizado actualmente.
   WinVista, 2006, de los fracasos más grandes de MS.
   Win7, 2009.
3.2 Software de base
3.2 Software de base
Sistemas operativos, UNIX
   Es un sistema operativo
    portable, multitarea y
    multiusuario.
   Desarrollado por Ken
    Thompson y Dennis Ritchie
    entre otros.
   Hizo su aparición a principios
    de los 70’s en los
    Laboratorios Bell.
3.2 Software de base
Sistemas operativos, BSD

   Berkeley Software Distribution.
   Derivado de Unix 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 y Fast FileSystem.
3.2 Software de base
Sistemas operativos, Linux
   Linux es el núcleo de un sistema
    operativo libre, desarrollado y lanzado
    al mundo por Linus Torvalds en 1991.
   Torvalds eligió distribuir Linux con una
    licencia de software de código libre
    denominada GNU GPL (General Public
    License).
   Una distribución es un agrupamiento del
    núcleo del sistema operativo Linux y
    otra serie de aplicaciones de uso general
    o no tan general.
   Libre, gratuito, de código fuente abierto
    y portable.
3.2 Software de base

Uno de los primeros conceptos que aparecen al iniciarse en
Linux es el concepto de distribución.
Una distribución es un agrupamiento del núcleo del sistema
operativo Linux (la parte desarrollada por Linus Torvalds) y
otra serie de aplicaciones de uso general o no tan general. En
principio las empresas que desarrollan las distribuciones de
Linux están en su derecho al cobrar una cierta cantidad por el
software que ofrecen, aunque en la mayor parte de las
ocasiones se pueden conseguir estas distribuciones desde
Internet, de revistas o de amigos, siendo todas estas formas
gratuitas y legales.
3.2 Software de base
Richard Matthew Stallman
    inició el proyecto GNU en 1983 y liberó
    GNU Emacs y gcc.
    La licencia GNU GPL fue creada en
    1987 y está orientada principalmente a
    proteger la libre distribución,
    modificación y uso de software.
   Fundador del proyecto GNU
   Creador Emacs
   Compilador GCC
   Creador de las licencias GNU: GPL,
    LGPL
3.2 Software de base

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.
3.2 Software de base
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.
3.2 Software de base
3.2 Software de base
3.2 Software de base

Fase de Análisis

  El proceso de desarrollo comienza
  con la fase de análisis, la cual
  muestra qué debe hacer el paquete.
  En esta fase, el analista de sistemas
  define los requisitos que especifican
  lo que el sistema propuesto va a
  lograr.
  Los requisitos por lo general se
  establecen en los términos que el
  usuario comprende.
3.2 Software de base
Fase de Análisis

    Para poder identificar y definir bien un problema es
    conveniente responder a las siguientes preguntas:

   ¿Qué entradas se requieren?
        Tipo de datos con los cuales se trabaja y cantidad
   ¿Cuál es la salida deseada?
        Tipo de datos de los resultados y cantidad
   ¿Qué método produce la salida deseada?
        Requisitos   o requerimientos adicionales y restricciones a la
          solución.
3.2 Software de base
Fase de Diseño
                                 Se ayuda de dos características
  La fase de diseño define       en esta etapa:
  cómo logrará el sistema lo
  que se definió en la fase de
  análisis. En la fase de
  diseño, se determinan los
  sistemas y el diseño de
  archivos y/o bases de datos
  se completa.
3.2 Software de base


Fase de Implementación

 En la fase de implementación
 se crean los problemas
 reales.
3.2 Software de base
Fase de Prueba

  Una vez que los programas se han
  escrito, deben probarse. La fase de
  prueba puede ser muy tediosa y
  consumir parte del tiempo de desarrollo
  del programa. Los programadores son
  completamente responsables de probar
  sus programas. En los proyectos de
  desarrollo grandes, con frecuencia hay
  especialistas llamados Ingenieros de
  Pruebas quienes son responsables de
  probar el sistema como un todo.
3.2 Software de base

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).
3.2 Software de base
Calidad de Software

  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ó.
3.2 Software de base
3.2 Lenguajes y traductores
Lenguaje de programación
 Es un lenguaje artificial diseñado para
 expresar instrucciones 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 algoritmos con
 precisión, o como modo de comunicación
 humana.
 Está formado por un conjunto de símbolos y
 reglas sintácticas y semánticas que definen su
 estructura y el significado de sus elementos y
 expresiones.
3.2 Lenguajes y traductores
Lenguajes de bajo nivel

  El lenguaje de máquina es el sistema de
  códigos directamente interpretable por un
  microprocesador. Este lenguaje está
  compuesto     por    un     conjunto   de
  instrucciones que determinan acciones a
  ser tomadas por la máquina.

  El lenguaje ensamblador implementa una
  representación simbólica de los códigos de
  máquina binarios y otras constantes
  necesarias     para      programar      un
  microprocesador.
3.2 Lenguajes y traductores
Lenguajes de alto nivel

  Son aquellos que se aproximan más al
  lenguaje natural humano que al lenguaje
  binario de las computadoras (de bajo
  nivel).

  Al aproximarse al lenguaje natural, el
  programa se puede escribir y leer de una
  forma más sencilla, eliminando muchas
  de las posibilidades de cometer errores
  que se daban en el lenguaje máquina, ya
  que se utilizan palabras (generalmente
  en inglés) en lugar de cadenas de
  símbolos sin ningún significado aparente.
3.2 Lenguajes y traductores
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 como piensa un ser humano, para
  luego compilarlo a un programa más manejable por una
  computadora.
3.2 Lenguajes y traductores
3.2 Lenguajes y traductores

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.
3.3 Software de aplicación

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.

Se clasifica en dos grandes áreas:

   A la medida.
   De propósito general.
3.3 Software de aplicación

Software A la medida

  Son aplicaciones desarrolladas “a la medida
  de las necesidades‟ que ofrecen una gran
  potencia, ya que, están exclusivamente
  diseñadas para resolver problemas con
  requerimientos específicos.
3.3 Software de aplicación

Software De propósito general

    Son paquetes integrados de software que incluyen varias
    aplicaciones, por ejemplo:

   Procesadores de Texto.
   Hoja de Cálculo.
   Base de datos.
TAREA TEMA 3


   Tarea3.1: Investigar que es un live cd, utilizarlo y hacer una captura
    de pantalla con su navegador visitando: http://cpi06.blogspot.mx/

   Tarea3.2: Utilizar el emulador de linux http://bellard.org/jslinux/ y
    probar diversos comandos: ls, date, whoami, cat, chmod, etc.

   Tarea3.3: Hacer un listado de al menos 20 lenguajes de
    programación y clasificarlos por el paradigma al que pertenece y por
    la forma en la que ejecutan sus programas.

Mais conteúdo relacionado

Mais procurados

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosLIMONVERDE
 
Software
SoftwareSoftware
SoftwareCurika
 
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...santos_Jonathan
 
trabajo colaborativo 1 sistemas operativos y malwares
trabajo colaborativo 1 sistemas operativos y malwarestrabajo colaborativo 1 sistemas operativos y malwares
trabajo colaborativo 1 sistemas operativos y malwaresOscar Andres Soto
 
Trabajo colaborativo 1 (221120 4)
Trabajo colaborativo 1 (221120 4)Trabajo colaborativo 1 (221120 4)
Trabajo colaborativo 1 (221120 4)ricardomolinagil
 
Clase u1 so-1 2015
Clase u1  so-1 2015Clase u1  so-1 2015
Clase u1 so-1 2015Isaac Rivera
 
9 grupo informatica TIPOS DE SISTEMA OPERATIVOS
9 grupo informatica TIPOS DE SISTEMA OPERATIVOS9 grupo informatica TIPOS DE SISTEMA OPERATIVOS
9 grupo informatica TIPOS DE SISTEMA OPERATIVOSjessypoveda17
 

Mais procurados (18)

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Software
SoftwareSoftware
Software
 
Carlos lara
Carlos laraCarlos lara
Carlos lara
 
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...
<iframe width="854" height="480" src="https://www.youtube.com/embed/KX0Civ9u2...
 
Software
SoftwareSoftware
Software
 
Satware
SatwareSatware
Satware
 
trabajo colaborativo 1 sistemas operativos y malwares
trabajo colaborativo 1 sistemas operativos y malwarestrabajo colaborativo 1 sistemas operativos y malwares
trabajo colaborativo 1 sistemas operativos y malwares
 
Trabajo colaborativo 1 (221120 4)
Trabajo colaborativo 1 (221120 4)Trabajo colaborativo 1 (221120 4)
Trabajo colaborativo 1 (221120 4)
 
Clase u1 so-1 2015
Clase u1  so-1 2015Clase u1  so-1 2015
Clase u1 so-1 2015
 
9 grupo informatica
9 grupo informatica9 grupo informatica
9 grupo informatica
 
Grupo 9
Grupo 9Grupo 9
Grupo 9
 
9 grupo informatica
9 grupo informatica9 grupo informatica
9 grupo informatica
 
Grupo 9
Grupo 9Grupo 9
Grupo 9
 
Tipos de sistemas operativos, grupo 9
Tipos de sistemas operativos, grupo 9Tipos de sistemas operativos, grupo 9
Tipos de sistemas operativos, grupo 9
 
Grupo 9
Grupo 9Grupo 9
Grupo 9
 
9 grupo informatica
9 grupo informatica9 grupo informatica
9 grupo informatica
 
9 grupo informatica
9 grupo informatica9 grupo informatica
9 grupo informatica
 
9 grupo informatica TIPOS DE SISTEMA OPERATIVOS
9 grupo informatica TIPOS DE SISTEMA OPERATIVOS9 grupo informatica TIPOS DE SISTEMA OPERATIVOS
9 grupo informatica TIPOS DE SISTEMA OPERATIVOS
 

Semelhante a Tema 3 (20)

Sistemas operativos y software libres
Sistemas operativos y software libresSistemas operativos y software libres
Sistemas operativos y software libres
 
Sistemas operativos y software libres
Sistemas operativos y software libresSistemas operativos y software libres
Sistemas operativos y software libres
 
Tarea 2 software
Tarea 2 software Tarea 2 software
Tarea 2 software
 
Linux
LinuxLinux
Linux
 
T3
T3T3
T3
 
Un sistema operativo
Un sistema operativoUn sistema operativo
Un sistema operativo
 
Informatica
InformaticaInformatica
Informatica
 
Diferencias entre linux y windows
Diferencias entre linux y windowsDiferencias entre linux y windows
Diferencias entre linux y windows
 
T3
T3T3
T3
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
1674161.ppt
1674161.ppt1674161.ppt
1674161.ppt
 
Linux
LinuxLinux
Linux
 
Linux
LinuxLinux
Linux
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos informatica basica
Sistemas operativos  informatica basicaSistemas operativos  informatica basica
Sistemas operativos informatica basica
 
Software Libre
Software LibreSoftware Libre
Software Libre
 
Hardware
HardwareHardware
Hardware
 

Mais de Maye Re

Algoritmos
AlgoritmosAlgoritmos
AlgoritmosMaye Re
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2Maye Re
 
Tema vi guia de c
Tema vi guia de cTema vi guia de c
Tema vi guia de cMaye Re
 
Ejercicios
EjerciciosEjercicios
EjerciciosMaye Re
 
Ejercicios diagramadeflujo
Ejercicios diagramadeflujoEjercicios diagramadeflujo
Ejercicios diagramadeflujoMaye Re
 
Repaso tvi
Repaso tviRepaso tvi
Repaso tviMaye Re
 
Tema 1 cpi
Tema 1 cpiTema 1 cpi
Tema 1 cpiMaye Re
 

Mais de Maye Re (20)

Tema iv
Tema ivTema iv
Tema iv
 
Tema v
Tema vTema v
Tema v
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tema ii
Tema iiTema ii
Tema ii
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2
 
Tema vi guia de c
Tema vi guia de cTema vi guia de c
Tema vi guia de c
 
Tema vi
Tema viTema vi
Tema vi
 
Tema v
Tema vTema v
Tema v
 
Tema iv
Tema ivTema iv
Tema iv
 
Tema ii
Tema iiTema ii
Tema ii
 
Tema i
Tema iTema i
Tema i
 
Serie2
Serie2Serie2
Serie2
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Ejercicios diagramadeflujo
Ejercicios diagramadeflujoEjercicios diagramadeflujo
Ejercicios diagramadeflujo
 
Repaso tvi
Repaso tviRepaso tvi
Repaso tvi
 
Tema vi
Tema viTema vi
Tema vi
 
Tema v
Tema vTema v
Tema v
 
Tema iv
Tema ivTema iv
Tema iv
 
Tema 2
Tema 2Tema 2
Tema 2
 
Tema 1 cpi
Tema 1 cpiTema 1 cpi
Tema 1 cpi
 

Tema 3

  • 1. Tema III. Software operativo y de desarrollo Objetivo: El alumno conocerá y entenderá la evolución del software y la situación actual que éste presenta. Asimismo distinguirá los diferentes tipos de programas (software) necesarios tanto para operar la máquina como para realizar desarrollos y aunado a esto tendrá las bases para seleccionar aquel software que le permita resolver un problema.
  • 2. 3.1 Evolución del software y su situación actual 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. Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. http://rae.es/rae.html El término “evolución” del software se utiliza desde hace varias décadas para denominar la dinámica de crecimiento del software.
  • 3. 3.1 Evolución del software y su situación actual En 1999 Ned Chapin lo definió como “la aplicación de las actividades y procesos de mantenimiento del software que generan una nueva versión operativa de un software con una funcionalidad de usuario o propiedades cambiadas a partir de una versión anterior […] junto con los procesos y actividades de garantía de calidad y con la gestión de esos procesos”. http://www.program-transformation.org/Transform/SoftwareEvolution
  • 4. 3.1 Evolución del software y su situación actual Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La programación de computadoras era "artesanal" y existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costos a elevarse. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. El diseño era un proceso implícito, realizado en la mente de alguien y la documentación normalmente no existía.
  • 5. 3.1 Evolución del software y su situación actual La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre- máquina. También se caracterizó por el establecimiento del software como producto y la llegada de las "casas de software".
  • 6. 3.1 Evolución del software y su situación actual La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. Los sistemas distribuidos, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementaron notablemente la complejidad de los sistemas informáticos. Las redes, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software.
  • 7. 3.1 Evolución del software y su situación actual La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.
  • 8. 3.1 Evolución del software y su situación actual 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.
  • 9. 3.1 Evolución del software y su situación actual Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de su evolución:  Los avances del software continúan dejando atrás nuestra habilidad de construir software para alcanzar el potencial del hardware.  Nuestra habilidad de construir nuevos programas no pueden ir al mismo ritmo de la demanda de nuevos programas.  El uso extenso de computadoras ha hecho de la sociedad cada vez más dependiente de la operación fiable del software.  Luchamos por construir software informático que tenga fiabilidad y alta calidad.  Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseños pobres y recursos inadecuados.
  • 10. 3.2 Software de base 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
  • 11. 3.2 Software de base Software de Base Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones:  Coordina  Manipula  Organiza los archivos
  • 12. 3.2 Software de base Sistemas operativos Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la administración de los procesos básicos de una computadora, sus funciones básicas son:  Coordinar y manipular el HW.  Organizar archivos en diversos dispositivos.  Gestionar errores.  Interpretar y ejecutar comandos.
  • 14. 3.2 Software de base Algunos sistemas operativos son:  MS-DOS.  Windows.  UNIX.  BSD.  Linux  Symbian.  iOS.  BlackBerry.  Android.  Chrome OS
  • 15. 3.2 Software de base Sistemas operativos, MS-DOS  Microsoft Diskette Operating System:  Aparece en 1981.  Monousuario y monotarea.  Usado a base de comandos.
  • 16. 3.2 Software de base Windows  Hace su 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.  A partir de la versión 3, consiguió éxito comercial a principios de los 90’s, primeras pruebas de WinNT.  Windows 95 fue el primero considerado como sistema operativo real; incorporó el “Plug and Play”.  Win98, muy lento y sustituido por Win98-SE.  Win2k y WinME, “Universal Plug and Play”.  WinXP, aparece en 2001, el más utilizado actualmente.  WinVista, 2006, de los fracasos más grandes de MS.  Win7, 2009.
  • 18. 3.2 Software de base Sistemas operativos, UNIX  Es un sistema operativo portable, multitarea y multiusuario.  Desarrollado por Ken Thompson y Dennis Ritchie entre otros.  Hizo su aparición a principios de los 70’s en los Laboratorios Bell.
  • 19. 3.2 Software de base Sistemas operativos, BSD  Berkeley Software Distribution.  Derivado de Unix 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 y Fast FileSystem.
  • 20. 3.2 Software de base Sistemas operativos, Linux  Linux es el núcleo de un sistema operativo libre, desarrollado y lanzado al mundo por Linus Torvalds en 1991.  Torvalds eligió distribuir Linux con una licencia de software de código libre denominada GNU GPL (General Public License).  Una distribución es un agrupamiento del núcleo del sistema operativo Linux y otra serie de aplicaciones de uso general o no tan general.  Libre, gratuito, de código fuente abierto y portable.
  • 21. 3.2 Software de base Uno de los primeros conceptos que aparecen al iniciarse en Linux es el concepto de distribución. Una distribución es un agrupamiento del núcleo del sistema operativo Linux (la parte desarrollada por Linus Torvalds) y otra serie de aplicaciones de uso general o no tan general. En principio las empresas que desarrollan las distribuciones de Linux están en su derecho al cobrar una cierta cantidad por el software que ofrecen, aunque en la mayor parte de las ocasiones se pueden conseguir estas distribuciones desde Internet, de revistas o de amigos, siendo todas estas formas gratuitas y legales.
  • 22. 3.2 Software de base Richard Matthew Stallman inició el proyecto GNU en 1983 y liberó GNU Emacs y gcc. La licencia GNU GPL fue creada en 1987 y está orientada principalmente a proteger la libre distribución, modificación y uso de software.  Fundador del proyecto GNU  Creador Emacs  Compilador GCC  Creador de las licencias GNU: GPL, LGPL
  • 23. 3.2 Software de base 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.
  • 24. 3.2 Software de base 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.
  • 27. 3.2 Software de base Fase de Análisis El proceso de desarrollo comienza con la fase de análisis, la cual muestra qué debe hacer el paquete. En esta fase, el analista de sistemas define los requisitos que especifican lo que el sistema propuesto va a lograr. Los requisitos por lo general se establecen en los términos que el usuario comprende.
  • 28. 3.2 Software de base Fase de Análisis Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:  ¿Qué entradas se requieren? Tipo de datos con los cuales se trabaja y cantidad  ¿Cuál es la salida deseada? Tipo de datos de los resultados y cantidad  ¿Qué método produce la salida deseada? Requisitos o requerimientos adicionales y restricciones a la solución.
  • 29. 3.2 Software de base Fase de Diseño Se ayuda de dos características La fase de diseño define en esta etapa: cómo logrará el sistema lo que se definió en la fase de análisis. En la fase de diseño, se determinan los sistemas y el diseño de archivos y/o bases de datos se completa.
  • 30. 3.2 Software de base Fase de Implementación En la fase de implementación se crean los problemas reales.
  • 31. 3.2 Software de base Fase de Prueba Una vez que los programas se han escrito, deben probarse. La fase de prueba puede ser muy tediosa y consumir parte del tiempo de desarrollo del programa. Los programadores son completamente responsables de probar sus programas. En los proyectos de desarrollo grandes, con frecuencia hay especialistas llamados Ingenieros de Pruebas quienes son responsables de probar el sistema como un todo.
  • 32. 3.2 Software de base 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).
  • 33. 3.2 Software de base Calidad de Software 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ó.
  • 35.
  • 36. 3.2 Lenguajes y traductores Lenguaje de programación Es un lenguaje artificial diseñado para expresar instrucciones 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 algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.
  • 37. 3.2 Lenguajes y traductores Lenguajes de bajo nivel El lenguaje de máquina es el sistema de códigos directamente interpretable por un microprocesador. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. El lenguaje ensamblador implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar un microprocesador.
  • 38. 3.2 Lenguajes y traductores Lenguajes de alto nivel Son aquellos que se aproximan más al lenguaje natural humano que al lenguaje binario de las computadoras (de bajo nivel). Al aproximarse al lenguaje natural, el programa se puede escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (generalmente en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.
  • 39. 3.2 Lenguajes y traductores 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 como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
  • 40. 3.2 Lenguajes y traductores
  • 41. 3.2 Lenguajes y traductores 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.
  • 42. 3.3 Software de aplicación 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. Se clasifica en dos grandes áreas:  A la medida.  De propósito general.
  • 43. 3.3 Software de aplicación Software A la medida Son aplicaciones desarrolladas “a la medida de las necesidades‟ que ofrecen una gran potencia, ya que, están exclusivamente diseñadas para resolver problemas con requerimientos específicos.
  • 44. 3.3 Software de aplicación Software De propósito general Son paquetes integrados de software que incluyen varias aplicaciones, por ejemplo:  Procesadores de Texto.  Hoja de Cálculo.  Base de datos.
  • 45. TAREA TEMA 3  Tarea3.1: Investigar que es un live cd, utilizarlo y hacer una captura de pantalla con su navegador visitando: http://cpi06.blogspot.mx/  Tarea3.2: Utilizar el emulador de linux http://bellard.org/jslinux/ y probar diversos comandos: ls, date, whoami, cat, chmod, etc.  Tarea3.3: Hacer un listado de al menos 20 lenguajes de programación y clasificarlos por el paradigma al que pertenece y por la forma en la que ejecutan sus programas.