¿Cuánto cuesta desarrollar un software?
Una buena empresa de outsourcing de software debe tener un proceso de desarrollo de software riguroso
El proceso de desarrollo de software de cada empresa de outsourcing es similar y se puede dividir en: análisis de requisitos-diseño-codificación-Pruebas -Mantenimiento. Entre ellos, el manejo de los detalles puede reflejar mejor la calidad de una empresa de desarrollo de software.
1. Análisis de requisitos
El análisis de requisitos de software es la parte más importante de todo el desarrollo del software. El análisis de requisitos consiste en responder a la pregunta de qué hace el software. Es un proceso de eliminar la basura y seleccionar lo esencial, eliminar lo falso y retener lo verdadero, comprender correctamente las necesidades del usuario y luego implementarlas utilizando 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 que el software necesita 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 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 definir el diseño específico de cada uno. subsistema, escribir el diseño del esquema del software y las instrucciones de diseño detalladas, las instrucciones de diseño de la base de datos o la estructura de datos y ensamblar planes de prueba.
2. Diseño
El diseño de software se puede dividir en dos etapas: diseño general y diseño de detalle. De hecho, la tarea principal del diseño de software es descomponer el software en módulos, implementar datos y descripciones de programas de una determinada función y unidades de programas de programas ejecutables. Puede ser una función, un procedimiento, una subrutina, un programa independiente y datos con una descripción del programa, o puede ser una unidad funcional que puede combinarse, descomponerse y reemplazarse. Módulos, luego diseño de módulos. El diseño de esquema es un diseño estructural y su objetivo principal es dar la estructura del módulo del software y representarlo con 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, los métodos comunes o los métodos de programación estructurada.
3. 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 un "programa fuente expresado en lenguajes de programación como Lista de verificación de Java, C y PHP". Comprender completamente los lenguajes de desarrollo de software, las características de las herramientas y los estilos de programación lo ayudará a elegir herramientas de desarrollo y garantizar la calidad del desarrollo de los productos de software.
En la actualidad, excepto en ocasiones especiales, los lenguajes de alto nivel de la década de 1980 rara vez se utilizan en el desarrollo de software 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 del desarrollo de software.
4. Experimentar
El propósito de las pruebas de software es encontrar tantos errores de programa como sea posible a un costo pequeño. La clave para lograr este objetivo es diseñar un conjunto de casos de prueba excelentes (los datos de prueba y los resultados esperados constituyen casos de prueba). La forma de diseñar un excelente conjunto de casos de prueba depende de su comprensión del 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 encuentra errores de programación de software, errores estructurales y errores de datos basándose en la estructura lógica interna del programa. Los errores estructurales incluyen lógica, flujo de datos, inicialización y otros errores. 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 funciones o comportamientos del software, buscando errores estructurales, funcionales y de interfaz del software.
Los errores de interfaz incluyen interfaz interna/externa, gestión de recursos, integración y errores del sistema. La clave para el diseño de casos de uso de caja negra es también utilizar menos casos de uso para cubrir las interfaces de salida y entrada del módulo. Método de caja negra.
5. Mantenimiento
El mantenimiento se refiere a algunas actividades de ingeniería de software realizadas en productos de software después de que el desarrollo del software (análisis de requisitos, diseño, codificación y pruebas) se completa y se entrega a los clientes para su uso. . Es decir, en función del funcionamiento del software, realizar las modificaciones apropiadas al software para cumplir con nuevos requisitos y corregir errores encontrados durante la operación. Elaborar informes de problemas de software e informes de modificación de software.
Si la fase de desarrollo personalizado de un software de tamaño mediano demora entre uno y dos años, entonces puede estar operativo o funcionando durante cinco a diez años después de su puesta en uso. Luego su fase de mantenimiento es también durante los cinco a diez años de funcionamiento. Durante este período, las personas necesitan resolver casi todos los problemas encontrados durante la fase de desarrollo, así como algunos problemas exclusivos del trabajo de mantenimiento en sí. Hacer un buen trabajo en el mantenimiento del software no sólo puede eliminar obstáculos y hacer que el software funcione normalmente, sino también ampliar funciones y mejorar el rendimiento, lo que aporta beneficios económicos evidentes a los usuarios. Desafortunadamente, el mantenimiento del software a menudo no es tan importante como el desarrollo del software. De hecho, la carga de trabajo y el costo del mantenimiento del software son mucho mayores que los del desarrollo de software.
En el proceso de desarrollo real, el desarrollo de software no va del primer paso al último, sino que en cualquier etapa, suele haber uno o varios pasos atrás antes de pasar a la siguiente etapa. Los problemas durante el proceso de prueba pueden requerir modificaciones de diseño y los usuarios pueden realizar algunas solicitudes para modificar la especificación de requisitos.