domingo, 26 de abril de 2020

UD 7. CREACIÓN DE CLASES A PARTIR DE ANÁLISIS

2.2 CREACIÓN DE CLASES A PARTIR DE ANÁLISIS

En la unidad anterior, se estudiaron las pautas básicas que deben seguirse para descomponer un programa real como una serie de clases que se relacionan entre sí. Para el programa de ejemplo propuesto, una descomposición en clases quedaría un poco forzada, ya que su nivel de complejidad no es tan elevado para justificarla.

Aún así, se podría optar por separar la parte visual (la aplicación principal) de la parte lógica (la lista de personas), de modo que se pudiera realizar la mayor cantidad posible de código en caso de que más adelante se creara otra versión del programa en un entorno gráfico (Windows Forms o Qt, por ejemplo) o con cualquier otro tipo de interfaz. Para ello es posible crear una clase ListaPersonas que se encargue de cargar y guardar datos, así como de permitir el acceso a los mismos. De esta manera, los datos de cada persona pasarían de ser un struct a ser una clase que tendría los mismos campos, pero añadiría métodos que permitieran obtener y fijar los valores de esos campos, así como simplificar las búsquedas.


UD 7. DECISIÓN DE TAREAS A PARTIR DEL ANÁLISIS

2.1 DECISIÓN DE TAREAS A PARTIR DEL ANÁLISIS

Una vez analizados los requisitos que debe cumplir el programa, debemos decidir la estructura que llevará el programa. El programa propuesto de agenda de contactos es un programa simple y la estructura podría ser:
 Cada dato se almacena en un struct para guardar todos los datos deseados, los struct individuales se almacenarán en un vector
Las funciones del programa serían:
mostrar  menú: muestra las opciones disponibles conforme al prototipo ya realizado.
nuevaFicha: pide los datos de una nueva persona  y los añade a la lista.
verFichas: muestra la primera ficha y con las teclas se podrá elegir entre ver la ficha posterior, la interior, modificar la actual o borrarla.
modificar: pide los campos de la ficha, en los parámetros que se desee cambiar se volverá a escribir texto, sino basta con pulsar intro.
intentarBorrar: solicita confirmación para borrar datos, si el usuario la acepta se borrará.
buscarTexto: pide el texto que se desea buscar y muestra las fichas que lo contienen. Al mostrar la ficha resumen da la opción de mostrarla desarrollada, continuar consultando otras o volver al menú.
buscarCumpleMes: muestra fechas, nombres y apellidos de las personas que cumplen años en un cierto mes
guardar: vuelca todos los datos a fichero, reemplazando el contenido anterior de dicho fichero. Se debe llamar antes de salir del programa, para que los datos queden almacenados e. También es posible guardar los datos tras cada modificación.

cargar: lee todos los datos del fichero. Se llama automáticamente al comenzar el programa.


UD 7. Análisis

1.5 DIAGRAMAS DE CASOS DE USO

Un documento de especificación puede resultarle incompresible a un cliente que no posea conocimientos de programación informática. Por ello, es frecuente elaborar diagramas que muestren los principales requisitos del programa de una forma más visual. Uno de los más habituales es el diagrama.
En los diagramas de casos de uso, el sistema se representa como un rectángulo, las acciones que pueden realizarse se incluyen dentro de elipses y se dibujan figuras para simbolizar a cada uno de los tipos de personas que pueden interactuar con el sistema para realizar las correspondientes acciones.

Por ejemplo, una versión mejorada del grama de la agenda de contactos podría incluir al usuario normal, que tendría la capacidad de ver y manipular datos, pero también a un administrador, que podría consultar y añadir datos, así como cambiar la contraseña de acceso al sistema.
El diagrama quedaría tal que:

UD. 7 Análisis

1.3 REFINAMIENTO


La figura del analista es un experto encargado de hablar con el cliente, observar la forma en la que este trabaja y formular las preguntas adecuadas para que el proceso de especificación sea lo más correcto posible.

En las empresas pequeñas es posible que no exista esta figura y es habitual que los programadores independientes no tengan tanta experiencia a la hora de identificar las necesidades del cliente. En este caso una segunda lectura pormenorizada de la especificación puede contribuir a afinar los detalles inicialmente ambiguos.
 Por ejemplo algunas carencias del programa de la entrada anterior puede ser:
¿Qué datos de cada persona que cumpla años debe mostrarse?
¿No será necesario borrar o modificar datos?
¿No se podrán consultar los datos si no se hace una búsqueda?

Es cada vez más habitual en la realización de un proyecto repetir la secuencia análisis-diseño-implementación-verificación, proceso que incluye reuniones con el cliente entre una secuencia y otra con el fin de que los errores y las cadencias se corrijan.


1.4 PROTOTIPOS VISUALES

Una herramienta que puede ser útil para contribuir a la detección de errores o malentendidos en la especificación de requisitos son los prototipos visuales. Estos consisten en la creación de maquetas de pantalla con las que se muestre al cliente una idea aproximada de como va a ser el resultado a nivel visual.

Los prototipos visuales permiten al usuario detectar si falta algún detalle o si el vocabulario es incorrecto. Ayudan a explicar como se va a relacionar el usuario con el programa.

UD 7. 1 Análisis

1.1 CARACTERÍSTICAS DEL ANÁLISIS DE REQUISITOS

Para crear un programa en un tiempo limitado y con costes limitados, lo primero que hay que hacer es pensar de forma rigurosa las tareas que queremos que realice, este paso adquiere mucha importancia en caso de que sea un programa pedido por encargo.

Podemos crear un lista de los requisitos que debe cumplir el programa para orientarnos mejor, también hay que establecer que tareas son las mas importantes y cuales no hay que hacer. También es muy importante establecer el momento en el que el proyecto se daría por acabado.
Cuando ya se haya calculado el tiempo necesario y se haya aprobado el presupuesto del proyecto, deben anotarse las características nuevas que desea el cliente ya que será más fácil usarlas para versiones posteriores del proyecto.



1.2 ESPECIFICACIÓN

Es aconsejable crear un documento en el que se recojan los requisitos que debe cumplir el programa. Que en principio simplemente sería una lista de las cosas que queremos que el programa haga, pero posteriormente hay que diferenciar entre los requisitos funcionales y los técnicos.
-Un ejemplo de lista es la siguiente:

El programa será una agenda de contactos que permitirá guardar datos de personas para poder consultarlos más tarde.

Deberá almacenar el nombre, los apellidos, la fecha de nacimiento, el domicilio y el correo electrónico de cada persona. Lo único obligatorio será el nombre, lo demás es opcional.
Que permita guardar una gran cantidad de datos.

Los datos se deben almacenarse en un fichero para tener acceso a ellos cada vez que se acceda al programa.
Permitirá buscar datos a partir de cualquier palabra introducida en la búsqueda.
Buscará a las personas que cumplan años en los próximos 30 días.
El programa  debe ser creado en C++ y permitirá trabajar en modo texto, de forma que se pueda compilar tanto para Windows como para LliureX o para cualquier otra versión de Linux.

domingo, 9 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 atacantes.


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
-Certificadi 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.

martes, 4 de febrero de 2020

Seguridad en las Corrupciones inalámbricas

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

SEGURIDAD DE BLUETOOTH

Es la especificación que define un estándar global de comunicaciones inalámbricas por redes de área personal y que permite la transmisión de voz y de datos entre diferentes equipos por medio de un enlace por radiofrecuencia en entornos de comunicación móviles. El alcance es de 10 metros.

Los ataques que se realizan a través de Bluethooh son:
  • Bluejacking: consiste en el envío de spam al usuario por medio del intercambio con este de una vCard, de una nota o de un contacto cuyo nombre aparezca en el mensaje de spam.
  • Bluesnarfing: aprovecha las vulnerabilidades del protocolo para sustraer información del dispositivo atacado.
  • Bluebugging: utiliza tecnicas de ingeniería social para que la víctima acepte una conexión inicial  para infectar el dispositivo con malware de control remoto

SEGURIDAD DE WIFI

Las redes wifi utilizan una tecnología inalámbrica que realiza la conexión entre dispositivos situados en un área relativamente pequeña. La señal en abierto suele tener un alcance de unos 100 metros.
Para mantener la red wifi segura:
  • Personalizar la contraseña de acceso
  • Cambiar el SSID
  • Revisar el cifrado
  • Desactivar el acceso por WPS: facilita la configuración de una red seguro con WPA2 a sus usuarios.
  • Filtrar las MAC: son establecidas por el fabricante y únicas para cada dispositivos de red.
  • Actualizar el finware
  • Comprobar el historial de actividad
  • Utilizar software de auditoría: en el mercado existen herramientas diseñadas para evaluar la seguridad de yuna red y detectar sus posibles vulnerabilidades .