Nombre: Tipos
Contextualización
¿Cuál es la importancia de los requisitos de software?
Como hemos mencionado en las sesiones anteriores, los requisitos son la etapa más importante del ciclo de vida, ya que es de donde vamos a partir para desarrollar el producto, si no se tiene un buen análisis de requerimiento, el daño no solo es a nivel de desarrollo, si no afecta a todo el proyecto como los costos, tiempos, funciones innecesarias o inadecuadas, y la toma de decisiones incorrecta.
Durante esta sesión haremos un enfoque principal a los requerimientos y las funciones que implican, como las validaciones, captura, interpretación, tipos de requerimientos, entre otros.
Introducción al Tema
¿Cómo iniciar un desarrollo de software?
Para crear un desarrollo de software, necesitamos saber detalles como dónde se va a operar el producto, la cantidad de usuarios que va a tener, si ya existe un producto con las mismas funciones o que de alguna manera interactúan con nuestra operación, las personas que lo van a administrar, etc., dependiendo de eso podemos clasificar el producto final.
Actualmente, existen productos que se pueden comprar en una tienda departamental y pertenecen al equipo de antivirus, también existen otros productos que contienen la paquetería de oficina para nuestro equipo personal, y no olvidemos todas las aplicaciones para dispositivos móviles , las cuales tienen funciones diferentes, pero operan sobre plataformas similares; para estos productos existen clasificaciones y algunos procesos que los diferencian entre sí, los cuales veremos a través de esta sesión.
Explicación
Tipos
¿Cuáles son los tipos de software que existen?
El software es la parte intangible e interna de un sistema de cómputo, cuando se inició su desarrollo en los primeros equipos de cómputo era complicado concluir una tarea y además que muchas de ellas fueran ejecutadas de forma secuencial; en la actualidad, existen varias formas de distribuir el software dependiendo de las tareas para las cuales ha sido desarrollado; por ejemplo, cuando adquirimos un programa para visualizar videos de HD en nuestro equipo de cómputo , también podemos adquirir un dispositivo USB capaz de convertir nuestra consola de videojuego en un reproductor de videos.
Existen dos grandes clasificaciones del software que son:
Productos genéricos: son los productos desarrollados para el público en general, cuentan con una lista precargada de requisitos, además de tener versiones para distintos sistemas operativos, algunos de ellos contiene guías personalizadas de uso. Algunos ejemplos pueden ser los antivirus, paquetería de oficina, procesadores de texto, reproductores de diseño, editores de fotografía, entre otros.
Productos personalizados: Son los productos desarrollados para algún cliente en específico, se caracteriza por ser software hecho a la medida y debido ha esto es complicado distribuirlo al público en general. Algunos ejemplos pueden ser los carritos de compras, páginas web para empresas, sistemas de contabilidad, entre otros.
Algunos productos que existen en el mercado se clasifican en productos genéricos, ya que su distribución es abierta pero sus funciones son enfocadas a procesos particulares de la empresa, como los sistemas ERP, sistemas de contabilidad, software para centros de cómputo, entre otros.
Requisitos
Los requisitos o requerimientos en el sistema son documentados en base a las operaciones principales que tendrá el sistema, ya que son la parte principal y más importante en la que vamos a iniciar el proyecto, como mencionamos anteriormente, hay que poner principal atención a su ejecución y análisis.
Figura 1.Sommerville, I. (2005).Ingeniería de software [Modelo en espiral de los procesos de la ingeniería de requerimientos.] (p.131). Madrid: Pearson Educación
Concepto
Según Ian Sommerville, tenemos como requerimiento:
“Los requerimientos para un sistema son la descripción de los servicios proporcionados por el sistema y sus restricciones operativas. El proceso de descubrir, analizar, documentar y verificar estos servicios y restricciones se denomina ingeniería de requerimientos (RE). El termino requerimiento no se utiliza de una forma constante en la industria de software, un requerimiento es simplemente una declaración abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restricción de éste.” (Sommerville, 2005, p.108).
Características
Preciso: Un requerimiento debe ser preciso, ya que si hay divagaciones en su definición, es probable que se confunda con sus objetivos.
Comprobable: Ya que los requerimientos son basados en procesos, debemos comprobar en algún momento que el requerimiento cumple con la operación planteada.
Completo: Algunas veces un requerimiento se puede convertir en módulos y tener actividades que derriben de él, en estos casos puede ser que dividamos el requerimiento o analicemos la solución.
Documentado: Es la documentación principal y se involucra en diferentes etapas el proyecto e incluso de forma legal, es por eso que los requerimientos deben de realizarse en común acuerdo con el cliente para evitar complicaciones.
Tipos de requisitos.
Los requerimientos de software se dividen base a su nivel de descripción, los cuales son:
Requerimientos del usuario: son los requerimientos de alto nivel, se describen los servicios que el sistema debe realizar y las restricciones que tendrá.
Requerimientos del sistema: son los requerimientos que describen las funciones operativas del sistema.
Asimismo, los requerimientos del sistema se subdividen en:
Requerimientos funcionales: describen los servicios que brindara el sistema y su comportamiento en situaciones particulares.
Requerimientos no funcionales: describen las restricciones que tiene el sistema, por ejemplo, tiempo, desarrollo, implementación, entre otros. Requerimientos del dominio: describen las características y
Figura 2.Sommerville, I. (2005).Ingeniería de software [Tipos de requerimientos no funcionales.] (p.112). Madrid: Pearson Educación
Captura
Algunas de las técnicas más comunes de requisitos son:
Entrevistas: En la entrevista se obtienen información de más de una persona (cliente final), para conocer a fondo cada uno de los procesos del sistema.
Brainstorming: conocido también como “tormenta de ideas”, genera la participación entre varios integrantes del equipo tanto del cliente final como del equipo de desarrollo.
Análisis
Una vez que obtuvimos los requerimientos, se realiza un análisis para ver que la información sea la que necesitamos. Las etapas fundamentales son:
Reconocer el problema: reconoce las necesidades del sistema o del cliente final, algunos analistas crean mesas de debate y lluvia de ideas para que las personas del equipo den una percepción diferente acerca de estas.
Evaluación y síntesis: en esta etapa se crea el flujo y la estructura de la información, así como las restricciones y beneficios que tendrá el desarrollo del sistema.
Modelización: una vez definido el flujo de trabajo, se crean los diagramas finales de proceso de la parte operativa y funcional.
Especificación: en esta etapa se proporciona una representación del software para que posteriormente se defina si se ha llegado a comprender o hay que regresar a la etapa anterior.
Revisión: una vez concluidas las etapas anteriores se brinda la documentación al cliente para su revisión, esto sirve para identificar si el cliente tiene observaciones o modificaciones previas al desarrollo.
Figura 3.Sommerville, I. (2005).Ingeniería de software [El proceso de obtención y análisis de requerimientos.] (p.134). Madrid: Pearson Educación
Especificación
En la especificación se define el comportamiento que se desea del sistema, tanto de calidad, operatividad, practicidad, entre otros; sin mostrar detalles técnicos.
Validación
En la validación se aprueba el modelo y se certifica que es óptimo para cubrir las necesidades del cliente, esta validación no solo se aplica a versiones finales sino de igual manera a modelos previos.
Conclusión
¿Cómo identificar el tipo de software?
Existen diferentes tipos de software en el mercado , algunos son desarrollados para fines específicos y otros son para funciones generales, por ejemplo , algunos productos a la medida sirven para llevar la contabilidad de un negocio o una empresa, realizar cálculos astronómicos , realizar mediciones médicas, algunos productos genéricos son antivirus, productos de actualización del sistema operativo, reproductores de música, etc.
Para cada desarrollo es importante que los requerimientos sean lo más claro posibles y su definición depende del comportamiento y tamaño que va a tener el producto final.
El producto o sistema final tendrá una mejor calidad si existe la participación de ambos equipos (cliente y proveedor) para su desarrollo, ya que cada uno tiene diferente percepción sobre su funcionalidad y esto es lo que lo hace un producto óptimo.
Especificación de requerimientos de usabilidad.
• Fagalde, P. (2011).Artefactos de especificación de requerimientos de
usabilidad. (Tesis de ingeniería inédita). Facultad de Ingeniería.
Universidad de Buenos Aires, Sitio Web:
http://materias.fi.uba.ar/7500/fagalde-tesisingenieriainformatica.pdf
Ingeniería de requerimientos.
• Chávez, M. (2001). La ingeniería de requerimientos y su importancia en el desarrollo de proyectos de software. InterSedes, 6(10). Sitio Web:
Actividad de Aprendizaje
Instrucciones:
Para que reafirmes los conocimientos que has adquirido en esta sesión, tendrás que realizar una actividad la cual consiste en realizar un mapa cognitivo de telaraña donde detalles el proceso de obtención de requerimientos, su interacción y secuencialidad entre ellos.
Deberás guardarlo en formato JPG, para subirlo a la plataforma de la asignatura. Es muy importante que tengas claros los conceptos de esta sesión, ya que más adelante harás uso de ellos de manera práctica.
Para esta actividad se tomará en cuenta lo siguiente: Título
Datos personales
Mapa cognitivo de telaraña Ortografía y redacción Bibliografía
• Pressman, R. (2002). Ingeniería de software .Un enfoque práctico. Madrid: McGraw-Hill.
• Laudon, K. & Laudon, J. (2004). Sistemas de información gerencial: administración de la empresa. México: Pearson Educación.
• Sommerville, I. & Alfonso, M. (2005). Ingeniería del software Madrid: Pearson Educación.