domingo, 26 de abril de 2020

Creación de clases a partir de análisis



Creación  de clases a partir de análisis

Una descomposición en clases quedaría un poco "forzada", ya que su nivel de complejidad no es tan elevado.

Se podría optar por separar la parte visual, de la parte lógica, de modo que se pudiera reutilizar 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 o con cualquier otro tipo de interfaz. Es posibles, crear una clase que se encargue de cargar y guardar datos. 

Decisión de tareas a partir de análisis

Decisión de tareas a partir de análisis 


Cuando analices los requisitos que el programa debe cumplir, el siguiente paso consiste en decidir las estructuras básicas que deben emplearse para llevarlo a cabo.
El programa podría ser realizado en unas horas por un programador experto, en este caso podría reducirse a decidir qué estructuras de datos usar y en qué funciones descomponer el cuerpo del programa.
Más adelante, se estudiará una versión más elaborada del programa, en la que se plantea como una serie de objetos que colaboran entre ellos.
La estructura será la siguiente: 

  • Cada dato individual se almacena en un struct. Éstos se almacenan en un vectorLas funciones en las que se descompondrían serían las siguientes:  

    • mostrarMenu: muestra la lista de opciones disponibles conforme al prototipo visual.
    • nuevaFicha: pide los datos de una nueva persona y los añade a la lista de contactos existentes.
    • verFichas: muestra en la pantalla la primera ficha. Al pulsar ciertas teclas, el usuario tiene diferentes opciones. 
    • modificar(n): pide los campos de la ficha que se indique como parámetro. Si desea cambiar un dato, se deberá volver a introducir el texto de los campos que se quieran  modificar. Si, por el contrario, no se desea cambiar nada, bastará con pulsa Intro.
    • intentarBorrar(n): solicita confirmación para borrar datos.  
    • buscarTexto: pide al usuario el texto que desea buscar, cuenta cuántas fichas lo contienen, y finalmente, las muestra en una. Sino existe una siguiente ficha, no aparecerá la opción de Continuar.
    • buscarCumpleMes: muestra las fechas de nacimiento y nombres y apellidos de las personas que cumplen años en un cierto mes. En caso de que haya más de veinte datos, el programa efectuará una pausa cada veinte datos y esperará a que el usuario pulse Intro.
    • guardar: vuelva todos los datos al fichero, reemplazando el contenido anterior de dicho fichero. 

    • cargar: lee todos los datos desde fichero. Se debe llamar automáticamente al principio del programa.  

Diagramas de casos de uso

Diagramas de casos de uso
Un documento de especificación puede resultarle incomprensible a un cliente que no posea conocimientos de programación informática.Por ello, es frecuente elaborar diagramas.
En los diagramas de casos de uso, el sistema se presenta 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.

domingo, 19 de abril de 2020

Análisis Segunda Parte


 Refinamiento
En empresas de desarrollo de software suele existir la figura del analista, experto encargado de que el proceso de especificación sea lo más correcto. En empresas pequeñas esta figura no existe, y los programadores habituales no tienen tanta experiencia a la hora de identificar las necesidades del cliente. Una segunda lectura de la especificación puede ayudar a afinar los detalles. 
Por ejemplo, para el programa de la entrada anterior, se podrían detectar las siguientes carencias:

  • ¿ No se podrán consultar datos si no se hace la búsqueda?
  • ¿Qué datos de cada persona deben mostrarse?
  • ¿Qué datos de cada persona que cumpla años debe mostrarse?
  • ¿Los datos se guardaran automáticamente o se necesita una opción determinada?
  • ¿No será necesario modificar ni borrar datos?

 Prototipos visuales
Consiste en la creación de maquetas de pantalla con las que se muestra al cliente una idea parecida de como va a ser el resultado. De esta manera se permite al usuario detectar si falta algún detalle, o error, si el vocabulario es el correcto...

Análisis

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, de la forma más rigurosa posible, qué tareas debe realizar. en un programa realizado para uso propio, este detalle puede parecer de poca importancia, pero en el caso de una aplicación este se convierte en un paso importante. El segundo paso es  crear una lista con los requisitos que debe cumplir, favorece la orientación del trabajo y en ella se debe saber que tareas son más importantes y cuales no se deben hacer conociendo así cuando estará acabado.
Por último una vez estimado el tiempo y el presupuesto  las nuevas características que le cliente desee añadir se anotarán para una nueva versión posterior, lo que llevará volver a realizar los pasos anteriores.


Especificación

Es habitual elaborar un documento entre que recopile todos los requisitos que debe cumplir un programa. En ella es habitual distinguir entre los requisitos funcionales, lo que el programa hará y los requisitos técnicos, las limitaciones físicas.
Un ejemplo para un programa poco completo:
  •  Agenda de contactos que permita guardar datos de cada persona.
  •  De cada persona deberá almacenar el nombre, apellidos, fecha de nacimiento, domicilio, y correo electrónico siendo el único obligatorio el nombre
  •  Permitirá guardar grandes cantidades de datos.
  •  Los datos se deben guardar en un fichero para disponer de ellos siempre que se desee.
  •  Permitirá guardar datos a partir de cualquier palabra.
  •  Buscará las personas que cumplan años en los próximos treinta días
  •  Deberá haberse creado en C++

lunes, 10 de febrero de 2020

Tema 5._Programación estructurada

Lenguajes, compiladores e intérpretes

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.
  • Compiladopres: son los 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 éstos mo 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 lo sprogramas de cálculo intensivo (porque cada ordense tiene que traducir tantas veces como se ejecute)

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 programa ficticio, no tan estricto, 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úmero2 no igual 0
                        escribir "su división es ", número1/número2
      si no
                        escribir "no se puede dividir entre cero"

domingo, 2 de febrero de 2020

seguridad en las comunicaciones inalámbricas

Seguridad en las comunicaciones inalámbricas
  • Redes inalámbricas: Redes que comparten información sin cable. Los más utilizados son Bluetooht y WiFi
  • Seguridad en bluetooth:
    • Es la especificación que define un estándar global de comunicaciones inalámbricas para redes de área personal y que permite la transmisión d evoz
    • Alcance: 10 metros
    • Ataques que se realizan a través de bluetooth:
      • Bluejacking: consiste en el envio de spam al usuario por medio del intercambio con este vCard
      • Bluesnarfing: aprovecha las vulnerabilidades del protocolo para sustraer información del dispositivo atacado
      • Bluebugging: utiliza técnicas de ingeniería social para que la víctima acepte una conexión inicial para infectar el dispositivo con malware de control remoto
    • Seguridad en WiFi:
      • Tecnología inalámbrica que realiza la conexión entre dispositivos situados en un área relativamente pequeña
      • Alcance: 100 metros
      • Para mantener red wifi segura:
        • Personalizar la contraseña de acceso
        • Cambiar el SSID
        • Revisar el cifrado
        • Desactivar el acceso por WPS
        • Filtrar las MAC
        • Actualizar el firmware
        • Comprobar el historial de actividad
        • Utilizar software de auditoría

    Creación de clases a partir de análisis

    Creación  de clases a partir de análisis Una descomposición en clases quedaría un poco "forzada", ya que su nivel de compleji...