
Maestría en Ingeniería en Ingeniería de Software
College Park, Estados Unidos de América
DURACIÓN
2 Years
IDIOMAS
Inglés
PASO
Tiempo completo, Tiempo parcial
PLAZO DE SOLICITUD
15 Dec 2024
FECHA DE INICIO MÁS TEMPRANA
01 Jan 2025
TASAS DE MATRÍCULA
USD 45.000 / per course *
FORMATO DE ESTUDIO
La educación a distancia, En el campus
* Matrícula en el campus: $ 1,086.53 por hora de crédito / Matrícula en línea: $ 1,340.39 por hora de crédito
Introducción
El programa de Ingeniería de Software se ocupa de desarrollar y mantener sistemas de software que se comporten de manera confiable y eficiente, que sean asequibles para desarrollar y mantener, y que satisfagan todos los requisitos que los clientes han definido para ellos. Nuestra facultad está formada por investigadores y profesionales de clase mundial que aplican los últimos principios de ingeniería de software en grandes proyectos en la NASA, DARPA, Raytheon y Lockheed Martin.
Los estudiantes que obtengan una Maestría en Ingeniería o un Certificado de Posgrado en Ingeniería a través de nuestro programa aprenderán a desarrollar y mantener sistemas de software asequibles, confiables y eficientes que se alineen con las necesidades del cliente. Los cursos se enfocan en tres áreas técnicas: ciberseguridad, ingeniería informática e ingeniería de sistemas, y preparan a los estudiantes para ayudar a resolver problemas apremiantes del mundo real.
Admisiones
Plan de estudios
Requisitos de Grado
Maestría en Ingeniería: 30 créditos o 10 cursos
Los estudiantes que opten por esta opción deben completar cinco cursos del plan de estudios básico, 1 materia optativa técnica específica de software y 4 materias optativas técnicas adicionales. No se requiere investigación ni tesis para este título.
Certificado de Posgrado en Ingeniería: 12 créditos o 4 cursos
Los estudiantes que deseen obtener un Certificado de Posgrado en Ingeniería deben completar los siguientes cuatro cursos:
- ENPM611, Ingeniería de Software
- ENPM612, Requisitos del sistema y software
- ENPM613, Diseño e implementación de software
- ENPM614, Pruebas y mantenimiento de software
Cursos
ENPM611 Ingeniería de Software (3 Créditos) | Centro
Otoño 2024 lunes 4:00 pm - 6:40 pm Christopher Ackermann
Se cubrirán conceptos, métodos y prácticas de ingeniería de software importantes tanto para el teórico como para el profesional. Se presenta toda la gama de responsabilidades que se esperan de un ingeniero de software. Se cubren ampliamente las áreas fundamentales de desarrollo de requisitos, diseño de software, lenguajes de programación y pruebas. También se incluyen sesiones sobre áreas de apoyo como ingeniería de sistemas, gestión de proyectos y estimación de software.
Requisito previo: competencia en un lenguaje de programación y debe haber completado un curso universitario de ingeniería de software o el permiso del instructor del curso.
Requisitos del sistema y software ENPM612 (3 créditos) | Centro
Se centrará en los aspectos teóricos y prácticos del desarrollo de requisitos. Los estudiantes reconocerán el lugar de los requisitos, cómo trabajar con usuarios, métodos y técnicas de requisitos, los distintos tipos de requisitos, cómo establecer cronogramas de desarrollo de requisitos, evolución de requisitos, cómo modelar y crear prototipos de requisitos, cómo evaluar y gestionar el riesgo en los requisitos. técnicas para probar requisitos, cómo gestionar el proceso de requisitos y cómo redactar un documento de requisitos eficaz.
Requisito previo: ENPM611.
ENPM613 Diseño e implementación de software (3 créditos) | Centro
Otoño 2024 miércoles 7:00 pm - 9:40 pm Tony Barber
Cubre el proceso de diseño de software, desde la comprensión de la necesidad o el problema hasta la creación de una arquitectura adecuada y soluciones de diseño detalladas, hasta la preservación y evolución del diseño durante la implementación y el mantenimiento. Los principales temas de estudio incluyen modelos de análisis de requisitos; diseño centrado en el usuario; diseño arquitectónico a través de descomposición y composición; estilos de arquitectura y tácticas de arquitectura para respaldar diversos atributos de calidad, como seguridad y usabilidad; diseñar para la reutilización y con la reutilización; principios de diseño detallado orientado a objetos (como SOLID) y patrones de diseño; enfoques para evaluar, comparar y seleccionar soluciones de diseño; notaciones estándar para documentar vistas de arquitectura, diseño detallado y modelos de análisis; y estándares de la industria para la creación de entregables de diseño. Los estudiantes adquirirán no solo conocimientos técnicos, sino también habilidades sociales como comunicación, colaboración, pensamiento crítico, liderazgo, negociación y gestión del tiempo.
Requisito previo: ENPM611.
ENPM614 Pruebas y mantenimiento de software (3 créditos) | Centro
El propósito de este curso es proporcionar una descripción general de las pruebas y el mantenimiento de software y cómo estas actividades encajan en el ciclo de vida de la ingeniería de software. Muchos de los ejemplos utilizados en las conferencias se derivan del análisis de varios sistemas de la NASA. Los temas incluyen diversas formas de pruebas, como pruebas funcionales, pruebas combinatorias, pruebas estructurales, pruebas basadas en modelos, pruebas orientadas a la seguridad, así como el papel de la arquitectura de software en la capacidad de prueba y mantenimiento, pruebas de regresión, pruebas automatizadas, cobertura de pruebas, incluida la cobertura de MC/DC. y estándares de prueba.
Requisito previo: ENPM611.
ENPM637 Gestión de proyectos de ingeniería de software (3 créditos) | Electivo
Este curso aborda la amplitud de la gestión de proyectos de ingeniería de software. Ayudará a transformar a ingenieros de software inspiradores en líderes de proyectos de software. El curso impartirá principios, métodos y herramientas avanzados para la gestión de proyectos de software en un contexto realista de ingeniería de software. Se entrenará un marco de Gestión Integrada de Proyectos Lean (ILPM), que es un híbrido orientado a la implementación de los paradigmas tradicionales de Gestión de Proyectos (PMI) y Agile de gestión de proyectos. Después de completar este curso, los estudiantes podrán: seleccionar y justificar proyectos de ingeniería de software estableciendo casos comerciales relevantes, gestionando los requisitos del cliente, desarrollando componentes clave del plan de proyecto de ingeniería de software y el proceso de planificación, identificando riesgos de proyectos de software y desarrollando estrategias de mitigación de riesgos. , desarrollar un equipo de proyecto para construir y entregar el producto, comprender y aplicar métodos para resolver y evitar dificultades comunes asociadas con la gestión de proyectos de ingeniería de software, realizar revisiones posteriores a la implementación y mejorar la efectividad y eficiencia de los proyectos de desarrollo de software.
ENPM655 Sistemas de software basados en IA (3 créditos) | Electivo
Otoño de 2024 Horario de clases/detalles sobre ELMS Mikael Lindvall, Joshua Giltinan
El objetivo de este nuevo curso es abordar el importante problema de especificar, desarrollar y probar sistemas de software basados en componentes de inteligencia artificial (IA). Dado que dichos sistemas suelen ser críticos para la seguridad o deben ser confiables por otras razones, la calidad debe construirse durante todo el ciclo de vida del desarrollo de software. Es importante tener en cuenta que el enfoque del curso no es la ingeniería de software genérica ni cómo entrenar redes neuronales, aunque tocaremos esos temas. En cambio, el núcleo del curso trata sobre cómo especificar, desarrollar y probar sistemas de software que se basan o utilizan IA. Los científicos de datos suelen ser excelentes para construir modelos con técnicas de vanguardia, pero incorporar esos modelos en productos de software que funcionen presenta diferentes desafíos de ingeniería. Por ejemplo, los científicos de datos pueden trabajar con portátiles sin versiones en conjuntos de datos estáticos y centrarse en la precisión de las predicciones, ignorando la escalabilidad, la solidez, la latencia de actualización o los costos operativos. Los ingenieros de software, por el contrario, suelen recibir formación con especificaciones claras y tienden a centrarse en el código, pero es posible que no sean conscientes de las dificultades de trabajar con datos y modelos poco fiables. Tienen un amplio conjunto de herramientas para la toma de decisiones y el control de calidad, pero es posible que no sepan cómo aplicarlas a los sistemas habilitados para IA y sus desafíos. Este curso analiza preguntas como: ¿Hasta qué punto se pueden utilizar las prácticas SE existentes para construir sistemas inteligentes? ¿Hasta qué punto son necesarias nuevas prácticas? Este curso adopta una perspectiva de ingeniería de software sobre la construcción de sistemas inteligentes, centrándose en lo que un ingeniero de software puede hacer para convertir una idea de aprendizaje automático en un producto escalable y confiable. El curso utilizará terminología y técnicas de ingeniería de sistemas y software (por ejemplo, cobertura de pruebas, vistas de arquitectura, árboles de fallas) y discutirá los desafíos que plantea el uso de dichas técnicas en componentes de aprendizaje automático/IA. El curso incluirá una conferencia sobre la enseñanza y actualización de los fundamentos del aprendizaje automático y la IA para proporcionar una comprensión básica de conceptos relevantes (p. ej., ingeniería de características, regresión lineal versus árboles de fallas versus redes neuronales). El curso también cubrirá brevemente el pensamiento de diseño y el análisis de compensaciones. Se centrará principalmente en enfoques prácticos que se pueden utilizar ahora y contará con prácticas con herramientas e infraestructura modernas.
ENPM680 Introducción a la codificación segura para ingeniería de software (3 créditos) | Electivo
Otoño de 2024 Horario de clases/detalles sobre ELMS Gananand Kini
El software impregna nuestra vida cotidiana y es una parte fundamental de muchas de las tecnologías que utilizan las personas en todo el mundo. Es a la vez complejo y diverso en sus aplicaciones, que incluyen, entre otros, un número significativo de dominios donde se utiliza la tecnología, incluidas las comunicaciones, las finanzas, la fabricación, etc. El software tiende a fallar [1] debido a varios factores y estas causas de fallas del software son conocidos como errores. Sin embargo, una clase importante de estos errores tiende a tener graves implicaciones de seguridad que afectan los principios de confidencialidad, integridad, disponibilidad y no repudio que sustentan la seguridad de la gestión y operación de dichos sistemas de software. Este curso cubrirá conceptos y técnicas básicos para analizar y caracterizar dichos errores de seguridad y posibles formas de mitigarlos. Los conceptos se introducirán y discutirán dentro del contexto de la intención de un adversario de alterar o subvertir el comportamiento del software con impactos en la seguridad. El curso no espera que los estudiantes tengan experiencia previa en seguridad. Después de este curso el estudiante estará familiarizado con: 1. Auditar una aplicación de software para encontrar debilidades de seguridad. 2. Describir las debilidades utilizando CWE. 3. Metodología y técnicas utilizadas en la revisión de código por pares. 4. Utilizar herramientas de análisis para encontrar debilidades de seguridad. [1] https://spectrum.ieee.org/computing/software/why-software-fails
ENPM696 Ingeniería de software inversa (3 créditos) | Centro
Otoño de 2024 Mi 4:00 p. m. - 6:40 p. m. Allen Hazelton
Este curso proporciona una comprensión profunda de los conceptos de ingeniería inversa de software y capacitación práctica con herramientas de ingeniería inversa, incluidos desensambladores, descompiladores y analizadores de código. Los estudiantes se familiarizarán tanto con el software de bajo nivel como con el conjunto de instrucciones x86 a través de sesiones de inversión binaria. Este curso también proporciona información sobre muchos temas, como seguridad del sistema, análisis de código fuente, diseño de software y comprensión de programas, que serán beneficiosos en una variedad de campos.
Requisito previo: ENPM691 y CMSC106
clasificaciones
Programas en linea
#6 Programas de posgrado en ingeniería en línea - US News and World Report Los mejores programas de posgrado en ingeniería en línea
Programas de posgrado de EE. UU.
# 19 Ingeniería de posgrado - Informe mundial y noticias de EE. UU. 2023 Mejores programas de posgrado en ingeniería
Especialidades:
- # 15 Ingeniería aeroespacial
- #16 Ingeniería Eléctrica; # 15 Ingeniería Informática
- # 17 Ingeniería Mecánica
Clasificaciones de emprendimiento
- #7 Programa de Pregrado
- #18 Programa de Posgrado
Las 50 mejores escuelas de Princeton Review para programas de emprendimiento"
Cuota de matrícula del programa
Requisitos de lengua inglesa
¡Certifica tu dominio del inglés con el Duolingo English Test! El DET es un examen de inglés en línea conveniente, rápido y asequible aceptado por más de 4000 universidades (como esta) en todo el mundo.