Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN Email: vynv@coltech.vnu.vn K ngh phn mm Software Engeneering B môn Công ngh phn mm – HCN 2 NguynVnV Ni dung Bài 5: Khái nim thit k phn mm ̈ Kh¸i niÖm, nguyªn lý, chÊt l−îng ̈ Néi dung thiÕt kÕ vμ chÊt l−îng B môn Công ngh phn mm – HCN 3 NguynVnV TÀI LiU THAM KHO 1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn mm. Nhà xut bn i hc Quc gia Hà ni, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi. Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà Ni. B mụn Cụng ngh phn mm HCN 4 NguynVnV Khái niệm thit k phần mềm Tìm giải pháp công nghệ (cách thức, phơng án) Biểu diễn cách thức, phơng án Xem xét lại, chi tiết hóa đủ chi tiết để ngời lập trình biết phải lm nh thế no để chuyển thnh chơng trình Thit k l chuyển đặc tả yêu cầu thnh mô tả thiết kế m ngi lp trình có th chuyn thnh chng trình với 1 ngôn ngữ, vận hnh đợc đáp ứng đợc yêu cầu đặt ra L 1 quá trình sáng tạo: B mụn Cụng ngh phn mm HCN 5 NguynVnV tạo mô hình ci đặt của phần mềm l công c giao tip gia các những ngời tham gia phát trin, cơ sở đảm bảo chất lợng hệ thống dễ đọc, dễ hiểu, dễ sửa đổi hơn mã chơng trinh có nhiều mức chi tiết; cung cấp cái nhìn tổng thể lm cơ sở để trao đổi, cải tiến Cung cấp đầy đủ thông tin cho việc bảo trì sau ny: Giảm công sức mã hóa khi sửa đổi Tiện bảo trì phát triển, mở rộng Vai trò thiết kế B mụn Cụng ngh phn mm HCN 6 NguynVnV Cấu trúc thiết kế Phần mềm l tập các mô đun tơng tác lẫn nhau Mô đun hóa l chìa khóa cho phần mềm tốt Mục tiêu thiết kế l xác định: các mô đun chức năng cách thức ci đặt mô đun tơng tác giữa các mô đun B mụn Cụng ngh phn mm HCN 7 NguynVnV 1. không bị bó buộc vo một cách nhin hạn chế no nó cần đợc lựa chọn từ các giải pháp có thể 2. cho phép lần ngợc lại mô hinh phân tích các mô đun & các yêu cầu không nhất thiết phải tơng ứng 1-1 nhng phải kiểm tra đợc sự thỏa mãn các yêu cầu Nguyên lý thiết kế B môn Công ngh phn mm – HCN 8 NguynVnV 3. Kh«ng nªn t¹o l¹i c¸c thiÕt kÕ (gi¶i ph¸p) ®· cã, mμ cÇn t¸i sö dông tèi ®a chóng 4. M« h×nh thiÕt kÕ (gi¶i ph¸p) nªn tiÕn gÇn ®Õn m« hinh thÕ giíi thùc (bμi to¸n) 5. BiÓu diÔn thiÕt kÕ ph¶i nhÊt qu¸n vμ cã tÝnh tÝch hîp: º thiÕt kÕ do nhiÒu ng−êi tiÕn hμnh song song º ph¶i thèng nhÊt c¸ch biÓu diÔn, thèng nhÊt giao diÖn 6. ThiÕt kÕ cÇn cã cÊu tróc ®Ó dÔ hiÓu, dÔ thay ®æi º ph¶i ®−îc modun hãa, ph©n cÊp Nguyªn lý thiÕt kÕ (t) B mụn Cụng ngh phn mm HCN 9 NguynVnV 7. Thiết kế không phải l mã hóa thiết kế luôn có mức trừu tợng hơn mã hóa, đảm bảo dễ hiểu, dễ thay đổi 8. Thiết kế cần đợc đánh giá chất lợng ngay trong khi đợc tạo ra tính kết dính, tính ghép nối, hiệu quả thuật toán 9. Thiết kế cần đợc thẩm định để tránh các lỗi mang tính hệ thống thiếu chức năng, chức năng không rõ, mâu thuẫn Nguyên lý thiết kế (t) B mụn Cụng ngh phn mm HCN 10 NguynVnV Nôi dung & chất lợng thiết kế Nội dung thiết kế Thiết kế kiến trúc phân rã hệ thống thnh hệ thống concác mô đun, xác định giao diện tơng tác gia các mô đun Thiết kế cấu trúc dữ liệu xây dựng mô hinh biểu diễn thông tin Thiết kế thủ tục (thuật toán) xác định các bớc thực hiện xử lý Thiết kế giao diện ngời dùng nên nhin nhận giao diện l một bi toán độc lập [...]... thực hiện số lần thực hiện chi tiết thiết kế B mụn Cụng ngh ph n m m HCN 13 Thiết kế cấu trúc d liệu Nguy nV nV Chọn cách biểu diễn các đối t ợng thiết kế có ảnh h ởng mạnh mẽ đến chất l ợng phần mềm Các mức thiết kế Thiết kế cấu trúc lô gic Các quan hệ chuẩn Các khóa Các tham chiếu Các cấu trúc thao tác dữ liệu B mụn Cụng ngh ph n m m HCN Thiết kế cấu trúc vật lý - Các file - Các kiểu - Kích cỡ 14... Cụng ngh ph n m m HCN 15 Các khái niệm thiết kế cơ sở Nguy nV nV Trừu t ợng hóa: trừu t ợng hóa dữ liệu, thủ tục, Làm mịn: Tính môdun: Kiến trúc: Thủ tục: Che dấu: B mụn Cụng ngh ph n m m điều khiển chi tiết hóa các trừu t ợng theo ý đồ phân chia dữ liệu v chức năng cấu trúc tổng thể của phần mềm thuật toán để thực hiện chức năng điều khiển bằng giao diện HCN 16 Trừu t ợng hóa (abstraction)... trì Thiết kế cần cung cấp 1 bức tranh đầy đủ về phần mềm trên quan điểm triển khai h ớng đến các mặt dữ liệu, chức năng v h nh vi của hệ thống MCG91: McMlaughli,R., Mộ số chú ý về thiết kế ch ơng trình, Software Engineering Notes,vol.16, no.4,oct 1991, pp53-54 B mụn Cụng ngh ph n m m HCN 26 Tiêu chí chất l ợng Nguy nV nV Cần thiết lập các tiêu chí kỹ thuật để đánh giá một thiết kế tốt hay không:... thuật để đánh giá một thiết kế tốt hay không: Thiết kế cần có kiến trúc tốt: cấu th nh từ các mẫu (pattern), các th nh phần có đặc tr ng tốt, dễ tiến hoá Thiết kế đ ợc môđul hoá cho mỗi th nh phần chức năng Chứa các biểu diễn tách biệt nhau về: dữ liệu, kiến trúc, giao diện, th nh phần, môi tr ờng Liên kết qua giao diện l m giảm độ phức tạp liên kết giữa các môđul với nhau v giữa hệ thống v môI tr... nghi (tuổi) (bản ghi nhân sự) calc_age B mụn Cụng ngh ph n m m HCN 34 Ghép nối dữ liệu Nguy nV nV Truyền dữ liệu qua tham số Nhận kết quả qua tham số v giá trị trả lại (ng y của tuần) (ng y) calc_day_of_week B mụn Cụng ngh ph n m m HCN 35 Kết dính - Cohesion Nguy nV nV mỗi môđun chỉ nên thực hiện 1 chức năng mọi th nh phần của môđun phải tham gia thực hiện chức năng đó chức năng tuần tự truyền thông... dễ sửa đổi có khả năng phát triển song song dễ sửa đổi, dễ hiểu nên dễ tái sử dụng B mụn Cụng ngh ph n m m HCN 21 Số l ợng môđun Nguy nV nV Cần xác định số môđun tối u chi phí phát triển mô đun giá phần mềm chi phí tích hợp khoảng có số mô đun tối u B mụn Cụng ngh ph n m m HCN số mô đun 22 Kích cỡ môđun Nguy nV nV nội dung? Kích th ớc? Mụ un Kích cỡ mô đun đ ợc quyết định dựa trên khái ni m độc lập... thức c i đặt c a nó: thuật toán cấu trúc d liệu giao diện ngoại lai (mô đun thứ cấp, thiết bị v o/ra) t i nguyên hệ thống B mụn Cụng ngh ph n m m HCN 24 Lý do che giấu thông tin Nguy nV nV Giảm hiệu ứng phụ khi sửa đổi môđun Giảm tác động của thiết kế tổng thể lên thiết kế cục bộ Nhấn mạnh trao đổi thông tin thông qua giao diện Loại bỏ việc sử dụng dữ liệu dùng chung H ớng tới sự đóng gói chức... độ đo: Coupling: mức độ ghép nối giữa các module Cohesion: mức độ liên kết giữa các th nh phần trong một module Understandability: tính hiểu đ ợc Adaptability: tính thích nghi đ ợc B mụn Cụng ngh ph n m m HCN 28 Độ đo chất l ợng thiết kế (t) Nguy nV nV Coupling (ghép nối) độ đo sự liên kết (trao đổi dữ liệu) giữa các mô đun ghép nối chặt chẽ thì khó hiểu, khó sửa đổi do phảI tính đến các liên... các th nh phần trong một module kết dính cao thì tính cục bộ cao (độc lập chức năng); dễ hiểu, dễ sửa đổi Tiêu chuẩn của thiết kế tốt: kết dính chặt, ghép nối lỏng B mụn Cụng ngh ph n m m HCN 29 Ghép nối - Coupling Nguy nV nV mức độ quan hệ của các module: module nên ghép nối lỏng lẻo Mức lỏng lẻo thể hiện qua loại hình ghép nối (hình bên) ghép nối th ờng loose and best ghép nối dữ liệu still... module dùng dữ liệu hay thông tin điều khiển đ ợc duy trì trong 1 mô dun khác L tr ờng hợp xấu nhất Ví dụ: các ngôn ngữ bậc thấp chỉ dùng biến chung 10 20 30 40 50 lạm dụng lệnh Goto trong một chu trình k =1 60 print k, y 70 stop gosub 100 if y > 120 goto 60 100 Y =3*k*k+7*k-3 k = k+1 110 return goto 20 B mụn Cụng ngh ph n m m HCN 31 Ghép nối chung Nguy nV nV Các module trao đổi dữ liệu thông qua . mm HCN 6 NguynVnV Cấu trúc thiết kế Phần mềm l tập các mô đun tơng tác lẫn nhau Mô đun hóa l chìa khóa cho phần mềm tốt Mục tiêu thiết kế l xác định: . Hà Ni. B mụn Cụng ngh phn mm HCN 4 NguynVnV Khái niệm thit k phần mềm Tìm giải pháp công nghệ (cách thức, phơng án) Biểu diễn cách thức, phơng án Xem