Các khái niệm trong thiết kế:
Trừu tượng (Abstraction): chia ra 3 mức: mức cao nhất, mức vừa, mức thấp. có các dạng trừu tượng như trừu tượng thủ tục, trừu tượng DL
Phân rã (Decomposition): Chia nhỏ đối tượng
Làm mịn (Refinement): Chiến lược thiết kế từ trên xuống
62 trang |
Chia sẻ: haohao89 | Lượt xem: 2439 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng Thiết kế phần mềm: Tổng quan về thiết kế phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
THIẾT KẾ PHẦN MỀM I. TỔNG QUAN VỀ THIẾT KẾ PHẦN MỀM Khái niệm và vai trò Triển khai thiết kế Chiến lược và phương pháp thiết kế Chất lượng và các giải pháp đảm bảo chất lượng thiết kế 1. KHÁI NIỆM, VAI TRÒ Thiết kế : Là quá trình chuyển hóa các đặc tả yêu cầu phần mềm thành 1 biểu diễn thiết kế của hệ thống phần mềm cần xây dựng, sao cho người lập trình có thể ánh xạ nó thành 1 chương trình Kết quả : Tạo ra mô hình phần mềm. Cung cấp các thông tin chi tiết về 3 thành phần phần mềm : Giao diện, thành phần xử lý, thành phần dữ liệu 1. KHÁI NIỆM, VAI TRÒ (t) Thiết kế phần mềm trải qua một số giai đoạn chính sau : Nghiên cứu để hiểu vấn đề Chọn 1 số giải pháp thiết kế và xác định các đặc điểm thô của nó Mô tả trừu tượng cho mỗi giải pháp thiết kế Vai trò: 1. KHÁI NIỆM, VAI TRÒ (t) Vai trò: Là cách duy nhất để chuyển hóa 1 cách chính xác các yêu cầu của khách hàng thành mô hình thiết kế hệ thống phần mềm cuối cùng, làm cơ sở cho việc triển khai chương trình PM Là công cụ giao tiếp làm cơ sở để có thể mô tả 1 cách đầy đủ các dịch vụ của hệ thống, để quản lý rủi ro và lựa chọn các giải pháp thích hợp 1. KHÁI NIỆM, VAI TRÒ (t) Vai trò: Là tài liệu cung cấp đầy đủ các thông tin cần thiết cho để bảo trì hệ thống Nếu không có thiết kế thì hệ thống không tin cậy dẫn đến nguy cơ thất bại Thiết kế tốt là bước quan trọng đầu tiên để đảm bảo chất lượng PM 1. KHÁI NIỆM, VAI TRÒ (t) Các khái niệm trong thiết kế: Trừu tượng (Abstraction): chia ra 3 mức: mức cao nhất, mức vừa, mức thấp. có các dạng trừu tượng như trừu tượng thủ tục, trừu tượng DL Phân rã (Decomposition): Chia nhỏ đối tượng Làm mịn (Refinement): Chiến lược thiết kế từ trên xuống 1. KHÁI NIỆM, VAI TRÒ (t) Các khái niệm trong thiết kế: (t) Modul: phân chia chương trình thành các đơn vị nhỏ Thủ tục phần mềm (Software procedure) : thuật toán để thực hiện chức năng Che dấu thông tin (Information hidding) : biểu diễn bằng giao diện 1. KHÁI NIỆM, VAI TRÒ (t) 2. TRIỂN KHAI THIẾT KẾ Tiến trình thiết kế Các hoạt động và sản phẩm thiết kế Biểu diễn thiết kế Các giai đoạn thiết kế Tiến trình thiết kế (design process): quá trình tăng cường hình thức hóa sự PT của thiết kế Kết quả của hoạt động thiết kế là đặc tả Thiết kế và đặc tả yêu cầu có quan hệ chặt chẽ với nhau do tiến trình phát triển PM là 1 sự hoàn thiện liên tục Phương pháp tiếp cận là từ trên xuống 2. TRIỂN KHAI THIẾT KẾ (t) Các hoạt động và sản phẩm thiết kế : Thiết kế kiến trúc: Đặc tả trừu tượng: Thiết kế giao diện Thiết kế cấu trúc dữ liệu : Thiết kế các thành phần : Thiết kế thuật toán: 2. TRIỂN KHAI THIẾT KẾ (t) Biểu diễn thiết kế : Các biểu đồ: Hiển thị những mối quan hệ giữa các thành phần làm nên bản thiết kế và tạo mối quan hệ giữa bản thiết kế và những thực thể trong thế giới thực Ngôn ngữ mô tả chương trình: Dùng để kiểm tra và cấu trúc các cơ cấu thiết kế dựa trên các cấu trúc của một ngôn ngữ lập trình Dạng văn bản không hình thức hóa: Mô tả các thông tin về lý do thiết kế hoặc các sự kiện phi chức năng. 2. TRIỂN KHAI THIẾT KẾ (t) Các giai đoạn thiết kế : Nhìn nhận theo các khía cạnh khác nhau: nhà quản lý, người phát triển, mức độ hình thức hóa Một cách tổng quát: chia làm thiết kế sơ bộ (tổng thể), t/kế chi tiết (thiết kế logic và vật lý) Thiết kế logic: mô tả các thành phần và quan hệ của chúng mà không gắn với thiết bị vật lý nào Thiết kế vật lý: Chọn giải pháp c/nghệ hiện có để thực hiện cấu trúc logic đó, còn gọi là thiết kế chi tiết hoặc lập trình 2. TRIỂN KHAI THIẾT KẾ (t) Thiết kế hướng chức năng và thiết kế hướng đối tượng Mỗi chiến lược đều có những ưu nhược điểm riêng phụ thuộc và ứng dụng phát triển và nhóm phát triển phần mềm 2 phương pháp tiếp cận này bổ sung hỗ trợ cho nhau chứ không đối kháng nhau 3. CHIẾN LƯỢC VÀ PHƯƠNG PHÁP THIẾT KẾ Không có tiêu chuẩn cụ thể về chất lượng thiết kế. Một bản thiết kế tốt là bản thiết kế cho phép tạo ra mã có hiệu lực, tối thiểu công sức . 4. CHẤT LƯỢNG THIẾT KẾ Thiết kế phải đảm bảo các tiêu chí sau: Sự kết dính của các thành phần :là độ đo về tính khớp lại với nhau giữa các phần tử trong thành phần. Được chia ra các mức theo thứ tự tăng dần: kết dính gom góp kết dính hỗn hợp logic Kết dính theo thời điểm Kết dính thủ tục Kết dính truyền thông Kết dính tuần tự, Kết dính chức năng 4. CHẤT LƯỢNG THIẾT KẾ (t) Sự ghép nối: Nó chỉ ra mức độ độc lập giữa các đơn vị thành phần của một chương trình. Các loại kết nối được xếp theo thứ tự từ tốt đến xấu: Ghép nối dữ liệu ghép nối điều khiển ghép nối chung ghép nối nội dung 4. CHẤT LƯỢNG THIẾT KẾ (t) Tính hiểu được - một số đặc tính liên quan đến tính hiểu được Tính kết dính : Đặt tên soạn tư liệu độ phức tạp Tính thích nghi : Một thiết kế dễ bảo trì thì nó phải sẵn sàng thích nghi được, nghĩa là các thành phần của chúng nên được ghép nối lỏng lẻo 4. CHẤT LƯỢNG THIẾT KẾ (t) Các giải pháp cho một thiết kế tốt: 1 thiết kế sẽ tốt nếu thực hiện đúng tiến trình thiết kế phần mềm thông qua việc áp dụng các nguyên lý thiết kế cơ bản, các phương pháp luận hệ thống, các công cụ trợ giúp và việc xét duyệt nghiêm túc Những hướng dẫn cần được vận dụng trong thiết kế Tổ chức phân cấp Tổ chức theo các modul Biểu diễn phân biệt và tách biệt dữ liệu và thủ tục Hình thành giao diện Sử dụng lại các thành phần phần mềm đã có 4. CHẤT LƯỢNG THIẾT KẾ (t) Những nguyên lý thiết kế cần được vận dụng: Cần tính đến mọi cách tiếp cận khác nhau thay vì 1 cách Có thể lần vết trở lại mô hình hay bước trước đó Không nên giải quyết vấn đề đã được giải quyết mà nên sử dụng lại Phải rút ngắn khoảng cách phần mềm và vấn đề tồn tại hệ thực Thể hiện được tính nhất quán và tích hợp Cần được cấu trúc để dễ thay đổi Thiết kế không phải là mã hóa và ngược lại Cần được theo dõi ngay từ đầu để tránh lỗi Cần được đánh giá và rà soát chất lượng 4. CHẤT LƯỢNG THIẾT KẾ (t) II. THIẾT KẾ KIẾN TRÚC 1. Kiến trúc phần mềm 2. Các mô hình kiến trúc 1. KIẾN TRÚC PHẦN MỀM Kiến trúc phần mềm (Software Architecture) chỉ một cấu trúc phần mềm và qua đó cung cấp một sự tích hợp chặt về mặt khái niệm của hệ thống Có vai trò quan trọng trong phát triển phần mềm, gồm 3 vai trò: Công cụ giao tiếp giữa những người liên quan Để phân tích hệ thống Sử dụng lại ở quy mô lớn 1. KIẾN TRÚC PHẦN MỀM Ví dụ kiến trúc phần mềm Đặc điểm của kiến trúc phần mềm : Là giai đoạn đầu của quá trình thiết kế biểu diễn sự kết nối giữa đặc tả yêu cầu và các tiến trình thiết kế thường tiến hành song song với các hoạt động đặc tả phần mềm bao gồm việc xác định các thành phần hệ thống và các giao tiếp giữa chúng Cấu trúc hoá hệ thống : phân chia hệ thống thành các hệ con độc lập Mô hình hóa điều khiển: Xác lập mô hình điều khiển giữa các thành phần trong hệ thống. Phân rã modul : Phân rã các thành phần con thành các modul 1. KIẾN TRÚC PHẦN MỀM 2. CÁC MÔ HÌNH KIẾN TRÚC Mô hình cấu trúc Mô hình điều khiển Mô hình cấu trúc: Kiến trúc dữ liệu tập trung : 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Ưu điểm : Tiện lợi cho chia sẻ dữ liệu lớn Các phân hệ không cần quan tâm tổ chức dữ liệu Nhược điểm: Các phân hệ phải thống nhất mô hình dữ liệu Khó thay đổi cấu trúc dữ liệu Các phân hệ không thể đưa ra chính sách riêng Khó khăn trong quản lý giao dịch 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình cấu trúc: (t) Kiến trúc dữ liệu khách - dịch vụ : 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình cấu trúc: (t) Kiến trúc dữ liệu khách - dịch vụ : Hệ thống được phân tán về dữ liệu và xử lý thông qua các quan hệ các thành phần Các máy dịch vụ (server) độc lập cung cấp các dịch vụ đặc biệt (in ấn, ql dữ liệu) Các máy khách sử dụng dịch vụ server Hệ thống mạng để máy khách truy cập dịch vụ 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình cấu trúc: (t) Kiến trúc dữ liệu khách - dịch vụ : Ưu điểm: Sử dụng hiệu quả mạng, giảm chi phí thiết bị Dễ dàng mở rộng, thêm dịch vụ Nhược điểm: Khó tích hợp dữ liệu Cần cơ chế bảo toàn dữ liệu cho từng server 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình cấu trúc: (t) Kiến trúc phân tầng 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Phân rã hệ thống thành các tầng Mỗi tầng cung cấp một tập hợp các dịch vụ Khi giao diện của một lớp thay đổi thì chỉ những lớp liền kề mới bị ảnh hưởng Mô hình phân lớp của hệ quản lý phiên bản Mô hình điều khiển: Kiến trúc gọi và trả lại 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Gồm các hệ thống con được sắp xếp phân cấp, thủ tục điều kiển nằm ở đỉnh của cấu trúc phân cấp Truyền điều khiển từ trên xuống Dùng cho các hệ thống tuần tự Mô hình điều khiển: Kiến trúc xử lý hướng sự kiện : Là cơ chế gửi yêu cầu tới các hệ con bao gồm 2 mô hình chính : Điều khiển quảng bá, Điều khiển ngắt 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình điều khiển: Điều khiển quảng bá : 2. CÁC MÔ HÌNH KIẾN TRÚC (t) Mô hình điều khiển: Điều khiển ngắt : 2. CÁC MÔ HÌNH KIẾN TRÚC (t) III. THIẾT KẾ HƯỚNG CHỨC NĂNG Là một giai đoạn của chiến lược phát triển định hướng chức năng Đầu vào là các mô hình nhận được ở giai đoạn phân tích, tiến trình TK bắt đầu với TK logic, tiếp là TK vật lý, thiết kế xử lý được tiến hành với các luồng DL sơ cấp Thường được chia ra 2 tiến trình: Thiết kế dữ liệu Thiết kế xử lý 1. THIẾT KẾ DỮ LIỆU Gồm 2 bước: Thiết kế dữ liệu logic và thiết kế cơ sở dữ liệu vật lý Thiết kế dữ liệu logic: Đầu vào của bước này là mô hình thực thể quan hệ, được mô tả Thiết kế CSDL vật lý: Thực hiện trên cơ sở mô hình quan hệ nhận được, lựa chọn hệ quản trị CSDl tiến hành phi chuẩn hóa, thiết kế tệp 2. THIẾT KẾ XỬ LÝ Gồm 2 bước: Thiết kế xử lý logic và thiết kế kiến trúc modul Thiết kế xử lý logic: Xuất phát từ luồng DL vật lý , bỏ đi các y/tố vật lý và cấu trúc lại để mô hình vẫn đảm bảo thực hiện đúng các chức năng Thiết kế kiến trúc modul: Trước hết cần xác định luồng hệ thống từ biểu đồ luồng DL bằng cách chọn các tiến trình máy thực hiện và phương thức thực hiện 3. ƯU VÀ NHƯỢC ĐIỂM Đã có thời gian phát triển lâu dài nên các phương pháp và các công cụ cũng đã hoàn thiện Có các hệ quản trị CSDL mạnh: SQLServer, Oracle trợ giúp việc lưu trữ và tự động hóa cao Thích hợp với các bài toán xử lý trên các DL có thể mô tả ở dạng bảng Tuy nhiên hạn chế với các bài toán DL đa dạng và đòi hỏi nhiều đối tượng tương tác với nhau Nếu HT sử dụng CSDL dùng chung thì khó SD lại và sai sót ở một số bộ phận thì ảnh hưởng đến toàn hệ thống IV.THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 1. Một số khái niệm của UML ULM là ngôn ngữ mô hình hóa thống nhất, là ngôn ngữ chuẩn cho phát triển phần mềm hướng đối tượng Lớp (Class) để đặc tả các đối tượng được biểu diễn bằng hình vuông có tên và các thuộc tính cũng như phương thức Các lớp có mối quan hệ với nhau: quan hệ phụ thuộc, quan hệ kế thừa, quan hệ kết hợp (giữa toàn thể và bộ phận), quan hệ kết tập(đối tượng và thành phần cấu thành của nó) IV.THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 1. Một số khái niệm của UML 2. Tiến trình thiết kế hướng đối tượng Là 1 phần của chiến lược phát triển định hướng đối tượng Đầu vào là các mô hình nhận được ở giai đoạn phân tích Gồm các bước: Xác định kiến trúc của hệ thống Sắp thứ tự ưu tiên các gói Với mỗi gói thiết kế ca sử dụng tương ứng Xây dựng biểu đồ tương tác Thiết kế chi tiết các lớp Phân tích và hoàn thiện biểu đồ lớp dựa trên mẫu thiết kế IV.THIẾT KẾ HƯỚNG ĐỐI TƯỢNG (t) 3. Ưu nhược điểm Dễ bảo trì, mọi thay đổi của đối tượng không làm ảnh hưởng đến các đối tượng khác Các đối tượng có thể sử dụng lại được Có thể phản ánh được thế giới thực một cách cụ thể Tuy nhiên có nhược điểm như: khó thực hiện vì khó xác định đối tượng của hệ thống. IV.THIẾT KẾ HƯỚNG ĐỐI TƯỢNG (t) V. THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC Hệ thống thời gian thực là Ht mà sự hoạt động đúng đắn của nó phụ thuộc vào kết quả được tạo ra và thời gian kết quả được xuất ra Thường là hệ thống nhúng Có thể được xem là hệ kích thích/đáp ứng. Có 2 loại kích thích: Định kỳ và không định kỳ Phần mềm thời gian thực bao gồm: Một thành phần thu thập DL Một thành phần phân tích Một thành phần kiểm soát đáp ứng Mô hình TK thời gian thực 1. TIẾN TRÌNH TK HỆ THỐNG THỜI GIAN THỰC Thường gồm các bước: Xác định các tác nhân kích thích mà hệ phải đáp ứng Với mỗi kích thích tương ứng xác định các ràng buộc Phân tích các kích thích và quá trình xử lý đáp ứng thành 1 tiến trình song song Với mỗi cặp kích thích/đáp ứng thiết kế các thuật toán tương ứng Thiết kế hệ thống lập lịch đảm bảo các quá trình được bắt đầu ở đúng thời điểm thích hợp Tích hợp hệ thống dưới sự điều khiển của một bộ điều phối thời gian thực 2. MÔ HÌNH HÓA MÁY TRẠNG THÁI Được sử dụng rộng rãi cho việc thiết kế thời gian thực Gồm một bộ chức năng Khống chế, hàm, dữ liệu Cái vào gây kích thích, khi đó chuỗi hành vi được kích hoạt và đáp ứng yêu cầu 3. BỘ ĐIỀU PHỐI THỜI GIAN THỰC Chịu trách nhiệm quản lý quá trình và định vị tài nguyên trong hệ thời gian thực Tương tự hệ điều hành trong máy tính với mục đích khái quát hóa Với các h/thống cần cung cấp dịch vụ liên tục thì cần thêm bộ quản lý cấu hình và bộ quản lý lỗi Các kích thích tùy theo mức độ quan trọng mà có mức ưu tiên khác nhau, gồm 2 mức Mức ngắt: Là mức ưu tiên cao nhất Mức đồng hồ: Mức sau 4. HỆ GIÁM SÁT VÀ ĐK, THU THẬP DỮ LIỆU Hệ giám sát và khống chế là 1 lớp quan trọng của hệ thời gian thực, Nó liên tục kiểm tra các kích thích đầu vào Hệ giám sát sẽ có hoạt động tương ứng khi có cảm biến ngoại lệ Thiết kế này dựa trên sự phân tích cụ thể từng cặp kích thích/ đáp ứng của thiết bị giám sát Hệ thu nhận dữ liệu là lớp khác của hệ thời gian thực. Hệ này thu thập DL từ các cảm biến cho việc phân tích và xử lý nối tiếp nhau VI .THIẾT KẾ GIAO DIỆN NGƯỜI MÁY Vai trò tiến hóa của giao diện người – máy Các nguyên tắc thiết kế giao diện người – máy Tiến trình thiết kế giao diện Đánh giá giao diện Chuẩn giao diện 1. VAI TRÒ TIẾN HÓA CỦA GIAO DIỆN NGƯỜI MÁY Chính là phương tiện thiết lập nên cơ chế mà qua đó người sử dụng có thể giao tiếp và sử dụng HT máy tính Giao diện của hệ thống tương tác thường được xem là tiêu chuẩn để đánh giá HT tồi hay tốt G/diện tương tác người – máy qua nhiều thế hệ: Thế hệ 1: Giao diện chỉ lệnh và hỏi Thế hệ 2: G/diện thực đơn đơn giản Thế hệ 3: G/diện đồ họa GD người dùng đồ họa (GUI) được sử dụng rộng rãi, có nhiều ưu điểm nổi trội, tăng hiệu quả SD 2. CÁC NGUYÊN TẮC TK GIAO DIỆN NGƯỜI - MÁY Giao diện người dùng được xem là yếu tố quyết định thành công của hệ thống. Thiết kế giao diện người sử dụng phải lấy con người làm trung tâm Một số nguyên tắc thiết kế Tính quen thuộc với người sử dụng Tính nhất quán Tối thiểu hóa bất ngờ Có khả năng phục hồi Hướng dẫn sử dụng Đa dạng người dùng 2. CÁC NGUYÊN TẮC TK GIAO DIỆN NGƯỜI - MÁY Tác nhân con người trong thiết kế giao diện : Các đặc điểm của người sử dụng: khả năng nhớ tức thời của con người thường hạn chế Người sử dụng có thể gây ra lỗi: Người sử dụng là khác nhau : Người sử dụng thích các loại tương tác khác nhau 3. TIẾN TRÌNH THIẾT KẾ GIAO DIỆN 3. TIẾN TRÌNH THIẾT KẾ GIAO DIỆN Thiết kế giao diện người dùng là một quy trình lặp lại bao gồm sự cộng tác giữa người sử dụng và người thiết kế. Quy trình này gồm 3 hoạt động cơ bản : Phân tích người sử dụng : Lập mẫu thử hệ thống : Đánh giá giao diện : 3. TIẾN TRÌNH THIẾT KẾ GIAO DIỆN Các vấn đề cần xem xét trong thiết kế giao diện Phương pháp hiển thị thông tin : Thời gian phản hồi : Hiển thị thông báo Tiện ích : 3. TIẾN TRÌNH THIẾT KẾ GIAO DIỆN Phương pháp hiển thị thông tin : Hiển thị bằng văn bản: Chính xác, dễ cài đặt Hiển thị bằng giao diện: Trực quan, dễ nhận ra mối quan hệ Thời gian phản hồi: Người dùng không thể đợi quá lâu Cần chứng tỏ hệ thống đang hoạt động Độ biến thiên thời gian phản hồi không gây cảm giác hệ thống đang gặp lỗi 3. TIẾN TRÌNH THIẾT KẾ GIAO DIỆN Xây dựng thông báo : Phản hồi hệ thống với thao tác Cần có ý nghĩa, dễ hiểu, hữu ích Tránh đưa ra các số hiệu Định dạng thông báo phải nhất quán Các kỹ thuật đánh giá đơn giản : Trắc nghiệm lại các phản hồi của người sử dụng Ghi lại quá trình sử dụng mẫu thử của hệ thống và đánh giá nó Lựa chọn những thông tin về việc sử dụng dễ dàng và các lỗi của người sử dụng Cung cấp mã lệnh trong phần mềm để thu thập những phản hồi của người sử dụng một cách trực tuyến 4. Đánh giá giao diện VII. TÀI LIỆU THIẾT KẾ Tùy thuộc vào từng mô hình tiếp cận, và từng dự án cụ thể Thường đề cập đến một số vấn đề chính Phạm vi A. Mục tiêu của hệ thống B. Phần cứng, phần mềm và giao diện con người C. Các chức năng phần mềm chính D. Cơ sở dữ liệu được xác định bên ngoài E. Các ràng buộc, giới hạn thiết kế chính Tài liệu tham khảo: A. Tài liệu về phần mềm hiện có B. Tài liệu hệ thống C. Tài liệu người cung cấp D. Tham khảo kỹ thuật Mô tả thiết kế: A. Mô tả dữ liệu B. Cấu trúc chương trình suy diễn C. Giao diện bên trong cấu trúc VII. TÀI LIỆU THIẾT KẾ Mô tả modul: A. Lời thuật xử lý B. Mô tả giao diện C. Mô tả ngôn ngữ thiết kế D. Mô tả các modul đã dùng E. Tổ chức dữ liệu F. Bình luận Cấu trúc tệp và DL toàn cục A. Cấu trúc tệp ngoài B. Dữ liệu toàn cục C. Tham khảo chéo tệp và dữ liệu Tham khảo chéo YC Điều khoản kiểm thử Đóng gói Lưu ý đặc biệt Phụ lục