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++

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