Caso de Uso: Conjunto de escenarios que tienen una meta de usuario en común, descripción de un proceso fin a fin relativamente largo, que incluye varias etapas o transiciones. Es una manera específica de utilizar el sistema, una historia que describe un uso particular del sistema. Es la imagen de una funcionalidad del sistema desencadenada en respuesta al estímulo de un actor o rol externo.
Diseño Arquitectónico Preliminar
Componentes y Funciones de un Sistema de Telecomunicaciones
Un sistema de telecomunicaciones es un conjunto de hardware y software compatible cuyo fin es comunicar información de un lugar a otro.
Componentes de un sistema de telecomunicaciones:
- Computadora para procesar información.
- Terminales u otros dispositivos de entrada/salida que envían o reciben datos.
- Canales de comunicaciones: por donde viaja el mensaje.
- Proveedores de comunicaciones: módems, hubs, controladores y procesadores frontales.
- Software de comunicación.
Funciones de un sistema de telecomunicaciones:
- Transmite información.
- Establece la interfaz entre emisor y receptor.
- Verifica que el mensaje correcto llegue al destino correcto.
- Verifica errores.
Administración de Datos, Telecomunicaciones y Redes
Redes de Comunicaciones
Hay varias formas de clasificar las redes: por su forma o topología, por su alcance geográfico y por el tipo de servicios que prestan. Es un conjunto de medios técnicos que permiten la comunicación a distancia entre equipos autónomos. Normalmente se trata de transmitir datos, audio y vídeo por ondas electromagnéticas a través de diversos medios (aire, vacío, cable de cobre, fibra óptica, etc.). La información se puede transmitir de forma analógica, digital o mixta, pero en cualquier caso las conversiones, si las hay, siempre se realizan de forma transparente al usuario, el cual maneja la información de forma analógica exclusivamente. Las redes más habituales son las de PC, teléfono, transmisión de audio (sistemas de megafonía o radio ambiental) y transmisión de vídeo (TV o vídeo vigilancia). La capacidad de transmisión indica el número de bits por segundo que se pueden transmitir a través de una conexión (transmisión o ancho de banda).
Negociación y Contratos de Software
¿Qué es un contrato de software?
El aumento espectacular de las nuevas tecnologías ha hecho de los contratos de software una de las formas de contratación más habituales en las relaciones comerciales, tanto a nivel nacional como internacional. En este tipo de contratos, el propietario del software (Licenciante) concede el derecho de uso a una persona o empresa (Licenciatario) a cambio de una remuneración económica. Es importante destacar que, al igual que en otros contratos de Licencia (fabricación, marca, etc.), la concesión de una licencia de uso no conlleva la cesión de la propiedad sobre el software. El titular o propietario del software continuará siendo el Licenciante.
Cabe distinguir, mayoritariamente, dos tipos de contratos de software:
- Contrato de Licencia de Software: En este contrato, el propietario de los derechos de uso de un software (Licenciante) autoriza a un tercero (Licenciatario) a utilizarlos como usuario final, a cambio de un precio. Normalmente son contratos hechos desde la perspectiva del Licenciante en el que se incluyen unas condiciones generales, las cuales el Licenciatario tiene que aceptar y apenas puede negociar con el licenciante, salvo que se realicen adaptaciones a su medida, lo cual puede ser habitual cuando el contrato se realiza para una empresa que necesita una aplicación o uso concreto.
- Contrato de Distribución de Software: En este contrato, el propietario de un software (Licenciante) cede de forma exclusiva para un territorio determinado (normalmente una zona geográfica o país concreto), los derechos de explotación del software a un tercero (Distribuidor) que a su vez los vende a los usuarios finales (Licenciatarios). Como contraprestación, el Licenciante recibe una cantidad inicial por la cesión de los derechos y regalías sobre cada una de las licencias de software vendidas por el Distribuidor en el territorio asignado. Es la forma más habitual de comercialización de software en mercados internacionales.
Remuneración en Contratos de Software
La Remuneración es el precio que paga el licenciatario por el uso del software. Habitualmente la contraprestación por la licencia de uso será única o anual y dicho pago se realizará en el momento de la compra del software. Normalmente en los Contratos de Licencia el precio está cerrado en el contrato, es decir, que no es negociable, salvo que se realicen adaptaciones a medida del usuario. En el Contrato de Distribución, el Licenciante recibe una cantidad inicial por la cesión de los derechos y regalías sobre cada una de las licencias de software vendidas por el Distribuidor en el territorio asignado. Ambos conceptos son negociables en función del potencial del mercado (número de posibles Licenciatarios) en el territorio que se ha asignado de forma exclusiva al distribuidor.
Garantías en Contratos de Software
En esta cláusula puede establecerse una garantía por parte del Licenciante en relación con el buen funcionamiento del software, limitando a su vez su responsabilidad por posibles daños que pudieran derivarse de la utilización del software. La extensión de la garantía normalmente se limita para el caso que el cliente o Licenciatario, o un tercero bajo sus indicaciones, modifique el software. El Licenciante no garantizará el buen funcionamiento del software para el caso de que un tercero o alguien bajo sus indicaciones, modifique el programa.
Gestión de Requerimientos
El área de IT o TI de una organización suele ser el pulmón que inyecta vida a las otras áreas, que soporta un flujo normal de operaciones, que demanda innovación, evolución y llevar el paso del crecimiento de las compañías. Cuenta con la responsabilidad delegada en proyectos y procesos de TI dentro de las organizaciones. La gestión de requerimientos es la manera más apropiada para comprender las necesidades tecnológicas u operativas de una organización y llevarlas a un resultado óptimo que garantice su uso y aprehensión favorable dentro de la compañía. Comprenden, entre otras actividades:
- Análisis de Necesidades.
- Confirmación de la Viabilidad del Proyecto.
- Llegar a una Negociación de Solución Razonable.
- Validar las Especificaciones.
- Llevar los requisitos hasta un sistema operacional.
- Los analistas son expertos certificados en metodologías avanzadas de gestión de proyectos que logran describir claramente la expectativa final para que la solución resuelva las necesidades del negocio.
La gestión de requerimientos es el proceso encargado de la identificación, asignación, verificación y modificación de los requisitos a lo largo del ciclo de vida del software. Es considerada como uno de los procesos más importantes dentro de la Ingeniería de Requisitos. Con una buena Gestión se logra crear software de buen rendimiento que satisface las necesidades del usuario. La Gestión es un componente vital en el desarrollo de un proyecto de software ya que es una de las actividades de la Ingeniería de Requisitos más importantes. Los requisitos se inician cuando empieza un proyecto en las etapas de análisis y especificación de requisitos; posteriormente, dichos requisitos en el ciclo de vida de un proyecto pueden ser modificados, por lo que se establece el concepto de Gestión de Requisitos, que es el tratamiento y control de las actualizaciones y cambios a los mismos. Debido a que un proyecto informático es susceptible de cambios, habría que proceder a su actualización o a la incorporación de nuevas funcionalidades o eliminar otras; esto obliga a mantener controlado y documentado el producto. Los cambios de requisitos deben ser gestionados para asegurar que la calidad de los mismos se mantenga; los problemas suscitados por los cambios de requisitos podrían incurrir en altos costos, siendo el requisito factor crítico de riesgo. Más formalmente, el Manejo de Requisitos es una forma sistemática de descubrir, organizar y documentar los requisitos del sistema. Además, es el proceso que establece y mantiene un consenso entre el cliente y el grupo del proyecto en el cambio de los requisitos del sistema. La Gestión de Requisitos incluye, entre otras actividades:
- Técnicas para Descubrimiento/ Recogida de Requisitos
- Recoger las peticiones del usuario y determinar las verdaderas necesidades de éste.
- Técnicas de Análisis
- Especificación y verificación
- Manejo de Requisitos
Estándares y Normas ISO en la Gestión de Requisitos
Existen numerosas metodologías, estándares y normas en el ámbito de la gestión de requisitos. Algunas de las normas más conocidas son: ISO 29148, ISO 15288, ISO 24766.
ISO 29148
Systems and software engineering – Life cycle processes – Requirements engineering: Contiene destrezas para los procesos y productos relacionados con la ingeniería de requisitos para los sistemas y productos de software y servicios a lo largo del ciclo de vida. Define la construcción de un buen requisito, proporciona atributos y características de los requisitos, y analiza la aplicación iterativa y recursiva de los procesos de requisitos a lo largo del ciclo de vida. ISO 29148 proporciona una orientación adicional en la aplicación de los procesos de requisitos de ingeniería y gestión de las actividades de los requisitos relacionados en la norma ISO 15288. Además, define los elementos de información aplicables a la ingeniería de requisitos y su contenido.
ISO 15288
SSE-System life cycle processes: Establece un marco común de procesos para describir el ciclo de vida de la Ingeniería de Sistemas. Define un conjunto de procesos y la terminología asociada desde un punto de vista de la ingeniería. Estos procesos se pueden aplicar en cualquier nivel de la estructura jerárquica de un sistema. Algunos conjuntos seleccionados de estos procesos se pueden aplicar en todo el ciclo de vida de la gestión y la realización de las etapas del ciclo de vida de un sistema. Esto se logra a través de la participación de todas las partes interesadas, con el objetivo de lograr la satisfacción del cliente.
ISO 24766
Information technology – Systems and software engineering – Guide for requirements tool capabilities: La ingeniería de requisitos es un proceso esencial de los sistemas y los ciclos de vida del software de ingeniería. La ingeniería de requisitos se ha establecido como un proceso del ciclo de vida estándar ISO tanto en la norma ISO 15288 como en la norma ISO IEC 12207. Esta norma proporciona una orientación sobre las capacidades deseables que debería aportar una herramienta de Ingeniería de Requisitos. Normalmente la norma ISO 24766 es utilizada como complemento de la norma ISO 14102, “Information technology – Guideline for the evaluation and selection of CASE tools”.
Validación de Requerimientos
Es muy importante asegurar la validez de los requisitos previamente a comenzar un desarrollo de software. Para ello debe hacerse una comprobación de la correspondencia entre las descripciones iniciales y si el modelo es capaz de responder al planteamiento inicial. Para llevar a cabo esto, se suele realizar comprobando que el modelo obtenido responde de la misma forma deseada que la que el cliente pide por un lado, y por otro a la inversa si otras respuestas del modelo convencen al cliente. En algunos casos será necesario construir prototipos con una funcionalidad similar muy reducida para que el cliente se haga una idea aproximada del resultado. La validación de los requisitos, obviamente tiene como objetivo comprobar que estos son correctos. Esta fase debe realizarse o de lo contrario se corre el riesgo de implementar una mala especificación, con el costo que eso conlleva. Los parámetros a validar en los requisitos son:
- Validez: No basta con preguntar a un usuario, todos los potenciales usuarios pueden tener puntos de vista distintos y necesitar otros requisitos.
- Consistencia: No debe haber contradicciones entre unos requisitos y otros.
- Completitud: Deben estar todos los requisitos. Esto es imposible en un desarrollo iterativo, pero, al menos, deben estar disponibles todos los requisitos de la iteración en curso.
- Realismo: Se pueden implementar con la tecnología actual.
- Verificabilidad: Tiene que existir alguna forma de comprobar que cada requisito se cumple.
Las principales técnicas de validación de requisitos por parte de clientes y usuarios que se proponen para su uso en el área de Ingeniería de Requisitos son: Prototipado de interfaz de usuario y Recorrido de casos de uso.
Prototipado de Interfaz de Usuario
El prototipado de interfaz de usuario es una técnica de representación aproximada de la interfaz de usuario de un sistema de software que permite a clientes y usuarios entender más fácilmente la propuesta de los ingenieros de requisitos para resolver sus problemas de negocio. Los dos tipos principales de prototipos de interfaz de usuario son:
- Desechables: Se utilizan sólo para la validación de los requisitos y posteriormente se desechan. Pueden ser prototipos en papel o en software.
- Evolutivos: Una vez utilizados para la validación de los requisitos, se mejora su calidad y se convierten progresivamente en el producto final.
Recorrido de Casos de Uso
El recorrido o walkthrough es una técnica de revisión de productos tradicionalmente asociada a la inspección de código fuente, pero en requisitos su principal objetivo es encontrar conflictos en el producto que se revisa, de forma que puedan plantearse alternativas y los participantes aumenten su conocimiento del producto en cuestión.
Durante las sesiones de recorrido, el autor del producto recorre el producto a revisar en detalle, permitiendo que los participantes pongan de manifiesto sus opiniones sobre el mismo.
Aplicado a la ERS, el recorrido permite a clientes y usuarios comprender el significado de cada requisito y manifestar su acuerdo o desacuerdo con los mismos. Además, aplicando esta técnica a los casos de uso se puede validar de manera natural la secuencia de pasos de un caso de uso al recorrerlos por todos los participantes.
Tareas Principales de la Gestión de Requisitos
Hay que planear algunas actividades, dentro de las que se pueden mencionar las siguientes: la identificación de los requisitos, el proceso de gestión de los cambios, las políticas de trazabilidad, la cantidad de información sobre las relaciones entre los requisitos que se mantiene, entre otras.
Actividades y Descripción
- Recolección y documentación de requisitos: Es una actividad de comunicación iterativa entre clientes, gerentes y practicantes, para descubrir, definir, refinar y registrar una representación precisa de los requisitos del producto. Varios métodos son utilizados para la recolección de requisitos. Algunos análisis iniciales como es la agrupación, categorización, priorización son desarrollados durante esta actividad.
- Documentación: Después de que los requisitos han sido recolectados, hay que analizarlos a detalle y documentarlos en una especificación de requisitos. El resultado de la especificación de requisitos y de cualquier especificación de requisitos de componentes hardware/software derivado sirve como registro de convenio con el cliente y compromiso con el proveedor. Estas especificaciones son rastreadas utilizando una matriz de trazabilidad de requerimientos y son sujetos a verificación y gestión de cambio a través del ciclo de vida del producto.
- Verificación: Una vez que la especificación de requisitos ha sido desarrollada, son verificados. Es un proceso para asegurar que la especificación de requisito del producto es una representación exacta de las necesidades del cliente. Este proceso también asegura que los requisitos sean trazados y verificados a través de varias fases del ciclo de vida; particularmente en el diseño, implementación y pruebas. Además, todos estos requerimientos deben ser trazados al diseño, implementación y pruebas para asegurarse que los requerimientos han sido satisfechos.
- Gestión de Cambios: Es un proceso formal para identificar, evaluar, trazar y reportar cambios propuestos y aprobados a la especificación del producto. Como el proyecto va evolucionando, los requerimientos pueden cambiar o expandirse para ajustar algunas modificaciones en el alcance o diseño del proyecto. Un proceso proporciona un rastreo completo y preciso de todos los cambios que son pertinentes al proyecto. El proceso del ciclo de vida debe ser flexible y adaptable para reunir las necesidades del proyecto. Las características del alcance e implementación del proceso del ciclo de vida de la Gestión de Requisitos en un proyecto, variará dependiendo de algunos factores claves como: Tamaño y complejidad del proyecto, Experiencia del personal del proyecto, Experiencia de clientes del proyecto, Dominio de la aplicación, El propósito y uso de esta aplicación.
reds de communic