Teoría marxista, lenguas extranjeras universitarias, matemáticas avanzadas, física universitaria, experimentos físicos, álgebra lineal, teoría de probabilidad y estadística matemática, lenguajes de programación, estructuras de datos, matemáticas discretas, sistemas operativos, tecnología de compilación, Introducción a la Ingeniería de Software, Lenguaje Unificado de Modelado, Arquitectura de Software, Requisitos de Software, Gestión de Proyectos de Software.
Además de los cursos básicos, esta especialidad también estudiará sistemáticamente matemáticas discretas, estructuras de datos, análisis de algoritmos, programación orientada a objetos, sistemas operativos modernos, principios de bases de datos y tecnologías de implementación, principios de compilación, ingeniería de software y gestión de proyectos de software, seguridad informática y otros cursos, y algunos otros cursos optativos se pueden tomar según los intereses de los estudiantes.
Vínculos prácticos: pasantía de graduación, diseño curricular, pasantía de ingeniería informática, pasantía de producción, proyecto de graduación (tesis).
El objetivo de la ingeniería de software es:
Bajo la premisa de un costo y un cronograma determinados, desarrollar software que tenga aplicabilidad, efectividad, modificabilidad, confiabilidad, comprensibilidad y reproducibilidad. , portabilidad, trazabilidad, interoperabilidad y productos de software que satisfagan las necesidades de los usuarios. Perseguir estos objetivos ayudará a mejorar la calidad y la eficiencia del desarrollo de productos de software y reducirá la dificultad de mantenimiento.
(1) Aplicabilidad: Qué tan fácil es para el software satisfacer las necesidades del usuario bajo diferentes restricciones del sistema.
(2) Efectividad: Los sistemas de software pueden hacer el uso más eficiente de los recursos de tiempo y espacio de la computadora. Varios programas utilizan la sobrecarga de tiempo/espacio del sistema como un indicador técnico importante para medir la calidad del software. En muchas ocasiones, la búsqueda de la validez temporal y la validez espacial será contradictoria, por lo que tendremos que sacrificar la validez temporal por la validez espacial, o sacrificar la validez espacial por la validez temporal. El equilibrio tiempo/espacio es una técnica comúnmente utilizada.
(3) Modificabilidad: El sistema se puede modificar sin aumentar la complejidad del sistema original. Admite la depuración y el mantenimiento del software, un objetivo inalcanzable.
(4) Confiabilidad: Capaz de prevenir fallas del sistema de software causadas por conceptos, diseños y estructuras imperfectos, y tiene la capacidad de recuperar fallas del sistema de software causadas por operaciones incorrectas.
(5) Comprensibilidad: La estructura del sistema es clara y puede reflejar directamente las necesidades del problema. La comprensibilidad ayuda a controlar la complejidad del software del sistema y respalda el mantenimiento, la portabilidad o la reutilización del software.
(6) Mantenibilidad: una vez que el software se entrega para su uso, se puede modificar para corregir errores ocultos, mejorar el rendimiento y otros atributos, y hacer que el producto de software se adapte a los cambios en el entorno. Los costos de mantenimiento del software representan una gran proporción de los costos de desarrollo de software. La mantenibilidad es un objetivo muy importante en la ingeniería de software.
(7) Reusabilidad: Definir uno o un grupo de módulos relacionados con conceptos o funciones relativamente independientes como componentes de software. Se puede instalar en cualquier parte del sistema, reduciendo la carga de trabajo.
(8) Portabilidad: La facilidad con la que el software se puede transferir de un sistema o entorno informático a otro.
(9) Trazabilidad: la capacidad de rastrear el diseño y los procedimientos del software hacia adelante según los requisitos del software, o rastrear los requisitos del software hacia atrás según el diseño y los procedimientos del software.
(10) Interoperabilidad: la capacidad de múltiples elementos de software para comunicarse entre sí y colaborar para completar tareas.
Referencia del contenido anterior: Enciclopedia Baidu-Ingeniería de software; Especialización en ingeniería de software de Enciclopedia Baidu