domingo, 26 de abril de 2020

2.2 Creación de clases a partir de analisis

Para el programa de ejemplo propuesto una descomposición en clase quedaría un poco forzada y al que su nivel de complejidad no es tan elevado como para justificar.la
Aún así se podría optar por separar la parte visual de la parte lógica de modo que no se pudiera reutilizar la mayor cantidad posible de código en caso de que más adelante se creará otra versión del programa en un entorno gráfico o con cualquier tipo de interfaz. Para ello es posible crear una clase lista personas que se encargue de cargar y guardar datos así como de permitir el acceso de los mismos. De esta manera los datos de cada persona pasarían de ser en un struct hacer una clase que tendría los mismos campos pero añadiría método que permitirán obtener y fijar los valores de esos campos así como simplificar sus búsquedas.

ej 1

ej 2


1.5 DIAGRAMAS DE CASOS DE USOS

Un documento de especificación puede resultarle incomprensible a un cliente que no posea conocimientos de programación informática por ello es frecuente la labor elaborar diagramas que muestran los principales requisitos del programa de forma más visual. Uno de los más habituales es el diagrama de casos de uso.
En los diagramas de casos de uso el sistema se representa como un rectángulo, las acciones que pueden realizarse se incluye dentro de la elipse 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 de programa de la agenda de contacto podría incluir al usuario normal, que tendría la capacidad de ver y manipular datos pero también, a un administrador que podrías consultar y añadir datos así como cambiar la contraseña de acceso al sistema.






Ej 2

Pues crearía un programa donde se pudiera gradar canciones en playlist y también que se pudieran crear. La información de las canciones sería el nombre de la canción, del artista que es, al álbum al que pertenece, y cuanto dura la canción. Permitiría  la busqueda de canciones, de artistas y de playlist ya creadas.
El usuario solo tendría acceso a escuchar dichas canciones y a seguir playlist ya creadas. Sin embargo, el adminsitradr tendría acceso a eliminar o crear canciones y también seria quien cambiaria la contraseña. Además, podría crear playlist.









2 DISEÑO

2.1 DESICIÓN DE TAREA A PARTIR DEL ANALISIS

Una vez analizados los requisitos que debe cumplir el programa el siguiente paso consiste en decidir las estructuras básicas que ponga emplearse para llevarlo a cabo
El programa propuesto es simple; podría ser realizado en pocas horas por un programador experto de modo que la fase de diseño en este caso podría reducirse a decidir estructuras de datos usar y en qué función es descomponer el cuerpo del programa.

Lectura de los datos del del programa podría ser la siguiente:
-Cada to individual se almacena en struts para que se puedan guardar datos como se desee los struct individuales almacena gran en un vector.

Y las funciones en las que se queda en las que se descompondría podrían ser la siguiente:
-Mostrar menú muestra la lista de opciones disponibles conforme el prototipo visual

-Nueva ficha pide los datos de una nueva persona y los añade a la lista de contactos existentes

-Ver fichas muestra la pantalla la primera ficha .Al pulsar sobre ciertas teclas el usuario podrá elegir entre consultar la ficha anterior y la posterior modificar la actual o borrar la actual.

-Modificar pide los campos de la ficha que se indique como parámetro en caso de que se desee cambiar un dato se deberán volver a introducir el texto de los campos que se quieran modificar .Si no se desea cambiar de algún dato bastará con pulsar Intro para conservarlo como estaba.

-Intentar borrar solicita confirmación para borrar datos si el usuario confirma que desea borrarlos la ficha se eliminará de la lista.

-Buscar texto piden usuario el texto que desea buscar cuenta cuántas fichas lo contienen y finalmente las muestra de una en una .Tras tomar el resumen de una ficha de la opción de consultarla con mayor detalle continuar o volver a menú.

-Buscar cumple mes muestra las fechas de nacimiento y los nombres y apellidos de las personas que cumplen años en un cierto mes. En caso de haber más de 20 datos el programa efectuará una pausa cada 20 datos y esperar a que el usuario pulse Intro.

-Guardar vuelca todos los datos a un fichero reemplazando el contenid anterior de dicho fichero se debe llamar automáticamente antes de salir del programa de modo que los datos que vengan almacenados para la siguiente sesión.

-Cargar lee todos los datos desde el fichero se debe llamar automáticamente al principio del programa.

domingo, 19 de abril de 2020

1 ANALISIS (2)

1.3 Refinamiento

En las empresas de desarrollo de software suelen existir la figura del analista experto encargado de hablar con el cliente observar la forma en que se 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 la figura del analista 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 al final lo detalla inicialmente ambiguo.Para el programa del apartado anterior se podría detectar la siguiente carencias:
-¿No se podrán consultar los datos si no se hace una búsqueda?
-¿Qué datos de cada persona que se encuentra a través de la búsqueda del texto debe mostrarse
-¿Qué datos de cada persona que cumplan años debe mostrarse?
-¿Los datos se guardarán automáticamente?
-¿Es necesario guardar los datos en el 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 varias veces 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 carencias del programa pueden ser detectadas cuanto antes.

1.4 Prototipos visuales

Una herramienta que puede resultar útil para la contribuir a la detección de errores o malentendidos en la especificación de requisitos solo prototipo visuales estos consisten en la creación de maquetas de pantalla con la que se muestra el cliente una idea aproximada de cómo va a ser el resultado a nivel visual.
Así los prototipos virtuales permiten a los usuarios detectar si falta algún detalle o si el vocabulario es incorrecto. Por ejemplo para la agencia de contactos los ejemplos del margen podría constituir prototipos visuales de pantalla de menú de visualización de datos y de visualización de un resultado de búsqueda

1. ANALISIS

1.1 Características del análisis de requisitos

Si se desea crear un programa en un tiempo limitado y con unos costes limitados, el primer paso consiste en pensar que tareas debe realizar. En el caso de una aplicación este se convierte en un paso muy importante.
Crear una lista con s requisitos que debe cumplir el programa favorece la orientación del trabajo, la determinación de que tareas son mas importantes y de cuáles no debe hacerse , así como el establecimiento del momento en el que el proyecto se podrá  dar por terminado.

1.2 Especificación

Es habitual elaborar un documento en el que se recopilen los requisitos que debe cumplir el programa. En una primera aproximación , los requisitos deben de ser una lista de cosas que el preograma debe de hacer. Por ejemplo para un programa no no muy complejo podría partir de una lista como la siguiente:
-El programa será una agencia de contactos que permitirá guardar datos de personas para poder consultarlos más adelante
-Deberá almacenar el nombre, los apellidos, la fecha de nacimiento, el domicilio y el correo electrónico .El único dato obligatorio será el nombre el resto de datos serán opcionales
-Permitirá guardar una cantidad elevada de datos
-Los datos deberán guardarse de fichero para que no se pueda disponer de 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 deberá ser haberse creado en c ++  y permitirá trabajar trabajar en modo de texto de forma que se pueda compilar tanto para Windows como para Linux

lunes, 10 de febrero de 2020

UNIDAD 5 Programación Estructurada

1.Lenguajes, compiladores e interpretes.
  1.1Lenguajes de bajo nivel y de alto nivel
  • Un programa > secuencia de instrucciones
  • Un lenguaje de programación > se conoce algoritmo o secuencia de pasos para resolver un problema.
    Dos tipos de lenguaje de programación:
      -Bajo nivel: parecido al código máquina (ceros y unos), dificil de entender.
      -Alto nivel: lenguaje parecido al de los humanos, fácil de entender.

  1.2Compiladores 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 traves de lo cual se obtiene un programa ejecutable.
     Intérprete >es otro tipo de traductor, pero estos 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á mas lento en los programas de cálculo intensivo  (porque cada orden se tiene que traducir tantas veces como se ejecute).

   1.3Pseudocó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 emplear un lenguaje de programación ficticio, no tan escrito, en muchos casos escrito incluso en lengua castellana. Este lenguaje recibe el nombre de pseudocódigo.
       
 ej: Pedir número1
              Pedir número2
              SI    número=0
                         Escribir "Su división es ", Numero1/Numero2
               SI NO
                         Escribbir "No se puede dividir entre cero"

miércoles, 29 de enero de 2020

Privacidad de la informción

Se considera información "privada" toda aquella información protegida por la LOPD (ley Organica de Proteccion de Datos) o aquella que otros usuarios o entidades no desean que sea compartida

Amenazas a la privacidad

-Sistemas operativos. La mayoría de dispositivos que se conectan a Internet utilizan un sistema operativo que reúne la información confidencial del usuario. Los atacantes podrían aprovechar alguna debilidad en este software para obtener todos estos datos.

-Contraseñas. El método mas extendido para la identificación de usuarios son las contraseñas. Para evitar posibles atacantes para obtener información, es importante utilizar autenticaciones biométricas o generar contraseñas fuertes.

-Registro de visitas web. Cada vez que se accede a alguna pagina web, el navegador proporciona datos sobre el navegador. Estos datos pueden ser utilizados para obtener información de usuarios.

-Sesiones del navegador. Algunos navegadores permiten gestionar el historial. En algunos casos la sesión permanece abierta aunque el usuario cierre la aplicación.

-Cookies. Algunos sitios web utilizan cookies para obtener información acerca de los hábitos de navegación del usuario. En la mayoría de casos, esta información se utiliza para fines publicitarios.

-Formularios. La web 2.0 ofrece multitud de servicios online que requieren que el usuario se registre a través de un formulario. Una buena estrategia es corroborar el dominio y el uso del protocolo HTTPS

-Redes Sociales. Las publicaciones en redes sociales  esconden mas peligro de lo que la mayoría de usuarios sospechan. Las redes sociales constituyen un método sencillo y rápido con el que acceder a todo tipo de información personal.

Google. La principal fuente de ingresos de Google esta relacionado con la publicidad adaptada a los gustos y necesidades del usuario. Esta compañía de ofrece gran cantidad de servicios que se utilizan en internet, por lo que es capaz de reunir gran cantidad de información de los usuarios.

Antiespías 

El espionaje se define como la obtención encubierta de datos o de la información confidencial. Para llevarlo a cabo, se utilizan diversas técnicas con el fin de obtener  información confidencial o privada.
Los programas espías se introducen en tu equipo de manera desapercibidos en las aplicaciones.
Los programas antiespía funcionan de manera similar a los antivirus: comparan los archivos con una base de datos de software espía.

Borrar archivos de forma segura

Cuando se elimina un archivo de la papelera, es posible recuperarlo se se emplea el sftware adecuado.
De la misma manera que existen programas para recuperar archivos, otros garantizan la eliminación segura de archivos para que sean irrecuperables.

domingo, 26 de enero de 2020

Navegaión segura

Buenas prácticas de navegación 

-Configurar el navegador adecuadamente. El navegador permite configurar diferentes niveles de seguridad que permite usar filtros contra la suplantación de identidad, bloquear elementos emergentes y activar el control parental.

-No acceder a sitios web de dudosa reputación y evitar enlaces sospechosos. Los sitios web fraudulentos suelen promocionarse con descuentos regalos,..., con el propósito de captar a los usuarios.

-Aceptar únicamente las cookies deseadas. Las cookies son pequeños archivos de texto con metadatos de una visita; identificadores de sesión, procedencia de la visita,etc.

-Proteger los datos personales. No se deben facilitar datos personales, como el nombre y apellidos, número de tarjeta de crédito, en aquellas páginas que no sean de absoluta confianza y que no estén bajo protocolo seguro (HTTPS).

-Descargar aplicaciones de sitios web. Es preciso desconfiar de los sitios desconocidos que ofrecen descargas, ya que constituyen una de las principales vías de propagación de virus.

-Revisar el correo electrónico. Además de analizar el correo hay que utilizarlo con cautela, sospechando de los mensajes no esperados.

-Actualizar el sistema operativo y sus aplicaciones. Los ciberatacantes utilizan las vulnerabilidades detectadas en los programas informáticos para lanzar sus ataques.

Navegación privada

La navegación privada es una medida de privacidad para que el navegador no almacene la información que se genera en relación con la navegación, por lo que es recomendable su uso  al compartir el equipo con otras personas o al utilizarlo en un lugar público. Esta medida de seguridad sólo afecta al equipo, ya que no permite ocultar la actividad de navegación ni al servidor.

Proteger la privacidad en la red con un proxy

Los servidores proxy actúan como intermediarios entre los equipos de los usuarios y lossitios web que visitan.
Existen multitud de servidores proxy disponibles de forma gratuita , si bien suelen contar con algunas restricciones. Algunos ejemplos son Anonymouse o hide.me.

Navegación anónima 

 La navegación anónima evita el seguimiento de sitios web que intentan obtener información de los usuarios y mantener el anonimato en comunicaciones que requieren la máxima privacidad.
Uno de los navegadores anónimos mas utilizados es Tor, un software libre que, junto con una red de ordenadores voluntarios, oculta la dirección de IP y asigna otra de cualquier parte de mundo, manteniendo la integridad y la confidencialidad de la información que viaja por la red

martes, 21 de enero de 2020

Cifrado de la información

Orígenes

El uso de la criptografía se remonta al orgien del lenguaje, cundo los primeros hombres tuvieron que desarrollar herramientas para asegurar la confidencialidad en determinadas comunicaciones.
Los griegos utilizaban un bastón "skytale" alrededor de ella se enrollaba una tira de cuero. Al escribir un mensaje sobre el cuero y desarrollarlo, se observaba una serie de caracteres sin sentido.
En el imperio romano, utilizaron el cifrado césar, consistente en desplazar cada letra del abecedario un número determinado de posiciones.
Durante la 2ª Guerra Mundial, los alemanes utilizar la maquina enigma para cifrar y descifrar los mensajes. Alan Turing fue unos de los artífices del descifre del primer mensaje y del cambio de rumbo de la historia de la guerra. Hoy en dia es considerado como uno de los padres de la informática.
No obstante, le era de la criptografía moderna comienza con Claude Elwood Shannon, quién estableció las base de la criptografía y el criptoanálisis.

Criptografía
-La criptología es la disciplina científica dedicada al estudio de la escritura secreta.
-La criptografía es el arte de ecribir con clave secreta o de un modo enigmático
-El criptoanálisis estudia los sistemas criptográficos para encontrar sus debilidades y quebrantar la seguridad con el fin de descifrar textos sin conocer las claves.

Tipos de criptografía

-Simétrica: es una técnica muy rápida pero insegura, ya que el remitente tiene que enviar tanto el mensaje cifrado como la clave.
El emisor escribe un mensaje al receptor cifrándolo con una clave. El receptor lee el mensaje utilizando la clave que le ha comunicado el emisor en otro envío.

-Asimétrica: utiliza dos claves, una pública y una privada.
El emisor escribe un mensaje cifrándolo con una clave pública del receptor. Este lee el mensaje con su clave privada, que únicamente el conoce.

-Pública: utiliza un cifrado de clave pública que combine ambas criptografías con el objetivo de obtener una garantía plena de confidencialidad.
Ana y Bernardo tienen sus pares de claves respectivas.
Ana escribe un mensaje a Bernardo cifrándolo con una clave. Dicha clave, a su vez, la ha cifrado con la clave pública de Bernardo. Este utiliza su clave privada para descifrar la clave con la que puede leer el mensaje.

2.2 Creación de clases a partir de analisis

Para el programa de ejemplo propuesto una descomposición en clase quedaría un poco forzada y al que su nivel de complejidad no es tan elevad...