Chương 1: Cơ sở lý luận- Cách tiếp cận hướng đối tượng 1.Cách tiếp cận hướng đối tượng 1. Phương pháp hướng cấu trúc Đặc trưng của phương pháp hướng cấu trúc là phân chia chương trình chính thành nhiều chương trình con, mỗi chương trình con nhằm đến thực hiện một công việc xác định. Trong phương pháp hướng cấu trúc, phần mềm được thiết kế dựa trên một trong hai hướng: hướng dữ liệu và hướng hành động. - Cách tiếp cận hướng dữ liệu xây dựng phần mềm dựa trên việc phân rã phần mềm theo chức năng cần đáp ứng và dữ liệu cho các chức năng đó.
Cách tiếp cận này sẽ giúp cho những người phát triển hệ thống dễ dàng xây dựng ngân hàng dữ liệu. - Cách tiếp cận hướng hành động lại tập trung phân tích hệ phần mềm dựa trên các hoạt động thực thi các chức năng của phần mềm đó. Cách thức thực hiện của phương pháp hướng cấu trúc là phương pháp thiết kế từ trên xuống (top-down). Phương pháp này tiến hành phân rã bài toán thành các bài toán nhỏ hơn, rồi tiếp tục phân rã các bài toán con cho đến khi nhận được các bài toán có thể cài đặt được ngay sử dụng các hàm của ngôn ngữ lập trình hướng cấu trúc.
Phương pháp hướng cấu trúc có ưu điểm là tư duy phân tích thiết kế rõ ràng, chương trình sáng sủa dễ hiểu. Tuy nhiên, phương pháp này có một số nhược điểm sau: - Không hỗ trợ việc sử dụng lại. Các chương trình hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể, do đó không thể dùng lại một modul nào đó trong phần mềm này cho phần mềm mới với các yêu cầu về dữ liệu khác. - Không phù hợp cho phát triển các phần mềm lớn.
Nếu hệ thống thông tin lớn, việc phân rã thành các bài toán con cũng như phân các bài toán con thành các modul và quản lý mối quan hệ giữa các modul đó sẽ là không phải dễ dàng và dễ gây ra các lỗi trong phân tích và thiết kế hệ thống, cũng như khó kiểm thử và bảo trì. Các đặc điểm và ưu thế nổi trội của phương pháp hướng đối tượng 1. Cách tiếp cận hướng đối tượng: Khác với phương pháp hướng cấu trúc chỉ tập trung hoặc vào dữ liệu hoặc vào hành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành động. Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực.
Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó. Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -8- chúng. Các nguyên tắc cơ bản của phương pháp hướng đối tượng bao gồm: - Trừu tượng hóa (abstraction): trong phương pháp hướng đối tượng, các thực thể phần mềm được mô hình hóa dưới dạng các đối tượng. Các đối tượng này được trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp.
Các lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ các lớp được kế thừa lẫn nhau. Trong phương pháp hướng đối tượng có thể tồn tại những lớp không có đối tượng tương ứng, gọi là lớp trừu tượng. Như vậy, nguyên tắc cơ bản để xây dựng các khái niệm trong hướng đối tượng là sự trừu tượng hóa theo các mức độ khác nhau. - Tính đóng gói (encapsulation) và ẩn dấu thông tin: các đối tượng có thể có những phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng khác không thể sử dụng được.
Dựa trên nguyên tắc ẩn dấu thông tin này, cài đặt của các đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với nhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng cũng như các hệ thống khác sử dụng kết quả của nó. - Tính modul hóa (modularity): các bài toán sẽ được phân chia thành những vấn đề nhỏ hơn, đơn giản và quản lý được. - Tính phân cấp (hierarchy): cấu trúc chung của một hệ thống hướng đối tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp. Ưu điểm chính của phương pháp hướng đối tượng Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được các vấn đề nảy sinh với phương pháp hướng cấu trúc: - Hỗ trợ sử dụng lại mã nguồn: các chương trình lập trình theo phương pháp hướng đối tượng thường được chia thành các gói là các nhóm của các lớp đối tượng khác nhau.
Các gói này hoạt động tương đối độc lập và hoàn toàn có thể sử dụng lại trong các hệ thống thông tin tương tự. - Phù hợp với các hệ thống lớn: phương pháp hướng đối tượng không chia bài toán thành các bài toán nhỏ mà tập trung vào việc xác định các đối tượng, dữ liệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. Các đối tượng hoàn toàn độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ các đối tượng khác. Vì vậy, phương pháp này hỗ trợ phân tích, thiết kế và quản lý một hệ thống lớn, có thể mô tả các hoạt động nghiệp vụ phức tạp bởi quá trình phân tích thiết kế không phụ thuộc vào số biến dữ liệu hay số lượng thao tác cần thực hiện mà chỉ quan tâm đến các đối tượng tồn tại trong hệ thống đó.
Các phần tử của UML Tiến trình phát triển phần mềm thống nhất (USDP) và ngôn ngữ mô hình hóa thống nhất (UML) là phương pháp luận và công cụ điển hình cho công nghệ phát triển phần mềm hướng đối tượng. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -9- UML là ngôn ngữ mô hình hóa chuẩn, ngôn ngữ mô hình đồ họa, trực quan, vừa đặc tả vừa có cấu trúc, đồng thời lại là ngôn ngữ làm tài liệu. Vì vậy đối với việc phát triển phần mềm hướng đối tượng, UML đặc biệt có khả năng sau: - Cho phép mô tả toàn bộ các sản phẩm phân tích và thiết kế - Trợ giúp việc tự động hóa quá trình thiết kế trên máy tính. - Trợ giúp việc dịch xuôi và dịch ngược các thiết kế sang mã nguồn của ngôn ngữ lập trình và CSDL.
UML Sự vật Quan hệ Sơ đồ Cấu trúc Hành Nhóm gộp Chú thích Kết hợp Ca sử dụng vi Tổng quát Lớp đối hoá (kế tượng thừa) Tuần tự Phụ thuộc Cộng tác Hiện thực Trạng thái Ca sử dụng Sự tương Gói Ghi chú hóa Hoạt động Lớp tác Mô hình Thành phần Lớp hoạt Máy trạng Hệ thống con Triển khai động thái Khung làm Giao diện việc Thành phần Hình 1. Các thành phần cơ sở của UML Các sự vật (things) là các trừu tượng hóa và là những phần tử lớp đầu tiên (những viên gạch) để xây dựng lên các mô hình trong UML. Các sự vật (things) UML có bốn loại sự vật, đó là: - Sự vật cấu trúc, - Sự vật hành vi, - Sự vật gộp nhóm, - Chú thích. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -10- Sự vật cấu trúc (structural things): là các danh từ trong mô hình UML, biểu diễn cho các thành phần khái niệm hay vật lý của hệ thống.
UML có bảy sự vật cấu trúc: + Lớp (class). Lớp là tập các đối tượng cùng chia sẻ các thuộc tính, thao tác, quan hệ và ngữ nghĩa. Một lớp có trách nhiệm thực hiện một hay nhiều giao diện. Một lớp được biểu diễn bằng một hình chữ nhật bên trong có tên, các thuộc tính và các tác vụ.
Window Tên lớp Size Origin Thuộc tính Open() Close() Tác vụ/ phương thức Move() Display() Hình 2. Lớp Một lớp có ba thành phần như sau: tên lớp, các thuộc tính, các phương thức (ứng xử) của lớp. Tên lớp thường là danh từ, ví dụ: sinh viên. Các thuộc tính được coi là đúng nếu nó bao gồm các thông tin để mô tả và nhận dạng một thực thể cụ thể của một lớp.
Tuy nhiên, chỉ nên đưa vào các thuộc tính mà hệ thống quan tâm. Mỗi một thuộc tính đều thuộc một kiểu dữ liệu nào đó. Kiểu dữ liệu nguyên thuỷ bao gồm các kiểu như: Integer, Boolean, Real. Ngoài ra các thuộc tính còn có khả năng nhìn thấy được (Visibility) bao gồm public, private và protected.
Nếu một thuộc tính là public nghĩa là một lớp khác có thể tham chiếu đến và sử dụng thuộc tính đó. Nếu là private thì các lớp khác không thể tham chiếu đến thuộc tính này. Các phương thức trong một lớp mô tả cái mà lớp đó có thể làm. Các phương thức thường được gọi là các hàm (function) nhưng chúng chỉ thuộc vào lớp đó và áp dụng đối với các đối tượng của lớp đó.
Cũng giống như các thuộc tính, các phương thức cũng có phạm vi và khả năng nhìn thấy được. Đối tượng là khái niệm dùng để mô hình hoá một vật hoặc một khái niệm trong thế giới thực, có thể là một phần của bất kỳ loại hệ thống nào như máy móc hay một tổ chức. Có một số đối tượng (ví dụ như các đối tượng thực thi trong hệ thống phần mềm) không tồn tại một cách trực tiếp trong thế giới thực nhưng nó phát sinh bắt nguồn từ việc nghiên cứu cấu trúc và hành vi của các đối tượng trong thế giới thực. Vì thế các đối tượng liên quan đến hiểu biết của chúng ta về thế giới thực bởi đối tượng là thể hiện của một lớp nào đó.
Ký pháp: trong UML đối tượng được thể hiện bởi một hình chữ nhật với tên ở bên trong. Tên đối tượng được gạch chân. Giao diện là tập các thao tác làm dịch vụ cho lớp hay thành phần (mô-đun vật lý hoặc mã chương trình). Giao diện mô tả hành vi quan sát LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -11- được từ bên ngoài thành phần.
Giao diện chỉ khai báo các phương thức xử lý không định nghĩa nội dung thực hiện. Nó thường không đứng một mình mà thường nó được gắn với lớp hay một thành phần thực hiện giao diện. Giao diện + Cộng tác (collaboration).