Bài giảng công nghệ phần mềm - Chương 6
lượt xem 29
download
Tài liệu tham khảo Bài giảng công nghệ phần mềm bộ môn hệ thống thông tin và toán ứng dụng - Phần 1 Giới thiệu về chu trình sống của phần mềm - Chương 6 Giới thiệu về đối tượng
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng công nghệ phần mềm - Chương 6
- giíi thiÖu vÒ ®èi t−îng 6 (INTRODUCTION TO OBJECTS) Néi dung: Giíi thiÖu vÒ m«-®un §é g¾n kÕt Nèi kÕt Bao gãi d÷ liÖu KiÓu d÷ liÖu trõu t−îng Th«ng tin Èn §èi t−îng 67 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.1 Giíi thiÖu vÒ m«-®un (what is a module ?) §Þnh nghÜa cña [Stevens, Myers, vµ Constantine, 1974] vÒ m«-®un: tËp hîp cña mét hay nhiÒu c©u lÖnh kÕ tiÕp nhau ®−îc ®Æt tªn, c¸c phÇn kh¸c trong ch−¬ng tr×nh cã thÓ kÝch ho¹t víi tªn ®−îc ®Æt, cã tËp hîp c¸c tªn biÕn riªng biÖt. M«-®un lµ mét khèi ®¬n c¸c m· lÖnh cã thÓ kÝch ho¹t gièng nh− thñ tôc, hµm hay ph−¬ng thøc Chip 1 Chip 2 ALU Registers ALU Registers Shifter Shifter Chip 3 H×nh 6.1 ThiÕt kÕ cña m¸y vi tÝnh H×nh 6.2 M¸y vi tÝnh H×nh 6.1 chÕ t¹o víi 3 chip 68 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.2 §é g¾n kÕt (cohesion) Lµ møc ®é t−¬ng t¸c bªn trong mét m«-®un Myers ®Þnh nghÜa 7 thÓ lo¹i (møc) g¾n kÕt [Myers, 1978b] 7. G¾n kÕt chøc n¨ng Tèt G¾n kÕt th«ng tin G¾n kÕt truyÒn th«ng 5. G¾n kÕt thñ tôc 4. G¾n kÕt thêi gian 3. G¾n kÕt luËn lý 2. XÊu G¾n kÕt trïng khíp 1. H×nh 6.3 C¸c møc g¾n kÕt G¾n kÕt trïng khíp (coincidental cohesion): m«-®un thùc hiÖn nhiÒu hµnh ®éng kh«ng liªn quan ®Õn nhau VD: m«-®un víi tªn nh− in dßng tiÕp theo, ®¶o ng−îc chuçi ký tù tham sè thø hai, thªm 7 cho tham sè thø 5, ®æi tham sè thø t− thμnh sè thùc 69 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- G¾n kÕt luËn lý (logical cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng cã liªn quan víi nhau, mét trong sè ®ã ®−îc chän bëi m«-®un gäi ®Õn VD: m«-®un thùc hiÖn viÖc thªm, xãa, cËp nhËt c¸c mÈu tin trªn tËp tin G¾n kÕt thêi gian (temporal cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo thêi gian VD: m«-®un víi tªn nh− më tËp tin cò, t¹o tËp tin míi, më tËp tin giao dÞch, in tËp tin giao dÞch, khëi t¹o b¶ng kinh doanh khu vùc, ®äc mÈu tin giao dÞch ®Çu tiªn,®äc mÈu tin ®Çu tiªn trong tËp tin cò G¾n kÕt thñ tôc (procedural cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo c¸c b−íc ®óng tr×nh tù ph¸t triÓn s¶n phÈm VD: m«-®un víi tªn nh− ®äc sè hiÖu bé phËn tõ tËp tin c¬ së d÷ liÖu vμ cËp nhËt, söa ch÷a mÈu tin trªn tËp tin b¶o tr× G¾n kÕt truyÒn th«ng (communcational cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo c¸c b−íc ®óng tr×nh tù ph¸t triÓn s¶n phÈm vµ nÕu nh− mäi hµnh ®éng ®Òu ®−îc thùc hiÖn trªn d÷ liÖu gièng nhau VD: m«-®un víi tªn nh− cËp nhËt mÈu tin trong c¬ së d÷ liÖu vμ ghi vμo sæ hoÆc tÝnh to¸n quü ®¹o vμ göi ra m¸y in 70 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- G¾n kÕt th«ng tin (information cohesion): m«-®un thùc hiÖn mét sè l−îng c¸c hµnh ®éng, mçi hµnh ®éng cã ®Çu vµo riªng, m· lÖnh ®éc lËp vµ thùc hiÖn trªn d÷ liÖu gièng nhau VD: §Þnh nghÜa b¶ng kinh doanh khu vùc Vµo Khëi t¹o b¶ng kinh doanh khu vùc .......... Tho¸t Vµo CËp nhËt b¶ng kinh doanh khu vùc .......... Tho¸t Vµo In b¶ng kinh doanh khu vùc .......... Tho¸t H×nh 6.4 M«-®un g¾n kÕt vÒ th«ng tin Chøc n¨ng: m«-®un thùc hiÖn mét hµnh ®éng hoÆc nhËn lÊy mét kÕt qu¶ VD: m«-®un víi tªn nh− lÊy nhiÖt ®é lß; tÝnh to¸n quü ®¹o cña ®iÖn tö; ghi lªn ®Üa mÒm; tÝnh to¸n tiÒn hoa hång 71 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- VÝ dô vÒ c¸c d¹ng g¾n kÕt chøc n¨ng tÝnh to¸n nhiÖt ®é trung b×nh hµng ngµy t¹i nhiÒu ®Þa ®iÓm kh¸c nhau trïng khíp chøc n¨ng chøc n¨ng trïng khíp khëi t¹o tæng t¹o mÈu tin l−u tr÷ mÈu tin ®ãng c¸c tËp sè vµ më c¸c nhiÖt ®é míi nhiÖt ®é tin vµ in nhiÖt tËp tin ®é trung b×nh chøc n¨ng chøc n¨ng ®äc thêi gian l−u tr÷ mÈu tin vµ nhiÖt ®é t¹i cho tõng ®Þa ®Þa ®iÓm ®iÓm luËn lý chän läc thêi gian hoÆc c¸c tr−êng nhiÖt ®é H×nh 6.5 BiÓu diÔn d¹ng g¾n kÕt cña tõng m«-®un 72 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.3 Nèi kÕt (coupling) Lµ møc ®é t−¬ng t¸c gi÷a hai m«-®un, rÊt quan träng trong ®¸nh gi¸ C¸c møc ®é nèi kÕt Nèi kÕt d÷ liÖu Tèt 5. Nèi kÕt nh·n hiÖu 4. Nèi kÕt ®iÒu khiÓn 3. Nèi kÕt chung 2. XÊu Nèi kÕt néu dung 1. H×nh 6.6 C¸c møc ®é nèi kÕt Nèi kÕt néi dung(content coupling): hai m«-®un ®−îc gäi lµ nèi kÕt vÒ néi dung nÕu nh− chóng cã thÓ tham kh¶o rùc tiÕp néi dung cña nhau VD: m«-®un p tham kh¶o d÷ liÖu côc bé cña m«-®un q, hoÆc m«-®un p thay ®æi mét c©u lÖnh cña m«-®un q. 73 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- Nèi kÕt chung (common coupling): hai m«-®un ®−îc gäi lµ nèi kÕt chung nÕu c¶ hai truy xuÊt ®Õn c¸c d÷ liÖu toµn côc gièng nhau VD: mb ma biÕn toµn côc H×nh 6.7 Nèi kÕt chung Nèi kÕt ®iÒu khiÓn (control coupling): hai m«-®un ®−îc gäi lµ nèi kÕt ®iÒu khiÓn nÕu m«-®un nµy cã thÓ göi phµn tö ®iÒu khiÓn ®Õn m«-®un kia (cã thÓ ®iÒu khiÓn lÉn nhau) Nèi kÕt nh·n hiÖu (stamp coupling): hai m«-®un ®−îc gäi lµ nèi kÕt nh·n hiÖu nÕu nh− tham sè ®−îc göi ®i lµ mét cÊu tróc d÷ liÖu vµ m«-®un ®−îc gäi chØ thao t¸c trªn mét vµi thµnh phÇn cña cÊu tróc d÷ liÖu ®ã Nèi kÕt d÷ liÖu (data coupling): hai m«-®un ®−îc gäi lµ nèi kÕt d÷ liÖu nÕu nh− tÊt c¶ c¸c tham sè ®Òu lµ c¸c môc d÷ liÖu thuÇn nhÊt (homogeneous data items) 74 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- VÝ dô vÒ nèi kÕt p sè nhËp xuÊt 1 1 kiÓu m¸y bay cê tr¹ng th¸i p,t vµ u truy xuÊt cïng mét c¬ së d÷ q 2 2 - danh s¸ch c¸c phÇn cña m¸y bay liÖu trong cËp nhËt 3 4 3 m· hµm - r s 4 - danh s¸ch c¸c phÇn cña m¸y bay 5 6 5 sè phÇn phÇn chÕ t¹o t u 6 sè phÇn tªn phÇn H×nh 6.8 S¬ ®å c¸c m«-®un nèi kÕt H×nh 6.9 M« t¶ giao diÖn H×nh 6.6 q r s t u p - D÷ liÖu hoÆc D÷ liÖu Chung Chung Nh·n hiÖu q D÷ liÖu hoÆc §iÒu khiÓn - - Nh·n hiÖu r D÷ liÖu - s - D÷ liÖu t Chung H×nh 6.10 Nèi kÕt gi÷a c¸c cÆp m«-®un 75 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.4 Bao gãi d÷ liÖu (data encapsulation) Lµ mét d¹ng cña trõu t−îng hãa m_encapsulation Definition of job_queue initialize_job_queue() {..........} add_job_to_queue(job j) {..........} remove_job_from_queue(job j) {..........} H×nh 6.11 ThiÕt kÕ job_queue trong mét phÇn hÖ ®iÒu hµnh sö dông bao gãi d÷ liÖu 76 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.5 KiÓu d÷ liÖu trõu t−îng (abstract data types) KiÓu d÷ liÖu trõu t−îng: lµ kiÓu d÷ liÖu cïng víi c¸c thao t¸c trªn chÝnh nã VD: class JobQueue { // d÷ liÖu private int queueLength; private int queue[25] = new int[25]; // c¸c ph−¬ng thøc public void initializeJobQueue() {...} public void addJobToQueue(int jobNumber) {...} public void removeJobfromQueue() {...} } H×nh 6.12 JobQueue cµi ®Æt trªn Java nh− lµ mét kiÓu d÷ liÖu trõu t−îng Trõu t−îng hãa thñ tôc (procedural abstraction) Trõu t−îng hãa lÆp (iteration abstraction) [Liskov vµ Guttag, 1986] 77 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.6 Th«ng tin Èn (information hiding) Do Parnas ®Ò xuÊt [Parnas, 1971, 1972a, 1972b] Cμi ®Æt chi tiÕt cña: queue queueLength initializeJobQueue addJobToQueue removeJobFromQueue Giao diÖn: initializeJobQueue addJobToQueue removeJobFromQueue Th«ng tin Èn Th«ng tin thÊy ®−îc H×nh 6.13 KiÓu d÷ liÖu trõu t−îng víi th«ng tin Èn 78 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
- 6.7 §èi t−îng (objects) Lµ kiÓu d÷ liÖu trõu t−îng hay m«-®un víi th«ng tin ®−îc g¾n kÕt Lµ thÓ hiÖn (instance) cña mét kiÓu d÷ liÖu trõu t−îng Hç trî thõa kÕ, kh¸i niÖm ®−îc giíi thiÖu ®Çu tiªn ë ng«n ng÷ lËp tr×nh Simula67 [Dahl vµ Nygaard, 1966; Dahl, Myrhaug and Nygaard, 1973] C¸c ®èi t−îng víi ®é g¾n kÕt cao vµ nèi kÕt thÊp Hç trî ®a h×nh vµ liªn kÕt ®éng Mét sè vÊn ®Ò: C¸c ®èi t−îng g¾n kÕt gi÷a c¸c m«-®un ®−îc C¸c kiÓu d÷ kiÖu trõu t−îng thõa kÕ vµ c¸c m«-®un ®Þnh nghÜa míi Bao gãi d÷ liÖu nèi kÕt chung víi ®Þnh nghÜa C¸c m«-®un víi ®é g¾n kÕt cao vµ nèi kÕt thÊp c«ng céng: public C¸c m«-®un H×nh 6.14 C¸c kh¸i niÖm chÝnh 79 Huúnh Xu©n HiÖp - CNPM http://www.ebook.edu.vn
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Nguyễn Khắc Quốc
61 p | 143 | 18
-
Bài giảng Công nghệ phần mềm: Bài 1 - TS. Lê Nguyễn Tuấn Thành
142 p | 233 | 17
-
Bài giảng Công nghệ phần mềm nâng cao: Giới thiệu môn học - Phạm Ngọc Hùng
14 p | 167 | 14
-
Tập bài giảng Công nghệ phần mềm - Phạm Hùng Phú, Nguyễn Văn Thẩm (Biên soạn)
291 p | 60 | 13
-
Bài giảng Công nghệ phần mềm: Chương 1 - ĐH Công nghệ TP.HCM
77 p | 37 | 13
-
Bài giảng Công nghệ phần mềm: Bài 1 - Học viện Kỹ thuật Quân sự
45 p | 20 | 11
-
Bài giảng Công nghệ phần mềm: Chương 0 - ThS. Trần Sơn Hải
5 p | 122 | 10
-
Bài giảng Công nghệ phần mềm: Yêu cầu phần mềm
66 p | 107 | 10
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Dương Thành Phết
19 p | 138 | 9
-
Bài giảng Công nghệ phần mềm: Chương 1 - Trường ĐH Công nghiệp TP. HCM
48 p | 42 | 9
-
Bài giảng Công nghệ phần mềm - Phần 1: Giới thiệu chung về công nghệ phần mềm
52 p | 88 | 8
-
Bài giảng Công nghệ phần mềm: Các quy trình phần mềm
31 p | 125 | 8
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Đinh Thị Lương
40 p | 14 | 6
-
Bài giảng Công nghệ phần mềm ứng dụng: Bài 1 - ThS. Thạc Bình Cường
58 p | 60 | 6
-
Bài giảng Công nghệ phần mềm - Chương 1: Tổng quan về CNPM
13 p | 112 | 5
-
Bài giảng Công nghệ phần mềm - Phần 1: Giới thiệu công nghệ phần mềm
52 p | 79 | 5
-
Bài giảng Công nghệ phần mềm: Phần 1 - Vũ Thị Hương Giang
52 p | 49 | 3
-
Bài giảng Công nghệ phần mềm: Chương 1 - ThS. Trần Sơn Hải
52 p | 73 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn