Kiến trúc phần mềm Giới thiệu chung Vai trò kiến trúc phần mềm Các kiểu kiến trúc Chuẩn bị tài liệu cho kiến trúc phần mềm Đánh giá kiến trúc phần mềm Khái niệm Kiến trúc phần mềm (Software Architecture) cấu trúc phần mềm, thơng qua tích hợp chặt mặt khái niệm hệ thống cung cấp Qui trình thiết kế hệ thống mơ hình điều khiển/giao tiếp hệ thống architectural design Kết qui trình thiết kế software architecture Khái niệm Kiến trúc phần mềm hệ thống bao gồm thành phần phần mềm, thuộc tính chúng mối quan hệ thành phần Vai trò Có vai trò quan trọng p/triển PM: Công cụ giao tiếp người liên quan (understanding and communication): Tài liệu mô tả kiến trúc đựoc sử dụng nhiều thành viên liên quan tới dự án phần mềm Để phân tích hệ thống/xây dựng hệ thống: Kiến trúc phần mềm sử dụng để ra/dự đốn thuộc tính hệ thống Ngồi kiến trúc phần mềm có phân hoạch tốt, việc sử dụng phân hoạch để phát triển chức dễ dàng Sử dụng lại quy mô lớn: Chúng ta có xu hướng sử dụng lại phần phần mềm, đó, kiến trúc thơng thơng tin quan trọng việc hiểu biết phần phần mềm Vai trò Kiến trúc khơng phải thành phần hoạt động có tác động sâu rộng đến q trình phát triển PM, loạt mô tả PM mà cho phép kỹ sư PM thực công việc: Tăng cường hiểu biết hệ thống cần xây dựng Phân tích hiệu Xem xét, sửa đổi kiến trúc từ sớm, giảm rủi ro Các mơ hình kiến trúc phần mềm Có nhiều mơ hình khác nhau, thường nhìn nhận số mặt: Mơ hình kiến trúc tĩnh – hệ hay thành phần phát triển độc lập Mô hình tiến trình động- hệ thống tổ chức thành tiến trình vận hành Mơ hình giao diện – xác định giao diện đưa dịch vụ Mô hình liên kết – mối liên kết hệ hay thành phần Mơ hình phân tán Giải thích Các mơ hình kiến trúc phần mềm (Cách nhìn khác) Module Thành phần kết nối (Component & Connector – C&C) Cấp phát (Allocation) Mơ hình Module Hệ thống coi tập hợp đơn vị mã Mỗi đơn vị đảm nhiệm vài phần chức -> Kiến trúc tĩnh Ví dụ: Package, classes,… Một số loại C&C Pipe-and-Filter Chia sẻ liệu (Shared-data) Client - Server Pipe-and-Filter Nhận liệu đầu vào thông qua lọc biến đổi thành liệu đầu Dữ liệu biến đổi đuwocj gửi từ lọc sang lóc khác thơng qua pipeconnector Ví dụ hệ thống đếm từ tệp Chia sẻ liệu (Shareddata) Bao gồm thành phần Kho liệu tập trung (data repositories) Thành phần truy nhập (Data accessors) Chia sẻ liệu (Shareddata) Dữ liệu chia sẻ thành viên Dữ liệu riêng cho thành phần Việc chia sẻ thơng qua gửi thơng điệp Ví dụ Client-Server Two components: Client Server Client kết nối với Server Chỉ có loại connector (between C-S) Ví dụ Ví dụ Mơ hình n-tier: tier gửi yêu cầu đến lớp Cụ thể: 3-tier: client/business/database tiers Phân biệt n-tier n-layer N-tier: tier component liên kết với thành phần lân cận giao thức N-layer: tổ chức thành module modules kích hoạt dịch vụ modules lớp thấp Một số mơ hình khác Điều khiển tập trung: Một hệ có trách nhiệm điều khiển, khởi động hay dừng hệ khác Gồm có: Mơ hình gọi – trả lại Mơ hình quản lý (manager model) Điều khiển dựa kiện: Thông tin điều khiển chuyển đến số hệ khác, hệ đáp ứng kiện từ bên ngồi Gồm có: Mơ hình điều khiển quảng bá Mơ hình điều khiển ngắt Mơ hình điều khiển quảng bá Mơ hình điều khiển ngắt Tài liệu cho kiến trúc phần mềm Bao gồm: Ngữ cảnh hệ thống: nhận dạng stakeholders mối quan tâm họ Mô tả mô hình kiến trúc Các cách nhìn nhận khác Đánh giá kiến trúc phần mềm Kiến trúc phần mềm có ảnh hưởng lớn tới đặc tính chất lượng phi chức hiệu suất, độ tin cậy, độ an toàn, vv… Chúng ta sử dụng đặc tính để đánh giá kiến trúc Dùng phương pháp hình thức Dùng phương pháp thủ tục lấy ý kiến từ phía stakeholders Câu hỏi Tài liệu kiến trúc phần mềm nên có gì? Tài liệu tham khảo R Pressman, Kỹ nghệ phần mềm Tập 1, 2, NXB Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung Việt) R Pressman, Software Engineering: A Practioner’s Approach 5th Ed., McGraw-Hill, 2001 Chapter 14 I Sommerville, Software Engineering 5th Ed., Addison-Wesley, 1995 Chapter 10 Wendy Boggs, Michael Boggs Mastering UML with Rational Rose 2002 Copyright © 2002 SYBEX Inc ... trúc phần mềm Các kiểu kiến trúc Chuẩn bị tài liệu cho kiến trúc phần mềm Đánh giá kiến trúc phần mềm Khái niệm Kiến trúc phần mềm (Software Architecture) cấu trúc phần mềm, thơng... architecture Khái niệm Kiến trúc phần mềm hệ thống bao gồm thành phần phần mềm, thuộc tính chúng mối quan hệ thành phần Vai trò Có vai trò quan trọng p/triển PM: Công cụ giao tiếp người liên... lớn: Chúng ta có xu hướng sử dụng lại phần phần mềm, đó, kiến trúc thông thông tin quan trọng việc hiểu biết phần phần mềm Vai trò Kiến trúc khơng phải thành phần hoạt động có tác động sâu rộng