Implementación de Nuevos Sistemas Eficientes
Implementación de Nuevos Sistemas Eficientes
nuevos sistemas
→ ¿por qué?
● sistema viejo ineficiente, no apropiado para su propósito original, anticuado
● incrementar productividad, calidad
● minimizar costos
● reducir/corregir errores
VENTAJAS DESVENTAJAS
VENTAJAS DESVENTAJAS
● PARTES INVOLUCRADAS:
○ stakeholders - partes interesadas y afectadas por la realización de un proyecto
→ dueños, usuarios, desarrolladores, instaladores, analistas, clientes, gobierno
○ usuario final - el usuario que va a utilizar el producto
○ ¿cómo conocer sus requisitos para planear un sistema?
■ entrevistas (face-to-face, online, telefónica)
+ proveen información confiable, directa de la fuente
+ se construye un vínculo de confianza entre ambas partes
+ información desarrollada y completa
- lleva mucho tiempo
- información difícil de clasificar
■ cuestionarios (con/sin restricciones en las respuestas)
+ no hay ambigüedad, rápidos y anónimos (seguridad para
expresarse)
+ se pueden clasificar las respuestas para facilitar el análisis
estadístico
+ mayor alcance
- en manos del usuario si contestar
- se pueden malinterpretar las preguntas
■ observación de procesos actuales
+ se observa directo donde se necesitan mejoras
+ análisis profundo del caso
- consume mucho tiempo
- cambios de comportamiento bajo supervisión
● PROTOTIPO - versión preliminar del producto final para demostrar cómo el mismo va a
funcionar
+ atrae la atención del cliente e inversores
+ ayuda a identificar posibles problemas con el diseño
+ promueve la participación del usuario y desarrolladores → sugieren mejoras
- requiere tiempo y capital (recursos, dinero, empleados)
● CARACTERÍSTICAS DE UN SISTEMA:
○ accesibilidad - potencial de un servicio, producto, dispositivo o demás de
satisfacer las necesidades de la mayor cantidad de individuos posibles
→ ejemplo: dispositivos de input en braille, lectores de pantalla (ciegos)
○ usabilidad - potencial y efectividad de un producto, aplicación o página web de
cumplir con los objetivos del usuario
■ complejidad - el esfuerzo que se necesita para conseguir un resultado
■ efectividad - si se consigue el resultado deseado
■ eficiencia - completar la tarea en el menor tiempo posible
■ errores - ¿cuántos errores y de qué tipo se pueden hacer? ¿cómo y en
cuánto tiempo se solucionan?
■ aprendizaje - el tiempo empleado en aprender a usar el producto
■ memoria - la facilidad de volverlo a utilizar después de tiempo de
inactividad
■ comprensión - facilidad de leer y comprender
■ satisfacción - sentimientos después de la utilización
○ ergonomía - disciplina científica que trata de las interacciones entre los seres
humanos y otros elementos de un sistema. Implica un diseño seguro y cómodo
para el usuario
● actualización
○ PARCHES - reparan errores y vulnerabilidades conocidos. Pueden introducir
nuevos errores
○ ACTUALIZACIONES - pueden agregar funcionalidades o corregir errores
(generalmente gratuitas)
○ MEJORAS - funcionalidades o características novedosas + corrección de errores
acumulativos (generalmente pagas)
○ VERSIONES - versiones finales y operativas de las apps de software que
pasaron por pruebas alfa y beta
→ el usuario
● documentación del usuario
○ DOCUMENTACIÓN INTERNA - características de la codificación que ayudan a
la comprensión del código principalmente al programador (ej, comentarios,
nombres de variables útiles y significativos, sangría adecuada, separación en
módulos/subprogramas, etc)
○ DOCUMENTACIÓN EXTERNA - documento separado que ayuda al usuario de
forma directa (ej, guía del usuario, descripción de las características de diseño e
implementación, etc)
■ manuales y archivos de ayuda - en línea (se pueden actualizar, descargar
e imprimir) o impresos (se pueden leer sin uso de una PC o internet)
■ soporte de correo electrónico - contacto entre el usuario y la empresa
para ser orientados por técnicos especializados
■ asistencia integrada - proporciona información sobre herramientas y
contenido de página dinámico dentro del propio sistema (especifica el
contexto y la tarea)
■ preguntas frecuentes - brinda respuestas a preguntas que tienden a
repetirse
■ sesiones de chat en vivo - soporte en tiempo real, comunicación entre el
usuario y un técnico especializado. Útil en situaciones de emergencia
■ portales en línea - proporcionan manuales, páginas de soporte y FAQ
■ conexiones de escritorio remoto - una persona especializada se conecta
y toma el control del PC del usuario a través de internet. Ideal para
usuarios no experimentados, pero inseguro.
→ SISTEMA COMPUTACIONAL
● PARTES:
○ hardware - componentes físicos
○ software - conjunto de instrucciones al CPU para llevar a cabo operaciones
específicas (programas + datos)
○ dispositivos periféricos - dispositivos auxiliares que se comunican y trabajan con
la computadora, extendiendo sus funciones (ex, dispositivos de entrada y salida)
○ red - sistemas computacionales interconectados entre sí, permitiéndoles
comunicarse y compartir recursos y datos
○ recursos humanos - empleados de una organización
● ROLES:
○ terminal tonta - depende de otro dispositivo, no tiene capacidad de
procesamiento, manejo y almacenamiento de datos
○ cliente - recibe datos del servidor a través de una red
○ servidor - almacena, distribuye y suministra información; ofrece un servicio
(datos) al cliente → ex, servidor de email (maneja el flujo de emails, comprueba
validez de las direcciones, permite ingresar a tu cuenta)
○ router - recibe paquetes de información y los envía a su dirección destino a
través de la red
○ sistema de nombres de dominio (DNS) - es la “agenda telefónica de Internet”.
Cuando los usuarios escriben nombres de dominio como "[Link]" en los
navegadores web, el DNS se encarga de encontrar la dirección IP correcta para
esos sitios
○ cortafuegos (firewall) - se utiliza para definir el perímetro de la red y controlar el
tráfico de datos, permitiéndole identificar y bloquear el tráfico potencialmente
sospechoso y malicioso
● primary memory
RAM ROM
● memoria caché
○ memoria de alta velocidad, pero de baja capacidad
○ diferentes niveles de caché para almacenar más datos (L1, L2, L3)
○ almacena los datos e instrucciones más utilizados para reducir el tiempo
de acceso a la memoria RAM y mejorar el rendimiento
○ ej: cuando el procesador necesita leer de la RAM, primero lee la
memoria caché para buscar si están los datos que necesita (de no ser
así, consulta a la RAM)
● memoria secundaria
○ más lenta que la memoria principal, mayor capacidad
○ se puede leer y escribir
○ no volátil - la información no se pierde (permanente)
○ almacenamiento externo
○ conectada a la memoria principal
■ contiene información permanente (ej, sistema operativo) que se cargan a
la memoria principal que se vacía cuando el dispositivo está apagado
■ almacena información de la memoria principal cuando la misma no tiene
más espacio → MEMORIA VIRTUAL (técnica que consiste en utilizar la
memoria secundaria como memoria principal)
○ ej: disco duro, disco compacto, memoria USB, tarjeta SD, unidad de estado
sólido, DVD
● Execute o Ejecución - la CPU ejecuta la instrucción usando los datos cargados y calcula
su resultado
○ las operaciones matemáticas y lógicas se solucionan en la ALU
>> SOFTWARE
● SISTEMA OPERATIVO
○ gestiona todos los recursos (hardware y software) del sistema informático
○ intermediario entre software y hardware
○ provee servicios a las aplicaciones software
○ permite la comunicación entre el usuario y el ordenador
● SISTEMAS DE APLICACIÓN
○ una herramienta para realizar operaciones o funciones específicas
○ diseñados para el usuario final
● TIPOS DE APLICACIONES
○ PROCESADORES DE TEXTO:
■ para producir documentos
■ herramientas para componer, editar, dar formato e imprimir documentos
○ HOJAS DE CÁLCULO
■ para realizar cálculos a través de fórmulas y puede presentar gráficos
para su análisis
■ cálculos matemáticos, operaciones lógicas, financieras, estadísticas,
trigonométricas, etc.
■ datos organizados en celdas, intersección entre fila y columna
○ SISTEMA DE GESTIÓN DE BASE DE DATOS:
■ administra (guarda, actualiza y extrae) información de una base de datos
■ almacena datos de un mismo contexto (interconectados)
■ garantiza la integridad y seguridad de los datos
■ provee una interfaz entre el usuario y la base de datos
■ datos organizados en registros dentro de tablas
○ CORREO ELECTRÓNICO:
■ permite el intercambio de mensajes digitales entre un autor y uno o varios
destinatarios
■ basado en web o a través de un software de aplicación de correo
electrónico
■ encabezado del mail = dirección del emisor y de los destinatarios, el
asunto del mail, fecha y hora.
■ cuerpo del mail = mensaje
○ NAVEGADORES WEB:
■ para acceder a contenido en la World Wide Web - páginas web,
imágenes, videos u otros archivos que se puedan identificar con una URL
(Localizador Uniforme de Recursos)
■ se con el servidor web apropiado, trae la información requerida por el
usuario y la muestra en el navegador
○ SOFTWARE DE DISEÑO ASISTIDO POR COMPUTADOR:
■ para crear, modificar, analizar y optimizar diseños
■ permite inspeccionar el diseño desde cualquier ángulo
■ permite representar materiales y dimensiones
■ permite la modificación de valores dependientes al cambiar un valor
específico
○ SOFTWARE DE PROCESAMIENTO GRÁFICO:
■ permite al usuario manipular imágenes en una computadora
■ herramientas de recorte, borrado, selección, edición, etc.
● CLI vs GUI
○ Interfaz por línea de comando (CLI): Es una interfaz de texto, a la que se accede
mediante comandos en prompts, los cuales el usuario tiene que aprenderse para
poder escribirlos.
○ Interfaz gráfica (GUI): Permite al usuario interactuar con la computadora de
diferentes maneras, como a través de barras de herramientas (botones con
íconos, menús), menús (lista de comandos específicos), cuadros de diálogo
(comunican información al usuario), etc. Se necesita el mouse para manejarlas.
Las GUIs también son descritas o conocidas como interfaces WIMP (Windows,
Íconos, Menús, Apuntadores -Pointers-)
● SISTEMA BINARIO
○ todas las instrucciones se guardan en 0 y 1
○ posibles combinaciones = 2^n → n = cantidad de bits
○ 1 Byte (B) = 8 Bits (b)
○ conversión = 1024 (aproximado 1000)
○ REPRESENTACIÓN DE NÚMEROS ENTEROS - Bytes (B)
■ 1 Byte = xxxx xxxx
■ 2*2*2*2*2*2*2*2 = 256 posibilidades
■ primer bit - 0 = negativo / 1 = positivo → 7 bits disponibles
■ números del -128 al 127
○ REPRESENTACIÓN DE COLORES
■ pixeles - unidad mínima que compone un imagen representada en la
pantalla → RGB - Red, Green, Blue = colores primarios
■ resolución de monitores = ancho x alto de píxeles
→ ej, 1024 x 768 = 1027 pixeles de ancho, 768 de alto
■ 3 bytes - 1 x color → muestran la intensidad de cada uno
● (2^3)(2^3)(2^3) = 512 colores posibles
● SISTEMA HEXADECIMAL
○ 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)
○ 6 caracteres, cada caracter 4 bits (3 bytes en total)
● CONVERSIONES
○ DECIMAL A BINARIO → dividir x 2 // BINARIO A DECIMAL → potenciar x 2
○ DECIMAL A HEXAD. → dividir x 16 // HEXAD. A DECIMAL → potenciar x 16
● CÓDIGO ASCII
○ American Standard Code for Information Interchange
○ usado para representar caracteres
○ basado en el idioma inglés
○ 1 byte = 1 número (0-127) = 1 caracter
○ incluye A-Z (mayúscula, minúscula) + números (0-9) + caracteres de puntuación
○ PROBLEMA:
■ solo el alfabeto latino - excluye idiomas → UNICODE:
● más moderno
● Unicode Transformation Format (UTF-8) - hasta 4 bytes
● incluye caracteres de otros lenguajes, incluso Right-To-Left (RTL)
ENTRADA SALIDA
A X
0 1
1 0
○ AND → 1 = A ∩ B → (“y”)
ENTRADA SALIDA
A B X
0 0 0
0 1 0
1 0 0
1 1 1
○ OR → 1 = A ∪ B → (“o”)
ENTRADA SALIDA
A B X
0 0 0
0 1 1
1 0 1
1 1 1
ENTRADA SALIDA
A B X
0 0 1
0 1 1
1 0 1
1 1 0
○ NOR → 1 = (A ∪ B)’ → (“ninguno - ni A, ni B, ni los dos”)
ENTRADA SALIDA
A B X
0 0 1
0 1 0
1 0 0
1 1 0
ENTRADA SALIDA
A B X
0 0 0
0 1 1
1 0 1
1 1 0
TEMA 3 - REDES
>> RED - dos o más dispositivos conectados (por cable o inalámbrico) que se pueden comunicar
y compartir información
● ROLES
○ servidor - provee un servicio (comparte recursos) a otro dispositivo conectado a la
red
○ cliente - utiliza el servicio (recursos) proveído por el servidor de la misma red
● DISPOSITIVOS
○ HUB o CONCENTRADOR (hub)
■ para una red
■ conecta a las computadoras que se conecten al mismo
■ manda un mensaje (archivo, instrucciones, datos, etc) a todas las
computadoras conectadas
● puede sobrecargar y ralentiza la red - mucho tráfico
■ la destinataria toma el mensaje, las demás lo ignoran
○ SWITCH o CONMUTADOR
■ para una red
■ “versión mejorada” del concentrador
■ identifica qué dispositivo se conecta a qué puerto
■ recibe el mensaje y solo se lo manda a la computadora destino
■ más rápido que un hub
○ ROUTER
■ conecta redes
■ permite el tráfico de información entre redes
■ ex: conectar una red de una casa al Internet
● TIPOS DE REDES
○ LAN - Local Area Network (red de área local)
■ dentro de una misma organización - límite geográfico
■ permite el uso compartido de dispositivos periféricos
■ permite el intercambio de data
■ utiliza switch/hub para conectar dispositivos
■ conección a través de cables
● más segura - no se puede interceptar
● más rápida
○ PEER-TO-PEER (2P2)
■ res que no usa el modo cliente-servidor
■ arquitectura descentralizada - todos los dispositivos son clientes y
servidores al mismo tiempo
■ menos seguridad que cliente-servidor
○ compresión de información
■ consiste en reducir el tamaño de los archivos para facilitar la transmisión
■ se reducen los bits utilizando procesos de cifrado
■ transmisión más rápida y segura
■ el archivo se debe descomprimir por el destinatario
■ tipos de compresión de datos:
● lossy data compression (con pérdida) - se pierde una porción de la
información de manera irreversible → ej, JPEG, MP3
● lossless data compression (sin pérdida) - reduce el número de bits
identificando y eliminando elementos redundantes; no se pierde
información; se puede recuperar la información original → ej, GIF
>> TIPOS DE CONEXIONES
** ETHERNET - tecnología estándar para redes de área local (LAN), que permite conectar
dispositivos mediante cables para compartir datos
○ SOFTWARE
■ protocolo de configuración dinámica de host (DHCP)
● protocolo cliente-servidor
● permite a un servidor proporcionar automáticamente una dirección
IP a un cliente
● ej, un router (servidor) a los dispositivos conectados (clientes)
■ software cortafuegos
● evitar que otros usuarios de Internet no autorizados tengan acceso
a las redes privadas conectadas a Internet
● controla el tráfico de información entrante y saliente de la red
■ identificador de red SSID
● 32 caracteres alfanuméricos asignados a la red “nombre público”
● sirve para diferenciar una WLAN de otra
■ controladores de la tarjeta de red (NIC)
● permiten que la NIC se comunique con el SO del dispositivo
● traducen las instrucciones del SO para que la NIC las interprete
● sin el mismo, la NIC no es reconocida por el sistema = no hay
conexión o intercambio de datos con la red
■ sistema operativo
● maneja todos los protocolos, hardware y software
● gestiona comunicación entre dispositivos
● permite compartir recursos
■ software de seguridad
● previene acceso no autorizado (uso, robo, corrupción, destrucción)
● incluye firewall, antivirus, software antiespia y anti tapeo, sistema
de detección de intruso, software de encriptación
■ protocolo de aplicación inalámbrica (WAP)
● estándar técnico para acceder a la información de una red
inalámbrica
● permite a los dispositivos conectarse a internet
■ buscador WEB
● permite buscar, encontrar y acceder al contenido de la WWW
WPS wps (wireless protected setup) fácil de utilizar solo funciona con
es un sistema que requiere un dispositivos
router wps que permite a los no se necesita certificados WPS
dispositivos conectarse a la saber la clave
red a través de un pin SSID el dispositivo debe
estar cerca del
router
>> CONCEPTOS:
● problema - una situación que debe ser solucionada. Los pasos a seguir son:
identificación y entendimiento del problema, análisis de las alternativas, elegir la mejor
solución e implementar la solución elegida
● algoritmo - serie de instrucciones no ambiguas diseñadas para solucionar un problema y
alcanzar un objetivo en una serie de pasos establecidos
○ propiedades de un algoritmo:
■ finitud - terminan después de una serie de pasos
■ definición - cada paso y acción esta profunda y inambiguamente
especificados
■ input - información que se le proporciona al algoritmo
■ output - información que el algoritmo proporciona en relación a los inputs
■ efectividad - el resultado debe ser exacto
○ maneras de expresarlos:
■ lenguaje natural - ambiguo y engorroso
■ diagrama de flujo - diagrama del algoritmo
■ pseudocódigo
■ lenguaje de programación
○ evaluación de un algoritmo:
■ eficiencia - la cantidad de recursos (tiempo de ejecución, uso de
memoria, etc) necesarios para llevar a cabo determinado proceso →
minimizar el uso de recursos = mayor eficiencia
■ asertividad - en que medida satisface las especificaciones y cumple su
objetivo sin error (mide la exactitud de los resultados)
■ fiabilidad - la capacidad de funcionar adecuadamente y cumplir sus
funciones consistentemente en diferentes ejecuciones o bajo diferentes
condiciones (consistencia de asertividad)
■ flexibilidad - el esfuerzo necesario para modificar el algoritmo
(capacidad de escalar)
● subprograma - división de un procedimiento complejo en distintos procesos
independientes (programación modular)
○ permite la delegación de tareas
○ facilita la programación - descompone un proceso complejo
○ añade niveles de abstracción
○ se pueden reutilizar
○ facilitan el mantenimiento y la corrección de errores
● condición previa - debe ser verdadera para que se invoque el subprograma // estado
inicial del algoritmo
● condición posterior - debe ser verdadera al finalizar el subprograma // estado final del
algoritmo
● iteración - la repetición de una serie de instrucciones x cantidad de veces o hasta
conseguir determinado resultado
● condición - una característica que debe ocurrir para desatar determinado procedimiento
● pre-planificación - planear por adelantado. Permite un análisis profundo, comprensión y
adquisición de los recursos necesarios, y mejores resultados
● diagrama de gantt - gráfico de barras usado para representar el cronograma de un
proyecto (izquierda = columna de actividades // parte superior = escala de tiempo)
● prefetching / precarga - captar los datos de la memoria principal al cache antes de
necesitarlos para que estén disponibles
● librerías de software - consisten de elementos preformados disponibles para el uso
futuro (ej, códigos pre-escritos que un programador puede usar sin necesidad de
re-escribirlo)
● concurrencia - ejecución simultánea de diferentes instrucciones por distintos
procesadores para conseguir el mejor rendimiento
- requiere mejor planificación y coordinación de recursos
- puede causar problemas de sincronización
+ mayor velocidad de respuesta
+ mayor rendimiento y aprovechamiento de recursos disponibles
● pensamiento abstracto - entendimiento general de los procesos sin necesidad de
detalles de acciones específicas. Ayuda en la planificación y desarrollo de un algoritmo
● programación orientada a objetos - basada en entidades abstractas (objetos o eventos).
Describe la información (propiedades) y comportamiento (métodos) de objetos reales.
Facilita la reutilización y abstracción del código
● colección - estructura
escalable de datos del
mismo tipo. Operan a
través de métodos (ej,
agregar/eliminar
elemento, posicionarse
al principio, moverse al
siguiente elemento)
● características:
○ semántica - el significado de las instrucciones (como las construcciones se
interpretan y ejecutan)
○ sintaxis - las reglas de cómo se escriben las instrucciones (gramática)
○ vocabulario fijo/reservado - términos que tienen un significado específico en un
lenguaje y no pueden ser usadas para otros fines, como nombres de variables →
ej: if, else, input, output
● niveles
○ lenguaje de bajo nivel
■ código máquina
● binario - 0 y 1
● entendido directamente por la computadora
● difícil de interpretar, escribir y modificar
● puede variar de una computadora a otra
■ lenguaje ensamblador
● representación simbólica del código máquina
● convertido en código máquina por un ensamblador
● falta de abstracción
● específico de cada dispositivo
○ lenguajes de alto nivel = + abstracción
■ usa elementos del lenguaje natural
■ fácil de usar, interpretar, escribir y mantener
■ facilita la abstracción
■ facilita y acelera el proceso de desarrollo
■ no son interpretados directamente por el dispositivo - código fuente
(lenguaje de alto nivel) → código objeto (lenguaje máquina)
● COMPILADOR
○ hace la traducción una sola vez
○ se guarda el código objeto para futura ejecución
○ se detectan los errores de sintaxis
○ la compilación completa no termina hasta que no se hayan
solucionado
○ más rápido.
● INTÉRPRETE
○ traduce cada vez que ejecuta
○ por cada instrucción se lee, traduce, manda y ejecuta
○ errores de sintaxis se comunican a medida que se
interpreta
● COMBINACIÓN COMPILADOR-INTÉRPRETE
○ ej, máquina virtual de Java
○ el código fuente se compila para la máquina virtual (a un
lenguaje intermedio), luego lo máquina lo interpreta