Giter Site home page Giter Site logo

unizar-vv-notas's Introduction

Equipo 3 de Verificación y Validación, unizar-vv-notas

Repositorio de la aplicación de notas de la asignatura de verificación y validación.

unizar-vv-notas's People

Contributors

rauljavierre avatar miguel-latre avatar sergio-alv avatar sergiogch avatar javierni avatar

Watchers

 avatar

Forkers

alex28499

unizar-vv-notas's Issues

Notas con fechas

Ahora las notas tienen una fecha de activación y otra de caducidad. A la fecha de activación se le asigna la fecha actual del sistema y a la de caducidad la de 30 días después de la fecha actual. No obstante el usuario podrá modificar dichas fechas.

"Asignar" / "Modificar" en casos de uso

Podría pensarse que hay casos de uso repetidos como "Asignar categoría" o "Modificar categoría". Sin embargo, establecemos la diferencia entre las dos puesto que entendemos que se le asigna una categoría a una nota puesto que no tenía una categoría y se le modifica la categoría a una nota puesto que ya tenía una categoría. Lo reflejamos porque entendemos que el castellano es muy rico, pero aún así puede dejar problemas de semántica como este en fases tan tempranas en la Ingeniería del Software.

Precisión, no ambigüedad y claridad (Fechas de las notas)

Las fechas dejan dos dudas que hay que resolver preguntando:

  • ¿Es posible que la fecha de activación sea igual o posterior a la fecha de caducidad? (Rango de fechas)
  • ¿Cuándo se activan y caducan las notas? (Al inicio del día en activación, al final del día de caducidad...)

Diagrama de despliegue - Canales

Agregar multiplicidades entre el Dispositivo Android y:

  • El servidor de correo saliente
  • La central de ISP

Se desconoce el protocolo de comunicación: question.

Posible mal uso de relaciones de dependencia en el diagrama de paquetes

La herramienta Modelio proporciona una gran cantidad de flechas entre paquetes, muchas de ellas semánticamente muy parecidas: access, access all, dependency, usage, package import...

Creemos que de momento no tenemos los conocimientos suficientes para hacer la distinción entre las mismas, por lo que vamos a dejarlo así, siendo conscientes de que probablemente estemos haciendo mal uso de la relación entre paquetes. No obstante, y aunque puede que no sea suficiente, todo el grupo de trabajo entendemos lo mismo con dichas relaciones.

Precisión, no ambigüedad y claridad (Categorías)

¿Qué ocurre cuando se elimina una categoría que está asociada a alguna o algunas notas? Dos opciones:

  1. Todas las notas asociadas a dicha categoría se quedan sin categoría
  2. Se eliminan todas las notas asociadas a dicha categoría

Hay que preguntar ya que existe el peligro de implementar sin preguntar y realizar lo que el usuario no desea.

Atributos diagramas de clases de diseño

Hay muchos nombres de atributos que son constantes y por tanto no empiezan por minúscula, sino que están escritos íntegramente por letras mayúsculas. Esto es así por las guías de estilo de la mayoría de lenguajes de programación, en este caso, Java.

Puede verse un ejemplo de guía de estilo de Java (en la que hablan también de esto) desarrollada por la Universidad de Castilla-La Mancha: https://docplayer.es/24150608-Guia-de-estilo-en-java.html

Por tanto, no van a modificarse dichos nombres porque sería ir en contra de las guías de estilo.

Filtros de listado

Ahora el sistema permitirá filtrar las notas de las siguientes formas:

  1. Notas previstas: notas cuya fecha de activación no se ha alcanzado todavía.
  2. Notas vigentes: notas cuya fecha de activación ha sido alcanzada, pero cuya fecha de caducidad no ha vencido todavía.
  3. Notas caducadas: notas cuya fecha de caducidad se ha sobrepasado.
  4. Todas las notas, con independencia de sus fechas de activación y caducidad. Este será el modo de visualización del listado de notas por defecto al iniciarse el sistema.

Generalización "Editable"

Podrían generalizarse las clases "Nota" y "Categoría" a una clase "Editable", aprovechando que ambas tienen un título/nombre y tienen operaciones CRUD.

Definitivamente, no vamos a hacerlo por las siguientes razones:

  1. Sería volver hacia a la fase de análisis otra vez
  2. Aplicarlo en la fase de diseño
  3. Implementarlo de nuevo

No hay tanto beneficio, de hecho, semánticamente nos parece que se entiende hasta peor el problema generalizando las dos clases. Pero dejamos constancia de que nos hemos dado cuenta de que sí se podría hacer.

Cambiar "actor" por "usuario"

"Actor" es muy general y vale para todo, en este caso preferimos cambiarlo por "usuario" que, a pesar de que también sea general, encaja mejor con nuestro sistema. Pese a que es un error de notación que va a aportar poco, tampoco cuesta mucho arreglarlo, por lo que se procede a su corrección.

Diagrama de componentes

Está muy pobre de contenido, no refleja todos los paquetes importantes que hay en la aplicación ni sus relaciones. Además, no muestra las interfaces proporcionadas/requeridas. En definitiva, no parece un diagrama de componentes y conectores.

Actor con nombre debajo en diagrama de casos de uso

Para el trabajo de Ingeniería del Software se puso el nombre del actor a su izquierda (no se sabe muy bien por qué). Pese a que es un error de notación que va a aportar poco, tampoco cuesta mucho arreglarlo, por lo que se procede a su corrección.

Error categoría con imagen

A la hora de editar una categoría ya existente no carga la imagen del spinner correctamente. Da el siguiente error:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: es.unizar.eina.notepadv3, PID: 23842
android.content.res.Resources$NotFoundException: Resource ID #0x1

Diagrama de clases de diseño con muchas clases

Lo ideal es no tener más de 7 clases en un diagrama. En este caso, tenemos hasta 16. La solución optada ha sido adjuntar el diagrama de clases general y posteriormente, fracciones del mismo que tienen un interés particular (patrón Bridge, uso de la clase Test...).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.