Bài giảng Công nghệ học 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ệ học 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_hoc_phan_mem_chuong_6_phuong_phap_thiet.ppt
Nội dung text: Bài giảng Công nghệ học phần mềm - Chương 6: Phương pháp thiết kế hệ thống
- Department of Software Engineering Faculty of Information Technology Hanoi University of Technology TEL: 04-8682595 FAX: 04-8692906 Email: cnpm@it-hut.edu.vn SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 1
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 2
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 3
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 4
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 5
- (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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 6
- (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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 7
- (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ỡ ? SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 8
- 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)] SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 9
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 10
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 11
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 12
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 13
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 14
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 15
- 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ố SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 16
- Module A 1 Module B Module C Module D Luồng dữ liệu Module E Luồng flag SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 17
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 18
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 19
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 20
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 21
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 22
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 23
- Module 0 0 3 5 3 5 Module 1 Module 2 Module 3 1 2 3 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 24
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 25
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 26
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 27
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 28
- 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ả SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 29
- 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ế SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 30
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 31
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 32
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 33
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 34
- 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” SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 35
- 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ú SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 36
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 37
- a- Nối (concatination) b- Chọn (selection) Xử lý 1 ĐIều kiện c- Đa nhỏnh (CASE) dY- Lặp (repetitionN ) Xử lý 2 Xử lý 1 Xử lý 2 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 38
- 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ý SE 4 - IV. Dept. of SE, 2001 HUT, Falt. of IT 39
- START I < 10 J <- I mod 4 I <- 0 YES NO Display J Display I I <- I +1 END SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 40
- Hãy chuyển biểu đồ NS sang dạng biểu đồ khối quen thuộc SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 41
- JSP: Jackson Structured Programming Cỏc ký phỏp: ◦ Cơ sở (elementary) ◦ Tuần tự (sequence) ◦ Lặp ◦ Rẽ nhỏnh SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 42
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 43
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 44
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 45
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 46
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 47
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 48
- 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} SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 49
- PASCAL Ngụn ngữ C CASE switch ( ) OF { gtrị1: ; case : ;[break;] gtrị2: ; case : ; [break;] case : ; gtrịN: ; [break;] ELSE [default : ; [break;] ] ; } END; SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 50
- 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) SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 51
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 52
- Bắt đầu Sai Biểu thức Logic Đỳng Cụng việc KThỳc SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 53
- 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 SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 54
- Bắt đầu Cụng việc Biểu thức Logic Sai Đỳng Kthỳc SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 55
- 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ữ? SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 56
- 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ớ SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 57
- Environments: DOS, WINDOWS, UNIX/LINUX Editors, Compilers, Linkers, Debuggers TURBO C, PASCAL MS C, Visual Basic, Visual C++, ASP UNIX/LINUX: C/C++, gcc (Gnu C Compiler) JAVA, CGI, perl C#, .NET SE - IV. Dept. of SE, 2001 HUT, Falt. of IT 58