LỜI CẢM ƠNLời đầu tiên, em xin gửi lời cảm ơn trân thành đến giảng viên Lê Thị Hoàng Anh đã hướng dẫn bọn em trong học phần “Công Nghệ Phần Mềm” này.Đây là một môn học quan trọng giúp bọ
Biểu đồ phân rã chức năng
1 Tìm hiểu về biểu đồ phân rã chức năng:
Biểu đồ phân rã chức năng (Functional Decomposition Diagram - FDD) là một công cụ mô hình hóa hệ thống dùng để phân tích và mô tả các chức năng của hệ thống FDD sử dụng các biểu đồ để mô tả các chức năng của hệ thống theo một cách trực quan và dễ hiểu.
Chức năng: o Hình chữ nhật o Tên chức năng là cụm động từ Cần đặt tên để hiểu rõ công việc cần làm của chức năng đó
Cây phân cấp dọc hoặc ngang:
- Nguyên tắc phân rã chức năng: o Theo phương pháp top down: Mức trên sẽ được phân rã thành nhiều mức dưới phải đảm bảo 2 tính chất:
Các chức năng mức dưới được phân rã phải thực sự tham gia vào thực hiện chức năng mức trên của nó
Việc thực hiện tất cả các chức năng mức dưới trực tiếp phải đảm bảo thực hiện được các chức năng của mức trên
- Các bước tiến hành: o Bước 1: Phân rã chức năng. o Bước 2: Phân rã các chức năng ở bước 1 theo nguyên tắc phân rã.
Mỗi chức năng không nên có quá 50 chức năng con ngay mức dưới nó
Không nên quá 6 mức (độ cao của cây tính từ gốc đến lá) đối với hệ thống lớn và không nên quá 3 mức đối với hệ thống nhỏ
Các chức năng cùng cấp độ nên có kích thước, độ phức tạp và tầm quan trọng tương đương với nhau Chức năng cấp lá (mức thấp nhất của cây) nên được giao chỉ một nhiệm vụ cụ thể (hoặc một nhóm nhiệm vụ liên quan).
Ví Dụ: Biểu đồ chức năng mức đỉnh của bài toán nhân viên duyệt đơn hàng cho khách hàng
Các bước xây dựng biểu đồ phân rã chức năng:
1 Xác định chức năng tổng thể của hệ thống.
2 Phân tích chức năng tổng thể thành các chức năng chính.
3 Phân tích các chức năng chính thành các chức năng chi tiết hơn.
4 Thể hiện các chức năng đã phân tích trên biểu đồ phân rã chức năng.
2 Biểu đồ phân rã chức năng cho bài toán quản lý bán hàng đồ ăn
BPMN 2.0 và Công cụ draw.io
1.Tìm hiểu BPMN 2.0, công cụ draw.io Định nghĩa:
BPMN (Business Process Model and Notation) là tập các ký hiệu chuẩn để vẽ biểu đồ mô hình hóa quy trình nghiệp vụ
Những sơ đồ này dùng để mô tả các hoạt động (quy trình nghiệp vụ) cần chuyển đổi số của bất kì doanh nghiệp hay cá nhân, tổ chức nào
Mục đích và lợi ích của biểu đồ BPMN:
Là cầu nối giữa các bên liên quan trong trong quy trình nghiệp vụ, hướng đến những người triển khai quy trình, cung cấp thông tin đầy đủ Cung cấp một tiểu chuẩn và ngôn ngữ chung cho các bên liên quan, thu hẹp khoảng cách giữa kế hoạch và triển khai thực tế bằng cách cung cấp chi tiết đầy đủ và rõ rang vào chuỗi các hoạt động kinh doanh
Việc lập sơ đồ có thể dễ hiểu hơn nhiều so với văn bản tường thuật, cho phép giao tiếp và hợp tác dễ dàng hơn để đạt được mục tiêu của một quy trình hiệu quả tạo ra kết quả chất lượng cao
Các trường hợp sử dụng BPMN (Types of BPMN Application)
BPMN có thể được sử dụng trong nhiều trường hợp khác nhau, bao gồm:
Tài liệu hóa và quản lý quy trình nghiệp vụ là quá trình ghi chép và theo dõi các quy trình vận hành kinh doanh hiện tại và cả các quy trình được đề xuất Việc này giúp các tổ chức có cái nhìn sâu sắc về cách thức hoạt động của mình, xác định các lĩnh vực có thể cải thiện để nâng cao hiệu quả và hiệu suất làm việc.
Tự động hóa quy trình nghiệp vụ: BPMN có thể được sử dụng để tạo các mô hình quy trình nghiệp vụ có thể được tự động hóa bằng phần mềm Điều này giúp các tổ chức tự động hóa các quy trình thủ công, cải thiện hiệu quả và giảm chi phí.
Quản lý thay đổi quy trình nghiệp vụ: BPMN có thể được sử dụng để quản lý các thay đổi đối với quy trình nghiệp vụ Điều này giúp các tổ chức đảm bảo rằng các thay đổi được thực hiện một cách có tổ chức và hiệu quả.
Một số kí hiệu BPMN thông dụng:
BPMN là các biểu đồ với một tập các thành phần đồ họa Gồm 4 nhóm chính như sau: a) Flow object: các đối tượng của luồng
Event: Sự kiện là cái để gây xảy ra một điểu gì đó
+ Là nhiệm vụ cơ bản của các bước diễn ra bởi vai trò của một đối tượng nào đó
+ Chú ý: Sub-process là một nhiệm vụ phức tạp nào đó hoặc các quy trình phụ
+ Được đại diện bởi hình thoi
+ Có nhiệm vụ là điểm xảy ra quyết định, rẽ nhánh hoặc hợp nhánh
+ Cổng có thể là exclusive (XOR), inclusive (OR), parallel (AND) hoặc dựa trên sự kiện
Làn bơi hoặc hồ bơi Nhằm phân làn, chia nhiệm vụ thuộc về vai trò trách nhiệm của một đối tượng nào đó c) Artifacts:
Là thành phần các thông tin bổ sung Bao gồm:
Annotation: chú thích Data Object: Dữ liệu, bao gồm:
+ Đối tượng dữ liệu (Data Object) + Đầu vào (Data input)
+ Đầu ra (Data output) + Kho dữ liệu (Data Store) Group: nhóm d) Connecting:
Dùng để kết nối các đối tượng Bao gồm
Luồng tuần tự (Sequence Flow) Luồng thông điệp (Message Flow) Liên kết (Association)
Liên kết dữ liệu (Data Association)
Ví dụ minh họa về BPMN:
2.Biểu đồ Business Process Modeling cho quy trình tạo đơn hàng
UML 2.0, Công cụ Visual Paradigm cho biểu đồ USECASE
Ngôn Ngữ Mô Hình Thống Nhất (UML) là một ngôn ngữ chuyên dụng để mô tả, thiết kế và xây dựng hệ thống phần mềm Sự phát triển của UML mang tính toàn diện, nó đóng vai trò quan trọng trong quá trình xây dựng kiến trúc và phát triển hệ thống phần mềm.
U - Unified - Thống nhất: Thống nhất các phương pháp phân tích và thiết kế hướng đối tượng trước đó Các khái niệm và ký hiệu giống nhau cho các miền ứng dụng khác nhau và các quy trình phát triển khác nhau Các khái niệm và ký hiệu giống nhau trong toàn bộ vòng đời phát triển.
M - Modeling - Mô hình hóa: Tạo một sự trừu tượng hoàn chỉnh về mặt ngữ nghĩa của một hệ thống.
L - Language - Ngôn ngữ: Một ngôn ngữ đồ họa.
UML đóng vai trò là công cụ hỗ trợ đắc lực cho quy trình phát triển và thiết kế phần mềm, góp phần nâng cao hiệu quả triển khai dự án bằng cách giảm thiểu rủi ro và gia tăng khả năng tái sử dụng mã nguồn.
2 Chức năng và mục tiêu
Mô hình hoá phần mềm: UML cung cấp các khái niệm và biểu đồ để mô hình hoá các khía cạnh của phần mềm, bao gồm lớp, đối tượng, use case, sequence, state, activity, component, deployment, và interaction.
Thiết kế phần mềm: UML cung cấp các công cụ để thiết kế các lớp, đối tượng, giao diện và các quan hệ giữa chúng, giúp tăng tính tái sử dụng và dễ bảo trì của phần mềm.
Phát triển phần mềm: UML giúp xác định và quản lý các yêu cầu của phần mềm, phát triển các giải pháp thiết kế, thử nghiệm và triển khai phần mềm.
Tài liệu hóa phần mềm: UML giúp tạo ra tài liệu cho phần mềm như tài liệu thiết kế, tài liệu hướng dẫn sử dụng, tài liệu bảo trì, và các tài liệu khác liên quan đến phát triển và triển khai phần mềm.
Tăng tính hiệu quả và sự linh hoạt trong phát triển phần mềm.
Giảm thiểu rủi ro và chi phí trong quá trình phát triển và triển khai phần mềm.
Tăng tính tái sử dụng và khả năng bảo trì của phần mềm.
Cung cấp một phương tiện chung để giao tiếp và hiểu nhau giữa các thành viên trong đội ngũ phát triển phần mềm.
Cung cấp một cách thức chuẩn để mô hình hoá phần mềm, giúp tăng tính chuẩn mực và tính nhất quán của các thiết kế và triển khai phần mềm.
Tạo ra tài liệu cho phần mềm, giúp tăng tính đáng tin cậy và tính chuyên nghiệp của phần mềm.
3 Ưu nhược điểm Ưu điểm
Tăng tính hiệu quả và sự linh hoạt trong phát triển phần mềm: UML cung cấp các công cụ và khái niệm để mô hình hoá các khía cạnh của phần mềm, giúp tăng tính hiệu quả và sự linh hoạt trong quá trình phát triển phần mềm.
Giảm thiểu rủi ro và chi phí trong quá trình phát triển và triển khai phần mềm: UML giúp tăng tính chuẩn mực và tính nhất quán của các thiết kế và triển khai phần mềm, từ đó giảm thiểu rủi ro và chi phí trong quá trình phát triển và triển khai phần mềm.
Tăng tính tái sử dụng và khả năng bảo trì của phần mềm: UML cung cấp các công cụ để thiết kế phần mềm theo cách modulize, tăng tính tái sử dụng của phần mềm và giảm chi phí bảo trì trong tương lai.
Cung cấp một phương tiện chung để giao tiếp và hiểu nhau giữa các thành viên trong đội ngũ phát triển phần mềm: UML giúp các thành viên trong đội ngũ phát triển phần mềm có thể hiểu và giao tiếp với nhau một cách dễ dàng và hiệu quả.
Tạo ra tài liệu cho phần mềm: UML giúp tạo ra các tài liệu cho phần mềm, giúp tăng tính đáng tin cậy và tính chuyên nghiệp của phần mềm.
Phù hợp với nhiều quy trình phát triển phần mềm: UML có thể được sử dụng trong nhiều quy trình phát triển phần mềm khác nhau, từ các quy trình phát triển phần mềm truyền thống đến các quy trình phát triển phần mềm nhẹ nhàng hơn như Agile.
Số lượng notation hạn chế.
Mô hình hóa ở mức độ chung với quy trình có rẽ nhánh, lặp lại nhiều lần, có những sự kiện theo thời gian → khó biểu động phức tạp.
Không thể hiện được rõ sự tích hợp giải pháp kỹ thuật vào quy trình nghiệp vụ. Áp dụng với quy trình đơn giản độ phức tạp không cao.
Có thể sử dụng một số cộng cụ khác: BPMN, … để đạt được hiệu quả cao.
II Công cụ Visual Paradigm cho biểu đồ UseCase
Visual Paradigm là một công cụ mô hình hóa UML mạnh mẽ có thể được sử dụng để tạo biểu đồ trường hợp sử dụng Nó cung cấp nhiều tính năng giúp tạo các biểu đồ trường hợp sử dụng chuyên nghiệp và dễ hiểu, bao gồm:
Test Case trong kiểm thử
I Tìm hiểu về test case trong kiểm thử
Một khía cạnh không thể thiếu trong quá trình kiểm thử phần mềm, đóng vai trò như một kịch bản cụ thể để kiểm tra tính năng, chức năng, hoặc phần của ứng dụng Nó là một bản mô tả chi tiết về các bước thực hiện, dữ liệu nhập và kết quả mong đợi để đảm bảo rằng phần mềm hoạt động đúng và đáp ứng yêu cầu của người dùng Test case giúp xác minh rằng phần mềm không có lỗi hoặc lỗi được giảm thiểu đến mức tối thiểu trước khi phát hành cho người dùng cuối.
Test case không chỉ giúp xác minh tính đúng đắn của phần mềm, mà còn giúp đội phát triển và kiểm thử có một hướng dẫn rõ ràng và thống nhất trong quá trình kiểm thử Điều này đảm bảo rằng toàn bộ quy trình kiểm thử được thực hiện một cách có hệ thống và đảm bảo chất lượng của sản phẩm phần mềm.
2 Vai trò của TestCase: o Vai trò hàng đầu của Test case là đảm bảo rằng các tính năng của ứng dụng hoặc phần mềm được thiết kế hoạt động chính xác và đúng như kỳ vọng Đây là bước đầu tiên không thể thiếu mà mọi Tester đều phải thực hiện Xây dựng Test case không chỉ là nhiệm vụ cơ bản, mà còn là tầng mốc quan trọng cho sự thành công của quá trình kiểm thử. o Xác định Phạm vi Kiểm thử: Test case giúp xác định rõ ràng phạm vi của quá trình kiểm thử Điều này giúp đảm bảo rằng tất cả các khả năng hoạt động của ứng dụng được thử nghiệm, từ đó tránh được những lỗ hổng có thể gây ra sai sót không mong muốn. o Phát hiện Lỗi và Cải thiện Chất lượng Phần mềm: Test case giúp phát hiện ra các lỗi, bug và thiếu sót trong tính năng của ứng dụng Điều này giúp nhóm phát triển cải thiện chất lượng phần mềm, từ việc khắc phục những vấn đề cụ thể đến việc tối ưu hóa quy trình phát triển tổng thể. o Hỗ trợ Quá trình Vận hành, Bảo trì và Cập nhật: Test case không chỉ giúp tạo ra sản phẩm chất lượng ban đầu mà còn đóng góp vào việc duy trì và cập nhật sau này Những lỗi được phát hiện và sửa chữa trước khi ứng dụng ra mắt giúp cho quá trình vận hành, bảo trì và cập nhật sau này trở nên dễ dàng và hiệu quả hơn. o Đảm bảo Đáp ứng Mong đợi của Người dùng: Test case đóng vai trò quan trọng trong việc đảm bảo rằng phần mềm đã đáp ứng đầy đủ mong muốn của người dùng Nếu có bất kỳ sai sót nào, chúng có thể được xác định và sửa chữa trước khi sản phẩm được tung ra thị trường. o Đa chiều và Tái sử dụng: Tester có khả năng thực hiện nhiều Test case cùng lúc để nhìn nhận phần mềm từ nhiều góc độ khác nhau Điều này giúp tạo ra một hình ảnh toàn diện về hiệu suất và tính năng của ứng dụng. o Tính Tương lai và Tái sử dụng: Một ưu điểm khác của Test case là khả năng tái sử dụng Những Test case đã xây dựng có thể được sử dụng trong tương lai, giúp tiết kiệm thời gian và nguồn lực Điều này tạo nên tính liên tục và bền vững trong quá trình kiểm thử.
3 Các nhóm chính của TestCase:
Các loại Test ase được chia thành 4 nhóm chính sau đây:C o GUI Test C ase: Bao gồm tất cả những Test ase được xây dựng đểC kiểm tra giao diện người dùng đồ họa. o Positive Test C ase: Bao gồm những Test ase tích cực, hợp lệ, nhậpC dữ liệu đúng. o Negative Test C ase: Bao gồm những Test ase tiêu cực, không hợpC lệ, nhập dữ liệu sai. o Combination Test C ase: Bao gồm những Test ase nằm giữa 2 loạiC positive và negative Những Test case này có nhiều bước đúng, sai đan xen nhưng bước cuối cùng luôn đúng.
Các trường hợp thử nghiệm có thể được phân loại dựa trên mục đích chúng phục vụ trong thử nghiệm Là một chuyên gia đảm bảo chất lượng, việc biết được sự khác biệt giữa chúng sẽ giúp bạn tập trung nỗ lực và chọn hình thức kiểm tra phù hợp
Functionality test case: Đây là những trường hợp kiểm thử cơ bản và rõ ràng nhất để viết Chúng đảm bảo rằng mỗi tính năng trong hệ thống của bạn hoạt động chính xác
Performance test case: Kiểm thử này đảm bảo hệ thống chạy đủ nhanh Nó đảm bảo rằng tất cả các yêu cầu hệ thống hoạt động như mong đợi về tốc độ, khả năng mở rộng hoặc độ ổn định
Kiểm thử đơn vị là kỹ thuật thường được các lập trình viên phần mềm thực hiện để kiểm tra tính năng của các đơn vị riêng biệt trong mã code, cụ thể là các mô-đun, hàm hoặc phương thức, với mục đích xác định xem các đơn vị này hoạt động có đúng như kỳ vọng hay không.
User interface test case (UI): Điều quan trọng cần nhớ là giao diện người dùng là một phần của hệ thống tổng thể chứ không chỉ là một lớp vỏ nơi chức năng xuất hiện Các trường hợp kiểm thử giao diện người dùng kiểm tra xem mỗi thành phần giao diện người dùng có hoạt động chính xác, hiển thị và dễ sử dụng hay không
Security test case: Các trường hợp kiểm tra bảo mật giúp đảm bảo rằng sản phẩm hoặc hệ thống hoạt động bình thường trong mọi điều kiện, kể cả khi người dùng có ý đồ xấu cố gắng truy cập trái phép hoặc làm hỏng hệ thống Những trường hợp thử nghiệm này bảo vệ tính bảo mật, quyền riêng tư và bảo mật dữ liệu.
Integration test case: Những trường hợp này đảm bảo rằng các thành phần ứng dụng hoạt động cùng nhau như mong đợi Các trường hợp thử nghiệm này kiểm tra xem các mô-đun hoặc thành phần có tích hợp liền mạch để tạo thành một sản phẩm hoàn chỉnh hay không.
Kiểm thử trường hợp cơ sở dữ liệu là những trường hợp đảm bảo rằng cơ sở dữ liệu tuân thủ theo các yêu cầu về mặt chức năng và phi chức năng Chúng đảm bảo hệ thống quản lý cơ sở dữ liệu (DBMS) đáp ứng mọi yêu cầu kinh doanh.
Usability test case: Các trường hợp kiểm tra khả năng sử dụng giúp kiểm tra xem người dùng có thể sử dụng ứng dụng thành công hay không Những điều này xác định liệu người dùng có thể dễ dàng sử dụng hệ thống mà không gặp khó khăn hay nhầm lẫn hay không Họ cũng xác minh xem người dùng có thể điều hướng hệ thống bằng các quy trình và chức năng phổ biến hay không.
User acceptance test case: Các trường hợp kiểm thử chấp nhận của người dùng xác minh rằng ứng dụng đáp ứng các yêu cầu kinh doanh của nó trước khi người dùng chấp nhận nó Những điều này xác định xem người dùng chấp nhận hay từ chối đầu ra do một hệ thống cụ thể tạo ra trước khi đưa ra môi trường sống.
Kiểm thử hồi quy đảm bảo rằng các thay đổi trong quá trình phát triển không làm ảnh hưởng đến các chức năng hiện có Kiểm thử hồi quy được thực hiện sau khi thay đổi mã hiện có để xác minh xem các chức năng hiện có hoặc được thừa hưởng tiếp tục hoạt động như mong đợi sau khi thay đổi.
5 Những kỹ thuật Test case điển hình: