วิศวกรรมศาสตรมหาบัณฑิตสาขาวิศวกรรมซอฟต์แวร์
University of Maryland - A. James Clark School of Engineering
ข้อมูลสำคัญ
ที่ตั้งวิทยาเขต
College Park, สหรัฐอเมริกา
ภาษา
ภาษาอังกฤษ
รูปแบบการเรียน
การเรียนทางไกล, ในมหาวิทยาลัย
ระยะเวลา
2 ปี
ก้าว
เต็มเวลา, ไม่เต็มเวลา
ค่าเทอม
USD 45,000 / per course *
หมดเขตรับสมัคร
15 May 2024
วันที่เริ่มต้นเร็วที่สุด
28 May 2024
* ค่าเล่าเรียนในมหาวิทยาลัย: $1,086.53 ต่อชั่วโมงเครดิต / ค่าเล่าเรียนออนไลน์: $1,340.39 ต่อชั่วโมงเครดิต
บทนำ
โปรแกรมวิศวกรรมซอฟต์แวร์เกี่ยวข้องกับการพัฒนาและบำรุงรักษาระบบซอฟต์แวร์ที่ทำงานได้อย่างน่าเชื่อถือและมีประสิทธิภาพ มีราคาย่อมเยาในการพัฒนาและบำรุงรักษา และตอบสนองความต้องการทั้งหมดที่ลูกค้ากำหนดไว้สำหรับพวกเขา คณาจารย์ของเราประกอบด้วยนักวิจัยและผู้ปฏิบัติงานระดับโลกที่ใช้หลักการวิศวกรรมซอฟต์แวร์ล่าสุดในโครงการขนาดใหญ่ที่ NASA, DARPA, Raytheon และ Lockheed Martin
นักศึกษาที่ได้รับปริญญาวิศวกรรมศาสตรมหาบัณฑิตหรือประกาศนียบัตรบัณฑิตสาขาวิศวกรรมผ่านโปรแกรมของเราจะได้เรียนรู้การพัฒนาและบำรุงรักษาระบบซอฟต์แวร์ราคาไม่แพง เชื่อถือได้ และมีประสิทธิภาพที่สอดคล้องกับความต้องการของลูกค้า หลักสูตรมุ่งเน้นไปที่สามด้านเทคนิค ได้แก่ ความปลอดภัยทางไซเบอร์ วิศวกรรมคอมพิวเตอร์ และวิศวกรรมระบบ เพื่อเตรียมความพร้อมให้นักเรียนเพื่อช่วยแก้ปัญหาเร่งด่วนในโลกแห่งความเป็นจริง
การรับสมัคร
หลักสูตร
วุฒิการศึกษา
ปริญญาโทสาขาวิศวกรรมศาสตร์: 30 หน่วยกิตหรือ 10 หลักสูตร
นักเรียนที่ดำเนินการตามตัวเลือกนี้จะต้องสำเร็จหลักสูตรห้าหลักสูตรจากหลักสูตรแกนกลาง วิชาเลือกทางเทคนิคเฉพาะซอฟต์แวร์ 1 รายการ และวิชาเลือกทางเทคนิคเพิ่มเติม 4 รายการ ไม่มีการวิจัยหรือวิทยานิพนธ์ที่จำเป็นสำหรับปริญญานี้
Graduate Certificate in Engineering: 12 หน่วยกิตหรือ 4 หลักสูตร
นักศึกษาที่ได้รับประกาศนียบัตรบัณฑิตสาขาวิศวกรรมศาสตร์จะต้องสำเร็จหลักสูตรสี่หลักสูตรต่อไปนี้:
- ENPM611 วิศวกรรมซอฟต์แวร์
- ENPM612 ข้อกำหนดของระบบและซอฟต์แวร์
- ENPM613 การออกแบบและการใช้งานซอฟต์แวร์
- ENPM614 การทดสอบและบำรุงรักษาซอฟต์แวร์
หลักสูตร
ENPM611 วิศวกรรมซอฟต์แวร์ (3 หน่วยกิต) | แกนกลาง
ฤดูใบไม้ร่วง 2567 M 16:00 - 18:40 น. Christopher Ackermann
จะมีการกล่าวถึงแนวคิด วิธีการ และแนวปฏิบัติทางวิศวกรรมซอฟต์แวร์ที่สำคัญต่อทั้งนักทฤษฎีและผู้ปฏิบัติงาน มีการนำเสนอความรับผิดชอบทั้งหมดที่คาดหวังจากวิศวกรซอฟต์แวร์ ครอบคลุมพื้นที่พื้นฐานของการพัฒนาข้อกำหนด การออกแบบซอฟต์แวร์ ภาษาการเขียนโปรแกรม และการทดสอบอย่างกว้างขวาง รวมถึงเซสชันในด้านการสนับสนุน เช่น วิศวกรรมระบบ การจัดการโครงการ และการประมาณค่าซอฟต์แวร์ด้วย
วิชาบังคับก่อน: มีความสามารถในภาษาโปรแกรมเดียวและต้องสำเร็จหลักสูตรวิศวกรรมซอฟต์แวร์ระดับปริญญาตรีหรือได้รับอนุญาตจากผู้สอนหลักสูตร
ข้อกำหนดของระบบและซอฟต์แวร์ ENPM612 (3 หน่วยกิต) | แกนกลาง
จะมุ่งเน้นไปที่ด้านทฤษฎีและการปฏิบัติของการพัฒนาข้อกำหนด นักเรียนจะรับรู้ถึงสถานที่ที่มีความต้องการ วิธีทำงานกับผู้ใช้ วิธีการและเทคนิคความต้องการ ประเภทข้อกำหนดต่างๆ วิธีกำหนดตารางการพัฒนาข้อกำหนด วิวัฒนาการข้อกำหนด วิธีการสร้างแบบจำลองและสร้างต้นแบบข้อกำหนด วิธีประเมินและจัดการความเสี่ยงในข้อกำหนด เทคนิคในการทดสอบข้อกำหนด วิธีการจัดการกระบวนการข้อกำหนด และวิธีเขียนเอกสารข้อกำหนดที่มีประสิทธิผล
วิชาบังคับก่อน: ENPM611
ENPM613 การออกแบบและการใช้งานซอฟต์แวร์ (3 หน่วยกิต) | แกนกลาง
ฤดูใบไม้ร่วง 2567 W 19:00 - 21:40 น. Tony Barber
ครอบคลุมกระบวนการออกแบบซอฟต์แวร์ ตั้งแต่การทำความเข้าใจความต้องการหรือปัญหาไปจนถึงการสร้างสถาปัตยกรรมที่เหมาะสมและโซลูชันการออกแบบโดยละเอียด ไปจนถึงการรักษาและพัฒนาการออกแบบระหว่างการใช้งานและการบำรุงรักษา หัวข้อการศึกษาหลัก ได้แก่ แบบจำลองการวิเคราะห์ความต้องการ การออกแบบที่เน้นผู้ใช้เป็นศูนย์กลาง การออกแบบสถาปัตยกรรมโดยอาศัยการสลายตัวและองค์ประกอบ รูปแบบสถาปัตยกรรมและกลยุทธ์ทางสถาปัตยกรรมเพื่อรองรับคุณลักษณะคุณภาพต่างๆ เช่น ความปลอดภัยและการใช้งาน การออกแบบเพื่อการใช้ซ้ำและการใช้ซ้ำ หลักการออกแบบเชิงวัตถุโดยละเอียด (เช่น SOLID) และรูปแบบการออกแบบ แนวทางการประเมิน เปรียบเทียบ และเลือกแนวทางการออกแบบ สัญลักษณ์มาตรฐานสำหรับการบันทึกมุมมองสถาปัตยกรรม การออกแบบโดยละเอียด และแบบจำลองการวิเคราะห์ และมาตรฐานอุตสาหกรรมสำหรับการสร้างสรรค์ผลงานการออกแบบ นักเรียนจะได้รับไม่เพียงแต่ความรู้ทางเทคนิคเท่านั้น แต่ยังรวมถึงทักษะด้านอารมณ์ เช่น การสื่อสาร การทำงานร่วมกัน การคิดเชิงวิพากษ์ ความเป็นผู้นำ การเจรจาต่อรอง และการบริหารเวลา
วิชาบังคับก่อน: ENPM611
ENPM614 การทดสอบและบำรุงรักษาซอฟต์แวร์ (3 หน่วยกิต) | แกนกลาง
วัตถุประสงค์ของหลักสูตรนี้คือเพื่อให้ภาพรวมของการทดสอบและการบำรุงรักษาซอฟต์แวร์ และกิจกรรมเหล่านี้เหมาะสมกับวงจรชีวิตวิศวกรรมซอฟต์แวร์อย่างไร ตัวอย่างมากมายที่ใช้ในการบรรยายได้มาจากการวิเคราะห์ระบบต่างๆ ของ NASA หัวข้อต่างๆ รวมถึงการทดสอบในรูปแบบต่างๆ เช่น การทดสอบฟังก์ชัน การทดสอบเชิงรวมกัน การทดสอบโครงสร้าง การทดสอบตามแบบจำลอง การทดสอบเชิงความปลอดภัย รวมถึงบทบาทของสถาปัตยกรรมซอฟต์แวร์ในการทดสอบและบำรุงรักษา การทดสอบการถดถอย การทดสอบอัตโนมัติ ความครอบคลุมของการทดสอบ รวมถึงการครอบคลุม MC/DC และมาตรฐานการทดสอบ
วิชาบังคับก่อน: ENPM611
ENPM637 การจัดการโครงการวิศวกรรมซอฟต์แวร์ (3 หน่วยกิต) | วิชาเลือก
หลักสูตรนี้กล่าวถึงความกว้างของการจัดการโครงการวิศวกรรมซอฟต์แวร์ ซึ่งจะช่วยในการเปลี่ยนวิศวกรซอฟต์แวร์ที่สร้างแรงบันดาลใจให้กลายเป็นผู้นำโครงการซอฟต์แวร์ หลักสูตรนี้จะสอนหลักการ วิธีการ และเครื่องมือขั้นสูงสำหรับการจัดการโครงการซอฟต์แวร์ในบริบทวิศวกรรมซอฟต์แวร์ที่สมจริง กรอบงานการจัดการโครงการแบบผสมผสาน (ILPM) ซึ่งเป็นลูกผสมที่มุ่งเน้นการนำไปปฏิบัติของสถาบันการจัดการโครงการแบบดั้งเดิม (PMI) และกระบวนทัศน์การจัดการโครงการแบบ Agile จะได้รับการฝึกสอน หลังจากจบหลักสูตรนี้ นักเรียนจะสามารถ: เลือกและปรับโครงการวิศวกรรมซอฟต์แวร์โดยการสร้างกรณีธุรกิจที่เกี่ยวข้อง การจัดการความต้องการของลูกค้า การพัฒนาองค์ประกอบสำคัญของแผนโครงการวิศวกรรมซอฟต์แวร์และกระบวนการวางแผน ระบุความเสี่ยงของโครงการซอฟต์แวร์ และพัฒนากลยุทธ์การลดความเสี่ยง พัฒนาทีมงานโครงการเพื่อสร้างและส่งมอบผลิตภัณฑ์ ทำความเข้าใจและใช้วิธีการในการแก้ไขและหลีกเลี่ยงปัญหาทั่วไปที่เกี่ยวข้องกับการจัดการโครงการวิศวกรรมซอฟต์แวร์ ดำเนินการตรวจสอบหลังการใช้งาน และปรับปรุงประสิทธิภาพและประสิทธิผลของโครงการพัฒนาซอฟต์แวร์
ระบบซอฟต์แวร์ที่ใช้ AI ENPM655 (3 หน่วยกิต) | วิชาเลือก
เวลาเรียนฤดูใบไม้ร่วงปี 2024/รายละเอียดเกี่ยวกับ ELMS Mikael Lindvall , Joshua Giltinan
เป้าหมายของหลักสูตรใหม่นี้คือเพื่อแก้ไขปัญหาสำคัญของการระบุ การพัฒนา และการทดสอบระบบซอฟต์แวร์ที่ใช้ส่วนประกอบของปัญญาประดิษฐ์ (AI) เนื่องจากระบบดังกล่าวมักจะมีความสำคัญต่อความปลอดภัยหรือต้องเชื่อถือได้ด้วยเหตุผลอื่น คุณภาพจึงต้องถูกสร้างขึ้นตลอดวงจรการพัฒนาซอฟต์แวร์ สิ่งสำคัญที่ควรทราบคือจุดเน้นของหลักสูตรไม่ได้อยู่ที่วิศวกรรมซอฟต์แวร์ทั่วไปหรือวิธีฝึกอบรมโครงข่ายประสาทเทียม แม้ว่าเราจะกล่าวถึงหัวข้อเหล่านั้นก็ตาม แก่นของหลักสูตรคือเกี่ยวกับวิธีการระบุ พัฒนา และทดสอบระบบซอฟต์แวร์ที่ใช้หรือใช้ AI นักวิทยาศาสตร์ด้านข้อมูลมักจะเก่งในการสร้างแบบจำลองด้วยเทคนิคที่ล้ำสมัย แต่การนำแบบจำลองเหล่านั้นไปใช้กับผลิตภัณฑ์ซอฟต์แวร์ที่ใช้งานได้ทำให้เกิดความท้าทายทางวิศวกรรมที่แตกต่างกัน ตัวอย่างเช่น นักวิทยาศาสตร์ข้อมูลอาจทำงานร่วมกับโน้ตบุ๊กที่ไม่มีเวอร์ชันบนชุดข้อมูลคงที่ และมุ่งเน้นไปที่ความแม่นยำในการคาดการณ์ โดยไม่สนใจความสามารถในการปรับขนาด ความคงทน เวลาแฝงในการอัปเดต หรือต้นทุนการดำเนินงาน ในทางตรงกันข้าม วิศวกรซอฟต์แวร์มักได้รับการฝึกอบรมโดยมีข้อกำหนดที่ชัดเจนและมีแนวโน้มที่จะมุ่งเน้นไปที่โค้ด แต่อาจไม่ทราบถึงความยากลำบากในการทำงานกับข้อมูลและโมเดลที่ไม่น่าเชื่อถือ พวกเขามีชุดเครื่องมือขนาดใหญ่สำหรับการตัดสินใจและการประกันคุณภาพ แต่อาจไม่รู้ว่าจะนำไปใช้กับระบบที่ใช้ AI และความท้าทายได้อย่างไร หลักสูตรนี้อภิปรายคำถามต่างๆ เช่น: แนวทางปฏิบัติ SE ที่มีอยู่สามารถนำมาใช้ในการสร้างระบบอัจฉริยะได้มากน้อยเพียงใด จำเป็นต้องมีแนวปฏิบัติใหม่ในระดับใด? หลักสูตรนี้นำมุมมองด้านวิศวกรรมซอฟต์แวร์มาใช้ในการสร้างระบบอัจฉริยะ โดยมุ่งเน้นไปที่สิ่งที่วิศวกรซอฟต์แวร์สามารถทำได้เพื่อเปลี่ยนแนวคิดแมชชีนเลิร์นนิงให้เป็นผลิตภัณฑ์ที่ปรับขนาดได้และเชื่อถือได้ หลักสูตรนี้จะใช้คำศัพท์และเทคนิคทางวิศวกรรมซอฟต์แวร์และระบบ (เช่น ความครอบคลุมของการทดสอบ มุมมองสถาปัตยกรรม แผนผังข้อบกพร่อง) และหารือเกี่ยวกับความท้าทายที่เกิดจากการใช้เทคนิคดังกล่าวกับการเรียนรู้ของเครื่อง/ส่วนประกอบ AI หลักสูตรนี้จะรวมถึงการบรรยายหนึ่งครั้งเกี่ยวกับการสอน/การปรับปรุงพื้นฐานของการเรียนรู้ของเครื่องและ AI เพื่อให้ความเข้าใจพื้นฐานของแนวคิดที่เกี่ยวข้อง (เช่น วิศวกรรมเชิงคุณลักษณะ การถดถอยเชิงเส้นเทียบกับแผนผังข้อบกพร่อง และโครงข่ายประสาทเทียม) หลักสูตรนี้จะครอบคลุมการคิดเชิงออกแบบและการวิเคราะห์ข้อดีข้อเสียโดยย่อ โดยจะมุ่งเน้นไปที่แนวทางปฏิบัติที่สามารถนำมาใช้ได้ในขณะนี้เป็นหลัก และจะมีการฝึกฝนแบบลงมือปฏิบัติจริงด้วยเครื่องมือและโครงสร้างพื้นฐานที่ทันสมัย
ENPM680 การเข้ารหัสที่ปลอดภัยเบื้องต้นสำหรับวิศวกรรมซอฟต์แวร์ (3 หน่วยกิต) | วิชาเลือก
เวลาเรียนฤดูใบไม้ร่วงปี 2024/รายละเอียดเกี่ยวกับ ELMS Gananand Kini
ซอฟต์แวร์แพร่หลายในชีวิตประจำวันของเรา และเป็นส่วนสำคัญของเทคโนโลยีมากมายที่ผู้คนทั่วโลกใช้ แอปพลิเคชันมีทั้งความซับซ้อนและหลากหลาย รวมถึงแต่ไม่จำกัดเพียงโดเมนจำนวนมากที่มีการใช้เทคโนโลยี เช่น การสื่อสาร การเงิน การผลิต ฯลฯ ซอฟต์แวร์มีแนวโน้มที่จะล้มเหลว [1] เนื่องจากปัจจัยหลายประการ และสาเหตุของความล้มเหลวของซอฟต์แวร์เหล่านี้คือ เรียกว่าแมลง อย่างไรก็ตาม ระดับที่สำคัญของข้อบกพร่องเหล่านี้มีแนวโน้มที่จะมีผลกระทบด้านความปลอดภัยที่ร้ายแรง ซึ่งส่งผลต่อการรักษาความลับ ความสมบูรณ์ ความพร้อมใช้งาน และการไม่ปฏิเสธ ซึ่งเป็นรากฐานของการรักษาความปลอดภัยในการจัดการและใช้งานระบบซอฟต์แวร์ดังกล่าว หลักสูตรนี้จะครอบคลุมแนวคิดและเทคนิคหลักในการวิเคราะห์และระบุข้อบกพร่องด้านความปลอดภัยดังกล่าว และวิธีที่เป็นไปได้ในการลดความเสี่ยง แนวคิดต่างๆ จะถูกนำเสนอและอภิปรายในบริบทของเจตนาของฝ่ายตรงข้ามในการเปลี่ยนแปลงหรือล้มล้างพฤติกรรมของซอฟต์แวร์ที่มีผลกระทบด้านความปลอดภัย หลักสูตรนี้ไม่ได้คาดหวังให้นักเรียนมีประสบการณ์ด้านความปลอดภัยมาก่อน หลังจากจบหลักสูตรนี้ ผู้เรียนจะคุ้นเคยกับ: 1. การตรวจสอบแอปพลิเคชันซอฟต์แวร์เพื่อค้นหาจุดอ่อนด้านความปลอดภัย 2. อธิบายจุดอ่อนโดยใช้ CWE 3. วิธีการและเทคนิคที่ใช้ในการทบทวนเพียร์โค้ด 4. การใช้เครื่องมือวิเคราะห์เพื่อค้นหาจุดอ่อนด้านความปลอดภัย [1] https://spectrum.ieee.org/computing/software/why-software-fails
ENPM696 วิศวกรรมซอฟต์แวร์ย้อนกลับ (3 หน่วยกิต) | แกนกลาง
ฤดูใบไม้ร่วงปี 2024 W 16:00 - 18:40 น. Allen Hazelton
หลักสูตรนี้ให้ความเข้าใจเชิงลึกเกี่ยวกับแนวคิดวิศวกรรมย้อนกลับของซอฟต์แวร์และการฝึกอบรมภาคปฏิบัติด้วยเครื่องมือวิศวกรรมย้อนกลับ รวมถึงตัวแยกชิ้นส่วน ตัวถอดรหัส และเครื่องวิเคราะห์โค้ด นักเรียนจะคุ้นเคยกับทั้งซอฟต์แวร์ระดับต่ำและชุดคำสั่ง x86 ผ่านการย้อนกลับแบบไบนารี หลักสูตรนี้ยังให้ข้อมูลเชิงลึกในหลายวิชา เช่น ความปลอดภัยของระบบ การวิเคราะห์ซอร์สโค้ด การออกแบบซอฟต์แวร์ และความเข้าใจโปรแกรมที่จะเป็นประโยชน์ในสาขาต่างๆ
วิชาบังคับก่อน: ENPM691 และ CMSC106
อันดับ
โปรแกรมออนไลน์
#6 หลักสูตรวิศวกรรมบัณฑิตออนไลน์ - US News and World Report หลักสูตรวิศวกรรมบัณฑิตออนไลน์ที่ดีที่สุด
หลักสูตรบัณฑิตศึกษาของสหรัฐอเมริกา
#19 บัณฑิตวิศวกรรมศาสตร์ - US News and World Report 2023 หลักสูตรบัณฑิตศึกษาด้านวิศวกรรมที่ดีที่สุด
ความชำนาญ:
- #15 วิศวกรรมการบินและอวกาศ
- #16 วิศวกรรมไฟฟ้า; #15 วิศวกรรมคอมพิวเตอร์
- #17 วิศวกรรมเครื่องกล
การจัดอันดับผู้ประกอบการ
- #7 หลักสูตรระดับปริญญาตรี
- #18 หลักสูตรบัณฑิตศึกษา
โรงเรียน 50 อันดับแรกสำหรับโครงการผู้ประกอบการโดย Princeton Review"