Nền tảng thiết kế Nền tảng thiết kế Bởi: Khoa CNTT ĐHSP KT Hưng Yên Mặc dầu có nhiều phương pháp thiết kế phần mềm trình thiết kế, sử dụng số khái niệm làm tảng Chúng gọi tảng thiết kế Trừu tượng (abstraction) Khái niệm trừu tượng cho phép tập trung vào vấn đề mức tổng quát đó, không xét tới chi tiết mức thấp không liên quan Việc dùng trừu tượng hoá cho phép ta làm việc với khái niệm thuật ngữ quen thuộc môi trường vấn đề mà biến đổi chúng thành cấu trúc không quen thuộc Khi xét vấn đề cho việc tìm giải pháp module, đặt nhiều mức độ trừu tượng Tại mức trừu tượng cao nhất: phát biểu ngôn ngữ môi trường vấn đề Tại mức trừu tượng thấp hơn, thường lấy khuynh hướng thủ tục; mức thấp nhất, giải pháp phát biểu theo cách cài đặt trực tiếp Trong bước tiến trình làm mịn cho mức trừu tượng giải pháp Khi chuyển qua mức trừu tượng khác nhau, làm việc để tạo trừu tượng thủ tục, trừu tượng liệu trừu tượng điều khiển ? Trừu tượng thủ tục: dãy lệnh có tên, có chức xác định giới hạn ? Trừu tượng liệu: tập hợp liệu có tên mô tả cho vật liệu Đối tượng liệu thực chất tập hợp nhiều mẫu thông tin khác ta tham khảo tới cách nói tên trừu tượng liệu Trừu tượng liệu làm cho người thiết kế xác định vật liệu hoàn cảnh thao tác (thủ tục) áp dụng vào ? Trừu tượng điều khiển: áp dụng cho chế điều khiển chương trình mà không xác định chi tiết bên Làm mịn (Refinement) Làm mịn chiến lược thiết kế xuống Kiến trúc chương trình phát triển cách mức làm mịn liên tiếp thủ tục Trong bước, hay nhiều 1/6 Nền tảng thiết kế lệnh chương trình cho phân rã thành lệnh chi tiết Việc phân rã hay làm mịn liên tiếp đặc tả kết thúc tất lệnh diễn đạt dạng ngôn ngữ lập trình hay ngôn ngữ máy tính tảng Khi nhiệm vụ làm mịn liệu phải làm mịn, phân rã hay cấu trúc lại Cần ý bước làm mịn kéo theo định thiết kế Người lập trình cần nhận biết tiêu chuẩn tảng cho định thiết kế tồn giải pháp khác Tính module Phần mềm chia thành phần có tên riêng biệt định địa được, gọi module Các module tích hợp để thỏa mãn yêu cầu vấn đề Gọi C(x) hàm xác định độ phức tạp cảm nhận vấn đề x, E(x) hàm xác định nổ lực cần có để giải vấn đề x Với hai vấn đề p, q ta có Nếu C(p)>C(q) tổng quát ta suy E(p)>E(q) phải nhiều nổ lực để giải vấn đề khó Một đặc trưng qua thực nghiệm là: C(p+q)>C(p)+C(q) Kiến trúc phần mềm Kiến trúc phần mềm suy dẫn qua tiến trình phân hoạch đặt mối quan hệ phần tử giải pháp phần mềm với phận giới thực xác định không tường minh phân tích yêu cầu Kiến trúc phần mềm gồm có hai đặc trưng quan trọng khiển i Cấu trúc phân cấp thành phần thủ tục (module): cấp bậc điều ii Cấu trúc liệu Cấp bậc điều khiển Cấp bậc điều khiển gọi cấu trúc chương trình Nó biểu thị cho cách tổ chức thành phần module khác Một số số điều khiển quan tâm: 2/6 Nền tảng thiết kế + Chiều rộng: độ trải rộng toàn điều khiển + Độ sâu: báo số điều khiển + Số module ra: độ đo số module trực tiếp bị điều khiển module + Số module vào: số module trực tiếp điều khiển module cho + Thượng cấp: module điều khiển module khác + Thuộc cấp: module bị module khác điều khiển + Tính thấy + Tính nối + Tính cố kết, Cấu trúc chương trình số minh hoạ hình sau: Cấu tr ú c liệu 3/6 Nền tảng thiết kế Cấu trúc liệu biểu diễn cho mối quan hệ logic phần liệu riêng lẻ, số cấu trúc liệu thường sử dụng như: khoảng mục vô hướng, vector tuần tự, danh sách móc nối, không gian n chiều, cấp bậc, Ta xét phần mềm P cần giải qua phần mềm giải pháp phần mềm S chọn hình sau: Rõ ràng, giải vấn đề, có nhiều giải pháp phần mềm Mỗi giải pháp Si ta có cấu trúc khác Xét toán P cho sau 4/6 Nền tảng thiết kế Ta thấy, cấu trúc dựa tảng khác khái niệm thiết kế "tốt" câu hỏi "cái tốt nhất" khó để trả lời không muốn nói không trả lời Chi tiết vần đề bàn chi tiết mục 4.6 Che dấu thông tin Che dấu thông tin khái niệm module nên đặc trưng định thiết kế mà ẩn kín với module khác, thông tin chứa module thâm nhập tới từ module khác không cần đến thông tin Che dấu thông tin kéo theo việc xác định tập module độc lập mà trao đổi module thông tin thật cần thiết cho việc vận hành phần mềm Che dấu thông tin tiêu chuẩn thiết kế hệ thống module lợi ích mà mang lại Khi có sai sót xảy ra, thay đổi có khả lan truyền sang vị trí khác bên phần mềm Thiết kế module Sự trừu tượng hóa che dấu thông tin dùng để thiết kế module Bên cấu trúc chương trình, module phân loại: + Module tuần tự: tham khảo thực không bị ngắt + Module tăng trưởng: bị ngắt trước hoàn tất sau chạy lại thời điểm ngắt 5/6 Nền tảng thiết kế + Module song song: thực đồng thời với module khác Với module cần có: + tính độc lập chức năng, + tính cố kết, + tính gắn nối, 6/6 ... mềm Mỗi giải pháp Si ta có cấu trúc khác Xét toán P cho sau 4/6 Nền tảng thiết kế Ta thấy, cấu trúc dựa tảng khác khái niệm thiết kế "tốt" câu hỏi "cái tốt nhất" khó để trả lời không muốn nói không.. .Nền tảng thiết kế lệnh chương trình cho phân rã thành lệnh chi tiết Việc phân rã hay làm mịn liên tiếp đặc tả kết thúc tất lệnh diễn đạt dạng ngôn ngữ lập trình hay ngôn ngữ máy tính tảng. .. module khác điều khiển + Tính thấy + Tính nối + Tính cố kết, Cấu trúc chương trình số minh hoạ hình sau: Cấu tr ú c liệu 3/6 Nền tảng thiết kế Cấu trúc liệu biểu diễn cho mối quan hệ logic phần