K ngh phn mm Software Engeneering Nguyễn Văn Vỵ Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCN Email: vynv@coltech.vnu.vn Bài 5: Khái niệm thiết kế phần mềm NguyễnVănVỵ Nội dung 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ệ phần mềm – ĐHCN TÀI LiỆU THAM KHẢO NguyễnVănVỵ Nguyễn Văn Vỵ, Nguyễn Việt Hà Giáo trình kỹ nghệ phần mềm Nhà xuất Đại học Quốc gia Hà nội, 2008 Grady Booch, James Rumbaugh, Ivar Jacobson The Unified Modeling language User Guid Addison-Wesley, 1998 M Ould Managing Software Quality and Business Risk, John Wiley and Sons, 1999 Roger S.Pressman, Software Engineering, a Practitioner’s Approach Fifth Edition, McGraw Hill, 2001 Ian Sommerville, Software Engineering Sixth Edition, AddisonWasley, 2001 Nguyễn Văn Vỵ Phân tích thiết kế hệ thống thông tin đại Hướng cấu trúc hướng đối tượng, NXB Thống kê, 2002, Hà Nội Bộ môn Công nghệ phần mềm – ĐHCN Khái niệm thit k phần mềm NguynVnV Thit k l chuyển đặc tả yêu cầu thnh mô tả thiết kÕ mμ người lập tr×nh cã thể chuyển thμnh chương trình với ngôn ngữ, vận hnh đợc đáp ứng đợc yêu cầu đặt L trình sáng tạo: 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 no để chuyển thnh chơng trình B mụn Cụng ngh phn mm HCN Vai trò thiết kế NguynVnV tạo mô hình ci đặt phần mềm l công c giao tip gia ngời tham gia phát trin, sở đảm bảo chất lợng hệ thống dễ đọc, dễ hiểu, dễ sửa đổi mà chơng trinh cã nhiỊu møc chi tiÕt; cung cÊp c¸i nhìn tổng thể lm 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 sửa đổi Tiện bảo trì phát triển, më réng Bộ môn Công nghệ phần mềm – ĐHCN CÊu tróc thiÕt kÕ NguyễnVănVỵ PhÇn mỊm lμ tập mô đun tơng tác lẫn 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: mô đun chức cách thức ci đặt mô đun tơng tác mô đun B mụn Cụng nghệ phần mềm – ĐHCN Nguyªn lý thiÕt kÕ NguynVnV không bị bó buộc vo cách nhin hạn chế no cần đợc lựa chọn từ giải pháp cho phép lần ngợc lại mô hinh phân tích mô đun & yêu cầu không thiết phải tơng ứng 1-1 nhng phải kiểm tra đợc thỏa mÃn yêu cầu B mụn Cụng ngh phn mm HCN Nguyên lý thiết kế (t) NguynVnV Không nên tạo lại thiết kế (giải pháp) đà có, m cần tái sử dụng tối đa chúng 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) BiĨu diƠn thiÕt kÕ phải quán v có tính tích hợp: thiết kÕ 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 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 B mơn Cơng nghệ phần mềm – ĐHCN Nguyªn lý thiết kế (t) NguynVnV Thiết kế l mà hóa thiết kế có mức trừu tợng mà hóa, đảm bảo dễ hiểu, dễ thay đổi Thiết kế cần đợc đánh giá chất lợng đợc tạo tính kết dính, tính ghép nối, hiệu thuật toán Thiết kế cần đợc thẩm định để tránh lỗi mang tính hệ thống thiếu chức năng, chức không rõ, mâu thuÉn Bộ môn Công nghệ phần mềm – ĐHCN Nôi dung & chất lợng thiết kế NguynVnV 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 mô đun Thiết kế cấu trúc 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 bớc thực xư lý ThiÕt kÕ giao diƯn ng−êi dïng nên nhin nhận giao diện l bi toán độc lËp Bộ môn Công nghệ phần mềm – ĐHCN 10 Ghép nối nội dung NguynVnV Các module dùng liệu hay thông tin điều khiển đợc trì mô dun khác L trờng hợp xấu Ví dụ: ngôn ngữ bậc thấp dùng biến chung 10 20 30 40 50 l¹m dơng lƯnh Goto mét chu tr×nh k =1 60 print k, y gosub 100 70 stop 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 NguynVnV Các module trao đổi liệu thông qua biến tổng thể Lỗi module ny ảnh hởng đến hoạt động module khác Khó sử dụng lại module A B mô đun gây lỗi mô đun chịu lỗi Biến tổng thể Bộ môn Công nghệ phần mềm – ĐHCN C 32 Ghép nối điều khiển NguynVnV Các module trao đổi thông tin điều khiển Lm cho thiết kế khó hiểu, khó sửa đổi, dễ nhầm procedure PrintRec is begin Display Name (name, sex); end PrintRec; Bộ môn Công nghệ phần mềm – ĐHCN procedure DisplayName (in : name, sex) is begin if sex = m then print Mr else print Ms print name end DisplayName; 33 GhÐp nèi nhÃn NguynVnV Các môđun trao đổi thừa thông tin Môđun thực chức ngoi ý mn Lμm gi¶m tÝnh thÝch nghi (ti) (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ỵ Trun d÷ liƯu qua tham sè NhËn kÕt qu¶ qua tham số v giá trị trả lại (ngy tuần) (ngy) calc_day_of_week Bộ môn Công nghệ phần mềm – ĐHCN 35 Kết dính - Cohesion NguynVnV môđun nên thực chức thnh phần môđun phải tham gia thực chức chức truyền thông thủ tục thời điểm logic gom gãp Bộ môn Công nghệ phần mềm – ĐHCN high and best ok still ok not bad at all still not bad at all still not bad at all lowest and worst by far 36 Các loại kết dính NguyễnVănVỵ KÕt dÝnh gom gãp (coincidental cohesion): gom c¸c thnh phần không liên quan đến Kết dính lôgic (logical cohesion) gồm thnh phần lm chức lôgic tơng tự ( vd: hm xử lí lỗi chung) Kết dính thời điểm (temporal cohesion) thnh phần hoạt động thời điểm ( vd: hm khởi tạo (đọc liệu, cấp phát nhớ ) Kết dính thủ tục (procedural cohesion) thnh phần thực hiên theo thứ tự xác định (vd: tính lơng b¶n, tÝnh phơ cÊp, tÝnh b¶o hiĨm) Bộ mơn Cơng ngh phn mm HCN 37 Các loại kết dính(t) NguynVnV Kết dính truyền thông (communicational cohesion) thnh phần truy cập đến tập liệu: tính toán thèng kª (tÝnh max, min, mean, variation ) KÕt dÝnh tn tù (sequential cohesion) output cđa mét thμnh phÇn l input thnh phần tiếp theo: ảnh mầu -> đen trắng -> ảnh nén Kết dính chức (functional cohesion) thnh phần góp phần thực chức (vd: thao tác xếp) B mơn Cơng nghệ phần mềm – ĐHCN 38 TÝnh hiĨu đợc -Understandability NguynVnV L kết tổng hợp từ nhiỊu thc tÝnh CÊu tróc râ rμng, tèt Ghép nối lỏng lẻo Kết dính cao Đợc lËp tμi liƯu Tht to¸n, cÊu tróc dƠ hiĨu Bộ môn Công nghệ phần mềm – ĐHCN 39 TÝnh thích nghi đợc (Adaptability) NguynVnV Hiểu đợc sửa đổi đợc, tái sử dụng đơc Tự chứa không sử dụng th viện ngoi mâu thuẫn với xu hớng tái sư dơng Bộ mơn Cơng nghệ phần mềm – ĐHCN 40 Thiết kế hớng đối tợng v cht lng NguynVnV Thiết kế hớng đối tợng hớng tới chất lợng thiÕt kÕ tèt đãng gãi, che dÊu th«ng tin (độc lập liệu) thực thể hoạt động độc lập (cục bộ, dùng lại) trao đổi liệu qua truyền thông (liên kết yếu) có khả kế thừa (dùng lại) cục bộ, dễ hiểu, dƠ t¸i sư dơng Bộ mơn Cơng nghệ phần mềm HCN 41 Câu hỏi ôn tập NguynVnV Thiết kế phần mềm l gi? Nêu nguyên lý thiết kê phần mềm? Nêu loại thiÕt kÕ vμ gi¶I thÝch néi dung cđa nã? Gi¶I thích mộ số khái niệm thiết kế: trừu tợng? lm mịn? mô đun hoá? thủ tục? che dấu thông tin? Vẽ sơ đồ mô tả quan hệ gia số mô đun vμ chi phÝ ph¸t triĨn? Bộ mơn Cơng nghệ phần mm HCN 42 Câu hỏi ôn tập NguynVnV 10 11 Các đặc trng thiết kế tốt? Các tiêu chí kỹ thuật đánh giá mét thiÕt kÕ tèt Lỵi Ých cđa hƯ thèng cã kiến trúc tốt Lợi ích việc mô đun hoá thiết kế phần mềm l gì? Lợi ích việc che dấu thông tin l gì? Có độ ®o chÊt l−ỵng thiÕt kÕ nμo? Bộ mơn Cơng nghệ phn mm HCN 43 Câu hỏi ôn tập NguynVnV 12 Ghép nối l gì? Kể loại ghép nối theo mức độ chặt (tồi) dần? 13 Kết dính l gì? Kể loại kết dính theo mức độ chặt giảm (kém) dần? 14 Thế no l tính hiểu đợc? 15 Thế no l tính thích nghi đợc? 16 Thiết kế hớng đối tợng hớng đến chất lợng tốt mặt no? B mụn Cụng ngh phn mm ĐHCN 44 C©u hái thảo luận NguyễnVănVỵ Bộ mơn Công nghệ phần mềm – ĐHCN 45