Red de Respuestas Legales - Derecho de bienes - Ingeniería de software: análisis de requisitos y diseño de software (5)

Ingeniería de software: análisis de requisitos y diseño de software (5)

La ingeniería de requisitos es el primer paso en la construcción de un sistema de información de gestión. Consiste en investigar la situación actual y las necesidades de los clientes, y registrar y analizar de forma completa y precisa las necesidades de los clientes de acuerdo con los métodos y estándares de ingeniería. Los resultados son la base para proyectos de diseño posteriores.

1. Definición

La ingeniería de requisitos se refiere al uso de métodos y estándares de ingeniería para recopilar, registrar y analizar los requisitos de informatización del cliente y, en última instancia, determinar las funciones que el sistema necesita implementar. y las funciones relacionadas. La ingeniería de requisitos consta de tres partes principales: investigación de requisitos, análisis de requisitos y gestión de requisitos.

Nota: Acerca de la gestión de requisitos

La gestión de requisitos es un contenido muy importante en la ingeniería de requisitos, incluido el seguimiento, control, cambio y gestión de versiones de requisitos. Es un medio importante para garantizar el contenido, la calidad y el progreso del sistema. El contenido de la gestión de la demanda se centra más en la gestión de procesos de software.

Paso 2: Función

El papel de la ingeniería de requisitos se puede resumir en una frase: recopilar lo que los clientes quieren hacer y finalmente determinar qué hacer.

Para el desarrollo de una aplicación software, la calidad de los resultados de la ingeniería de requisitos afecta en gran medida a los resultados del diseño del software y es el principal vínculo que determina el éxito o el fracaso. Es una capacidad esencial de un analista de requisitos obtener, registrar, analizar y confirmar completamente los requisitos de los clientes y transmitirlos correctamente a proyectos posteriores. Las especificaciones de requisitos formadas como resultado del análisis de ingeniería de requisitos no sólo son la base para el diseño y desarrollo posteriores, sino también la base para la evaluación y aceptación del sistema por parte del cliente.

Por otro lado, el contenido de la ingeniería de requisitos también afecta en gran medida al coste, la tecnología, el ciclo, los recursos, la calidad y la satisfacción del usuario final del desarrollo de software. Los resultados de la ingeniería de requisitos no sólo afectan el resultado final para el cliente, sino también el beneficio final para el desarrollador de software.

El trabajo principal de la ingeniería de requisitos es la investigación y el análisis de la demanda. Al final, hay dos entregables principales.

1) Resultados de la encuesta de demanda (resumen de los datos de la encuesta de demanda)

Datos de demanda de primera mano recopilados de los sitios de los clientes a través de encuestas cara a cara, incluidos los registrados en gráficos, texto, tablas, etc. Los datos brutos forman un resumen de los datos de la encuesta de demanda.

2) Resultados del análisis de requisitos (especificaciones de requisitos)

Con base en los datos de investigación anteriores, determinamos todo el contenido que debe desarrollarse al final después de la confirmación por parte del cliente. Finalmente formamos una especificación de requisitos, que es el diseño posterior. La base del proceso de desarrollo.

1. Recopilación y confirmación de requisitos

Desde los requisitos originales poco claros del cliente hasta el desarrollo del código, la parte que más contribuye a la convergencia es ② la ingeniería de requisitos, que es más fácil de estandarizar y normalizar las partes son ③ ~ ⑤. ② Clasifique el contenido complicado de ① y forme especificaciones de requisitos claras. ③ Refinar y transformar aún más los resultados de ② en los resultados de diseño de arquitectura, función y datos. ④ Extraiga aún más los resultados de ③ y conviértalos en componentes y mecanismos. ⑤ Desarrollar los resultados de ⑤ en el software final en forma de codificación.

Se puede ver en los avances y cambios de los gráficos que la ingeniería de requisitos ② es responsable de clasificar el contenido de los requisitos originales ① y formar especificaciones de requisitos claras y legibles, mientras que ③ ~ ⑤ una serie de; trabajo, cuanto más alejadas estén las Partes, más simples o más complejas, más convergentes serán las cosas por hacer. (2) La ingeniería de requisitos es la precursora, realiza el trabajo más complejo, desordenado y agotador y desempeña el mayor papel de convergencia en los cinco pasos desde las necesidades iniciales del cliente hasta la codificación. ②Cuanto mayor sea la convergencia de ciertos gráficos (el gradiente del trapezoide), más cerca estarán los gráficos en el diseño y desarrollo futuro de un rectángulo en ángulo recto y más suave será el trabajo. De lo contrario, cuando ② ~ ⑤ son todos trapecios con grandes gradientes, significa que la ingeniería de requisitos no está implementada. En el diseño y desarrollo posteriores, se encontrarán problemas con los requisitos anteriores, lo que provocará reelaboraciones.

Nota: Acerca del significado de "convergencia"

La cohesión se refiere al proceso de integración de requisitos originales complejos en operaciones estandarizadas. El contenido del trabajo estandarizado no se ve afectado por los requisitos y su contenido es fijo independientemente de si los requisitos son complejos.

2. No toda la demanda proviene de la investigación de los clientes.

¿Todos los requisitos para la construcción de sistemas de información se obtienen de los clientes? Esta pregunta refleja qué parte del sistema terminado es propuesto por los ingenieros de software (incluyendo consultoría, requisitos, diseño, desarrollo, implementación, etc.). Estas propuestas generalmente contienen requisitos más avanzados y más valor agregado, y tienen muchas fuentes de demanda.

1) Requisitos básicos

Los requisitos básicos provienen de “encuestas” a clientes.

Este tipo de demanda es principalmente demanda funcional, que básicamente se diseña y desarrolla de acuerdo con los deseos del cliente. La mayor parte del contenido se determina en la etapa de estudio y análisis de la demanda.

2) Requisitos intermedios

Los requisitos intermedios no son requisitos funcionales propuestos directamente por los clientes, sino la transformación y optimización de los requisitos comerciales propuestos por los clientes durante la etapa de análisis de requisitos y la etapa de diseño comercial. necesidades generadas durante el proceso de cobertura de vacantes y actualización, es decir, necesidades generadas para mejorar el negocio.

3) Requisitos avanzados

Los requisitos avanzados provienen principalmente de ingenieros de software en función de las necesidades del cliente, nuevos conceptos de diseño, nuevas tecnologías, etc. Es decir, los requisitos de alto nivel son requisitos diseñados por ingenieros de software, como "encontrar a alguien que diseñe el proceso (arquitectura)", "diseñar componentes según tareas (funciones)" y "reutilización de datos (datos)". Los "requisitos de diseño" requieren que los ingenieros de software tengan conocimientos y habilidades suficientes.

El orden de dificultad para obtener las tres fuentes de demanda anteriores es demanda avanzada>demanda intermedia>demanda básica.

Los ingenieros de software deben darse cuenta de que una vez completada la ingeniería de requisitos (investigación y análisis), no se completa todo el trabajo de adquisición de requisitos, pero se completan los requisitos propuestos directamente por los clientes y la extracción de requisitos a través del diseño. La ingeniería aún no ha sido terminada.

Nota: Los requisitos avanzados afectarán los costos de desarrollo. Aquí solo se considera cómo descubrir necesidades valiosas, y no se consideran los costos de desarrollo que generan las nuevas necesidades.

Los requisitos generalmente se dividen en dos categorías: requisitos funcionales y requisitos no funcionales.

Los requisitos funcionales son las funciones de procesamiento empresarial que el sistema debe proporcionar y también son el cuerpo principal de los requisitos del software. Generalmente, cuando un requisito no va precedido de un adjetivo, se refiere a un requisito funcional.

Los requisitos obtenidos se pueden dividir en tres categorías. Existe una relación de conversión entre ellos según el orden de conversión, se pueden dividir en requisitos objetivo, requisitos comerciales y requisitos funcionales.

Requisitos objetivo: Información de objetivos, conceptos, esperanzas y valores propuestos por los clientes.

Requerimientos del negocio: El sistema propuesto por el cliente debe corresponder al contenido, procesos y reglas del negocio.

Requisitos funcionales: Determinar las funciones que el sistema debe proporcionar para manejar los requisitos del negocio y la descripción específica de las funciones.

Los requisitos no funcionales se refieren al establecimiento de algunas condiciones indicadoras para juzgar el funcionamiento del sistema, en lugar de los requisitos funcionales específicos de un determinado proceso de negocio. Se utilizan para determinar si el sistema en ejecución cumple las siguientes condiciones: seguridad, confiabilidad, interoperabilidad, robustez, facilidad de uso, mantenibilidad, portabilidad, reutilización, escalabilidad, etc.

Los resultados de la consulta previa a la venta incluyen muchos aportes importantes para el análisis de la demanda y el diseño comercial, especialmente muchos "requisitos objetivo", que tienen un impacto muy importante en la planificación general y el diseño de alto nivel del sistema de información posterior.

1. Contenidos de la consulta preventa

Antes de entrar en la etapa de ingeniería de diseño, el objetivo de toda comunicación y comunicación con los clientes es obtener los requisitos. Especialmente para proyectos grandes, suele haber una fase de consulta previa a la venta antes de firmar. En esta etapa, la empresa de software general enviará consultores experimentados (como consultores expertos) para comunicarse con los clientes y explorar qué soluciones se pueden ofrecer de acuerdo con las necesidades del cliente. Las negociaciones en esta etapa tienen las siguientes características.

●El contrato aún no se ha firmado y el sistema de información específico aún no se ha determinado. La posibilidad de firmar el contrato depende del resultado de la negociación.

●En este momento, la mayoría de los clientes participantes son altos ejecutivos corporativos, como personal de operaciones, altos directivos, gerentes de información, etc.

●Las necesidades de los clientes son principalmente necesidades específicas, necesidades comerciales e incluso puntos débiles, y los requisitos funcionales rara vez se analizan.

●Los requisitos involucrarán la estrategia de desarrollo de la empresa, los principales problemas existentes y las expectativas de informatización de la empresa.

●El contenido discutido en la comunicación puede ser relativamente abstracto y las necesidades a menudo están implícitas. Que pueda convertirse en una necesidad real requiere la orientación, selección y confirmación de un consultor. La consulta previa a la venta generalmente habla de requisitos relativamente altos. Estos requisitos son la principal fuente de "requisitos objetivo" en el análisis de demanda posterior y son las expectativas de valor de los gerentes comerciales para los sistemas de información (aunque pueden presentarse de manera oscura). . En la etapa posterior llamada "investigación de la demanda", a menudo puede que no haya oportunidad de escuchar directamente las necesidades de los ejecutivos corporativos, por lo que esta parte del contenido debe registrarse como una demanda muy importante y servir como una referencia importante para posteriores análisis de la demanda.

2. Consulta previa a la venta e ingeniería de requisitos

El método de consulta previa a la venta depende en gran medida de la capacidad personal y el encanto del consultor, y no existen especificaciones ni requisitos especiales. entregables y plantillas estándar, por lo que el trabajo de consultoría no está claramente incluido en la ingeniería de requisitos (diferentes proveedores de software pueden tener diferentes métodos de división) y los dos tienen enfoques diferentes.

(1) Consulta previa a la venta: El objetivo es proponer soluciones a través de actividades de consulta previa a la venta y ayudar al departamento de ventas en la firma de contratos.

(2) Ingeniería de requisitos: el objetivo es ingresar al sitio del cliente y realizar una investigación detallada del contenido del contrato confirmado. Aunque el objetivo principal de la consulta es facilitar la firma del contrato, la información recopilada durante la etapa de consulta es un objeto muy importante del análisis de ingeniería de requisitos, especialmente los "requisitos objetivo".

3. El papel de los consultores

(1) El consultor representa el nivel profesional más alto de la empresa de software y debe ser la tarjeta de presentación del fabricante de software.

(2) Los consultores son evangelistas que explican de manera integral las ideas y opiniones de los proveedores de software.

(3) El punto de partida del consultor es alto, el punto de partida de todo el proyecto es alto y el valor total será alto (esto es cierto tanto para los proveedores de software como para los clientes).

(4) Los consultores deben poder utilizar el conocimiento y la experiencia retenidos para servir como asesores y asesores de los tomadores de decisiones de los clientes.

(5) El enfoque del consultor es comunicarse con los tomadores de decisiones del proyecto del cliente y obtener las metas, expectativas y otras necesidades del cliente.

4. Requisitos de capacidad del consultor

Para un consultor experto que se dedica a la consultoría de preventa, los requisitos para él son relativamente altos, principalmente en los siguientes aspectos (sin limitarse a este).

1) Capacidad de comunicación El objetivo de la comunicación es el nivel de toma de decisiones del cliente, producción, finanzas y otros gerentes de nivel medio, que tienen mayores requisitos de capacidad. Por ejemplo,

●Comprensión: ¿Puedes comprender el propósito y las necesidades ocultas de las conversaciones de alto nivel?

●Demostración: ¿Se pueden demostrar completamente las capacidades de servicio y de producto de la empresa de software?

●Persuasión: ¿Puede convencer a los clientes para que realicen los cambios correspondientes en la organización o el sistema de gestión después de introducir el sistema? Espera un momento.

2) Capacidad profesional Para un consultor, los requisitos de su capacidad profesional son amplios.

●¿Ha dominado los conocimientos básicos de la consultoría industrial?

●¿Está familiarizado con el negocio principal y los conocimientos comerciales auxiliares de su cliente?

●¿Tiene conocimientos básicos de las últimas tecnologías, casos coincidentes y soluciones en la industria del software?

La descomposición de ingeniería de la ingeniería de requisitos se divide en dos etapas, a saber, la etapa de investigación de requisitos y la etapa de análisis de requisitos.

Hay dos tareas principales en la etapa de investigación de la demanda: investigación de la demanda y recopilación de datos.

(1) Encuesta de demanda: recopile las necesidades de los clientes a través de cuestionarios, gráficos de estado, registros de entrevistas, formularios existentes, etc.

(2) Resumen de datos: resuma los datos recopilados durante el proceso de la encuesta para formar un resumen de datos de la encuesta de demanda, que se utilizará como base para el análisis en la etapa de análisis de la demanda.

La fase de análisis de requisitos tiene dos tareas principales: análisis de requisitos y resumen de datos.

(1) Análisis de la demanda: analice las necesidades del cliente en función de los datos de la encuesta de demanda y finalmente confirme las funciones que el sistema debe implementar.

(2) Resumen de datos: resuma los datos de los resultados del análisis para formar especificaciones de requisitos como entrada para la etapa de diseño posterior.

1. Encuesta de demanda

El propósito es principalmente recopilar y registrar las necesidades de información de los clientes. La atención se centra en "registrar" el contenido en lugar de "analizar" o "diseñar" para evitarlo. En la fase de investigación de requisitos, se debe mantener la "originalidad" de los datos porque el análisis y el diseño incorporan las opiniones personales de los analistas de requisitos (se utilizan plantillas de requisitos para estandarizar y formatear el contenido registrado).

2. Análisis de la demanda

A partir de la comprensión de los datos de la encuesta de demanda, se extraen, clasifican y clasifican. Al mismo tiempo, a partir del análisis, los puntos de ruptura del estudio se completan y expresan de forma más estandarizada. Lo importante es que los analistas de la demanda agreguen su comprensión personal y opiniones valiosas sobre la promoción de la informatización empresarial a través del análisis de las demandas de alto nivel, como las necesidades objetivo y las necesidades comerciales. Por lo tanto, los resultados del análisis de la demanda serán diferentes de los. registros originales. La comprensión del analista de requisitos representa y se basa en la comprensión del equipo de desarrollo de software.

Por tanto, la capacidad del analista de requisitos afectará en última instancia al contenido, la tecnología, el coste y el ciclo del sistema de información.

3. La relación entre ellos

Ambos se describen en términos de diseño no técnicos, mientras que la investigación de requisitos se registra en "términos del cliente" y el análisis de requisitos se registra en "términos de diseño empresarial". " Expresar. Existe una diferencia entre los dos en términos de propósitos de trabajo. Por ejemplo, el diagrama de flujo de negocios producido por el análisis de la demanda debe tener integridad comercial y ajustarse a la expresión estándar de los procesos de negocios; el diagrama de flujo de negocios recopilado por la investigación de la demanda puede estar fragmentado y; cuentas diarias discontinuas. El análisis de requisitos extrae y clasifica el contenido de las entidades de demanda y establece una tabla del sistema de demanda; esta clasificación no es necesaria en la etapa de investigación de la demanda, solo se requiere la recopilación y el registro originales (debe conservarse el estado original). Los resultados del análisis de la demanda tienen dos funciones: confirmar con los clientes de front-end y enviar la base de diseño al back-end; los resultados de la investigación de la demanda solo proporcionan información para el análisis de la demanda. Las mayores diferencias entre los dos son las siguientes.

(1) Encuesta de requisitos: La atención se centra en la recopilación y el registro de los requisitos originales.

(2) Análisis de la demanda: centrándose en la comprensión, recopilación y confirmación generales, el análisis de la demanda no es una repetición de la investigación de la demanda.

El impacto de los datos completados en la fase de ingeniería de requisitos en la fase de diseño posterior

(1) Encuesta de demanda: Recopilar y organizar las necesidades originales de los clientes.

(2) Análisis de la demanda: los datos de la investigación son solo para el análisis de la demanda y no pueden ser citados directamente por el instituto de diseño (como referencia).

(3) Diseño del esquema: Es necesario cubrir completamente los resultados del análisis de la demanda y proporcionar un plan.

(4) Diseño de detalle: El diseño de detalle es en principio el resultado del diseño de esquema.

(5) Diseño de la aplicación: según los requisitos de la aplicación en el análisis de requisitos, se proporciona el método de implementación del sistema.

(6) Diseño técnico: Responder a requisitos no funcionales y requisitos técnicos en los resultados del análisis de la demanda.

(7) y (8) Pruebas de desarrollo: los resultados del análisis de requisitos no se pueden utilizar como base para el desarrollo y las pruebas (como referencia).

(x) Aceptación del sistema: La aceptación final del sistema por parte del cliente se basa en las especificaciones de requisitos. ?

La investigación de requisitos no se realiza según el orden de trabajo ni la relación entre el contenido de la investigación, por lo que no existe una segmentación estricta del trabajo. Se divide según las diferentes formas de expresión de la demanda, que pueden ser. dividido en tres tipos.

(1) Categoría de gráficos: incluye gráficos que expresan la situación comercial actual del cliente, las necesidades expresadas por la interfaz, etc.

(2) Texto: necesidades expresadas en palabras recogidas a través de cuestionarios y registros de entrevistas.

(3) Tipo de formulario: requisitos de formulario de informe y documento reales proporcionados por el cliente.

No existe correlación ni orden necesario entre estos tres tipos de datos, y se pueden recopilar al mismo tiempo.

Después de clasificar los resultados de la encuesta de demanda, los requisitos no funcionales son todos requisitos funcionales. Según la definición de requisitos funcionales, se pueden dividir en necesidades objetivo, necesidades comerciales y necesidades funcionales. → necesidades del negocio Existe una relación de conversión entre requisitos → requisitos funcionales. Estrictamente hablando, no son tres tipos de requisitos, sino tres niveles de requisitos. Al final, solo se pueden implementar en el sistema los requisitos funcionales que se convierten en el tercer nivel. El desglose del trabajo de la fase de análisis se determina en el siguiente orden.

(1) El primer nivel de trabajo: análisis de las necesidades objetivo y conversión en necesidades comerciales.

(2) El segundo nivel de trabajo: análisis de requisitos comerciales y conversión en requisitos funcionales.

(3) Tercer nivel de trabajo: análisis y determinación de requisitos funcionales.

Establecer un sistema de demanda correspondiente. Sin este sistema de demanda, podemos utilizar la experiencia personal para resolver los problemas de los clientes. Con este sistema, podemos utilizar nuestra experiencia y sabiduría colectivas para resolver los problemas de nuestros clientes. El sistema de demanda aquí se refiere principalmente al establecimiento de "necesidades comerciales".

Establecer un sistema de demanda puede aportar mucho valor. Pongamos algunos ejemplos.

1. Acumulación sistemática de conocimientos

(1) Los resultados de la investigación y la práctica se pueden acumular de manera ordenada, incluidos conceptos, métodos, estándares y normas.

(2) Acumulación de valor para el cliente, que incluye: diferentes campos comerciales, industrias, sectores, sistemas, módulos, funciones, etc.

2. La necesidad de escala comercial

(1) Mejorar el valor de las empresas de software puede proporcionar a los clientes soluciones sistemáticas.

(2) Refinar, planificar y establecer nuevos modelos de negocio para responder rápidamente a las necesidades de los clientes.

3. Reducir costes y mejorar la eficiencia

(1) El conocimiento acumulado se puede reutilizar y disfrutar eficazmente, reduciendo costes.

(2) Puede acortar en gran medida el ciclo de desarrollo y ayudar a reducir el fenómeno de la "distorsión de la demanda".

4. Principales medidas para evitar riesgos

(1) La mejor manera de evitar riesgos es informar a todos qué hacer con anticipación, lo que se puede hacer con el soporte del sistema.

(2) Las capacidades humanas son insuficientes y el tiempo de investigación y análisis es corto, lo que se puede solucionar utilizando una base de conocimiento.

Como analista de demanda, el atajo para cultivar talentos rápidamente es requerir muchas habilidades, como "capacidad comercial", "capacidad de comunicación", "capacidad abstracta" y "capacidad de expresión", pero esto es demasiado abstracto y demasiado difícil de entender, no se construyó en un día. Establecer una base de conocimientos que pueda proporcionar referencia directa y disfrute sexual a la mayoría de las personas puede permitir a quienes lo necesitan "seguirlo de manera ordenada". Es como una "plataforma empresarial" que permite a todos aportar experiencia y compartir conocimientos, y que todos mantienen conjuntamente.

Se puede decir que la ingeniería de requisitos es el conocimiento básico de todos los involucrados en la industria del software. Porque su contenido principal es:

(1) Cómo comunicarse con los demás, cómo comprender rápidamente las ideas de otras personas, cómo transmitir ideas a los demás, etc.

(2) ¿Cómo encontrar rápidamente un punto de avance para un objeto de investigación complejo y desconocido?

(3) ¿Cómo expresar un objeto poco claro usando lenguaje simple, gráficos o tablas?

(4) ¿Cómo transformar las necesidades expresadas en términos de cliente (conocimiento y experiencia) en términos de diseño empresarial? Espera un momento.

? La cantidad de demanda y el valor agregado de la demanda de los sistemas de información de gestión dependen de los propósitos de información del cliente y de las capacidades de los analistas de la demanda. El puesto de analista de requisitos a menudo se encuentra entre un "consultor" al frente y un "diseñador de negocios" al final. Cuando una empresa de software tiene estos dos puestos o un proyecto está equipado con estos dos puestos, el impacto de las propias habilidades del analista de requisitos en el proyecto se puede controlar hasta cierto punto. Si la empresa de software no tiene otros dos puestos o estos dos puestos no están configurados en este proyecto, entonces el analista de requisitos determina el nivel más alto del proyecto (el nivel más alto del proyecto de gestión empresarial generalmente lo determina el diseñador de negocios), por lo que deberá dominar algunos conocimientos de consultoría y diseño de negocios.

La ingeniería de requisitos toma los datos del diseño como estándar de requisitos.

La ingeniería de requisitos no es sólo un “conocimiento”, sino también una “tecnología” que puede implementarse cualitativa y cuantitativamente. Tiene plantillas, procesos y estándares. Más importante aún, tiene una estricta relación de herencia con diseños posteriores. Debido a que el alcance, el contenido y el formato del diseño se utilizan como estándares de salida de la ingeniería de requisitos, el contenido de la ingeniería de requisitos es muy específico y estandarizado, y puede considerarse como ingeniería de requisitos "técnica". El establecimiento de estándares de ingeniería basados ​​en datos de diseño puede mejorar la calidad del diseño, la calidad del producto y la eficiencia del trabajo.