28
BÁO CÁO PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN QUY TRÌNH PHÁT TRIỄN PHẦN MỀM RATIONAL UNIFIED PROCESS(RUP) Giáo viên hướng dẫn: Huỳnh Ngọc Tín Thực hiện: 1 Trường: ĐHCNTT Khoa: CNPM Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc

LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Embed Size (px)

Citation preview

Page 1: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

BÁO CÁO PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN

QUY TRÌNH PHÁT TRIỄN PHẦN MỀMRATIONAL UNIFIED PROCESS(RUP)

Giáo viên hướng dẫn:Huỳnh Ngọc Tín

Thực hiện:Lê Như Phương MSSV: 06520355Nguyễn Thị Như Quỳnh MSSV: 06520374

1

Trường: ĐHCNTTKhoa: CNPM

Cộng hòa xã hội chủ nghĩa Việt NamĐộc lập – Tự do – Hạnh phúc

.***

Page 2: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

MỤC LỤC

1. Giới Thiệu………………………………………………………………………32. Khái Quát RUP………………………………………………………………...33. Lịch sử của RUP………………………………………………………….…...44. Tổng Quan Cấu Trúc RUP…………………………………………………..5

4.1 Trục hoành……………………………………………………….…….5

4.2 Trục tung…………………………………………………………….…65. Phát Triển Lặp…………………………………………………………….…...7

5.1 Phát triển lặp là gì?.......................................................................7

5.2 Tại sao phát triển lặp?.................................................................7

5.3 Lợi ích của phát triển lặp…………………………………………...86. Chi Tiết Quy Trình Của RUP……………………………………………….8

6.1 Vòng đời……………………………………………………………….8

6.2 Inception phase………………………………………………………8

6.3 Elaboration phase……………………………………………………9

6.4 Construction phase………………………………………………….9

6.5 Transition phase……………………………………………………..107. Các Giai Đoạn Công Việc Của RUP………………………………………10

7.1 Mô hình nghiệp vụ…………………………………………………...12

7.2 Phân tích yêu cầu……………………………………………………12

7.3 Phân tích và thiết kế…………………………………………………12

7.4 Cài đặt……………………………………………………………….....12

2

Page 3: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

7.5 Kiểm thử……………………………………………………………….13

7.6 Triển khai………………………………………………………………13

7.7 Quản trị cấu hình và thay đổi……………………………………...13

7.8 Quản trị dự án………………………………………………………..13

7.9 Môi trường……………………………………………………………148. Các Công Cụ Xây Dựng……………………………………………………149. Phân Biệt Quy Trình RUP với Quy Trình Phát Triển Phần Mềm Khác..15

9.1 RUP là kết quả của nhiều “ best Practices”………………………..159.1.1 Phát triển tái lập………………………………………………..159.1.2 Quản trị yêu cầu……………………………………………….159.1.3 Sử dụng kiến thức thành phần……………………………..159.1.4 Mô hình hóa trực quan……………………………………….169.1.5 Liên tục kiểm tra chất lượng……………………………….169.1.6 Quản trị thay đổi……………………………………………...16

9.2 RUP tập trung vào kiến trúc phần mềm…………………………….179.3 RUP là qui trình hướng chức năng hệ thống (hướng Use Case)..179.4 RUP là qui trình lặp và tăng trưởng từng bước…………………..17

10. Kết luận……………………………………………………………………….20

3

Page 4: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

1. Giới thiệuTrong những năm qua, việc xây dựng và triển khai các chương trình

phần mềm đã góp phần phục vụ ngày càng tốt hơn cho công tác quản lí và điều hành của nhiều doanh nghiệp. Tuy nhiên, cũng không tránh khỏi được những sai sót làm ảnh hưởng không nhỏ đến hiệu quả công việc của cán bộ quản lí, ảnh hưởng đến tiến độ phát triển, triển khai và bảo trì chương trình của cán bộ tin học. Trong đó, một nguyên nhân nổi bật đáng chú ý là chưa thực sự áp dụng một phương pháp luận,một quy trình chuẩn được công nhân trong quá trình phân tích, thiết kế,phát triển, thử nghiệm, triển khai chương trình, dẫn tới chất lượng của chương trình tại thời điểm tung ra triển khai thử nghiệm cho kết quả thấp,nhiều lỗi không được phát hiện sớm,cách tiếp cận phát triển ứng dụng không dựa theo công nghệ hướng đối tượng nên khi có sự thay đổi chính sách nghiệp vụ là thiếu sót và không phù hợp,dẫn tới các ứng dụng phải bổ xung thêm các chức năng mới nhưng hết sức chắp vá và không hoàn thiện. Trong khi đó trên thế giới đã từng có những bài học kinh nghiệm quí báu mà chúng ta hoàn toàn có thể học tập được.

Xin giới thiệu một cách tổng quan nhất quy trình phân tích, thiết kế, phát triển, thử nghiệm và triển khai một hệ thống phần mềm do hãng Rotaonal xây dựng và đã được hầu hết các hãng phần mềm trên thế giới áp dụng thành công trong các dự án của mình.

2. Khái quát RUP.Trong phát triển phần mềm,có những sai sót làm ảnh hưởng không nhỏ

đến chất lượng sản phẩm. Các sai sót này có thể phát sinh từ nhiều nguồn khác nhau trong quá trình xây dựng hệ thống,chẳng hạn như không quản lí được các yêu cầu,không phát hiện được lỗi kịp thời,không quản lí được các thay đổi của dự án. Trước tình hình đó các công ty phần mềm lớn trên thế giới đã nhanh chóng đưa ra nhiều qui trình công nghệ khác nhau trước tiên phục vụ cho nhu cầu phát triển phần mềm của công ty mình sau đó là thu thập ý kiến rộng rãi từ những đối tác nhằm tìm kiếm lời giải cho bài toán tối ưu hóa qui trình công nghệ của mình. Hiện nay có rất nhiều qui trình phát triển phần mềm khác nhau được sử dụng như: Water Fall Process, OPEN Process, Object- Oriented Software Process, Unifield Process….mỗi qui trình đều có những ưu khuyết điểm riêng của mình nhưng nổi bật và ngày càng được sử dung rộng rãi nhất là Unifield Process của hãng Rational. RUP (Rational Unifield Process) đã được hầu hết các hãng phần mềm trên thế giới áp dụng thành công trong các dự án của mình đánh dấu 1 xu hướng phát triển mới trong giai đoạn bùng nổ của ngành công nghệ phần mềm.

_ The Rational Unified Process(RUP) là qui trình vòng lặp phát triển phần mềm hỗ trợ các hoạt động phát triển phần mềm theo nhóm, phân chia công việc theo thứ tự cho từng thành viên của nhóm trong từng giai đoạn khác nhau của quy trình phát triển. Mục đích chính của RUP là đề ra một quy trình chặt chẽ nhấn mạnh việc lập kế hoạch chi tiết cho một dự án phát trển phần mềm, nhằm giảm thiểu rủi ro và có được khả năng tiên đoán (predictability) tốt nhất trong quá trình hiện thực qua đó giúp sản xuất những phần mềm có chất lượng

4

Page 5: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

cao thỏa mãn yêu cầu của người dùng cuối với chi phí thấp và năng suất cao trong khuôn khổ thời gian và ngân sách.

_ RUP được phát triển và duy trì bởi hãng Rational đảm bảo qui trình luôn được cải tiến hoàn chỉnh hơn trên cơ sở những kinh nghiệm phản hồi từ đối tác sử dụng, sự cải tiến và những cách vận dụng tốt nhất trong thực tế.

_ RUP (Rational Unified Process) là một liên kết các kiến thức cơ bản với các Artifact và mô tả chi tiết với các loại Activity khác nhau. RUP được chứa bên trong sản phẩm IBM Rotional Method Composer (RMC) cho phép tối ưu tiến trình. Unified Process được thiết kế từ đặc điểm chung, quy trình phạm vi rộng lớn và RUP là một mô tả chi tiết cụ thể.

_ RUP nâng cao năng suất làm việc của nhóm. Các thành viên trong nhóm có hướng dẫn, khuôn mẫu, công cụ hỗ trợ, đều sử dụng 1 ngôn ngữ, 1 qui trình chung. Do đó có sự thống nhất trong cách nhìn và phương hướng phát triển 1 phần mềm.

_ Hoạt động chính của RUP là tạo, cải tiến và quản lí các loại mô hình. Ngoài ra, RUP còn hướng dẫn làm 1 lượng lớn các tài liệu cho phần mềm, RUP nhấn mạnh việc phát triển những mô hình giàu ngữ nghĩa biểu diễn cho hệ thống dưới góc độ của người phát triển.Đặc biệt,RUP cung cấp những hướng dẫn để sử dụng UML 1 cách hiệu quả nhất và sử dụng chính ngôn ngữ UML để mô hình hóa và hỗ trợ tất cả các giai đoạn trong qui trình phát triển.

_ Không một qui trình nào có thể có thể phù hợp cho tất cả các tổ chức phát triển phần mềm. RUP không phải là 1 quá trình bó hẹp cụ thể đơn nhất nhưng là 1 nền tảng quy trình thích ứng với sự phát triển các tổ chức và các nhóm dự án phần mềm. RUP được phát triển trên cơ sở cấu trúc đơn giản và rõ ràng có thể cấu hình lại cho phù hợp với nhu cầu của tổ chức sử dụng nên phù hợp cho những nhóm phát triển nhỏ cũng như những tổ chức lớn. RUP là tập hợp những công việc và kinh nghiệm đã được vận dụng hiệu quả nhất trong thực tế.

_ RUP là một sản phẩm tiến trình có thể tùy biến.

3. Lịch sử của RUP Bắt nguồn từ mô hình xoắn ốc (spiral model) của Barry Boehm. Rational

Approach được phát triển tại Rational Software trong những năm 1980 và 1990. Trong năm 1995 Rational Software mua lại công ty Objectory AB. RUP là

kết quả của việc trộn Rational Approach và quy trình Objectory được phát triển bởi nhà sáng lập Objectory AB là Ivar Jacobson, Objectory là một hệ phương pháp luận hướng đối tượng được mở rộng từ Ericsson Approach một ngôn ngữ mô hình hoá được phát triển bởi Ericsson.

Các kết quả đầu tiên của sự kết hợp trên được biết tới là Rational Objectory Process, RUP được thiết kế theo quy trình Objectory nhưng phù hợp với công cụ Rational Rose. Sau khi mục tiêu được hoàn thành thì được đổi tên thành Rational Unified Process, phiên bản đầu tiên là 5.0 được phát hành năm 1998, kiến trúc sư trưởng là Philippe Kruchten.

Phiên bản cuối cùng là RUP 7.0 được phát hành là một phần của IBM Rational Method Composer vào tháng 11-2005.

5

Page 6: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

4. Tổng quan cấu trúc RUP.Tổng quan cấu trúc RUP được thể hiện theo hai chiều:

4.1.Trục hoành._ Trục hoành tổ chức theo thời gian phát triển dự án, thể hiện khía

cạnh động. Chu kỳ (cycle) của 1 giai đoạn trong qui trình bao gồm các phase(giai đoạn), các bước lặp (iteration) và các cột mốc thời gian(milestones). Mỗi chu kỳ cho kết quả là 1 phiên bản release của phần mềm bao gồm các thành phần (component) có thể biên dịch và thực thi.

_ Một chu kỳ được chia làm 4 phase liên tục:

6

Page 7: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Mỗi phase(giai đoạn) có một mục đích cụ thể.- Inception ( khởi đầu) : xác định phạm vi dự án, các tài nguyên cần thiết và phác thảo chức năng cho người sử dụng.- Elaboraion ( triển khai ) : phân tích vấn đề, lập kế hoạch dự án, đánh giá rủi ro và xác định kiến trúc hệ thống. - Construction ( xây dựng) : phát triển các thành phần (component), tích hợp vào sản phẩm và kiểm chứng các chức năng.− Transition ( chuyển giao ) : chuyển giao sản phẩm đến khách hàng, chỉ dẫn khách hàng cách sử dụng bảo trì đồng thời điều chỉnh một số chức năng cần thiết.

4.2.Trục tung..Trục tung là chiều biểu diễn các tiến trình của quy trình, là các công việc

được nhóm lại một cách logic theo bản chất của chúng, thể hiện mặt tĩnh dưới dạng các thành phần của chu trình như các tiến trình,các kết quả sinh ra(Artifacts_What), cá nhân hay một nhóm thực hiện (Worker_Who),giai đoạn công việc hoạt động liên quan với nhau (Workflows_When) và các đơn vị công việc (Activities_How).Trục tung tổ chức theo các luồng công việc (workflow) bao gồm các hoạt động các thành phần và người thực hiện.

Activities, Artifacts, and Workers:

− Worker – Who : định nghĩa công việc và trách nhiệm của mỗi cá nhân làm việc với nhau trong nhóm : trưởng dự án, phân tích viên hệ thống.- Activitives – How : hoạt động của 1 worker là 1 tập công việc có mục đích rõ

ràng : trưởng dự án lập kế hoạch , phân tích viên hệ thống: tìm các use case, các actor.- Artifacts – What : là những thông tin được phát sinh thay đổi hoặc sử dụng

bởi quy trình: Mô hình Use Case, mô hình thiết kế…- Workflows – When : mô tả cách thức tiến hành các hoạt động theo trình tự

giai đoạn công việc hoạt đông liên quan đến nhau và vai trò của mỗi worker.

7

Page 8: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Các luồng công việc chính : Business modeling ( mô hình hóa nghiệp vụ ). Requirements ( xác định yêu cầu ). Analysis & Design ( phân tích và thiết kế ). Implementation ( cài đặt ). Test (kiểm tra). Deployment (triển khai).Ngoài ra còn có các luồng công việc hỗ trợ : Project management ( quản lí dự án ). Configuration and management ( quản lí cấu hình và thay đổi ).Enviroment ( quản lí môi trường ).

5. Phát triển lặp 5.1 Phát triển lặp lại là gì ? Một dự án sử dụng qui trình phát triển lặp lại có một vòng đời chứa các

quá trình lặp lại. Một quá trình lặp là sự kết hợp chặt chẽ một chuỗi các hoạt động: mô

hình nghiệp vụ, tiếp nhận yêu cầu, phân tích và thiết kế, thực thi, kiểm lỗi và triển khai với mức độ lặp không giống nhau, tùy theo vị trí cụ thể của vòng phát triển.

Quản lý, tiếp nhận yêu cầu và thiết kế là các hoạt động trọng điểm trong giai đoạn khởi tạo và phân tích chi tiết dự án; các hoạt động thiết kế, thực thi và kiểm lỗi đóng vai trò chủ chốt trong giai đoạn xây dựng; và các hoạt động kiểm lỗi, triển khai đóng vai trò chủ đạo trong giai đoạn chuyển giao dự án.

Quá trình lặp được quản lý bởi timeboxed (thuật ngữ của RUP) được các nhóm phát triển họp bàn và thiết lập.

5.2 Tại sao phải phát triển lặp lại ?

8

Page 9: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Một thiết kế ban đầu chỉ là một sản phẩm chưa hoàn thiện, dựa trên các yêu cầu căn bản, về sau quá trình thiết kế càng phát hiện ra thêm nhiều nhược điểm đó là kết quả trả giá từ việc chạy thử và trong một số trường hợp dự án phải hủy bỏ.

Tất cả các dự án đều có một tập các rủi ro phức tạp. Lúc ban đầu bạn có thể xác định để ngăn ngừa một vài rủi ro theo đúng như kế hoạch của mình. Tuy nhiên có rất nhiều rủi ro mà bạn không thể phát hiện ra một các đơn giản, trơn tru cho đến khi bạn cố gắng tích hợp hệ thống. Bạn sẽ không bao giờ có thể dự đoán trước được tất cả các rủi ro khi không quan tâm đến kinh nghiệm của nhóm phát triển.

5.3 Lợi ích của phát triển lặp lại: Hạn chế được nhiều rủi ro do các phần tử được tích hợp, xây dựng dần

dần. Cho phép thay đổi các yêu cầu, các phương thức cho thích hợp hơn. Các tổ chức có thể nắm được phương pháp này và phát triển cho qui

trình của họ.Tăng khả năng tái sử dụng.

6. Chi tiết qui trình của RUP.6.1.Vòng đời.

Từ phương diện quản lý để giám sát kết quả và tiến độ trong từng giai đoạn(phase), vòng đời của một phần mềm theo RUP được chia theo thời gian qua bốn giai đoạn nối tiếp nhau, mỗi giai đoạn có một mốc quan trọng, mỗi giai đoạn thực chất là khoảng giữa của 2 điểm mốc. Cuối mỗi giai đoạn, bộ phận kiểm định sẽ thực hiện thẩm định các đối tượng của giai đoạn này. Nếu việc kiểm tra thích hợp thì dự án sẽ được chuyển sang giai đoạn tiếp theo.

6.2.Giai đoạn Inception.

Đưa ra tình huống về mặt nghiệp vụ có thể có đối với hệ thống và xác định phạm vi của dự án. Các tình huống ngiệp vụ bao gồm : đánh giá sự thành công, đánh giá sự rủi ro, xác định các nguồn lực cần thiết cho dự án và 1 bản kế

Inception

Elaboration Construction Transition

9

Page 10: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

hoach tóm tắt chỉ ra lịch trình của các điểm mốc chủ yếu của dự án, rủi ro của các yêu cầu, các chức năng nghiệp vụ cũng phải được chỉ ra trước khi dự án bắt đầu.

Tóm tắt việc cải tiến từ các hệ thống đã có, chú trọng đến cả 2 điều quan trọng của dự án: đáng để làm hay không và khả năng thực hiện. Cuối giai đoạn này cần kiểm tra các mục tiêu của quá trình phát triển của dự án và quyết định có tiếp tục quá trình phát triển hay không. Kết quả của giai đoạn này là đạt được sự nhất trí giữa tất cả những người đóng vai trò chủ chốt về các mục tiêu của dự án. Mục tiêu chính của giai đoạn này là :

- Thiết lập phạm vi phần mềm và các điều kiện biên của dự án, bao gồm: nhìn nhận khả năng thực hiện, các điều kiện thỏa thuận và những gì sản phẩm mong đợi và không mong đợi.

- Nhận định đúng đắn về các Use Case của hệ thống, kịch bản của các hành vi trong hệ thống sẽ đóng vai trò định hướng quan trọng cho kết quả của phần thiết kế.

- Trình bày, demo một số kiến trúc ứng cử viên cho một vài kịch bản chính.- Dự trù tất cả chi phí, lập kế hoạch cho toàn bộ dự án.- Dự trù các rủi ro tiềm ẩn.

− Chuẩn bị môi trường hỗ trợ cho dự án.

6.3.Giai đoạn Elaboration.

Kết quả cần là tạo ra một baseline cho kiến trúc của hệ thống tạo cơ sở cho quá trình thiết kế và thực thi trong giai đoạn construction. Kiến trúc này mở rộng việc phân tích các yêu cầu quan trọng của hệ thống(các yêu cầu có sự ảnh hưởng lớn đến hệ thống) và đánh giá các rủi ro. Sự ổn định của kiến trúc được đánh gia qua nhiều nguyên bản của kiến trúc.

_ Mục tiêu cần là phân tích các vấn đề nghiệp vụ, xác định kiến trúc hợp lí, xây dựng kế hoạch cho dự án, giới hạn các yếu tố rủi ro cao nhất. Những quyết định về mặt kiến trúc cần được đưa ra cho toàn bộ hệ thống, đồng thời cần mô tả hầu hết các yêu cầu của hệ thống.

_ Cuối giai đoạn này cần kiểm tra các mục tiêu và phạm vi chi tiết của hệ thống, sự lựa chọn về kiến trúc và cách sử lí các rủi ro có thể đồng thời quyết định có tiếp tục chuyển sang giai đoạn xây dựng hay không.

6.4.Giai đoạn Construction.

Inception

Elaboration Construction Transition

Inception

Elaboration Construction Transition

10

Page 11: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Phát triển 1 cách tái lập và tăng dần toàn bộ sản phẩm đầy đủ, xây dựng sản phẩm và phát triển các phiên bản, kiến trúc, các kế hoạch cho đến khi đạt được phiên bản hoàn thiện nhất– có thể chuyển giao cho người dùng. _ Giai đoạn này bao gồm việc mô tả các yêu cầu còn lại chưa được xác định, xác định các tiêu chuẩn, làm mịn thiết kế và hoàn thành lập trình ứng dụng.

_ Cuối giai đoạn này cần xác định liệu hệ thống phần mềm, các điểm triển khai và người dùng đã sẵn sàng đi vào hoạt dộng chưa để có thể chuyển giao cho người dùng. _ Giai đoạn này sẽ được kết luận dựa vào các mốc là khả năng thực hiện các chức năng yêu cầu ban đầu đã xác định.

6.5.Giai đoạn Transition.

Trong giai đoạn này cần đưa hệ thống phần mềm tới người sử dụng. Lúc này sẽ có nhiều vấn đề phát sinh đòi hỏi phải căn chỉnh hệ thống, xác định các vấn đề chưa được phát hiện trước đó hay hoàn thiện các chức năng trước đó bị trì hoãn. Giai đoạn này thường bắt đầu với việc tung ra phiên bản Beta và sau dó là thay thế bởi bản chương trình đầy đủ. _ Chuyển giao sản phẩm cho những người sử dụng nó, bao gồm: hoàn chỉnh sản phẩm, sản xuất, phân phát, huấn luyện, hỗ trợ và bảo trì cho đến khi người sử dụng hài lòng. _ Giai đoạn này được kết luận thông qua mốc các phiên bản của sản phẩm – kết thúc từng chu trình lặp của giai đoạn này.

Thời gian dành cho các giai đoạn này được ước tính như sau

Tức là 1 dụ án mất 2 năm để hoàn thành thì: 2,5 tháng cho Inception. 7 tháng cho Elaboration. 12 tháng cho Construction. 2,5 tháng cho Transtion.

7. Các giai đoạn công việc của RUP bao gồm:

Inception

Elaboration Construction Transition

11

Page 12: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

12

Page 13: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

7.1 Mô hình hóa nghiệp vụ (business modeling): mô tả cấu trúc và quy trình nghiệp vụ.Mô hình hóa nghiệp vụ nhằm mục đích nắm bắt quy trình hoạt động của tổ chức nơi cần xây dựng hệ thống phấn mềm bao gồm quy trình nghiệp vụ và cách thức thực hiện, đối tượng thực hiện nghiệp vụ, đối tượng thao tác của nghiệp vụ, các tác nhân bên ngoài có giao tiếp và ảnh hưởng đến hoạt động của tổ chức. Mô hình hóa nghiệp vụ là tùy chọn cho từng dự án. Business modeling định nghĩa 2 mô hình Business Use Case ( mô hình nghiệp vụ) và Business Object ( mô hình đối tượng nghiệp vụ)

7.2 Xác định yêu cầu (requirement): mô tả nghiệp vụ bằng phương pháp “tình huống sử dụng” (use case base method)

Thu thập tài liệu về yêu cầu của khách hàng, thống nhất giữa khách hàng và các nhà phát triễn về những gì mà hệ thống sẽ thực hiện. Giai đoạn này cần sự tham gia tích cực của khách hàng và kết thúc bằng một tài liệu được gọi là “Bản đặc tả yêu cầu phần mềm” trong đó bao gồm tập hợp các yêu cầu đã được duyệt và nghiệm thu bởi những người có trách nhiệm đối với dự án( từ phía khách hàng). “Bản đặc tả yêu cầu phần mềm” là nền tăng cho các hoạt động tiếp theo cho đến cuối dự án.

7.3 Phân tích và thiết kế (analysis & design): mô tả kiến trúc hệ thống thông qua các sơ đồ phân tích thiết kế.Mục đích của công đoạn phân tích thiết kế là:

Chuyển đổi các yêu cầu thành một bản thiết kế của hệ thống cần xây dựng.

Hình thành một kiến trúc vững vàng mạnh mẽ cho hệ thống. Thích nghi hóa bản thiết kế với môi trường cài đặt, thiết kế nó trở

thành một hệ thống có hiệu năng cao.

Mô hình thiết kế được xem như là một sự trừu tượng của mã nguồn, nó như là bản kế hoạch chi tiết thể hiện mã nguồn được xây dựng và viết như thế nào. Mô hình thiết kế chứa những lớp thiết kế được xây dựng thành những gói và hệ thống con với một giao diện được xác định rõ, thể hiện cái gì sẽ trở thành thành phần trong giai đoạn lập trình. Nó còn chứa những miêu tả những đối tượng trong lớp thiết kế được liên kết như thế nào được thể hiện trong use cases.

7.4 Cài đặt: thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình, (sử dụng các kết quả từ phân tích và thiết kế để tiến hành mã hóa và cài đặt các thành phần).

Mục đích của việc cài đặt: Cài đặt mã, tổ chức các thành phần, hệ thống con thành các tầng nhỏ. Cài đăt các lớp và đối tượng vào cac thành phần như: file nguồn, file nhị

phân, file thực thi,… Kiểm chứng những thành phần đã được phát triễn theo từng phần.

13

Page 14: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Tổng hợp các kết quả từ những cá nhân hay nhóm thành một hệ thống hoàn chỉnh, có thể thực thi được.

Hệ thống được thực hiện được là nhờ việc cài đặt các thành phần. Các quy trình miêu tả cách sử dụng lại các thành phần đã tồn tại cũng như các thành phần mới với trách nhiệm đã được xác định rõ, nó làm cho hệ thống dễ duy trì, bảo dưỡng và tăng khả năng tái sử dụng.

7.5 Thử nghiệm: mô tả các tình huống và kịch bản thử nghiệm, tiến hành thử nghiệm hệ thống phần mềm.

Mục đích của quá trình kiểm chứng là: Xác minh sự tương tác giữa những đối tượng. Kiểm tra tính đúng đắn của việc tích hợp các component trong phần mềm Kiểm chứng lại tất cả các yêu cầu đã được cài đặt có chính xác hay

không. Xác định các khuyết điểm (lỗi) trước khi được đưa vào triễn khai. Chắc chắn rằng các lỗi đã được sửa và kiểm tra lại.

RUP là một phương pháp lặp, điều này có nghĩa là phần mềm sẽ được kiểm chứng trong suốt dự án. Điều này cho phép phát hiện lỗi sớm, và giảm chi phí sửa lỗi.

Một khâu kiểm thử cuối cùng thường được thực hiện là nghiệm thu với sự tham gia của khách hàng trong vai trò chính để xác định hệ thống phần mềm có đáp ứng được yêu cầu của họ hay không.

7.6 Triển khai: đưa hệ thống phần mềm vào sử dụng.Mục đích của giai đoạn triễn khai là đưa sản phẩm phần mềm hoàn chỉnh

đến người dùng. Nó bao gồm hàng loạt các giai đoạn nhỏ: hoàn thiện và đóng gói phần mềm, phân phối phần mềm, cài đặt phần mềm và hướng dẫn khách hang sử dụng phần mềm.

Đây là giai đoạn cài đặt, cấu hình và “huấn luyện” khách hàng. Giai đoạn này sữa chữa những lỗi của phần mềm nếu có và phát triễn nhưng thay đổi mới được khách hàng yêu cầu như sửa đổi, thêm hay bớt chức năng/đặc điểm của hệ thống.

7.7 Quản trị cấu hình và quản trị thay đổi: kiểm soát các thay đổi và duy trì sự hợp nhất của các thành phần dự án.

Phân rã kiến trúc thành các subsystem và gán trách nhiệm thực hiện các subsystem cho mỗi nhóm, thiết lập vùng làm việc an toàn cho mỗi developer: cho phép cô lập với các thay đổi tạo bởi vùng làm việc khác, kiểm soát tất cả software artifact – models, code, docs,..,thiết lạp một vùng làm việc thích hợpthiết lập một cơ chế khả thi kiểm soát các thay đổi, đưa ra một đường ranh giới hạn chỗ hoàn tất của mỗi vòng lặp.

7.8 Quản trị dự án: quản lý toàn bộ quá trình làm việc của dự án.Quản trị dự án trong RUP được chia làm 2 mức độ: Giai đoạn mô tả toàn bộ dự án , giai đoạn lặp mô tả vòng lặp của các giai đoạn. Nó tập trung chính vào khía cạnh rất quan trọng của dự án đó là quá trình phát triễn

14

Page 15: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

lặp: quản lí rủi ro, lên kế hoạch dự án lặp trong cả vòng đời và trong từng vòng lặp riêng, và điều chỉnh tiến độ của dự án lặp.

7.9 Môi trường: đảm bảo các hạ tầng cần thiết để có thể phát triển được hệ thống.

Đây là việc tập trung vào những hoạt động để cấu hình lại những quá trình cho dự án. Nó miêu tả nhũng hoạt động được yêu cầu để phát triễn nhũng nguyên tắc chỉ đạo trong việc hỗ trợ dự án. Mục đích của nó là cung cấp những tổ chức phát triễn phần mềm để hỗ trợ đội phát triễn.

Quá trình thực hiện qua toàn bộ các pha (giai đoạn, phase) được gọi là chu trình phát triển; Kết quả của quá trình phát triển các RUP được gọi là các Artifact, bao gồm các mô hình (Một mô hình là một mô tả đầy đủ của hệ thống từ một phối cảnh cụ thể) và các bộ tài liệu, đó là:- Mô hình nghiệp vụ: là sự trừu tượng hóa tổ chức nghiệp vụ của hệ thống cần xây dựng.- Mô hình tình huống sử dụng: các yêu cầu mang tính chức năng của hệ thống phần mềm.- Mô hình phân tích và thiết kế: mô hình tổ chức các đối tượng của hệ thống phần mềm để giải quyết vấn đề của bài toán.- Mô hình triển khai: mô hình kiến trúc phần cứng và phần mề hệ thống cần thiết để triển khai.- Mô hình thử nghiệm: xác định các bước mà hệ thống sẽ được kiểm tra.- Bộ tài liệu về xác định yêu cầu hệ thống: mô tả những gì hệ thống cần lầm.- Bộ tài liệu thiết kế: mô tả hệ thống sẽ được xây dựng như thế nào.- Bộ tài liệu lập trình: mô tả các thành phần ứng dụng được phát triển như thế nào.- Bộ tài liệu triển khai: mô tả cấu trúc triển khai hệ thống.

8. Công cụ hỗ trợ

Để áp dụng được quy trình phát triển hệ thống phần mềm của Rational thì yêu cầu không thể thiếu là hệ thống các phần mềm công cụ hỗ trợ. Hãng Rational đã xây dựng một hệ thống công cụ như vậy, mà tiêu biểu và thường dùng nhất cho hệ thống tài chính ngân hàng là:- Phần mềm Rational Requisite Pro: cho phép phân tích các yêu cầu, xây dựng kế hoạch thực hiện, xác định các tác nhân của hệ thống cùng những tình huống sử dụng.- Phần mềm Rational Rose: cho phép xây dựng các mô hình phân tích, thiết kế, triển khai.- Phần mềm Rational XDE: cho phép vừa xây dựng các mô hình vừa kết sinh mà nguồn chương trình song song vớinhau.- Phần mềm Rational Clear Case: quản trị dự án phân tích thiết kế, cho phép làm việc theo nhóm.

Ngoài ra còn có: Rational Team Test, Rational Purify, Rational SODA…

15

Page 16: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

9. Đặc điểm phân biệt qui trình RUP với các qui trình phần mềm khác.9.1.RUP là kết quả của nhiều “ best Practices “

Quy trình phát triển hệ thống phần mềm của hãng Rational dựa trên cơ sở 6 bài học thực tế rút ra được từ quá trình thành công cũng như thất bại của các dự án, đó là: 

9.1.1. Phát triển tái lậpChia quá trình phát triển thành các chu kỳ khác nhau, ở những chu kỳ đầu

sẽ lựa chọn phát triển trước những chức năng mấu chốt, quyết định toàn bộ sự thành công hay thất bại của dự án, mỗi chu kỳ như vậy sẽ sinh ra một phiên bản thi hành được của ứng dụng đang phát triển. Việc phát triển tái lập như vậy có lợi điểm là: giải quyết được những rủi ro lớn trước khi có những đầu tư cho các bước tiếp theo, cho phép sớm tiếp nhận được những phản hồi của người sử dụng, thực hiện việc thử nghiệm và tích hợp một cách thường xuyên liên tục, cho phép tập trung triển khai từng phần hệ thống.

9.1.2. Quản trị yêu cầuQuản trị yêu cầu trong suốt quá trình phát triển đảm bảo giải quyết đúng

vấn đề gặp phải và xây dựng đúng hệ thống cần xây dựng; quản trị yêu cầu cho phép theo vết được các vấn đề đặt ra từ nhu cầu của người sử dụng hệ thống đến các đặc tính của hệ thống, các chức năng, các vấn đề về phân tích, thiết kế và kịch bản thử nghiệm.

9.1.3. Sử dụng kiến thức thành phầnChia nhỏ hệ thống phần mềm ra các thành phần nhỏ tương đối độc lập

nhưng lại có quan hệ với nhau theo những nguyên tắc nhất định. Việc sử dụng kiến trúc thành phần cho phép hệ thống xây dựng vừa đáp ứng được các yêu cầu ở hiện tại và những mở rộng trong tương lai, nó cho phép có thể tái sử dụng các thành phần đã được xây dựng trước đó hoặc có thể mua các thành phần đã được các hãng trên thế giới xây dựng từ đó có thể đẩy nhanh quá trình phát triển ứng dụng.

9.1.4. Mô hình hóa trực quanSử dụng ngôn ngữ chuẩn UML (Unified Modelling Language) để mô hình

hóa toàn bộ hệ thống phần mềm cần phát triển. Việc mô hình hóa trực quan

16

Page 17: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

bằng ngôn ngữ UML cho phép: thu thập được toàn bộ cấu trúc và hành vi của hệ thống, chỉ ra cách thức để các thành phần của hệ thống có thể kết hợp với nhau, đảm bảo sự thống nhất giữa bản thiết kế và bản chương trình phần mềm được xây dựng, nâng cao chất lượng sự trao đổi giữa các thành viên trong nhóm phát triển, giữa các nhóm phát triển với nhau.

9.1.5. Liên tục kiểm tra chất lượngViệc kiểm tra thử nghiệm được thực hiên ở tất cả các chu kỳ phát triển

ứng dụng và kiểm tra trên cả 3 mặt chính: kiểm tra về mặt chức năng ứng dụng (thử nghiệm tất cả các kịch bản tình huống sử dụng), kiểm tra tốc độ (hiệu năng) và kiểm tra độ tin cậy của ứng dụng.

9.1.6. Quản trị thay đổiĐảm bảo quản trị được các thay đổi về yêu cầu, các thay đổi phiên bản

hay thay đổi cấu hình trong suốt quá trình phát triển, triển khai, bảo trì và nâng cấp ứng dụng.

9.2.RUP tập trung vào kiến trúc phần mềm.

Kiến trúc là cái nhìn tổng thể vế thiết kế của hệ thống, loại bỏ các chi tiết và tập trung vào những tính chất quan trọng. RUP cung cấp phương hướng để từng bước xác định kiến trúc của hệ thống, đáp ứng các yêu cầu cho việc thay đổi và tái sử dụng phần mềm. RUP xác định 1 mối liên hệ giữa kiến trúc với các use case. Kiến trúc phải được xây dựng sao cho đáp ứng tất cả chức năng trong hiện tại và trong tương lai. Việc xác định kiến trúc đòi hỏi phải xác định những chức năng nào là quan trọng vào loại bậc nhất và chủ yếu của hệ thống. Kiến trúc phần mềm được xác định và cải tiến từng bước qua các giai đoạn(phase).

9.3.RUP là qui trình hướng chức năng hệ thống ( hướng Use Case).

17

Page 18: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Thay cho các cách mô tả truyền thống, RUP sử dụng mô hình Use Case để mô hình hóa chức năng cho từng loại người sử dụng. Ngoài ra, các Use Case còn đóng vai trò dẫn dắt quy trình phát triển đến các bước phân tích, thiết kế và kiểm chứng. Dựa trên các Use Case người phát triển tạo 1 loạt các mô hình phân tích, thiết kế, cài đặt và xem xét các mô hình đó có bao gồm các thành phần đáp ứng đầy đủ cho việc thực hiện các chức năng hệ thống hay không. Quy trình phát triển theo đó sẽ thực hiện các công việc dựa trên Use Case.

9.4.RUP là qui trình lặp và tăng trưởng từng bước.

Phát triển 1 phần mềm phức tạp đòi hỏi không chỉ thời gian mà còn kĩ thuật phân chia hệ thống thành những phần nhỏ. Quy trình gồm nhiều iteration để xây dựng 1 phần mềm. Mỗi tập chức năng của hệ thống sẽ được phát triển trong môt iteration và kết quả là sự hoàn chỉnh về tổng thể ngày càng gia tăng. Các iteration phải được thực hiện theo kế hoạch và có kiểm soát.

Một iteration là 1 trình tự các hoạt động được lên kế hoạch theo 1 tiêu chuẩn xác định và cho kết quả là 1 phiên bản relase của phần mềm.. Trong mỗi bước người phát triển chọn 1 nhóm các chức năng và tiến hành phân tích, thiết kế, cài đặt và kiễm chứng các chức năng này. Nếu iteration đáp ứng được mục đích đề ra thì chuyển sang 1 iteration mới với 1 nhóm chức năng kế tiếp.

18

Page 19: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

Ví dụ cụ thể để so sánh hay phân biệt RUP với phần mềm khác_ RUP và XP(Extreme Programming)

Giống nhau:

_ RUP không đề cập tỉ mỉ đến những định lý, tuy nhiên những nguyên lý cơ bản của phương pháp luận được đề ra rõ ràng và ta có thể thấy rõ, ví dụ như phản hồi từ khách hàng, sự thay đổi tăng dần, đầu tư ban đầu ít, thử nghiệm cụ thể và tuỳ biến theo từng nơi.

_ Có một số điểm tương đồng trong chiến lược lập kế hoạch, cả hai phương pháp đều phát biểu là không lập kế hoạch quá cụ thể ngay từ ban đầu bởi vì bạn không thể biết công việc gì là quan trong ngay từ lúc đầu. Cả hai phương pháp sử dụng quan niệm vòng quay của dự án, và nhấn mạnh sự ưu tiên theo mức độ quan trọng của các chức năng. User story và use case đều được dùng để định hướng kiến trúc phần mềm và đóng vai trò quyết định cho việc lập kế hoạch cũng như quá trình phát triển.

_ Phương pháp luận hướng đối tượng đều là công cụ chính của cả hai phương pháp.

_ User story trong XP giống hệt với Use case trong RUP.

_ Trong các yếu tố quan trọng cấu thành dự án là phạm vi dự án, tính đúng hạn, chất lượng và tài nguyên dự án, XP khuyến cáo chúng ta cần giữ cố định mục tiêu tính đúng hạn, chất lượng và tài nguyên. Phạm vi dự án có thể được phép điều chỉnh. RUP không đặt quan điểm một cách chặt chẽ như vậy, tuy nhiên RUP cho phép chúng ta dùng phương pháp xây dựng ma trận quyết định, trong đó các yếu tố đó có thể được điều chỉnh để phù hợp theo đặc tính của từng dự án. Dẫu RUP không phát biểu cụ thể như vây về sự cho phép thay đổi phạm vi dự án, tuy nhiên quan điểm tương đồng cũng thể hiện ở phương pháp phát triển phần mềm “ lớn dần “ của RUP.

_ Thử nghiệm cụ thể là một nguyên lý của XP và ta cũng có thể thấy ở trong RUP. Trong giai đoạn Elaboration, RUP đòi hỏi bạn phải tiến hành nghiên cứu những vấn đề quan trọng và và thử nghiệm những công nghệ mới.

_ Việc kiểm tra chương trình một cách tự động đều được XP và RUP khuyến cáo. XP dựa trên việc này để đảm bảo chi phí thấp cho mỗi sự thay đổi, tuy nhiên RUP thì không đòi hỏi.

Khác nhau:

_ Sự khác biệt đáng kể giữa RUP và XP là RUP hướng đến những dự án lớn hơn so với XP và vì thế, nó phức tạp hơn.

19

Page 20: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

_ Chi phí cho thay đổi và rủi ro :RUP cho rằng chi phí thay đổi tăng theo hàm mũ và tập trung vào cho những bước đầu tiên để giảm thiểu những chi phí về sau trong quá trình phát triển phần mềm. RUP quan tâm nhiều đến việc giảm thiểu rủi ro, theo dõi để tìm kiếm rủi ro và tiếp cận mục tiêu này từng bước từ quá trình xây dựng kiến trúc đến các quá trình phát triển phần mềm sau này.

_ XP cho rằng chi phí thay đổi không lớn lắm. XP cũng được xây dựng với mục tiêu giảm thiểu rủi ro (rủi ro ở đây định nghĩa là “những vấn đề cơ bản”) và hướng tới một thiết kế và kiến trúc tốt cũng như với mục tiêu trước tiên là cho ra lò những chức năng quan trọng nhất. Tuy nhiên, với sự giả định là giá cho sự thay đổi thấp, kiến trúc của phần mềm được phép phát triển một cách hữu cơ, như một bộ xương chỉ cần phát triển vừa đủ để nâng đỡ cơ thể tại thời điểm nhất định. Điều then chốt trong XP là sự đơn giản.

_ Tài liệu : XP khuyến nghị bạn có một “hành lý” gọn nhẹ và không phải luôn luôn cập nhật tài liệu dự án, trừ khi bạn cần dùng chúng. RUP nhìn nhận vấn đề theo một cách khác và dựa trên sự cập nhật kịp thời bản thiết kế nhằm phục vụ cho việc phát triển phần mềm tiếp theo.

_ Chia sẻ mã nguồn : XP khuyến nghị cần có một sự chia sẻ mã nguồn trong nhóm, điều này có nghĩa là bất kỳ ai vào bất kỳ lúc nào cũng có thể thay đổi bất kỳ phần nào của mã nguồn. RUP gợi ý rằng người thiết kế phần mềm có trách nhiệm cho một phân hệ hoặc một gói nào đó, tương tự như vậy đối với lập trình viên.

_ Vị trí và trách nhiệm của mỗi thành viên : Khi triển khai những công việc và vai trò trong dự án, RUP đồ sộ hơn nhiều so với XP. Những vai trò trong XP chỉ đơn thuần là Lập trình viên, Khách hàng, Coach và Manager. Đối với RUP thì ta cũng thấy lập trìntrinhfn, khách hàng, Coach tương tự như Architect và Manager tương tự như Project Leader. Tuy nhiên, những trách nhiệm của các vị trí này không giống nhau bởi vì có một số hành động hoặc những concept không có trong XP. Những vị trí trong XP thường có nhiều trách nhiệm hơn so với RUP, ví dụ Programmer là Designer, Customer có trách nhiệm xây dựng yêu cầu.

_ Các bước của dự án : RUP có 4 bước được định nghĩa rõ ràng : Inception, Elaboration, Construction, and Transition. XP thì nói về Exploration, Commitment và Steer với những đầu mục công việc khác nhau và phân chia thời gian theo những phương pháp khác nhau. RUP chia toàn bộ quá trình sản xuất phần mềm thành một số release. XP chia và thực hiện dự án theo từng bước kế tiếp. Những bước này được XP gợi ý trong khoảng thời gian ngắn hơn.

20

Page 21: LÊ NHƯ PHƯƠNG CNPM(06520355)_NGUYỄN THỊ NHƯ QUỲNH CNPM(06520374)_PHƯƠNG PHÁP RUP VÀ ƯNG DỤNG-26-10-2008

10. Kết luận:Từ những tìm hiểu trên chúng ta có thể thấy rằng RUP là 1 quy trình

phát triển phần mềm chuyên nghiệp và khá hoàn chỉnh, thích ứng với mọi tổ chức cũng như dễ dàng thích nghi với môi trường làm việc, giúp tạo nên những phần mềm chất lượng đáp ứng ngày càng cao nhu cầu phát triển của con người và khoa học kĩ thuật và việc áp dụng quy trình chuẩn để xây dựng hệ thống phần mềm đã trở thành một tất yếu đối với bất kỳ tổ chức, đơn vị nào muốn nâng cao và đảm bảo cho chất lượng của hệ thống phần mềm của mình. RUP với nhiều ưu điểm được các công ty trên thế giới cũng như Việt Nam áp dụng vào qui trình sản xuất phần mềm của mình và đã đạt được nhiều thành công lớn vì thế RUP hứa hẹn 1 tương lai phát triển lớn đầy tiềm năng.

21