Môn học: Xây dựng mô hình đối tượng Xây dựng mô hình đối tượng của môn học “tổ chức quy trình câu lạc bộ thể thao” bằng ngôn ngữ mô hình hóa UML

Mô hình đối tượng của một doanh nghiệp hiện tại cho thấy cách thức và những gì đã được thực hiện trước đó. Mô hình này tiết lộ cấu trúc bên trong của một doanh nghiệp, cụ thể là: loại nguồn lực nào được sử dụng để thực hiện các tiền lệ và cách chúng tương tác. Việc mô tả mô hình đối tượng dựa trên khái niệm “đối tượng”. Các đối tượng đại diện cho những người tham gia quá trình và các loại thực thể khác nhau (thành phẩm, đơn hàng, v.v.).

Đối tượng giao diện của quy trình kinh doanh đang được nghiên cứu:

  • 1. Giám đốc dịch vụ khách hàng. Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: tương tác với khách hàng, đặt hàng, nhận thanh toán từ khách hàng cho đơn hàng.
  • 2. Thủ kho chịu trách nhiệm về tài chính. Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: tương tác với nhà cung cấp, nhận nguyên vật liệu và ký hóa đơn.
  • 3. Lái xe giao hàng. Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: Giao sản phẩm hoàn thiện cho khách hàng.

Đối tượng kiểm soát của quá trình kinh doanh đang nghiên cứu:

  • 1. Nhà thiết kế. Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: thiết kế sản phẩm, quản lý dự án, kiểm soát.
  • 2. Người vận hành kế toán tự động. Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: duy trì hồ sơ tự động, làm việc với cơ sở dữ liệu.
  • 3. Thợ nội thất (Assembler). Thuộc tính: họ tên, chức vụ, mức lương. Trách nhiệm: Sản xuất sản phẩm theo đúng dự án.

Đối tượng thực thể của quá trình kinh doanh đang được nghiên cứu:

  • 1. Séc - một chứng từ được phát hành khi thanh toán đơn hàng.
  • 2. Catalog - tài liệu phản ánh chủng loại sản phẩm.
  • 3. Mẫu đơn đặt hàng - tài liệu bao gồm mã số đơn hàng, ngày đặt hàng, thông tin khách hàng, loại đã chọn, phác thảo sản phẩm, mong muốn của khách hàng.
  • 4. Thiết kế sản phẩm - thiết kế nội thất theo yêu cầu.
  • 5. Đơn xin vật liệu - tài liệu mô tả các vật liệu cần thiết và khối lượng của chúng.
  • 6. Cơ sở dữ liệu - một chương trình cho phép bạn duy trì hồ sơ tài liệu trong công ty.
  • 7. Vật liệu - cần thiết để sản xuất một sản phẩm theo yêu cầu.
  • 8. Hóa đơn - văn bản được ký khi vận chuyển nguyên liệu.
  • 9. Sản phẩm hoàn chỉnh là kết quả của quá trình sản xuất, có đặc điểm là thuộc một đơn hàng nào đó.

Bảng 5.1 mô tả mối quan hệ giữa các đối tượng với nhau.

Bảng 5.1 Mô tả cách các đối tượng tương tác với nhau

Đối tượng giao tiếp

Loại giao tiếp

Khách hàng - Người quản lý tài khoản

thái độ giao tiếp

Khách hàng liên hệ với người quản lý để đặt hàng sản xuất đồ nội thất

Người quản lý - Khách hàng

thái độ giao tiếp

Người quản lý cung cấp cho khách hàng một danh mục các bản phác thảo sản phẩm có thể có

Khách hàng - Danh mục

tỷ lệ sử dụng

Khách hàng chọn bản phác thảo phù hợp

Người quản lý khách hàng

thái độ giao tiếp

Khách hàng bày tỏ sự lựa chọn và mong muốn của mình

Người quản lý - Khách hàng

thái độ giao tiếp

Người quản lý giải thích các điều kiện và điều khoản

Người quản lý khách hàng

thái độ giao tiếp

Khách hàng thanh toán cho đơn hàng

Người quản lý - Kiểm tra

tỷ lệ sử dụng

Người quản lý in séc

Người quản lý - Khách hàng

thái độ giao tiếp

Người quản lý đưa séc cho khách hàng

Người quản lý - Mẫu đơn đặt hàng

tỷ lệ sử dụng

Người quản lý tạo mẫu đơn đặt hàng

Quản lý - Nhà thiết kế

thái độ giao tiếp

Người quản lý lấy mẫu đơn đặt hàng cho người thiết kế ở bộ phận thiết kế

Nhà thiết kế - Mẫu đơn đặt hàng

tỷ lệ sử dụng

Nhà thiết kế chấp nhận mẫu đơn đặt hàng

tỷ lệ sử dụng

Nhà thiết kế phát triển dự án

Designer - Thiết kế sản phẩm

tỷ lệ sử dụng

Nhà thiết kế đánh giá dự án

Nhà thiết kế - Yêu cầu vật liệu

tỷ lệ sử dụng

Nhà thiết kế tạo ra một yêu cầu về vật liệu

Designer - Nhân viên kế toán tự động

thái độ giao tiếp

Người thiết kế gửi yêu cầu về vật liệu cho người điều hành kế toán tự động

Máy kế toán tự động - Yêu cầu nguyên vật liệu

tỷ lệ sử dụng

Người điều hành kế toán tự động chấp nhận đơn đăng ký nguyên vật liệu

Toán tử kế toán tự động - Cơ sở dữ liệu

tỷ lệ sử dụng

Người điều hành kế toán tự động kiểm tra sự sẵn có của các vật liệu cần thiết với các vật liệu có sẵn

Thủ kho chịu trách nhiệm tài chính - Nhà cung cấp

thái độ giao tiếp

Người thủ kho chịu trách nhiệm đặt hàng các nguyên vật liệu cần thiết từ nhà cung cấp

Nhà cung cấp - Thủ kho chịu trách nhiệm về tài chính

thái độ giao tiếp

Cung cấp vật liệu

Thủ kho chịu trách nhiệm tài chính - Vật tư

tỷ lệ sử dụng

Tiếp nhận vật liệu

Thủ kho chịu trách nhiệm về tài chính - Hóa đơn

tỷ lệ sử dụng

Ký hóa đơn

Thủ kho chịu trách nhiệm về tài chính - Người thu gom

thái độ giao tiếp

Thông báo về tình trạng sẵn có của nguyên vật liệu trong kho

Nhà thiết kế - lắp ráp

thái độ giao tiếp

Chuyển bản thiết kế sản phẩm cho người lắp ráp

Thợ lắp ráp - Thiết kế sản phẩm

tỷ lệ sử dụng

Thợ lắp ráp nội thất tiếp nhận và nghiên cứu mẫu mã sản phẩm

Thợ lắp ráp - Thành phẩm

tỷ lệ sử dụng

Người lắp ráp tạo ra sản phẩm

Thợ lắp ráp - Nhà thiết kế

thái độ giao tiếp

Người lắp ráp gọi người thiết kế để kiểm soát chất lượng sản phẩm

Nhà thiết kế - Thành phẩm

tỷ lệ sử dụng

Kiểm soát chất lượng sản phẩm

Nhà thiết kế - lắp ráp

thái độ giao tiếp

Nhà thiết kế đưa ra đánh giá về chất lượng sản phẩm

Thợ lắp ráp - Thành phẩm

tỷ lệ sử dụng

Sửa chữa các khuyết tật trên sản phẩm hoàn thiện

Collector - Trình điều khiển chuyển tiếp

thái độ giao tiếp

Bàn giao đơn hàng và thành phẩm cho tài xế giao nhận

Lái xe giao hàng - Khách hàng

thái độ giao tiếp

Chuyển giao thành phẩm

Lưu ý: Nếu nguyên liệu cần thiết có trong kho thì bỏ qua khoản 18, 19, 20, 21 của bảng này.

Mô hình động tương tác giữa các phòng ban và khách hàng trong tiền lệ “Bán sản phẩm theo yêu cầu” được thể hiện trên Hình 5.1 Mô hình động tương tác giữa các bộ phận, nhân viên và khách hàng trong tiền lệ “Đặt hàng” được thể hiện trong Hình 5.2 Mô hình động về sự tương tác giữa bộ phận, nhân viên và khách hàng trong tiền lệ “Thiết kế” được thể hiện trên Hình 5.3. Mô hình động về tương tác của nhân viên, trong tiền lệ “Sản xuất” được thể hiện trên Hình 5.4.

Hình 5.1 Sơ đồ trình tự của ca sử dụng Bán sản phẩm tùy chỉnh

Hình 5.2 Sơ đồ trình tự của ca sử dụng "Đặt hàng"

Hình 5.3 Sơ đồ trình tự ca sử dụng thiết kế

Hình 5.4 Sơ đồ trình tự của ca sử dụng Sản xuất

Mô hình đối tượng

Công nghệ hướng đối tượng dựa trên cái gọi là mô hình đối tượng Các nguyên tắc chính của việc xây dựng nó là: trừu tượng, đóng gói, mô đun hóa, phân cấp, gõ, song song và kiên trì. Bản thân mỗi nguyên tắc này không phải là mới, nhưng lần đầu tiên chúng được áp dụng cùng nhau trong mô hình đối tượng.

Phân tích và thiết kế hướng đối tượng về cơ bản khác với các phương pháp thiết kế có cấu trúc truyền thống: nó đòi hỏi một cách suy nghĩ khác về quá trình phân rã và kiến ​​trúc của sản phẩm phần mềm tạo ra phần lớn vượt xa các khái niệm về lập trình có cấu trúc truyền thống. Sự khác biệt là do thiết kế có cấu trúc dựa trên lập trình có cấu trúc, trong khi thiết kế hướng đối tượng dựa trên phương pháp lập trình hướng đối tượng.

Các phương pháp thiết kế cấu trúc giúp đơn giản hóa quá trình phát triển của các hệ thống phức tạp bằng cách sử dụng các thuật toán như các khối xây dựng sẵn. Tương tự như vậy, các kỹ thuật thiết kế hướng đối tượng được thiết kế để giúp các nhà phát triển sử dụng các tính năng biểu đạt mạnh mẽ của lập trình hướng đối tượng và dựa trên đối tượng sử dụng các lớp và đối tượng làm khối xây dựng.

. (phân tích hướng đối tượng, OOA) nhằm mục đích tạo ra các mô hình thực tế dựa trên thế giới quan hướng đối tượng.

Phân tích hướng đối tượnglà một phương pháp trong đó các yêu cầu hệ thống được nhận thức dưới dạng các lớp và đối tượng được xác định trong lĩnh vực chủ đề.

. ( thiết kế hướng đối tượng, OOD )

Lập trình chủ yếu liên quan đến việc sử dụng chính xác và hiệu quả các cơ chế của các ngôn ngữ lập trình cụ thể. Mặt khác, thiết kế tập trung vào cấu trúc chính xác và hiệu quả của các hệ thống phức tạp. Hãy định nghĩa thiết kế hướng đối tượng như sau:

Thiết kế hướng đối tượnglà một phương pháp thiết kế kết hợp quá trình phân rã đối tượng và các kỹ thuật để trình bày các mô hình logic và vật lý, cũng như các mô hình tĩnh và động của hệ thống đang được thiết kế.

Có hai phần quan trọng trong định nghĩa này: thiết kế hướng đối tượng

1) dựa trên sự phân rã hướng đối tượng;

2) sử dụng nhiều kỹ thuật khác nhau để biểu diễn các mô hình phản ánh cấu trúc logic (lớp và đối tượng) và vật lý (mô-đun và quy trình) của hệ thống, cũng như các khía cạnh tĩnh và động của nó.



Chính sự phân rã hướng đối tượng giúp phân biệt thiết kế hướng đối tượng với thiết kế cấu trúc; trong trường hợp đầu tiên, cấu trúc logic của hệ thống được phản ánh bằng sự trừu tượng hóa dưới dạng các lớp và đối tượng, trong trường hợp thứ hai - bằng các thuật toán.

. (lập trình hướng đối tượng, OOP)

Lập trình hướng đối tượnglà một phương pháp lập trình dựa trên việc biểu diễn một chương trình dưới dạng một tập hợp các đối tượng, mỗi đối tượng là một thể hiện của một lớp cụ thể và các lớp tạo thành một hệ thống phân cấp kế thừa.

Định nghĩa này có thể được chia thành ba phần:

1) OOP sử dụng làm thành phần cơ bản các đối tượng, không phải thuật toán;

2) mỗi đối tượng là sao chép bất kỳ cụ thể lớp học;

3) các lớp học được tổ chức theo thứ bậc.

Một chương trình sẽ chỉ hướng đối tượng nếu đáp ứng được cả ba yêu cầu đã chỉ định. Đặc biệt, lập trình không dựa trên quan hệ phân cấp thì không thuộc OOP mà gọi là lập trình dựa trên các kiểu dữ liệu trừu tượng

Có năm loại phong cách lập trình chính được liệt kê bên dưới cùng với các loại trừu tượng vốn có trong chúng:

Không thể nhận ra phong cách lập trình nào là tốt nhất trong mọi lĩnh vực ứng dụng thực tế. Ví dụ, phong cách hướng quy tắc phù hợp hơn cho việc thiết kế cơ sở tri thức, trong khi phong cách hướng thủ tục phù hợp hơn cho các nhiệm vụ tính toán. Dựa trên kinh nghiệm tích lũy, phong cách hướng đối tượng là phù hợp nhất cho phạm vi ứng dụng rộng nhất; quả thực, mô hình này thường đóng vai trò là nền tảng kiến ​​trúc trên đó các mô hình khác được xây dựng.

Mỗi phong cách lập trình đều có cơ sở khái niệm riêng. Mỗi phong cách đòi hỏi trạng thái tư duy và cách nhìn nhận vấn đề đang được giải quyết riêng. Đối với phong cách hướng đối tượng, cơ sở khái niệm là mô hình đối tượng Nó có bốn yếu tố chính:

  • trừu tượng;
  • đóng gói;
  • tính mô-đun;
  • hệ thống cấp bậc.

Những phần tử này là chủ yếu theo nghĩa là nếu không có chúng thì mô hình sẽ không hướng đối tượng. Ngoài những yếu tố chính, còn có ba yếu tố bổ sung:

  • đánh máy;
  • sự song song;
  • sự bảo tồn.

Bằng cách gọi chúng là tùy chọn, chúng tôi muốn nói rằng chúng hữu ích trong mô hình đối tượng nhưng không bắt buộc.

Trừu tượng xác định các đặc điểm cơ bản của một số đối tượng để phân biệt nó với tất cả các loại đối tượng khác và do đó xác định rõ ràng ranh giới khái niệm của nó theo quan điểm của người quan sát.

Sự trừu tượng hóa dựa trên các khái niệm về máy khách và máy chủ.

Khách hàng Bất kỳ đối tượng nào sử dụng tài nguyên của đối tượng khác (được gọi là máy chủ).

Chúng ta sẽ mô tả hành vi của một đối tượng bằng các dịch vụ mà nó cung cấp cho các đối tượng khác và các hoạt động mà nó thực hiện trên các đối tượng khác. Cách tiếp cận này tập trung sự chú ý vào những biểu hiện bên ngoài của đối tượng và dẫn đến ý tưởng mô hình hợp đồng lập trình, khi biểu hiện bên ngoài của một đối tượng được xem xét từ quan điểm hợp đồng của nó với các đối tượng khác, thì cấu trúc bên trong của nó phải được thực hiện theo điều này (thường là trong sự tương tác với các đối tượng khác). Hợp đồng ghi lại tất cả các nghĩa vụ mà đối tượng máy chủ có đối với đối tượng khách hàng. Nói cách khác, hợp đồng này xác định trách nhiệmđối tượng, tức là hành vi mà nó chịu trách nhiệm.

Mỗi hoạt động được đề cập trong hợp đồng này được xác định duy nhất bởi các tham số chính thức và kiểu trả về của nó. Tập hợp đầy đủ các thao tác mà máy khách có thể thực hiện trên một đối tượng khác, cùng với thứ tự đúng khi gọi các thao tác đó, được gọi là giao thức. Một giao thức phản ánh tất cả các cách có thể mà một đối tượng có thể hành động hoặc bị ảnh hưởng. Do đó, nó xác định hoàn toàn hành vi bên ngoài của sự trừu tượng theo quan điểm tĩnh và động.

Đóng gói - đây là quá trình tách rời nhau các phần tử của một đối tượng quyết định cấu trúc và hành vi của nó. Việc đóng gói nhằm mục đích tách biệt các nghĩa vụ hợp đồng của một sự trừu tượng hóa khỏi việc thực hiện chúng.

Trừu tượng hóa và đóng gói là bổ sung cho nhau: trừu tượng tập trung vào hành vi có thể quan sát được của một đối tượng, trong khi đóng gói xử lý cấu trúc bên trong. Thông thường, việc đóng gói được thực hiện thông qua việc ẩn thông tin, nghĩa là che giấu tất cả các chi tiết bên trong không ảnh hưởng đến hành vi bên ngoài. Thông thường, cả cấu trúc bên trong của một đối tượng và việc triển khai các phương thức của nó đều bị ẩn. Trong thực tế, điều này có nghĩa là một lớp có hai phần: giao diện và phần triển khai. Giao diện phản ánh hành vi bên ngoài của một đối tượng, mô tả sự trừu tượng hóa hành vi của tất cả các đối tượng của một lớp nhất định. Nội bộ thực hiện mô tả cách biểu diễn sự trừu tượng này và các cơ chế để đạt được hành vi mong muốn của đối tượng. Nguyên tắc tách biệt giao diện và cách thực hiện tương ứng với bản chất của sự vật: phần giao diện chứa mọi thứ liên quan đến sự tương tác của một đối tượng nhất định với bất kỳ đối tượng nào khác; việc triển khai ẩn khỏi các đối tượng khác tất cả các chi tiết không liên quan đến quá trình tương tác giữa các đối tượng.

Tính mô đun - đây là thuộc tính của một hệ thống đã được phân tách thành các mô-đun mạch lạc bên trong nhưng có liên kết với nhau yếu.

Trong quá trình chia hệ thống thành các module, hai quy tắc có thể hữu ích. Đầu tiên, vì các mô-đun phục vụ như các khối chương trình cơ bản và không thể phân chia được, có thể được sử dụng lại trong toàn hệ thống, nên việc phân bổ các lớp và đối tượng giữa các mô-đun phải tính đến điều này. Thứ hai, nhiều trình biên dịch tạo đoạn mã riêng cho từng mô-đun. Vì vậy, có thể có những hạn chế về kích thước mô-đun. Tính năng động của các cuộc gọi chương trình con và bố cục khai báo trong các mô-đun có thể ảnh hưởng lớn đến vị trí tham chiếu và quản lý trang bộ nhớ ảo. Khi các thủ tục được mô-đun hóa kém, các cuộc gọi lẫn nhau giữa các phân đoạn trở nên thường xuyên hơn, dẫn đến mất hiệu quả bộ đệm và thay đổi trang thường xuyên.

Khá khó để tập hợp các yêu cầu trái ngược nhau như vậy, nhưng điều chính là phải hiểu rằng sự tách biệt giữa các lớp và đối tượng trong một dự án và việc tổ chức cấu trúc mô-đun là độc lập hành động. Quá trình cô lập các lớp và đối tượng là một phần của quy trình thiết kế logic của một hệ thống và việc chia thành các mô-đun là một giai đoạn thiết kế vật lý. Tất nhiên, đôi khi không thể hoàn thành thiết kế logic của một hệ thống nếu không hoàn thành thiết kế vật lý và ngược lại. Hai quá trình này được thực hiện lặp đi lặp lại.

Hệ thống cấp bậc - đây là thứ tự trừu tượng, sự sắp xếp của chúng theo cấp độ.

Các loại cấu trúc phân cấp chính liên quan đến các hệ thống phức tạp là cấu trúc lớp (phân cấp "is-a") và cấu trúc đối tượng (phân cấp "một phần của").

Một thành phần quan trọng của hệ thống hướng đối tượng và kiểu phân cấp "is-a" chính là khái niệm kế thừa đã đề cập ở trên. Kế thừa có nghĩa là mối quan hệ giữa các lớp (mối quan hệ cha/con) trong đó một lớp mượn một phần cấu trúc hoặc chức năng của một hoặc nhiều lớp khác (tương ứng, đơnđa kế thừa). Nói cách khác, tính kế thừa tạo ra một hệ thống phân cấp trừu tượng trong đó các lớp con kế thừa cấu trúc của một hoặc nhiều lớp cha. Thông thường một lớp con xây dựng hoặc viết lại các thành phần của lớp cao hơn.

Trong khi hệ thống phân cấp "là một" xác định mối quan hệ khái quát hóa/chuyên biệt hóa, thì mối quan hệ "một phần của" giới thiệu hệ thống phân cấp tổng hợp. Trong hệ thống phân cấp "một phần của", một lớp có mức độ trừu tượng cao hơn bất kỳ lớp nào được sử dụng để triển khai nó.

Đánh máy là một cách để bảo vệ chống lại việc sử dụng các đối tượng của một lớp thay vì lớp khác, hoặc ít nhất là để kiểm soát việc sử dụng đó.

Sự song song - đây là đặc tính giúp phân biệt đối tượng chủ động với đối tượng thụ động.

Khả năng lưu trữ - khả năng của một vật thể tồn tại theo thời gian, tồn tại trong quá trình sinh ra nó và (hoặc) trong không gian, di chuyển từ không gian địa chỉ ban đầu của nó.

Với cách tiếp cận hướng đối tượng, việc phân tích các yêu cầu hệ thống phụ thuộc vào việc phát triển các mô hình của hệ thống này. Mô hình của một hệ thống (hoặc bất kỳ đối tượng hoặc hiện tượng nào khác) là một mô tả chính thức về hệ thống nhằm xác định các đối tượng chính tạo nên hệ thống và các mối quan hệ giữa các đối tượng này. Xây dựng mô hình là một cách phổ biến để nghiên cứu các đối tượng và hiện tượng phức tạp. Mô hình bỏ sót nhiều chi tiết gây khó hiểu. Mô hình hóa được phổ biến rộng rãi trong cả khoa học và công nghệ.

Mô hình trợ giúp:

Kiểm tra hiệu suất của hệ thống đang được phát triển ở giai đoạn đầu phát triển của nó;

Giao tiếp với khách hàng của hệ thống, làm rõ các yêu cầu của họ đối với hệ thống;

Thực hiện các thay đổi (nếu cần) đối với thiết kế hệ thống (cả khi bắt đầu thiết kế và ở các giai đoạn khác trong vòng đời của nó).

Hiện nay, có một số công nghệ phát triển các hệ thống phần mềm ứng dụng hướng đối tượng, dựa trên việc xây dựng và giải thích các mô hình của các hệ thống này trên máy tính. Dự án này sử dụng một trong số chúng - OMT (Kỹ thuật mô hình hóa đối tượng). Ngoài ra, một sơ đồ mô hình đối tượng đã được xây dựng trong UML.

Mô hình đối tượng mô tả cấu trúc của các đối tượng tạo nên hệ thống, các thuộc tính, hoạt động và mối quan hệ của chúng với các đối tượng khác. Mô hình đối tượng phải phản ánh các khái niệm và đối tượng của thế giới thực quan trọng đối với hệ thống đang được phát triển. Mô hình đối tượng trước hết phản ánh tính thực dụng của hệ thống đang được phát triển, được thể hiện ở việc sử dụng thuật ngữ miền ứng dụng gắn liền với việc sử dụng hệ thống đang được phát triển.

Xác định các lớp mô hình đối tượng

Việc phân tích các yêu cầu bên ngoài đối với hệ thống được thiết kế giúp xác định các đối tượng và lớp đối tượng liên quan đến bài toán ứng dụng mà hệ thống này phải giải quyết. Tất cả các lớp phải có ý nghĩa trong miền ứng dụng được đề cập; các lớp liên quan đến việc triển khai máy tính, chẳng hạn như danh sách, ngăn xếp, v.v. không nên dùng ở giai đoạn này.

Hãy bắt đầu bằng cách xác định các lớp có thể có từ một phát biểu bằng văn bản về một bài toán ứng dụng. Khi xác định các lớp có thể có, bạn nên cố gắng xác định càng nhiều lớp càng tốt, viết ra tên của từng lớp mà bạn nghĩ đến. Đặc biệt, mỗi danh từ xuất hiện trong câu mở đầu của bài toán có thể có một lớp tương ứng. Vì vậy, khi xác định các lớp có thể, mỗi danh từ như vậy thường được liên kết với một lớp có thể.

Kết quả là chúng ta nhận được danh sách các tên lớp có thể có sau đây:

Một proxy khác;

Tài liệu;

Máy chủ Web từ xa;

Cấu hình;

Thông tin về tài liệu;

Thông tin về máy chủ Web từ xa;

Tiêu đề yêu cầu;

Tiêu đề phản hồi.

Khi tạo bất kỳ dự án phần mềm nào, giai đoạn đầu tiên (và quan trọng nhất) luôn là thiết kế. Trong bất kỳ ngành kỹ thuật nào, thiết kế thường đề cập đến một số cách tiếp cận thống nhất mà qua đó chúng ta tìm cách giải quyết một vấn đề cụ thể, đảm bảo rằng nhiệm vụ được hoàn thành. Đằng sau giả định của Stroustrup: "Mục đích của thiết kế là xác định một cấu trúc bên trong rõ ràng và tương đối đơn giản, đôi khi được gọi là kiến ​​trúc... Thiết kế là sản phẩm cuối cùng của quá trình thiết kế." Sản phẩm thiết kế là những mô hình cho phép chúng tôi hiểu cấu trúc của hệ thống trong tương lai, cân bằng các yêu cầu và phác thảo kế hoạch triển khai.


Mô hình hóa được phổ biến rộng rãi trong tất cả các ngành kỹ thuật, phần lớn là do nó thực hiện các nguyên tắc phân rã, trừu tượng hóa và phân cấp. Mỗi mô hình mô tả một phần nhất định của hệ thống đang được xem xét và đến lượt chúng tôi xây dựng các mô hình mới dựa trên các mô hình cũ mà chúng tôi ít nhiều tin tưởng. Các mô hình cho phép chúng ta kiểm soát những thất bại của mình. Chúng tôi đánh giá hành vi của từng mô hình trong các tình huống bình thường và bất thường, sau đó thực hiện các điều chỉnh phù hợp nếu chúng tôi không hài lòng với điều gì đó.


Công nghệ hướng đối tượng dựa trên cái gọi là mô hình đối tượng. Các nguyên tắc chính của nó là: trừu tượng hóa, đóng gói, mô đun hóa, phân cấp, gõ, song song và kiên trì. Mỗi nguyên tắc này thực ra không mới, nhưng trong mô hình đối tượng, chúng lần đầu tiên được áp dụng cùng nhau. Bốn khái niệm đầu tiên là bắt buộc vì nếu không có chúng thì mô hình sẽ không hướng đối tượng. Những cái khác là tùy chọn, nghĩa là chúng hữu ích trong mô hình đối tượng nhưng không bắt buộc.

Lợi ích của mô hình đối tượng

Mô hình đối tượng về cơ bản khác với các mô hình liên quan đến các phương pháp phân tích, thiết kế và lập trình cấu trúc truyền thống hơn. Điều này không có nghĩa là mô hình đối tượng yêu cầu từ bỏ tất cả các phương pháp và kỹ thuật đã được tìm thấy trước đó và đã được thử nghiệm theo thời gian. Đúng hơn, nó giới thiệu một số yếu tố mới bổ sung vào trải nghiệm trước đó. Cách tiếp cận đối tượng cung cấp một số tiện ích đáng kể mà các mô hình khác không cung cấp. Quan trọng nhất, cách tiếp cận dựa trên đối tượng cho phép bạn tạo ra các hệ thống đáp ứng các đặc điểm của hệ thống phức tạp có cấu trúc tốt. Có năm lợi ích khác mà mô hình đối tượng mang lại.


1. Mô hình đối tượng cho phép bạn sử dụng đầy đủ khả năng biểu đạt của lập trình hướng đối tượng và đối tượng. Stroustrup lưu ý, "Không phải lúc nào cũng rõ ràng cách tận dụng tối đa lợi thế của một ngôn ngữ như C++. Có thể đạt được những cải thiện đáng kể về hiệu quả và chất lượng mã chỉ bằng cách sử dụng C++ như một 'C cải tiến' với các yếu tố trừu tượng hóa dữ liệu. Tuy nhiên, còn nhiều hơn thế nữa " Một tiến bộ đáng kể là việc đưa hệ thống phân cấp lớp vào quá trình thiết kế. Đây là cái được gọi là thiết kế hướng đối tượng và là nơi mà lợi ích của C++ được thể hiện rõ nhất." Kinh nghiệm đã chỉ ra rằng khi các ngôn ngữ như Smalltalk, Object Pascal, C++, CLOS và Ada được sử dụng bên ngoài mô hình đối tượng, các tính năng mạnh nhất của chúng sẽ bị bỏ qua hoặc áp dụng sai.
2. Việc sử dụng cách tiếp cận dựa trên đối tượng làm tăng đáng kể mức độ thống nhất trong quá trình phát triển và khả năng sử dụng lại không chỉ các chương trình mà còn cả các dự án, cuối cùng dẫn đến việc tạo ra một môi trường phát triển. Các hệ thống hướng đối tượng thường nhỏ gọn hơn các hệ thống tương đương không hướng đối tượng của chúng. Và điều này không chỉ có nghĩa là giảm khối lượng mã chương trình mà còn giảm chi phí của dự án do sử dụng các phát triển trước đó, giúp tăng chi phí và thời gian
3. Việc sử dụng mô hình đối tượng dẫn đến việc xây dựng các hệ thống dựa trên các mô tả trung gian ổn định, giúp đơn giản hóa quá trình thực hiện các thay đổi. Điều này mang lại cho hệ thống cơ hội phát triển dần dần và không dẫn đến việc phải làm lại hoàn toàn ngay cả trong trường hợp có những thay đổi đáng kể về các yêu cầu ban đầu.
4. Mô hình đối tượng làm giảm rủi ro khi phát triển các hệ thống phức tạp, chủ yếu là do quá trình tích hợp trải dài trong toàn bộ giai đoạn phát triển thay vì trở thành sự kiện một lần. cũng làm giảm mức độ rủi ro và tăng độ tin cậy vào tính đúng đắn của các quyết định được đưa ra.
5. Mô hình đối tượng hướng tới nhận thức của con người về thế giới, hay nói theo cách của Robson, "Nhiều người không biết máy tính hoạt động như thế nào sẽ thấy cách tiếp cận hướng đối tượng đối với các hệ thống là hoàn toàn tự nhiên."

Cơ sở khái niệm của cách tiếp cận hướng đối tượng là mô hình đối tượng. Các nguyên tắc chính của việc xây dựng nó là:

· trừu tượng;

· đóng gói;

· tính mô-đun;

· hệ thống cấp bậc.

Trừu tượng hóa là việc lựa chọn các đặc điểm quan trọng nhất, thiết yếu nhất của một số đối tượng, giúp phân biệt nó với tất cả các loại đối tượng khác và do đó xác định rõ ràng ranh giới khái niệm của nó từ quan điểm xem xét và phân tích sâu hơn, và bỏ qua những thứ ít quan trọng hơn hoặc không đáng kể. chi tiết.

Tính trừu tượng cho phép bạn quản lý độ phức tạp của hệ thống bằng cách tập trung vào các thuộc tính thiết yếu của đối tượng. Tính trừu tượng tập trung sự chú ý vào các tính năng bên ngoài của một đối tượng và cho phép bạn tách các tính năng quan trọng nhất về hành vi của nó khỏi các chi tiết triển khai chúng. Việc lựa chọn đúng tập hợp trừu tượng cho một miền vấn đề nhất định là thách thức chính của thiết kế hướng đối tượng. Tính trừu tượng phụ thuộc vào miền và quan điểm - điều quan trọng trong bối cảnh này có thể không quan trọng trong bối cảnh khác. Các đối tượng và các lớp là những khái niệm trừu tượng cơ bản của một miền.

Đóng gói là việc bản địa hóa vật lý các thuộc tính và hành vi trong một sự trừu tượng hóa duy nhất (được coi là "hộp đen"), ẩn việc triển khai chúng đằng sau một giao diện chung.

Đóng gói là quá trình tách biệt các phần tử riêng lẻ của một đối tượng xác định cấu trúc và hành vi của nó. Đóng gói dùng để tách biệt giao diện của một đối tượng, phản ánh hành vi bên ngoài của nó, khỏi việc triển khai bên trong của đối tượng. Cách tiếp cận đối tượng giả định rằng các tài nguyên của chính nó, chỉ có thể được thao tác bởi các hoạt động của chính đối tượng, được ẩn khỏi môi trường bên ngoài. Trừu tượng hóa và đóng gói là bổ sung cho nhau: sự trừu tượng hóa tập trung sự chú ý vào các tính năng bên ngoài của một đối tượng, trong khi việc đóng gói (hoặc hạn chế quyền truy cập) ngăn cản đối tượng người dùng nhận ra cấu trúc bên trong của đối tượng.

Đóng gói cũng tương tự như khái niệm che giấu thông tin. Đây là khả năng che giấu nhiều chi tiết của một vật thể với thế giới bên ngoài. Thế giới bên ngoài của một đối tượng là mọi thứ bên ngoài nó, bao gồm cả phần còn lại của hệ thống. Việc ẩn giấu thông tin mang lại lợi ích tương tự như việc đóng gói: tính linh hoạt.

Tính mô đun là một đặc tính của một hệ thống gắn liền với khả năng phân rã của nó thành một số hệ thống con (mô-đun) được liên kết chặt chẽ bên trong nhưng được liên kết với nhau yếu.

Tính mô đun làm giảm độ phức tạp của hệ thống bằng cách cho phép phát triển độc lập các mô đun riêng lẻ. Đóng gói và mô đun hóa tạo ra rào cản giữa sự trừu tượng hóa.

Hệ thống phân cấp là một hệ thống trừu tượng được xếp hạng hoặc sắp xếp, sự sắp xếp của chúng theo cấp độ.

Các loại cấu trúc phân cấp chính liên quan đến các hệ thống phức tạp là cấu trúc lớp (phân cấp theo danh pháp) và cấu trúc của các đối tượng (phân cấp theo thành phần). Ví dụ về hệ thống phân cấp lớp là sự kế thừa đơn giản và đa dạng (một lớp sử dụng một phần cấu trúc hoặc chức năng tương ứng của một hoặc nhiều lớp khác) và hệ thống phân cấp đối tượng là sự tổng hợp.

Các lớp có thể được tổ chức theo cấu trúc phân cấp, trông giống như sơ đồ phân loại trong logic khái niệm. Hệ thống phân cấp của các khái niệm được xây dựng như sau. Khái niệm hoặc phạm trù chung nhất được coi là khái niệm có khối lượng lớn nhất và theo đó, có nội dung nhỏ nhất. Đây là mức độ trừu tượng cao nhất của một hệ thống phân cấp nhất định. Sau đó, khái niệm chung này được xác định, nghĩa là khối lượng của nó giảm và nội dung của nó tăng lên. Một khái niệm ít tổng quát hơn xuất hiện, khái niệm này trong sơ đồ phân cấp sẽ nằm dưới khái niệm ban đầu một cấp. Quá trình cụ thể hóa các khái niệm này có thể được tiếp tục cho đến khi đạt được ở mức độ thấp nhất một khái niệm mà việc cụ thể hóa sâu hơn khái niệm đó trong một bối cảnh nhất định là không thể hoặc không thực tế.