Lý thuyết hệ điều hành - Chương 1 pptx

9 274 0
Lý thuyết hệ điều hành - Chương 1 pptx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Lp trỡnh HT http://www.ebook.edu.vn 1 CHơNG 1 CáC KHáI NIệM Cơ Sở của LậP TRìNH HớNG ĐốI TợNG Chơng 1 trình bày những vấn đề sau: ắ Thảo luận về cách tiếp cận hớng đối tợng, những nhợc điểm của lập trình truyền thống và các đặc điểm của lập trình hớng đối tợng. ắ Các khái niệm cơ sở của phơng pháp hớng đối tợng: Đối tợng Lớp Trừu tợng hóa dữ liệu và bao gói thông tin Kế thừa Tơng ứng bội Liên kết động Truyền thông báo ắ Các bớc cần thiết để thiết kế chơng trình theo hớng đối tợng ắ Các u điểm của lập trình hớng đối tợng ắ Các ngôn ngữ hớng đối tợng ắ Một số ứng dụng của lập trình hớng đối tợng 1.1. Giới thiệu 1.1.1. Tiếp cận hớng đối t ợng Trong thế giới thực, chung quanh chúng ta l những đối tợng, đó l các thực thể có mối quan hệ với nhau. Ví dụ các phòng trong một công ty kinh doanh đợc xem nh những đối tợng. Các phòng ở đây có thể l: phòng quản lý, phòng bán hng, phòng kế toán, phòng tiếp thị, Mỗi phòng ngoi những cán bộ đảm nhiệm những công việc cụ thể, còn có những dữ liệu riêng nh thông tin về nhân viên, doanh số bán hng, hoặc các dữ liệu khác có liên quan đến bộ phận đó. Việc phân chia các phòng chức năng trong công ty sẽ tạo điều kiện dễ dng cho việc quản lý các hoạt động. Mỗi nhân viên trong phòng sẽ điều khiển v xử lý dữ liệu của phòng đó. Ví dụ phòng kế toán phụ trách về lơng bổng nhân viên trong công ty. Nếu bạn đang ở bộ phận tiếp thị v cần tìm thông tin chi tiết về lơng của đơn vị mình thì sẽ gởi yêu cầu về phòng kế toán. Với cách lm ny bạn đợc đảm bảo l chỉ có nhân viên của bộ phận kế toán đợc quyền truy cập Lp trỡnh HT http://www.ebook.edu.vn 2 dữ liệu v cung cấp thông tin cho bạn. Điều ny cũng cho thấy rằng, không có ngời no thuộc bộ phận khác có thể truy cập v thay đổi dữ liệu của bộ phận kế toán. Khái niệm nh thế về đối tợng hầu nh có thể đợc mở rộng đối với mọi lĩnh vực trong đời sống xã hội v hơn nữa - đối với việc tổ chức chơng trình. Mọi ứng dụng có thể đợc định nghĩa nh một tập các thực thể - hoặc các đối tợng, sao cho quá trình tái tạo những suy nghĩa của chúng ta l gần sát nhất về thế giới thực. Trong phần tiếp theo chúng ta sẽ xem xét phơng pháp lập trình truyền thống để từ đó thấy rằng vì sao chúng ta cần chuyển sang phơng pháp lập trình hớng đối tợng. 1.1.2. Những nhợc điểm của lập trình hớng thủ tục Cách tiếp cận lập trình truyền thống l lập trình hớng thủ tục (LTHTT). Theo cách tiếp cận ny thì một hệ thống phần mềm đợc xem nh l dãy các công việc cần thực hiện nh đọc dữ liệu, tính toán, xử lý, lập báo cáo v in ấn kết quả v.v Mỗi công việc đó sẽ đợc thực hiện bởi một số hm nhất định. Nh vậy trọng tâm của cách tiếp cận ny l các hm chức năng. LTHTT sử dụng kỹ thuật phân rã hm chức năng theo cách tiếp cận trên xuống (top-down) để tạo ra cấu trúc phân cấp. Các ngôn ngữ lập trình bậc cao nh COBOL, FORTRAN, PASCAL, C, v.v , l những ngôn ngữ lập trình hớng thủ tục. Những nh ợc điểm chính của LTHTT l: ắ Chơng trình khó kiểm soát v khó khăn trong việc bổ sung, nâng cấp chơng trình. Chơng trình đợc xây dựng theo cách TCHTT thực chất l danh sách các câu lệnh m theo đó máy tính cần thực hiện. Danh sách các lệnh đó đợc tổ chức thnh từng nhóm theo đơn vị cấu trúc của ngôn ngữ lập trình v đợc gọi l hm/thủ tục. Trong chơng trình có nhiều hm/thủ tục, thờng thì có nhiều thnh phần dữ liệu quan trọng sẽ đợc khai báo tổng thể (global) để các hm/thủ tục có thể truy nhập, đọc v lm thay đổi giá trị của biến tổng thể. Điều ny sẽ lm cho chơng trình rất khó kiểm soát, nhất l đối với các chơng trình lớn, phức tạp thì vấn đề cng trở nên khó khăn hơn. Khi ta muốn thay đổi, bổ sung cấu trúc dữ liệu dùng chung cho một số hm/thủ tục thì phải thay đổi hầu nh tất cả các hm/thủ tục liên quan đến dữ liệu đó. ắ Mô hình đợc xây dựng theo cách tiếp cận hớng thủ tục không mô tả đợc đầy đủ, trung thực hệ thống trong thực tế. ắ Phơng pháp TCHTT đặt trọng tâm v o hm l hớng tới hoạt động sẽ không thực sự tơng ứng với các thực thể trong hệ thống của thế giới thực. Lp trỡnh HT http://www.ebook.edu.vn 3 1.1.3. Lập trình hớng đối tợng Lập trình hớng đối tợng (Object Oriented Programming - LTHĐT) l phơng pháp lập trình lấy đối tợng lm nền tảng để xây dựng thuật giải, xây dựng chơng trình. Đối tợng đợc xây dựng trên cơ sở gắn cấu trúc dữ liệu với các phơng thức (các hm/thủ tục) sẽ thể hiện đợc đúng cách m chúng ta suy nghĩ, bao quát về thế giới thực. LTHĐT cho phép ta kết hợp những tri thức bao quát về các quá trình với những khái niệm trừu tợng đợc sử dụng trong máy tính. Điểm căn bản của phơng pháp LTHĐT l thiết kế chơng trình xoay quanh dữ liệu của hệ thống. Nghĩa l các thao tác xử lý của hệ thống đợc gắn liền với dữ liệu v nh vậy khi có sự thay đổi của cấu trúc dữ liệu thì chỉ ảnh hởng đến một số ít các phơng thức xử lý liên quan. LTHĐT không cho phép dữ liệu chuyển động tự do trong hệ thống. Dữ liệu đợc gắn chặt với từng phơng thức thnh các vùng riêng m các phơng thức đó tác động lên v nó đợc bảo vệ để cấm việc truy nhập tùy tiện từ bên ngoi. LTHĐT cho phép phân tích bi toán thnh tập các thực thể đợc gọi l các đối tợng v sau đó xây dựng các dữ liệu cùng với các ph ơng thức xung quanh các đối tợng đó. Tóm lại LTHĐT có những đặc tính chủ yếu nh sau: 1. Tập trung vo dữ liệu thay cho các phơng thức. 2. Chơng trình đợc chia thnh các lớp đối tợng. 3. Các cấu trúc dữ liệu đợc thiết kế sao cho đặc tả đợc các đối tợng. 4. Các phơng thức xác định trên các vùng dữ liệu của đối tợng đợc gắn với nhau trên cấu trúc dữ liệu đó. 5. Dữ liệu đợc bao bọc, che dấu v không cho phép các thnh phần bên ngoi truy nhập tự do. 6. Các đối tợng trao đổi với nhau thông qua các phơng thức. 7. Dữ liệu v các phơng thức mới có thể dễ dng bổ sung vo đối tợng no đó khi cần thiết. 8. Chơng trình đợc thiết kế theo cách tiếp cận bottom-up (dới -lên). 1.2. Các khái niệm cơ bản của lập trình hớng đối tợng Những khái niệm cơ bản trong LTHĐT bao gồm: Đối tợng; Lớp; Trừu tợng hóa dữ liệu, bao gói thông tin; Kế thừa; Tơng ứng bội; Liên kết động; Truyền thông báo. Lp trỡnh HT http://www.ebook.edu.vn 4 1.2.1. Đối tợng Trong thế giới thực, khái niệm đối tợng đợc hiểu nh l một thực thể, nó có thể l ngời, vật hoặc một bảng dữ liệu cần xử lý trong chơng trình, Trong LTHĐT thì đối tợng l biến thể hiện của lớp. 1.2.2. Lớp Lớp l một khái niệm mới trong LTHĐT so với kỹ thuật LTHTT. Nó l một bản mẫu mô tả các thông tin cấu trúc dữ liệu v các thao tác hợp lệ của các phần tử dữ liệu. Khi một phần tử dữ liệu đợc khai báo l phần tử của một lớp thì nó đợc gọi l đối tợng. Các hm đợc định nghĩa hợp lệ trong một lớp đợc gọi l các phơng thức (method) v chúng l các hm duy nhất có thể xử lý dữ liệu của các đối tợng của lớp đó. Mỗi đối tợng có riêng cho mình một bản sao các phần tử dữ liệu của lớp. Mỗi lớp bao gồm: danh sách các thuộc tính (attribute) v danh sách các phơng thức để xử lý các thuộc tính đó. Công thức phản ánh bản chất của kỹ thuật LTHĐT l: Đối tợng = Dữ liệu + Phơng thức Chẳng hạn, chúng ta xét lớp HINH_CN bao gồm các thuộc tính: (x1,y1) toạ độ góc trên bên trái, d,r l chiều di v chiều rộng của HCN. Các ph ơng thức nhập số liệu cho HCN, hm tính diện tích, chu vi v hm hiển thị. Lớp HINH_CN có thể đợc mô tả nh sau: Hình 2.2 Mô tả lớp HINH_CN HINH_CN Thuộc tính : x1,y1 d,r Phơng thức : Nhập_sl Diện tích Chu vi Hiển thị Lp trỡnh HT http://www.ebook.edu.vn 5 Chú ý: Trong LTHĐT thì lớp l khái niệm tĩnh, có thể nhận biết ngay từ văn bản chơng trình, ngợc lại đối tợng l khái niệm động, nó đợc xác định trong bộ nhớ của máy tính, nơi đối tợng chiếm một vùng bộ nhớ lúc thực hiện chơng trình. Đối tợng đợc tạo ra để xử lý thông tin, thực hiện nhiệm vụ đợc thiết kế, sau đó bị hủy bỏ khi đối tợng đó hết vai trò. 1.2.3. Trừu tợng hóa dữ liệu và bao gói thông tin Trừu tợng hóa l cách biểu diễn những đặc tính chính v bỏ qua những chi tiết vụn vặt hoặc những giải thích. Khi xây dựng các lớp, ta phải sử dụng khái niệm trừu tợng hóa. Ví dụ ta có thể định nghĩa một lớp để mô tả các đối tợng trong không gian hình học bao gồm các thuộc tính trừu tợng nh l kích thớc, hình dáng, mu sắc v các phơng thức xác định trên các thuộc tính ny. Việc đóng gói dữ liệu v các phơng thức vo một đơn vị cấu trúc lớp đợc xem nh một nguyên tắc bao gói thông tin. Dữ liệu đợc tổ chức sao cho thế giới bên ngoi (các đối tợng ở lớp khác) không truy nhập vo, m chỉ cho phép các phơng thức trong cùng lớp hoặc trong những lớp có quan hệ kế thừa với nhau mới đợc quyền truy nhập. Chính các ph ơng thức của lớp sẽ đóng vai trò nh l giao diện giữa dữ liệu của đối tợng v phần còn lại của chơng trình. Nguyên tắc bao gói dữ liệu để ngăn cấm sự truy nhập trực tiếp trong lập trình đợc gọi l sự che giấu thông tin. 1.2.4. Kế thừa Kế thừa l quá trình m các đối tợng của lớp ny đợc quyền sử dụng một số tính chất của các đối tợng của lớp khác. Sự kế thừa cho phép ta định nghĩa một lớp mới trên cơ sở các lớp đã tồn tại. Lớp mới ny, ngoi những thnh phần đợc kế thừa, sẽ có thêm những thuộc tính v các hm mới. Nguyên lý kế thừa hỗ trợ cho việc tạo ra cấu trúc phân cấp các lớp. 1.2.5. Tơng ứng bội Tơng ứng bội l khả năng của một khái niệm (chẳng hạn các phép toán) có thể sử dụng với nhiều chức năng khác nhau. Ví dụ, phép + có thể biểu diễn cho phép cộng các số nguyên (int), số thực (float), số phức (complex) hoặc xâu ký tự (string) v.v Hnh vi của phép toán tơng ứng bội phụ thuộc vo kiểu dữ liệu m nó sử dụng để xử lý. Tơng ứng bội đóng vai quan trọng trong việc tạo ra các đối tợng có cấu trúc bên trong khác nhau nhng cùng dùng chung một giao diện bên ngoi (nh tên gọi). Lp trỡnh HT http://www.ebook.edu.vn 6 1.2.6. Liên kết động Liên kết động l dạng liên kết các thủ tục v hm khi chơng trình thực hiện lời gọi tới các hm, thủ tục đó. Nh vậy trong liên kết động, nội dung của đoạn chơng trình ứng với thủ tục, hm sẽ không đợc biết cho đến khi thực hiện lời gọi tới thủ tục, hm đó. 1.2.7. Truyền thông báo Các đối tợng gửi v nhận thông tin với nhau giống nh con ngời trao đổi với nhau. Chính nguyên lý trao đổi thông tin bằng cách truyền thông báo cho phép ta dễ dng xây dựng đợc hệ thống mô phỏng gần hơn những hệ thống trong thế giới thực. Truyền thông báo cho một đối tợng l yêu cầu đối tợng thực hiện một việc gì đó. Cách ứng xử của đối tợng đợc mô tả bên trong lớp thông qua các phơng thức. Trong chơng trình, thông báo gửi đến cho một đối tợng chính l yêu cầu thực hiện một công việc cụ thể, nghĩa l sử dụng những hm tơng ứng để xử lý dữ liệu đã đợc khai báo trong đối tợng đó. Vì vậy, trong thông báo phải chỉ ra đợc hm cần thực hiện trong đối tợng nhận thông báo. Thông báo truyền đi cũng phải xác định tên đối tợng v thông tin truyền đi. Ví dụ, lớp CONGNHAN có thể hiện l đối tợng cụ thể đ ợc đại diện bởi Hoten nhận đợc thông báo cần tính lơng thông qua hm TINHLUONG đã đợc xác định trong lớp CONGNHAN. Thông báo đó sẽ đợc xử lý nh sau: Trong chơng trình hớng đối tợng, mỗi đối tợng chỉ tồn tại trong thời gian nhất định. Đối tợng đợc tạo ra khi nó đợc khai báo v sẽ bị hủy bỏ khi chơng trình ra khỏi miền xác định của đối tợng đó. Sự trao đổi thông tin chỉ có thể thực hiện trong thời gian đối tợng tồn tại. 1.3. Các bớc cần thiết để thiết kế chơng trình theo hớng đối tợng Chơng trình theo hớng đối tợng bao gồm một tập các đối tợng v mối quan hệ giữa các đối tợng với nhau. Vì vậy, lập trình trong ngôn ngữ hớng đối tợng bao gồm các bớc sau: 1. Xác định các dạng đối tợng (lớp) của bi tóan. CONGNHAN.TINHLUONG (Hoten) Đối tợn g Thôn g báo Thôn g tin Lp trỡnh HT http://www.ebook.edu.vn 7 2. Tìm kiếm các đặc tính chung (dữ liệu chung) trong các dạng đối tợng ny, những gì chúng cùng nhau chia xẻ. 3. Xác định lớp cơ sở dựa trên cơ sở các đặc tính chung của các dạng đối tợng. 4. Từ lớp cơ sở, xây dựng các lớp dẫn xuất chứa các thnh phần, những đặc tính không chung còn lại của các dạng đối tợng. Ngoi ra, ta còn đa ra các lớp có quan hệ với các lớp cơ sở v lớp dẫn xuất. 1.4. Các u điểm của lập trình hớng đối tợng Cách tiếp cận hớng đối tợng giải quyết đợc nhiều vấn đề tồn tại trong quá trình phát triển phần mềm v tạo ra đợc những sản phẩm phần mềm có chất lợng cao. Những u điểm chính của LTHĐT l: 1. Thông qua nguyên lý kế thừa, có thể loại bỏ đợc những đoạn chơng trình lặp lại trong quá trình mô tả các lớp v mở rộng khả năng sử dụng các lớp đã đợc xây dựng. 2. Chơng trình đợc xây dựng từ những đơn thể (đối tợng) trao đổi với nhau nên việc thiết kế v lập trình sẽ đợc thực hiện theo quy trình nhất định chứ không phải dựa vo kinh nghiệm v kỹ thuật nh trớc. Điều ny đảm bảo rút ngắn đợc thời gian xây dựng hệ thống v tăng năng suất lao động. 3. Nguyên lý che giấu thông tin giúp ngời lập trình tạo ra đợc những chơng trình an ton không bị thay bởi những đoạn ch ơng trình khác. 4. Có thể xây dựng đợc ánh xạ các đối tợng của bi toán vo đối tợng của chơng trình. 5. Cách tiếp cận thiết kế đặt trọng tâm vo đối tợng, giúp chúng ta xây dựng đợc mô hình chi tiết v gần với dạng ci đặt hơn. 6. Những hệ thống hớng đối tợng dễ mở rộng, nâng cấp thnh những hệ lớn hơn. 7. Kỹ thuật truyền thông báo trong việc trao đổi thông tin giữa các đối tợng giúp cho việc mô tả giao diện với các hệ thống bên ngoi trở nên đơn giản hơn. 8. Có thể quản lý đợc độ phức tạp của những sản phẩm phần mềm. Không phải trong hệ thống hớng đối tợng no cũng có tất cả các tính chất nêu trên. Khả năng có các tính chất đó còn phụ thuộc vo lĩnh vực ứng dụng của dự án tin học v vo phơng pháp thực hiện của ngời phát triển phần mềm. Lp trỡnh HT http://www.ebook.edu.vn 8 1.5. Các ngôn ngữ hớng đối tợng Lập trình hớng đối tợng không l đặc quyền của một ngôn ngữ no đặc biệt. Cũng giống nh lập trình có cấu trúc, những khái niệm trong lập trình hớng đối tợng có thể ci đặt trong những ngôn ngữ lập trình nh C hoặc Pascal, Tuy nhiên, đối với những chơng trình lớn thì vấn đề lập trình sẽ trở nên phức tạp. Những ngôn ngữ đợc thiết kế đặc biệt, hỗ trợ cho việc mô tả, ci đặt các khái niệm của phơng pháp hớng đối tợng đợc gọi chung l ngôn ngữ đối tợng. Dựa vo khả năng đáp ứng các khái niệm về hớng đối tợng, ta có thể chia ra lm hai loại: 1. Ngôn ngữ lập trình dựa trên đối tợng 2. Ngôn ngữ lập trình hớng đối tợng Lập trình dựa trên đối tợng l kiểu lập trình hỗ trợ chính cho việc bao gói, che giấu thông tin v định danh các đối tợng. Lập trình dựa trên đối tợng có những đặc tính sau: Bao gói dữ liệu Cơ chế che giấu v truy nhập dữ liệu Tự động tạo lập v xóa bỏ các đối tợng Phép toán tải bội Ngôn ngữ hỗ trợ cho kiểu lập trình trên đợc gọi l ngôn ngữ lập trình dựa trên đối tợng. Ngôn ngữ trong lớp ny không hỗ trợ cho việc thực hiện kế thừa v liên kết động, chẳng hạn Ada l ngôn ngữ lập trình dựa trên đối tợng. Lập trình hớng đối tợng l kiểu lập trình dựa trên đối tợng v bổ sung thêm nhiều cấu trúc để ci đặt những quan hệ về kế thừa v liên kết động. Vì vậy đặc tính của LTHĐT có thể viết một cách ngắn gọn nh sau: Các đặc tính dựa trên đối tợng + kế thừa + liên kết động. Ngôn ngữ hỗ trợ cho những đặc tính trên đợc gọi l ngôn ngữ LTHĐT, ví dụ nh C++, Smalltalk, Object Pascal v.v Việc chọn một ngôn ngữ để ci đặt phần mềm phụ thuộc nhiều vo các đặc tính v yêu cầu của bi toán ứng dụng, vo khả năng sử dụng lại của những chơng trình đã có v vo tổ chức của nhóm tham gia xây dựng phần mềm. 1.6. Một số ứng dụng của LTHĐT LTHĐT đang đợc ứng dụng để phát triển phần mềm trong nhiều lĩnh vực khác nhau. Trong số đó, có ứng dụng quan trọng v nổi tiếng nhất hiện nay l hệ Lp trỡnh HT http://www.ebook.edu.vn 9 điều hnh Windows của hãng Microsoft đã đợc phát triển dựa trên kỹ thuật LTHĐT. Một số những lĩnh vực ứng dụng chính của kỹ thuật LTHĐT bao gồm: + Những hệ thống lm việc theo thời gian thực. + Trong lĩnh vực mô hình hóa hoặc mô phỏng các quá trình + Các cơ sở dữ liệu hớng đối tợng. + Những hệ siêu văn bản, multimedia + Lĩnh vực trí tuệ nhân tạo v các hệ chuyên gia. + Lập trình song song v mạng nơ-ron. + Những hệ tự động hóa văn phòng v trợ giúp quyết định. . lập trình hớng đối tợng 1. 1. Giới thiệu 1. 1 .1. Tiếp cận hớng đối t ợng Trong thế giới thực, chung quanh chúng ta l những đối tợng, đó l các thực thể có mối quan hệ với nhau. Ví dụ các phòng. phân chia các phòng chức năng trong công ty sẽ tạo điều kiện dễ dng cho việc quản lý các hoạt động. Mỗi nhân viên trong phòng sẽ điều khiển v xử lý dữ liệu của phòng đó. Ví dụ phòng kế toán phụ. liệu của hệ thống. Nghĩa l các thao tác xử lý của hệ thống đợc gắn liền với dữ liệu v nh vậy khi có sự thay đổi của cấu trúc dữ liệu thì chỉ ảnh hởng đến một số ít các phơng thức xử lý liên

Ngày đăng: 24/07/2014, 10:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan