Tema 1:
Características de un pc:
periféricos de entrada, interfazà procesador (unidad de control, unidad aritmético-lógica), memoria central, interfazàPeriféricos de salidaDatos:
son aquellos elementos considerados como unidades de tratamiento. Pueden ser de entrada o salidaInformación:
implica que los datos estén procesados de manera que resulten útiles o significativos para el receptor de los mismos.Programas:
son conjuntos de órdenes diseñados y creados a través del razonamiento lógico y almacenado en ficheros de texto respetando la sintaxis de un determinado lenguaje. Tienen como objetivo la realización de tareas concretas.Aplicación informática
Es la unión de uno o más programas enlazados entre sí, junto a la documentación generada durante el proceso de desarrollo de dicha aplicación.Sistema informático
Es un conjunto de elementos, cuya finalidad es la de obtener nueva información a partir de la ya existente y no elaborada.- Un sistema operativo es una interfaz entre ordenador y usuario, se encarga de la gestión del procesador, de la memoria principal, de los dispositivos de entrada y salida y de la memoria auxiliar.
- Tipos de S.S.O.O
- Sistemas monoprogramados: permiten la ejecución de un solo programa a la vez
- Sistemas multiprogramados (multitarea): permiten la ejecucuión de varios programas simultáneamente (concurrencia de procesos)
- Sistemas multiprocesos: son capaces de ejecutar varios procesos a la vez (Procesos paralelo.)
- Sistemas de tiempo compartido: multiprogramación interactiva, permiten la ejecución simultánea de varios programas junto con la interactividad del usuario, pudiendo éste realizar peticiones al sistema que serán atendidas inmediatamente.
- Sistemas de tiempo real: el tiempo de respuesta es el período de tiempo transcurrido desde que se realiza una petición o solicitud al sistema hasta que este responde.
- Monousuarios: sólo permiten el acceso a un usuario cada vez. Multiusuario se basan en sistemas multiprogramados, permitiendo el acceso a varios usuarios simultáneamente.
- Tipos de S.S.O.O
- Lenguaje de programación: es un conjunto de símbolos y caracteres combinados entre sí de acuerdo con reglas sintácticas y semánticas ya definidas. Permiten facilitar la tarea a los programadores, permitiendo tener mayor nivel de abstracción en el código.
- Bajo nivel
- Primera generación: código máquina
- Medio nivel
- Segunda generación: Tiene definidas unas instrucciones para realizar operaciones sencillas con datos simples. Ensamblador
- Tercera generación: Gran mayoría de lenguajes que se usan hoy en día, mucho más entendible e intuitivo
- Alto nivel
- Cuarta generación: son lenguajes de propósito especifico.
- Quinta generación: lenguajes naturales, inteligencia artificial y lógica.
- Bajo nivel
- Paradigmas de programación
- Imperativo: Secuencia de instrucciones que indican cómo se resuelve el problema.
- Estructurado: Utiliza tres estructuras básicas, define un único inicio y fin para el programa
- Procedimental: El programa se divide en funciones y procedimientos que pueden comunicarse entre sí.
- Orientado a eventos: La estructura y ejecución del programa depende de sucesos que ocurran en el sistema.
- Orientado a objetos: Se trata de simular los objetos de la vida real, ya que cada objeto tiene sus características propias y una manera de usarlos.
- Funcional: Ve a la programación como funciones matemáticas y así evitar declarar y cambiar datos.
- Lógico: Define un conjunto de reglas lógicas para ser interpretadas mediante inferencias lógicas.
- Proceso de compilación:
Análisis lexicográfico
Se comprueban los caracteres, buscando palabras reservadas, operadores, caracteres de puntuación…Análisis sintáctico-semántico
Se agrupan los lexemas en forma de frases gramaticales, se revisa su coherencia.Generación de código
Genera el código del objeto.- PROCESO DE ENLAZADO: se enlaza nuestro código con las librerías necesarias.
- Proceso de desarrollo
- Análisis: define los requisitos del software, entrevista con el cliente. Informe ERS (especificación de requisitos software).
- Diseño: determinar la mejor solución para requisitos establecidos, cuaderno de carga.
- Codificación: análisis completo y estructura básica que el programador deberá codificar, traducir cuaderno de carga al lenguaje deseado.
- Pruebas: confirmar que la codificación ha sido exitosa y que el software hace lo que debe hacer.
- Explotación: se implanta en el sistema elegido o se prepara para que se implante de manera automática, recomendable convivencia del sistema actual y del anterior (caja registradora, tpu)
- Mantenimiento: cubre cambios en el software, correctivo, aumentativo, cambio de plataforma.
- Documentación: la de usuarios debe mostrar información completa de cómo manejar la aplicación. La técnica debe permitir conocer las decisiones del diseño.
- Roles que intervienen en el desarrollo
- Analista de sistemas: realizar estudio del sistema para dirigir proyecto a la dirección de las expectativas del cliente.
- Diseñador de software: en función del análisis de software, diseña la solución que hay que desarrollar.
- Analista programador: Aporta una visión general del proyecto más detallada y cercana a la codificación (diseño y codificación)
- Programador: escribe el código fuente
- Arquitecto del software: Es la figura que cohesiona el proceso de desarrollo (análisis, diseño, explotación, documentación)
- La información que incluye el diseño de la arquitectura es:
- Estructura: descripción de subsistemas
- Comportamiento: descripción de la comunicación entre componentes
- Cualquier otra información que al arquitecto considere relevante
- ¿Qué tenemos en cuenta para el diseño?
- Requisitos, contexto, experiencia del arquitecto.
- UML: lenguaje unificado de modelado, es el lenguaje de modelado de sistemas de software, más conocido y utilizado en la actualidad.
- Estilos arquitectónicos:
- Centrado en datos: el centro es una pizarra y otros componentes tienen acceso a ella.
- Tuberías y filtros: Dato de entrada se han de transformar en datos de salida mediante operaciones
- Capas: Se define capas de manera que solo se comunican entre sí las capas adyacentes.
- Orientada a servicios: basado en el uso de servicios web
- Módulo: trocito del programa que soluciona un problema concreto.
- Principios del diseño
- Abstracción: Para el diseño de la arquitectura se recomienda comenzar con alto grado de abstracción y refinar sucesivamente hasta llegar al nivel de componente.
- Descomposición: Divide y vencerás
- Cohesión: Grado en el que un módulo se centra en hacer una sola cosa (cohesión debe ser alta)
- Acoplamiento: Grado en el que un módulo está conectado con otros y el mundo exterior (debe ser bajo)
- Variaciones protegidas: lograr que los cambios involucren la menor cantidad de código posible.