Informática Aplicada a las Ciencias Sociales

Grado en Ciencia Política y Gestión Pública

Fundamentos de Software

Elaborado por Rafael Barzanallana

Fundamentos de Software

Contenido capítulo:

  • Introducción

  • Lenguajes de programación

  • Metodologías de programación

  • Sistemas operativos

Introducción

  • Software

    • Componente lógico de un ordenador

    • Interacción usuario con el ordenador

    • Ordenadores arquitectura Von Neumann

      • Instrucciones se almacenan en memoria junto los datos

      • Programa almacenado

Introducción

    Programas son un conjunto de instrucciones informáticas, diseñadas para resolver problemas, que le indican al ordenador los pasos a seguir.

  • Clasificación del software:

    • Software del sistema y programación
      • Sistemas operativos
      • Lenguajes de programación
    • Software de aplicación
      • Ofimática
      • Estadística
      • Diseño ...

Lenguajes de programación

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas.

Formado por un conjunto de:

  • Símbolos

  • Reglas sintácticas

  • Reglas semánticas

Lenguajes de programación

Algoritmo: conjunto de operaciones y procedimientos que deben seguirse para resolver un problema en un número finito de pasos.

Algoritmo

Lenguaje informático es aquel por medio del cual un algoritmo se codifica a un sistema comprensible por el ordenador.

Lenguajes de programación

Clasificación lenguajes de programación

Lenguajes de programación

Clasificación según la forma de ejecución:

  • Interpretado
    Lenguaje interpretado
  • Compilado
    Lenguaje compilado

Lenguajes de programación

Clasificación según nivel de abstracción:

  • Alto nivel
    • C
    • Java
    • PHP ...

  • Bajo nivel
    • Ensamblador
    • Lenguaje máquina

Lenguajes de programación

Ejemplo: muestra el texto "Universidad de Murcia"

    Ensamblador

    .model tiny .data message db 'Universidad de Murcia'
    .code org 100h
    start: mov ah,9 mov dx,offset message int 21h
    ret end start
Pascal

    program UniMurcia;
    begin writeln('Universidad de Murcia'); end.

Lenguajes de programación

Clasificación según el paradigma de programación:

  • Declarativo
  • Imperativo
  • Orientado a objetos
  • Funcional

Metodologías de programación

Causas de aparición de las metodologías de programacion:

  • El coste creciente de los desarrollos
  • La insatisfacción con la adecuación y calidad
  • La complejidad y tamaño creciente de los programas
  • La creciente dependencia de muchas organizaciones de sus sistemas informáticos
  • El intento de lograr ordenadores de quinta generación (acabó en fracaso)

Metodologías de programación

Los métodos de trabajo que se desarrollaron para responder a estas necesidades se llama
Ingeniería del Software

Ciclo de vida completo de un producto software:

  • Diseño
  • Desarrollo
  • Uso
  • Mantenimiento

Metodologías de programación

Un programa ha de cumplir las siguientes condiciones:

  • Estructura general en forma de módulos, que a su vez estarán formados por procedimientos o segmentos
  • Interfaz claramente definida entre los módulos
  • Cada módulo debe de ser una combinación sencilla de construcciones elementales de un lenguaje
  • Fuerte correspondencia entre la estructura de los módulos y la de los datos sobre los que operan
  • Cada módulo debe dejar las estructuras de datos sobre las que opera en un estado consistente con su definición
  • Un módulo no debe tener efectos secundarios

Metodologías de programación

Técnicas de diseño de programas:

  • Refinamiento Progresivo
  • Descomposición Funcional


Técnicas de verificación de programas:

  • Prueba con datos reales
  • Métodos formales

Sistemas operativos

Capa intermedia entre el hardware del ordenador y los programas de los usuarios

Funciones que realiza en un ordenador:

  • Comunicación con los periféricos

  • Coordinación de los trabajos concurrentes

  • Administración de la memoria

  • Monitorización de recursos

  • Programas y localización de datos

  • Coordinación de las comunicaciones en una red

Sistemas operativos

Sistemas operativos más difundidos:

  • Windows

  • Linux / Unix

  • Mac OS

  • Android

  • Apple iOS

Universidad de Murcia