CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 1. Tìm hiểu về phương pháp phân tích thiết kế hướng đối tượng 1. Ý tưởng Ý tưởng cơ bản của việc tiếp cận hướng đối tượng là phát triển một hệ thống bao gồm các đối tượng độc lập tương đối với nhau. Mỗi đối tượng bao hàm trong nó cả dữ liệu và các xử lý tiến hành trên các dữ liệu này được gọi là bao gói thông tin.
Ví dụ khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính thì ta có thể lắp chúng lại với nhau để tạo ra ứng dụng của mình. Cách tiếp cận hướng đối tượng Đểthựchiệnmột dự án phát triển phần mềm thì vấn đề quan trọng đầu tiên chắc sẽ là phải chọn cho được một cách thực hiện thích hợp dựa trên những yếu tố nêu trên. Có 2 cách tiếp cận cơ bản để phát triển phần mềm: cách tiếp cận hướng chức năng và cách tiếp cận hướng đối tượng. Cách tiếp cận hướng chức năng Đây là lối tiếp cận truyền thống của ngành công nghệ phần mềm.
Theo lối tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn. Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế ngân hàng dữ liệu để chứa những thông tin đó, cung cấp Forms để nhập thông tin và in báo cáo để trình bày các thông tin. Nói một cách khác, chúng ta tập trung vào thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và cách hoạt động (ứng xử) của hệ thống là ra sao. Đây là lối tiệm cận xoay quanh dữ liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời.
Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại có thể khiến phát sinh nhiều khó khăn. Một trong những thách thức lớn là yêu cầu đối với các hệ thống thường xuyên thay đổi. Một hệ thống xoay quanh dữ liệu có thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống. Nguyễn Thị Thu Thương - CT13CTT02 Trang3 Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó.
Với lối tiếp cận hướng đối tượng, chúng ta tập trung vào cả haimặt của vấn đề: thông tin vàcách hoạt động. Cách tiếp cận hướng đối tượng Hướngđối tượng là thuật ngữ thông dụng hiện thời của ngành công nghiệp phần mềm. Các công ty đang nhanh chóng tìm cách áp dụng và tích hợp công nghệ mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện thời đều mang tính hướng đối tượng.
Nhưng hướng đối tượng có nghĩa là gì? Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối á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 lối tiếp cận này, chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng tương đối độc lập với nhau. Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các đối tượng đó lại với nhau. Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ.
Bước đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây dựng căn bản của mình. Một khi đã có các khối xây dựng đó, bạn có thể chắp ráp chúng lại với nhau để tạo lâu đài. Tương tự như vậy một khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chắp chúng lại với nhau để tạo ứng dụng của mình. Xin lấy một ví dụ đơn giản: vấn đề rút tiền mặt tại nhà băng.
Các “mẫu gỗ“ thành phần ở đây sẽ là ánh xạ của các đối tượng ngoài đời thực như tài khoản, nhân viên, khách hàng, …Và ứng dụng sẽ được sẽ được nhận diện cũng như giải đáp xoay quanh các đối tượng đó. Ưu điểm chính của mô hình hướng đối tượng Đối tượng là cơ sở để kết hợp các đơn thể có thể sử dụng lại thành hệ thống lớn hơn, tạo ra sản phẩm có chất lượng cao nhờ tương tác thông qua việc nhận và gửi các thông báo. Qui ước truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các giao diện giữa các đối tượng thành phần bên trong hệ thống và những hệ thống bên ngoài trở nên dễ dàng hơn. Điều đó giúp cho việc phân chia những dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ bài toán thành các lớp đối tượng hoàn toàn tương ứng với quan điểm hướng tới lời giải phù hợp với thế giới thực một cách tự nhiên.
Nguyễn Thị Thu Thương - CT13CTT02 Trang4 Nguyên lý bao gói, che dấu thông tin hỗ trợ cho việc xây dựng những hệ thống thông tin an toàn,việc sửa đổi một đối tượng không gây ảnh hưởng lan truyền sang đối tượng khác. Việc phân tích và thiết kế theo cách phân bài toán thành các đối tượng là hướng tới lời giải của thế giới thực. Các đối tượng có thể sử dụng lại được do tính kế thừa của đối tượng cho phép xác định các modul và sử dụng ngay sau khi chúng chưa thực hiện đầy đủ các chức năng và sau đó mở rộng các đơn thể đó mà không ảnh hưởng tới các đơn thể đã có. Xây dựng hệ thống thành các thành phần khác nhau.
Mỗi thành phần được xây dựng độc lập và sau đó ghép chúng lại với nhau đảm bảo có được đầy đủ các thông tin giao dịch. Việc phát triển và bảo trì hệ thống đơn giản hơn rất nhiều do có sự phân hoạch rõ ràng, là kết quả của sự bao gói thông tin và sự kết hợp giữa các đối tượng thông qua giao diện, việc sử dụng lại các thành phần đảm bảo độ tin cậy cao của hệ thống. Cho phép áp dụng các phương pháp phát triển, thiết kế và cài đặt trong quá trình phát triển phần mềm trong một giai đoạn ngắn. Quá trình phát triển phần mềm đồng thời là quá trình cộng tác của người dùng/ khách hàng, nhà phân tích, nhà thiết kế, nhà phát triển, chuyên gia lĩnh vực, chuyên gia kỹ thuật,.
nên lối tiếp cận này khiến cho việc giao tiếp giữa họ với nhau được dễ dàng hơn. Một trong những ưu điểm quan trọng bậc nhất của phương pháp phân tích và thiết kế hướng đối tượng là tính tái sử dụng: bạn có thể tạo các thành phần( đối tượng) một lần và dùng chúng nhiều lần sau đó, nên khả năng tái sử dụng có tác dụng giảm thiểu lỗi và các khó khăn trong việc bảo trì, giúp tăng tốc độ thiết kế và phát triển phần mềm. Xóa bỏ được hố ngăn cách giữa các pha phân tích, thiết kế và cài đặt trong quá trình xây dựng phần mềm. Phương pháp hướng đối tượng giúp chúng ta xử lý các vấn đề phức tạp trong phát triển phần mềm và tạo ra các thế hệ phần mềm có quy mô lớn, có khả năng thích ứng và bền vững.
Nguyễn Thị Thu Thương - CT13CTT02 Trang5 1. Các giai đoạn của chu trình phát triển phần mềm hướng đối tượng 1. Phân tích hướng đối tượng(Object Oriented Analynis – OOA) Là giai đoạn phát triển của một mô hình chính xác và xúc tích của vấn đề, có thành phần là các đối tượng khái niệm đời thực, dễ hiểu đối với người sử dụng. Thiết kế hướng đối tượng(Object Oriented Design – OOD) Là giai đoạn tổ chức chương trình thành các tập đối tượng cộng tác với nhau, mỗi đối tượng trong đó là một lớp.
Các lớp là thành viên tạo thành một cây cấu trúc với mối quan hệ thừa kế hay tương tác bằng thông báo. Lập trình hướng đối tượng(Object Oriented Programming – OOP) Giai đoạn xây dựng phần mềm có thể được thực hiện kỹ thuật lập trình hướng đối tượng. Đó là phương pháp thực hiện việc chuyển các thiết kế hướng đối tượng thành chương trình bằng việc sử dụng ngôn ngữ lập trình có hỗ trợ các tính năng có thể chạy được, nó chỉ được đưa vào sử dụng sau khi đã trải qua nhiều vòng quay của nhiều bước thử nghiệm khác nhau. Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng Đặc điểm của phân tích và thiết kế hướng đối tượng là nhìn nhận hệ thống như một tập các đối tượng tương tác với nhau để tạo ra một hành động cho một kết quả ở mức cao hơn.
Để thực hiện được điều này, người ta phải sử dụng hệ thống mô hình các đối tượng với các đặc trưng cơ bản sau: - Tính trừu tượng hóa cao - Tính bao gói thông tin - Tính modul hóa - Tính kế thừa Ngày nay, UML là một công cụ được thiết kế có tất cả những tính chất và điều kiện giúp chúng ta xây dựng được các mô hình đối tượng có được bốn đặc trưng trên. Quá trình phát triển gồm nhiều bước lặp, mà mỗi bước lặp bao gồm: Xác định yêu cầu của hệ thống, phân tích, thiết kế, triển khai và kiểm thử. Nguyễn Thị Thu Thương - CT13CTT02 Trang6 1. Phân tích thiết kế hướng đối tượng với UML Phân tích thiết kế một hệ thống theo phương pháp hướng đối tượng sử dụng công cụ UML bao gồm các giai đoạn sau: 1.
Lập mô hình nghiệp vụ Để có thể nắm bắt được yêu cầu hệ thống, trước hết ta phải hiểu và nắm được hệ thống nghiệp vụ. Việc mô tả các yêu cầu của hệ thống nghiệp vụ đủ tốt là rất cần thiết, để ta hiểu đúng và đầy đủ về hệ thống mà ta cần tin học hóa về mặt nghiệp vụ. Muốn vậy, trước hết phải xác định chức năng, phạm vi hệ thống thực hiện và chỉ ra mối quan hệ của chúng với môi trường. Tiếp theo tìm các ca sử dụng nghiệp vụ từ các chức năng của hệ thống mà qua đó con người và các hệ thống khách sử dụng chúng.
Xác định yêu cầu của hệ thống Nhiệm vụ chính trong xác định yêu cầu là phát triển một mô hình của hệ thống cần xây dựng bằng cách dùng các ca sử dụng. Để mô tả các yêu cầu nghiệp vụ dưới góc độ phát triển phần mềm cần tìm các tác nhân và các ca sử dụng để chuẩn bị một phiên bản đầu tiên của mô hình ca sử dụng. Phân tích Nhiệm vụ chính là cần phân tích ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên trong của hệ thống để thực hiện mỗi ca sử dụng.