OOAD - Mô hình hướng đối tượng
Lược sử
Mô hình hướng đối tượng hình thành từ khái niệm ban đầu về một cách tiếp cận lập trình mới, trong khi sự quan tâm đến các phương pháp thiết kế và phân tích đến muộn hơn nhiều.
Ngôn ngữ hướng đối tượng đầu tiên là Simula (Mô phỏng các hệ thống thực) được phát triển vào năm 1960 bởi các nhà nghiên cứu tại Trung tâm Máy tính Na Uy.
Năm 1970, Alan Kay và nhóm nghiên cứu của ông tại Xerox PARK đã tạo ra một máy tính cá nhân có tên Dynabook và ngôn ngữ lập trình hướng đối tượng thuần túy đầu tiên (OOPL) - Smalltalk, để lập trình Dynabook.
Vào những năm 1980, Grady Booch đã xuất bản một bài báo có tiêu đề Thiết kế hướng đối tượng, chủ yếu trình bày một thiết kế cho ngôn ngữ lập trình, Ada. Trong các ấn bản tiếp theo, ông đã mở rộng ý tưởng của mình thành một phương pháp thiết kế hướng đối tượng hoàn chỉnh.
Trong những năm 1990, Coad đã kết hợp các ý tưởng hành vi với các phương pháp hướng đối tượng.
Những đổi mới quan trọng khác là Kỹ thuật tạo mô hình đối tượng (OMT) của James Rumbaugh và Kỹ thuật phần mềm hướng đối tượng (OOSE) của Ivar Jacobson.
Phân tích hướng đối tượng
Phân tích hướng đối tượng (OOA) là quy trình xác định các yêu cầu kỹ thuật phần mềm và phát triển các đặc tả phần mềm theo mô hình đối tượng của hệ thống phần mềm, bao gồm các đối tượng tương tác.
Sự khác biệt chính giữa phân tích hướng đối tượng và các dạng phân tích khác là trong cách tiếp cận hướng đối tượng, các yêu cầu được tổ chức xung quanh các đối tượng, tích hợp cả dữ liệu và chức năng. Chúng được mô phỏng theo các đối tượng trong thế giới thực mà hệ thống tương tác. Trong các phương pháp phân tích truyền thống, hai khía cạnh - chức năng và dữ liệu - được xem xét riêng biệt.
Grady Booch đã định nghĩa OOA là, “Phân tích hướng đối tượng là một phương pháp phân tích xem xét các yêu cầu từ quan điểm của các lớp và đối tượng được tìm thấy trong từ vựng của miền vấn đề” .
Các nhiệm vụ chính trong phân tích hướng đối tượng (OOA) là:
- Xác định đối tượng
- Tổ chức các đối tượng bằng cách tạo sơ đồ mô hình đối tượng
- Xác định nội dung của đối tượng hoặc thuộc tính đối tượng
- Xác định hành vi của các đối tượng, tức là các hành động của đối tượng
- Mô tả cách các đối tượng tương tác
Các mô hình phổ biến được sử dụng trong OOA là các ca sử dụng và mô hình đối tượng.
Thiết kế hướng đối tượng
Thiết kế hướng đối tượng (OOD) liên quan đến việc thực hiện mô hình khái niệm được tạo ra trong quá trình phân tích hướng đối tượng. Trong OOD, các khái niệm trong mô hình phân tích, không phụ thuộc vào công nghệ, được ánh xạ vào các lớp triển khai, các ràng buộc được xác định và các giao diện được thiết kế, dẫn đến mô hình cho miền giải pháp, tức là mô tả chi tiết về cách hệ thống được xây dựng trên công nghệ bê tông.
Các chi tiết triển khai thường bao gồm:
- Cấu trúc lại dữ liệu lớp (nếu cần),
- Triển khai các phương pháp, tức là, cấu trúc dữ liệu nội bộ và thuật toán,
- Thực hiện kiểm soát và
- Thực hiện các hiệp hội.
Grady Booch đã định nghĩa thiết kế hướng đối tượng là “một phương pháp thiết kế bao gồm quá trình phân rã hướng đối tượng và một ký hiệu để mô tả cả mô hình logic và vật lý cũng như tĩnh và động của hệ thống được thiết kế” .
Lập trình hướng đối tượng
Lập trình hướng đối tượng (OOP) là một mô hình lập trình dựa trên các đối tượng (có cả dữ liệu và phương pháp) nhằm mục đích kết hợp các ưu điểm của tính mô đun và khả năng tái sử dụng. Các đối tượng, thường là các thể hiện của các lớp, được sử dụng để tương tác với nhau để thiết kế các ứng dụng và chương trình máy tính.
Các tính năng quan trọng của lập trình hướng đối tượng là:
- Cách tiếp cận từ dưới lên trong thiết kế chương trình
- Các chương trình được tổ chức xung quanh các đối tượng, được nhóm trong các lớp
- Tập trung vào dữ liệu với các phương pháp hoạt động dựa trên dữ liệu của đối tượng
- Tương tác giữa các đối tượng thông qua các chức năng
- Khả năng tái sử dụng của thiết kế thông qua việc tạo các lớp mới bằng cách thêm các tính năng vào các lớp hiện có
Một số ví dụ về ngôn ngữ lập trình hướng đối tượng là C ++, Java, Smalltalk, Delphi, C #, Perl, Python, Ruby và PHP.
Grady Booch đã định nghĩa lập trình hướng đối tượng là “một phương pháp triển khai trong đó các chương trình được tổ chức như một tập hợp hợp tác của các đối tượng, mỗi đối tượng đại diện cho một thể hiện của một số lớp và các lớp của chúng đều là thành viên của một hệ thống phân cấp các lớp được thống nhất thông qua các mối quan hệ kế thừa ” .