viernes, 17 de abril de 2020

Refinamiento

En las empresas de desarrollo de software, suele existir el analista (experto encargado de hablar con los clientes, observar la forma en que este trabaja y además, formular las preguntas adecuadas para el proceso de especificación sea lo más correcto posible). En pequeñas empresas puede que no exista este analista. En estos casos, una segunda lectura puede contribuir a afinar los detalles. Por ejemplo, para el programa del apartado anterior, se podrían detectar las siguientes carencias:
¿ No se podrán consultar los datos si no se hace una búsqueda?
¿Los datos se guardarán automáticamente o deberá seleccionarse, para ello, una opción determinada del menú?
¿Qué datos de cada persona que cumpla años deben mostrarse?
¿Es necesario guardar los datos en fichero usando algún formato específico o no van a compartirse con ninguna otra aplicación?
¿No será necesario modificar ni borrar datos?
Así, en la realización de un proyecto real, es cada vez más habitual repetir la secuencia análisis-diseño-implementación-verificación (proceso que incluye reuniones con el cliente). Es un proyecto de varios meses de duración, y es habitual realizar estas reuniones cada dos semanas.

Prototipos visuales

Una herramienta que puede resultar útil son los prototipos visuales, que consisten en la creación de "maquetas" de pantalla con las que se muestra al cliente una idea de cómo va a ser el resultado.
Los prototipos visuales permiten al usuario detectar si falta algún detalle o si el vocabulario es incorrecto. Por ejemplo, para la agenda de contactos, los ejemplos del margen podrían constituir prototipos visuales de la pantalla de menú, de visualización de datos y de visualización de un resultado de búsqueda.

miércoles, 15 de abril de 2020

Especificación

Es habitual elaborar un documento en el que se recopilen los requisitos que debe cumplir el programa, éstos podrían reflejarse en una lista de cosas que el programa tiene que hacer. Aunque hay que distinguir entre requisitos funcionales y técnicos.
Para un programa no muy complejo podríamos tener la siguiente lista:

  • El programa será una agenda de contactos que te permite guardar información para consultar después.
  • Deberá almacenar la información de cada persona, siendo lo único obligatorio el nombre.
  • Permite guardar muchos datos.
  • Los datos se guardarán en fichero para disponer de ellos cuando se acceda al programa.
  • Permite buscar datos a través de una palabra introducida en la búsqueda.
  • Buscará las personas que cumplen años en los próximos 30 días.
  • Deberá estar creado en C++ y permitirá trabajar en modo texto, para compilar tanto en Windows como Linux, u otra versión.
Análisis del Sistema | Marco de Desarrollo de la Junta de Andalucía

Características del análisis de requisitos.

Si se desea crear un programa, el primer paso es pensar qué tareas se deben realizar. En un programa para uso propio, esto puede parecer poco importante, pero si es una creación por encargo, es muy importante.
Si creas una lista con los requisitos que debe cumplir el programa favoreces la orientación del trabajo, la determinación de las tareas importantes.... Lo más importante en un proyecto a medida es el establecimiento del momento en el que el proyecto se pueda dar por terminado. Así podemos evitar que el programa crezca indefinidamente.
Una vez estimado el tiempo necesario y aprobado el presupuesto, se deben anotar las  características nuevas para realizar una versión posterior, lo que conlleva volver a calcularlo todo.
4.1 Análisis de requisitos. - Metodologias de desarrollo de software

lunes, 10 de febrero de 2020

Programación estructurada.

1. Lenguajes, compiladores e intérpretes

1.1 Lenguajes de bajo nivel y de alto nivel

·Un programa: secuencia de instrucciones.
·Un lenguaje de programación: se conoce como algoritmo o secuencia de pasos para resolver un problema.
Hay dos tipos de lenguaje de programación:
  • Bajo nivel: parecido al código máquina (ceros y unos) difícil de entender.
  • Alto nivel: lenguaje parecido al de los humanos fácil de entender.

1.2 Compiladores e intérpretes.

  • Compiladores: son las herramientas encargadas de convertir nuestro programa escrito en lenguaje de alto nivel (=programa fuerte) a código máquina, a través de lo cual se obtiene un programa ejecutivo.
  • Intérprete: es otro tipo de traductor, pero éstos no crean ningún programa ejecutable capaz de funcionar por sí mismo.
Por lo tanto, un programa interpretado comenzará a funcionar antes que un programa compilado (pues no es necesario traducir todo el programa para empezar) pero será más lento en los programas de cálculo intensivo (porque cada orden se tiene que traducir tantas veces como se ejecute).

1.3 Pseudocódigo.

A pesar de que los lenguajes de alto nivel se asemejan al lenguaje natural que los seres humanos empleamos para hablar, es habitual no usar ningún lenguaje de programación concreto cuando queremos plantear inicialmente los pasos necesarios para resolver un problema, sino cumplir un lenguaje de programación facticio, no tan estricto, en muchos casos escrito incluso en lengua castellana. Este lenguaje recibe el nombre de pseudónimo.

Ej:
PEDIR número1
PEDIR número2
SI número2<>0
    ESCRIBIR "Su dimensión es" , número1/número2
SI NO
    ESCRIBIR "No se puede dividir entre cero"

jueves, 6 de febrero de 2020

Esquema resumen ud4

1. LA SEGURIDAD DE LA INFORMACIÓN

➸Confidencialidad 
➸Integridad
➸Disponibilidad
➸Autentificación
➸Autorización
➸Cifrado
➸No repudio
➸Vulnerabilidad 
➸Seguridad de la información

2. AMENAZAS A LA SEGURIDAD.

➣Humanos

-Ataques pasivos: usuarios con conocimientos básicos
Hockers.
-Ataques activos: antiguos empleados de una organización
Crackers y otros atracantes.

➣Lógicos 

-Software malicioso
-Vulnerabilidad del software.

➣Físicas

-Fallos en los dispositivos.
-Accidentes
-Catástrofes naturales.

➣Conductas de seguridad 

Activa: ejemplo
Pasiva: ejemplo 

 3. MALWARE.

Tipos:
-Virus
-Gusano
-Troyano
-Spyware
-Adware
-Ransomware
-Rogue
-Rookit 

Otros tipos: 
-Phishining
-Oharming
-Spam
-Hoax

4. ATAQUES A LOS SISTEMAS INFORMÁTICOS.

Tipos:
-Interrupción
-Intercepción
-Modificación
-Suplantación 

5. PROTECCIÓN CONTRA EL MALWARE.

-Políticas de seguridad
-Antivirus

6. CIFRADO DE LA INFORMACIÓN.

Criptografía, criptología, criptoanálisis

Tipos de criptografía:
-SImetría
-Asimetría
-Pública

7. FIRMA ELECTRÓNICA Y CERTIFICADO DIGITAL.

-Firma electrónica
-Certificado digital
-Autoridades de certificación

8. NAVEGACIÓN SEGURA.

-Buenas prácticas de navegación
-Navegación privada
-N. Anónima
-N. Proxy

9. PRIVACIDAD DE LA INFORMACIÓN

-Amenazas a la privacidad
-Antiespías 

10. PROTECCIÓN DE LAS CONEXIONES EN RED 

-Cortafuegos
-Red Privada Virtual (VPN)
-Certificados SSL/TLS de servidor web y HTTPS.

domingo, 2 de febrero de 2020

Proteción de las conexiones en red.




Cortafuegos

También denominado "firewall" es un dispositivo hardware o software cuya finalidad es controlar la comunicación entre un equipo y la red, es una de las principales defensas contra ataques informáticos y una pieza clave para bloquear la salida de información del ordenador a Internet. Todos los mensajes que entran o salen por el cortafuegos son examinados, y si no cumplen los criterios de seguridad son bloqueados.

Resultado de imagen de cortafuegos

Redes privadas virtuales

Las redes privadas virtuales (VPN) son conexiones punto a punto a través de una red privada o pública insegura, como Internet.
Funcionamiento: los clientes usan TCP/IP para realizar conexiones con una red privada, y una vez que el servidor del VPN autentifica al usuario se establece una conexión cifrada. Existen dos tipos de conexiones a este tipo de redes:
  • VPN de acceso remoto: sirven para que los usuarios puedan acceder a un servidor de una red privada con la infraestructura proporcionada por una red pública. Por ejemplo: los alumnos que acceden a la universidad.
  • VPN de sitio a sitio: permiten a los organizadores conectar redes a través de Internet usando comunicaciones entre ellas. Ejemplos: la conexión entre oficinas, sucursales...
Los sistemas operativos tienen que incluir su propio VPN, aunque hay una gran variedad para ellos.

Certificados SSL/TLS de servidor web y HTTPS

El SSL es un protocolo criptográfico desarrollado por Netscape hasta la versión 3.0, cuando fue estandarizado y pasó a llamarse TLS. No obstante, el término SSL está muy extendido y alude a ambos indistintamente.
Se utilizan para emitir certificados de sitios web, son una pieza fundamental en la seguridad, ya que garantizan la integridad y la confidencialidad de las comunicaciones.
Cuando se utiliza el cifrado basado en SSL/TLS junto al protocolo de navegaión web HTTP, se crea una canal cifrado seguro denominado <HTTPS>. Este canal utiliza una clave de 128 bits de longitud, conocida únicamente por el dispositivo conectado y por el servidor que facilita la conexión.
El navegador alerta a los usuarios de la presencia de un certificado SSL/TLS cuando se muestra en candado y la dirección se convierte en HTTPS. Si aparece el nombre de la empresa u organiización en color verde, esto significa que el sitio web utiliza un certificado de validación extendida (EV) que requiere un proceso de verficación de identidad mucho más riguroso, lo que aporta una mayor seguridad.

HTTP + SSL = HTTPS

Seguridad en las comunicaciones inalámbricas

Redes inalámbricas: redes que comparten información sin cable. Los más utilizados son Bluetooth y Wifi.

Seguridad en Bluetooth

Es la especificación que define un estándar global de comunicaciones inalámbricas para redes de área oersonal y que permite la transición de voz y de datos diferentes equipos por medio de un enlace por radiofrecuencia e entornos de comunicación móviles. Tiene un alcance de unos 10 metros.
Los ataques que se realizan a través de Bluetooth son :
⤷Bluejacking: consiste en el envío de spam al usuario por medio del intercambio con éste. A veces, se utiliza el nombre del dispositivo como spam.
⤷Bluesnarfing: aprovecha las vulnerabilidades del protocolo para sustraer información del dispositivo atacado.
⤷Bluebugging: utiliza técnicas para que que la víctima acepte una conexión inicial para infectar el dispositivo con malware. Desde ese momento puede acceder a toda la información personal del usuario.

Seguridad en redes Wifi

Las redes wifi utilizan una tecnología inalámbrica que realiza la conexión entre dispositivos situados en un área pqueña. La señal suele tener un alcance de 100 metros, aunque un atacante puede captar la señal a varios kilómetros con una señal.
Para mantener una red wifi segura:
Personalizar la contraseña de acceso: por defecto, las contraseñas suelen ser muy vulnerables o se pueden averiguar rápidamente.
⇾Cambiar el SSID: el nombre de la red (SSID) es el identificador con el que se etiqueta la red inalámbrica para que el usuario la localice. Es fundamental cambiar el nombre que los routers traen de fábrica.
⇾Revisar el cifrado: es necesario utilizar estámdares de cifrado para que la señal inalámbrica no sea interceptada tan fácilmente.
Desactivar el acceso por WPS: el estándar WPS facilita la configuración de una red segura con WAPA2 a sus usuarios.
⇾Filtarar las MAC: son establecidas por el fabricante y únicas para el dispositivo.
⇾Actualizar el firmware: es el software que controla los circuitos de los dispositivos electrónicos.
⇾Comprobar el historial de actividad:
⇾Utilizar software de autoría: existen herramientas para evaluar la seguridad de una red y detectar posibles vulnerabilidades.

Creación de clases a partir de análisis

Para este tipo de programas, una descomposición en clases quedaría un poco "forzada", ya que su nivel de complejidad no es tan ele...