Especificaciones
De Requerimientos
“La parte más
dura en la construcción de un sistema software es decidir cómo
construirlo…Ninguna parte del trabajo mutila el resultado del sistema si está
hecho mal. Ninguna parte es más dificultosa para rectificarlo después”. La
ingeniería de requisitos facilita el mecanismo apropiado para comprender lo que
quiere el cliente, analizando necesidades, confirmando su viabilidad,
negociando una solución razonable, especificando la solución sin ambigüedad,
validando la especificación y gestionando los requisitos para que se
transformen en un sistema operacional. Los requerimientos para un sistema de
software determinan lo que hará el sistema y definen las restricciones de su
operación e implementación. El proceso de ingeniería de requisitos puede ser
descrito en 5 pasos distintos: identificación de requisitos, Análisis de
requisitos y negociación, Especificación de requisitos, Modelizado del sistema,
Validación y gestión de requisitos.
El
Lenguaje Unificado de Modelado (UML)
Cualquier rama de ingeniería o
arquitectura ha encontrado útil desde hace mucho tiempo la representación de
los diseños de forma gráfica. Desde los inicios de la
informática se han estado
utilizando distintas formas de representar los diseños de una forma más bien
personal o con algún modelo gráfico.La falta de estandarización en la manera de representar gráficamente un
modelo impedía que los diseños gráficos realizados se pudieran
compartir fácilmente entre distintos diseñadores. Se necesitaba
por tanto un lenguaje no sólo
para comunicar las ideas a otros desarrolladores sino también para
servir de apoyo en los procesos de
análisis de un problema. Con este objetivo se creo el Lenguaje Unificado de
Modelado (UML: Unified Modeling
Language). UML se ha convertido en ese estándar tan ansiado para representar y
modelar la información con la que se trabaja en las fases de análisis y,
especialmente, de diseño.
UML es ante todo un lenguaje. Un
lenguaje proporciona un vocabulario y una reglas
para permitir una comunicación.
En este caso, este lenguaje se centra en la representación gráfica de un
sistema. Este lenguaje nos indica cómo crear y leer los modelos, pero no
dice cómo crearlos. Esto último es el objetivo
de las metodologías de desarrollo.
MODELADO VISUAL
Tal
como indica su nombre, UML es un lenguaje de modelado. Un modelo es una
simplificación de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del
sistema. Para facilitar este modelado, se realiza una abstracción y se plasma en
una notación gráfica. Esto se conoce como modelado visual. El modelado visual
permite manejar la complejidad de los
sistemas a analizar o diseñar.
• Construir: A partir de los modelos especifica- • Diagrama de colaboración.
dos se pueden construir los sistemas
diseñados.
• Diagrama de estados.
• Documentar: Los propios elementos gráficos sirven como documentación
del sistema desarrollado que pueden servir para su futura revisión.
DIAGRAMAS
UML
incluye los siguientes diagramas:
- Diagrama de casos de uso.
- Diagrama de clases.
- Diagrama de objetos.
- Diagrama de secuencia.
- Diagrama de colaboración.
- Diagrama de estados.
- Diagrama de actividades.
- Diagrama de componentes.
- Diagrama de despliegue.
El
URN
Fue una iniciativa de la Internet
Engineering Task Force IETF, la rama de desarrollo de ingeniería
y protocolos de Internet, con la premisa de conseguir una
forma universal de identificación de recursos, para que cada recurso fuera
único y constante. Se trataba de un identificador paralelo al URL. Una característica
importante de este sistema es que trabaja junto con Uniform Resource Characteristics/Citacion (URC), un sistema
para la descripción de metadatos. La sintaxis del URN, explicada en
la RFC2141 consta de 3 bloques separados
por dos puntos: el identificador URN, el NID o nombre de la categoría en la que
se incluye el documento (por ejemplo, inet para documentos de Internet) y el
NSS o cadena específica que indica primero la ruta y a continuación el
documento concreto. Lo interesante de URN es que puede subsumir todos los
identificadores bibliográficos existentes tales como ISSN (International Standard Serial Number) para
publicaciones seriadas,ISBN (International Standard Books Number) para libros
y SICI (Serial Item and Contribution Identifier) que
identifica no sólo la revista, sino también el número de un publicación
seriada. El primitivo URN, junto con el identificador URL, ha sido uno de los
pilares para la creación del URI, que se está convirtiendo en el identificador
global más utilizado, ya que engloba a ambos.
Requerimientos del usuario
Son declaraciones en lenguaje natural
y en diagramas de los servicios que se espera que el sistema provea y de las
restricciones bajo las cuales debe operar. Describen los requerimientos
funcionales y no funcionales de tal forma que sean comprensibles por los
usuarios del sistema que no posean un conocimiento técnico detallado.
Únicamente especifican el comportamiento externo del sistema y evitan, tanto
como sea posible, las características de diseño del sistema. Por consiguiente,
los requerimientos del usuario no se deben definir utilizando un modelo de
implementación. Deben redactarse utilizando el lenguaje natural,
representaciones y diagramas intuitivos sencillos.
Argo UML es la principal herramienta
libre de modelado UML, incluye el apoyo a todos los estándares de diagramas UML
1.4. Es una aplicación de diagramado de UML escrita
en Java y publicada bajo la Licencia BSD. Dado que es una aplicación Java, está disponible en cualquier
plataforma soportada por Java. El Magazine de Desarrollo de Software entrega
premios anuales a herramientas de desarrollo de software populares en varias
categorías. En 2003 ArgoUML fue una de las finalistas en la categoría
"Design and Analysis Tools". ArgoUML recibió un premio
"runner-up"(revelación), derrotando a muchas herramientas
comerciales.
La licencia BSD
es la licencia de software otorgada principalmente para los sistemas BSD (Berkeley Software Distribution). Es una licencia de software libre permisiva como la licencia de OpenSSLo la MIT License. Esta licencia tiene menos restricciones en comparación con otras como la GPL estando muy cercana al dominio público. La licencia BSD al contrario que la GPL permite el uso del código fuente en software no libre.
Los Requisitos y la Calidad de Software
Recientemente, durante un taller de
requisitos que estoy dictando, surgió la inquietud de qué tipos de requisitos
afectan la calidad del software. Por un lado se aseguraba que la calidad estaba
definida por los requisitos no funcionales, mientras que por otro lado se
aseguraba que ambos tipos de requisitos afectaban la calidad del producto. La
confusión, sobre todo, se encontraba en lo que se conoce como necesidades
implícitas y explicitas. A continuación reúno algunas definiciones que ayudan a
aclarar el tema.
Según el SWEBOK, los requisitos funcionales “... describen las funciones que el sistema ejecutará: por ejemplo la aplicación de un formato a un texto o la modulación de una señal. “Los requisitos no funcionales son aquellos que actúan como restricciones para la solución. Los requisitos no funcionales algunas veces se conocen como requisitos de restricción o requisitos de calidad”.
Según el SWEBOK, los requisitos funcionales “... describen las funciones que el sistema ejecutará: por ejemplo la aplicación de un formato a un texto o la modulación de una señal. “Los requisitos no funcionales son aquellos que actúan como restricciones para la solución. Los requisitos no funcionales algunas veces se conocen como requisitos de restricción o requisitos de calidad”.
Estándares
en la documentación del análisis
Significa que los símbolos
convencionales se usan en todos los diagramas de flujo para prescribir el
sistema y que en la documentación se usen formas estandarizadas. Aún cuando las
normas de documentación varían de una instalación a otra, es esencial que
dentro de una organización, se utilice un solo método. El uso de procedimientos
y documentación estandarizada proporciona la base de una comunicación clara y
rápida, adiestramiento menos costoso del personal de sistemas, reducción de
costos de almacenamiento, y otros.
Ventajas
De La Estandarización
Ayuda al entrenamiento del nuevo
personal dentro y fuera de la organización de Sistemas. Es útil para cualquiera
que tenga la responsabilidad del mantenimiento de los sistemas. Ayuda a los
analistas y diseñadores de sistemas en el trabajo de integración de sistemas. Asegura
que el sistema opere correctamente. Se utilizan eficientemente los recursos que
se dispongan.
Requerimientos
Funcionales Y No Funcionales
La mayoría de proyectos de software
son complejos, y la estrategia primaria para superar la complejidad, es la
descomposición (divide y vencerás). La estrategia es dividir el problema en
unidades más pequeñas que sean manejables. Un enfoque tradicional para realizar
esto fue el análisis y diseño estructurados, donde se trata de descomponer el
problema en funciones o procesos. Este método origina una división jerárquica
de procesos constituidos por sub-procesos. Por ejemplo, una descomposición por
funciones o procesos en análisis y diseño estructurados, de un Sistema de
Información de Biblioteca podría ser el siguiente:
Otra forma de realizar la
descomposición, es usando un esquema de análisis y diseño orientado a objetos.
En este esquema, se busca descomponer el problema en objetos, y no en
funciones.
Algunas
de las tareas a realizarse en la etapa de análisis son las siguientes
1. Definir los requerimientos.
2. Definir los casos esenciales de
uso.
3. Crear y perfeccionar los diagramas
de casos de uso.
4. Crear y perfeccionar el modelo
conceptual.
5. Crear y perfeccionar el glosario.
6. Definir los diagramas de secuencia
de los sistemas.
7. Definir los contratos de
operaciones.
Algunas de las tareas a realizarse en
la etapa de diseño son las siguientes:
1. Definir los casos reales de uso.
2. Definir los reportes, la interfaz
de usuario y la secuencia de las pantallas.
3. Perfeccionar la arquitectura del
sistema.
4. Definir los diagramas de
interacción.
5. Definir los diagramas de diseño de
clases.
6. Definir el esquema de la base de
datos.
Requerimiento
de Dominio
Cuando hablamos de dominio en diseño
nos referimos a aquella parte del diseño que es particular al problema que se
quiere resolver. Desafortunadamente, por su misma naturaleza, es imposible
ofrecer una metodología precisa debido a que cada caso es diferente. Los
requerimientos de dominio (particulares) para una página web pueden ser muy
diferentes de los de dominio (particulares) para un antivirus, razón por la
cual la mayoría de los autores omiten ahondar en ese tema.
Por ejemplo, la mayoría de los armazones de desarrollo de aplicaciones (por ejemplo, las MFC y .NET) te ofrecen "casi todo", menos las clases de dominio, cuyos requerimientos debes tú especificar (como Dios te dé a entender) para desarrollar una aplicación de utilidad.
Por ejemplo, la mayoría de los armazones de desarrollo de aplicaciones (por ejemplo, las MFC y .NET) te ofrecen "casi todo", menos las clases de dominio, cuyos requerimientos debes tú especificar (como Dios te dé a entender) para desarrollar una aplicación de utilidad.
Atributos
De Calidad Del Software
Se pueden tomar estos atributos de en
base a un punto vista definido, por ejemplo a la adecuación de los
requerimientos funcionales o a la satisfacción de cliente.
Disponibilidad o Está relacionada con la confiabilidad por ejemplo cuando una aplicación no está disponible cuando se necesita no cumple con las expectativas ni los requerimientos funcionales de la misma.
Disponibilidad o Está relacionada con la confiabilidad por ejemplo cuando una aplicación no está disponible cuando se necesita no cumple con las expectativas ni los requerimientos funcionales de la misma.
· Modificalidad o Se refiere a que tan
fácil es modificar la aplicación y con ello cambiar el comportamiento del
software.
· Performance o Generalmente este
atributo se puede medir en unidades de rendimiento de procesos (Throughput),
tiempo de respuesta y retardos.
· Seguridad o Se refiere a los permisos
de acceder a ciertos procesos de la aplicación y para eso requiere autenticación,
autorización y algún nivel de encriptación.
No hay comentarios:
Publicar un comentario