Diseño de la solución

Arquitectura

La arquitectura se refiere a en qué computadoras trabajará el programa, si estará en red, si será accesible por alguna red privada o pública. Involucra decisiones del lenguaje de codificación y la versión; sistemas operativos, servidores de aplicaciones y de bases de datos.

El lenguaje de computación que se utilizará en este material es Java, las aplicaciones son monousuario pero la ventaja del lenguaje de programación es que nos permiten codificar un programa en un sistema operativo y poder ejecutar el código en otro, lo cual le añade portabilidad. Muchas decisiones y los programas pueden ejecutarse incluso en compiladores en línea o en un entorno que se instala en la computadora.

Se sugiere el uso de alguno de estos:

Requerimientos no funcionales

Se debe hacer una lista con los requerimientos para que el sistema pueda ejecutarse, tal como la versión del compilador, portabilidad, entorno de desarrollo (IDE) recomendado, etc.

De acuerdo a Volere (2000): apariencia (dimensiones, ergonomía), usabilidad (uso y aprendizaje), desempeño (tiempos de respuesta), operación (restricciones de hardware y software de administración de TI y de actores —usuarios), mantenimiento, portabilidad, seguridad, culturales, políticos, reglamentación y herramientas de desarrollo.

Los requerimientos no funcionales describen los atributos de calidad generales del sistema resultante. Colocan restricciones sobre cómo deben lograrse los requerimientos del usuario. El usuario puede colocar limitaciones sobre el software relacionado con interfaz, calidad, recursos y tiempos. Debido a que son restricciones o limitaciones sobre los servicios del sistema, los requerimientos no funcionales son generalmente de una importancia crítica y puede darse el caso de tener que sacrificar los requerimientos funcionales para lograr los requerimientos no funcionales.

Algunos requerimientos no funcionales restringen el proceso de desarrollo antes que el producto. Incluyen requerimientos sobre estándares de desarrollo, métodos y lenguajes de desarrollo a ser utilizados. Los clientes generalmente imponen estas restricciones para lograr un producto de mayor calidad y para mantener la compatibilidad con los métodos usados para el diseño y la implementación de un sistema. Otros requerimientos no funcionales pueden no estar asociados directamente con el producto o con el proceso de desarrollo, como las restricciones legales, económicas y de interoperabilidad.

Los requerimientos no funcionales pueden definirse como restricciones o limitaciones que se colocan en el servicio de un sistema. Según Sommerville, los requerimientos no funcionales surgen porque los usuarios necesitan lograr ciertos objetivos. Esto puede surgir por restricciones de presupuesto, políticas organizacionales, necesidad de interoperabilidad con otro software y hardware, la necesidad de seguir de un cierto proceso de desarrollo, y factores externos sobre regulaciones de seguridad y privacidad.

En la práctica no hay una clara distinción entre estas categorías y algunos requerimientos podrían ser clasificados en más de una categoría, pero pueden considerarse los siguientes:

opciones

Algunos ejemplos pueden ser

  • Entregar el proyecto para tal fecha (distribución).
  • Utilizar cierta versión de compilador (estándares).
  • Los datos están disponibles en red (interoperabilidad), pero sólo dentro de las instalaciones de la organización (estándares, y seguridad).
  • Etcétera.