Categoría: Diseño

Quiz: Pruebas unitarias

¿Cómo diseñar algoritmos fáciles de probar con pruebas unitarias? ¿Cómo hacerlo de manera que confiemos en dichas pruebas? Verifique su conocimiento con el siguiente quiz: https://app.queezly.com/q/d82dfd11-ac56-48fa-9125-83935669ad78/

El tema completo se accede desde aquí: Fácil de probar.

Quiz: Diseño robusto

El diseño robusto es útil para especificar sistemas más sencillos de mantener. Verifique su conocimiento con el siguiente quiz: https://app.queezly.com/q/1466455b-7df6-43fe-8bec-7d5059f3d58c

El tema completo se accede desde aquí: Diseño frágil y robusto.

 

Taller: Diseño gráfico robusto

Este es un ejercicio que el estudiante puede realizar luego de estudiar el tema de Diseño frágil y robusto.

Trabajaremos con una página de un sitio web bancario, en donde se ofrece realizar una transferencia interbancaria, con numerosas opciones.

Para realizar este taller, acceda a este SlideShare: https://www.slideshare.net/ocenteno/taller-diseo-grfico-robusto

1. Observe los videos siguientes donde se explica las siguientes pantallas (carga masiva y carga individual). Se le dificultará entender la funcionalidad de las pantallas debido al diseno frágil.

2. En las imágenes de los slides 4, 5, 6 y 7, explique si cada flecha amarilla marca una señal de fragilidad o no. Para ello examine cada control gráfico y determine si es de “datos” o es “frágil”.

 

3. Con base en los videos, determine las distintas funcionalidades (flujos de ejecución) que se realizan las páginas web y modele un menú , donde cada una lleve a una pantalla cohesiva con un diseño robusto. Recuerde que un diseño robusto es un formulario donde el usuario ingrese solo sus datos y no indicaciones que cambien la naturaleza de la acción por realizar.

Cómo lograr una interfaz grafica robusta

¿Cómo lograr una interfaz gráfica sencilla de usar, de programar y menos propensa a errores?

Veamos algunas recomendaciones en este último video de la serie Diseño frágil y robusto, y cómo corregir situaciones comunes de fragilidad.

Playlist en YouTube

Laboratorio: el modelo de análisis

Este laboratorio es una guía para analizar cómo entender y estructurar un caso de uso antes de programarlo. Veremos los pasos para mantener un orden y disciplina. Esto nos ayudará a evitar defectos y malentendidos.

Puede descargar el código fuente final de los dos ejercicios de este laboratorio en este repositorio: https://github.com/oscarcenteno/laboratorio.modelodeanalisis

La descripción en texto de los pasos está aquí: El modelo de análisis.

Ejercicio #1:

Este video explica el método de cuatro pasos para realizar el modelo de análisis, y lo aplica a un caso de uso.

YouTube

Esta es la explicación del caso de uso “Generar una emisión de certificados” que analizamos en el video anterior:

Partiendo de ciertos datos de una persona física, el caso de uso debe generar una emisión de certificados. Esto permite asociar certificados digitales a una persona física. Las personas pueden ser nacionales o extranjeras.

Una emisión de certificados se compone de:

  • Una fecha de emisión: corresponde a la fecha actual
  • Un certificado digital de firma: es un certificado digital con propósito de Firma
  • Un certificado digital de autenticación: es un certificado digital con propósito de Autenticación.

Un certificado digital de firma o de autenticación se compone de:

  • Una fecha de emisión: corresponde a la fecha actual
  • Una fecha de vencimiento: corresponde a la fecha actual sumada a la vigencia en años.
  • Dirección de revocación: es una dirección web.
  • Sujeto: es un texto formateado.

Un “Sujeto” se explica de la siguiente manera:

Es un texto formateado que puede ser de firma o de autenticación. Se formatea diferente dependiendo del tipo de nacionalidad de la persona (si es nacional o extranjera). Requiere del Nombre, Primer apellido, Segundo apellido y el número de identificación de la persona. Los extranjeros pueden no tener segundo apellido.

Ejercicio #2:

Aplique los cuatro pasos del modelo de análisis a la siguiente explicación del caso de uso: “Envío de transferencias entre cuentas propias”.

Se le pide diseñar un caso de uso para una aplicación móvil bancaria. Las personas que son clientes registrados deben poder transferir fondos entre sus propias cuentas. La persona siempre debe indicar un numero de cuenta origen, destino y un monto a enviar (en la moneda de la cuenta origen).

Las monedas soportadas son Dolares y Colones. Si las monedas de las cuentas seleccionadas son diferentes se requiere hacer una conversión, por lo que se requiere obtener el “Tipo de Cambio del dólar” de la base de datos.

Para procesar la transferencia, el Sistema de Envíos de Fondos (SEF) requiere que la transferencia contenga esta información:

  • Cuenta origen
  • Cuenta destino
  • Monto convertido: si las monedas son las mismas, sería el Monto a Enviar. Si las monedas son diferentes se debe multiplicar el monto a enviar por el tipo de cambio, en caso de conversión a colones, y se debe dividir en caso de la conversión a dólares.
  • La fecha de procesamiento (corresponde a la fecha actual).

El modelo de análisis

El modelo de análisis nos ayuda a entender y estructurar un caso de uso y prepararnos para programar la lógica de negocio de una manera fácil de probar.

Este artículo contiene la explicación textual. En el laboratorio se explica los pasos aplicados a un ejemplo: Laboratorio: el modelo de análisis.

Los cuatro pasos para realizar este modelo son:

  1. Clases de análisis
  2. Propiedades
  3. Relaciones
  4. Parámetros

1. Clases de análisis

  1. Identifique los conceptos principales del algoritmo. Estos conceptos principales son aquellos que están compuestos de propiedades y que son el resultado del algoritmo. Cada uno será una clase. Dos conceptos son clases diferentes cuando difieren en alguna propiedad, sino, son una misma clase.
  2. Realice un diagrama de clases para visualizarlas. Podemos nombrarlo como “Modelo de análisis.cd” para aclarar su propósito.
  3. Si se le pide que el algoritmo genere dos tipos de resultados, realmente estamos hablando de dos algoritmos separados que hay que examinar por aparte. Por ejemplo, si nos dicen que “el algoritmo debe retornar una Emisión con certificados si es persona física, pero tres certificados si es una persona jurídica”, entonces es mejor analizar y programarlos como funcionalidades separadas.

2. Propiedades

Organice cada clase con sus propiedades y sus tipos, las cuales pueden ser datos simples, listas de datos simples, estructuras de datos o listas de estructuras de datos.

3. Relaciones de asociación

Relacione las clases, donde hay una principal que contiene a otras y así sucesivamente. Así, podemos tener una idea más clara de todo lo que el algoritmo debe generar

4. Parámetros

  1. Determine los parámetros que requiere para programar todo el algoritmo.
  2. Inversión de dependencias: Determine aquellos parámetros que se deben obtener de fuentes externas, como por ejemplo parámetros de una base de datos, la fecha actual o cualquier otra información que deba consultarse a otros sistemas.

Con esta información ya podemos programar la lógica del caso de uso en un procedimiento fácil de probar.

Mire un ejemplo completo en el Laboratorio.

Diseño de componentes

¿Cómo podemos identificar y organizar los diferentes tipos de componentes de software de manera que su mantenimiento sea más sencillo?

En esta serie de videos vemos algunas guías para lograrlo:

Playlist completo en YouTube.