Bài giảng Công nghệ phần mềm - Chương 6: Phương pháp thiết kế hệ thống
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 6: Phương pháp thiết kế hệ thống", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cong_nghe_phan_mem_chuong_6_phuong_phap_thiet_ke_h.pdf
Nội dung text: Bài giảng Công nghệ phần mềm - Chương 6: Phương pháp thiết kế hệ thống
- Phần IV Thiết kế và Lập trỡnh Design and Programming Chương 6: Phương phỏp thiết kế hệ thống 6.1. Thiết kế hệ thống là gỡ? 6.2. Phương phỏp thiết kế hệ thống HUT, Falt. of IT Dept. of SE, 2001 SE-IV.1
- 6.1. Thiết kế hệ thống là gỡ? • Là thiết kế cấu hỡnh phần cứng và cấu trỳc phần mềm (gồm cả chức năng và dữ liệu) để cú được hệ thống thỏa món cỏc yờu cầu đề ra • Cú thể xem như Thiết kế cấu trỳc (WHAT), chứ khụng phải là Thiết kế Logic (HOW) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.2
- Quy trỡnh thiết kế hệ thống • Phõn chia mụ hỡnh phõn tớch ra cỏc hệ con • Tỡm ra sự tương tranh (concurrency) trong hệ thống • Phõn bố cỏc hệ con cho cỏc bộ xử lý hoặc cỏc nhiệm vụ (tasks) • Phỏt triển thiết kế giao diện • Chọn chiến lược cài đặt quản trị dữ liệu HUT, Falt. of IT Dept. of SE, 2001 SE-IV.3
- Quy trỡnh thiết kế hệ thống (tiếp) • Tỡm ra nguồn tài nguyờn chung và cơ chế điều khiển truy nhập chỳng • Thiết kế cơ chế điều khiển thớch hợp cho hệ thống, kể cả quản lý nhiệm vụ • Xem xột cỏc điều kiện biờn được xử lý như thế nào • Xột duyệt và xem xột cỏc thỏa hiệp (trade-offs) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.4
- Cỏc điểm lưu ý khi thiết kế hệ thống (1) Cú thể trớch được luồng dữ liệu từ hệ thống: đú là phần nội dung đặc tả yờu cầu và giao diện (2) Xem xột tối ưu tài nguyờn kiến trỳc lờn hệ thống rồi quyết định kiến trỳc (3) Theo quỏ trỡnh biến đổi dữ liệu, hóy xem những chức năng được kiến trỳc như thế nào HUT, Falt. of IT Dept. of SE, 2001 SE-IV.5
- Cỏc điểm lưu ý (tiếp) (4) Từ kiến trỳc cỏc chức năng theo (3), hóy xem xột và chỉnh lại, từ đú chuyển sang kiến trỳc chương trỡnh và thiết kế chi tiết (5) Quyết định cỏc đơn vị chương trỡnh theo cỏc chức năng của hệ phần mềm cú dựa theo luồng dữ liệu và phõn chia ra cỏc thành phần (6) Khi cấu trỳc chương trỡnh lớn quỏ, phải phõn chia nhỏ hơn thành cỏc mụđun HUT, Falt. of IT Dept. of SE, 2001 SE-IV.6
- Cỏc điểm lưu ý (tiếp) (7) Xem xột dữ liệu vào-ra và cỏc tệp dựng chung của chương trỡnh. Truy cập tệp tối ưu (8) Hóy nghĩ xem để cú được những thiết kế trờn thỡ nờn dựng phương phỏp luận và những kỹ thuật gỡ ? HUT, Falt. of IT Dept. of SE, 2001 SE-IV.7
- Thiết kế hệ thống • Thiết kế hệ thống – Thiết kế hệ thống phần cứng [(1), (2)] – Thiết kế hệ thống phần mềm [(3)-(7)] • Thiết kế hệ thống phần mềm – Thiết kế tệp (file design) [(7)] – Thiết kế chức năng hệ thống [(3)-(6)] HUT, Falt. of IT Dept. of SE, 2001 SE-IV.8
- 6.2 Phương phỏp thiết kế hệ thống • Phương phỏp thiết kế cấu trỳc húa (Structured Design) của Constantine • Ngoài ra cũn cỏc phương phỏp khỏc, như Phương phỏp thiết kế tổng hợp (Composite Design) của Myers HUT, Falt. of IT Dept. of SE, 2001 SE-IV.9
- Thiết kế cấu trỳc húa • Bắt nguồn từ modularity, top-down design, structured programming • Cũn xem như Phương phỏp thiết kế hướng luồng dữ liệu (Data flow-oriented design) • Quy trỡnh 6 bước: (1) tạo kiểu luồng thụng tin; (2) chỉ ra biờn của luồng; (3) ỏnh xạ DFD sang cấu trỳc chương trỡnh; (4) xỏc định phõn cấp điều khiển; (5) tinh lọc cấu trỳc; (6) chọn mụ tả kiến trỳc HUT, Falt. of IT Dept. of SE, 2001 SE-IV.10
- Thiết kế cấu trỳc húa (1) Mụđun và tham số (2) Lưu đồ bong búng và cấu trỳc phõn cấp Lưu đồ bong búng (Bubble chart) Cấu trỳc phõn cấp (Hierarchical structured chart) (3) Phương phỏp phõn chia STS (Source/Transform/Sink) và TR (Transaction) (4) Phõn tớch cấu trỳc húa (5) Chuẩn phõn chia mụđun HUT, Falt. of IT Dept. of SE, 2001 SE-IV.11
- (1) Mụđun • Dóy cỏc lệnh nhằm thực hiện chức năng (function) nào đú • Cú thể được biờn dịch độc lập • Mụđun đó được dịch cú thể được mụđun khỏc gọi tới • Giao diện giữa cỏc mụđun thụng qua cỏc biến tham số (arguments) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.12
- (2a) Lưu đồ bong búng (Bubble chart) • Biểu thị luồng xử lý dữ liệu • Ký phỏp Tờn dữ liệu Tờn Tờn dữ liệu chức năng (Dữ liệu vào) (Bong búng) (Dữ liệu ra) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.13
- (2b) Cấu trỳc phõn cấp (Hierarchical structured chart) • Là phõn cấp biểu thị quan hệ phụ thuộc giữa cỏc mụđun và giao diện (interface) giữa chỳng • Cỏc quy ước: – Khụng liờn quan đến trỡnh tự gọi cỏc mụđun, nhưng ngầm định là từ trỏi qua phải – Mỗi mụđun xuất hiện trong cấu trỳc 1 lần, cú thể được gọi nhiều lần – Quan hệ trờn dưới: khụng cần nờu số lần gọi HUT, Falt. of IT Dept. of SE, 2001 SE-IV.14
- Hierarchical structured chart • Cỏc quy ước (tiếp): – Tờn mụđun biểu thị chức năng (“làm gỡ”), đặt tờn sao cho cỏc mụđun ở phớa dưới tổng hợp lại sẽ biểu thị đủ chức năng của mụđun tương ứng phớa trờn – Biến số (arguments) biểu thị giao diện giữa cỏc mụđun, biến số ở cỏc mụđun gọi/bịgọi cú thể khỏc nhau – Mũi tờn với đuụi trũn trắng biểu thị dữ liệu, đuụi trũn đen (hồng) biểu thị flag – Chiều của mũi tờn là hướng truyền tham số HUT, Falt. of IT Dept. of SE, 2001 SE-IV.15
- Hierarchical structured chart Module A 1 Module B Module C Module D Luồng dữ liệu Module E Luồng flag HUT, Falt. of IT Dept. of SE, 2001 SE-IV.16
- (3) Phương phỏp phõn chia STS, TR • Thiết kế cấu trỳc: – Phương phỏp phõn chia STS (Source/Transform/Sink: Nguồn/Biếnđổi/Hấpthụ) – Phương phỏp phõn chia TR (Transaction) • Minh họa phõn chia chức năng theo bong búng của DFD (biểu đồ luồng dữ liệu) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.17
- (3a) Phương phỏp phõn chia STS 1) Chia đối tượng “bài toỏn” thành cỏc chức năng thành phần F3 F5 Bài toỏn F1 F4 Problem F2 HUT, Falt. of IT Dept. of SE, 2001 SE-IV.18
- Quyết định luồng dữ liệu chớnh 2) Tỡm ra luồng dữ liệu chớnh đi qua cỏc chức năng: từ đầu vào (Input) tới đầu ra (Output) INPUT F3 F5 F1 Luồng dữ F4 liệu chớnh F2 OUTPUT HUT, Falt. of IT Dept. of SE, 2001 SE-IV.19
- Quyết định bong búng và dữ liệu 3) Theo luồng dữ liệu chớnh: thay từng chức năng bởi bong búng và làm rừ dữ liệu giữa cỏc bong búng Data1 Data2 Data3 Data4 Data5 Data6 F1 F2 F3 F4 F5 INPUT OUTPUT HUT, Falt. of IT Dept. of SE, 2001 SE-IV.20
- Từ sơ đồ bong búng sang sơ đồ phõn cấp 4) Xỏc định vị trớ trừu tượng húa tối đa đầu vào và đầu ra Data1 Data2 Data3 Data4 Data5 Data6 F1 F2 F3 F4 F5 INPUT OUTPUT Trừu tượng húa Trừu tượng húa tối đa đầu vào tối đa đầu ra Source Module Transform Module Sink Module HUT, Falt. of IT Dept. of SE, 2001 SE-IV.21
- 5) Chuyển sang sơ đồ phõn cấp Data1 F1 Data2 F2 Data3 F3 Data4 F4 Data5 F5 Data6 INPUT OUTPUT Trừu tượng hóa Trừu tượng hóa tối đa đầu vào tối đa đầu ra Source Module Transform Module Sink Module Control Module 0 Source Transform Sink Module 1 Module 2 Module 3 HUT, Falt. of IT Dept. of SE, 2001 SE-IV.22
- 6) Xỏc định cỏc tham số giữa cỏc mụđun dựa theo quan hệ phụ thuộc Module 0 0 3 5 3 5 Module 1 Module 2 Module 3 1 2 3 HUT, Falt. of IT Dept. of SE, 2001 SE-IV.23
- 7) Với từng mụđun (Source, Transform, Sink) lại ỏp dụng cỏch phõn chia STS lặp lại cỏc bước từ 1) đến 6). Đụi khi cú trường hợp khụng chia thành 3 mụ đun nhỏ mà thành 2 hoặc 1 8) Tiếp tục chia đến mức cấu trỳc lụgic khi mụđun tương ứng với thuật toỏn đó biết thỡ dừng. Tổng hợp lại ta được cấu trỳc phõn cấp: mỗi nỳt là 1 mụđun với số nhỏnh phớa dưới khụng nhiều hơn 3 HUT, Falt. of IT Dept. of SE, 2001 SE-IV.24
- (3b) Phương phỏp phõn chia TR • Khi khụng tồn tại luồng dữ liệu chớnh, mà dữ liệu vào cú đặc thự khỏc nhau như những nguồn khỏc nhau xem như cỏc Giao dịch khỏc nhau • Mỗi giao dịch ứng với 1 mụđun xử lý nú • Phõn chia mụđun cú thể: theo kinh nghiệm; theo tớnh độc lập mụđun; theo số bước tối đa trong 1 mụđun (vớ dụ < 50) và theo chuẩn HUT, Falt. of IT Dept. of SE, 2001 SE-IV.25
- (4) Phõn tớch cấu trỳc húa • Xỏc định luồng dữ liệu • Luồng tuyến tớnh thỡ theo phõn chia STS • Luồng phõn nhỏnh thỡ theo phõn chia TR HUT, Falt. of IT Dept. of SE, 2001 SE-IV.26
- (5) Chuẩn phõn chia mụđun • Tớnh độc lập: Độ kết hợp (coupling) và Độ bền vững (strength) • 5 tiờu chuẩn của Myers – Decomposability – Composability – Understandability – Continuity – Protection HUT, Falt. of IT Dept. of SE, 2001 SE-IV.27
- Đặc trưng của thiết kế cấu trỳc húa • Dễ thớch ứng với mụ hỡnh vũng đời thỏc nước do tớnh thõn thiện cao • Thiết kế theo tiến trỡnh, khụng hợp với thiết kế xử lý theo lụ (batch system) • Dựng phõn chia - kết hợp để giải quyết tớnh phức tạp của hệ thống • Topdown trong phõn chia mụđun • Kỹ thuật lập trỡnh hiệu quả HUT, Falt. of IT Dept. of SE, 2001 SE-IV.28
- Chương 7: Kỹ thuật thiết kế chương trỡnh 7.1 Thiết kế chương trỡnh là gỡ ? 7.2 Phương phỏp thiết kế chương trỡnh 7.3 Cụng cụ thiết kế HUT, Falt. of IT Dept. of SE, 2001 SE-IV.29
- 7.1 Thiết kế chương trỡnh là gỡ ? • Là thiết kế chi tiết cấu trỳc bờn trong của phần mềm: thiết kế tớnh năng từng mụđun và giao diện tương ứng • Cấu trỳc ngoài của phần mềm: thiết kế hệ thống • Trỡnh tự xử lý bờn trong: Thuật toỏn (giải thuật, Algorithm); Logic HUT, Falt. of IT Dept. of SE, 2001 SE-IV.30
- 7.2 Phương phỏp thiết kế chương trỡnh • Khụng cú trạng thỏi mờ (fuzzy), để đảm bảo thiết kế cấu trỳc trong đỳng đắn • Ngụn ngữ lập trỡnh phự hợp • Triển khai đỳng đắn đặc tả chức năng cỏc mụđun và chương trỡnh nhờ phương phỏp luận thiết kế chi tiết • Dựng quy trỡnh thiết kế dễ chuẩn húa từng bước HUT, Falt. of IT Dept. of SE, 2001 SE-IV.31
- Kỹ thuật thiết kế chương trỡnh • Kỹ thuật thiết kế mụ hỡnh hệ phần mềm – Hướng tiến trỡnh (process) : Kỹ thuật thiết kế cấu trỳc điều khiển – Hướng cấu trỳc dữ liệu (data): Kỹ thuật thiết kế cấu trỳc dữ liệu – Hướng sự vật / đối tượng (object): Kỹ thuật thiết kế hướng đối tượng HUT, Falt. of IT Dept. of SE, 2001 SE-IV.32
- 7.2.1 Lập trỡnh cấu trỳc húa • Khỏi niệm cơ bản: tuần tự, nhỏnh (chọn), lặp; cấu trỳc mở rộng, tiền xử lý, hậu xử lý • Những điểm lợi khi thiết kế thuật toỏn – Tớnh độc lập của mụđun: chỉ quan tõm vào- ra – Làm cho chương trỡnh dễ hiểu – Dễ theo dừi chương trỡnh thực hiện – Hệ phức tạp sẽ dễ hiểu nhờ tiếp cận phõn cấp HUT, Falt. of IT Dept. of SE, 2001 SE-IV.33
- Loại bỏ GOTO • GOTO dựng để làm gỡ? – Cho phộp thực hiện cỏc bước nhảy đến một nhón nhất định • Tại sao cần loại bỏ GOTO ? – Phỏ vỡ tớnh cấu trỳc của lập trỡnh cấu trỳc húa • Phương phỏp loại bỏ GOTO • Cú thể loại bỏ GOTO trong mọi trường hợp? • Thế nào là “kỹ năng lập trỡnh cấu trỳc” HUT, Falt. of IT Dept. of SE, 2001 SE-IV.34
- Lưu ý khi thiết kế chương trỡnh • Phụ thuộc vào kỹ năng và kinh nghiệm của người thiết kế • Cần chuẩn húa tài liệu đặc tả thiết kế chi tiết • Khi thiết kế cấu trỳc điều khiển của giải thuật, vỡ theo cỏc quy ước cấu trỳc húa nờn đụi khi tớnh sỏng tạo của người thiết kế bị hạn chế, bú buộc theo khuụn mẫu đó cú HUT, Falt. of IT Dept. of SE, 2001 SE-IV.35
- 7.2.2 Lưu đồ cấu trỳc húa • Tỏc dụng của lưu đồ (flow chart) • Quy phạm (discipline) • Trừu tượng húa thủ tục • Lưu đồ cấu trỳc húa – Cấu trỳc điều khiển cơ bản – Chi tiết húa từng bước giải thuật – Thể hiện được trỡnh tự điều khiển thực hiện HUT, Falt. of IT Dept. of SE, 2001 SE-IV.36
- Lưu đồ Nassi-Shneiderman (NS chart by IBM) a- Nối (concatination) b- Chọn (selection) Xử lý 1 ĐIều kiện Y N Xử lý 2 Xử lý 1 Xử lý 2 c- Đa nhỏnh (CASE) d- Lặp (repetition) TT1 ĐIều kiện DO WHILE (Đkiện) TT2 TT3 Xử lý Xử lý 1 Xử Xử lý Xử lý 2 lý 3 REPEAT UNTIL (Đkiện) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.37
- Lưu đồ Phõn tớch bài toỏn (PAD chart by Hitachi) a- Nối (concatination) b- Chọn (selection) Xử lý 1 Trục Xử lý 1 chớnh Điều kiện Xử lý 2 Xử lý 2 c- Đa nhỏnh (CASE) d- Lặp (repetition) Xử lý Đ TT1 I 1 ề TT2 Xử lý u WHILE UNTIL 2 Đkiện Xử lý Đkiện Xử lý k TT3 Xử lý i ệ 3 TT4 n Xử lý HUT, Falt. of IT 4 Dept. of SE, 2001 SE-IV.38
- 7.2.3 Về Phương phỏp Giắc-sơn (Jackson’s method) • JSP: Jackson Structured Programming • Cỏc ký phỏp: – Cơ sở (elementary) – Tuần tự (sequence) – Lặp – Rẽ nhỏnh HUT, Falt. of IT Dept. of SE, 2001 SE-IV.39
- Trỡnh tự thiết kế chung • Thiết kế cấu trỳc dữ liệu (Data step) • Thiết kế cấu trỳc chương trỡnh (Program step) • Thiết kế thủ tục (Operation step) • Thiết kế đặc tả chương trỡnh (Text step) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.40
- 7.2.4 Về Phương phỏp Wa-ny (Warnier’s method) • Khỏi niệm chung • Trỡnh tự thiết kế – Thiết kế dữ liệu ra – Thiết kế dữ liệu vào – Thiết kế cấu trỳc chương trỡnh – Thiết kế lưu đồ – Thiết kế lệnh thủ tục – Thiết kế đặc tả chi tiết HUT, Falt. of IT Dept. of SE, 2001 SE-IV.41
- Chương 8: Kỹ thuật lập trỡnh 8.1 Lịch sử phỏt triển của ngụn ngữ lập trỡnh 8.2 Cấu trỳc chương trỡnh - Cấu trỳc dữ liệu dễ hiểu - Cấu trỳc thuật toỏn dễ hiểu 8.3 Cỏc cụng cụ lập trỡnh HUT, Falt. of IT Dept. of SE, 2001 SE-IV.42
- 8.1 Lịch sử ngụn ngữ lập trỡnh • Cỏc ngụn ngữ thế hệ thứ nhất: – Ngụn ngữ lập trỡnh mó mỏy (machine code) – Ngụn ngữ lập trỡnh assembly • Cỏc ngụn ngữ thế thế thứ hai: – FOTRAN, COBOL, ALGOL, BASIC – Phỏt triển 1950-1970 • Cỏc ngụn ngữ thế hệ thứ ba – Ngụn ngữ lập trỡnh cấp cao vạn năng (cấu trỳc) – Lập trỡnh hướng đối tượng – Lập trỡnh hướng suy diễn – logic • Cỏc ngụn ngữ thế hệ thứ tư – Truy vấn – Cỏc ngụn ngữ hỗ trợ quyết định HUT, Falt. of IT Dept. of SE, 2001 SE-IV.43
- 8.2 Cấu trỳc dữ liệu dễ hiểu • Nờn xỏc định tất cả cỏc cấu trỳc dữ liệu và cỏc thao tỏc cần thực hiện trờn từng cấu trỳc dữ liệu • Việc biểu diễn/khai bỏo cỏc cấu trỳc dữ liệu chỉ nờn thực hiện ở những mụ đun sử dụng trực tiếp dữ liệu • Nờn thiết lập và sử dụng từ điển dữ liệu khi thiết dữ liệu HUT, Falt. of IT Dept. of SE, 2001 SE-IV.44
- Cấu trỳc thuật toỏn dễ hiểu • Algorithm • Structured coding và 9 điểm lưu ý: – Tuõn theo quy cỏch lập trỡnh – Một đầu vào, một đầu ra – Trỏnh GOTO, trừ khi phải ra khỏi lặp và dừng – Dựng comments hợp lý – Dựng tờn biến cú nghĩa, gợi nhớ – Cấu trỳc lồng rừ ràng – Trỏnh dựng CASE / switch nhiều hoặc lồng nhau – Mó nguồn 1 chương trỡnh / mụđun nờn viết trờn 1 trang – Trỏnh viết nhiều lệnh trờn 1 dũng HUT, Falt. of IT Dept. of SE, 2001 SE-IV.45
- IF THEN / IF THEN ELSE 0 PASCAL ĐK Cụng việc1 if điều kiện then =0 begin Cụng việc 2 Ngụn ngữ C cụng việc 1 if (điều kiện) end; else { cụng việc 1} begin else cụng việc 2 end {cụng việc 2} HUT, Falt. of IT Dept. of SE, 2001 SE-IV.46
- CASE / switch PASCAL Ngụn ngữ C CASE switch ( ) OF { gtrị1: ; case : ;[break;] gtrị2: ; case : ; [break;] case : ; gtrịN: ; [break;] ELSE [default : ; [break;] ] ; } END; HUT, Falt. of IT Dept. of SE, 2001 SE-IV.47
- FOR TO / DOWNTO Bắt đầu Biến điều khiển = Giỏ trị đầu Biến điều khiển > Giỏ trị cuối KThỳc Thực hiện Biến điều khiển = giỏ trị tiếp theo của biến điều khiển) HUT, Falt. of IT Dept. of SE, 2001 SE-IV.48
- PASCAL FOR biếnđkhiển := GTđầu TO GTCuối DO begin end; Ngụn ngữ C for ( [biểuthức1] ; [biểuthứcĐK]; [biểuthức2] ) { ; } Đặc biệt: cú cỏc lệnh thoỏt break; continue; exit HUT, Falt. of IT Dept. of SE, 2001 SE-IV.49
- DO WHILE Bắt đầu Sai Biểu thức Logic Đỳng Cụng việc KThỳc HUT, Falt. of IT Dept. of SE, 2001 SE-IV.50
- PASCAL While BiểuthứcBoolean DO begin end; Ngụn ngữ C while ( ) { ; } • Kiểm tra điều kiện trước khi thực hiện • Lỗi thường gặp: Lặp vụ hạn HUT, Falt. of IT Dept. of SE, 2001 SE-IV.51
- REPEAT UNTIL Bắt đầu Cụng việc Biểu thức Logic Sai Đỳng Kthỳc HUT, Falt. of IT Dept. of SE, 2001 SE-IV.52
- PASCAL Repeat until Biểu_thức_Boolean; Ngụn ngữ C do { ; } while ( ); • Cú sự khỏc nhau giữa hai ngụn ngữ? HUT, Falt. of IT Dept. of SE, 2001 SE-IV.53
- Chỳ thớch trong chương trỡnh • Tại sao cần đặt cỏc chỳ thớch trong chương trỡnh ? • Vị trớ đặt cỏc chỳ thớch trong chương trỡnh – Thành phần/ Module – Lớp – Hàm/thủ tục – Cỏc vị trớ đặc biệt khỏc • Một số quy định khi đặt chỳ thớch: – Ngắn gọn – Gợi nhớ HUT, Falt. of IT Dept. of SE, 2001 SE-IV.54