Tiêu chí đánh giá: Sinh viên chia nhóm hai đến ba người áp dụng kiến thức trên lớp
để làm bài tập tìm hiểu và xây dụng lại kiến trúc hiện đại của một số hệ thống phần
mềm mã nguồn mở. Các buổi học cuối các nhóm trình bày và nộp báo cáo dưới dạng
tài liệu kiến trúc. Điểm đánh giá dựa trên trình bày và hỏi trả lời cũng như chất lượng
tài liệu kiến trúc. Điểm số là chung cho các thành viên trong nhóm.
5 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1906 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Kiến trúc phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ CƯƠNG CHI TIẾT MÔN HỌC
Kiến trúc phần mềm
1. Thông tin về nhóm giảng viên xây dựng đề cương môn học
TS. Trương Anh Hoàng, TS. Võ Đình Hiếu
Cơ quan công tác: Khoa Công nghệ Thông tin, Trường Đại học Công nghệ
Điện thoại: (04) 37547611
Email: {hoangta, hieuvd}@vnu.edu.vn
2. Thông tin chung về môn học
Tên môn học: Kiến trúc phần mềm
Software architecture
Mã số môn học: INT 3105
Số tín chỉ: 3
Tổng số giờ tín chỉ (LL/ThH/TH): 45 (45/0/0)
Các môn học tiên quyết: Lập trình hướng đối tượng (INT 3110)
Học phần:
Bắt buộc:
Lựa chọn: X
3. Mục tiêu của môn học
Giới thiệu các lý thuyết nền tảng của kiến trúc phần mềm, các kiến trúc kinh điển và
hiện đại, các phương pháp xây dựng kiến trúc phần mềm, một số chuẩn về tài liệu
kiến trúc phần mềm.
Về kiến thức
• Hiểu được vị trí, vai trò kiến trúc trong quá trình phát triển phần mềm.
• Nắm được các yêu cầu phần mềm ảnh hưởng đến quyết định thiết kế kiến trúc.
• Giới thiệu phương pháp thiết kế để đạt được các yêu cầu phi chức năng như
tính dễ mở rộng, dễ thích nghi, độ sẵn sàng cao, dễ sử dụng, tin cậy được;
• Giới thiệu các phương pháp đánh giá kiến trúc và ưu, nhược điểm của từng
phương pháp;
Kỹ năng
• Biết cách xây dựng tài liệu kiến trúc
• Có thể tìm hiểu và áp dụng các kiến trúc phần mềm hiện đại
2
4. Tóm tắt nội dung môn học (khoảng 150 từ)
Môn học giới thiệu các khái niệm và cơ sở lý thuyết của kiến trúc phần mềm. Dựa
trên đó, các khía cạnh của kiến trúc phần mềm được giới thiệu ở cả góc độ lý thuyết,
nền tảng, và thực tiễn. Môn học cũng nêu các phương pháp xây dựng, viết tài liệu,
đánh giá kiến trúc phần mềm, tầm quan trọng của kiến trúc trong việc đảm bảo đáp
ứng được các yêu cầu phi chức năng của hệ thống. Tiếp đó phần ứng dụng hệ thống
lại các kiến trúc kinh điển và một số kiến trúc hiện đại, ưu nhược điểm của từng
phương pháp, và với những yêu cầu nào, tình huống nào thì nên chọn kiểu mẫu kiến
trúc nào cho phù hợp.
5. Nội dung chi tiết môn học
• Bài 1: Giới thiệu về môn học
Giới thiệu về giáo viên, mục tiêu môn học, kế hoạch, bài tập nhóm và tổ chức các
nhóm và đề tài của từng nhóm. Phân tích định nghĩa kiến trúc phần mềm và các
khái niệm liên quan.
• Bài 2: Mẫu thiết kế
Các mẫu thiết kế cơ bản như Singleton, Observer, Proxy, Façade
Tham khảo: tài liệu [4]
• Bài 3: Thuộc tính chất lượng
Giới thiệu về thuộc tính chất lượng, mối quan hệ giữa các thuộc tính chất lượng,
và việc sử dụng hoạt cảnh thuộc tính chất lượng để phân tích yêu cầu về chất
lượng.
Tham khảo: Chương 4 của tài liệu [1]
• Bài 4: Các chiến thuật
Giới thiệu các chiến thuật cơ bản đã được ứng dụng rộng rãi để giải quyết các yêu
cầu kiến trúc, các tác động tích cực và ảnh hưởng của từng chiến thuật.
Tham khảo: Chương 5 của tài liệu [1]
• Bài 5: Các kiểu kiến trúc
Giới thiệu các kiểu kiến trúc cơ bản như kiểu kiến trúc client-server, phân tầng,
đối tượng phân tán.
Tham khảo: tài liệu [3]
• Bài 6: Kiến trúc hướng dịch vụ và Tính toán đám mây
Giới thiệu về kiến trúc hướng dịch vụ dưới khía cạnh là một kiểu kiến trúc. Giới
thiệu về tính toán đám mây
Tham khảo: tài liệu [7]
• Bài 7: Thiết kế kiến trúc
Trình bày tổng quan về một số phương thiết kế kiến trúc. Tìm hiểu một cách chi
tiết phương pháp ADD (Attribute-Driven Design)
3
Tham khảo: Chương 7 của tài liệu [1]
• Bài 8: Kiểm tra GK
Kiểm tra viết giữa kỳ và tiến độ bài tập lớn của từng nhóm.
• Bài 9: Thiết kế kiến trúc
Tìm hiểu phương pháp thiết kế kiến trúc ACDM (Architecture Centric Design
Method)
Tham khảo: tài liệu [6]
• Bài 10: Viết tài liệu kiến trúc
Cách làm tài liệu kiến trúc, mô tả kiến trúc phần mềm, từ cấu trúc tài liệu đến chi
tiết các phần bắt buộc, các phần tuỳ chọn.
Tham khảo: Các tài liệu [1, 2, 6]
• Bài 11: Viết tài liệu kiến trúc (tiếp)
Giới thiệu các hướng nhìn theo thành phần và kết nối (component-and-
connector), và phân bổ (allocation).
Tham khảo: Các tài liệu [1, 2, 6]
• Bài 12: Phân tích kiến trúc
Giới thiệu một số phương pháp phân tích kiến trúc như ATAM, CBAM
Tham khảo: tài liệu [1]
• Bài 13: ADLs
Giới thiệu tổng quan về ngôn ngữ mô tả kiến trúc. Tìm hiểu chi tiết ngôn ngữ
ACME
Tham khảo: tài liệu [2]
• Bài 14~15: Sinh viên trình bày, thảo luận
Các nhóm sinh viên báo cáo bài tập lớn. Yêu cầu các nhóm sinh viên tìm hiểu và xây
dựng (lại) kiến trúc của một số phần mềm có đặc trưng kiến trúc hiện đại. Sinh viên
phải biết xác định yêu cầu kiến trúc, giải quyết các yêu cầu đó qua việc ứng dụng các
kỹ thuật đã biết và phân tích kiến trúc xây dựng đáp ứng yêu cầu đặt ra. Tài liệu kiến
trúc được mô tả đúng qui cách và đầy đủ.
6. Tài liệu tham khảo
Tài liệu tham khảo bắt buộc
1. Len Bass, Rick Kazman, Paul C. Clements. Software Architecture in Practice
(2nd edition). Addison-Wesley. 2003.
Tài liệu tham khảo lựa chọn
2. Richard N. Taylor, Nenad Medvidović, Eric M. Dashofy. Software Architecture:
Foundations, Theory, and Practice. John Wiley and Sons, Inc., 2009.
4
3. Microsoft Application Architecture Guide, 2nd Edition. Chapter 3: Architectural
Patterns and Styles.
4. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma,
Richard Helm, Ralph Johnson, John Vlissides.
5. Zheng Qin, Jian-Kuan Xing, Xiang Zheng. Software Architecture (Advanced
Topics in Science and Technology in China). Springer, 2008.
6. Recommended Practice for Architecture Description of Software-Intensive
Systems. IEEE-1471, 2000.
7. Mohamed I. Mabrouk, SOA Fundamentals in a Nutshell, IBM, 2008
7. Hình thức tổ chức dạy học
Ghi chú: A: Số giờ tín chỉ B: Số tiết học
Nội dung Hình thức tổ chức dạy học môn học Tổng
Thực hành Tự học
Lý thuyết
Thực
hành/thí
nghiệm
Bài tập
A/B A/B A/B A/B A/B
Tuần 1 3/3 0/0 0/0 0/0 0/0
Tuần 2 3/3 0/0 0/0 0/0 0/0
Tuần 3 3/3 0/0 0/0 0/0 0/0
Tuần 4 3/3 0/0 0/0 0/0 0/0
Tuần 5 3/3 0/0 0/0 0/0 0/0
Tuần 6 3/3 0/0 0/0 0/0 0/0
Tuần 7 3/3 0/0 0/0 0/0 0/0
Tuần 8 3/3 0/0 0/0 0/0 0/0
Tuần 9 3/3 0/0 0/0 0/0 0/0
Tuần 10 3/3 0/0 0/0 0/0 0/0
Tuần 11 3/3 0/0 0/0 0/0 0/0
Tuần 12 3/3 0/0 0/0 0/0 0/0
Tuần 13 3/3 0/0 0/0 0/0 0/0
Tuần 14 3/3 0/0 0/0 0/0 0/0
Tuần 15 3/3 0/0 0/0 0/0 0/0
Tổng A/B 45/45 0/0 0/0 0/0 45/45
5
8. Kiểm tra, đánh giá
8.1. Kiểm tra giữa kỳ: Trọng số: 0.3
Tiêu chí đánh giá: Sinh viên chia nhóm hai đến ba người áp dụng kiến thức trên lớp
để làm bài tập tìm hiểu và xây dụng lại kiến trúc hiện đại của một số hệ thống phần
mềm mã nguồn mở. Các buổi học cuối các nhóm trình bày và nộp báo cáo dưới dạng
tài liệu kiến trúc. Điểm đánh giá dựa trên trình bày và hỏi trả lời cũng như chất lượng
tài liệu kiến trúc. Điểm số là chung cho các thành viên trong nhóm.
8.2. Kiểm tra thường xuyên: Trọng số: 0.1
Tiêu chí đánh giá: Học viên phải làm bài tập về nhà sau mỗi buổi lý thuyết. Bài trả
lời sẽ được nộp vào buổi học kế tiếp. Giáo viên chấm ngẫu nhiên một số bài của học
viên để cho điểm đánh giá.
8.3. Kiểm tra cuối kỳ: Trọng số: 0.6
Tiêu chí đánh giá: Kiểm tra kiến thức của học viên bằng hình thức viết hoặc vấn
đáp. Thi viết 60 – 90 phút và dựa trên câu trả lời súc tích, ngắn gọn của học viên để
cho điểm đánh giá. Thi vấn đáp sẽ kiểm tra ngẫu nhiên các kiến thức trong các bài
giảng.
Chủ nhiệm khoa
(Ký và ghi rõ họ, tên)
Chủ nhiệm bộ môn
(Ký và ghi rõ họ, tên)
Giảng viên
(Ký và ghi rõ họ, tên)
Các file đính kèm theo tài liệu này:
- 12v_software_architecture_vi_9182.pdf