Colección de citas famosas - Colección de máximas - ¿Qué conocimientos son necesarios para dedicarse al desarrollo de software?

¿Qué conocimientos son necesarios para dedicarse al desarrollo de software?

1. En primer lugar, amo esta especialización. Sólo así se puede encontrar la verdadera felicidad en la teoría abstracta. ¿Y si?

Si no la amas, o simplemente porque es una especialidad popular, te recomendamos encarecidamente que abandones esta especialidad, porque las computadoras son un arma de doble filo. Si estudias bien, tendrás éxito en tu carrera oficial. Si no estudias bien, te sentirás extremadamente miserable después de graduarte. Sin éxito, no hay potencial de desarrollo, al igual que los estudiantes ingleses que llegan a Estados Unidos. ?

No mires este tema desde una perspectiva utilitaria. Definitivamente no es una especialización en la que puedas ganar dinero con solo un clic del mouse. No piense en ganar dinero con su sitio web ni en aumentar la publicidad basándose en las tasas de clics. Esto pasó de moda hace cuatro años. Si todavía piensas así, deja de decirlo, porque te parecerá muy vulgar. La sensación de logro en las carreras de informática siempre va acompañada de dolor físico, como hombro congelado, espondilosis cervical, síndrome del ojo seco, caída del cabello, hernia de disco lumbar y artritis.

3.Comprender el significado de “ciencia” y “tecnología” informática. Hacer páginas web, hacer fotografías, hacer flash, jugar, navegar por Internet, escuchar música, grabar mp3, hacer subtítulos de películas, instalar Windows, cambiar el registro, cambiar software... esto no se llama informática y tecnología. Si te especializas en informática, puedes hacer lo anterior. Sí, no puedes hacerlo y no hay por qué avergonzarse de ello. Lo que necesitas no es que te llamen "gurú". ?

4. Dejar claro si la dirección profesional final es software o hardware. ¿La dirección es Internet? El networking no es un campo profesional. La red es la cristalización de la sabiduría de los mejores ingenieros de software, los mejores ingenieros de hardware y los mejores ingenieros de comunicaciones. Si está en la dirección del software, escuche atentamente los cursos de hardware después de estudiar un paquete de cursos como matemáticas, estructuras de datos, diseño de algoritmos, análisis numérico, lenguaje ensamblador, sistemas operativos, principios de compilación, principios de bases de datos e ingeniería de software. La ingeniería de software definitivamente no es un curso que pueda aprenderse mediante la memorización. La teoría de la computación puede ser aprendida por una sola persona. La ingeniería de software es el resultado de décadas de lecciones fallidas aprendidas por decenas de millones de ingenieros de software de redes. Por favor escuche atentamente. No preguntes qué idioma deberías aprender. Los estudiantes de informática deben tener la capacidad de dominar cualquier idioma en una hora y poder decir "hola mundo" durante al menos 10 minutos. Si hay dos lenguajes que hay que aprender son c++ y java. No están aprendiendo el idioma, sino aprendiendo el pensamiento de C++ y Java. Una es la teoría básica del software y la otra está orientada a objetos.

El desarrollo de software es el proceso de construcción de un sistema de software o parte de software de un sistema en función de las necesidades del usuario. El desarrollo de software es un proyecto sistemático que incluye la captura de requisitos, el análisis de requisitos, el diseño, la implementación y las pruebas. El software generalmente se implementa utilizando lenguajes de programación. Por lo general, el desarrollo se puede realizar utilizando herramientas de desarrollo de software. El software se divide en software del sistema y software de aplicación. No solo incluye programas que se pueden ejecutar en la computadora, sino que también los archivos relacionados con estos programas generalmente se consideran parte del software. El proceso general de ideas y métodos de diseño de software, incluido el diseño de funciones, algoritmos y métodos de software, el diseño de la estructura general y el diseño de módulos del software, la programación y depuración, la depuración y prueba de programas, y la redacción y envío de programas.

1 Plan

Definir a grandes rasgos el problema a resolver, incluyendo la comprensión de las necesidades de los usuarios y del entorno real, e investigar y demostrar desde tres aspectos: tecnología, economía, y factores sociales. La viabilidad de este proyecto de software, redactando un informe de estudio de viabilidad, discutiendo métodos para resolver el problema y estimando el costo de los recursos disponibles (como hardware de computadora, software de sistema, mano de obra, etc.). ), los beneficios obtenibles 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 hipótesis sobre qué tipo de software desarrollar. 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 expresarlas en un lenguaje de desarrollo de ingeniería de software (especificación funcional formal, es decir, especificación de requisitos). Las tareas básicas en esta etapa son determinar el problema a resolver con el usuario, establecer el modelo lógico del software, escribir el documento de especificación de requisitos y finalmente 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 especificació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.

En la etapa inicial de cualquier desarrollo de software o sistema, es necesario comprender plenamente las necesidades de los usuarios, de modo que en el proceso de desarrollo posterior del sistema, se pueda dar prioridad a qué funciones deben implementarse, qué especificaciones deben adoptarse y qué funciones deben implementarse. se deben establecer restricciones. En base a esto, el ingeniero de sistemas finalizará el plan de diseño y luego definirá el desarrollo posterior del programa, la funcionalidad del sistema y las descripciones y limitaciones de rendimiento.

3 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. Los módulos se refieren a datos y descripciones de programas que pueden lograr una determinada función y unidades de programa que pueden ejecutar el programa. 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.

4 Codificación

La codificación de software se refiere a convertir un diseño de software en un programa aceptable para la computadora, es decir, escribir una "lista de programas fuente" en un lenguaje de programación. 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, el lenguaje de desarrollo orientado a objetos y el entorno de desarrollo están en su mayoría 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 costo pequeño. La clave para lograr este objetivo es diseñar un excelente conjunto de casos de prueba (los datos de prueba, las funciones 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.

6 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, diseño, codificación y pruebas) se completa y se entrega para su uso. Es decir, con base en el 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 de un software de tamaño mediano dura de uno a dos años, entonces puede tardar entre cinco y diez años en ejecutarse o funcionar una vez que se pone 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, aportando 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.