M ột hệ thống phần mềm được tạo ra là để phục vụ người dùng. Thuật ngữ người dùng ở đây chỉ người dùng hệ thống hay các hệ thống ngoài khác tưcmg tác với hệ thống mà chúng ta xây dựng.
M ột ca sử dụng (use case) là một phần chức năng của hệ thống cung cấp cho người dùng để đem lại một kết quả nào đó khi sử dụng nó. Các ca sử dụng dùng để nắm bắt các yêu cầu chức năng. Tập hợp tất cả các ca sử dụng lập thành mô hình ca sử dụng mô tả chức năng đầy đủ của hệ thống. Mô hình này sẽ thay thế cho đặc tả chức năng hệ thống bằng phương pháp truyền thống. M ột đặc tả chức năng thường trả lời câu hỏi: hệ thống được dự kiến sẽ làm gì? Nhưng đối với ca sử dụng thì câu hỏi lại là: hệ thống dự kiến sẽ làm được gì cho mỗi người sử dụng?
Ca sử dụng không chỉ là một công cụ để đặc tả các yêu cầu của hệ thống mà còn điều khiển quá trình phân tích, thiết kế, cài đặt và kiểm tra theo nghĩa sau: Trước hết ca sử dụng phản ánh yêu cầu của hệ thống cần phải thực hiện để đem lại dịch vụ cho những người sử dụng và kết quả là những giá trị gia tăng mà họ nhận được. Dựa trên mô hình ca sử dụng, người phát triển tạo ra một loạt các mô hình phân tích, thiết kế và cài đặt nhằm vào việc thực hiện các ca sử dụng ở những mức khác nhau (từ mức khái niệm đến mức logic và phương tiện vật lý) và xem xét để sao cho mỗi mô hình này là phù hợp với việc thực hiện mô hình ca sử dụng được. Những người kiểm tra sẽ kiểm tra các cài đặt để đảm bảo rằng các thành phần của mô hình cài đạt thực hiện đúng các ca sử dụng. Do vậy, ta nói ràng: ca sử dụng điều khiển quá trình phát triển có nghĩa là quá trình phát triển tuân theo các luồng công việc được điều khiển bởi ca sử dụng.
Hệ thống kết nối thanh toán diện tứ - PaymentConnect - Trang 36 -
2.1.2. Quá trình phát triển lấy kiến trúc làm trung tàm
Vai trò của kiến trúc hệ thống phần mềm giống một khung nền dựa trên đó phần mềm được xây dựng và phát triển đến hoàn thiện. Khái niệm kiến trúc phần mềm chứa đựng những khía cạnh tĩnh và động có ý nghĩa nhất đối với hệ thống. Nó được phát triển dựa theo yêu cầu của tổ chức, theo cảm nhận của những người dùng và các tổ chức có liên quan khác. Mặt khác, nó cũng chịu ảnh hưởng của rất nhiều nhân tố khác, chẳng hạn như phần mềm của hệ thống, các khối xây dựng dùng lại được có sẵn, các cân nhắc về điều kiện triển khai, các hệ thống có sẵn trong môi trường tương tác với nó, và cả các yêu cầu phi chức năng (ví dụ như tính thể hiện, độ tin cậy). Kiến trúc là một cái nhìn thiết kế tổng thể những đặc điểm quan trọng nhất về hộ thống phần mềm khi tạm bỏ qua các chi tiết.
M ọi sản phẩm phần mềm đều bao gồm chức năng và hình thức thể hiện. Hai yếu tố này phải cân bằng với nhau để đem lại kết quả tốt nhất. Chức năng tưorng ứng với ca sử dụng và hình thức thể hiện tương ứng với kiến trúc. Do đó việc lựa chọn các ca sử dụng để phát triển được định hướng theo kiến trúc và phải phù hợp với kiến trúc. Nói cách khác, kiến trúc phải cung cấp chỗ dựa cho việc thực hiện các ca sử dụng ngay khi bắt đầu tiến trình phát triển hệ thổng và cả trong tương lai. Để có được một mẫu cho kiến trúc, nhà kiến trúc phải có hiểu biến chung về các chức năng chính, đó là các ca sử dụng chính yếu.
Tạo lập một đề cương sơ lược về kiến trúc được bắt đầu với các phần mềm nền, với những hệ khác thuộc môi trường mà hệ thống tương tác với chúng. Tiếp theo, người kiến trúc phải làm việc với một tập các ca sử dụng đã xác định thể hiện những chức năng chính yếu của hệ thống. M ỗi ca sử dụng được lựa chọn là sự cụ thể hoá đặc trưng của kiến trúc và được thực hiện dưới dạng các hệ thống con, các lớp, và các thành phần chủ yếu.
2.1.3. Tiến trìn h phát triển là quá trình lặp và tăng dán
Việc phát triển một phần mềm nói chung đòi hỏi một số lớn công việc và có thể diễn ra trong một khoảng thời gian. Việc chia nhỏ toàn bộ công việc thành các phần nhỏ hoặc các dự án con là yêu cầu thiết thực. M ỗi dự án con là một bước lặp và tạo nên một sự tăng trưởng. Điều này dễ dàng thực hiện được khi phát triển phần mềm hướng đối tượng vì phần mềm được cấu thanhf từ các thành phần độc lập ghép nối lại với nhau. Để đạt hiệu quả nhất, các bước lặp phải được điều khiển, tức là chúng phải được lựa chọn và tiến hành theo một cách có kê hoạch từ trước.
Lựa chọn cái gì cần cài đặt trong một bước lặp dựa trên hai yếu tố sau. Thứ nhất, bước lặp phải liên quan tới một nhóm các ca sử dụng để mở rộng tính khả dụng của hệ thống khi phát triển. Thứ hai, bước lặp phải giải quyết những rủi ro quan trọng nhất.
Hệ thống kết nối thanh toân điện tử - PaymentConnect - Trang 37 -
M ỗi bước lặp tiếp được xây dựng trên cơ sở các xuất phẩm (sản phẩm thiết kế) từ trạng thái mà nó vừa kết thúc ở bước lặp trước. Bởi vì là một dự án con, nên từ các ca sử dụng đã dùng, nó tiếp tục mỏ rộng việc thực hiện các công việc phân tích, thiết kế, cài đặt, và kiểm thử đối với các chức năng còn lại được nắm bắt trong các ca sử dụng tiếp theo để đưa chúng về dạng các mã nguồn thực thi được. Tuy nhiên, trong một vài bước ban đầu, người phát triển có thể chỉ thay thế một thiết kế còn sơ bộ bằng một thiết kế khác chi tiết hơn, phức tạp hon, vì vậy có thể chưa tạo ra sự tăng trưởng của xuất phẩm. Nhưng ớ
các bước sau, một sự tàng trưởng của xuất phẩm nói chung là tất nhiên và cần thiết.
M ột quá trình lặp có điều khiển sẽ mang lại rất nhiều lợi ích, đặc biệt giải quyết được những vấn đề liên quan đến các rủi ro.
2.2-VÒNG ĐỜI PHÁT TRIỂN p h ẩ n MỀM.
2.2.1. Các bước của quá trình phát triển
M ột quá trình phát triển phần mềm là một tập hợp của các hoạt động cần thiết chuyển từ các yêu câù người dùng thành một hệ thống phần mềm đáp ứng các yêu cầu đặt ra.
H ệ th ống
: > ph ầ n m ề m
Vòng đời phát triển một phần mềm thường gồm các giai đoạn sau: Xác định yêu cầu hệ thống, phân tích, thiết kế, thực thi, triển khai, vận hành và
bảo tr ì hệ thống. Tiến trình phát triển phần mềm hướng đối tượng dựa trên
công nghệ đối tượng, cụ thể là dựa trên các thành phần, tức là hệ thống phần mềm sẽ được xây dựng dựa trên các thành phần phần mềm kết nối với nhau qua các giao diện đã được xác định. Do vậy, nội dung thực hiện các giai đoạn trong tiến trình và nội dung mỗi bước có một sự khác biệt nhất định so với các quá trình phát triển hướng cấu trúc đã biết.
Vòng đời phát triển phần mềm đựợc chia thành bốn pha: sơ bộ, soạn ihảo, xây dựng và chuyển đổi. Trong mỗi pha lại chia thành nhiều bước lặp nhỏ. M ỗi bước lặp đều gồm một số công việc thực hiện một sản phẩm phần mềm: lập mô hình nghiệp vụ, xác định yêu cầu, phân tích, thiét kế, triển khai và kiểm thử. Tuy nhiên, bước lặp trong mỗi pha khác với bước lặp ở các pha
Tiến trình phát triển p hẩn m ềm
Hệ thống két nối thanh toán diện tử - PaymentConnect - Trang 38 -
khác với bước lặp ở các pha khác về nội dung cũng như khối lượng mỗi loại công việc thực hiện.
C hiến iưực và lập kếIvoạch
14p n>ỏ hình nghỉẹp vụ Xác định yỏu cểu I*hfin tích Thiết kỗ' Thực thi K iếm thừ T riể n khai Vận hành và háo trì CÁC BƯỚC LẬP Hình 11. Quy trình phát triển phần mềm
Với mỗi bước lặp, các hoạt động phát triển được thực hiện trên một phạm vi chỉ liên quan đến một số thành phần nhất định của hệ thống, và kết thúc mỗi bước lặp ta nhận được một xuất phẩm mới của hệ thống mà sẩn sàng để phân phối và thực hiện được. Nó bao gồm các mã nguồn được viết dưới dạng các thành hần mà có thể được biên dịch và thực thi, cùng với các hướng dẫn sử dụng và nhiều phụ phẩm khác. Tuy nhiên, các xuất phẩm này còn chưa phải là sản phẩm cuối cùng; vì sản phẩm cuối cùng phải là sản phẩm thoả mãn (tược yêu cầu của tất cả mọi người sẽ làm việc với nó.
2.2.2. Tiến trình thực hiện inột bước lặp
Quá trình thực hiện một bước lặp chính là nội dung cơ bản của tiến irình phát triển phần mềm hướng đối tượng. Dưới đây sẽ giới thiệu những nét khái quát nhất của toàn bộ quá trình phân tích và thiết kế hướng đối tượng sư dụng Ũ M L.
2.2.2.1. Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng
Đặc điểm của phân tích và thiết kế hướng đối tượng là nhìn nhận hệ thống như một tập các đối tượng tương tác với nhau để tạo ra một hành động cho một kết quả ở mức cao hơn. Để làm được điều đó người ta phải sử dụng hệ thống mô hình các đối tượng với các đặc trưng cơ bản sau đây:
- Tính trừu tượng hoá cao - Tính bao gói thông tin - Tính mô đun hoá
Hệ thống kết nối thanh toân điện tử - PaymentConnect - Trang 39 -
- Tính phân cấp
Như đã mô tả ở trên, quá trình một bước lặp bao gồm xác định yêu cầu của hệ thống, phân tích, thiết kế, triển khai và kiểm thử. Trong các hoạt động đó, hoạt động phân tích và thiết kế đặt ra nhiều vấn đề nan giải hơn cả.
Tiến trình thực hiện bao gồm các hoạt động quan trọng nhất mà sau đây chúng ta sẽ tập trung mô tả, đó là: lập mô hình nghiệp vụ, xác định yêu cầu, phftn tích và thiết kế.
2.2.2.2. Lập mô hình nghiệp vụ
2.2.2.2.1. N ội dung và sản phẩm của bước lập mô hình nghiệp vụ
Các công việc này được trợ giúp bằng việc xây dựng mô hình miền v à mô hình nghiệp vụ.
Kết quả của các hoạt động trên đáy cho ta các sản phẩm sau: - M ô hình miền, mô hình nghiệp vụ của hệ thống
- Bảng các thuật ngữ sử dụng (từ điển giải thích) - Xác định các yêu cầu bổ sung
2.2.2.22. Xây dựng mô hình nghiệp vụ của hệ thống
a. Xây dựng mô hình miền b. Xây dựng mô hình nghiệp vụ
Một mô hình nghiệp vụ được phát triển qua hai bước:
• Xây dựng một mô hình ca sử dụng nghiệp vụ bao gồm việc xác đ ịn h
các tác nhân nghiệp vụ mà các ca sử dụng nghiệp vụ mà các tác nhân sử dụng
• Phát triển một mô hình đối tượng nghiệp vụ gồm những người tham gia nghiệp vụ, các thực thể nghiệp vụ và các đơn vị công việc cùng nhau thực hiện các ca s ử dụng nghiệp vụ. Các quy tắc nghiệp v ụ v à
các điều chỉnh khác trong nghiệp vụ được đặt ra và có liên kết với các đối tượng khác là một bộ phận của mô hình.
2.2.2.2.3. Xác định các yêu cầu bổ sung 2.2.2.3. Xác định yêu cầu hệ thống
2 .2 .2 3 A. Nội dung và sản phẩm của bước xác định các yêu cầu
Kết quả của các công việc này cho ta các sản phẩm sau
- M ột phiên bản đầu tiên của Mô hình ca sử dụng (sơ bộ tổng thể) - M ô tả về các ca sử dụng
- Các bản mẫu giao diện - người sử dụng
Sau đó với bước lặp tiếp theo ta cũng nhận được các phiên bản mới của các chế tác này nhưng chúng đã được hoàn thiện, mở rộng và làm mịn dần trong quá trình lặp.
2.2.2.3.2. Xác định mô hình ca sử dụng Hoạt động này gồm có bốn bước: - Tìm các tác nhân.
- Tìm các ca sử dụng
Hộ thống kết nối thanh toán điện tử - PaymentConnect - Trang 40 -
- M ô tả mô hình ca sử dụng tổng thể ( ở đây cũng bao gồm việc chuẩn bị từ điển giải thích các thuật ngữ).
a. Tìm các tác nhân của hệ thống Hai tiêu chuẩn để tìm ra các tác nhân là:
- Phải có ít nhất một người dùng hay một hệ thống cụ thể để thực hiện vai trò của tác nhân dự kiến.
- Sự trùng lặp các vai trò của những tác nhân khác nhau đóng vai trong mối quan hệ với hệ thống phải là tối thiểu nhất.
b. Tìm các ca sử dụng
Từ danh sách các tác nhân đã được xác định ở trên, ta xác định các ca sử dụng mà mỗi tác nhân này sử dụng. Xác định ca sử dụng có một số cách:
- T u n ca sử dụng từ tác nhân (kích hoạt h a y tham gia dùng nó)
- Tìm ca sử dụng từ các sự kiện, đặc biệt sự kiện kích hoạt ca sử dụng. c. M ô tả ngắn gọn mỗi ca sử dụng
Ban đầu ta không cần thiết và cũng chưa thể mô tả một cách chi tiết các ca sử dụng. V ì vậy, ta nên mô tả mỗi ca sử dụng một cách ngắn gọn. Mô tá ban dầu các ca sử dụng ở mức cao có nội dung sau:
Tên ca sử dụng Là cụm từ bắt đầu bằng một động từ
Các tác nhân Danh sách các tác nhân (chỉ ra tác nhân khởi động)
Muc đích Mục đích của ca sử dụng
Mô tả khái quát Một mô tả ngắn gọn của tiến trình
Các tham chiếu Các chức nâng hệ thống thực hiện (với số tham chiếu) và các ca sử dụng khác liên quan
d. M ô tả M ô hình ca sử dụng tổng thể 2.2.2.3.3. Sắp thứ tự ưu tiên các ca sử dụng 2.2.2.3.4. Chi tiết hoá một ca sử dụng 2.2.2.3.5. Cấu trúc Mô tả ca sử dụng Mô tả ca sử dụng thường gồm:
- Trạng thái xuất phát (tiền điều kiện).
- Làm thế nào và khi nào thì ca sử dụng khởi động.
- Thứ tự thực hiện các hành động (thứ tự được xác định bởi chuỗi đã đánh số).
- Ca sử dụng kết thúc như thế nào và khi nào. - Trạng thái khi kết thúc (Hậu điều kiện).
- M ô tả các con đường (phương án) cơ bản mà dãy hành động xáy ra. - M ô tả các con đường (phương án) ngoại lệ (không bình thường).
M ột nhiệm vụ quan trọng nữa cũng cần đặc tả là những yêu cầu phi chức năng. Đa số các yêu cầu phi chức năng đều có liên quan tới một ca sử dụng cụ thể nào đó, chẳng hạn các yêu cầu về tốc độ, tính khả dụng, độ chính xác, thời gian phúc đáp, thời gian phục hồi. Các yêu cầu như vậy được gọi là các yêu cầu đặc biệt của ca sử dụng đang xét. Ta có thể viết chúng như là một phần tài liệu của M ô tả ca sử dụng.
Hệ thống kết nối thanh toán điện tử - PaymentConnect - Trang 41 -
2.2.2.3.6. Hình thức hoá mô tả ca sử dụng 2.2.2.3.7. Tạo bản mẫu Giao diện người dùng 2.2.2.3.8. Cấu trúc mô hình ca sử dụng
a. Xác định các mô tả chức năng chung
b. Xác định các mô tả chức năng bổ sung và tuỳ chọn c. Xác định các mối quan hệ khác giữa các ca sử dụng 2.2.2.4. Phân tích
Nhiệm vụ của pha phân tích là làm mịn dần các yêu cầu đã nhận được từ pha trước và tạo cấu trúc cho chúng. Thông qua đó, các yêu cầu được hiểu chính xác hơn, từ đó đưa ra cấu trúc cho toàn bộ hệ thống. Như vậy, các mục tiêu cần đạt của pha phân tích là:
- Đặc tả yêu cầu chính xác hơn so với những gì đã thu được
- Ngôn ngữ sử dụng là ngôn ngữ của nhà phát triển hệ thống, mang tính hình thức hơn.
- M ô hình cấu trúc các yêu cầu theo cách dễ hiểu hơn, dễ thay đổi và