Red de conocimiento informático - Programación de la red - ¿Proceso de desarrollo del equipo de una empresa de software?

¿Proceso de desarrollo del equipo de una empresa de software?

Un software requiere de los siguientes procesos desde el principio hasta el final:

1. Planificación

2. Análisis del diseño.

4. Codificación

5. Pruebas

6. Mantenimiento

1. definición del problema a resolver, incluyendo comprender los requisitos del usuario y el entorno real, estudiar y demostrar la viabilidad del proyecto de software desde tres aspectos: factores técnicos, económicos y sociales, redactar un informe de estudio de viabilidad y explorar soluciones al problema. y estimar el costo de los recursos disponibles (como hardware de computadora, software de sistema, mano de obra, etc.), los beneficios alcanzables y el progreso del desarrollo, y formular un plan de implementación para completar las tareas de desarrollo.

2. Análisis

El análisis de requisitos de software es un análisis sistemático y una suposición de qué tipo de software desarrollar. Es un proceso de comprensión correcta de las necesidades del usuario eliminando la basura y seleccionando lo esencial, descartando lo falso y reteniendo lo verdadero, y luego expresándolo en un lenguaje de desarrollo de ingeniería de software (especificaciones funcionales formales, es decir, especificaciones de requisitos). Las tareas básicas en esta etapa son trabajar con los usuarios para determinar los problemas a resolver, establecer un modelo lógico del software, escribir documentos de especificación de requisitos y, en última instancia, obtener la aprobación del usuario. Los principales métodos de análisis de requisitos incluyen métodos de análisis estructurados, diagramas de flujo de datos y diccionarios de datos. El trabajo en esta etapa es diseñar y establecer la arquitectura del sistema de software correspondiente de acuerdo con los requisitos de la declaración de requisitos, descomponer todo el sistema en varios subsistemas o módulos, definir las relaciones de interfaz entre subsistemas o módulos y realizar diseños específicos para Definir cada subsistema, escribir el diseño del esquema del software y las especificaciones de diseño detalladas, las especificaciones de diseño de la base de datos o de la estructura de datos y ensamblar planes de prueba. En la etapa inicial de cualquier desarrollo de software o sistema, se deben comprender completamente las necesidades del usuario para priorizar qué funciones deben implementarse, qué especificaciones deben adoptarse y qué restricciones deben establecerse en el proceso de desarrollo posterior del sistema. En última instancia, el ingeniero de sistemas completará el plan de diseño basándose en esto y definirá la descripción y las limitaciones del desarrollo posterior del programa, las funciones del sistema y el rendimiento.

3. Diseño

El diseño de software se puede dividir en dos etapas: diseño del esquema y diseño detallado. De hecho, la tarea principal del diseño de software es descomponer el software en módulos, que se refieren a unidades de datos y descripciones de programas y programas ejecutables que pueden realizar una determinada función. Puede ser una función, procedimiento, subrutina, un programa independiente y datos con descripción del programa, o puede ser una unidad funcional que puede combinarse, descomponerse y reemplazarse. módulo y luego realizar el diseño del módulo. El diseño de esquema es un diseño estructural y su objetivo principal es dar la estructura del módulo del software, representada por un diagrama de estructura del software. La tarea principal del diseño detallado es diseñar el flujo del programa, el algoritmo y la estructura de datos del módulo, y la tarea secundaria es diseñar la base de datos. El método común sigue siendo el método de programación estructurada.

4. Codificación

La codificación de software se refiere a convertir el diseño de software en un programa aceptable para la computadora, es decir, escribir una "lista de programas fuente" expresada en un determinado lenguaje de programación. Comprender completamente las características y estilos de programación de los lenguajes, herramientas y estilos de programación de desarrollo de software lo ayudará a seleccionar herramientas de desarrollo y garantizar la calidad de desarrollo de los productos de software.

En el desarrollo de software actual, excepto en ocasiones especiales, los lenguajes de alto nivel de la década de 1980 rara vez se utilizan y en su lugar se utilizan lenguajes de desarrollo orientados a objetos. Además, la mayoría de los lenguajes y entornos de desarrollo orientados a objetos están integrados, lo que mejora enormemente la velocidad de desarrollo.

5. Pruebas

El propósito de las pruebas de software es encontrar tantos errores como sea posible a un pequeño costo. La clave para lograr este objetivo es diseñar un buen conjunto de casos de prueba (los datos de prueba, las funciones y los resultados de salida esperados forman un caso de prueba). La clave para diseñar un excelente conjunto de casos de prueba radica en comprender el método de prueba. Los diferentes métodos de prueba tienen diferentes métodos de diseño de casos de prueba. Dos métodos de prueba comúnmente utilizados son el método de caja blanca, que prueba el programa fuente y utiliza la estructura lógica interna del programa para descubrir errores de programación de software, errores estructurales y errores de datos. Los errores estructurales incluyen errores de lógica, flujo de datos, inicialización, etc.

La clave para el diseño de casos de uso es cubrir tantos resultados de lógica interna del programa como sea posible con menos casos de uso. El método de la caja blanca y el método de la caja negra se basan en la descripción de la función o el comportamiento del software y encuentran errores en la interfaz, función y estructura del software. Los errores de interfaz incluyen interfaces internas/externas, gestión de recursos, integración y errores del sistema. La clave para el diseño de casos de uso del método de caja negra es también cubrir las interfaces de entrada y salida del módulo con menos casos de uso.

6. Mantenimiento

El mantenimiento se refiere a algunas operaciones de software realizadas en productos de software después de que el desarrollo (análisis, diseño, codificación y pruebas) del software se haya completado y entregado para su uso. Actividades de ingeniería. Es decir, en función de las condiciones de ejecución del software, realizar las modificaciones apropiadas en el software para adaptarse a los nuevos requisitos y corregir los errores encontrados durante la operación. Elaborar informes de problemas de software e informes de modificación de software.

Para un software de tamaño mediano, si la etapa de desarrollo demora de uno a dos años, luego de su puesta en uso, su operación o tiempo de trabajo puede durar de cinco a diez años. Luego su fase de mantenimiento es también durante los cinco a diez años de funcionamiento. Durante este período, las personas deben comenzar a resolver casi todos los problemas encontrados en la etapa de desarrollo y, al mismo tiempo, resolver algunos problemas exclusivos del trabajo de mantenimiento en sí. Hacer un buen trabajo en el mantenimiento del software no solo puede eliminar obstáculos para que el software pueda funcionar normalmente, sino también permitirle ampliar sus funciones, mejorar el rendimiento y brindar beneficios económicos obvios a los usuarios. Desafortunadamente, sin embargo, el énfasis en el mantenimiento del software es a menudo mucho menor que el énfasis en el desarrollo de software. De hecho, en comparación con el trabajo de desarrollo de software, la carga de trabajo y el costo del mantenimiento del software son mucho mayores.

En el proceso de desarrollo real, el desarrollo de software no avanza desde el primer paso hasta el último, pero en cualquier etapa, generalmente hay uno o varios pasos de retroceso antes de pasar a la siguiente etapa. Los problemas durante el proceso de prueba pueden requerir modificaciones de diseño y los usuarios pueden plantear algunas necesidades para modificar la especificación de requisitos, etc.