4.13 SE. Ingeniería de Software (29 horas como mínimo)

SE/Diseño de Software. (8 horas)
SE/Usando APIs. (3 horas)
SE/Herramientas y Entornos de Software. (3 horas)
SE/Procesos de Software. (2 horas)
SE/Especificación de Requerimientos. (4 horas)
SE/Validación y verificación de software. (3 horas)
SE/Evolución del Software. (3 horas)
SE/Administración de Proyectos de Software. (3 horas)
SE/Computación Basada en Componentes.
SE/Métodos Formales.
SE/Confiabilidad del Software.
SE/Desarrollo de Sistemas Especializados.
SE/Evaluación de riesgos.
SE/Mejorando la programación: robustez y seguridad.

Ingeniería de software es la disciplina concerniente a la aplicación de la teoría, conocimiento, y práctica para construir sistemas de software de manera eficaz y eficiente que satisfagan los requerimientos de usuarios y clientes. La Ingeniería de Software es aplicable a pequeños, medianos, y sistemas a gran escala. Abarca todas las fases del ciclo de vida de un sistema de software. El ciclo de vida incluye especificación y análisis de requerimientos, diseño, construcción, prueba, despliegue, y operación y mantenimiento.

La Ingeniería de Software emplea métodos, procesos, técnicas y mediciones de ingeniería. Se beneficia del uso de herramientas para gestionar el desarrollo de software; analizar y modelar artefactos de software; medir y controlar la calidad; y para asegurar un disciplinado, acercamiento controlado a la evolución de software y su reutilización. El desarrollo del software, el cuál puede invoucrar a un solo desarrollor o a un equipo de desarrolladores, requiere la elección herramientas, métodos y enfoques que son más aplicables para un determinado ambiente de desarrollo. La caja de herramientas de la Ingeniería de Software ha evolucionado a través de los años; por ejemplo, el uso de contratos (tales como una cláusula ``se requiere", una cláusula "se asegura", invariantes de clase, etc.) ahora se considera una buena práctica.

Los elementos de la ingeniería de software son aplicables al desarrollo de software en cualquier dominio de la aplicación de computación donde el profesionalismo, la calidad, los plazos, y el costo son importantes para producir un sistema de software.



Subsections
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, Universidad Católica San Pablo, Arequipa-Peru
basado en el modelo de la Computing Curricula de IEEE-CS/ACM