Beruflich Dokumente
Kultur Dokumente
CONTENIDO
4.1 Especificación de Requisitos de software
4 y el estándar IEEE830
4.2 Características de una buena
NORMA IEEE 830: ESPECIFICACIÓN DE especificación de requisitos de software
1
ESPECIFICACIÓN DE ESPECIFICACIÓN DE
REQUERIMIENTOS DE SOFTWARE REQUERIMIENTOS DE SOFTWARE
• Definir los requerimientos de un software puede
parecer algo sencillo, pero es común que el • Para definir los requerimientos de un software,
usuario/cliente o el desarrollador cometan podemos apoyarnos en una norma que nos
guía para hacer las preguntas pertinentes:
errores u omisiones importantes
IEEE 830
• Muchos problemas en los proyectos de software • Esta norma le sirve tanto al usuario/cliente
se deben a una inadecuada especificación de como al desarrollador
requerimientos
IEEE 830
IEEE 830
El propósito principal de esta norma es
Prácticas Recomendadas para la ayudarnos a elaborar un documento muy
Especificación de Requisitos de útil: la Especificación de Requerimientos
Software de Software ERS (en inglés: SRS)
2
IEEE 830 sirve para que... IEEE 830 sirve para que...
• Un cliente describa claramente lo que quiere • Se tenga una base o referencia para validar o
probar el software solicitado
• Un proveedor entienda claramente lo que el
cliente quiere • Se facilite el traspaso del software a otros
clientes/usuarios
• Se establezcan bases para un contrato de
desarrollo (o de compra-venta) • Se le puedan hacer mejoras (o innovaciones) a
ese software
• Se reduzca el esfuerzo de análisis, diseño, y
programación (evitando re-trabajos)
3
AMBIENTE DE LA ERS AMBIENTE DEL SRS
• La ERS es la fuente principal para hacer el • Si se hacen ERS por separado para varios
plan detallado de un proyecto de software módulos, tiene que mantenerse la
consistencia en los documentos
• Una ERS puede referirse a los requerimientos • Si un software necesita interactuar con otro,
deseados de todos los componentes de un tienen que especificarse los requerimientos
sistema grande, o a componentes (módulos) de esa interacción (interfaces), definiendo
individuales del mismo
sus funcionalidades y el nivel de desempeño
deseado
Corrección No ambiguo
• La ERS es correcto si los requerimientos • Una ERS es no ambigua si cada requerimiento
escritos son aquellos que el software deberá establecido en ella tiene una sola interpretación
cumplir posible, tanto por el cliente/usuario como por el
desarrollador
• No hay un método para saber si la ERS es • En casos donde alguna palabra pudiera tener
correcto; lo importante es que se pida lo que múltiples significados, se debe incluir su
realmente se necesita definición precisa en un glosario que se
adicione a la ERS.
Ejemplos: planta, obra, maestro, carga, flecha
4
No ambiguo (cont.) No ambiguo (cont.)
• Problema: El usuario/cliente y el • El lenguaje natural es inherentemente ambiguo;
desarrollador generalmente tienen diferentes por ello, es conveniente que la ERS sea
perfiles profesionales, y por ello describen los revisada por un tercero que no haya participado
requerimientos en diferente forma en la redacción
• Se han creado lenguajes formales para
• Problema: Las descripciones que pudieran ser especificación de requerimientos de software,
más claras para el desarrollador, podrían ser que se basan en reglas matemáticas y lógicas
difíciles de entender para el usuario, y para evitar la ambigüedad (como la Notación Z,
viceversa. ISO/IEC Z Standard 13568:2002)
COMPLETO
No ambiguo (cont.)
La ERS es completa si incluye:
Métodos de representación de requerimientos: – Todos los requerimientos significativos sobre
funcionalidades, desempeño, restricciones de diseño,
– Basados en objetos: identificar clases de
atributos, o interfaces externas
objetos similares (alumno, empleado,
producto, etc.). – Las respuestas que debería dar el software a todas
las posibles entradas de datos en todas las
– Basados en procesos (compras, ventas, situaciones posibles (entradas aceptables o no
cobranza) aceptables: validación)
– Basados en conductas (la conducta de un – Especificación de unidades de medida (si son
robot) aplicables)
– En caso de que la ERS tenga diagramas o tablas
informativas, hay que darles número o identificación
5
ORDENADO POR GRADO DE VERIFICABLE
IMPORTANCIA O ESTABILIDAD
• Un requerimiento es verificable si existe algún
• Grado de estabilidad: número de cambios método rentable mediante el cual se pueda
que se podrían esperar para un requerimiento, analizar si el software cumple ese requerimiento.
debido a eventos futuros que afecten a la • Ejemplo:
organización, las responsabilidades, y las – “La respuesta del programa deberá darse dentro
personas que usarán el software de los 20 seg posteriores a la apertura de la
válvula V25, y debe responder correctamente en
• Grado de necesidad:
el 60% de los casos”
– Esencial
• Contraejemplo (algo no verificable):
– Condicional
– “El programa tiene que funcionar bien”
– Opcional
RASTREABLE
• Cada requerimiento debe identificarse con algún
RASTREABLE (cont.)
número, letra o secuencia alfanumérica • La rastreabilidad hacia delante facilita las
• Una ERS es rastreable si el origen de cada actividades de diseño, codificación, y
requerimiento es claro, y si facilita el seguimiento
modificación del software.
de cada requerimiento a lo largo del proyecto de
software
• Dos tipos de rastreabilidad:
– Hacia atrás: en cada requerimiento se
menciona explícitamente su fuente documental
– Hacia delante: los documentos que se deriven
de la ERS deben usar las identificaciones de
requerimientos como fueron dadas en la ERS
6
4. NORMA IEEE 830 ESPECIFICACIÓN DE REQUISITOS DE SOFTWARE
PREPARACIÓN CONJUNTA DE LA ERS
7
DISEÑO “IMPLÍCITO” EN LAS
CREACIÓN DE PROTOTIPOS ESPECIFICACIONES DE REQUERIMIENTO
(cont.) DE SOFTWARE - ERS
8
REQUERIMIENTOS DE PROYECTO
4. NORMA IEEE 830 ESPECIFICACIÓN DE REQUISITOS DE SOFTWARE
“IMPLÍCITOS” (cont.)
• Las ERS dan origen a otros documentos (por
separado) relacionados con el ciclo de vida de
un software
– Estimación de costos
4.4
– Fechas de entrega Contenido y organización típicos de las
– Reportes de avances especificaciones de requisitos de software
– Métodos de desarrollo
– Aseguramiento de la calidad
– Criterios de validación y verificación
– Procedimientos de aceptación
9
… CONTENIDO DE UNA ERS … CONTENIDO DE UNA ERS
… 1.2 Alcance 1.3 Definiciones, acrónimos, y abreviaturas
• Dar las definiciones de todos los términos,
• Describir para qué se aplicará el software,
acrónimos (siglas) y abreviaturas que sean
incluyendo sus beneficios relevantes,
pertinentes para el adecuado entendimiento
objetivos, y metas del SRS
• Ser consistente con las disposiciones que • Esta información puede ofrecerse mediante
se hayan dado en especificaciones de referencias a uno o más apéndices del SRS o
mayor nivel jerárquico (si existen); por referencias hacia otros documentos
ejemplo, las de algún sistema de mayor (manuales de la organización,
jerarquía procedimientos de aseguramiento de calidad,
hojas de registro, etc.)
10
… CONTENIDO DE UNA ERS … CONTENIDO DE UNA ERS
2.1 Perspectiva del software 2.1 Perspectiva del software (cont.)
– Describir el software en perspectiva con otros – Para describir las relaciones entre el
software relacionados: similitudes y diferencias software requerido y el sistema grande,
pueden ser útiles los diagramas de bloques
– Si el software es independiente y totalmente
auto-contenido, eso tiene que decirse aquí. – En los diagramas de bloques se pueden
– Si se está requiriendo un software que formará mostrar los componentes principales del
parte de un sistema más grande, se tiene que sistema grande y su relación jerárquica (y
describir la relación de los requerimientos del de flujo de datos) con el software requerido
sistema grande con las funcionalidades del
software requerido y debe identificarse cómo se
comunicarán ambos
Cursos 1.0
solicitados Módulo para
Cursos disponibles
Estudiante
Verificar Este podría ser un módulo que
disponibilidad formaría parte del sistema en su
Archivo de
cursos
3.0 conjunto
Carta de Cursos
autorizados Módulo para
confirmación
Detalles de curso Notificar
inscripción
3.0 2.0
Registro Inscripción a curso
Módulo para Módulo para
Notificar Inscribir al
Datos estudiante Archivo de
inscripción estudiante
estudiantes
11
Veamos los módulos... Veamos los módulos...
Basado en Laudon & Laudon. Sistemas de Información Gerencial. Basado en Laudon & Laudon. Sistemas de Información Gerencial.
Prentice-Hall. México Prentice-Hall. México
Lo que hay entre los módulos... Lo que hay entre los módulos...
1.0
Módulo para • Lo que hay entre los módulos es flujo de
Verificar
disponibilidad información; por lo tanto se tiene que especificar
qué información se entrega a cada uno de los
Cursos
autorizados
I.S. I.S. módulos que sean requeridos.
Significa
Interfaz de
• Hay que especificar cómo es esa información
3.0 I.S. 2.0
sistema (numérica, alfanumérica, rango de valores
Módulo para Módulo para
Notificar Registro Inscribir al
posibles, unidades de medida, etc.)
inscripción estudiante
12
… CONTENIDO DE UNA ERS … CONTENIDO DE UNA ERS
2.1 Perspectiva del software 2.1 Perspectiva del software
2.1.4 Interfaces de software: qué otros software se
2.1.5 Interfaces de comunicación:
necesitarán para que el software requerido pueda
funcionar, por ejemplo: Qué tecnología de redes se usará para comunicar
• Sistemas operativos: Windows, Linux, AIX, Solaris, etc. a las computadoras en las cuales se usará el
software:
• Sistemas manejadores de bases de datos: Oracle,
Sybase, MySQL, DB2, etc. – Nombre genérico de la tecnología: LAN, WAN,
• Intérpretes de lenguajes (como PERL) MAN, VPN, WWW, WiFi, etc.
• Shells para sistemas expertos (como Sictus Prolog) – Topología de la red: anillo, estrella, bus
• Paquetes comerciales para ejecutar programas que
usan redes neuronales (como MatLab) – Protocolos de comunicación: Ethernet, TCP/IP,
ATM, FrameRelay, PPP
También los programas para que el software pueda
– Tipo de cableado: fibra óptica, par trenzado,
interactuar con los demás módulos
coaxial
13
… CONTENIDO DE UNA ERS … CONTENIDO DE UNA ERS
2.4 Restricciones
2.3 Características de los usuarios
Información sobre posibles limitantes que
Describir sus características respecto a:
deberán respetar los diseñadores, como:
• Nivel educativo
a) Políticas regulatorias aplicables
• Experiencia profesional
b) Limitaciones en el hardware (p.ej. velocidad
• Capacidades técnicas.
del microprocesador)
Esta descripción ayuda a comprender los
c) Interfaces hacia otras aplicaciones
motivos que dan origen a los requerimientos.
d) Funcionamiento en paralelo
e) Funciones de auditoría de software
i) Consideraciones sobre seguridad física y Por ejemplo, una hipótesis puede ser que el producto de
software correrá bajo un sistema operativo determinado.
lógica
Si, en la realidad, el sistema operativo no está disponible,
entonces la ERS entonces tendrá que cambiar
correspondientemente.
14
Organización de los requerimientos
Organización de los requerimientos
específicos (Sección 3)
específicos (Sección 3)
Por modo de operación del sistema
– P. ej. si se desea un sistema de control para una • Por clase de usuario
planta industrial, sus modos de operación podrían – Algunos sistemas ofrecen diferentes conjuntos
ser: modo de entrenamiento, modo normal, y de funciones para cada tipo de usuario. P. ej.,
modo de emergencia un sistema de sucursal bancaria ofrece
– Hay que definir las funcionalidades del sistema diferentes funciones para el personal de cajas,
para cada tipo de modo para los ejecutivos de cuenta o para el gerente
– Usar las plantillas A.1 o A.2, la primera si los
diversos modos de operación requieren diferentes – Usar plantilla A.3
interfaces; la segunda si requieren diferentes tipos
de desempeño
15
Organización de los requerimientos
específicos (Sección 3)
• Por jerarquía funcional
– Cuando ninguna de las plantillas resulta útil, la
funcionalidad general del sistema puede organizarse
en una jerarquía de funciones, ya sea con base en
entradas comunes, salidas comunes, o accesos
comunes a los datos
– Se pueden usar diagramas de flujo de datos y
diccionarios de datos para mostrar las relaciones
entre las diversas funciones, entre los diversos
datos, y entre las funciones y los datos
– Usar plantilla A.7
16