Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo se desarrolló el software QQ? ¿Cuál es el proceso específico?

¿Cómo se desarrolló el software QQ? ¿Cuál es el proceso específico?

El software QQ se desarrolla mejor en lenguaje C++. La mayor posibilidad es VC++. La posibilidad de DEVC ++ y QT es relativamente pequeña, porque la versión oficial de QQ no se ha visto en Linux. El lenguaje utilizado es C++, un potente lenguaje de programación orientado a objetos. Los compiladores de C++ más utilizados hoy en día son Visaul C++ 6.0 de Microsoft o Visaul C++.net y C++ Bulider de BORLAND. Entre ellos, C++ Bulider es relativamente fácil de usar. De hecho, la programación en C ++ es difícil de aprender para los principiantes. Si desea programar un programa similar a QQ en un período de tiempo relativamente corto, puede elegir un lenguaje como VB que sea fácil de aprender. El software QQ fue desarrollado por Shenzhen Tengxun Company. El lenguaje utilizado es C++, un potente lenguaje de programación orientado a objetos. Los compiladores de C++ más utilizados actualmente son Visaul C++ 6.0 de Microsoft o Visaul C++.net y Baolan. En el modelo, C ++ Bulider es relativamente fácil de usar. La programación en C ++ es realmente difícil de aprender para los principiantes. Si desea programar un programa similar a QQ en un período de tiempo relativamente corto, puede elegir lenguajes como VB que sean fáciles de usar. aprender. Por supuesto, otros como Java y Delphi también pueden crear dicho software. Puede elegir un lenguaje de programación según sus propios conocimientos y pasatiempos. Permítame recordarle que aprender un lenguaje de programación no es tan simple como aprender una aplicación de software similar a Photoshop. Debe enterrar la cabeza y estar preparado para soportar las dificultades. Sé sólido. Sigue aprendiendo.

El proceso general de ideas y métodos de diseño de software, incluidos algoritmos y métodos para diseñar funciones e implementación de software, diseño de estructura general y diseño de módulos de software, programación y depuración, depuración y prueba conjuntas de programas, así como Redacción y presentación de programas. Paso 1: Investigación y análisis de requisitos Paso 2: Diseño del esquema Paso 3: Diseño detallado Paso 4: Codificación Paso 5: Pruebas Paso 5: Preparación para la entrega del software Paso 6: Aceptación

Análisis de software Son de tipo de aplicación y no -tipo de aplicación: el tipo de aplicación se refiere al software operativo que generalmente utilizamos en nuestra vida diaria (como software de juegos, etc.). El tipo que no es de aplicación se refiere a: como el sistema operativo de una PC, etc. Ya sea del tipo aplicación o no aplicación, su proceso de desarrollo es el mismo: análisis de requisitos (1. Diseño de esquema 2. Diseño detallado 3. Investigación de diseño) presupuesto de software, modelado de datos, desarrollo real, pruebas unitarias, pruebas de integración, aceptación del proyecto. y otros procesos.

Proceso de desarrollo de software (proceso de desarrollo de software)

El proceso general de ideas y métodos de diseño de software, incluidos los algoritmos y métodos para diseñar funciones e implementación de software, el diseño general de la estructura y los módulos. del software Diseño, programación y depuración, depuración y prueba conjuntas de programas, así como redacción y envío de programas.

1 Los analistas y usuarios de sistemas relevantes tienen una comprensión preliminar de los requisitos y luego usan WORD para enumerar los módulos funcionales grandes del sistema a desarrollar, qué módulos funcionales pequeños tiene cada módulo funcional grande y algunos Los requisitos son relativamente claros y relevantes al diseñar la interfaz, en este paso se puede definir preliminarmente una pequeña cantidad de interfaces.

2 Los analistas de sistemas tienen una comprensión y un análisis profundos de los requisitos y utilizan WORD o herramientas relacionadas para crear un documento de requisitos funcionales para el sistema documental en función de su propia experiencia y necesidades. Este documento describirá claramente los módulos funcionales grandes del sistema de ejemplo, qué módulos funcionales pequeños tienen los módulos funcionales grandes y también proporcionará ejemplos de interfaces relacionadas y funciones de interfaz.

3 Analistas del sistema y usuarios reconfirman los requisitos.

4 El analista de sistemas utiliza un método iterativo para hacer un diseño general del sistema para cada interfaz o función en función de la interfaz y los requisitos funcionales ejemplificados en el documento de requisitos confirmados.

5 El analista del sistema entrega el documento de diseño del esquema escrito al programador, y el programador lo escribe uno por uno de acuerdo con los ejemplos de funciones.

6 Pon a prueba el sistema escrito. Déselo a los usuarios para que lo usen. Una vez que los usuarios lo usan, confirman cada función una por una y luego la aceptan.

Por ejemplo:

1 Una empresa quería encontrar a alguien que personalizara un conjunto de software de gestión de personal y se enteró por algunos canales de que brindamos este tipo de servicio, por lo que se puso en contacto con nosotros. Nos jodieron.

2 Les enviaremos ingenieros de software especializados para que comprendan qué queremos diseñar para que lo utilicen y luego regresaremos para hacerles un plan. El contenido del plan incluye: El software aproximado que usaremos. desarrollar ¿Cómo es la interfaz? ¿Quién puede usarlo? ¿Quién puede utilizar qué funciones? ¿Qué tan conveniente es? ¿Cuáles son los requisitos aproximados de hardware?

3 Después de leer el plan, determinaron que querían crear dicho conjunto de software y comencé a desarrollar este conjunto de software.

4 Les entregamos el software desarrollado para su uso. Si hay algún inconveniente o no cumple con los requisitos durante el uso, modificaremos estas funciones lo antes posible hasta que todas las funciones lo requieran. solucionado perfectamente. El contenido del desarrollo de software es: requisitos, diseño, programación y pruebas. Requisitos: no solo las necesidades del usuario, sino todas las necesidades encontradas durante el desarrollo. Por ejemplo, primero necesita saber qué problema debe resolver este proyecto; qué datos deben ingresarse en el caso de prueba... Para comprender claramente estos requisitos, a menudo es necesario comunicarse con los clientes, gerentes de proyectos, etc.

Diseño: Antes de codificar, debe haber un plan que te diga qué hacer, cuál es la estructura, etc. Debes seguir esto, de lo contrario puedes terminar en un lío.

Programación: Si su programa no puede ejecutarse o no cumple con los requisitos del cliente en la fecha límite del proyecto, no recibirá el dinero.

Prueba: El propósito es avisarte cuando esté completo. Si eres inteligente, primero debes escribir el examen para saber inmediatamente si realmente lo completaste. De lo contrario, a menudo no se sabe qué funciones se han completado realmente y en qué medida están respecto de los objetivos esperados.

En el desarrollo de software, los clientes y desarrolladores tienen sus propios derechos y obligaciones básicos.

Cliente:

Defina la prioridad comercial de las necesidades de cada usuario;

Desarrollar un plan general, que incluya cuánta inversión, cuánto tiempo llevará y qué se lograrán los objetivos;

Cada semana laboral durante el proceso de desarrollo del proyecto puede maximizar el retorno de la inversión;

Capte con precisión el progreso del proyecto ejecutando repetidamente las pruebas funcionales que especifique la situación ;

Capacidad para cambiar los requisitos, la funcionalidad o las prioridades en cualquier momento evitando reinversiones costosas; Capacidad para ajustar rápidamente los planes del proyecto de acuerdo con diversos cambios;

Capacidad para cancelar proyectos en cualquier momento Cancelación del proyecto En este momento, el trabajo de desarrollo anterior no es un montón de basura, las funciones desarrolladas están en línea con los requisitos y el trabajo en curso o inacabado no debería ser difícil de asumir. Desarrollador:

Sabe qué hacer y qué priorizar

Trabaja de manera eficiente

Disponible para clientes y colegas cuando hay preguntas o dificultades, respuestas o ayuda; de los superiores;

Evaluar el trabajo y reevaluarlo de manera oportuna de acuerdo con los cambios en la situación circundante;

Emprender activamente el trabajo en lugar de aceptar asignaciones pasivamente;

40 horas semanales de trabajo, sin horas extras.

El proceso de desarrollo de software puede incluir las siguientes 6 etapas:

Planificar

Una definición general del problema a resolver, incluyendo la comprensión de los requisitos del usuario y las Entorno real, investigar y demostrar la viabilidad de este proyecto de software desde tres aspectos: factores técnicos, económicos y sociales, preparar un informe de estudio de viabilidad, explorar soluciones al problema y analizar los recursos disponibles (como hardware de computadora, software del sistema, mano de obra). , etc. ) costos, beneficios alcanzables y estimaciones del progreso del desarrollo. Desarrollar un plan de implementación para completar las tareas de desarrollo.

Análisis

El análisis de requisitos de software consiste en responder a la pregunta de qué hacer. 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.

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.

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.

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

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 y los resultados esperados constituyen el 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. El objeto de prueba es el programa fuente, que se basa en 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. Método de caja negra.

Mantenimiento

El mantenimiento se refiere a cierta ingeniería de software realizada 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. 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 fase 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.