Subido por Manuel Mairena

Requerimientos de Software

Anuncio
UNIVERSIDAD ESTATAL A DISTANCIA
ESCUELA DE CIENCIAS EXACTAS Y NATURALES
LICENCIATURAS EN INGENIERÍA INFORMÁTICA
ADMINISTRACIÓN DE PROYECTOS TIC
TAREA N° 1
Resumen I y II, diagrama de contexto y clasificación de
requerimientos
Curso: Ingeniería de Requerimientos Avanzada
Grupo N°: 01
Tutor: Marvin Solano Campos
Mairena Solórzano, Manuel José
San José
24 de septiembre del 2018
III Cuatrimestre 2018
Contenido
1.
INTRODUCCIÓN ................................................................................................................................ 3
2.
RESUMEN COMPRENSIÓN DE REQUERIMIENTOS ........................................................................... 3
3.
RESUMEN PRINCIPIOS DE DISEÑO ................................................................................................... 6
4.
CASO SISTEMA DE COMERCIO ELECTRÓNICO .................................................................................. 9
5.
6.
4.1
Diagrama de contexto ............................................................................................................ 10
4.2
Clasificación de requerimientos ............................................................................................. 12
4.2.1
Requerimientos funcionales........................................................................................... 12
4.2.2
Requerimientos no funcionales ..................................................................................... 13
CONCLUSIONES Y RECOMENDACIONES ......................................................................................... 15
5.1
Conclusiones........................................................................................................................... 15
5.2
Recomendaciones .................................................................................................................. 16
BIBLIOGRAFÍA ................................................................................................................................. 17
1
Tablas
Tabla 1 Modelo de diseño – Modelo de requerimientos …………………………… 8
Figuras
Figura 1 Diagrama de contexto ………………………………………………………11
2
1. INTRODUCCIÓN
El desarrollo de un proyecto de software es un proceso que consta de varias etapas o
fases. Una vez que se toma la decisión de llevarlo a cabo, lo primero que se debe
determinar es lo que debe hacer el software (requerimientos funcionales) y sus
restricciones o características de funcionamiento (requerimientos no funcionales). Uno
de los factores de éxito del proyecto es el grado de comprensión de los requerimientos
de los usuarios y de los clientes por parte del equipo de desarrollo. La ingeniería de
requerimientos es una disciplina que permite definir los requisitos del software que se
va a desarrollar o modificar.
En este trabajo se presenta el resumen del capítulo 5, Comprensión de los
requerimientos, y del capítulo 8, Principios de Diseño, del libro Ingeniería de Software
de Roger Pressman. Por esta razón, las definiciones y los conceptos a los que se hace
referencia en este documento corresponden al autor mencionado. La sección cuatro
de este trabajo contiene la solución del caso Sistema de Comercio Electrónico, para el
cual se elabora a) el diagrama de contexto, en el que se identifican las entidades
externas y los flujos principales de entrada y salida; y b) se clasifican los requerimientos
funcionales y no funcionales de ese sistema.
2. RESUMEN COMPRENSIÓN DE REQUERIMIENTOS
La ingeniería de requerimientos es el conjunto de tareas y técnicas que utilizan los
analistas de sistemas, en conjunto con otros participantes (gerentes, clientes y
3
usuarios), para comprender y establecer los requerimientos de un proyecto de
software.
Para establecer los requerimientos del proyecto es necesario entender lo que desea
el cliente, analizar las necesidades, evaluar la factibilidad, negociar una solución
razonable, especificar la solución sin ambigüedades, validar la especificación y
administrar los requerimientos a medida que se transforman en un sistema funcional.
La ingeniería de requerimientos se realiza a través de las siguientes tareas:
concepción, indagación, elaboración, negociación, especificación, validación y
administración, las cuales se describen a continuación.
Concepción
En esta fase se establece el entendimiento básico del problema, y se identifican las
personas afectadas (clientes, usuarios, etc.), la naturaleza de la solución que se desea,
así como la eficacia de la comunicación y colaboración preliminares entre los
interesados y el equipo de software.
Indagación
Se consulta al cliente, a los usuarios y a otras personas cuáles son los objetivos del
sistema o del producto, cuáles son los beneficios esperados, cómo se ajusta el sistema
o el producto a las necesidades del negocio y, cómo va a usarse en las operaciones
cotidianas. Para obtener esta información, se deben considerar los siguientes
problemas: Problemas de alcance (delimitación del problema), problemas de
entendimiento y problemas de volatilidad de los requerimientos.
Elaboración
4
Se refina la información obtenida en las fases anteriores. Se desarrolla un modelo
refinado de los requerimientos para identificar distintos aspectos de la función del
software, su comportamiento e información. Se describen los requerimientos por medio
de técnicas tales como casos de uso, escenarios o historias de usuario, especificando
la interacción entre los usuarios (primarios y secundarios) y el sistema, los datos y
conjuntos de datos (clases) que forman parte del dominio del sistema y las funciones
que este debe realizar (generación de informes, consultas, captura y procesamiento
de datos).
Negociación
Se llega a un acuerdo con los usuarios y otros participantes sobre el alcance del
producto, considerando las restricciones de tiempo y los recursos materiales y
humanos disponibles. En esta fase los usuarios definen sus prioridades y se analizan
y resuelven los conflictos entre los requerimientos y las necesidades de las áreas
involucradas.
Especificación
La especificación consiste en elaborar un documento que contenga la descripción de
los requerimientos identificados y acordados en las fases anteriores. Este documento
puede incluir la especificación formal de los requerimientos (se puede usar una
plantilla, por ejemplo, de casos de uso), diagramas o gráficos, un modelo matemático
formal, un prototipo o cualquier combinación de las técnicas mencionadas. Este
enfoque se utiliza, comúnmente, en sistemas grandes.
5
Si el sistema es pequeño, la especificación puede consistir en un conjunto de
escenarios de uso.
Validación
En esta fase se realiza una revisión técnica de la especificación del sistema o producto,
con el fin de comprobar aspectos tales como la completitud, correctitud, claridad y
consistencia de los requerimientos, así como la aplicación de los estándares
establecidos. El equipo de revisión está conformado por ingenieros de software,
usuarios y otros participantes
Administración
La administración de los requerimientos es el conjunto de actividades que ayudan al
equipo del proyecto a identificar, controlar y dar seguimiento a los requerimientos y,
especialmente, a los cambios que se introducen durante el desarrollo del proyecto.
3. RESUMEN PRINCIPIOS DE DISEÑO
El diseño de software es la etapa del desarrollo de software que se realiza al finalizar
la etapa de análisis y modelado de los requerimientos, y precede a la etapa de
construcción de la solución (construcción y prueba de código).
El diseño es crucial para la calidad del software y para facilitar su implementación
(codificación) y prueba. Cuando el diseño no se realiza o cuando este no es de buena
calidad, se corre el riesgo de producir un software con errores importantes, difícil de
probar y difícil de mantener.
6
El diseño del software se basa en el modelo de requerimientos, como se muestra a
continuación:
Tabla 1. Modelo de diseño – Modelo de requerimientos
Modelo de diseño
Modelo de requerimientos
Diseño de datos o clases
Elementos basados en clases
Diseño de la arquitectura
Elementos basados en clases
Elementos orientados al flujo
Diseño de la interfaz
Elementos basados en el escenario
Elementos orientados al flujo
Elementos del comportamiento
Diseño en el nivel de componentes
Elementos basados en clases
Elementos orientados al flujo
Elementos del comportamiento
Atributos de la calidad
Cuando se realiza el diseño de un software se deben considerar los siguientes
atributos para asegurar su calidad:
•
Funcionalidad: Conjunto de características y capacidades del programa.
•
Usabilidad: Facilidad de uso por parte de los usuarios. Incluye la estética de
las interfaces con el usuario, la documentación y la consistencia.
7
•
Confiabilidad: Es una medida de la frecuencia y gravedad de las fallas y la
exactitud de los resultados.
•
Rendimiento: Se refiere al tiempo de respuesta y el uso de los recursos
(eficiencia).
•
Mantenibilidad: Es la facilidad del software para realizar cambios y
adaptaciones a nuevos requerimientos.
Principos de diseño
El diseño de software es un proceso iterativo que parte del modelo de requerimientos
para construir el modelo de diseño, como se indica en la tabla número uno. Para
elaborar un buen diseño, los ingenieros de software deben comprender y aplicar los
siguientes principios, para lograr los objetivos del diseño.
•
Abstracción. Consiste en destacar los aspectos relevantes de un objeto o
procedimiento y ocultar los detalles, por ejemplo, concentrarse en los aspectos
funcionales de un componente en vez de su implementación.
•
Arquitectura: Consiste en la organización de los componentes de un programa
o los módulos de un sistema, la forma en que interactúan y los datos que
utilizan.
•
Patrones: Los patrones de diseño describen una estructura que resuelve un
problema típico y que puede reutilizarse en la solución de un problema similar.
•
División de problemas: Consiste en dividir un problemas en partes (problemas
más pequeños) con el fin de reducir el tiempo y esfuerzo requerido para su
implementación.
8
•
Modularidad: Es la producto de la división de problemas. Permite descomponer
el software en varios componentes cuya interacción permite satisfacer uno o
más requerimientos.
•
Ocultamiento de información: La información contenida en un módulo se
oculta para hacerla inaccesible a otros módulos que interactúan con él. Es una
manera de proteger el código y los datos manejados por cada módulo.
•
Independencia funcional: Permite diseñar módulos que resuelven una parte
del problema y que proporcionan una interfaz para realizar sus operaciones, de
tal manera que la modificación de un módulo no afecte el funcionamiento de los
módulos que interactúan con él.
•
Refinamiento: Es un proceso que consiste en ir de lo general (alto nivel) a lo
particular (bajo nivel), de forma gradual, en el proceso de diseño.
•
Rediseño: Es una técnica que consiste en simplificar el diseño de un
componente sin cambiar su función o comportamiento. Se utiliza, por lo general,
para mejorar la eficiencia, eliminar elementos innecesarios y construcciones
inapropiadas, y reducir la duplicidad.
4. CASO SISTEMA DE COMERCIO ELECTRÓNICO
En esta sección se presenta el diagrama de contexto del Sistema de Comercio
Electrónico y la clasificación de sus requisitos en requerimientos funcionales y no
funcionales.
9
4.1
Diagrama de contexto
En el sistema de Comercio electrónico se identifican los siguientes elementos para la
elaboración del diagrama de contexto:
Entidades externas
•
Fabricantes y vendedores.
•
Clientes.
•
Las empresas que realizan los envíos de los productos adquiridos a los clientes.
•
Los emisores de tarjetas y otros medios de pago.
•
Servicio de correo electrónico.
Flujos de datos
•
Información de fabricantes y vendedores.
•
Lista de artículos, existencias y precios.
•
Información de clientes.
•
Órdenes de compra (pedidos de los clientes).
•
Factura de compra.
•
Información de la compra: Nombre del cliente, dirección de envío, artículos
adquiridos, fecha límite de entrega.
•
Ubicación de los productos enviados.
•
Confirmación de entrega al cliente.
•
Datos del pago.
•
Confirmación del pago.
El diagrama de contexto se muestra en la siguiente página.
10
Figura 1. Diagrama de contexto
Emisor tarjeta y
medios de pago
Confirmación del pago
Datos del pago
Datos cliente
Pedido
Fabricante y
vendedores
Clientes
Lista productos
Sistema
Comercio
Electrónico
Orden de compra
Ubicación de productos
Confirmación entrega
Factura de compra
Ubicación de productos
Información compra
Correo
Ubicación de productos
Confirmación entrega
Proveedor correo
electrónico
11
Empresa envío
4.2
Clasificación de requerimientos
En esta sección se presenta la clasificación de los requerimientos en funcionales y no
funcionales del caso Sistema de comercio electrónico.
4.2.1 Requerimientos funcionales
Los requerimientos funcionales del sistema de Comercio Electrónico son los
siguientes:
Catálogos

Administración de vendedores o fabricantes.

Administración de artículos.

Administración de familias de artículos.

Administración de clientes.

Administración de medios de pago.

Administración de emisores de tarjetas y medios de pago.

Administración del inventario.

Administración de usuarios.
Página principal

Productos seleccionados según rango de búsqueda.

Lista de productos complementarios.

Lista de productos suplementarios.

Lista de productos más vendidos.

Lista de productos en oferta.
12
Ventas

Buscar artículos.

Seleccionar artículos y carrito de compras.

Pagar artículos.
Control de entrega

Consultar ruta de traslado y ubicación de artículos de un cliente.

Consultar ruta de traslado y ubicación de artículos por orden de compra
(pedido)
Acceso a la aplicación

Autenticación de usuarios y control de acceso.

Control de accesos inválidos e inactivación de usuario.

Recuperación de contraseña.
4.2.2 Requerimientos no funcionales
Los requerimientos no funcionales del sistema de Comercio Electrónico son los
siguientes:
Características generales

El sistema debe permitir el manejo de múltiples idiomas.

El sistema debe permitir la visualización de ayuda en línea que facilite la
operación y el uso en cada una de las ventanas.

El sistema debe ser auditable.
13
El sistema deberá almacenar en todos sus procesos las pistas de auditoría
pertinentes para determinar quién solicita, quién compra, quién vende, así
como la trazabilidad de la ruta hasta la recepción del artículo por parte del
cliente.
Características técnicas

El sistema debe ser estandarizado.

El sistema debe presentar una interfaz gráfica y amigable.

El sistema debe utilizar una base de datos relacional y debe estar
centralizada.

El sistema debe tener características de accesibilidad (Ej: para personas no
videntes o personas mayores).

El sistema se debe poder utilizar en computadoras personales y dispositivos
móviles (teléfono, tabletas), y se debe poder utilizar, al menos, en los
navegadores IE 11, Chrome y Mozilla).

El sistema debe ser capaz de trabajar con más de cien mil artículos y trabajar
con fabricantes, vendedores y clientes de cualquier país, a través de la red
Internet.
Características de seguridad

El sistema debe incorporar las mejores prácticas con respecto a la seguridad
e integridad de la información.

Uso de captcha para la comprobación de un usuario humano.
14

El sistema debe contar con un mecanismo adicional de seguridad,
configurable por el usuario, tal como reconocimiento facial, huella digital o
tarjeta virtual.
5. CONCLUSIONES Y RECOMENDACIONES
5.1
Conclusiones
La ingeniería de requerimientos es un proceso crítico para el desarrollo, adquisición o
mantenimiento de software.
Una vez que la organización da el visto bueno y obtiene los recursos para iniciar un
proyecto de software, lo primero que se debe hacer es definir el alcance, identificar,
analizar y validar los requisitos. Es decir, hay que definir lo que los clientes y usuarios
necesitan para atender el problema identificado en la etapa inicial.
Si se omiten los pasos para la definición y validación de los requisitos se corre el riesgo
de no lograr los objetivos propuestos (el proyecto fracasa) y provocar pérdidas
financieras, de imagen, de mercado, de incumplimiento, entre otras, para la
organización.
La administración de los requerimientos es esencial en todas las empresas, para
controlar los cambios que se producen durante el desarrollo de software. Un proyecto
que no controla los cambios adecuadamente incrementará sus costos, el tiempo de
entrega y puede afectar la calidad del producto final.
15
El diseño del software es un proceso importante para lograr que el producto que se
desarrolla tenga la calidad requerida por la organización, para satisfacer tanto los
requerimientos funcionales y los no funcionales (eficiencia, seguridad, confiabilidad,
usabilidad y mantenibilidad).
El buen diseño es un factor importante para la reducción de costos de desarrollo y de
mantenimiento del software. La aplicación de los principios de diseño, tales como
modularidad, independencia funcional, división del problemas, entre otros, reducen la
complejidad y facilitan la implementación y las pruebas.
5.2
Recomendaciones
Las organizaciones, especialmente, las empresas que desarrollan software deben
poner atención a las labores de análisis y diseño de sistemas, con el fin de reducir los
costos de desarrollo, en particular el retrabajo causado por una pobre definición de
requerimientos, la ausencia de diseño, o prácticas inadecuadas de diseño de software.
Al planificar el desarrollo de software, se debe asignar el tiempo y los recursos
apropiados a las etapas de análisis de requerimientos y diseño, para evitar errores y
omisiones que impidan alcanzar los objetivos del proyecto o la calidad esperada del
producto.
Las organizaciones que desarrollan internamente o contratan el desarrollo de software
deben asignar los recursos adecuados (usuarios con conocimiento del problema y
tomadores de decisiones) al proyecto para garantiza la mejor definición posible de los
requerimientos, con el fin de asegurar el éxito del proyecto.
16
Las actividades de ingeniería de requerimientos y diseño del sistema deben ser
realizadas por analistas y arquitectos de software con experiencia. Sin embargo, la
participación de analistas y arquitectos sin experiencia también se recomienda bajo la
dirección y supervisión de analistas e ingenieros experimentados, para transferir el
conocimiento.
6. BIBLIOGRAFÍA
Pressman, R. (2010). Ingeniería del software. Un enfoque práctico (7ª ed.). México:
McGraw Hill Educación.
17
Descargar