Thạc sĩ Kỹ thuật trong Kỹ thuật phần mềm
University of Maryland - A. James Clark School of Engineering
Thông tin mấu chốt
Địa điểm cơ sở
College Park, Hoa Kỳ
Ngôn ngữ
Tiếng Anh
Hình thức học tập
Học từ xa, Trong khuôn viên trường
Khoảng thời gian
2 năm
Nhịp độ
Toàn thời gian, Bán thời gian
Học phí
USD 45.000 / per course *
Hạn nộp hồ sơ
15 May 2024
ngày bắt đầu sớm nhất
28 May 2024
* học phí trong khuôn viên trường: $1.086,53 mỗi giờ tín dụng / học phí trực tuyến: $1.340,39 mỗi giờ tín dụng
Giới thiệu
Chương trình Kỹ thuật phần mềm liên quan đến việc phát triển và duy trì các hệ thống phần mềm hoạt động đáng tin cậy và hiệu quả, có chi phí hợp lý để phát triển và bảo trì, đồng thời đáp ứng tất cả các yêu cầu mà khách hàng đã xác định cho họ. Khoa của chúng tôi bao gồm các nhà nghiên cứu và học viên đẳng cấp thế giới, những người áp dụng các nguyên tắc Kỹ thuật phần mềm mới nhất cho các dự án lớn tại NASA, DARPA, Raytheon và Lockheed Martin.
Sinh viên có bằng Thạc sĩ Kỹ thuật hoặc Chứng chỉ Tốt nghiệp Kỹ sư thông qua chương trình của chúng tôi sẽ học cách phát triển và duy trì các hệ thống phần mềm hiệu quả, đáng tin cậy và giá cả phải chăng, phù hợp với nhu cầu của khách hàng. Các khóa học tập trung vào ba lĩnh vực kỹ thuật—an ninh mạng, kỹ thuật máy tính và kỹ thuật hệ thống—chuẩn bị cho sinh viên giúp giải quyết các vấn đề cấp bách trong thế giới thực.
Tuyển sinh
Chương trình giảng dạy
Yêu cầu Bằng cấp
Thạc sĩ Kỹ thuật: 30 tín chỉ hoặc 10 khóa học
Học sinh theo đuổi lựa chọn này phải hoàn thành năm khóa học từ chương trình giảng dạy cốt lõi, 1 môn tự chọn kỹ thuật dành riêng cho phần mềm và 4 môn tự chọn kỹ thuật bổ sung. Không có nghiên cứu hoặc luận án cần thiết cho mức độ này.
Chứng chỉ sau đại học về Kỹ thuật: 12 tín chỉ hoặc 4 khóa học
Sinh viên theo đuổi Chứng chỉ tốt nghiệp Kỹ thuật phải hoàn thành bốn khóa học sau:
- ENPM611, Kỹ thuật phần mềm
- ENPM612, Yêu cầu hệ thống và phần mềm
- ENPM613, Thiết kế và triển khai phần mềm
- ENPM614, Kiểm tra và bảo trì phần mềm
Các khóa học
ENPM611 Kỹ thuật phần mềm (3 tín chỉ) | Cốt lõi
Mùa thu năm 2024 Thứ 4 4:00 chiều - 6:40 chiều Christopher Ackermann
Các khái niệm, phương pháp và thực hành công nghệ phần mềm quan trọng đối với cả nhà lý thuyết và người thực hành sẽ được đề cập. Toàn bộ phạm vi trách nhiệm mong đợi của một kỹ sư phần mềm được trình bày. Các lĩnh vực cơ bản về phát triển yêu cầu, thiết kế phần mềm, ngôn ngữ lập trình và kiểm thử đều được đề cập rộng rãi. Các phiên về các lĩnh vực hỗ trợ như kỹ thuật hệ thống, quản lý dự án và ước tính phần mềm cũng được bao gồm.
Điều kiện tiên quyết: Có năng lực về một ngôn ngữ lập trình và phải hoàn thành khóa học đại học về công nghệ phần mềm hoặc được sự cho phép của người hướng dẫn khóa học.
ENPM612 Yêu cầu hệ thống và phần mềm (3 tín chỉ) | Cốt lõi
Trọng tâm sẽ được đặt vào các khía cạnh lý thuyết và thực tiễn của việc phát triển các yêu cầu. Học sinh sẽ nhận biết vị trí của yêu cầu, cách làm việc với người dùng, phương pháp và kỹ thuật yêu cầu, các loại yêu cầu khác nhau, cách đặt lịch trình phát triển yêu cầu, tiến hóa yêu cầu, cách mô hình hóa và yêu cầu nguyên mẫu, cách đánh giá và quản lý rủi ro trong yêu cầu, kỹ thuật để kiểm tra yêu cầu, cách quản lý quy trình yêu cầu và cách viết tài liệu yêu cầu hiệu quả.
Điều kiện tiên quyết: ENPM611.
Thiết kế và triển khai phần mềm ENPM613 (3 tín chỉ) | Cốt lõi
Mùa thu năm 2024 Thứ Tư 7:00 tối - 9:40 tối Tony Barber
Bao gồm quy trình thiết kế phần mềm, từ việc hiểu nhu cầu hoặc vấn đề đến tạo ra kiến trúc phù hợp và giải pháp thiết kế chi tiết, đến bảo tồn và phát triển thiết kế trong quá trình triển khai và bảo trì. Các chủ đề nghiên cứu chính bao gồm các mô hình phân tích yêu cầu; thiết kế lấy người dùng làm trung tâm; thiết kế kiến trúc thông qua sự phân rã và thành phần; phong cách kiến trúc và chiến thuật kiến trúc để hỗ trợ các thuộc tính chất lượng khác nhau như bảo mật và khả năng sử dụng; thiết kế để tái sử dụng và tái sử dụng; các nguyên tắc hướng đối tượng thiết kế chi tiết (chẳng hạn như SOLID) và các mẫu thiết kế; các phương pháp đánh giá, so sánh và lựa chọn giải pháp thiết kế; các ký hiệu tiêu chuẩn để ghi lại các khung nhìn kiến trúc, thiết kế chi tiết và các mô hình phân tích; và các tiêu chuẩn ngành để tạo ra các sản phẩm thiết kế. Học sinh sẽ không chỉ tiếp thu kiến thức kỹ thuật mà còn cả các kỹ năng mềm như giao tiếp, hợp tác, tư duy phê phán, lãnh đạo, đàm phán và quản lý thời gian.
Điều kiện tiên quyết: ENPM611.
ENPM614 Kiểm tra & bảo trì phần mềm (3 tín chỉ) | Cốt lõi
Mục đích của khóa học này là cung cấp cái nhìn tổng quan về kiểm thử và bảo trì phần mềm cũng như cách các hoạt động này phù hợp với Vòng đời Kỹ thuật Phần mềm. Nhiều ví dụ được sử dụng trong bài giảng được lấy từ việc phân tích các hệ thống khác nhau của NASA. Các chủ đề bao gồm các hình thức kiểm thử khác nhau như Kiểm thử chức năng, Kiểm thử tổ hợp, Kiểm thử cấu trúc, Kiểm thử dựa trên mô hình, Kiểm thử theo định hướng bảo mật cũng như vai trò của Kiến trúc phần mềm trong khả năng kiểm thử và khả năng bảo trì, Kiểm thử hồi quy, Kiểm thử tự động, Phạm vi kiểm thử bao gồm phạm vi MC/DC và tiêu chuẩn kiểm tra.
Điều kiện tiên quyết: ENPM611.
ENPM637 Quản lý các dự án Kỹ thuật phần mềm (3 Tín chỉ) | Tự chọn
Khóa học này đề cập đến bề rộng của việc quản lý các dự án công nghệ phần mềm. Nó sẽ giúp biến các kỹ sư phần mềm đầy cảm hứng thành những người lãnh đạo dự án phần mềm. Khóa học sẽ truyền đạt các nguyên tắc, phương pháp và công cụ nâng cao để quản lý các dự án phần mềm trong bối cảnh công nghệ phần mềm thực tế. Khung Quản lý Dự án Tinh gọn Tích hợp (ILPM) là sự kết hợp theo định hướng triển khai giữa Viện Quản lý Dự án truyền thống (PMI) và các mô hình quản lý dự án Agile sẽ được huấn luyện. Sau khi hoàn thành khóa học này, sinh viên sẽ có thể: lựa chọn và chứng minh các dự án công nghệ phần mềm bằng cách thiết lập các trường hợp kinh doanh có liên quan, quản lý yêu cầu của khách hàng, phát triển các thành phần chính của kế hoạch và quy trình lập kế hoạch dự án công nghệ phần mềm, xác định rủi ro của dự án phần mềm và phát triển các chiến lược giảm thiểu rủi ro , phát triển nhóm dự án để xây dựng và phân phối sản phẩm, hiểu và áp dụng các phương pháp giải quyết và tránh những khó khăn thường gặp liên quan đến quản lý dự án công nghệ phần mềm, thực hiện đánh giá sau thực hiện và nâng cao hiệu suất và hiệu suất của các dự án phát triển phần mềm.
Hệ thống phần mềm dựa trên AI ENPM655 (3 Tín chỉ) | Tự chọn
Mùa thu năm 2024 Giờ học/thông tin chi tiết về ELMS Mikael Lindvall, Joshua Giltinan
Mục tiêu của khóa học mới này là giải quyết vấn đề quan trọng trong việc xác định, phát triển và thử nghiệm các hệ thống phần mềm dựa trên các thành phần trí tuệ nhân tạo (AI). Vì những hệ thống như vậy thường rất quan trọng về mặt an toàn hoặc phải đáng tin cậy vì những lý do khác nên chất lượng phải được xây dựng trong suốt vòng đời phát triển phần mềm. Điều quan trọng cần lưu ý là trọng tâm của khóa học không phải là công nghệ phần mềm chung chung hay cách đào tạo mạng lưới thần kinh, mặc dù chúng ta sẽ đề cập đến những chủ đề đó. Thay vào đó, cốt lõi của khóa học là về cách chỉ định, phát triển và kiểm tra các hệ thống phần mềm dựa trên hoặc sử dụng AI. Các nhà khoa học dữ liệu thường rất giỏi trong việc xây dựng các mô hình bằng các kỹ thuật tiên tiến, nhưng việc kết hợp các mô hình đó vào các sản phẩm phần mềm hoạt động sẽ đặt ra những thách thức kỹ thuật khác nhau. Ví dụ: các nhà khoa học dữ liệu có thể làm việc với sổ ghi chép chưa có phiên bản trên các tập dữ liệu tĩnh và tập trung vào độ chính xác của dự đoán trong khi bỏ qua khả năng mở rộng, độ mạnh mẽ, độ trễ cập nhật hoặc chi phí vận hành. Ngược lại, các kỹ sư phần mềm thường được đào tạo với các thông số kỹ thuật rõ ràng và có xu hướng tập trung vào mã nhưng có thể không nhận thức được những khó khăn khi làm việc với dữ liệu và các mô hình không đáng tin cậy. Họ có một bộ công cụ lớn để ra quyết định và đảm bảo chất lượng, nhưng có thể không biết cách áp dụng những công cụ đó cho các hệ thống hỗ trợ AI và những thách thức của chúng. Khóa học này thảo luận về các câu hỏi như: Các phương pháp SE hiện tại có thể được sử dụng ở mức độ nào để xây dựng các hệ thống thông minh? Những thực hành mới cần thiết ở mức độ nào? Khóa học này áp dụng quan điểm công nghệ phần mềm trong việc xây dựng các hệ thống thông minh, tập trung vào những gì kỹ sư phần mềm có thể làm để biến ý tưởng học máy thành một sản phẩm đáng tin cậy và có thể mở rộng. Khóa học sẽ sử dụng thuật ngữ và kỹ thuật kỹ thuật hệ thống và phần mềm (ví dụ: phạm vi kiểm tra, chế độ xem kiến trúc, cây lỗi) và thảo luận về những thách thức đặt ra khi sử dụng các kỹ thuật đó trên các thành phần máy học/AI. Khóa học sẽ bao gồm một bài giảng về giảng dạy/làm mới các nguyên tắc cơ bản của học máy và AI để cung cấp hiểu biết cơ bản về các khái niệm liên quan (ví dụ: kỹ thuật tính năng, hồi quy tuyến tính, cây lỗi và mạng thần kinh). Khóa học cũng sẽ đề cập ngắn gọn về tư duy thiết kế và phân tích sự cân bằng. Nó sẽ tập trung chủ yếu vào các phương pháp tiếp cận thực tế có thể được sử dụng ngay bây giờ và sẽ có tính năng thực hành thực hành với các công cụ và cơ sở hạ tầng hiện đại.
ENPM680 Giới thiệu về Mã hóa an toàn cho Kỹ thuật phần mềm (3 tín chỉ) | Tự chọn
Mùa thu năm 2024 Thời gian/thông tin chi tiết về ELMS Gananand Kini
Phần mềm thâm nhập vào cuộc sống hàng ngày của chúng ta và là một phần quan trọng trong nhiều công nghệ được mọi người trên toàn cầu sử dụng. Nó vừa phức tạp vừa đa dạng trong các ứng dụng của nó, bao gồm nhưng không giới hạn ở một số lượng đáng kể các lĩnh vực sử dụng công nghệ bao gồm truyền thông, tài chính, sản xuất, v.v. Phần mềm có xu hướng bị lỗi [1] do một số yếu tố và những nguyên nhân gây ra lỗi phần mềm này là được gọi là lỗi. Tuy nhiên, một loại lỗi đáng kể này có xu hướng gây ra những tác động nghiêm trọng về bảo mật, ảnh hưởng đến các nguyên tắc bảo mật, tính toàn vẹn, tính sẵn sàng và không thể chối bỏ làm nền tảng cho tính bảo mật của việc quản lý và vận hành các hệ thống phần mềm như vậy. Khóa học này sẽ bao gồm các khái niệm và kỹ thuật cốt lõi để phân tích và mô tả các lỗi bảo mật đó cũng như các cách tiềm năng để giảm thiểu chúng. Các khái niệm sẽ được giới thiệu và thảo luận trong bối cảnh mục đích của kẻ thù là thay đổi hoặc phá hoại hoạt động của phần mềm có tác động đến bảo mật. Khóa học không yêu cầu sinh viên phải có bất kỳ kinh nghiệm bảo mật nào trước đó. Sau khóa học này, học viên sẽ làm quen với: 1. Kiểm tra một ứng dụng phần mềm để tìm ra điểm yếu về bảo mật. 2. Mô tả điểm yếu bằng CWE. 3. Phương pháp và kỹ thuật được sử dụng trong đánh giá mã ngang hàng. 4. Sử dụng các công cụ phân tích để tìm ra điểm yếu về bảo mật. [1] https://spectrum.ieee.org/computing/software/why-software-fails
ENPM696 Kỹ thuật phần mềm đảo ngược (3 tín chỉ) | Cốt lõi
Mùa thu năm 2024 Thứ Tư 4:00 chiều - 6:40 chiều Allen Hazelton
Khóa học này cung cấp sự hiểu biết sâu sắc về các khái niệm kỹ thuật đảo ngược phần mềm và đào tạo thực hành với các công cụ kỹ thuật đảo ngược, bao gồm trình dịch ngược, trình dịch ngược và trình phân tích mã. Học sinh sẽ làm quen với cả phần mềm cấp thấp và tập lệnh x86 thông qua các phiên đảo ngược nhị phân. Khóa học này cũng cung cấp những hiểu biết sâu sắc về nhiều chủ đề như bảo mật hệ thống, phân tích mã nguồn, thiết kế phần mềm và hiểu biết về chương trình sẽ có ích trong nhiều lĩnh vực khác nhau.
Điều kiện tiên quyết: ENPM691 và CMSC106
Bảng xếp hạng
Chương trình trực tuyến
#6 Chương trình Kỹ thuật sau đại học Trực tuyến - US News và World Report Các Chương trình Kỹ thuật Sau đại học Trực tuyến Tốt nhất
Chương trình sau đại học của Hoa Kỳ
#19 Kỹ thuật sau đại học - US News và World Report 2023 Các chương trình sau đại học Kỹ thuật tốt nhất
Đặc sản:
- #15 Kỹ thuật hàng không vũ trụ
- #16 Kỹ thuật điện; #15 Kỹ thuật máy tính
- #17 Kỹ thuật cơ khí
Xếp hạng tinh thần khởi nghiệp
- #7 Chương trình đại học
- #18 Chương trình sau đại học
50 trường hàng đầu về chương trình khởi nghiệp của Princeton Review"