Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
692,5 KB
Nội dung
MỤC LỤC LỜI NÓI ĐẦU Trong 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 trong đã 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 thể tránh khỏi 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 là hết sức 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ụ dẫn tới ứng dụng phải đắp thêm các chức năng mới nhưng hết sức chắp vá… 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 Rational 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. RUP là một quy trình vòng lặp phát triển phần mềm được tạo ra bởi công ty Rational Software, một bộ phận của IBM từ năm 2002 (IBM Rational). Hy vọng bài tìm hiểu sẽ cung cấp được những kiến thức cơ bản về quy trình phát triển phần mềm RUP như lịch sử phát triển, quy trình phát triển phần mềm RUP, cấu trúc quy trình…Do đây là lần đầu tiên đi sâu tìm hiểu về vấn đề này nên không tránh khỏi có những thiếu sót. Nhóm rất mong nhận được những ý kiến góp ý của thầy và các bạn. Xin chân thành cảm ơn! I. GIỚI THIỆU QUY TRÌNH RUP (Rational Unified Process) 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 lỗi kịp thời, không quản lý được các thay đổi của dự án. - RUP là một quy trình vòng lặp phát triển phần mềm được tạo ra bởi công ty Rational Software, một bộ phận của IBM từ năm 2002 (IBM Rational). - RUP không phải là một quy trình bó hẹp cụ thể đơn nhất nhưng là một 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, tất cả sẽ chọn các yếu tố cần thiết của quy trình để phù hợp với nhu cầu, quy mô của công ty, dự án và sản phẩm. - RUP 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 Rational 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 hỗ trợ các hoạt động giữa các nhóm, phân chia công việc cho từng thành viên trong nhóm, trong từng giai đoạn khác nhau của quá trình phát triển phần mềm. - RUP sử dụng hệ thống ký hiệu trực quan của UML và RUP được phát triển song song với UML. - RUP là kết quả của nhiều “best pratcices”, được hỗ trợ nhiều công cụ phát triển phần mềm. - RUP là một sản phẩm tiến trình có thể tùy biến. LỊCH SỬ PHÁT TRIỂN 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. II. RUP LÀ QUY TRÌNH TẬP TRUNG VÀO KIẾN TRÚC 1. Tầm quan trọng của kiến trúc Ngày nay, tất cả các hệ thống đơn giản đang xây dựng và việc quản lý các hệ thống lớn phức tạp đã trở thành mối quan tâm hang đầu của các tổ chức phát triển phần mềm. Họ muốn hệ thống của họ chạy nhanh hơn, có tính tái sử dụng ở phạm vi lớn và nó được xây dựng ở những thành phần đã sẵn có. Phần mềm trở thành một thứ của cải quan trọng và các tổ chức cần có công cụ để quản lý chúng. “Kiến trúc” được sử dụng ở khắp nơi, phản ánh sự quan tâm và sử dụng ngày càng lớn, nhưng một khái niệm rõ về nó thực sự không cần thiết vì sự đa dạng ngữ cảnh sử dụng của nó. Ba điểm chính được yêu cầu để một tổ chức tiếp nhận một kiến trúc: • Hiểu rõ mục đích: Tại sao kiến trúc quan trọng? Lợi ích đem lại từ nó? Khai thác nó như thế nào • Bản mô tả kiến trúc: Cách tốt nhất để đưa ra khái niệm rõ rang về kiến trúc là đạt được sự nhất trí về sự thể hiển của nó, để nó trở thành một vật cụ thể có thể giao tiếp, xem xét, phê bình và cải tiến một cách có hệ thống • Một quy trình kiến trúc: tạo ra và xác nhận kiến trúc như thể nào để đáp ứng các như cầu của dự án? Ai tạo ra nó? Cái gì là sưu liệu và tính chất luồng công việc Quy trinh RUP chứa một số câu trả lời cho ba điểm trên. Nhưng chúng ta hãy bắt đầu bằng cách định nghĩa rõ ràng hơn về kiến trúc phần mềm. 2. Định nghĩa kiến trúc phần mềm Kiến trúc phần mềm chứa các giải pháp quan trọng về: • Tổ chức của một hệ thống phần mềm • Sự lựa chọn các thành phần cấu tạo thành hệ thống và giao diện cảu chúng, cùng với hành vi của chúng, được xác định trong sự cộng tác cảu các thành phần này • Sự kết hợp của những thành phần trở thành hệ thống lớn • Loại kiến trúc biểu diễn một tổ chức, những thành phần và giao diện của chúng, sự cộng tác và sự kết hợp giữa chúng Kiến trúc phần mềm không chỉ liên quan đến cấu trúc và hành vi mà còn liên quan đến ngữ cảnh: cách sử dụng, chức năng, tốc độ, tái sử dụng, khả năng toàn diện, những rằng buộc, cân bằng về kinh tế, kỹ thuật va mỹ thuật. Kiến trúc là một phần của thiết kế, quyết định cách thức hệ thống được xây dựng. Để giúp các thành viên của hệ thống có thể giao tiếp, bàn bạc và tranh luận về kiến trúc, cần có sự trình bày theo cách hiểu của họ. Từ đó đưa ra khung nhìn về kiến trúc (architectural view)- Đó là mô tả hệ thống được đơn giản hóa từ một góc nhìn cụ thể, trình bày những thứ cụ thể có thể liên quan và bỏ đi những thực thể không thích hợp từ góc độ này. Cần phân biệt khung nhìn kiến trúc và mô hình: Mô hình là sự chình bày hoàn chỉnh về hệ thống, còn khung nhìn chỉ tập trung vào những gì có ý nghĩa về mặt cấu trúc, tức là những gì có tác động lớn đến cấu trúc hệ thống và tốc độ, sự hoàn thiện và tính tiến hóa của nó Quy trình RUP đề nghị 5 khung nhìn sau: Hình 1: 5 khung nhìn trong RUP • Khung nhìn logic (Logical View): Mô tả các yêu cầu chức năng của hệ thống, tức là những gì mà hệ thống nên làm cho người dùng cuối. Đó là sự trừu tượng của mô hình thiết kế và xác định các gói thiết kế chính, các hệ thống con và lớp chính • Khung nhìn thực hiện (Implementation View): mô tả tổ chức của các module (đơn thể) phần mềm tĩnh (như mã nguồn, tập tin dữ liệu, thành phần, tập tin thực thi, và các sưu liệu đồng hành khác) trong mooi trường phát triển. • Khung nhìn quy trình (Process View): mô tả khía cạnh xảy ra đồng thời của hệ thống thời gian thực (run-time) (task, thread, process cũng như sự tương tác giữa chúng). • Khung nhìn triển khai (Development View): cho thấy các tập tin thực thi và các thành phần khác nhau được trineer khai trên hệ thống như thế nào. Nó giải quyết vấn đề triển khai cài đặt và tốc độ • Khung nhìn chức năng hệ thống (Use Case View) đóng vai trò đặc biệt đối với kiến trúc. Nó chứa một vài kịch bản hay chức năng hệ thống chủ yếu. Ban đầu chúng được dùng để khám phá và thiết kế kiến trúc trong pha bắt đầu và pha chuẩn bị, nhưng sau đó chúng được dùng để xác nhận các khung nhìn khác nhau. 3. Mục đích của kiến trúc • Cho phép kiểm soát dự án một cách thông minh, quản lý độ phức tạp của nó và duy trì tính toàn vẹn của hệ thống • Cung cấp cơ sở có hiệu quả để có thể tái sử dụng trên quy mô lớn • Cung cấp nền tảng để quản lý dự án 4. Rup là quy trình tập trung vào kiến trúc phần mềm Hình 2: RUP tập trung vào kiến trúc phần mềm Quy trình RUP định nghĩa 2 sưu liệu chủ yếu có liên quan đến kiến trúc: • Mô tả kiến trúc phần mềm (Software Architecture Description-SAD) mô tả khung nhìn kiến trúc thích hợp đối với dự án • Kiểu mẫu kiến trúc (Architecture Template): dùng để xác nhận kiến trúc và làm cơ sở cho các thành phần còn lại của công việc phát triển. • Hai sưu liệu chủ chốt này làm nền tảng cho 3 sưu liệu khác • Những nguyên tắc thiết kế • Cấu trúc sản phẩm trong môi trường phát triển được dựa trên Physical View • Cấu trúc nhóm làm việc (team structure) Quy trình RUP định nghĩa: Kiến trúc sư (Architect) chịu trách nhiệm về cấu trúc. Tuy nhiên không chỉ kiến trúc sư là những người có liên quan đến kiến trúc, mà hầu hết các thành viên trong nhóm đều có liên quan đến việc định nghĩa và thực hiện kiến trúc, đặc biệt là trong pha chuẩn bị • Các thiết kế viên (designer): tập trung vào các lớp và các cơ cấu có ý nghĩa về mặt kiến trúc, hơn là tập trung vào chi tiết các lớp • Các nhà tích hợp (integrator): tích hợp các thành phần chính của phần mềm, để kiểm tra giao diện (interface). Họ tập trung chủ yếu vào việc loại bỏ những rủi ro về tích hợp có liên quan đến các thành phần chính • Các kiểm thử viên (Tester): kiểm tra kiểu mẫu kiến trúc về kiểu mẫu và tốc độ hoàn thiện 5.RUP là quy trình hướng chức năng Hình 3: RUP là quy trình hướng chức năng a) Khái niệm Phần lớn quy trình RUP tập trung vào mô hình hóa. Các mô hình giúp ta hiểu và định hình vấn đề cần giải quyết cúng như đưa ra giải pháp cho vấn đề đó. Quy trình RUP cung cấp một phương pháp hiệu quả để hiểu và mô hình hóa vấn đề: đó là kỹ thuật mô hình hóa chức năng hệ thống. Các chức năng hệ thống cung cấp một phương tiện để mô tả vấn đề theo một cách mà đa số các thành viên hệ thống (người sử dụng, các nhà phát triển và khách hàng) có thể hiểu được Để xây dựng một mô hình chức năng hệ thống, RUP định nghĩa 2 khái niệm chính: • Chức năng hệ thống: là một chuỗi các hành động tuần tự mà hệ thống thực hiện và tạo ra một kết quả có thể quan sát được đối với một tác nhân hệ thống cụ thể • Tác nhân hệ thống: là người hay một thứ nào đó nằm ngoài hệ thống và tương tác hệ thống Ngoài ra, mô tả chức năng hệ thống là mô tả nhưng gì mà hệ thống phải làm khi một chức năng hệ thống được thực hiện. Chức năng của hệ thống được định nghĩa bởi tập hợp các chức năng hệ thống, mà mỗi chức năng hệ thống trình bày một luồng các sự kiện cụ thể Một luồng sự kiện mô tả chuỗi các hành động giữa các tác nhân hệ thống và hệ thống. Nó được ghi bằng ngôn ngữ tự nhiên, theo một lối hành văn đơn giản, nhất quán và sử dụng chính xác thuật ngữ chuyên môn. Chúng ta không cần phải mô tả luồng thay thế bằng chức năng hệ thống riêng biệt. Thay vào đó, ta sẽ nhóm chúng với các luồng sự kiện khác có liên quan. Nhóm này định nghĩa một lớp chức năng của hệ thống. Thể hiện (instance) của một lớp chức năng hệ thống là một luồng cụ thể các sự kiện và nó được gọi là một kịch bản (scenairo) Mô hình chức năng hệ thống bao gồm tập hợp tất cả các chức năng hệ thống là một hệ thống hay một phần của hệ thống, cùng với tập hợp tất cả các tác nhân hệ thống tương tác với những chức năng hệ thống này, do đó nó mô tả đầy đủ chức năng hệ thống. Nó cung cấp một mô hình các chức năng dự định và môi trường của hệ thống, đồng thời cũng có thể xem như là một hợp đồng giữa khách hang và nhà phát triển. Quy trình RUP sử dụng lược dồ chức năng hệ thống và lược đồ hoạt động để mô tả trực quan mô hình trúc năng hệ thống, bao gồm các mối quan hệ có thể có của các chức năng hệ thống. b) Xác định chức năng hệ thống Các chức năng được tìm thấy khi ta xem xét các kết quả mà hệ thống cung cấp cho một tác nhân hệ thống và khi ta gom chuỗi các hành động mà hệ thống phải thực hiện để tạo ra các kết quả đó. Nói cách khác, chức năng hệ thống đáp ứng một mục đích cụ thể của một tác nhân hệ thống và được thực hiện bởi hệ thống. c) Cải tiến các chức năng hệ thống Chúng ta nên bắt đầu bằng cách phác thảo các chức năng hệ thống, trước khi tập trung vào chi tiết của nó. Ở vòng lặp ban đầu trong suốt pha chuẩn bị, chỉ có một ít các chức năng hệ thống có ý nghĩa về mặt kiến trúc được mô tả chi tiết. Mô hình thường chứa các chức năng hệ thống đơn giản đến mức không cần một mô tả chi tiết luồng sự kiện mà chỉ cần một phác thảo là đủ d) Tổ chức các chức năng hệ thống Tổ chức các chức năng hệ thống bằng cách sử dụng các gói chức năng hệ thống (package use case), tức là gom nhóm các chức năng hệ thống liên quan đến nhau. Ta cũng có thể khai thác các mối quan hệ giữa các chức năng hệ thống này. Để làm được điều này cần quan sát kỹ các sự kiện e) Các chức năng hệ thống trong chương trình RUP là một quy trình hướng chức năng. Do đó các chức năng hệ thống định nghĩa là cơ sở nền tản cho toàn bộ quy trình phát triển Mô hình chức năng hệ thống là kết quả của các luồng công việc, các yêu cầu. Trong đó, các chức năng hệ thống được dùng để nắm bắt những gì mà hệ thống phải thực hiện từ [...]... còn gọi là phát triển lặp) Hình 8: Quy trình lặp - Phát triển lặp là gi? • Một dự án sử dụng quy trình phát triển lặp lại có một vòng đời chứa các quy trình lặp 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... 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 2 Kiến trúc tổng quan của quy trình RUP Hình 1: Thể hiện cấu trúc của quy trình RUP Nó gồm 2 phần: Hình 4 : Quy trình RUP - Trục hoành: là chiều biểu diễn thời gian và vòng đời của quy trình: thể hiện mặt động của chu kì (cycles),... (Control changes to software) Phát triển tái lập Chia 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... nắm được phương pháp này và phát triển cho qui trình của họ • IV Tăng khả năng tái sử dụng CÁC PHA CỦA QUY TRÌNH RUP 1 Vòng đời Hình10: Vòng đời quy trình Để vận dụng được sáu bài học nói trên Rational đưa ra quy trình phát triển hợp nhất (Rational Unified Process – RUP) gồm các giai đoạn (phase) và các luồng công việc (workflow) Từ phương diện quản lý, vòng đời của một phần mềm theo RUP được chia theo... cách thức thực hiện, các bước để sử dụng một công cụ phần mềm cụ thể Một số khái niệm chủ chốt: như vòng lặp, sưu liệu, pha, rủi ro… 4 Cấu trúc động của quy trình a Quy trình tuần tự Lúc đầu quy trình tuần tự được xem như là một phương pháp hợp lý nhất để phát triển hệ thống Tuy nhiên trải qua nhiều thập niên, đã cho thấy các dự án sử dụng quy trình tuần tự thường ít thành công bởi những nguyên nhân... chính phải xử lý) Hình 7 b) Những thành phần bổ xung của quy trình Các Worker, Activity, Artifact là những thành phần cơ bản trong cấu trúc tĩnh của quy trình RUP Tuy nhiên một số thành phần khác được bổ xung vào các hoạt động và sưu liệu nhằm làm cho quy trình dễ hiểu và dễ sử dụng hơn, đồng thời cung cấp sự hướng dẫn toàn diện cho người thực hành Những thành phần bổ xung là: Các nguyên tắc (guidelines):... đả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 Liên tục kiểm tra chất lượng: Việ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... PHẦN MỀM RUP 1 Những bài học của Rational Unified Process 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à: • Phát triển tái lập (Develop software iteratively) • Quản trị yêu cầu (Manager requirements) • Sử dụng kiến trúc thành phần (Use component-base architectures) • Mô hình hóa trực... cho pha này: • Người dùng có hài lòng không? • Phí tổn thực sự so với phi tổn khi lập kế hoạch vẫn có thể chấp nhận được không? Các pha của quy trình RUP lập thành chu kỳ phát triển và tạo ra một thế hệ phần mềm Một sản phẩm phần mềm được tạo ra trong chu kỳ phát triển ban đầu Nếu sản phẩm vượt qua điểm mốc cuối cùng thì sản phẩm sẽ được cải tiến sang thế hệ kế tiếp bằng cách lặp lại các pha: bắt đầu,... tự như Worker và Activity, trong quy trinh RUP, sưu liệu cũng được ký hiệu bằng cách thêm đầu ngữ Sưu liệu Ví dụ: Sưu liệu Đặc tả chức năng hệ thống Các sưu liệu của quy trình RUP được tổ chức thành 5 nhóm: Nhóm quản lý: Bao gồm các sưu liệu liên quan nghiệp vụ phần mềm và quản lý dự án Nhóm các yêu cầu: Bao gồm các sưu liệu định nghĩa hệ thống phần mềm được phát triển Nhóm thiết kế: chứa mô tả . những kiến thức cơ bản về quy trình phát triển phần mềm RUP như lịch sử phát triển, quy trình phát triển phần mềm RUP, cấu trúc quy trình Do đây là lần đầu tiên đi sâu tìm hiểu về vấn đề này nên không. 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 Rational xây dựng và đã được hầu hết các hãng phần mềm trên thế giới áp. thể tái sử dụng trên quy mô lớn • Cung cấp nền tảng để quản lý dự án 4. Rup là quy trình tập trung vào kiến trúc phần mềm Hình 2: RUP tập trung vào kiến trúc phần mềm Quy trình RUP định nghĩa