1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát triển phần mềm hướng đối tượng sử dụng UML

97 851 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 45,4 MB

Nội dung

Phương pháp hướng đối tượng Trong cách tiếp cận hướng đối tượng, hệ thống được xem như một tập hợp các thực thể tác động qua lại với nhau để thực hiện mục đích nào đó.. Phân tích hướng đ

Trang 1

LUÂN VĂN THAC s ĩ■ •

N gười hướng dẫn khoa học :

T S Đ O À N V Ã N BA N

€>ẠI HỌC auc'c G iA HÀ NÔ!

TRÌINGTÂM TIỈÕIiGTlN.THƯ VIỆW

HÀ NỘI - 2002

Trang 2

1 Lý do chọn đề tà i 1

2 Mục đích nghiên cứu 2

3 Nhiệm vụ nghiên cứu 2

4 Giới hạn đề tài 3

5 Phương pháp nghiên cứu 3

6 Cấu trúc của luận văn 3

PHẨN NỘI DUNG 4

Chương 1: PHƯƠNG PHÁP HƯỚNG Đ ố i TƯỢNG VÀ CÁC CÔNG CỤ HỖ TR Ợ 4

1.1 Giới thiệu quá trình phát triển hướng đối tượng 4

1.1.1 Phương pháp tuần tự 4

1.1.2 Phương pháp hướng chức năng 4

1.1.3 Phương pháp tạo mẫu thử 5

1.1.4 Phương pháp hướng đối tượng 5

1.2 Các công cụ hỗ trợ phát triển hướng đối tượng .7

1.2.1 Khái quát về U M L 7

1.2.2 Rational Rose 10

Chương 2. PHÂN TÍCH, THIÊT KÊ HƯỚNG Đ ố i TƯỢNG SỬ DỤNG U M L 12

2.1 Phân tích và nắm bắt yêu cầu 13

2.1.1 Hiểu các yêu cầu 13

2.1.2 Trường hợp sử dụng 17

2.2 Phân tích hệ thống 24

2.2.1 Mô hình khái niệm 24

2.2.2 Mô hình hành vi của hệ thống 36

2.2.3 Các hợp đồng cho thao tác của hệ thống 39

Trang 3

2.3.1 Biểu đồ cộng tác 42

2.3.2 Biểu đồ tuần tự của đối tượng 49

2.3.3 Thiết kế biểu đồ lớp 50

Chương 3: PHÂN TÍCH VÀ TH IẾT KÊ HỆ THỐNG QUẢN LÝ T H I TRÊN M Ạ N G 52

3.1 Các trường hợp sử dụng của hệ thống 53

3.1.1 Trường hợp sử dụng ở mức cao 53

3.1.2 Biểu đồ trường hợp sử dụng mức tổng quát 54

3.2 Trường hợp sử dụng ở mức chi tiế t 55

3.2.1 Mức chi tiết của trường hợp sử dụng Quản trị danh mục 55

3.2.2 Mức chi tiết của trường hợp sử dụng Quản trị thi 58

3.3 Mô hình khái niệm của hệ thống 61

3.4 Các biểu đồ tuần tự của hệ thống 62

3.4.1 Biểu đồ tuần tự của hệ thống cho Use case Cập nhật lớ p 62

3.4.2 Biểu đồ tuần tự của hệ thống cho Use case Quản trị th i 62

3.4.3 Biểu đồ tuần tự của hệ thống cho Use case Thi 62

3.5 Một số hợp đồng cho các hoạt động của hệ thống 63

3.5.1 Hợp đồng cho Use case "Tổ chức th i" 63

3.5.2 Hợp đồng cho Use case "Cập nhật lớp" 63

3.6 Biểu đồ cộng tác 64

3.6.1 Biểu đồ cộng tác cho hoạt động chấm điểm 64

3.6.2 Biểu đồ cộng tác cho hoạt động tạo đề thi 64

3.6.3 Biểu đồ cộng tác cho hoạt động tạo danh sách thí sinh 65

3.6.4 Biểu đồ cộng tác cho hoạt động thêm lớp .65

3.6.5 Biểu đồ cộng tác cho hoạt động sửa lớp 65

Trang 4

3.7.2 Biểu đồ lớp thực th ể 67

3.7.3 Biểu đồ lớp giao diện 68

3.8 Biểu đồ tuần tự của hệ thống 69

3.9 Biểu đồ triển khai 72

Chương 4: C À I ĐẶT HỆ THỐNG QUẢN LÝ TH I TRÊN M Ạ N G 73

4.1 Tóm tắt bài toán hệ thống quản lý thi trên mạng 73

4.2 Kết quả phân tích, thiết kế hệ thống quản lý thi trên mạng 73

4.3 Phát sinh mã chương trình tự động bằng Rose 75

4.3.1 Giới thiệu 75

4.3.2 Phát sinh mã chương trình hệ thống quản lý thi trên mạng 79

4.4 Cài đặt chi tiết một số chức năng cơ bản của hệ thống quản lý thi trên mạng 81

PHẨN KẾT L U Ậ N 91

1 Những đóng góp của đề tà i 91

2 Hướng phát triển của để tài 92

T À I L IỆ U T H A M K H Ả O 93

Trang 5

Trong quá trình phát triển của công nghệ phần mềm, nhiều dự án, nhiều chương trình phát triển phần mềm đã được thực hiện, nhưng hoặc là không kết thúc, hoặc xây dựng xong nhưng không sử dụng được hoặc đã xây dựng xong nhưng còn nhiều lỗi không đáp ứng được yêu cầu của người sử dụng Vì để xây dựng một hệ thống phần mềm tốt thì phải giải quyết ba vấn đề chính:

- Dữ liệu, đối tượng và cấu trúc của chúng,

- Những hành vi thể hiện các chức năng và quá trình trong hệ thống,

Điều khiển hành vi tổng thể hệ thống.

Trong thực tế, cấu trúc dữ liệu và hành vi của hệ thống phải thường xuyên thay đổi theo yêu cầu của người sử dụng Do vậy, việc khảo sát, phân tích, thiết kế hệ thống là một công việc rất phức tạp và quan trọng của quá trình xây dựng một hệ thống thông tin Phải phân tích kỹ bài toán, lựa chọn phương pháp phát triển hệ thống thích hợp để cho hệ thống có tính mở, dễ thích nghi, chất lượng cao, giúp cho công việc bảo trì hệ thống đỡ tốn kém.

Trong tất cả các giải pháp phát triển phần mềm hiện nay, giải pháp hướng đối tượng đã được xem như là giải pháp tốt cho những phần mềm thông dụng và nó có nhiều ưu điểm so với phương pháp hướng chức năng truyền thống [6] Có thể giải pháp hướng đối tượng sẽ còn tiếp tục được cải tiến cùng với mô hình phát triển phần mềm Nhưng hiện nay và trong tương lai, đó là một giải pháp tốt cho phần mềm mà chúng ta cần phát triển.

Bên cạnh đó, UML (Uniíìel Modelling Language) là một ngôn ngữ mô hình hoá dùng để đặc tả, mô hình, xây dựng và trình bày các báo cáo về những nhân tố, thành phần của một hệ thống phần mềm [3] Ngôn ngữ này thể hiện trực quan được những quyết định và sự hiểu biết của chúng ta về hệ thống cần xây dựng Nó còn được dùng để thiết kế, cài đặt, bảo trì và kiểm soát thông tin của hệ thống ƯML hiện là chuẩn công nghiệp của thế giới về ngôn ngữ đặc tả cho ngành công nghệ phần mềm

L J Phái triển phẩn mềm hướng đối tượng sử duiìỊ> UML.

Trang 6

Vì vậy, việc nghiên cứu phương pháp phân tích, thiết kế hướng đối tượng sử dụng UML để phát triển phần mềm là cần thiết.

Đề tài tập trung nghiên cứu phương pháp phân tích, thiết kế hướng đối tượng sử dụng ƯML và ứng dụng để xây dựng “Hệ thống quản lý thi trên mạng".

Thực hiện đề tài này giúp tôi hiểu sâu hơn về các bước để phân tích, thiết kế một ứng dụng và phương pháp mô hình hoá hệ thống phần mềm hướng đối tượng bằng công cụ UML và Rational Rose (còn gọi tắt là Rose).

Kết quả luận văn này chỉ là bước đầu nghiên cứu khoa học, chắc chắn còn rất nhiều hạn chế Rất mong được ý kiến đóng góp quý báu của quý thầy cô và các bạn.

2 Mục đích nghiên cứu

Mục đích của đề tài là tìm hiểu phương pháp phân tích, thiết kế hướng đối tượng sử dụng UML - một ngôn ngữ mô hình hoá thống nhất đang được sử dụng phỗ biến trên thế giới.

ứng dụng vào việc phân tích, thiết kế “Hệ thông quản lý thi trên mạng” trong môi trường Rational Rose.

- Thực hiện cài đặt những chức năng chính của hệ thống bằng ngôn ngữ Java.

3 Nhiệm vụ nghiên cứu

Để đạt được mục đích đề ra, đề tài tập trung nghiên cứu và giải quyết các nhiệm

- Nghiên cứu các bước phát sinh mã trình cho những thiết kế tốt trong Rose.

- Nghiên cứu ngôn ngữ lập trình hướng đối tượng với Java.

£U Pliát triển phần mềm hướng đối tượng sử dung UML.

Trang 7

4 Giới hạn đề tài

Do điều kiện, yêu cầu thời gian có hạn, đề tài lại thuộc lĩnh vực khá mới mẻ, tài liệu bằng Tiếng Việt lại ít, nên đề tài chỉ giới hạn nghiên cứu các bước phân tích, thiết kế hệ thống ứng dụng và cài đặt một số chức năng chính của hệ thống.

5 Phương pháp nghiên cứu

- Phương pháp tổng kết các công trình nghiên cứu khoa học ở trong và ngoài nước có liên quan đến luận văn: Phương pháp này giúp nhìn nhận để kế thừa và phát huy những công trình nghiên cứu khoa học ở trong nước cũng như trên thế giới.

- Phương pháp tìm hiểu thực tế: Thực hiện phương pháp này bằng cách phỏng vấn, toạ đàm, lấy ý kiến chuyên gia nhằm thu thập thêm tài liệu, thông tin thực tế cần phục vụ trong công trình nghiên cứu của đề tài.

- Phương pháp thực nghiệm: Thông qua thực nghiệm để kiểm chứng kết quả nghiên cứu lý thuyết của đề tài.

6 Câu trúc của luận văn

Ngoài phần mở đầu, phần kết luận, luận văn gồm có 4 chương, 17 bảng, 62 hình vẽ.

Chương 1: Giới thiệu về phương pháp hướng đối tượng và các công cụ hỗ trợ được sử dụng để phát triển hệ thống phần mềm

Chương 2: Nêu các bước phân tích, thiết kế một hệ thống bằng phương pháp hướng đối tượng sử dụng UML, với các ví dụ minh hoạ là hệ thống thi trên mạng.

Chương 3: Phân tích, thiết kế hệ thống quản lý thi trên mạng.

Chương 4: Giới thiệu các bước cần thực hiện để phát sinh mã chương trình cho những phần thiết kế tốt trong Rose và cài đặt một số giao diện chính cho chương trình hệ thống quản lý thi trên mạng bằng ngôn ngữ Java.

L J Phát triển phấn mềm hưởng đối tirợng sử dụng lì ML.

Trang 8

1.1 Giới thiệu quá trình phát triển hướng đối tượng

1.1.1 Phưong pháp tuần tự

Đây là phương pháp xuất hiện lâu đời từ khi máy tính chưa phát triển mạnh, nó chia việc phân tích hệ thống thành các bước thực hiện tuần tự, mỗi bước tiến hành rất công phu, kết thúc bước trước thì mới có thể thực hiện bước sau.

Nhược điểm của phương pháp này là công việc phân tích được thực hiện bằng tay,

do đó hiệu suất công việc không cao, khả năng làm việc tập thể bị hạn chế, bảo trì

và phát triển hệ thống rất tốn kém.

1.1.2 Phưong pháp hướng chức năng

Đây là phương pháp phân tích tiếp cận từ trên xuống và thực hiện kiểm tra chéo theo cách tiếp cận từ dưới lên.

Những đặc trưng chính của phương pháp này:

- Nó bị ảnh hưởng mạnh mẽ bởi các ngôn ngữ lập trình truyền thống như: ALGOL, PASCAL và c, hầu hết các ngôn ngữ lập trình đó đều sử dụng chương trình con (routines) như là sự trừu tượng ở mức cao nhất của chúng.

- Việc phân tích tiếp cận từ trên xuống điển hình chỉ là chia nhỏ dần hệ thống này thành các chức năng đơn giản hơn, trái lại dữ liệu được sử dụng để trao đổi giữa các chức năng đó.

LU Phát triển phần mềm hướng đối tượng sử dụng UML.

Trang 9

- Những sản phẩm đã phát triển với cách tiếp cận này là khó bảo trì để đáp ứng yêu cầu thường xuyên thay đổi của người sử dụng Vì tất cả các chức năng chia sẻ một số lượng lớn các dữ liệu, và chúng cần phải biết là bao nhiêu dữ liệu cần được lưu trữ Để thay đổi một cấu trúc dữ liệu, chúng ta cần phải sửa đổi hầu hết các chức năng có liên quan đến cấu trúc.

- Quá trình phát triển thường không ổn định vì sự thay đổi trong yêu cầu chủ yếu

sẽ được phản ảnh trong chức năng của nó Tuy nhiên thật khó có thể giữ lại cấu trúc thiết kế nguyên bản khi mà hệ thống cần phát triển theo đúng yêu cầu cần thay đổi.

1.1.3 Phương pháp tạo mẫu thử

Mục đích của phương pháp này là nhằm đưa cho người dùng các mẫu thử của hệ thống chưa được hoàn thiện, sau đó thực hiện các sửa chữa cần thiết đến khi đáp ứng được các yêu cầu của người dùng Để tạo ra một mẫu thử phải có các bước khảo sát, phân tích, thiết kế và thử nghiệm Trong quá trình phát triển hệ thống, căn cứ vào đánh giá của người dùng để tiến hành bổ sung, sửa chữa các mẫu thử cho phù hợp với các yêu cầu của người dùng Điều này có nghĩa là các giai đoạn khảo sát, phân tích, thiết kế và thử nghiệm được thực hiện lặp lại nhiều lần.

1.1.4 Phương pháp hướng đối tượng

Trong cách tiếp cận hướng đối tượng, hệ thống được xem như một tập hợp các thực thể tác động qua lại với nhau để thực hiện mục đích nào đó Các thực thể của thế giới thực được biểu diễn trong mô hình hệ thống là các đối tượng Những đối tượng này trao đổi thông tin với nhau bằng cách gửi và nhận thông điệp.

Phân tích hướng đối tượng (OOA) gồm các bước sau:

- Tìm hiểu kỹ bài toán,

- Xác định rõ các đặc tả yêu cầu của người sử dụng hệ thống phần mềm,

- Xác định các đối tượng và thuộc tính của chúng,

- Xác định hành vi của các đối tượng,

- Xác định mối quan hệ tương tác giữa các đối tượng, các thông điệp và sự truyền thông điệp giữa các đối tượng.

Thiết kế hướng đối tượng (OOD) xác định kiến trúc của hệ thống theo cách tiếp cận từ dưới lên và xác định các chức năng của hệ thống theo cách tiếp cận từ trên

L U P h á t triển ph ần m ềm hướng đ ố i tượng sử dụng UML

Trang 10

xuống Đặc biệt là xây dựng cấu trúc phân cấp các lớp và tận dụng khả năng sử dụng lại các thiết kế đã có Thiết kế hướng đối tượng gồm các bước:

- Kiểm tra các đối tượng đã tạo ra trong quá trình phân tích,

- Xây dựng các đặc tả cho các đối tượng, các lớp và mối quan hệ của chúng,

- Xây dựng cấu trúc phân cấp cho các lớp,

- Thiết kế chương trình chính.

Lập trình hướng đối tượng(OOP) tập trung vào phát triển những thành phần độc lập gọi là đối tượng Một đối tượng có thể hình thành hoặc xây dựng từ những đối tượng khác Trong hệ thống các đối tượng trao đổi với nhau bằng cách gửi và nhận thông điệp để thực hiện nhiệm vụ đặt ra Mỗi đối tượng đều có dữ liệu riêng và các hành vi xử lý dữ liệu đó Khi trao đổi với nhau các đối tượng không biết được chi tiết về dữ liệu cũng như các thuật toán xử lý trong đối tượng khác Các thông điệp này phụ thuộc vào đối tượng, chỉ đối tượng nào nhận được thông điệp mới phải làm

gì đến các thông điệp khác.

Nguyên tắc cơ bản của phương pháp hướng đối tượng là xem hệ thống như là một tập các thực thể tác động qua lại với nhau để thực hiện một số công việc nào đó Các thực thể của thế giới thực được biểu diễn trong mô hình hệ thống là các đối tượng, gộp chung những dữ liệu và những hàm cần thiết vào một đơn vị cấu trúc gọi là lớp (class) để mô tả về các thực thể Trong một lớp, dữ liệu được tổ chức sao cho các đối tượng khác không thể truy cập trực tiếp được mà chỉ các hàm được xác định trong lớp đó mới có quyền truy cập Việc bao gói dữ liệu để ngăn cấm việc truy nhập trực tiếp từ bên ngoài gọi là sự che giấu thông tin.

Những ưu điểm của tiếp cận hướng đối tượng:

- Những đối tượng thiết kế tốt trong hệ thống được sử dụng lại để kết hợp thành

hệ thống có chất lượng cao hơn.

- Quy ước truyền thông điệp giữa các đối tượng đảm bảo cho việc trao đổi thông tin giữa các đơn thể trong hệ thống và hệ thống bên ngoài dễ dàng hơn.

- Nguyên lý che giấu thông tin hỗ trợ cho việc xây dựng các hệ thống thông tin an toàn.

m Phát triển phần mềm hướng dối tượng sử dụng UML.

Trang 11

- Nguyên lý thiết kế dựa vào dữ liệu phù hợp với ngữ nghĩa của mô hình trong cài đặt.

- Lập trình hướng đối tượng và kỹ thuật thừa kế cho phép xác định các đơn thể và

sử dụng ngay khi chúng chưa thực hiện đầy đủ các chức năng, sau đó mở rộng các đơn thể đó mà không ảnh hưởng đến các đơn thể khác.

- Tiếp cận hướng đối tượng cung cấp công cụ hỗ trợ giải quyết độ phức tạp của bài toán.

1.2 Các công cụ hỗ trợ phát triển hướng đối tượng

Phương pháp phân tích thiết kế hướng đối tượng cung cấp cho chúng ta công cụ đơn giản nhưng đủ mạnh để xác định các đối tượng và xây dựng các đơn nguyên của

hệ thống cần phát triển như UML và Rose [4],

1.2.1 Khái quát về UML

Được đưa ra từ năm 1997, UML đã nhanh chóng được cồng nghiệp phần mềm chấp nhận làm ngôn ngữ đổ hoạ chuẩn để đặc tả, xây dựng và làm tài liệu cho các hệ thống có thành phần chính là phần mềm.

1.2.1.1 Giới thiệu UML

UML là ngôn ngữ mô hình hoá và là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm Nó mô tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa chính mô hình hoá [4] Các khung nhìn của ngôn ngữ được quan sát từ góc độ phát triển và triển khai hệ thống, nó không khó hiểu và đễ sử dụng Như mọi ngôn ngữ mô hình hoá khác, UML có ký pháp (các biểu tượng sử dụng trong mô hình) và tập các quy tắc sử dụng nó.

• UML là một ngôn ngữ

Ngôn ngữ phải có từ vựng và quy tắc tổ hợp các từ trong từ vựng đó nhằm mục đích giao tiếp Ngôn ngữ mô hình là ngôn ngữ có từ vựng và quy tắc tập trung vào biểu diễn về mặt vật lý và khái niệm của hệ thống Vì vậy, ƯML là ngôn ngữ chuẩn công nghiệp để lập kế hoạch chi tiết phần mềm.

L J Phái triển phân mềm hướng đối tượng sử dụng UML.

Trang 12

• UML là ngôn ngữ để hiển thị

Đối với nhiều lập trình viên, không có khoảng cách giữa ý tưởng cài đặt và chuyển nó thành mã, họ suy nghĩ vấn đề và viết ngay mã trình cho nó Tuy nhiên, việc giao tiếp giữa mô hình khái niệm với những cái khác trong vòng đời phát triển phần mềm sẽ gặp khó khăn khi mọi người không sử dụng chung một ngôn ngữ cho

dự án Đặc biệt có những dự án và tổ chức phát triển phần mềm theo ngôn ngữ riêng của họ và khó có thể hiểu được đối với những người mới tham gia dự án Hơn nữa, một số vấn đề của hệ thống phần mềm sẽ được hiểu rõ ràng hơn thông qua mô hình thay cho ngôn ngữ lập trình văn bản Cuối cùng, nếu người viết mã không bao giờ viết thành các mô hình thì thông tin có thể mất hoặc không thể viết lại một cách đầy

đủ nếu chỉ xem mã lệnh trong trường hợp người viết mã chuyển đi nơi làm việc khác.

Để khắc phục những nhược điểm trên, ta sẽ sử dụng ngôn ngữ UML để xây dựng các mô hình khác:

- Mỗi ký hiệu trong ƯML mang một ngữ nghĩa rõ ràng, nên nếu một người trong đội phát triển viết mô hình UML thì những người khác có thể hiểu được, thậm chí các công cụ khác cũng có thể dịch được những mô hình đó một cách rõ ràng.

- Các cấu trúc mô tả dưới dạng các mô hình đồ hoạ nên dễ dàng nắm bắt.

- Mô hình rõ ràng sẽ làm cho việc trao đổi, giao tiếp trở nên dễ dàng.

• UML là ngôn ngữ đặc tả

Đặc tả là mô tả rõ ràng những điểm mấu chốt của vấn đề UML cho phép mô tả chính xác, không nhập nhằng và hoàn thiện ƯML tập trung đặc tả toàn bộ các quyết định phân tích, thiết kế và cài đặt quan trọng trong quá trình phát triển và triển khai

hệ thống phần mềm.

• UML là ngôn ngữ đê tạo mã

UML không phải là ngôn ngữ lập trình trực quan, những mô hình của nó có thể kết nối trực tiếp tới các ngôn ngữ lập trình khác nhau Có nghĩa rằng, có thể ánh xạ

từ mô hình trong UML sang một ngôn ngữ lập trình như Java, c++ hoặc Visual Basic, thậm chí có thể sang các bảng trong cơ sở dữ liệu quan hệ hoặc cơ sở dữ liệu

C ữ Phái triển phần mềm htcánỵ đối tượng sử dụng UML.

Trang 13

• UML là ngôn ngữ làm tài liệu

UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó UML cho khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hoá các hoạt động lập kế hoạch và quản lý sản phẩm.

- UML cho biết giới hạn của hệ thống và các chức năng của nó thông qua các trường hợp sử dụng (Use case) và tác nhân (Actor).

- Trong UML, các trường hợp sử dụng được mô tả bằng biểu đồ logic.

- Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đổ lớp.

- Mô hình hoá các hành vi đối tượng bằng biểu đồ chuyển trạng thái.

- Phản ánh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đổ triển khai.

- Mở rộng các chức năng bằng stereotypes.

1.2.1.2 Làm th ế nào đ ể ứng dụng UML vào đề tài

Dùng các tiêu chuẩn của việc phân tích thiết kế theo hướng đối tượng, và dùng hệ thống ký hiệu ƯML để diễn giải - để thực hiện những điểm sau:

- Xác định các tác nhân của hệ thống: Tác nhân là người hay hệ thống khác có tương tác với hệ thống của chúng ta.

- Xác định các trường hợp sử dụng: Trường hợp sử dụng là tài liệu mô tả về một chuỗi các sự kiện của một tác nhàn Ngoài ra xác định thêm trường hợp sử dụng nào tương ứng với tác nhân nào, trường hợp sử dụng chính là mô tả của một quá trình Biểu đồ trường hợp sử dụng (Use case Diagram) được dùng để diễn tả các trường hợp sử dụng của hệ thống và mối quan hệ giữa các trường hợp sử dụng với các tác nhân.

- Xác định các đối tượng của hệ thống, mối liên kết và các thuộc tính của chúng.

Mô hình khái niệm dùng để diễn tả điều này.

- Xác định các thông điệp được gửi đi giữa các đối tượng Biểu đổ cộng tác dùng

để diễn tả điều này.

LU Phár triển phần mềm hướng dối tượng sử dụng UML.

Trang 14

- Xác định các mối liên kết giữa các đối tượng (hay nói cách khác giữa các lớp và các phương thức của mỗi lớp ) như khi được thực hiện Biểu đổ lớp (Class Diagram) dùng để diễn tả điều này.

để người phát triển hệ thống có thể sử dụng mô hình như kế hoạch chi tiết cho việc xây dựng hệ thống Rational Rose hỗ trợ giải quyết vấn đề muôn thủa là giao tiếp của đội ngũ dự án với khách hàng và làm hồ sơ tài liệu cho hệ thống.

Theo phong cách lập trình truvền thống thì sau khi đã xác định yêu cầu hệ thống, người phát triển sẽ lấy một vài yêu cầu, quyết định thiết kế và viết mã trình Một số người phát triển khác cũng làm như vậy với yêu cầu khác, thiết kế khác Cách làm này dẫn tới nhiều khó khăn cho ai đó muốn hiểu và quản trị toàn bộ hệ thống, họ khó thấy được quyết định thiết kế đã được làm trước đó Nếu không có tài liệu thiết

kế thì khó đảm bảo rằng hệ thống được xây dựng đúng là hệ thống mà người sử dụng nghĩ tới Tuy rằng các yêu cầu được làm tài liệu đầy đủ, nhưng thiết kế chỉ tồn tại trong đầu của người phát triển nào đó, người khác sẽ không có ý tưởng gì về cấu trúc hệ thống Nếu người phát triển chuyển đi nơi khác thì dự án sẽ gặp rất nhiều khó khăn Phong cách khác phát triển hệ thống là sau khi xác định yêu cầu, các thiết

ÉJJ Phát triển phần mém hướng đối tượng sử dụng UML. _

Trang 15

kế phải làm tài liệu chi tiết Mọi người tham gia phát triển cùng trao đổi quyết định thiết kế trước khi viết mã trình.

• Khách hàng và người quản lý dự án s ử dụng các biểu đ ồ trường hợp s ử dụng

để có cái nhìn bao quát về hệ thống và thống nhất với nhau về phạm vi dự án.

• Người quản lý dự án sử dụng biểu đồ và tài liệu để chia nhỏ dự án thành tiểu

dự án có thể quản lý được.

• Thông qua tài liệu trường hợp sử dụng, người làm tài liệu kỹ thuật có thể bắt đầu viết hướng dẫn sử dụng và kế hoạch huấn luyện sử dụng.

• Các phân tích viên và người phát triển, thông qua các biểu đồ tuần tự và biểu

đồ cộng tác, thấy được logic mà hệ thống phải tuân thủ, các đối tượng trong

hệ thống và các thông điệp giữa các đối tượng.

• Người phát triển sử dụng biểu đồ lớp, biểu đồ biến đổi trạng thái để có cái nhìn chi tiết về các phần hệ thống và chúng có quan hệ với nhau như thế nào.

• Đội ngũ kiểm tra sử dụng các biểu đ ồ thành phần và biểu đ ồ triển khai để thấy được các tệp thực hiện (exe) nào, tệp thư viện động (dll) nào và các thành phần khác cần được tạo lập; các thành phần này được triển khai trên mạng như thế nào.

• Toàn bộ đội ngũ dự án sử dụng mô hình để đảm bảo rằng các yêu cầu có thể được chuyển sang mã trình và ngược lại, mã trình có thể được chuyển trở lại yêu cầu hệ thống.

Hơn nữa, Rational Rose còn hỗ trợ phát sinh mã khung chương trình trong nhiều ngôn ngữ khác nhau như: Java, c + + , Visual Basic, Oracle8, [4].

H ì Phát triển phần mềm hướng đối tượng sử dụng UML.

Trang 16

Chương 2. PHẢN TÍCH, THIÊT KÊ HƯỚNG Đ ố i TƯỢNG

SỬ DỤNG ƯML

ƯML là hệ thống ký hiệu nhằm vào việc mô hình hệ thống sử dụng các khái niệm về hướng đối tượng.

Một quá trình phát triển phần mềm thường có các giai đoạn sau:

• Xác định bài toán (lập kế hoạch dự án),

• Phân tích và nắm bắt yêu cầu,

Quá trình phân tích và thiết kế được thực hiện theo các bước:

Bước 1: Phân tích và nắm bắt yêu cầu của hệ thống: Nhiệm vụ của giai đoạn này là xác định hướng đối tượng để xây dựng các đơn thể công việc Bao gồm các hoạt động sau:

- Nêu tổng quan của dự án, mục đích, các chức năng và thuộc tính của hệ thống.

- Xác định các trường hợp sử dụng.

- Xây dựng biểu đồ trường hợp sử dụng.

Bước 2: Phân tích hệ thống

- Tạo mô hình khái niệm, danh sách các đối tượng.

- Xây dựng từ điển chuyên ngành.

- Lập biểu đổ tuần tự mô tả hoạt động của hệ thống.

- Xác định các thao tác hệ thống.

- Tạo hợp đồng cho các thao tác hệ thống.

ữ Phát triển phần mém hướng đối tượng sử dụng UML.

Trang 17

Bước 3: Thiết kế hệ thống: Nhiệm vụ của giai đoạn này là tìm sự tương ứng giữa đối tượng trong không gian bài toán với đối tượng trong không gian lời giải, xác định kiến trúc và mô hình tính toán của hệ thống, bao gồm các hoạt động sau:

- Lập biểu đồ cộng tác.

- Hoàn thiện biểu đồ tuần tự.

- Thiết kế biểu đồ lớp chi tiết.

2.1 Phân tích và nám bắt yêu cầu

2.1.1 Hiểu các yêu cầu

**** Giới thiệu

Việc tạo các đặc tả yêu cầu chính xác và đầy đủ là yếu tố cần thiết để xây dựng thành công một dự án phần mềm.

• Cái gì sẽ được tạo ra trong khi phân tích và nắm bắt yêu cầu?

• Nhận biết các phần tử này như thế nào?

• Cách diễn đạt chúng.

Tại sao cần sử dụng trường hợp sử dụng?

- Chúng không chỉ trả lời cho câu hỏi “ Hệ thống có thể làm gì?” mà còn trả lời cho câu hỏi “ Hệ thống có thể làm gì cho mỗi người dùng?”

- Chúng xác định các chức năng hệ thống và mối quan hệ giữa những chức năng.

- Chúng cũng xác định những khái niệm và những đối tượng có liên quan trong miền ứng dụng Những khái niệm và đối tượng này rất quan trọng trong việc mô hình hoá cấu trúc của hệ thống, và trong các thiết kế thu được sau này dưới dạng các lớp và đối tượng phần mềm.

- Trường hợp sử dụng cũng được sử dụng để mô tả cho những yêu cầu phi chức nâng, ví dụ như những yêu cầu về sự thực hiện, khả năng sẵn dùng, độ chính xác và bảo mật cụ thể đối với một trường hợp sử dụng.

- Các trường hợp sử dụng cũng rất quan trọng đối với việc lên kế hoạch dự án, thiết kế và kiểm thử hệ thống.

LU Phái triển phần mềm liướng đối tượng sử dụng UML.

Trang 18

*1* Đặc tả các yêu cầu

Đặc tả các yêu cầu là mô tả những điều cần hoặc những mong muốn đối với sản phẩm Mỗi yêu cầu phải được diễn tả một cách rõ ràng để dễ dàng trao đổi được với khách hàng và các thành viên của đội phát triển phần mềm Đặc tả bao gồm các phần sau:

- Tổng quan dự án phát triển phần mềm.

- Mục tiêu dự án.

- Các chức năng hệ thống.

- Các thuộc tính hệ thống (các yêu cầu phi chức năng).

- Từ điển thuật ngữ - định nghĩa các thuật ngữ liên quan.

- Các trường hợp sử dụng tường thuật các tiến trình.

- Mô hình khái niệm - mô hình của những khái niệm quan trọng và mối quan hệ của chúng trong lĩnh vực ứng dụng.

Những phần này được tạo ra thông qua sự tổng hợp và phân loại kết quả từ:

- Những phát biểu của khách hàng về nhu cầu của họ, báo cáo khảo sát sơ bộ, và các tài liệu điện tử.

- Các kết quả phỏng vấn.

- Các cuộc gặp mặt xác định yêu cầu, v.v

Bốn thành phần đầu tiên của đặc tả yêu cầu bao gồm:

£ 3 Plìál triển phần mềm hướng đối tượng sử dụng UML.

Trang 19

2 Mục tiêu dự án

Mục tiêu dự án mô tả hệ thống sao cho phù hợp với toàn bộ mục tiêu thương mại hoặc mục tiêu chiến lược khách quan của tổ chức đặt làm phần mềm

Ví dụ: Mục tiêu của hệ thống quản lý thi trên mạng:

• Giúp sinh viên làm bài thi trên mạng

• Quản lý thi và quản lý điểm

• Đảm bảo khách quan, công bằng

• Giảm chi phí trong kỳ thi

• Tiết kiệm thời gian, công sức

3 Các chức năng hệ thống

Các chức năng hệ thống là những gì hệ thống có thể làm được và các chức năng của hệ thống phải được phân loại theo thứ tự ưu tiên để tránh bị bỏ sót Có thể phân loại các chức năng như sau:

- Các chức năng hiển thị: là các chức năng mà có thể thực hiện được và đối tác

ngoài có thể quan sát, theo dõi được việc thực hiện của chúng

- Các chức nâng bị che giấu: là các chức năng mà có thể được thực hiện nhưng

không thể thấy được đối với người dùng (ví dụ việc ghi thông tin vào bộ nhớ), cácchức năng che giấu thường bị bỏ quên trong quá trình tập hợp yêu cầu

- Các chức năng phụ: là các chức năng tuỳ chọn, việc bổ sung chúng hay chọn

để thực hiện không ảnh hưởng nhiều tới các chức năng khác

Khi mô tả các chức năng cần chú ý:

- Có thể được chia thành các nhóm có quan hệ về mặt logic

- Mỗi chức năng có thể được đưa ra số tham chiếu để sử dụng trong các tài liệu khác của quá trình phát triển hệ thống

- Phải trình bày sơ lược các chức năng đã phân loại

ỊLL ầ Phát triển phấn mém hướng đối tượng sử dụng UML.

Trang 20

Bảng 1: Các chức năn g của “Hệ thống quản lý thi trên m ạng”.

4 Các thuộc tính hệ thống

Các thuộc tính hệ thống được gọi là các yêu cầu phi chức năng Chúng là điều bắt buộc đối với hệ thống và sẽ làm hạn chế sự tự do của người thiết kế Ngoài các yêu cầu về chức năng, khách hàng còn có thể yêu cầu về sản phẩm những điều như:

- Những yêu cầu về bộ nhớ và thời gian phải thực hiện để phản hồi

- Sự dễ dàng tiện lợi trong sử dụng

- Các môi trường mà hệ thống hoạt động

- Giao diện ẩn

- Khả năng chịu lỗi,v.v

Một vài thuộc tính cũng có thể liên quan tới một hoặc một nhóm các chức năng

hệ thống (như môi trường hệ thống hoạt động có liên quan tới toàn bộ chức năng của

hệ thống)

LU Phá! triển phẩn mềm hướng đối tượng sửciụnỵ UML.

Trang 21

Báng 2: Các thuộc tính của “Hệ thống quản lý thi trên m ạng”.

Độ bảo mật

Mỗi thí sinh có một mật khẩu nóng, và chỉ có thí sinh truy nhập được đề thi

Thời gian phản hồi

Sau khi chọn đề thi, đề thi sẽ xuất hiện trong khoảng thời gian nhiều nhất là một phút

Ghi nhận

Định kỳ nãm phút một lần, hệ thống phải ghi nhận trạng thái bài làm của thí sinh

Môi trường hoạt động

*1* Khái niệm trường hợp sử dụng

Trường hợp sử dụng mô tả tuần tự các sự kiện, các chức năng của hệ thống để hoàn thành một quá trình, nhiệm vụ nào đó

Ví dụ: Xi'ỉ lý quá trình đăng nhập hệ thống

Người sử dụng: Quản trị viên / sinh viên.

Các sự kiện phải được tiến hành theo trình tự sau: Quản trị viên / sinh viên nhập tên và mật khẩu Nếu người sử dụng hợp lệ thì màn hình làm việc của hệ thống xuất hiện, cho phép người sử dụng thực hiện các tác vụ mà họ được quyền thao tác Nếu không chương trình sẽ báo lồi, yêu cầu nhập lại tên và mật khẩu hoặc s ẽ tự đóng lại.

Với người dùng, trường hợp sử dụng là cách sử dụng hệ thống Nó được mô tả dưới dạng một chuỗi các tác vụ và có quan hệ thực hiện giữa một tác nhân với hệ thống thông qua cuộc đối thoại Mỗi trường hợp sử dụng mô tả một phần yêu cầuchức năng của người dùng.Tất cả các trường hợp sử dụng mô tả một cách có tổ chức

Ũ J Phái triển phần mềm hướng đối tượng sứ dụng UML. _

Trang 22

toàn bộ yêu cầu của hệ thống Bước đầu tiên trong việc nắm bắt yêu cầu là thâu tóm các yêu cầu dưới dạng các trường hợp sử dụng Tất cả các trường hợp sử dụng cho phép người phát triển phần mềm và khách hàng thoả thuận yêu cầu, đó là các điều kiện hay khả năng mà hệ thống phải thực hiện.

♦> Tác nhân

Tác nhân là một thực thể bên ngoài có ảnh hưởng và tương tác với hệ thống Thông thường đó là người dùng hệ thống, nhưng tác nhân cũng có thể là hệ thống khác hoặc thiết bị khác cần tương tác với hệ thống Tác nhân kích thích hệ thống hoạt động với các sự kiện vào, hoặc nhận cái gì đó từ hệ thống bằng cách gửi hoặc nhận thông điệp khi nó thực hiện trường hợp sử dụng

Ví dụ: Các tác nhân trong hệ thống quản lý thi trên mạng gồm:

- Người quản trị hệ thống,

- Người quản trị thông tin danh mục,

- Người quản trị thi,

- Thí sinh

♦ Xúc định trường hợp sứ dụng

Có hai cách xác định trường hợp sử dụng trong hệ thống

♦ Xác định thông qua các tác nhân

(a) Xác định các tác nhân nào có liên quan tới hệ thống hoặc tổ chức: tìm và

mô tả tất cả các tác nhân bằng cách xem người dùng nào sẽ sử dụng hệ thống và hệ thống nào khác phải tương tác với nó

(b) Với mỗi tác nhân, xác định các quá trình mà họ khởi tạo hoặc tham gia vào bằng cách xem tác nhân trao đổi / tương tác hoặc sử dụng với hệ thống để làm việc như thế nào?

♦ Xác định thông qua các sự kiện

(a) Những sự kiện nào hệ thống phải có câu trả lời hoặc có hành vi ứng xử tương ứng

(b) Mối quan hệ giữa các sự kiện với tác nhân, sự kiện với hệ thống

ẾẰJ Phát triển phẩn mềm hướng đối tượng sử dụng UML.

Trang 23

Khi xác định các trường hợp sử dụng cần thảo luận, trao đổi với người dùng hệ thống và nên xem xét lại các dữ liệu đặc tả yêu cầu đã có để có thể trả lời một số câu hỏi sau:

- Nhiệm vụ chính của tác nhân là gì?

- Có phải tác nhân sẽ phải đọc / viết / thay đổi thông tin hệ thống?

- Có phải tác nhân sẽ phải cung cấp tin tức cho hệ thống về những thay đổi bên ngoài hệ thống?

- Có phải tác nhân mong muốn được cung cấp tin tức về sự thay đổi không?

Đối với chương trình ứng dụng “Hệ thống quản lý thi trên mạng” thì khả năng tác nhân sử dụng các trường hợp sử dụng có thể được xác định:

Bảng 3: Tác nhân và tiến trình khởi tạo.

Người quản lý hệ thống

Đăng nhập Quản lý người dùng Quản lý thông tin danh mục Quản lý thi

Quản lý thông tin danh mục

Quản lý thi

Thí sinh

Đăng nhập Thi

Xem điểm

*1* Đặc tả trường hợp sử dụng

Khi sử dụng các phương pháp ở trên để xác định trường hợp sử dụng, đầu tiên ta tạo trường hợp sử dụng ở mức cao để hiểu về toàn bộ quá trình, sau đó sẽ mở rộng

và làm chi tiết hơn các trường hợp sử dụng đó

Trường hợp sử dụng ở mức cao mô tả quá trình một cách ngắn gọn, thông thường bằng hai hoặc ba câu Chúng thường nối với các sự kiện mà tác nhân thực hiện và được mô tả theo định dạng sau:

LU Phát triển phẩn mềm hướng đối tượng sử dụng UML.

Trang 24

ưse case: Tên của trường hợp sử dụng (bắt đầu bằng động từ).

Actor: Danh sách các tác nhân, chỉ ra ai khởi tạo trường hợp sử dụng.

Mục đích: Mục đích của trường hợp sử dụng.

Miêu tả chung: Miêu tả một cách ngắn gọn quá trình.

Tham chiếu tới các chức năng: Trường hợp sử dụng và các chức năng hệ thống

có liên quan.

Ví dụ: Quá trình Q uản lý thông tin danh mục được mô tả ở mức cao như sau:

Use case : Quản lý thông tin danh mục.

Actor : Người quản lý hệ thống, người quản lý thông tin danh mục.

Mục đích : Quản lý các thông tin danh mục phục vụ cho các hoạt động tác

nghiệp của hệ thống

Miêu tả chung: Người quản lý hệ thống (QLHT) / người quản lý thông tin danh

mục (QLDM) đăng nhập vào hệ thống QLHT / QLDM có thể chọn các loại thông tin danh mục cần được cập nhật: danh mục lớp-sinh viên, câu hỏi, môn học, học phần

Tham chiếu tới các chức năng: R l, R2.1, R2.2, R2.3, R2.4.

Trường hợp sử dụng phát triển chỉ ra nhiều chi tiết hơn trường hợp sử dụng mức cao và nó thường được làm theo kiểu hội thoại giữa những tác nhân với hệ thống Một trường hợp sử dụng phát triển mở rộng một trường hợp sử dụng mức cao với hai

mục luồng dữ kiện chính và luồng sự kiện s ẽ nhánh.

Trường hợp sử dụng phát triển được mô tả theo định dạng dưới đây:

Use case: Tên của trường hợp sử dụng.

Actor: Danh sách các tác nhân, chỉ ra ai khởi tạo trường hợp sử dụng.

Mục đích: Mục đích của trường hợp sử dụng.

Miêu tả chung: Miêu tả một cách ngắn gọn quá trình.

Tham chiếu tới các chức năng: Trường hợp sử dụng và các chức nâng hệ thống có

liên quan.

Luồng sự kiện chính:

ẾU Phái triển phẩn mềm hướng đối tượng sử dung UML.

Trang 25

Bảng 4: H oạt động của tác nhân dạng tổng quát.

Các hoạt động được đánh số của tác

nhân

Mô tả các phản hồi được đánh số của hệ thống

Luồng sự kiện r ẽ nhánh:

• Ghi số dòng sự kiện thay thế có thể xuất hiện Sau đó mô tả trường hợp ngoại lệ

Ví dụ: Use case “T hi” ở mức cao của “Hệ thống quản lý thi trên mạng” có thể được

mở rộng với hai mục dưới đây:

Luồng sự kiện chính:

Bảng 5: Hoạt dộng của tác nhân ứng với trường hợp sử dụng Thi.

1 Trường hợp sử dụng này bắt đầu khi Thí

sinh gõ dòng địa chỉ máy chủ để khởi động hệ

thống thi

thông tin về cá nhân

4 Thí sinh đưa vào thông tin về bản thân: mã

sinh viên, tên, mật khẩu, tên kỳ thi,

5 Hệ thống kiểm tra tính hợp lệ của thí sinh Nếu thí sinh hợp lệ thì hiển thị màn hình chọn đề thi

Luồng sự kiện rẽ nhánh:

• Dòng 4: Thông tin không hợp lệ thì báo lỗi

• Dòng 6: Nếu thí sinh thi tiếp, hệ thống chỉ hiển thị số hiệu đề thi lần trước

• Dòng 10: Hết thời gian thi thì hệ thống đóng lại

£ ữ Phát triển phần mềm hướng đối tượng sử dụng UML. _

Trang 26

❖ Trường hợp sử dụng cốt yếu và trường hợp sử dụng thực

Ớ mức yêu cầu, các trường hợp sử dụng không cần các chi tiết về công nghệ và việc thực hiện Quyết định thiết kế bị hoãn lại và được trừu tượng hoá, đặc biệt là những liên quan đến giao diện người dùng Loại trường hợp sử dụng này được gọi là trường hợp sử dụng cốt yếu (essential) vì nó mô tả tiến trình dưới hình thức các hoạt động và động cơ cần thiết

Ngược lại, trường hợp sử dụng thực lại mô tả một cách cụ thể tiến trình dưới dạng thiết kế hiện thực của nó và đưa ra công nghệ vào, ra cụ thể

Mô tả trường hợp sử dụng cốt yếu

Báng 6: Dạng hoạt động của tác nhân ứng với trường hợp sử dụng cốt yếu.

Mô tả trường hợp sử dụng thực

Bảng 7: Dạng hoạt động của tác nhân ứng với trường hợp sử dụng thực.

1 Các quản trị viên khởi

**** Mô hình trường hợp sử dụng và biểu đồ trường hợp sử dụng

Mô hình trường hợp sử dụng mô tả các yêu cầu chức năng hệ thống Thành phần chính của mô hình trường hợp sử dụng là các trường hợp sử dụng, tác nhân mà hệ thống được mô hình Một trường hợp sử dụng phải trả lại giá trị mong muốn cho tác nhân Mô hình trường hợp sử dụng chỉ ra các mối quan hệ giữa các trường hợp sử dụng và giữa trường hợp sử dụng với tác nhân

Í2J Phát triển phần mềm hướng đối tượng sử dụng UML.

Trang 27

Biểu đồ trường hợp sử dụng mô tả một phần mô hình trường hợp sử dụng và minh hoạ một tập những trường hợp sử dụng của hệ thống, những tác nhân và mối quan hệ giữa tác nhân với trường hợp sử dụng.

Nhìn chung, một trường hợp sử dụng có thể bao gồm các điểm quyết định- Iiơi tiến trình có thể đi theo một trong nhiều hướng Nếu một trong những điểm quyết định này mô tả trường hợp tiêu biểu, các trường hợp ít xảy ra hay có tính bất thường hoặc loại trừ, khi đó trường hợp tiêu biểu này phải là trường hợp duy nhất

được viết trong luồng sự kiện chính và các trường hợp khác được liệt kê trong mục

luồng sự kiện rẽ nhánh.

♦> Trường hợp sử dụng trong tiến trình phát triển

Các hoạt động và sản phẩm được tạo ra trong khi phân tích trường hợp sử dụng bao gồm:

1 Sau khi các chức năng hệ thống được liệt kê thì xác định tác nhân và trường hợp sử dụng,

2 Viết tất cả các trường hợp sử dụng ở mức cao và phân loại chúng dưới dạng chính, phụ hoặc theo lựa chọn,

3 Vẽ biểu đồ trường hợp sử dụng cho hệ thống,

4 Liên kết các trường hợp sử dụng và minh hoạ những mối quan hệ trong biểu

đồ trường hợp sử dụng,

H ì Phát triển phần mềm hướng đối tượng sử dụng UML.

Trang 28

5 Viết các trường hợp sử dụng quan trọng nhất, có ảnh hưởng lớn nhất và dễ gây rủi ro nhất một cách chi tiết để tạo điều kiện cho việc hiểu và xác định được bản chất và kích thước của bài toán,

6 Thông thường các trường hợp sử dụng thực sẽ được phân tách chi tiết ở giai đoạn thiết kế, vì việc tạo ra chúng liên quan các quyết định thiết kế Tuy nhiên, đôi khi cũng cần tạo ra một vài trường hợp sử dụng thực trong giai đoạn phân tích yêu cầu nếu:

- Sự mô tả cụ thể hỗ trợ đáng kể cho việc hiểu hệ thống

- Phía khách hàng đòi hỏi chỉ rõ quy định sử dụng của họ theo kiểu này

- Phục vụ cho mục đích tạo nguyên mẫu

7 Có thể sắp thứ tự các trường hợp sử dụng để lập kế hoạch xem cái nào cần phải được đưa vào thiết kế và cài đặt đầu tiên

Tóm lại, trường hợp sử dụng mô tả thứ tự các hoạt động mà hệ thống có thể thực hiện và nó trả lại kết quả có thể thấy được cho một tác nhân nào đó Một trường hợp

sử dụng tường thuật đầy đủ từ đầu đến cuối câu chuyện về việc sử dụng hệ thống để thực hiện một nhiệm vụ mà không phải là sự kết hợp một số bước tính toán với nhau

2.2 Phân tích hệ thống

2.2.1 Mô hình khái niệm

♦> Các khái niệm cơ sở

Việc tạo ra các khái niệm là một bước quan trọng trong phân tích hướng đối tượng cũng như xây dựng phần mềm có khả năng mở rộng và tái sử dụng

Khái niệm (Concept): Một khái niệm có thể là một quan niệm, một sự vật hay đối tượng Nó gồm ba phần:

+ Kí hiệu (Symbol): Các từ ngữ hay hình ảnh mô tả cho một khái niệm

+ Định nghĩa (Indention): Định nghĩa của khái niệm

+ Mở rộng (Extention): Tập các ví dụ hoặc các thể hiện do áp dụng khái niệm Mỗi ví dụ ứng dụng khái niệm riêng biệt gọi là trường hợp cá biệt của khái niệm

LU Phen triển phấn mềm hưởng đối tượng sử dụng UML.

Trang 29

Ví dụ:

í%>maLop Ể£>tenLop

Hình 3: Kí hiệu, định nghĩa và mở rộng của một khái niệm.

Trong UML các khái niệm lớp và kiểu được sử dụng để mô tả các khái niệm cơ

sở của hệ thống

Các đối tượng là phân biệt nhau, ngay cả khi chúng có các giá trị thuộc tính giông nhau Thuộc tính mà phân biệt đối tượng này với đối tượng khác gọi là định danh của đối tượng

Ví dụ về lớp và đối tượng:

S in h V ie n

Nquyen minh Chau:SinhVien

Ổ £>m aSV

íặhoTen

Nquven Minh Nqa:SinhVien

Hình 4: L('/p “Sinh viên ” và các đối tượng của nó.

Một số đặc tính quan trọng của đối tượng:

• Định danh của đối tượng: Mọi đối tượng là phân biệt đối với các đối tượng khác, ngay cả khi chúng có các giá trị thuộc tính giống nhau

• Sự tồn tại của đối tượng: Mọi đối tượng đều có một thời gian sống (life time).Thuộc tính này chỉ ra bản chất tĩnh của hệ thống

• Mỗi đối tượng có các hành vi có thể tác động lên hoặc chịu tác động của các đốitượng khác

• Mỗi đối tượng có thể các trạng thái khác nhau ở những thời điểm khác nhau và

có thể hành động khác nhau ở các trạng thái khác nhau

LU Pììát triển phần mềm hướng đối tượng sử dụng UML.

Trang 30

‘> Xác định các khái niệm

Một hoạt động quan trọng trong phân tích hướng đối tượng là việc phân rã bài toán thành các khái niệm (đối tượng) Thông thường có hai chiến lược để xác định các khái niệm

Cách 1: Từ sự mô tả văn bản mô tả bài toán có thể tìm các khái niệm dựa vào danh sách phân loại khái niệm Các khái niệm và các đối tượng có thể được phân vào các phân lớp khác nhau dựa vào bản chất các thể hiện của chúng

Bảng 8: Danh sách phân loại khái niệm.

Tài liệu, đặc điểm kỹ thuật, thiết kế, hoặc sự

mô tả của sự vật

Thông tin về một sinh viên

Các máy tính khác, hoặc một hệ thống kĩ thuật

điện tử ở bên ngoài hệ thống

Hệ thống kiểm soát thi

Các tiến trình (thường không được biểu diễn

như là một khái niệm )

Chuẩn bị thời gian, số lượng đề

Các bản ghi tài chính công việc, hợp đồng, các

công việc hợp pháp

Bảng điểm

LU Phút triển phẩn mềm hướng đối tượng sử dụng UML.

Trang 31

Chiến lược này sẽ tạo ra một tập các khái niệm đại diện (candidate) từ các mô tả yêu cầu của khách hàng, những điều tra, nghiên cứu ban đầu, các định nghĩa chức năng của hệ thống và các trường hợp sử dụng.

Cách 2: Một kỹ thuật khá đơn giản và hữu ích cho việc xác định các khái niệm đó là: xác định các danh từ và cụm danh từ mô tả văn bản của miền vấn đề và xem xét chúng như là các khái niệm dự kiến hoặc thuộc tính

Tuy nhiên, từ ngữ trong ngôn ngữ tự nhiên là không rõ ràng, vì vậy phải loại bỏ một số khái niệm không thích hợp theo các quy tắc sau:

+ Thừa: Các lớp giống nhau được đưa ra dưới nhiều tên khác nhau

+ Mập mờ: Danh từ chưa được hiểu một cách rõ ràng

+ Là sự kiện hoặc hành động: Danh từ chỉ đến một cái gì đó được thực hiện trong hệ thống

+ Siêu ngôn ngữ: ở đây, danh từ tạo nên một phần của cách ta định nghĩa sự vật

Sử dụng các danh từ các yêu cầu và hệ thống như là một phần của ngôn ngữ mô hình

hoá tốt hơn là mô tả các đối tượng trong miền vấn đề

+ Nằm ngoài phạm vi của hệ thống : Danh từ này có thể là cần thiết cho việc mô

tả một hệ thống làm việc như thế nào nhưng không chỉ đến một cái gì đó nằm trong

hệ thống

+ Là thuộc tính: Một danh từ chỉ đến một cái gì đó mà nó không hề có các hành

vi quan trọng thì khi đó nó được xem như là thuộc tính của một lớp khác

Ví dụ: Trong bài toán quản lý thi trên mạng, với pha xác định ban đầu, ta có ihể có các khái niệm sau:

HocPhan

PhuongAn

Hình 5: Các khái niệm trong ứng dụng “Hệ thống quản lý thi trên m ạng”.

LU Phát triển phần mềm hướng đối tượng sử dụng UML.

Trang 32

Lưu ý:

+ Không nên loại bỏ một khái niệm đơn giản chỉ vì các yêu cầu không chỉ ra

rõ ràng sự cần thiết để lưu trữ thông tin về nó

+ Có thể có nhiều khái niệm không được đưa vào trong pha phân tích ban đầu, chúng có thể được phát hiện ra sau đó trong việc xem xét đến các thuộc tính và các quan hệ liên kết hay trong pha thiết kế Khi được tìm thấy, các khái niệm này sẽ được bổ sung vào mô hình khái niệm

+ Khi không chắc chắn, nên để một khái niệm như là một khái niệm dự kiến trong mô hình khái niệm

Tuy nhiên, không đánh giá được một mô hình khái niệm là chính xác hay sai mà chỉ đánh giá được là phù hơn hay ít phù hợp hơn; nó là công cụ của sự truyền đạt

*1* Các hướng dẫn cho việc mô hình hoá khái niệm

- Sử dụng những tên đã có sẩn trong lĩnh vực hoạt động: Dùng cú pháp của miền khi đặt tên cho những khái niệm và thuộc tính

- Loại bỏ các đặc tính thừa: Có thể loại bỏ các phần tử nếu chúng được xem xét

là không cần thiết cho mục đích của vấn đề

- Không sử dụng những phần tử mà không có

Một mô hình khái niệm tập trung vào các khái niệm trong miền vấn đề chứ không phải là các thực thể phần mềm

❖ Q uan hệ liên kết (association)

Trong UML, liên kết là một quan hệ giữa hai ỉớp để xác định xem các đối tượng của các lớp này được liên kết và thực hiện công việc cùng nhau như thế nào Giữa các đối tượng thuộc các lớp khác nhau phải có sự liên kết để chúng có thể tương tác

và cộng tác với nhau nhằm thực hiện các tiến trình

Quan hệ liên kết là mô hình hoá một liên kết ngữ nghĩa giữa các lớp

Trang 33

không hoặc nhiềumột hoặc nhiều “ít nhất là một’

khoảng từ 1 đến 40hoặc 3, hoặc 5, hoặc 7

KyThiTham gia

Hình 8: Minh hoạ bản số.

♦ Vai trò trong quan hệ liên kết

Khi một lớp tham gia trong một liên kết thì nó giữ một vai trò xác định trong quan hệ đó Vai trò đó có thể được chí ra trong liên kết:

Hình 9: Vai trò trong quan hệ liên kết.

Ũ3Phát triển phần mềm hướng đối tượng sử dụng UML. _

Trang 34

Khi tiếp cận tới việc thiết kế và cài đặt hệ thống, các vai trò cung cấp cách

thể hiện một liên kết như là một đường nối từ một đối tượng tới tập các đối tượng

được liên kết

♦ Mục đích của một quan hệ liên kết và liên kết giữa hai đối tượng

- Một quan hệ liên kết giữa hai lớp là để cung cấp các liên kết vật lý hoặc khái niệm

giữa các đối tượng của các lớp

- Chỉ các đối tượng được liên kết với các đối tượng khác mới có thể cộng tác với

nhau thông qua liên kết

Qui tắc đ ể xác định các quan hệ liên kết

Đối với pha phân tích yêu cầu, ta sử dụng qui tắc sau:

- Một quan hệ liên kết hữu ích thường mang một kiến thức về mối quan hệ mà nó

cần

- Một liên kết quan trọng giữa hai đối tượng phải thoả mãn vai trò cung cấp một

phương tiện cho phép đối tượng này cộng tác hay tương tác với đối tượng kia

Các quan hệ liên kết thường ứng với một động từ hoặc một ngữ động từ Gồm có

các kiểu:

+ Vị trí vật lý: tiếp theo (next to), là một phần của (part of), chứa trong

(contained in),

+ Hành động định hướng: lái (drive)

+ Liên lạc: nói tới (talk to)

+ Sở hữu: có (has), là một phần của (part of)

+ Hoặc thoả mãn điều kiện: làm việc cho (work for), quản lý (manage)

Quan hệ giữa liên kết và cài đặt:

Trong pha phân tích, một quan hệ liên kết không phải là một phát biểu về dòng

dữ liệu, các biến đối tượng hay các liên kết đối tượng trong giải pháp phần mềm

Quan hệ liên kết có thể được cài đặt bằng nhiều cách, nhưng các quyết định đó

không được có mặt trong pha phân tích để bảo vệ tự do cho thiết kế

Khi tạo ra một mô hình khái niệm, ta có thể định nghĩa nhiều quan hệ liên kết

không cần thiết cho quá trình xây dựng Ngược lại, có thể phát hiện các quan hệ liên

LU Phái triển phần niềm hướng đối tương sứ dụng UML.

%

Trang 35

kết cần thiết cho cài đặt nhưng không có trong pha phân tích Trong các trường hợp

đó, mô hình khái niệm phải được cập nhật lại

♦> Quan hệ bao gồm (aggregation association)

Quan hệ bao gồm là một dạng đặc biệt của quan hệ liên kết sử dụng để mô hình quan hệ “toàn bộ-bộ phận” giữa thực thể và các bộ phận của nó Đối tượng toàn bộ được gọi là đối tượng hợp

Trong UML, quan hệ bao gồm được kí hiệu bằng một hình thoi tô kín ở đối tượng hợp Ví dụ:

Hình 10: Minh huạ quan hệ liên kết.

Có hai loại quan hệ bao gồm:

a Quan hệ phức lựrp

Là quan hệ mà lực lượng của đối tượng hợp nhiều nhất là một, và được kí hiệu bằng một hình thoi tô kín Quan hệ này có nghĩa là: đối tượng bộ phận chỉ thuộc về duy nhất một đối tượng hợp Ví dụ: một học phần chỉ thuộc về một môn học Đây là dạng phỗ biến nhất của quan hệ bao gồm

b Quan hệ chia sẻ

Là quan hệ mà lực lượng của đối tượng hợp có thể có nhiều hơn một và được kí hiệu bằng một hình thoi rỗng Nó chỉ ra rằng một đối tượng bộ phận có thể thuộc về nhiều đối tượng hợp Quan hệ này không tồn tại trong các quan hệ vật lý mà chỉ có ở các khái niệm phi vật lý

CauHoi

Hình 11: Một Câu hỏi có thể ở nhiều Đ ề thi.

Hai tính chất của quan hệ bao gồm:

• Phản đối xứng (Antisymmetry): Nếu một đối tượng A được quan hệ với một đối tượng B bởi một quan hệ bao gồm thì B không thể được quan hệ với A bằng quan

ũ ì Phát triển phần mềm ìtKỦHỊi đối tượng sử dụIIf> UML.

Trang 36

hệ bao gồm đó Nói cách khác, nếu B là một thành phần của A thì A không thể

là một phần của B

• Bấc cầu (Transitivity): Nếu A được quan hệ với B bởi một quan hệ bao gồm và B được quan hệ với c cũng bằng quan hệ bao gồm đó thì A cũng quan hệ với c

Lựa chọn khi nào thì chỉ ra quan hệ bao gồm:

+ Thời gian “sống” của đối tượng bộ phận giới hạn trong thời gian sống của đối tượng hợp Đày là phụ thuộc tạo/xoá bỏ của đối tượng bộ phận vào đối tượng toàn

bộ Đối tượng bộ phận không thể tổn tại bên ngoài thời gian tồn tại của đối tượng toàn bộ

+ Đây là một nhóm có quan hệ “toàn bộ-bộ phận” logic hoặc vật lý một cách rõ ràng

+ Một thuộc tính của đối tượng hợp được các đối tượng bộ phận thừa kế

+ Các phép toán được áp dụng đối với đối tượng hợp cũng được thừa kế ở các đối tượng bộ phận như: huỷ, di chuyển, lưu trữ,v.v

+ Nếu không chắc chắn khi nào sử dụng quan hệ bao gồm thì không để ý đến nó

mà chú trọng vào các quan hệ liên kết đơn giản Hầu hết lợi ích của việc phát hiện

và chỉ ra các quan hệ bao gồm là để liên hệ tới giải pháp cài đặt phần mềm

*1* Lớp liên kết ịassociation class)

Quan hệ liên kết giữa hai lớp có thể có các thuộc tính và phương thức, khi đó nó

sẽ được mô hình như một lớp (lớp liên kết)

Ví dụ:

BaiThi

Hình 12: Ví dụ lớp liên kết.

❖ T huộc tính (attrib u te)

Mỗi một thể hiện của một khái niệm có thể có một số thuộc tính cơ bản nào đó

Ví dụ, một sinh viên có thể có các thuộc tính: mã sinh viên, họ tên, ngày sinh, Một

£ 3 P hái triển phấn mềm hướng đối tượng sử dụng UML. _

Trang 37

thuộc tính của lớp là sự trừu tượng một thuộc tính chất đơn hoặc một đặc tính củacác thực thể mà đã được trừu tượng hoá như là đối tượng của lớp.

Thuộc tính của mỗi đối tượng riêng lẻ trong lớp là một giá trị dữ liệu logic mô tả một đặc tính tương ứng của đối tượng Mỗi đối tượng có chính xác một giá trị cho mỗi thuộc tính ở thời điểm được đưa ra

Mỗi thuộc tính có một tên, có thể xác định kiểu dữ liệu cho thuộc tính và có thể

có một giá trị mặc định (khởi tạo) cho thuộc tính

Ví dụ:

SinhVien

Ế ^ m a S in h V ie n : s trin g i^ h o T e n : String

É ^ n g a y S in h : Date

Ế ^ g io iT in h : B oolean

Hình 13: Thuộc tính của lớp.

Thêm các thuộc tính vào lớp

Đối với mỗi lớp trong mô hình khái niệm, ta muốn tìm tập các thuộc tính thoả mãn:

+ Đầy đủ: Chỉ ra được tất cả các thông tin cần thiết về đối tượng

+ Mang tính đại diện: Mỗi thuộc tính chỉ ra một đặc tính khác nhau của đốitượng

+ Tác động độc lập: Mỗi đối tượng, giá trị của các thuộc tính là độc lập đối với đối tượng khác

+ Đầy đủ đối với các yêu cầu và trường hợp sử dụng: Tập trung vào các thuộc tính mà yêu cầu đưa ra hoặc những thông tin lưu trữ cần thiết

Một lỗi thường gặp trong mô hình hoá hướng đối tượng là mô tả cái gì đó như làthuộc tính trong khi nó phải là một khái niệm hoặc một liên kết Ta sẽ xem xét một

số cách để tránh lỗi này

Sử dụng các thuộc tính đơn giản

Các thuộc tính trong mô hình khái niệm tốt nhất là các thuộc tính đơn giản hoặc các kiểu dữ liệu thuần tuý như: Boolean, Date, Number, String (Text), Time, Address, Color, Phone Number, Social Security Number,

LU Phải triển phần niềm hướng đối tương sử dụng UML.

Trang 38

Qui tắc 1:

Tránh mô tả các khái niệm phức tạp như là thuộc tính Thay vào đó ta sử dụng các liên kết Liên kết quan hệ khái niệm với quan hệ thuộc tính, không phải với thuộc tính

Ví dụ: Tránh mô tả:

SinhVien hoTen Lop

Không có thuộc tính là khoá ngoài

Thuộc tính không sử dụng để liên kết các khái niệm trong mô hình khái niệm mà

để lưu trữ thông tin về bản thân đối tượng Vì vậy, liên kết các lớp bằng một quan hệ liên kết, chứ không phải bằng một thuộc tính

Ví dụ:

Không nên:

SinhVien

Ể ^ m a S in h V ie n {|r>m aLop

Hình 15: Lớp có thuộc tính là khoá ngoài

maLop ở đây là một thuộc tính đơn giản nhưng lại được sử dụng như là một khoá ngoài để liên kết tới một đối tượng khác

Hình 16: Liên kết giữa hai lớp SinhVien và Lop.

LU Phái triền phần mềm hướng đối tượng sử dụng UML. _

Trang 39

Kiểu của một thuộc tính có thể được biểu diễn như là một kiểu không cơ bản.Điều này là chấp nhận được trong mô hình khái niệm Có thể xem một kiểu dữ liệuchính như là một kiểu không cơ bản nếu:

+ Nó được tạo thành từ nhiều phần riêng biệt:

Tên của một người bao gồm ba phần: họ, họ đệm, tên

+ Thường có những thao tác gắn với chúng như: kiểm tra sự hợp lệ, phân tích:

Mã sinh viên, mã lớp,

+ Nó có những thuộc tính khác:

Thời gian bắt đầu thi, thời gian kết thúc thi

+ Nó là một định lượng theo một đơn vị:

Tổng số câu hỏi trả lời được

❖ C ác bước đê tạo m ột mỏ hình khái niệm

- Tạo ra một danh sách các khái niệm dự kiến bằng cách sử dụng danh sáchphân loại khái niệm và việc xác định danh từ, cụm danh từ từ yêu cầu

Vẽ chúng trong mô hình khái niệm

Bổ sung các quan hệ liên kết cần thiết giữa các khái niệm

- Bổ sung các thuộc tính cần thiết để thoả mãn các yêu cầu thông tin

Mô hình khái niệm phải được tạo ra từ: khảo sát các chức năng hệ thống, các trường hợp sử dụng và các khảo cứu ban đầu trong miền ứng dụng

❖ Lưu tr ữ các khái niệm tro n g từ điển chuyên ngành

Từ điển chuyên ngành hay từ điển mô hình là một văn bản định nghĩa các thuật ngữ được sử dụng trong phát triển hệ thống

Bâng 9: Thuật ngữ sử dụng trong hệ thống quản lý thi trên mạng.

sử dụng

Chức năng đăng nhập vào hệ thống

£U Phái triển phán mềm hướng đối tượng sử dụng UML.

Trang 40

2.2.2 Mô hình hành vi của hệ thống (System behaviour)

Các vấn đề chính:

• Xác định các sự kiện hệ thống và các thao tác hệ thống

• Tạo biểu đồ tuần tự của hệ thống cho các tnrờng hợp sử dụng

• Tạo hợp đổng (contract) cho các thao tác của hệ thống

• Biểu đồ tu ần tự của hệ thông (System Sequence D iagram )

Trong phần này ta tập trung vào xác định các thao tác, thứ tự thực hiện của chúng mà hệ thống cần phải tiến hành để thực hiện một trường hợp sử dụng và tác động của mỗi thao tác đó lên hệ thống, các đối tượng của hệ thống

Một trường hợp sử dụng định nghĩa một lớp các trao đổi giữa tác nhân và hệ thống, một trao đổi riêng biệt của lớp này là một thực hiện hoá (realization) của trường hợp sử dụng đó Có thể có nhiều thực hiện hoá cho một trường hợp sử dụng.Kịch bản của một trường hợp sử dụng là một hiện thực hoá cụ thể của trường hợp

sử dụng đó

• Sự kiện vào hệ thống và các thao tác của hệ thông

Trong quá trình tương tác của các hiện thực hoá, tác nhân phát sinh ra các sự kiện tới hệ thống, yêu cầu hệ thống thực hiện một số thao tác để trả lời Sự kiện được phát sinh bởi tác nhân có quan hệ chặt chẽ với thao tác mà hệ thống thực hiện Điều này

có nghĩa là: xác định các thao tác của hệ thống bằng cách xác định các sự kiện mà tác nhân phát sinh

Định nghĩa một số thuật ngữ:

• Sự kiện vào hệ thống: là sự kiện từ bên ngoài được phát sinh bởi một tác nhân tới

hệ thống Một sự kiện vào hệ thống khởi đầu một thao tác đáp ứng

• Thao tác của hệ thống: là một thao tác mà hệ thống thực hiện trong việc trả lời một sự kiện vào hệ thống Một số thao tác của hệ thống cũng phát sinh các sự kiện ra tới tác nhân để chỉ ra sự kiện hệ thống tiếp theo mà một tác nhân có thể thực hiện

• Sự kiện hệ thống: có thể là sự kiện vào hoặc sự kiện ra

ß j Phát triển phẩn mềm hướng đối tượng sử dụng UML.

Ngày đăng: 25/03/2015, 10:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1], Đoàn Văn Ban, Phân tích thiết k ế và lập trình hướng đối tượng , NXB Thống Kê, 1997 Sách, tạp chí
Tiêu đề: Phân tích thiết k ế và lập trình hướng đối tượng
Nhà XB: NXB Thống Kê
[2], Trần Tiến Dũng, Giáo trình lý thuyết và bài tập Java, NXB Giáo Dục, 1999 Sách, tạp chí
Tiêu đề: Giáo trình lý thuyết và bài tập Java
Nhà XB: NXB Giáo Dục
[3]. Thạch Thị Ngân, Nguyễn Thị Thanh Thuận, Phân tích thiết k ế hướng đối tượng sử dụng UML , khoá luận tốt nghiệp Đại học, 2001 Sách, tạp chí
Tiêu đề: Phân tích thiết k ế hướng đối tượngsử dụng UML
[4], Đặng Văn Đức, Phân tích thiết k ế hướng đối tượng bằng UML, NXB Giáo Dục, 2002 Sách, tạp chí
Tiêu đề: Phân tích thiết k ế hướng đối tượng bằng UML
Nhà XB: NXB Giáo Dục
[5]. Lê Minh Trí, JavaScript, tập 2, NXB Trẻ, 2002 Sách, tạp chí
Tiêu đề: JavaScript
Nhà XB: NXB Trẻ
[8]. Boggs, w., and Boggs, w., Matering UML with Rational Rose , Sybex, 957pp, 1999 Sách, tạp chí
Tiêu đề: Matering UML with Rational Rose
[9]. Craig Larman, Applying UML and Patterns, Prentice Hall PTR, 507 pp, 1997 Sách, tạp chí
Tiêu đề: Applying UML and Patterns
[10]|. Eriksson, H.E., UMLTooIkit, Wiley Computer, 397 pp, 1998 Sách, tạp chí
Tiêu đề: UMLTooIkit
[11]|. Jacobson, I., Booch, G., and Rumbaugh, J., The Unified Sofware Development Process, Addion - Wesley, 483 pp, 1999 Sách, tạp chí
Tiêu đề: The Unified Sofware DevelopmentProcess
[12]|. Mughal, K.A., and Rasmussen, R.W., A.Programmer’s Guide to Java™Certification, Addion - Wesley, 754 pp, 2000 Sách, tạp chí
Tiêu đề: A.Programmer’s Guide to Java™"Certification
[13]!. Trainee’s Material, Internet and Java, First Edition, 124 pp, 1997 Sách, tạp chí
Tiêu đề: Internet and Java
[14]. Zhiming Liu, Object Oriented Software Development Using UML, The United Nations University ƯNU/IIST, 120 pp, March 2001 Sách, tạp chí
Tiêu đề: Object Oriented Software Development Using UML

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w