• Thiết kế dữ liệu ở mức thành phần chỉ tập trung vào việc biểu diễn các cấu trúc dữ liệu được truy xuất trực tiếp bởi một hay nhiều thành phần phần mềm (SW components)
• Một số nguyên tắc:
– Các nguyên tắc dùng để phân tích chức năng cũng nên áp dụng cho dữ liệu
– Tất cả cấu trúc dữ liệu và thao tác được thực thi trên mỗi cấu trúc cũng cần xác định (Nguyên tắc này rất thích hợp cho loại cấu trúc class)
55
2.4 Thiết kế kiến trúc
• Kiến trúc(Architecture) là gì?
– Tương tự như nói đến kiến trúc tòa nhà.
– Kiến trúc chỉ hình dạng tổng thể của cấu trúc vật lý.
– Kiến trúc là cách thức mà các thành phần (component) khác nhau được tích hợp lại để tạo nên một tồng thể thống nhất. – Kiến trúc còn chỉ ra cách mà tòa nhà còn phải phù hợp với
môi trường và hòa hợp với các tòa nhà khác trong vùng.
• Kiến trúc phần mềm (software architecture) của 1 chương trình hay hệ thống máy tính là cấu trúc của hệ thống bao gồm thành phần phần mềm (software component), các thuộc tính nhìn thấy được của thành phần và mối quan hệ giữa chúng.
56
Thiết kế kiến trúc
• Thành phần phần mềm (software component) có thể đơn giản là một module chương trình hay một class hướng đối tượng hay cũng có thể là cả một database hay “middleware”
• Thuộc tính của thành phần (properties of components) là các đặc tính cần thiết để nhận biết sự tương tác giữa các thành phần như thế nào. Ở mức thiết kế kiến trúc, các thuộc tính nội bộ như chi tiết 1 giải thuật chưa cần phải xác định.
• Mối quan hệ giữa các thành phần nếu đơn giản có thể giống như phép gọi thủ tục từ 1 module này đến module khác, nếu phức tạp thì giống như protocol truy xuất CSDL.
57
Thiết kế kiến trúc
• Kiến trúc không phải là phần mềm vận hành (operational software).
• Kiến trúc cho phép kỹ sư phần mềm:
1. Phân tích tính hiệu quả của thiết kế xem có đáp ứng các yêu cầu hay không?
2. Khảo sát các chọn lựa kiến trúc khác nhau
58