Phát triển phần mềm hƣớng đối tƣợng

Một phần của tài liệu Sử dụng lại theo hướng tiếp cận miền ứng dụng và vận dụng trong phát triển phần mềm hướng đối tượng (Trang 25)

Trong phỏt triển phần mềm hƣớng chức năng, dữ liệu và tiến trỡnh hoàn toàn tỏch biệt nờn khú sử dụng lại. Trong phỏt triển phần mềm hƣớng đối tƣợng. Các đối tƣợng đóng gói tiến trỡnh và dữ liệu. Các đối tƣợng đƣợc thiết kế tốt thƣờng độc lập với khung cảnh nờn dễ dàng sử dụng lại trong cỏc khung cảnh khỏc.

Mụ hỡnh hƣớng đối tƣợng đƣợc sử dụng lần đầu tiờn ở một tổ chức, thƣờng mất nhiều thời gian hơn so với dự kiến. Tuy nhiên sau đó mọi thứ phỏt triển rất nhanh. Đầu tiờn là chi phớ cho bảo trỡ giảm, do đó sẽ giảm chi phớ cho vũng đời sản phẩm. Thứ hai, trong thời gian tiếp theo khi một sản phẩm mới đƣợc phỏt triển, một số lớp từ dự án trƣớc cú thể đƣợc sử dụng lại, do đó giảm chi phớ cho phần mềm.

Thừa kế cũng là một trƣờng hợp sử dụng lại hiệu quả trong phỏt triển hƣớng đối tƣợng. Tuy nhiờn cú vấn đề là khi một sản phẩm đƣợc cài đặt thỡ bất kỳ sự thay đổi nào đối với một lớp đang tồn tại thỡ đều ảnh hƣởng trực tiếp tới tất cả cỏc hậu

duệ trong lƣợc đồ phân cấp thừa kế. Tối thiểu thỡ cỏc phần tử bị ảnh hƣởng sẽ phải biờn dịch lại. Trong một số trƣờng hợp, các phƣơng thức của cỏc đối tƣợng liờn quan (cỏc thể hiện của lớp con bị ảnh hƣởng) cần phải viết lại mó; đây có thể là một nhiệm vụ khụng nhỏ. Để giảm thiểu vấn đề này thỡ điều quan trọng là tất cả cỏc lớp đều phải đƣợc thiết kế một cỏch cẩn thận trong tiến trỡnh phỏt triển.Vấn đề thứ hai nảy sinh khi sử dụng quan hệ thừa kế: trừ khi đƣợc ngăn chặn, một lớp con thừa kế tất cả cỏc thuộc tớnh của lớp cha của nú và cú thờm cỏc thuộc tớnh riờng của nó, do đó, các đối tƣợng ở mức thấp hơn trong phân cấp thừa kế thỡ cú thể lớn hơn các lớp ở mức trờn, gõy ra vấn đề về lƣu trữ. Một cách để ngăn ngừa vấn đề này là thay đổi từ thừa kế ở bất kỳ nơi nào có thể bằng thừa kế ở bất kỳ nơi nào phù hợp. Thêm vào đó, nếu một lớp con khụng cần một thuộc tớnh của lớp cha thỡ khụng nờn thừa kế thuộc tính đó.

Mặc dự cú những vấn đề nhƣ nêu ở trên, không ít các báo cáo đó núi về lợi ớch của việc sử dụng cỏc cụng nghệ hƣớng đối tƣợng. Thêm vào đó, có rất nhiều nghiờn cứu đó mụ tả cỏc dự án thành công đƣợc thực hiện sử dụng mụ hỡnh hƣớng đối tƣợng. Đặc biệt, trong những năm gần đây, ngôn ngữ mụ hỡnh húa thống nhất đó hoàn thiện, giỳp cho cỏc hệ thống phần mềm cú cấu trỳc thống nhất, cỏc tài liệu đặc tả hệ thống đƣợc biểu diễn bằng cỏc ký phỏp trực quan, do đó, làm tăng khả năng và phạm vi sử dụng lại. Ngoài ra, phải kể đến cỏc cụng cụ biểu diễn đặc tả hệ thống hƣớng đối tƣợng ngày nay nhƣ Rational Rose, GD Pro,.. hỗ trợ dịch xuụi và dịch ngƣợc với nhiều ngụn ngữ lập trỡnh hƣớng đối tƣợng khỏc nhau, nhờ đó làm tăng khả năng và tính hiệu quả của sử dụng lại. Cú thể núi mụ hỡnh hƣớng đối tƣợng hiện nay là tiến trỡnh phỏt triển phự hợp và làm tăng đáng kể khả năng sử dụng lại so với các phƣơng pháp truyền t hống.

1.9.2. Phỏt triển phần mềm dựa trờn thành phần

Một thành phần phần mềm (software component) là một đơn vị kết hợp của cỏc giao diện và cỏc phụ thuộc khung cảnh rừ ràng. Nú cú thể đƣợc bố trớ một cách độc lập và cung cấp cỏc dịch vụ độc lập.

Hƣớng tiếp cận dựa trờn thành phần là hƣớng tiếp cận mà trong đó, một hệ thống là sự kết hợp của nhiều thành phần khỏc nhau, cỏc thành phần đƣợc sử dụng lại nhiều lần trong cỏc ứng dụng.

Với cỏch tiếp cận là phỏt triển phần mềm hƣớng đối tƣợng, cỏc lớp đối tƣợng đơn quá chi tiết và quỏ cụ thể. Vỡ ngoài việc làm cho chƣơng trỡnh cồng kềnh cũn vấn đề phải xem xét đến đó là các đối tƣợng phụ thuộc vào biờn dịch và ngụn ngữ lập trỡnh sử dụng.

Cỏc thành phần trừu tƣợng hơn các lớp đối tƣợng, nú là một nhóm các đối tƣợng tƣơng tác và có thể đƣợc xem nhƣ một nhà cung cấp dịch vụ độc lập. Tất cả các tƣơng tác đƣợc thể hiện trờn giao diện, mó nguồn là ẩn hoàn toàn. Khi một hệ thống cần một dịch vụ, nú chỉ việc gọi thành phần cung cấp dịch vụ đó mà không quan tâm đến việc biờn dịch và ngụn ngữ lập trỡnh đƣợc sử dụng để phỏt triển thành phần. Một thành phần thỡ cú thể đƣợc sử dụng lại ở nhiều hệ thống.

Theo cỏch tiếp cận này, tiến trỡnh phỏt triển phần mềm gồm các bƣớc nhƣ sau:

Đầu tiờn, nhà thiết kế hệ thống hoàn thiện một thiết kế mức cao, sau đó tiến hành đặc tả cỏc thành phần của thiết kế đó. Các đặc tả này đƣợc sử dụng để tỡm ra cỏc thành phần để sử dụng lại. Cỏc thành phần này cú thể đƣợc kết hợp ở mức kiến trỳc hoặc ở mức thiết kế chi tiết hơn [43].

Thiết kế kiến trỳc hệ thống Đặc tả các thành phần Tỡm kiếm cỏc thành phần sử dụng lại Tớch hợp cỏc thành phần Hỡnh 1-1. Phỏt triển phần mềm dựa trờn thành phần

1.9.3. Phát triển phần mềm hƣớng sử dụng lại

Trong phỏt triển phần mềm dựa trờn thành phần, cỏc thành phần cú thể đƣợc thay đổi để thỏa món yờu cầu của hệ thống mới. Ngƣợc lại, trong phỏt triển hƣớng sử dụng lại, cỏc yờu cầu hệ thống đƣợc sửa theo cỏc thành phần sử dụng lại.

Tiến trỡnh sử dụng lại theo hƣớng này nhƣ sau: Đầu tiờn cần xác định cỏc yờu cầu hệ thống, sau đó tiến hành tỡm kiếm cỏc thành phần sử dụng lại. Khi nắm bắt đƣợc cỏc thành phần thỡ tiến hành sửa cỏc yờu cầu hệ thống theo cỏc thành phần này. Cuối cùng là đặc tả cỏc thành phần hệ thống dựa trờn cỏc thành phần sử dụng lại này. Theo hƣớng này, cỏc yờu cầu cú thể phải đƣợc thoả hiệp lại. Thiết kế cú thể kộm hiệu quả hơn là thiết kế với mục đích cụ thể. Tuy nhiờn, chi phớ phỏt triển thấp và tớnh tin cậy của hệ thống tăng sẽ đền bự cho hạn chế này.

1.9.4. Mẫu thiết kế

Sử dụng lại thành phần bị ràng buộc bởi cỏc quyết định thiết kế mà các nhà cài đặt thực hiện, từ cỏc thuật toán đƣợc sử dụng đến các đối tƣợng và cỏc kiểu trong giao diện. Nếu cỏc quyết định thiết kế mà xung đột với cỏc cỏc yờu cầu cụ thể thỡ

Xác định các yêu cầu hệ thống Tỡm kiếm cỏc thành phần sử dụng lại Sửa cỏc yờu cầu theo cỏc thành phần tỡm được Thiết kế kiến trỳc Tỡm kiếm cỏc thành phần sử dụng lại Đặc tả các thành phần hệ thống dựa trên các thành phần sử dung lại Hỡnh 1-2. Phỏt triển phần mềm hướng sử dụng lại

sử dụng lại thành phần khụng hiệu quả hoặc khụng thể đƣợc sử dụng lại cho hệ thống mới.

Một cỏch tiếp cận khỏc hiệu quả hơn trong trƣờng hợp này đó là mẫu thiết kế. Với cỏch tiếp cận là mẫu thiết kế, ta sử dụng lại cỏc thiết kế trừu tƣợng hơn mà không chứa cỏc chi tiết cài đặt cụ thể. Vớ dụ, cỏc thuật toán cơ sở, cỏc cấu trỳc dữ liệu nhƣ stack, tree, list, các mẫu thiết kế.

Mẫu là một mụ tả của vấn đề và phần cốt lừi của giải phỏp. Giải phỏp này cú thể sử dụng lại hàng triệu lần trong cỏc khung cảnh khỏc nhau. Mẫu khụng phải là một đặc tả chi tiết, nú là một giải phỏp tốt cho một vấn đề chung.

Vớ dụ về mẫu Expert, mẫu đơn giản nhất nhƣng đƣợc sử dụng nhiều nhất.

Tờn mẫu Expert

Vấn đề Nguyờn tắc nào là cơ bản nhất để gỏn trỏch nhiệm cho các đối tƣợng.

Giải phỏp Gỏn trỏch nhiệm cho một lớp cú thụng tin cần để thực hiện trỏch nhiệm đó.

Ta cú sử dụng lại mẫu ở hai mức: - Sử dụng lại giải phỏp của mẫu - Sử dụng lại mó nguồn đi kèm mẫu.

Nếu chỳng ta phõn tớch tốt thỡ đến giai đoạn thiết kế ta chỉ cần ghộp cỏc mẫu với nhau để tạo nờn mụ hỡnh thiết kế của hệ thống và tớch hợp các module đi kèm với cỏc mẫu để tạo cỏc sản phẩm phẩm mềm cú chất lƣợng mà lại tốn rất ớt thời gian và cụng sức.

1.9.5. Bộ phỏt sinh

Theo cỏch tiếp cận này, tri thức sử dụng lại đƣợc nắm bắt trong một hệ thống phát sinh chƣơng trỡnh, hệ thống này cú thể đƣợc lập trỡnh bằng một ngụn ngữ hƣớng miền. Cỏc mụ tả ứng dụng đặc tả cỏc thành phần sử dụng lại nào đƣợc sử

dụng, chúng đƣợc kết nối với nhau nhƣ thế nào. Sử dụng cỏc thụng tin này, mộ t hệ thống phần mềm sẽ đƣợc phỏt sinh.

Vớ dụ:

Bộ phỏt sinh ứng dụng cho xử lý dữ liệu nghiệp vụ: Đầu vào của bộ này cú thể là một tƣơng tác hoàn chỉnh, ở đó ngƣời dùng định nghĩa màn hỡnh hiển thị và các hành động xử lý. Đầu ra của chỳng là một chƣơng trỡ nh đƣợc viết bằng một ngụn ngữ nhƣ COBOL hay SQL.

Bộ sinh mó trong cỏc cụng cụ Case nhƣ là Rational Rose hay Designer 2000: Đầu vào là thiết kế, đầu ra là một chƣơng trỡnh cài đặt hệ thống đƣợc thiết kế.

Cỏc bộ phỏt sinh ứng dụng cho cỏc hệ thống nghiệp vụ rất thành cụng bởi vỡ nhiều ứng dụng xử lý dữ liệu đũi hỏi thụng tin trừu tƣợng từ một cơ sở dữ liệu, thực hiện một số việc xử lý thông tin đơn giản và đƣa ra các báo cáo từ thông tin đó. Bộ phỏt sinh này bao gồm cú cỏc ngụn ngữ điều khiển cho phộp cỏc thành phần này đƣợc kết hợp thành chƣơng trỡnh. Trong trƣờng hợp này, một ứng dụng hoàn chỉnh cú thể đƣợc phỏt sinh.

1.9.6. Miền ứng dụng

Sử dụng lại theo cỏch tiếp cận miền ứng dụng dựa trờn phần cỗi lừi chung của mỗi miền, phần cốt lừi này cú đƣợc từ quỏ trỡnh phõn tớch miền, đó chính là các mô hỡnh miền và tất cả cỏc tài sản sử dụng lại khỏc trong miền. Phần cốt lừi chung này đƣợc sử dụng lại trong mỗi lần xõy dựng một hệ thống mới trong miền và cỏc chế tỏc của quỏ trỡnh xõy dựng hệ thống trƣớc cú thể đƣợc sử dụng lại để xõy dựng hệ thống sau.

1.10. Kết luận

Trên đây, chúng tôi đó trỡnh bày cỏc vấn đề cơ bản về sử dụng lại trong phỏt triển phần mềm, gồm cú: khỏi niệm sử dụng lại, quỏ trỡnh tiến húa của sử dụng lại,

vai trũ và tầm quan trọng của nú, cỏc hoạt động cụ thể cần thực hiện khi đƣa sử dụng lại vào tiến trỡnh phỏt triển phần mềm, các khó khăn cũng nhƣ thuận lợi và các hƣớng tiếp cận khác nhau để thực hiện cỏc hoạt động này.

Thực hiện cỏc hoạt động sử dụng lại một cỏch cú hệ thống trong phỏt triển phần mềm giỳp rỳt ngắn thời gian, giảm chi phí và tăng chất lƣợng phần mềm. Cú nhiều hƣớng tiếp cận khác nhau để thực hiện cỏc hoạt động này. Mỗi đơn vị phỏt triển phần mềm cú thể lựa chọn một hoặc kết hợp nhiều hƣớng tiếp cận khác nhau để tăng hiệu quả sử dụng lại. Việc lựa chọn hƣớng tiếp cận phự hợp tựy thuộc vào khuynh hƣớng phỏt triển phần mềm ở mỗi đơn vị.

CHƢƠNG 1 ... 5

TỔNG QUAN VỀ VẤN ĐỀ SỬ DỤNG LẠI TRONG PHÁT TRIỂN PHẦN MỀM... 5

1.1. Khỏi niệm... 5

1.2. Lịch sử và quỏ trỡnh phỏt triển của sử dụng lại ... 5

1.3. Vai trũ và tầm quan trọng của sử dụng lại ... 7

1.4. Phõn loại sử dụng lại... 8

1.5. Cỏc chế tỏc cú thể sử dụng lại ... 8

1.6. Các rào cản đối với việc sử dụng lại ... 10

1.7. Cơ sở khoa học cho sử dụng lại ... 11

1.7.1. Phƣơng pháp ... 12

1.7.2. Cụng cụ ... 13

1.8. Các hoạt động sử dụng lại ... 14

1.8.1. Phỏt triển phần mềm cho sử dụng lại... 15

1.8.2. Phỏt triển phần mềm với sử dụng lại ... 16

1.9. Một số cỏch tiếp cận cho sử dụng lại ... 17

1.9.1. Phát triển phần mềm hƣớng đối tƣợng... 17 1.9.2. Phỏt triển phần mềm dựa trờn thành phần ... 18 1.9.3. Phát triển phần mềm hƣớng sử dụng lại ... 20 1.9.4. Mẫu thiết kế ... 20 1.9.5. Bộ phỏt sinh ... 21 1.9.6. Miền ứng dụng ... 22 1.10. Kết luận ... 22

KỸ NGHỆ MIỀN VÀ HƢỚNG TIẾP CẬN MIỀN ỨNG DỤNG

2.1. Các khái niệm

2.1.1. Miền ứng dụng

Một miền là một lĩnh vực ứng dụng bao gồm cỏc ứng dụng cú kiến trỳc cụ thể chung cho miền, trong đó mỗi ứng dụng lại đƣợc chuyờn biệt húa theo một số cỏch nhất định. Phần chung của cỏc ứng dụng trong miền đƣợc gọi là cỏc mụ hỡnh miền.

Vớ dụ, ta cú miền ứng dụng Giỏo dục và Đào tạo, cỏc hệ thống đƣợc xõy dựng trong miền là Hệ thống học qua mạng, Hệ thống thƣ viện sỏch, Hệ thống điều hành Giảng dạy, Hệ thống quản lý trang thiết bị học tập, …. Miền ứng dụng Hàng khụng cú cỏc ứng dụng nhƣ: Hệ thống đặt chỗ mỏy bay, Hệ thống thanh toỏn, Hệ thống giao tiếp và điều khiển.

2.1.2. Kỹ nghệ miền

Kỹ nghệ miền (domain engineering) là một tiến trỡnh lặp bao gồm việc xác định, thiết kế và phỏt triển một họ sản phẩm hoặc một tập cỏc hệ thống liờn quan trong một miền. Một phần của kỹ nghệ miền tập trung vào cỏc giải phỏp tổng quỏt của họ cỏc hệ thống phần mềm - cú cỏc yờu cầu tƣơng tự nhau và các năng lực tƣơng tự nhau trong một lĩnh vực nghiệp vụ cụ thể [34].

Tiến trỡnh kỹ nghệ miền bao gồm phõn tớch khung cảnh, phõn tớch miền, thiết kế miền, triển khai miền và kiểm thử cỏc tài sản miền. Kỹ nghệ miền tƣơng tự nhƣ kỹ nghệ hệ thống nhƣng sẽ đƣợc thực hiện trờn nhiều hệ thống mà ở đó các phần chung và cỏc phần riờng trong mỗi miền đƣợc xác định, lấy ra, tổ chức, trừu tƣợng húa và thể hiện bằng cỏch phõn tớch và làm tài liệu đối với mỗi hệ thống hiện tại, xõy dựng lờn kiến trỳc chung của miền. Bất kỳ yờu cầu nào nhận đƣợc cho miền trong tƣơng lai cũng đƣợc phân tích trên cơ sở kiến trúc chung đó. Dựa trờn

phõn tớch, kỹ nghệ miền gợi ý một kiến trỳc thỏa món phần lớn cỏc yờu cầu bờn trong miền.

Mục tiờu của tiến trỡnh kỹ nghệ miền là xõy dựng cỏc tài sản sử dụng lại, xác định cỏc tài sản sử dụng lại là chung cho miền và lƣu các tài sản vào kho chứa.

Hỡnh 2-1 minh họa cỏc tiến trỡnh con trong tiến trỡnh kỹ nghệ miền cựng với đầu vào, đầu ra của chỳng. Bắt đầu từ tri thức miền và cỏc hệ thống hiện tại trong miền, ta tiến hành phõn tớch miền để cung cấp cỏc mụ hỡnh miền. Cỏc mụ hỡnh miền đƣợc sử dụng để thiết kế kiến trỳc miền. Tiến trỡnh triển khai miền cung cấp cỏc tài sản miền dựa trờn kiến trúc đó thiết kế và cỏc tài sản hiện cú. Tất cả cỏc tài nguyờn này sẽ đƣợc lƣu trữ vào kho chứa để cú thể đƣợc sử dụng mỗi khi phỏt triển một hệ thống mới trong miền.

2.1.3. Kỹ nghệ ứng dụng

Kỹ nghệ ứng dụng (application engineering) là tiến trỡnh phỏt triển cỏc sản phẩm phần mềm từ cỏc tài sản đƣợc tạo bởi tiến trỡnh kỹ nghệ miền.

Vũng đời kỹ nghệ ứng dụng hƣớng vào việc xõy dựng cỏc hệ thống mới hoặc cỏc hệ thống đƣợc tỏi kỹ nghệ sử dụng cỏc yờu cầu tổng quỏt, kiến trỳc miền tổng quỏt và cỏc thành phần tổng quỏt.

Tài sản triển khai Mụ hỡnh miền Sử dụng lại mụ hỡnh miền Phõn tớch miền Thiết kế miền Kiến trỳc miền Triển khai miền Môi trường hỗ trợ miền Hỡnh 2-1: Cỏc thành phần kỹ nghệ miền

Kỹ nghệ miền và kỹ nghệ ứng dụng là hai tiến trỡnh song song, tƣơng tác và bổ trợ cho nhau. Hỡnh 2-3 minh họa sự phõn biệt giữa kỹ nghệ miền và kỹ nghệ ứng dụng. Hàng trờn là cỏc tiến trỡnh chỉ ra cỏc hoạt động kỹ nghệ miền, bắt đầu từ phõn tớch miền để cung cấp cỏc mụ hỡnh miền. Bƣớc tiếp theo là hoạt động phỏt

Một phần của tài liệu Sử dụng lại theo hướng tiếp cận miền ứng dụng và vận dụng trong phát triển phần mềm hướng đối tượng (Trang 25)

Tải bản đầy đủ (PDF)

(135 trang)