Results (
Vietnamese) 2:
[Copy]Copied!
Có hai cách nhìn mỗi sản phẩm phần mềm. Một cách là để xem xét chỉ là dữ liệu, bao gồm cả các biến địa phương và toàn cầu, lập luận, cấu trúc dữ liệu động, và fi les. Một cách khác để xem một sản phẩm là để xem xét chỉ các hoạt động thực hiện trên dữ liệu, có nghĩa là, các thủ tục và các chức năng. Trong điều kiện của bộ phận này của phần mềm vào dữ liệu và các hoạt động, các kỹ thuật cổ điển chủ yếu rơi vào hai nhóm. Kỹ thuật hoạt động theo định hướng chủ yếu xem xét các hoạt động của sản phẩm. Các dữ liệu có tầm quan trọng thứ yếu, chỉ xem xét sau khi các hoạt động của sản phẩm đã được phân tích theo chiều sâu. Ngược lại, các kỹ thuật định hướng dữ liệu nhấn mạnh các dữ liệu của sản phẩm; các hoạt động được kiểm tra chỉ trong khuôn khổ của các dữ liệu.
Một điểm yếu cơ bản của cả hai phương pháp tiếp cận dữ liệu và hoạt động theo định hướng là dữ liệu và hoạt động là hai mặt của cùng một đồng tiền; một mục dữ liệu không thể thay đổi trừ khi một hoạt động được thực hiện trên nó, và các hoạt động mà không có dữ liệu liên quan là như nhau vô nghĩa. Vì vậy, kỹ thuật này đem lại cho cân bằng với dữ liệu và các hoạt động cần thiết. Nó không phải là một bất ngờ rằng các kỹ thuật hướng đối tượng làm điều này. Sau khi tất cả, một đối tượng bao gồm cả dữ liệu và các hoạt động. Nhớ lại rằng một đối tượng là một thể hiện của một kiểu dữ liệu trừu tượng (chính xác hơn, của một lớp). Do đó nó kết hợp cả dữ liệu và các hoạt động thực hiện trên những dữ liệu, và các dữ liệu và các hoạt động có mặt trong các đối tượng như các đối tác bình đẳng. Tương tự như vậy, trong tất cả các kỹ thuật, dữ liệu hướng đối tượng và các hoạt động được coi là có tầm quan trọng như nhau; không được ưu tiên hơn người khác.
Đó là không chính xác để khẳng định rằng dữ liệu và các hoạt động được xem xét đồng thời trong các kỹ thuật của mô hình hướng đối tượng. Từ các nguyên liệu trên theo từng bước Refi nement (mục 5.1), nó là rõ ràng rằng đôi khi dữ liệu cần phải được nhấn mạnh và lần khác là hoạt động quan trọng hơn. Nhìn chung, tuy nhiên, dữ liệu và các hoạt động được cho tầm quan trọng như nhau trong các quy trình công việc của mô hình hướng đối tượng.
Nhiều lý do được nêu trong Chương 1 và chương này là tại sao các mô hình hướng đối tượng là cấp trên để các mô hình cổ điển. Nằm dưới tất cả những lý do này là một đối tượng welldesigned, đó là, một đối tượng với sự gắn kết cao và thấp khớp nối, mô hình tất cả các khía cạnh của một thực thể vật lý. Đó là, có một bản đồ rõ ràng giữa một thực thể trong thế giới thực và các đối tượng mà mô hình đó.
Các chi tiết về cách thức này được thực hiện là ẩn; các thông tin liên lạc chỉ với một đối tượng là thông qua tin nhắn gửi đến đối tượng đó. Kết quả là, các đối tượng chủ yếu là các đơn vị độc lập với một giao diện được xác định rõ. Do đó, họ có thể được duy trì một cách dễ dàng và an toàn; cơ hội của một lỗi hồi quy được giảm. Hơn nữa, như sẽ được giải thích trong Chương 8, các đối tượng được tái sử dụng, tái sử dụng và điều này được tăng cường bởi các tài sản thừa kế. Quay sang phát triển bằng cách sử dụng các đối tượng, nó là an toàn hơn để xây dựng một sản phẩm quy mô lớn bằng cách kết hợp các khối xây dựng cơ bản của phần mềm hơn để sử dụng các mô hình cổ điển. Bởi vì đối tượng chủ yếu là các thành phần độc lập của một sản phẩm, phát triển sản phẩm, cũng như quản lý của sự phát triển đó, là dễ dàng hơn và do đó ít có khả năng gây ra lỗi.
Tất cả những khía cạnh của tính ưu việt của mô hình hướng đối tượng ra một câu hỏi: Nếu các mô hình cổ điển như vậy là kém hơn so với các mô hình hướng đối tượng, tại sao các mô hình cổ điển được rất nhiều thành công? Điều này có thể được giải thích bằng cách nhận thức rằng các mô hình cổ điển được thông qua tại một thời điểm kỹ thuật phần mềm chưa được thực hiện rộng rãi. Thay vào đó, phần mềm đã được chỉ đơn giản là "viết". Đối với các nhà quản lý, điều quan trọng nhất là cho các lập trình viên phải tung ra những dòng mã. Ít dịch vụ hơn môi đã được trả cho các yêu cầu và phân tích (phân tích hệ thống) của một sản phẩm, và thiết kế gần như không bao giờ thực hiện. Các mô hình mã và sửa chữa (mục 2.9.1) là điển hình của các kỹ thuật của những năm 1970. Vì vậy, việc sử dụng các mô hình cổ điển tiếp xúc với phần lớn các nhà phát triển phần mềm để có phương pháp kỹ thuật lần đầu tiên. Thắc mắc nhỏ, sau đó, cái gọi là kỹ thuật cấu trúc của mô hình cổ điển dẫn đến những cải tiến lớn trong ngành công nghiệp phần mềm trên toàn thế giới. Tuy nhiên, như các sản phẩm phần mềm đã tăng trưởng về kích thước, bất cập của các kỹ thuật cấu trúc bắt đầu trở nên rõ ràng, và các mô hình hướng đối tượng đã được đề xuất như là một tốt hơn
thay thế.
Điều này, đến lượt nó, dẫn đến một câu hỏi: Làm thế nào để chúng ta biết chắc chắn rằng mô objectoriented là vượt trội so với tất cả các kỹ thuật ngày nay khác? Không có số liệu chứng minh hơn tất cả mọi nghi ngờ rằng công nghệ hướng đối tượng là tốt hơn so với bất cứ điều gì khác hiện có, và thật khó để tưởng tượng làm thế nào dữ liệu đó có thể thu được. Điều tốt nhất chúng tôi có thể làm là dựa trên kinh nghiệm của các tổ chức đã áp dụng mô hình hướng đối tượng. Mặc dù không phải tất cả các báo cáo được thuận lợi, đa số (nếu không phải là đa số) chứng thực rằng bằng cách sử dụng mô hình hướng đối tượng là một quyết định khôn ngoan.
Ví dụ, IBM đã đưa tin về ba dự án hoàn toàn khác nhau đã được phát triển bằng cách sử dụng công nghệ hướng đối tượng [C apper, C olgate, H unter, và J ames, 1994]. Trong hầu hết mọi khía cạnh, các mô hình hướng đối tượng rất vượt trội so với mô hình cổ điển. Cụ thể, đã có giảm lớn trong số các lỗi được phát hiện, yêu cầu thay đổi rất ít trong thời gian cả hai phát triển và bảo trì postdelivery đó không là kết quả của những thay đổi kinh doanh không lường trước được, và signifi tăng cant trong cả thích ứng và hoàn bị m aintainability. Cũng cải thiện khả năng sử dụng được tìm thấy, mặc dù không lớn như bốn cải tiến trước đó, và không có sự khác biệt có ý nghĩa trong hoạt động.
Một cuộc khảo sát của hơn 150 nhà phát triển phần mềm Mỹ đã được thực hiện để xác định thái độ của họ đối với các mô hình hướng đối tượng [Johnson, 2000]. Các mẫu bao gồm 96 nhà phát triển đã sử dụng các mô hình hướng đối tượng và 54 người vẫn còn sử dụng các mô hình cổ điển để phát triển phần mềm. Cả hai nhóm đều cảm thấy rằng các mô hình hướng đối tượng là cấp trên, mặc dù thái độ tích cực của các nhóm đối tượng là đáng signifi mạnh. Cả hai nhóm cơ bản giảm giá các điểm yếu khác nhau về mô hình hướng đối tượng.
Mặc dù có nhiều ưu điểm của mô hình hướng đối tượng, một số khó khăn và các vấn đề thực sự đã được báo cáo. Một vấn đề thường xuyên báo cáo liên quan đến nỗ lực phát triển và kích thước. Lần đầu tiên bất cứ điều gì mới được thực hiện, nó mất nhiều thời gian hơn vào những dịp tiếp theo; thời kỳ đầu này đôi khi được gọi là các đường cong học tập. Nhưng khi các mô hình hướng đối tượng được sử dụng lần đầu tiên kinh bởi một tổ chức, nó thường mất nhiều thời gian hơn dự kiến, thậm chí cho phép cho các đường cong học tập, bởi vì kích thước của sản phẩm là lớn hơn khi các kỹ thuật cấu trúc được sử dụng. Điều này đặc biệt đáng chú ý khi những sản phẩm có một giao diện người dùng đồ họa (GUI) (xem Phần 10,14). Sau đó, mọi sự cải thiện đáng kể. Đầu tiên, chi phí bảo trì postdelivery thấp hơn, giảm chi phí đời tổng thể của sản phẩm. Thứ hai, thời gian tiếp theo mà một sản phẩm mới được phát triển, một số các lớp học từ các dự án trước đây thường có thể được tái sử dụng, tiếp tục giảm chi phí phần mềm. Điều này đã không thể đặc biệt là signifi khi một giao diện đã được sử dụng lần đầu tiên kinh; nhiều nỗ lực đó đã đi vào GUI có thể được hoàn lại trong các sản phẩm tiếp theo. Các vấn đề về thừa kế là khó khăn hơn để giải quyết.
1. Một lý do chính để sử dụng thừa kế là tạo ra một lớp con mới hơi khác từ lớp cha của nó không ảnh hưởng tới lớp cha hay bất kỳ lớp tổ tiên khác trong hệ thống phân cấp thừa kế. Ngược lại, tuy nhiên, một khi sản phẩm đã được thực hiện, bất kỳ thay đổi để một lớp học hiện trực tiếp ảnh hưởng đến tất cả các hậu duệ của nó trong hệ thống phân cấp thừa kế; này thường được gọi là các vấn đề lớp cơ sở mong manh. Ít nhất, các đơn vị bị ảnh hưởng phải được biên dịch lại. Trong một số trường hợp, các phương pháp của các đối tượng có liên quan (sự khởi tạo của lớp con bị ảnh hưởng) phải được mã hóa lại; điều này có thể là một nhiệm vụ không tầm thường. Để giảm thiểu vấn đề này, điều quan trọng là tất cả các lớp học được thiết kế tỉ mỉ trong quá trình phát triển. Điều này sẽ làm giảm hiệu ứng gợn sóng gây ra bởi một sự thay đổi đến một lớp học hiện có.
2. Vấn đề thứ hai có thể là kết quả từ việc sử dụng ung dung của thừa kế. Trừ khi ngăn chặn một cách rõ ràng, một lớp con thừa hưởng tất cả các thuộc tính của lớp cha của nó (es). Thông thường, lớp con có thuộc tính bổ sung của riêng mình. Như một hệ quả, các đối tượng thấp hơn trong hệ thống phân cấp thừa kế có thể nhanh chóng có được lớn, với kết quả là vấn đề lưu trữ [Bruegge, Blythe, Jackson, và Shufelt, 1992]. Một cách để ngăn chặn điều này là để thay đổi câu châm ngôn "sử dụng thừa kế bất cứ nơi nào có thể" để "sử dụng thừa kế bất cứ nơi nào thích hợp." Ngoài ra, nếu một lớp hậu duệ không cần một thuộc tính của một tổ tiên, sau đó thuộc tính đó sẽ bị loại trừ một cách rõ ràng.
3. Nhóm thứ ba của vấn đề xuất phát từ tính đa hình và năng động ràng buộc. Chúng được mô tả trong Phần 7.8.
4. Thứ tư, nó có thể viết mã xấu trong bất kỳ ngôn ngữ. Tuy nhiên, nó là dễ dàng hơn để viết mã xấu trong một ngôn ngữ hướng đối tượng hơn trong một ngôn ngữ cổ điển bởi vì ngôn ngữ hướng đối tượng hỗ trợ một loạt các cấu trúc đó, khi sử dụng sai, thêm phức tạp không cần thiết cho một sản phẩm phần mềm. . Do đó, khi sử dụng các mô hình objectoriented, thêm chăm sóc cần được thực hiện để đảm bảo rằng mã luôn luôn có chất lượng cao nhất là
Một câu hỏi cuối cùng là thế này: Một ngày nào đó có thể có được một cái gì đó tốt hơn so với các mô hình objectoriented? Đó là, trong tương lai sẽ là một công nghệ mới xuất hiện trong không gian phía trên mũi tên trên cùng trong Hình 7.28? Ngay cả những người ủng hộ mạnh mẽ của nó không cho rằng mô hình objectoriented là câu trả lời cuối cùng cho tất cả các vấn đề kỹ thuật phần mềm. Hơn nữa, các kỹ sư phần mềm ngày nay đang tìm kiếm vượt ra ngoài các đối tượng đến bước đột phá lớn tiếp theo.
Being translated, please wait..