HƢỚNG ĐỐI TƢỢNG
2.1. NGễN NGỮ Mễ HèNH HOÁ THỐNG NHẤT
2.1.1. Thiết kế phần mềm hướng đối tượng
Việc xõy dựng phần mềm cần phải quan tõm đến tổ chức, cỏc quan hệ và cấu trỳc để hỡnh thành nờn cỏc hành vi phức tạp của hệ thống. Mọi việc khảo sỏt hệ thống được thực hiện với mức độ trừu tượng khỏc nhau, từ cỏc chi tiết đến tổ chức tổng thể. Do vậy, xõy dựng phần mềm là thực hiện dóy tương tỏc chia nhỏ và hợp nhất. Chia nhỏ để hiểu rừ vấn đề và hợp nhất để xõy dựng hệ thống. Tiến trỡnh chia nhỏ tuõn thủ cỏc tiờu chớ chức năng. Cỏc chức năng của hệ thống được nhận diện và sau đú tỏch thành cỏc chức năng con. Tiến trỡnh này được thực hiện lặp đi lặp lại cho đến khi cú được cỏc thành phần đơn giản đến mức chỳng được biểu diễn trực tiếp bằng cỏc hàm hay thủ tục của ngụn ngữ lập trỡnh. Cỏch tiếp cận này được gọi là cỏch tiếp cận hướng chức năng. Kiến trỳc phần mềm được cài đặt theo cỏch tiếp cận hướng chức năng sẽ phản ỏnh cỏc chức năng của hệ thống. Tiếp cận trờn cơ sở hướng chức năng chỉ cho lại kết quả mong muốn khi cỏc chức năng được nhận biết đầy đủ và khụng thay đổi theo thời gian.[2]
Tuy nhiờn, trong nhiều trường hợp, phỏt triển phần mềm khụng bao giờ kết thỳc hoàn toàn mà luụn cần phải sửa đổi, nõng cấp. Do đú, một cỏch tiếp cận khỏc ra đời, giỳp quản lý được chất lượng, tăng tớnh ổn định, tớnh sử dụng lại, tớnh linh hoạt, dễ dàng mở rộng, độ tin cậy và an toàn cao, đú là cỏch tiếp cận hướng đối tượng.
Quan điểm hướng đối tượng hỡnh thành trờn cơ sở tiếp cận hướng hệ thống, coi hệ thống như thực thể được tổ chức từ cỏc thành phần mà chỉ được xỏc định khi nú thừa nhận và cú quan hệ với cỏc thành phần khỏc.
Tiếp cận hướng đối tượng rất cú ớch khi xõy dựng cỏc hệ thống phức tạp. Cỏch tiếp cận này sẽ cho lại những phần mềm cú chất lượng cao.
Khi cỏc ngụn ngữ hướng đối tượng được sử dụng rộng rói thỡ nhu cầu cú phương phỏp phỏt triển phần mềm hướng đối tượng trở nờn cấp bỏch. Nhiều phương phỏp hướng đối tượng đó xuất hiện như phương phỏp Booch, OMT (Object Modeling Technique), OOSE (Object Oriented Software Engineering). Mỗi phương phỏp cú ký phỏp, tiến trỡnh và cụng cụ hỗ trợ riờng. Chỳng đều cú những ưu và nhược điểm. Người sử dụng rất khú khăn để chọn một phương phỏp phự hợp. Do đú, ngụn ngữ mụ hỡnh hoỏ thống nhất UML đó ra đời.
2.1.2. Ngụn ngữ mụ hỡnh húa thống nhất
UML là một ngụn ngữ mụ hỡnh hoỏ chuẩn để thiết kế phần mềm hướng đối tượng. Cỏc đặc trưng của UML bao gồm [4]:
UML là một ngụn ngữ mụ hỡnh đồ hoạ. Cỏc biểu diễn mụ hỡnh trong UML là cỏc biểu diễn bằng đồ hoạ. Mỗi biểu tượng của UML cú một ngữ nghĩa hoàn toàn xỏc định.
UML là một ngụn ngữ làm trực quan. Bằng cỏc ký hiệu đồ hoạ và cỏc biểu diễn bằng sơ đồ với cỏc giải thớch văn bản đi kốm, UML cho phộp ta hỡnh dung về một hệ thống cần xõy dựng từ cỏc khớa cạnh khỏc nhau.
UML là một ngụn ngữ đặc tả, cú cấu trỳc. UML cho phộp xõy dựng cỏc mụ hỡnh một cỏch chớnh xỏc, khụng nhập nhằng và đầy đủ.
UML là ngụn ngữ làm tài liệu.
2.2. QUY TRèNH PHÁT TRIỂN PHẦN MỀM
UML là ngụn ngữ mụ hỡnh hoỏ trực quan và làm sưu liệu phần mềm, nú khụng quy định thứ tự cỏc bước thực hiện và thực hiện như thế nào. Để tận dụng được khả năng mạnh mẽ của ngụn ngữ mụ hỡnh hoỏ thống nhất UML, cần phải cú
một quy trỡnh phỏt triển phần mềm. Quy trỡnh được sử dụng phổ biến nhất hiện nay là RUP.
2.2.1. Lịch sử phỏt triển của RUP
RUP (Rational Unified Process) được phỏt triển trong nhiều năm cựng với kinh nghiệm của nhiều chuyờn gia và cỏc cụng ty con của Rational Software. Sự phỏt triển của RUP được minh hoạ trong hỡnh dưới đõy.
Hỡnh 2.1. Lịch sử phỏt triển của RUP
2.2.2. Giới thiệu chung về RUP
Phỏt triển phần mềm là một vấn đề rất phức tạp. RUP là một phương phỏp thiết kế phần mềm hướng đối tượng cú thể trỏnh được nguy cơ rủi ro cao trong vấn đề phỏt triển phần mềm. RUP dựng để phỏt triển phần mềm theo cỏch tiến hoỏ (lặp và tăng dần) và cú hiệu quả hơn so với mụ hỡnh thỏc nước thụng dụng được sử dụng trong nhiều tổ chức trước đõy.
RUP là một quy trỡnh phỏt triển phần mềm hệ thống cú quy tắc dựa trờn ngụn ngữ mụ hỡnh hoỏ thống nhất UML, thường sử dụng để phỏt triển cỏc hệ thống dựa trờn cỏc đối tượng và cỏc thành phần cơ bản. Nú dựa trờn cỏc quy tắc lặp, yờu cầu, kiểm tra, triển khai… để gỏn cỏc nhiệm vụ và cỏc trỏch nhiệm trong phạm vi
của một tổ chức. Mục tiờu này đảm bảo cho việc sản xuất cỏc phần mềm cú chất lượng cao đỏp ứng được cỏc yờu cầu của người dựng cuối.
RUP được hỗ trợ bởi cỏc cụng cụ tự động dựng để tạo và duy trỡ nhiều loại mụ hỡnh artifact của quy trỡnh phỏt triển phần mềm như: cỏc mụ hỡnh, lập trỡnh, kiểm tra, …
RUP làm nõng cao năng suất làm việc của nhúm, bằng việc cung cấp cho mọi thành viờn trong nhúm cỏch thức truy cập dễ dàng tới một cơ sở tri thức với cỏc hướng dẫn, cỏc khuụn mẫu và cỏc cụng cụ. RUP thớch hợp cho cỏc nhúm nhỏ cũng như cỏc tổ chức lớn.
Quy trỡnh RUP cú thể được miờu tả theo hai chiều, hay theo hai trục toạ độ:
Trục tung biểu diễn cấu trỳc tĩnh của quy trỡnh: nú miờu tả cỏc hoạt động, cỏc artifact, cỏc lao động và cỏc luồng làm việc.
Trục hoành biểu diễn thời gian và hiển thị cấu trỳc động của quy trỡnh dưới dạng cỏc chu kỳ, cỏc pha, cỏc bước lặp, và cỏc mốc sự kiện quan trọng.
2.2.3. Cấu trỳc tĩnh của quy trỡnh
Quy trỡnh mụ tả con người đang làm gỡ, làm như thế nào và làm khi nào. RUP sử dụng bốn thành phần chớnh:
Cỏc lao động
Cỏc hoạt động
Artifact
Cỏc luồng cụng việc
2.2.3.1. Lao động
Lao động định nghĩa cỏc hoạt động và trỏch nhiệm của một cỏ nhõn, hoặc một nhúm người làm việc cựng nhau. Mỗi lao động cú thể thực hiện nhiều cụng việc và đúng nhiều vai trũ khỏc nhau. Cỏc trỏch nhiệm được giao cho một người bao gồm cả việc thực hiện một tập cỏc hoạt động cũng như tập cỏc artifact.
2.2.3.2. Hoạt động
Một hoạt động là một nhiệm vụ thực tế mà một lao động phải thực hiện. Hoạt động cú mục đớch rừ ràng, thường thực hiện việc tạo hoặc cập nhật cỏc artifact như: mụ hỡnh, lớp, kế hoạch.
2.2.3.3. Artifact
Artifact là một phần thụng tin được tạo ra, hiệu chỉnh, hoặc được sử dụng bởi một tiến trỡnh. Artifact là cỏc sản phẩm hữu hỡnh của dự ỏn, được tạo ra hoặc sử dụng trong khi làm ra sản phẩm cuối cựng. Cỏc lao động sử dụng artifact như đầu vào để thực hiện một hoạt động, và là kết quả của cỏc hoạt động khỏc. Artifact cú thể cú nhiều dạng như: một mụ hỡnh (mụ hỡnh use case, mụ hỡnh thiết kế), một phần tử mụ hỡnh (lớp, use case, hay một hệ thống con), tài liệu (tài liệu nghiệp vụ, tài liệu kiến trỳc phần mềm), mó nguồn, và những thứ cú thể thực hiện được.
2.2.3.4. Luồng cụng việc
Một luồng cụng việc là một chuỗi cỏc hoạt động để tạo ra một kết quả cú ý nghĩa. Trong UML, một luồng cụng việc cú thể được biểu diễn như một biểu đồ tuần tự, một biểu đồ cộng tỏc, hoặc một biểu đồ hoạt động.
Luồng cụng việc chớnh trong RUP bao gồm: Mụ hỡnh hoỏ nghiệp vụ, xỏc định yờu cầu, phõn tớch và thiết kế, thực thi, kiểm thử, và triển khai. Ngoài ra, cũn cú ba luồng cụng việc hỗ trợ: Quản lý dự ỏn, cấu hỡnh và quản lý thay đổi, mụi trường.
Cỏc luồng cụng việc được thực hiện lặp đi lặp lại trong suốt vũng đời. Luồng cụng việc đầy đủ trong thực tế của một dự ỏn thực hiện xen kẽ tất cả cỏc luồng cụng việc trờn, nhưng chỳng được thực hiện lặp với tầm quan trọng và cường độ khỏc nhau tại mỗi lần lặp.