Kiến trúc và thiết kế phần mềm
VỀ MÔN HỌC NÀY!
Xin chào tất cả các bạn !
Chào mừng các bạn đã tham gia vào khóa học Kiến trúc và thiết kế phần mềm này. Chúng tôi hy vọng khóa học sẽ thực sự hữu ích với công việc của các bạn, và đúng như tên gọi, bạn sẽ hiểu và nắm bắt những điểm cơ bản trong việc đưa ra kiến trúc phần mềm trong giai đoạn thiết kế sau khóa học này.
Sau khi học môn học này các bạn sẽ biết được những khái niệm căn bản trong thiết kế và kiến trúc phần mềm. Khóa học sẽ dẫn dắt các bạn đi từng bước cách khai thác các nội dung trong quản lý yêu cầu phần mềm để đưa ra được kiến trúc phần mềm và bản thiết kế phù hợp. Với vai trò một Designer, các bạn sẽ được hướng dẫn thực hiện các bước từ cách đánh giá yêu cầu để lựa chọn kiến trúc phù hợp, cách thiết kế phù hợp cho với các yêu cầu dự án đã đề ra.
Về mặt chuyên môn nội dung, khóa học này sẽ cung cấp cho các bạn một số nội dung tổng quát những vấn đề khi bạn đối mặt với việc lựa chọn kiến trúc và cách thiết kế tương đương. Bên cạnh đó các bạn cũng được luyện tập sử dụng một số công cụ, ứng dụng để xây dựng kiến trúc phù hợp. Kết thúc môn học, bạn sẽ có thể nắm được cơ bản các hoạt động trong quá trình lựa chọn kiến trúc phần mềm và cách thiết kế phù hợp.
Chúc các bạn học tốt!
ĐỐI TƯỢNG THAM GIA
- Những người có mong muốn học lấy bằng ĐH và mong muốn trở thành lập trình viên, kỹ sư phần mềm
- Những học viên có mong muốn trau dồi thêm kiến thức và kinh nghiệm thực tế để thi các chứng chỉ như iSAQB® Certified Professional for Software Architecture (CPSA®), AWS Certified Solutions Architect – Associate, SEI Software Architecture Professional Certificate....
MỤC TIÊU MÔN HỌC
Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:
- Giới thiệu ngắn gọn về giai đoạn thiết kế kiến trúc phần mềm, tầm quan trọng của nó trong SW development, lợi ích của môn học với sinh viên
- Hiểu được khái niệm về thiết kế kiến trúc phần mềm.
- Hiểu được vai trò và các kỹ năng cần có của một kiến trúc sư phần mềm
- Hiểu được các bước thiết kế kiến trúc phần mềm
- Hiểu được các thành phần của một bản thiết kế phần mềm (Layers, interfaces, naming convention, exception handling...)
- Nắm được cách làm việc với yêu cầu phần mềm (functional và non-functional); biết được quy tắc và kinh nghiệm thiết kế như top-down và bottom-up, hierarchical composition và hierarchical decomposition, lean interfaces và information hiding, refactor và redesign.
- Hiểu được phương pháp phân tích hướng đối tượng (OOA) bằng việc gợi nhớ lại các kiến thức căn bản về lập trình hướng đối tượng (OOP)
- Hiểu được ý tưởng về cách thiết kế hướng đối tượng (OOD).
- Hiểu được UML là gì? Mục đích sử dụng của nó
- Biết được các phân loại UML diagram
- Biết cách sử dụng OCL
- Hiểu và biết cách sử dụng các loại UML diagrams phổ biến trong SAD (usecase diagram, component diagram, block diagram, sequence diagram,...)
- Biết cách sử dụng các loại UML diagrams phổ biến trong SDD (class diagram, activity diagrm, data flow diagram, sequence diagram,...)
- Biết được các loại architecture patterns (Dependency injection, MVC, MVP, SOAs...)
- Biết các các nhóm SW design patterns và tính chất chung tổng quan của chúng, các loại design pattern phổ biến và cách ứng dụng...
- Hiểu và vận dụng được các tiêu chí đánh giá chất lượng liên quan tới thiết kế kiến trúc phần mềm
- Hiểu và vận dụng được các tiêu chí đánh giá số lượng liên quan tới thiết kế kiến trúc phần mềm (độ tương thích, metrics, độ phức tạp...)
- Biết được các phân loại tool và hiểu được sự quan trọng của chúng đối với dự án.
- Biết cách lựa chọn các loại tool phù hợp với yêu cầu của dự án (modeling tools, static code analysis tools, build management tools,...)
TRẢI NGHIỆM HỌC TẬP
Môn học sẽ có 4 phần, gồm 14 bài học. Mỗi bài sẽ có một số đoạn video hoặc tài liệu đọc yêu cầu học viên phải xem kỹ, một hoặc vài bài đọc thêm và trả lời câu hỏi trắc nghiệm. Xen kẽ giữa các bài học là một số bài assignment (bài tập lớn) để học viên thực hành kiến thức sau mỗi phần học.
Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.
ĐẶC ĐIỂM CỦA MÔN HỌC
Khóa học này rất quan trọng cho công việc phát triển phần mềm của bạn trong tương lai, cung cấp cho bạn các kiến thức nền tảng để giúp bạn:- Hiểu được cách thiết kế phần mềm.
- Có khả năng tham gia vào việc thiết kế hoặc cải tạo một kiến trúc phần mềm có sẵn.
- Học viên cần nắm được các kiến thức cơ bản của phân tích yêu cầu phần mềm, vòng đời phát triển phần mềm (SDLC) và nắm thật chắc kiến thức lập trình hướng đối tượng.
- Điều kiện tiên quyết để học môn học này là học viên phải hoàn thành xong chứng chỉ CC4, đặc biệt là các môn học PRO192x, SWE102x và SWR301x
CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN MÔN HỌC
THIẾT KẾ MÔN HỌC
Chuyên gia Vũ Như Trang
- Trình độ chuyên môn: Cử nhân khoa Toán-Tin học, đại học Khoa học tự nhiên TPHCM.
- Nghề nghiệp: Kỹ sư
- Nơi công tác: Công ty TNHH Hella Vietnam
- Kinh nghiệm: Có 10 năm kinh nghiệm phát triển phần mềm.
PHẢN BIỆN MÔN HỌC
Chuyên gia Chu Xuân Khôi
- Trình độ chuyên môn: Thạc sĩ
- Nghề nghiệp: Kỹ sư phần mềm
- Nơi công tác: Công ty TNHH Ingenico Vietnam
- Kinh nghiệm: 15 năm kinh nghiệm trong công nghiệp lập trình phần mềm
FUNIX WAY
Mục đích của các chương trình học theo FUNiX Way là người học tự tin và thành thạo trong môi trường số, có thể kiếm được thu nhập bằng nghề mà mình theo học hoặc sử dụng những gì đã học được để làm tốt hơn việc hiện tại, có động lực và khả năng nâng cao tay nghề, có thể làm thành viên dự án chuyên môn và tham gia cộng đồng nghề như một thành viên có trách nhiệm.
NGUỒN HỌC LIỆU
Khóa học MOOC này được cung cấp trên nền tảng Udemy và Udacity. Đây là hai nền tảng cung cấp các khóa học trực tuyến đại chúng mở được đánh giá rất cao trong các nền tảng MOOC, ngang với các nền tảng hàng đầu.
Việc liệt kê nguồn dưới đây không nhất thiết hàm ý rằng FUNiX có sự hợp tác chính thức với chủ sở hữu của nguồn: Udemy và Udacity.
KÊNH PHẢN HỒI
FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email program@funix.edu.vn