Utilizando los términos utilizados dentro del dominio del problema, es decir el lenguaje del cliente o de quien solicita el sistema, debe describirse lo que se requiere en una fase corta, concisa y completa.
Para ello se recomienda utilizar el siguiente planteamiento de Peter Coad:
- Escribir un texto de alrededor de 25 palabras con frases como "para ayudar a”, “para facilitar”, “para apoyar”, etc.
- Hacer una lista de las características requeridas y ponderarla.
- Hacer un recorrido por el lugar donde se usará el software para entender su entorno.
Imagina que deseamos hacer un programa para realizar el cálculo del área de cualquier triángulo; para ello, el cliente necesita obtener esta información conociendo la longitud de los segmentos de recta de la base y la altura del triángulo. Como se trata de un curso de programación en Java, debes tener en cuenta que ese sera el lenguaje de programación que se utilizará y por lo tanto el planteamiento debe enmarcarse dentro de la metodología de programación orientada a objetos.
Peter Coad
Peter Coad es un emprendedor de software y autor de libros sobre programación. Se destaca por su papel en la definición de lo que se conoce como colores UML, una notación codificada por colores principalmente útil para agregar amplitud y profundidad a un diseño, utilizando cuatro arquetipos principales.
Escribe en el siguiente recuadro un enunciado que describa el planteamiento que permita diseñar un programa de computadora para calcular el área de un triángulo.
Con el siguiente ejercicio podrás elaborar el planteamiento del problema que se te solicita. Lee el siguiente problema y realiza lo que se te pide.
La escuela desea realizar el cálculo del Índice de Masa Corporal de sus estudiantes de primer ingreso y de los egresados para estimar su estado de salud. Se sabe que los primeros llegan en promedio con una edad de 15 años, mientras que los egresados se calcula que tendrán 18 o 19 años, al momento salir.
El Departamento de Educación Física realizará las pruebas y solicita a un grupo de alumnos expertos de Cibernética y Computación que desarrollen un programa de cómputo para realizar el cálculo del IMC y emitir una valoración sobre el estado de salud.
El cálculo del IMC es:
$IMC=peso/〖estura〗^2$
Les sugiere utilizar las tablas de interpretación de la Organización Mundial de la Salud con los siguientes criterios:
- Personas mayores de edad, para egresados.
- Niños de 15 años para alumnos varones de primer ingreso.
- Niñas de 15 años para alumnas mujeres de primer ingreso.
Considerando a los adultos como el caso “general”, diseñe un formulario para realizar los cálculos correspondientes guardando: nombre, peso, talla, edad, y género de las personas y así calcular su IMC y una valoración o descripción del mismo. Especialice la interpretación de la descripción del IMC para cada clase derivada de la general.
Este programa es muy importante para el estudio de la salud de la población en general, más adelante el Instituto Nacional de Nutrición solicitará trasladarlo a una plataforma web para que se pueda interpretar la información de todas las edades.
Requerimientos no funcionales
De acuerdo a Volere (2000) entre los requerimientos no funcionales encontramos los de apariencia (dimensiones, ergonomía), usabilidad (uso y aprendizaje), desempeño (tiempos de respuesta), operación (restricciones de hardware y software quienes administran la infraestructura de tecnología dentro de la empresa y de actores —tipos de usuarios que trabajarán con el sistema), mantenimiento, portabilidad, seguridad, culturales, políticos, reglamentación, herramientas de desarrollo.
Los requerimientos no funcionales son aquellos que no están relacionados específicamente con la funcionalidad del sistema o lo que se espera que haga el sistema. Imponen restricciones sobre el producto que está siendo desarrollado y sobre el proceso de desarrollo, y especifican las restricciones externas que el producto debe lograr. Los requerimientos no funcionales incluyen requerimientos de confiabilidad, seguridad, usabilidad, disponibilidad y rendimiento.
Algunos ejemplos son:
- si la aplicación se mostrará en un formulario o en línea de comandos,
- debe funcionar en algún sistema operativo en particular,
- se usará algún mecanismo o programa para almacenar la información,
- versiones del software de desarrollo e implementación,
- dónde se almacenará el programa,
- dónde se realizará el respaldo y mantenimiento.
Este material, utilizará como lenguaje de programación Java, intentando utilizar las funciones más estándares que existen dentro del Lenguaje. Java es un lenguaje de programación orientado a objetos, siguiendo los principios de este paradigma:
- Abstracción. Identificar elementos autónomos agrupados en “Clases de objetos“ dependiendo de sus responsabilidades dentro de un sistema; a su vez, almacenarán información (atributos) y el resto del sistema podrá comunicarse a través de mensajes o métodos.
- Encapsulamiento. Se establece protección de la información almacenado o estado de cada objeto para garantizar la integridad de la información almacenada. Por ejemplo, no es posible modificar el saldo de una cuenta bancaria si no es a través de mensajes como «depositar», «retirar» o «comprar», donde se realiza las validaciones necesarias antes de afectar el saldo y registrarlo en un estado de cuenta.
- Herencia y polimorfismo. Es un mecanismo para poder agrupar Clases con comportamientos similares, reutilizar fragmentos de códigos de programación y responder a mensajes iguales con comportamientos apropiados a cada objeto. Por ejemplo, si tienes varios animales y les envías un mensaje «asustar», podrían volar, otros correr, esconderse o incluso atacar.
Para comunicarse con una computadora, es necesario un lenguaje de progamación. Y necesita un entorno de programación y pruebas llamado Entorno Integrado de Desarrollo (IDE, por sus siglas en inglés). Java puede ejecutarse en distintos sistemas operativos y entornos de programación, para ello requiere bibliotecas de clases estandarizadas agrupadas en un kit de desarrollo (JDK).
Dentro de los requerimientos no funcionales deben especificarse las herramientas necesarias para su desarrollo como pueden ser la versión del JDK y el IDE recomendado.
IDE
Siglas en inglés de Entorno de Desarrollo Integrado (Integrated Development Environment), es una aplicación que proporciona servicios integrales para facilitarle al programador el desarrollo de software.
JDK
Java Development Kit, kit de desarrollo de Java. Esta constituido por un conjunto de programas para compilar y ejecutar programas escritos en Java, la documentación de los componentes y una biblioteca de elementos reutilizables (clases) para las tareas más comunes de programación.
Para el problema del IMC, indica si las siguientes características que se mencionan en la tabla son requerimientos funcionales (necesarios para resolver el problema) o no funcionales (características que no son parte del proceso de solución). Observa el ejemplo: