¿Cuál es el proceso de análisis de requisitos?
La tarea principal de la fase de análisis de la demanda de la base de datos es realizar una investigación detallada de los objetos (organizaciones, departamentos, empresas) que se procesarán en el mundo real. Al comprender el sistema original, el teléfono móvil admite y procesa los datos básicos del nuevo sistema, determinando así las funciones del nuevo sistema.
El contenido principal del informe de análisis del sistema: 1. Descripción general del sistema, objetivos del sistema, alcance, antecedentes, historia y situación actual; 2. Principios y tecnologías del sistema, mejoras al sistema original 3. Descripción estructural de los subsistemas en el campo general del sistema; resumen, Ingeniería del sistema y división de etapas de diseño; 6. Esquema del sistema y viabilidad técnica, económica, funcional y operativa.
El proceso de análisis de requisitos de software
El trabajo del análisis de requisitos de software es describir las funciones y el rendimiento del software, determinar las limitaciones del diseño del software y los detalles de la interfaz. entre el software y otros elementos del sistema, y definir otros requisitos válidos del software. Al analizar los requisitos, es importante tener en cuenta que toda la información y los requisitos provienen de la perspectiva del usuario. Intente evitar la imaginación subjetiva de los analistas e intente enviar el progreso del análisis a los usuarios. Permita que los usuarios inspeccionen y evalúen sin guía directa. Para lograr la precisión del análisis de la demanda. A través del análisis de requisitos, los analistas refinan gradualmente los requisitos del software, describen los dominios de datos que procesará el software y proporcionan una representación funcional y de datos que se puede transformar en diseño de datos, diseño de estructura y diseño de procesos para el desarrollo de software. Una vez completado el software, las especificaciones del software también proporcionarán una base para evaluar la calidad del software.
Análisis detallado del análisis de requisitos
En términos generales, el análisis de requisitos incluye una serie de proyectos de requisitos como la adquisición, el análisis, la especificación, el cambio, la verificación y la gestión de requisitos. El análisis de requisitos en un sentido estricto se refiere al proceso de análisis y definición de requisitos. El análisis de requisitos consiste en analizar cuáles son las necesidades de los usuarios de software. Si se invierte mucha mano de obra, recursos materiales, recursos financieros y tiempo, pero nadie quiere que se desarrolle el software, entonces toda la inversión será en vano. Si pones mucho esfuerzo en desarrollar un software, pero al final no cumple con los requisitos del usuario y tienes que volver a desarrollarlo, este tipo de reelaboración es desgarrador (creo que todos pueden experimentarlo). Por ejemplo, un usuario necesita un software de Linux, pero usted ignora el entorno operativo del software en las primeras etapas del desarrollo del software, se olvida de hacerle esta pregunta al usuario y asume que está desarrollando software para Windows. Cuando trabajas duro para desarrollarlo y enviarlo a los usuarios, descubres que algo anda mal. En ese momento, querías llorar y deseabas poder morir con un trozo de tofu. La razón por la que el análisis de requisitos es importante es que juega un papel decisivo, direccional y estratégico, y juega un papel importante en el proceso de desarrollo de software. Todos deben prestar suficiente atención al análisis de necesidades. En el desarrollo de sistemas de software a gran escala, su papel es mucho mayor que el de la programación. El trabajo en la etapa de análisis de requisitos se puede dividir en cuatro aspectos: identificación, análisis y síntesis del problema, formulación y evaluación de especificaciones. Identificación de problemas: consiste en comprender el software desde la perspectiva del sistema, determinar los requisitos integrales para el sistema desarrollado y proponer las condiciones de implementación de estos requisitos y los estándares que deben cumplir. Estos requisitos incluyen: requisitos funcionales (qué hacer), requisitos de rendimiento (qué indicadores lograr), requisitos ambientales (como modelo, sistema operativo, etc.), requisitos de confiabilidad (probabilidad de falla), requisitos de seguridad, requisitos de interfaz de usuario y Requisitos de uso de recursos (memoria y CPU necesarios para ejecutar el software, etc.). ), consumo de costos de software y requisitos del cronograma de desarrollo, así como estimaciones de los objetivos que el sistema puede alcanzar en el futuro. Análisis y síntesis: refine gradualmente todas las funciones del software, descubra la relación entre los elementos del sistema, las características de la interfaz y las restricciones de diseño, analice si cumple con los requisitos, elimine las partes irrazonables y agregue las partes necesarias. Finalmente, se sintetiza la solución del sistema y se proporciona un modelo lógico detallado del sistema a desarrollar (un modelo de qué hacer). Desarrollar especificaciones: es decir, preparar documentos. Los documentos que describen los requisitos se denominan especificaciones de requisitos de software. Tenga en cuenta que el resultado de la fase de análisis de requisitos es la especificación de requisitos, que se envía a la siguiente fase. Revisión: evalúe la funcionalidad y otros requisitos para verificar que sean correctos, completos y claros. Sólo una vez superada la revisión se podrá llevar a cabo la siguiente fase de trabajo; de lo contrario, se realizará nuevamente el análisis de necesidades. Hay muchos métodos de análisis de requisitos, pero aquí sólo se enfatiza el método de creación de prototipos.
Otros métodos, como los métodos estructurados y el análisis dinámico, nunca se han utilizado y no se analizarán aquí. La creación de prototipos es importante. Un prototipo es una versión inicial ejecutable del software que implementa algunas o todas las funciones del sistema de destino. El método de creación de prototipos consiste en construir un sistema aproximado lo más rápido posible para lograr algunas o todas las funciones del sistema objetivo. Sin embargo, el sistema puede tener deficiencias en cuanto a confiabilidad, facilidad de uso u otros aspectos. El propósito de construir un sistema de este tipo es examinar la viabilidad de un determinado aspecto, como la viabilidad del algoritmo, la viabilidad de la tecnología o si satisface las necesidades del usuario. Por ejemplo, para ver si cumple con los requisitos del usuario, puede usar algunas herramientas de software para construir rápidamente un prototipo de sistema, que es solo una interfaz, y luego escuchar las opiniones de los usuarios para mejorar el prototipo. Los futuros sistemas de destino se desarrollarán sobre la base del sistema prototipo. Hay tres tipos principales de prototipos: exploratorios, experimentales y evolutivos. Exploratorio: el propósito es descubrir los requisitos del sistema objetivo, determinar las características deseadas y explorar la viabilidad de varias soluciones. Tipo experimental: se utiliza para comprobar si el plan es adecuado y si las especificaciones son confiables antes del desarrollo e implementación a gran escala. Tipo evolutivo: el propósito no es mejorar la especificación, sino hacer que el sistema sea fácil de cambiar y evolucionar gradualmente el prototipo hasta el sistema final en el proceso de mejora del prototipo. Hay dos estrategias diferentes cuando se utiliza el método prototipo: la estrategia de soltar y la estrategia de agregar. Estrategia de abandono: primero cree un sistema modelo con funciones simples y requisitos de baja calidad, y luego modifíquelo repetidamente para formar una mejor idea, diseñando así un sistema final más completo, preciso, consistente y confiable. Una vez construido el sistema, se abandonó el sistema modelo original. Los tipos exploratorios y experimentales entran dentro de esta estrategia. Estrategia adicional: primero construya uno con funciones simples y requisitos de baja calidad. ......
¿Qué se debe incluir en el análisis de necesidades?
El análisis de requisitos se refiere al complejo proceso de comprender las necesidades del usuario, llegar a acuerdos con los clientes sobre las funciones del software, estimar los riesgos del software y evaluar los costos del proyecto y, finalmente, formar un plan de desarrollo. En este proceso, los usuarios ocupan de hecho una posición dominante, y los ingenieros de análisis de requisitos y los gerentes de proyectos son responsables de clasificar las necesidades de los usuarios y sentar las bases para el diseño de software posterior. La etapa de análisis de requisitos incluye:
1. Requisitos comerciales: reflejan los requisitos objetivos de alto nivel de la organización o los clientes para sistemas y productos, generalmente explicados en los documentos de definición y alcance del proyecto.
2. Requisitos del usuario: describe las tareas que los usuarios deben completar al utilizar el producto, que se explican en casos de uso o guiones de escenarios.
3. Requisitos funcionales: define las funciones de software que los desarrolladores deben implementar para permitir a los usuarios completar tareas utilizando el sistema para satisfacer las necesidades comerciales.
4. Requisitos no funcionales: describen los comportamientos y operaciones que el sistema presenta a los usuarios, incluidos los estándares, especificaciones y restricciones que el producto debe cumplir, y los detalles específicos y las limitaciones estructurales del funcionamiento. interfaz.
5. Informe de análisis de requisitos: los requisitos funcionales descritos en el informe describen completamente el comportamiento externo que debe tener el sistema de software. El "Informe de análisis de requisitos" juega un papel importante en el desarrollo, las pruebas, el control de calidad, la gestión de proyectos y las funciones relacionadas del proyecto.
¿Cuáles son los pasos principales en el análisis de requisitos de pruebas de software?
La prueba de software es la revisión final de las especificaciones de requisitos del software, las especificaciones de diseño y la codificación antes de que el software se entregue a los usuarios para su uso o puesta en funcionamiento. Es un paso clave en el aseguramiento de la calidad del software. La prueba de software es el proceso de ejecutar un programa para encontrar errores. Las pruebas de software abarcan dos etapas en el ciclo de vida del software: por lo general, después de escribir cada módulo, es necesario probarlo (lo que se denomina prueba unitaria). La codificación y las pruebas unitarias pertenecen a la misma fase del ciclo de vida del software. Después de esta etapa, el sistema de software debe someterse a pruebas exhaustivas, como pruebas de integración, pruebas del sistema, pruebas de rendimiento y pruebas de configuración, que es otra etapa independiente del ciclo de vida del software, a saber, la etapa de prueba. El propósito de las pruebas de software: 1. El objetivo final de las pruebas es evitar errores y garantizar que la aplicación pueda ejecutarse de manera normal y eficiente. 2. Un buen caso de prueba es descubrir errores que no se han descubierto hasta ahora. 3. Una prueba exitosa es descubrir errores que no se han descubierto; Pruebas descubiertas hasta ahora; 4. Un buen ingeniero de pruebas no solo debe encontrar problemas, sino también ayudar a los desarrolladores a analizarlos. Principios de prueba de software: 1.
Los desarrolladores de software deberían tener como lema "probar el software lo más rápido posible y de forma continua". La práctica ha demostrado que las pruebas unitarias pueden detectar problemas lo antes posible y reducir la cantidad de errores en pruebas posteriores. Junit y Jtest se pueden utilizar para ayudar en las pruebas unitarias. 2. El caso de prueba debe constar de tres partes: datos de entrada de la prueba, pasos de ejecución de la prueba y los correspondientes resultados de salida esperados. 3. Los programadores deben evitar comprobar sus propios programas. (Se refiere a la fase posterior de prueba del sistema, excluyendo las pruebas unitarias) 4. Los casos de prueba deben diseñarse para cubrir todos los caminos posibles. Al diseñar casos de prueba, se deben incluir condiciones de entrada razonables y condiciones de entrada no razonables. Las condiciones de entrada irrazonables se refieren a condiciones de entrada críticas y anormales que pueden causar problemas. 5. Preste total atención al fenómeno de agrupamiento en la prueba. La experiencia muestra que la cantidad de errores que quedan en un programa después de la prueba es directamente proporcional a la cantidad de errores encontrados en el programa o la tasa de detección de errores. Deberíamos centrarnos en probar los segmentos del programa donde se acumulan los errores. 6. Implementar estrictamente el plan de pruebas y eliminar la aleatoriedad en las pruebas. El plan de prueba debe incluir: funciones, entrada y salida, contenido de la prueba, cronograma de cada prueba, requisitos de recursos, datos de prueba, herramientas de prueba, selección de casos de prueba, métodos y procesos de control de prueba, configuración del sistema, reglas de seguimiento, reglas de depuración, pruebas de regresión. disposiciones y criterios de evaluación. 7. Se debe realizar una inspección exhaustiva de cada resultado de la prueba. 8. Guarde adecuadamente los planes de prueba, los casos de prueba, las estadísticas de errores y los informes de análisis final para facilitar el mantenimiento. Objetos de las pruebas de software: las pruebas de software no son simplemente lo mismo que las pruebas de programas. Las pruebas de software deben abarcar todo el proceso de definición y desarrollo del software. Por lo tanto, los documentos obtenidos del análisis de requisitos, el diseño del esquema, el diseño detallado y la codificación del programa, incluidas las especificaciones de requisitos, las especificaciones del diseño del esquema, las especificaciones de diseño detalladas y los programas fuente, deben ser todos objetos de prueba (revisión) del software. En la verificación correcta de la comprensión y expresión de requisitos, diseño y expresión, implementación y operación, cualquier problema en cualquier enlace puede aparecer en las pruebas de software. Espero que les sea de utilidad.
Cómo analizar los requisitos del software
1. Concepto
La definición de requisitos incluye tanto desde la perspectiva del usuario (el comportamiento externo del sistema) como desde la perspectiva del usuario. La perspectiva del desarrollador (algunas características internas) explica los requisitos.
La cuestión clave es redactar los documentos de requisitos. Una vez fui testigo del reemplazo de todos los desarrolladores en un proyecto y el cliente se vio obligado a sentarse con un nuevo analista de requisitos. El analista de sistemas dijo: "Queremos hablar con usted sobre sus necesidades". La primera reacción del cliente fue: "Le he dicho a su predecesor todos mis requisitos y ahora lo único que quiero es programar un sistema para mí".
Personas que dicen saberlo todo
De hecho, los requisitos para las UGG no están documentados, por lo que los nuevos analistas tienen que empezar desde cero. Entonces, si solo tiene un montón de correos electrónicos, notas de reuniones o algunas conversaciones fragmentadas, está seguro de haber comprendido las necesidades de sus usuarios. Esto es un completo engaño.
Otra definición de requisitos es que un requisito es "una descripción de lo que un usuario necesita y puede desencadenar el desarrollo de un programa o sistema". Algunos expertos en análisis de requisitos han ampliado este concepto: "Las características, funciones y atributos con los que un sistema satisface a los usuarios se pueden encontrar fuera del sistema". Estas definiciones enfatizan cómo es un producto más que cómo está diseñado y construido. Las siguientes definiciones van más allá de los requisitos del usuario a las características del sistema:
Los requisitos son especificaciones que especifican lo que se debe lograr. Describe el comportamiento, características o propiedades del sistema y es una restricción del sistema durante el proceso de desarrollo.
A partir de estas diferentes definiciones, no es difícil descubrir que no existe un término claro y ambiguo "demanda". Las "necesidades" reales realmente existen en la mente de las personas. Esta persona se refiere principalmente al cliente, pero en circunstancias normales, los usuarios no pueden describir sus propias necesidades. Solo necesitan que los analistas del sistema clasifiquen las necesidades relevantes en función de sus propias descripciones de idioma y luego consulten con los clientes. Los analistas de sistemas y los clientes deben asegurarse de que todas las partes interesadas del proyecto describan los requisitos en esos términos.
Cualquier requisito documentado (como la especificación de requisitos que se describe a continuación) es solo un modelo y una descripción.
2. La tarea del análisis de requisitos
La parte más difícil del desarrollo de un sistema de software es explicar exactamente qué se va a desarrollar.
El trabajo conceptual más difícil es escribir los requisitos técnicos detallados, incluidas todas las interfaces para usuarios, máquinas y otros sistemas de software. Al mismo tiempo, esta es también la parte que eventualmente causará un daño enorme al sistema si se hace mal, y será extremadamente difícil de modificar más adelante.
En la actualidad, existen muchos productos nacionales y una empresa puede tener varios sistemas funcionando en paralelo. La interfaz entre ellos es el mayor dolor de cabeza para los desarrolladores de sistemas.
Para las aplicaciones empresariales de usuario final, los sistemas de información y el software empresarial son claramente productos que forman parte de un sistema más grande. Pero para nosotros, los desarrolladores, no hemos escrito un documento de requisitos que sea reconocido por los clientes. ¿Cómo sabemos cuando un proyecto ha terminado? Si no sabemos qué es importante para nuestros clientes, ¿cómo podemos satisfacerlos?
Sin embargo, incluso los requisitos de software para fines no comerciales son necesarios. Por ejemplo, el equipo de desarrollo utiliza internamente bibliotecas, componentes y herramientas. Por supuesto, en ausencia de documentación, es posible que ocasionalmente esté de acuerdo con el punto de vista de otra persona, pero la mayoría de las veces es la consecuencia inevitable de reelaboraciones repetidas, y el costo de reprogramar el código excede con creces el costo de reescribir un documento de requisitos. . Estas sangrientas lecciones les están sucediendo a los desarrolladores de software nacionales.
Recientemente, conocí a un equipo de desarrolladores que habían desarrollado un conjunto de software asistido por computadora para uso interno que incluía un editor de código. Desafortunadamente, cuando terminaron de desarrollar la herramienta, descubrieron que no podía imprimir archivos de código fuente y los usuarios ciertamente querían esta característica. Como resultado, los equipos tuvieron que copiar manualmente los documentos del código fuente para revisar el código. Esto demuestra que incluso si los requisitos son claros y precisos, si no escribimos documentación, el software sólo puede culparse a sí mismo por no lograr los objetivos esperados.
En cambio, veo una interfaz simple integrada en el "sistema de seguimiento de errores" para escribir una solicitud de una página. Sin embargo, los administradores de sistemas operativos encuentran muy útil una lista simple de requisitos cuando trabajan con scripts. Cuando probaron el sistema según sus requisitos, no sólo implementó claramente todas las funciones necesarias, sino que tampoco encontró errores.
De hecho, los documentos de requisitos siempre han jugado un papel guía en el proceso de desarrollo.
3. Proceso de análisis de la demanda
......
El papel del análisis de la demanda y cómo realizarlo.
Al comprender y analizar el problema correspondiente y su entorno, construimos un modelo para la información, las funciones y el comportamiento del sistema involucrados en el problema, describimos de manera precisa y completa las necesidades del usuario y finalmente formamos una especificación de requisitos. Esta serie de actividades constituye la fase de análisis de requisitos del ciclo de vida del desarrollo de software.
El análisis de requisitos es el puente entre el análisis de sistemas y el diseño de software. Por un lado, el análisis de requisitos toma las especificaciones del sistema y la planificación del proyecto como punto de partida básico para las actividades de análisis, y verifica y ajusta desde la perspectiva del software. Por otro lado, la especificación de requisitos es la base principal para el diseño, implementación, prueba y ejecución del software; mantenimiento. Las buenas actividades de análisis ayudan a evitar o eliminar errores tempranos lo más rápido posible, aumentando así la productividad del software, reduciendo los costos de desarrollo y mejorando la calidad del software.
La ingeniería de requisitos se desarrolla con el desarrollo de los ordenadores. En los primeros días del desarrollo informático, la escala del software era pequeña. El desarrollo de software se centraba en la escritura de códigos y prestaba poca atención al análisis de requisitos. Posteriormente, el concepto de ciclo de vida se introdujo en el desarrollo de software y el análisis de requisitos se convirtió en su primera etapa. A medida que se expande la escala de los sistemas de software, el análisis y la definición de requisitos se vuelven cada vez más importantes en todo el proceso de desarrollo y mantenimiento del software, lo que está directamente relacionado con el éxito o el fracaso del software. La gente se da cuenta gradualmente de que las actividades de análisis de requisitos ya no se limitan a la etapa inicial del desarrollo del software, sino a lo largo de todo el ciclo de vida del desarrollo del sistema. A mediados de la década de 1980, surgió un subcampo de la ingeniería de software: la ingeniería de requisitos (RE). Desde la década de 1990, la ingeniería de requisitos se ha convertido en uno de los focos de investigación. Desde 1993, el Simposio Internacional sobre Ingeniería de Requisitos (ISRE) se celebra cada dos años, y desde 1994, la Conferencia Internacional sobre Ingeniería de Requisitos (ICRE) se celebra cada dos años. En 1996, Springer-Verlag publicó una nueva publicación "Ingeniería de requisitos". También se han creado algunos grupos de trabajo sobre ingeniería de requisitos, como el Renoir (Red de Ingeniería de Requisitos de Grupos Internacionales de Investigación Colaborativa) de Europa, y han comenzado a trabajar.
La ingeniería de requisitos se refiere a la disciplina que aplica técnicas y métodos maduros para analizar los requisitos, determinar las necesidades del cliente, ayudar a los analistas a comprender el problema y definir todas las características externas del sistema objetivo. Utiliza herramientas y símbolos apropiados para describir sistemáticamente el sistema a desarrollar, sus características de comportamiento y restricciones relacionadas, formar un documento de requisitos y respaldar las necesidades cambiantes de los usuarios. La RE se puede dividir en ingeniería de requisitos del sistema (si es para todo el sistema compuesto de software y hardware) e ingeniería de requisitos de software (si es solo para software puro). La ingeniería de requisitos de software es la disciplina de analizar y documentar los requisitos de software. Descompone los requisitos del sistema en algunos subsistemas y tareas principales, asigna estos subsistemas o tareas al software y transforma estos requisitos del sistema en descripciones de requisitos de software y algunos parámetros de rendimiento.
La ingeniería de requisitos es un proceso de definición, registro y desarrollo repetidos de requisitos y, finalmente, congelación de los requisitos en función de la verificación. En la década de 1980, Herb Krasner definió el ciclo de vida de cinco etapas de la ingeniería de requisitos: definición y análisis de la demanda, toma de decisiones sobre la demanda, formación de especificaciones de la demanda, implementación y verificación de la demanda, y gestión de la evolución de la demanda. Recientemente, Matthias Jarke y Klaus Pohl propusieron una teoría del ciclo de tres etapas: adquisición, caracterización y verificación.
Basándonos en varias perspectivas, las actividades de ingeniería de requisitos se pueden dividir en las siguientes cinco etapas independientes:
(1) Adquisición de requisitos: comunicándose con los usuarios, observando los sistemas existentes y analizando las tareas. , desarrollando, capturando y modificando así los requisitos del usuario;
(2) Modelado de requisitos: establecer un modelo conceptual para el sistema visto por los usuarios finales como una descripción abstracta de los requisitos, capturando la semántica del mundo real como tanto como sea posible;
(3) Especificación de requisitos de formulario: generar una descripción formal precisa de los componentes del modelo de requisitos como un contrato entre usuarios y desarrolladores;
(4) Verificación de requisitos: utilizar Las especificaciones de requisitos se utilizan como entrada y la exactitud y viabilidad de las especificaciones de requisitos se analizan mediante ejecución simbólica, simulación o creación rápida de prototipos;
(5) Gestión de requisitos: respalda la evolución de los requisitos del sistema, como los requisitos Cambios y trazabilidad de sexo. ...
¿Cuáles son los pasos del análisis de requisitos en el proceso de desarrollo del sistema?
(1) Investiga primero la organización.
Incluyendo la comprensión de la estructura departamental de la organización, las funciones de cada departamento, etc. , prepárese para el análisis del flujo de información.
(2) Luego investigue las actividades comerciales de cada departamento.
Incluyendo comprender qué datos ingresa y utiliza cada departamento, cómo procesar los datos, qué información se genera, qué departamento se genera y qué formato tienen los resultados de salida.
⑶Ayudar a los usuarios a aclarar las diversas necesidades del nuevo sistema.
Incluye requisitos de información, requisitos de procesamiento, requisitos de integridad y exhaustividad.
(4) Determinar los límites del nuevo sistema.
Determinar qué funciones son o serán completadas por computadoras y qué actividades son realizadas por humanos. Las funciones completadas por la computadora son las funciones que debe realizar el nuevo sistema.
⑸Analizar funciones del sistema
[6] Analizar datos del sistema.
(7) Elaborar informe de análisis.
¿Qué pasos incluye el proceso de análisis de requisitos basado en casos de uso?
¿Necesita mi ayuda con el análisis de requisitos basado en casos de uso?