Nhắc lại rằng các mô hình kiến trúc của một hệ thống phần mềm rất cần và có thể được sử dụng để thảo luận về các yêu cầu giữa nhóm thiết kế, phát triển phần mềm và những người có thẩm quyền. Hơn nữa, các mô hình này còn có thể được sử dụng để lập hồ sơ kiến trúc trong các bước làm mịn sau này.
Trong mục này chúng ta sẽ thảo luận hai vấn đề quan trọng sau đây:
1. Khi thiết kế và lập hồ sơ cho kiến trúc hệ thống ta vận dụng các quan điểm nào và dự đoán viễn cảnh của hệ thống ra sao?
2. Khái niệm nào cần thiết cho mô tả kiến trúc hệ thống?
Không thể biểu diễn mọi thông tin về kiến trúc hệ thống với một tập các mô hình đơn giản và tổng qúat lúc đầu, vì mỗi mô hình chỉ phản ánh một quan điểm và một viễn cảnh của hệ thống. Chẳng hạn, nó chỉ có thể cho biết rằng hệ thống sẽ được làm mịn, phân rã thành các đơn thể nào, cũng như các tiến trình thời gian thực sẽ tương tác với nhau ra sao hoặc vận dụng các phương thức nào để phân bố các cấu phần của hệ thống đối với mô hình phân tán.
Chúng ta luôn luôn cần cả một lớp các quan điểm cho các bước tiếp theo.
Krutchen (1995), đề xuất mô hình (4+1) quan điểm cho kiến trúc phần mềm. Đó là:
Q U A N Đ I Ể M
Trong tài liệu này các thuật ngữ sau đây được xem là tương đương:
- Quan điểm;
- Quan niệm;
- Khung nhìn.
Quan điểm thể hiện cách nhìn sự vật và hiện tượng.
N G U Y Ê N L Í K H U N G N H Ì N
Có thể và nên quan sát, xem xét, phân tích và xử lí sự vật và hiện tượng theo các góc nhìn và khung nhìn khác nhau. Xét theo quan điểm nào thì phải xử lí theo phương thức tương ứng.
1. Quan điểm logic. Quan điểm này giúp chúng ta thể hiện các đối tượng và lớp trừu tượng cơ bản trong hệ thống, thể hiện các yêu cầu về thực thể dưới dạng các quan niệm logic.
2. Quan điểm tiến trình. Vào thời điểm hệ thống hoạt động ta phải hình dung rõ các qui trình tương tác của hệ thống. Khi tuân thủ quan điểm tiến trình, điều quan trọng là phải hiểu được các yêu cầu phi chức năng như tính hiệu năng hoặc tính hữu dụng.
3. Quan điểm phát triển. Theo quan điểm phát triển, ta giải thích được hệ thống sẽ được phân rã ra sao trong quá trình phát triển. Quan điểm phát triển là hữu ích đối với các nhân viên quản trị và lập trình viên.
phần mềm tương ứng trong hệ thống. Quan điểm này rất quen thuộc đối với các kĩ sư hệ thống.
Hofmeister và các cộng sự [6] bổ sung thêm
Khung quan điểm hay khung nhìn chính là khung trừu tượng làm cơ sở cho quá trình phân rã các yêu cầu mức cao thành các đặc tả chi tiết giúp cho các nhân viên quyết định chọn các cấu phần dùng lại và thể hiện các dòng sản phẩm.
Trong thực tiễn, khung nhìn được sử dụng với tần suất cao. Nó cũng là cơ sở để trao đổi giữa nhóm phát triển phần mềm và những người có thẩm quyền.
Thí dụ, Có nhiều quan điểm khác nhau về khả năng sử dụng UML và các môi trường đặc tả khác nhau trong thiết kế kiến trúc [9].
Nếu ta tiếp cận theo hướng đối tượng thì nên sử dụng UML. Ngoài ra ta có thể sử dụng các công cụ khác như các ngôn ngữ mô tả chuyên dụng (Specialized Architectural Description Languages, ADLs, [8]) với các phần tử cơ sở là các thành phần và các đường nối.
U M L
UML (Unified Modeling Language Ngôn ngữ mô hình hóa thống nhất) do Booch, Rumbaugh và Jacobson đề xuất dùng để đặc tả kiến trúc hệ thống theo tiếp cận mô hình hoá và hướng đối tượng.
Các công cụ trực quan chủ yếu là các biểu đồ:
biểu đồ lớp, biểu đồ trình tự, biểu đồ trạng thái, biểu đồ cộng tác, biểu đồ cấu trúc (thành phần), biểu đồ triển khai.
Bài tập 1.4
1. Hiện nay các thiết bị điện tử được tích hợp rất nhiều tiện ích. Bạn thử liệt kê một số chức năng mà bạn muốn tích hợp vào chiếc điện thoại di động của bạn. Với mỗi chức năng bạn hãy gán một trị số từ 1 đến 10 nhằm xác định ý kiến của bạn về mức độ cần thiết của chức năng đó: mức 10 là rất cần thiết.
2. Bill Gate đã xây dựng cho mình một ngôi nhà thông minh, trong đó mọi dịch vụ trong sinh hoạt gia đình được tự động hóa tối đa thông qua hệ thống các
phần mềm. Bạn hãy thử mô tả ước muốn của bạn về một ngôi nhà thông minh theo gợi ý sau:
Năng lượng:
Sau t phút chủ nhà không sử dụng thì tự động ngắt;
Khi sắp có mưa giông, tự động cảnh báo cho chủ nhà về chế độ ngắt thiết bị khỏi nguồn điện;
… An ninh:
… Giải trí:
…