33
Bmôn Tin hc Xây dng – ĐHXD Tài li u hướng dn thc tp tt nghip 73 CHƯƠNG II. Thiết kế phn mm II.1. Khái quát vUML II.1.1. Gii thiu UML UML là ngôn ngmô hình hóa, bao gm mt hthng chun các ký pháp (t ương tnhư các tiêu chu n v b n v : quy đị nh kích th ước ch , độ dày c a nét, các ký hi u quy ước trong bn vkthut) và tp các lut để sdng các ký pháp đó. Xây nhà, có th bn không c n b n v thi ết kế. Tuy nhiên, n ếu quy mô công trình càng l n, slượng người tham gia càng đông thì nhu c u có b n vthi ết kế càng cao. B n vchính là ngôn ngchung gia chnhà, ng ười thi ết kế, người chđạo thi công và ng ười th. Vmt khía c nh nào đó, có th coi UML là bn v thi ết k ế c a ph n m m , UML là ngôn ng chung gia khách hàng, người thiết kế và người phát trin phn mm. Để sdng được UML, cn hiu các vn đề chính sau: - Các phn tcơ bn trong mô hình UML - Các quy đị nh để liên k ết các phn tthành mô hình II.1.2. Các khái ni m ca UML Để hình thành mô hình UML, chúng ta c n 3 kh i: Phn t , quan h, biu đồ . Ph n t y ếu tcăn b n nht trong mô hình, các quan hgn các phn tnày vi nhau, bi u đồ nhóm tp hp các phn t. II.1.2.1. Phn tmô hình Phn tgm 4 loi: cu trúc, hành vi, nhóm và chú thích Phn tcu trúc Là thành phn tĩnh, biu din các khái nim hay thành phn vt lý - Lp (class) : Mô t tp các đối tượng (object) cùng chung thuc tính và thao tác. Biu din bng hình chnht gm 3 phn: Tên lp, các thuc tính, các thao tác - Trường h p s d ng (UseCase – UC): T p trình t các hành động mà h th ng thc hin để đạt mt kết qucho tác nhân nào đó. Theo ngh ĩa hp, UC thường tương ng vi mt chc năng ca phn mm. - Thành ph n (Component) : Bi u di n các file mã ngu n, các t p d li u trong quá trình phát trin hthng

Tài liệu hướng dẫn thực tập tốt nghiệp Tin hoc Xây Dựng - Chap2

Embed Size (px)

DESCRIPTION

Tài liệu hướng dẫn thực tập tốt nghiệp ngành Tin học Xây Dựng ĐHXD

Citation preview

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

73

CHƯƠNG II. Thiết kế phần mềm

II.1. Khái quát về UML

II.1.1. Giới thiệu UML

UML là ngôn ngữ mô hình hóa, bao gồm một hệ thống chuẩn các ký pháp (tương tự như các tiêu chuẩn về bản vẽ: quy định kích thước chữ, độ dày của nét, các ký hi ệu quy ước trong bản vẽ kỹ thuật) và tập các luật để sử dụng các ký pháp đó.

Xây nhà, có thể bạn không cần bản vẽ thiết kế. Tuy nhiên, nếu quy mô công trình càng l ớn, số lượng người tham gia càng đông thì nhu cầu có bản vẽ thiết kế càng cao. Bản vẽ chính là ngôn ngữ chung giữa chủ nhà, người thiết kế, người chỉ đạo thi công và người thợ. Về một khía cạnh nào đó, có th ể coi UML là bản vẽ thiết kế của phần mềm, UML là ngôn ng ữ chung giữa khách hàng, người thiết kế và người phát triển phần mềm.

Để sử dụng được UML, cần hiểu các vấn đề chính sau:

- Các phần tử cơ bản trong mô hình UML

- Các quy định để liên kết các phần tử thành mô hình

II.1.2. Các khái niệm của UML

Để hình thành mô hình UML, chúng ta c ần 3 khối: Phần tử, quan hệ, biểu đồ. Phần tử là yếu tố căn bản nhất trong mô hình, các quan hệ gắn các phần tử này với nhau, biểu đồ nhóm tập hợp các phần tử.

II.1.2.1. Phần tử mô hình

Phần tử gồm 4 loại: cấu trúc, hành vi, nhóm và chú thích

Phần tử cấu trúc

Là thành phần tĩnh, biểu diễn các khái niệm hay thành phần vật lý

- Lớp (class): Mô tả tập các đối tượng (object) cùng chung thuộc tính và thao tác. Biểu diễn bằng hình chữ nhật gồm 3 phần: Tên lớp, các thuộc tính, các thao tác

- Trường hợp sử dụng (UseCase – UC): Tập trình t ự các hành động mà h ệ thống thực hiện để đạt một kết quả cho tác nhân nào đó. Theo nghĩa hẹp, UC thường tương ứng với một chức năng của phần mềm.

- Thành phần (Component): Biểu diễn các file mã ngu ồn, các t ệp dữ liệu trong quá trình phát triển hệ thống

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

74

Phần tử hành vi

Là thành phần động của hệ thống, biểu diễn hành vi theo thời gian và không gian

- Tương tác: là hành vi bao g ồm tập các thông điệp trao đổi giữa các đối tượng trong ngữ cảnh cụ thể để thực hiện mục đích cụ hể.

- Máy trạng thái: Là hành vi ch ỉ ra trật tự các trạng thái mà đối tượng hay tương tác sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay cộng tác của lớp có thể được xác định bằn máy trạng thái. Máy trạng thái kích hoạt nhiều phần tử, bao gồm trạng thái, chuyển tiếp (từ trạng thái này sang tr ạng thái khác), s ự kiện và các ho ạt động (đáp ứng sự kiện)

Phần tử nhóm

Là cơ chế tổ chức các phần tử vào cùng một gói (package). Gói chỉ mang tính logic (chỉ tổn tại trong th ời gian phát tri ển hệ thống, không t ồn tại vào th ời gian ho ạt động của chương trình).

Phần tử chú thích

Sử dụng để chú giải cho các lược đồ của UML, bổ sung thêm các thông tin cho các lược đồ.

II.1.2.2. Quan hệ

Phụ thuộc (dependency)

(A) phụ thuộc (B) có nghĩa là (B) phải tồn tại trước (A), phải có (B) thì mới có (A)

Kết hợp (association)

Quan hệ kết hợp là quan h ệ mà đối tượng này ch ứa đối tượng kia. Quan h ệ kết hợp đặc trưng bởi tính nhiều (multiplicity), thể hiện đối tượng này chứa bao nhiêu đối tượng kia.

Khái quát hóa (generalization)

Quan hệ khái quát hóa là quan h ệ mà đối tượng này thừa kế các đặc tính của đối tượng kia (kế thừa trong lập trình hướng đối tượng)

Hiện thực hóa (realization)

Quan hệ giữa giao diện (interface) và lớp thực thi (hiện thực hóa) của interface đó.

II.1.2.3. Biểu đồ

Biểu đồ Use Case (UC diagram)

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

75

Biểu đồ Use Case chỉ ra tương tác giữa tác nhân và hệ thống, thực chất là biểu diễn các chức năng của hệ thống.

Biểu đồ Use Case là bi ểu đồ dễ hiểu, cho cái nhìn t ổng quát về hệ thống, dùng để giao tiếp giữa khách hành, quản lý dự án, người phân tích thiết kế, lập trình viên.

Biểu đồ trình tự (Sequence diagram)

Biểu đồ trình tự chỉ ra các thao tác nhằm thực hiện các chức năng (Use Case). Biểu đồ trình tự mô tả tương tác giữa các đối tượng. Thực chất là trình tự các lời gọi hàm (phương thức) từ đối tượng này sang đối tượng khác.

Biểu đồ cộng tác (Collaboration diagram)

Biểu đồ cộng tác thực chất cũng cung cấp các thông tin giống với biểu đồ trình tự, nhưng ở một cách nhìn khác. Nếu biểu đồ trình tự chỉ ra các tương tác theo thời gian thì biểu đồ cộng tác cho phép nhìn các t ương tác đó theo số lượng (sự phân bố) các tương tác giữa từng cặp đối tượng.

Biểu đồ lớp (Class diagram)

Biểu đồ lớp ch ỉ ra c ấu trúc chi ti ết của từng lớp (class) và quan h ệ giữa các l ớp trong h ệ thống. Biểu đồ lớp rất quan trọng trong quá trình lập trình.

Biểu đồ chuyển trạng thái (State transition diagram)

Biểu đồ chuyển trạng thái mô t ả vòng đời của đối tượng, từ khi sinh ra đến khi b ị phá hủy. Biểu đồ lớp là bức tranh tĩnh về đối tượng, biểu đồ trạng thái cho cái nhìn động về các trạng thái của đối tượng.

Biểu đồ thành phần (Component diagram)

Biểu đồ thành ph ần cho cái nhìn v ật lý v ề mô hình: H ệ thống gồm những thành ph ần (các file Exe, mã nguồn, dữ liệu) gì? Quan hệ của chúng ra sao?

Biểu đồ triển khai (Deployment diagram)

Biểu đồ triển khai chỉ ra địa chỉ vật lý của các thành phần hệ thống sau khi đã cài đặt.

II.1.3. Kiến trúc hệ thống

Mỗi hệ thống được quan sát và hi ểu một cách khác nhau t ừ phía những người khác nhau. Khách hàng, người thiết kế, người quản lý và người phát triển luôn có những cái nhìn khác nhau về hệ thống.

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

76

Kiến trúc hệ thống được chia thành 5 khung nhìn khác nhau tương ứng với những cách nhìn khác nhau. Tuy nhiên, tùy thuộc vào quy mô và tính chất, không phải hệ thống nào cũng cần đầy đủ 5 khung nhìn này.

II.1.3.1. Khung nhìn UC (Use case view)

Khung nhìn đầu tiên, được hình thành từ giai đoạn phân tích yêu cầu. Mô tả các hành vi của hệ thống theo cách nhìn của khách hàng, người phân tích và tester. Khung nhìn UC gồm

- Phần tĩnh: các tác nhân, UC, biểu đồ UC

- Phần động: một vài biểu đồ trình tự, cộng tác

II.1.3.2. Khung nhìn thiết kế (Design view)

Khung nhìn thi ết kế (hay khung nhìn logic – logical view), bi ểu diễn tổ chức của các l ớp quan trọng nhất, quan hệ giữa các lớp này với nhau. Khung nhìn thiết kế bao gồm:

- Phần tĩnh: Các lớp, biểu đồ lớp, biểu đồ đối tượng

- Phần động: Các biểu đồ tương tác, biểu đồ biến đổi trạng thái

II.1.3.3. Khung nhìn cài đặt (Implementation view)

Khung nhìn cài đặt (khung nhìn thành ph ần – component view). Thành ph ần là module v ật lý (thư viện, file exe, thư viện động dll), hay tệp mã nguồn để lắp ráp thành hệ thống vật lý. Khung nhìn thành phần bao gồm thành phần, biểu đồ thành phần và gói.

Người quan tâm nh ất đến khung nhìn thành ph ần là người quản lý mã ngu ồn, dịch chương trình và triển khai ứng dụng.

Development View

Process View Physical View

Use Cases/ Scenarios

Logical View Class diagrams,

Sequence diagrams

Component diagrams

Deployment diagrams Deployment diagrams

Use Case diagrams,

Sequence diagrams

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

77

II.1.3.4. Khung nhìn triển khai (Deployment view)

Khung nhìn tri ển khai ch ỉ ra các ti ến trình và thi ết b ị trên m ạng, các k ết nối vật lý gi ữa chúng. Biểu đồ triển khai cũng hiển thị tiến trình và chỉ ra tiến trình nào chạy trên máy nào.

II.1.3.5. Khung nhìn tiến trình (Process view)

Biểu diễn phân tách giữa các tiến trình, đồng bộ hóa các tiến trình. Khung nhìn này ít được sử dụng (không có trong Rational Rose).

II.2. Rational Rose

II.2.1. Rational Rose là gì

Rational Rose là công c ụ hỗ trợ phân tích, thi ết kế hướng đối tượng bằng UML. Mô hình Rose gồm toàn bộ các biểu đồ UML: tác nhân, Use Case, đối tượng, lớp, thành phần...

Hơn nữa, Rational Rose còn h ỗ trợ phát sinh (generate) mã khung ch ương trình cho nhi ều ngôn ngữ khác nhau: C++, Java, Visual Basic. N ếu tận dụng tốt điều này, b ạn có th ể vừa thiết kế vừa sinh code để lập trình, sau đó lại sử dụng tính n ăng cập nhật từ code chương trình thành biểu đồ.

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

78

II.2.2. Giao diện của Rational Rose

II.3. Use case diagram

II.3.1. Phân tích UC

II.3.1.1. UC là gì?

UC mô t ả ai sử dụng hệ thống như thế nào? Mô t ả tương tác giữa người sử dụng và h ệ thống phần mềm (các thao tác để giải quyết một công việc cụ thể).

UC là nền tảng của phân tích h ệ thống, tìm đầy đủ các UC s ẽ đảm bảo hệ thống được xây dựng sẽ đáp ứng đầy đủ các yêu cầu của người dùng.

UC được sử dụng trong toàn bộ quá trình phân tích thiết kế:

- Mô tả yêu c ầu chức năng của hệ thống (thỏa thuận giữa khác hàng và ng ười phân tích)

- Cung cấp cơ sở để kiểm tra, test hệ thống

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

79

II.3.1.2. Tìm kiếm Actor

Tác nhân (Actor) có th ể là người sử dụng hoặc các hệ thống bên ngoài có t ương tác với hệ thống. Để xác định tác nhân, người ta thường đặt và trả lời các câu hỏi sau:

- Ai sẽ sử dụng chức năng chính của hệ thống?

- Ai quản trị, bảo dưỡng hệ thống?

- Hệ thống đang xây dựng tương tác với hệ thống khác nào?

II.3.1.3. Tìm kiếm UC

Việc tìm ki ếm UC không th ể thiếu được sự tham gia c ủa khách hàng, th ường là s ử dụng phương pháp phỏng vấn. Người phân tích đặt một số câu hỏi để khách hàng trả lời

- Tác nhân yêu cầu hệ thống thực hiện chức năng nào?

- Tác nhân cần đọc, tạo, xóa, sửa, lưu trữ các thông tin nào trong hệ thống?

II.3.2. UC Diagram

Biểu đồ UC (Use Case Diagram) là bi ểu đồ chỉ ra sự tương tác giữa actor và UC. Biểu đồ UC chính là ngôn ngữ chung giữa khách hàng, người phân tích, người quản lý và người phát triển hệ thống. Mỗi hệ thống tùy theo độ phức tạp có thể có 1 hoặc vài UC. Với hệ thống có nhiều biểu đồ:

- Biểu đồ UC mức chính chỉ ra gói hay nhóm UC

- Các biểu đồ UC khác là tương tác giữa tác nhân và UC

Chú ý:

- Biểu đồ UC không mô tả tương tác giữa actor với actor (vì nằm ngoài hệ thống)

- Không hình thành quan hệ trực tiếp giữa 2 UC, luồng thông tin giữa 2 UC

- Mỗi UC phải được khởi động bởi tác nhân

Actor

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

80

II.3.2.1. Tài liệu mô tả UC

Biểu đồ UC cho cái nhìn toàn cảnh về hệ thống nhưng lại quá súc tích, để cụ thể hóa (khách hàng có th ể hiểu được), người ta phải lập các tài li ệu mô t ả cho từng UC. Tài li ệu mô t ả của mỗi UC gồm có: Mô tả vắn tắt và các dòng sự kiện

Thành phần Mô tả

Mô tả vắn tắt (brief description)

UC làm gì? Ai sử dụng UC? Kết quả cuối cùng của UC? (một vài dòng)

Dòng sự kiện (flow of events) Dòng sự kiện là m ột chuỗi các hành vi, mô t ả người sử dụng làm gì, h ệ thống làm gì.

Mỗi UC gồm

- Một dòng sự kiện chính (basic flow), là dòng đơn giản nhất (khi dữ liệu, trạng thái... không có gì đặc biệt, các hành vi được thực hiện tuần tự, cho ra đúng kết quả mong muốn)

- Các dòng s ự ki ện r ẽ nhánh (alternative flow): khi có nh ững d ữ liệu, trạng thái không bình th ường. Hệ thống phải có nh ững ứng xử thích hợp trong những trường hợp này

II.3.3. Tổng kết

Các bước phải làm

- Tìm kiếm tác nhân (actor)

- Tìm kiếm UC

Customer

Conduct Bank Transactions

ATM Maintenance

Maintain ATM Machine

Run Reports

Bank

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

81

- Lập biểu đồ UC

- Lập tài liệu mô tả cho từng UC

o Mô tả vắn tắt

o Các luồng sự kiện (luồng sự kiến chính, luồng sự kiện rẽ nhánh)

II.4. Biểu đồ tương tác (Interaction diagram) Biểu đồ UC mô tả khía cạnh tĩnh của hệ thống, còn biểu đồ tương tác (Interaction diagram) chỉ ra khía cạnh động của hệ thống. Biểu đồ tương tác bao gồm các tác nhân, đối tượng, và thông điệp trao đổi giữa chúng . Biểu đồ tương tác là c ụ thể hóa c ủa các lu ồng sự kiện trong các tài liệu mô tả UC.

Biểu đồ tương tác xu ất hiện trong c ả khung nhìn UC và khung nhìn thi ết kế (khung nhìn logic trong Rose). Các bước thực hiện như sau

- Phân tích mô tả UC, tìm các đối tượng

- Dựa vào luồng các sự kiện, xây dựng biểu đồ tương tác của khung nhìn UC

- Xây dựng biểu đồ lớp

- Chỉnh sửa lại bi ểu đồ tương tác c ủa khung nhìn UC để có bi ểu đồ tương tác c ủa khung nhìn thiết kế (khung nhìn logic)

Biểu đồ tương tác gồm có:

- Biểu đồ trình tự (Sequence diagram)

- Biểu đồ cộng tác (Collaboration diagram)

II.4.1. Đối tượng là gì?

Đối tượng là các thực thể vật lý hoặc các hệ thống phần mềm, giao diện... Đối tượng là tập hợp các dữ liệu (property) và thao tác (operator).

II.4.2. Tìm đối tượng

Để tìm đối tượng, khảo sát các danh từ trong luồng sự kiện (của tài li ệu mô t ả UC). Tuy nhiên, không phải tất cả các danh từ đều là đối tượng, danh từ có thể là:

- Đối tượng

- Mô tả trạng thái của đối tượng

- Actor hoặc các hệ thống bên ngoài

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

82

II.4.3. Biểu đồ trình tự (Sequence Diagram)

Biểu đồ trình tự là các giao ti ếp bằng thông điệp giữa actor với đối tượng, đối tượng với đối tượng được sắp xếp theo trình tự thời gian. Mỗi biểu đồ trình tự biểu diễn một luồng sự kiện của một UC.

II.4.4. Biểu đồ cộng tác (Collaboration Diagram)

Là góc nhìn khác của biểu đồ trình tự. Trong khi biểu đồ trình tự có trật tự theo thời gian thì biểu đồ cộng tác t ập trung nhi ều hơn vào quan h ệ giữa các đối tượng, thể hiệu tổ chức và cấu trúc của các đối tượng gửi hay nhận thông điệp.

John : Student

registration form

schedule form

available course

1: enter 2: validate id

3: enter current semester

4: create new schedule 5: display

6: get courses

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

83

II.5. Class diagram

II.5.1. Class là gì?

Đối tượng tồn tại trong thế giới thực (máy móc, tổ chức,...). Lớp là mô tả về thuộc tính, thao tác của một kiểu (một tập) các đối tượng. Như vậy, lớp là trừu tượng của đối tượng, đối tượng là hiện thực (instance) của lớp.

Khái niệm lớp trong Tin h ọc rất gần với khái ni ệm lớp trong thuy ết tiến hóa c ủa Darwin: Các lớp tập hợp các loài có chung nhi ều đặc điểm, lớp sau có th ể kế thừa các đặc tính của lớp trước và có những đặc tính riêng của mình.

II.5.2. Tìm kiếm class

Lớp được tìm ki ếm đầu tiên trong bi ểu đồ tương tác. Tìm các đối tượng (trong bi ểu đồ tương tác) có chung các đặc điểm (thuộc tính, thao tác...), gộp chúng lại chúng ta có các lớp.

Ngoài ra, có nh ững lớp không th ể tìm được trong bi ểu đồ tương tác, đó là các l ớp n ằm ngoài, ch ịu trách nhi ệm điều khiển hoạt động của biểu đồ tương tác này, ta g ọi đó là l ớp điều khiển (control class).

Một số câu hỏi hữu ích có thể đặt ra để tìm lớp:

- Có thông tin nào cần lưu trữ hay phân tích?

- Có hệ thống ngoài không?

- Có thư viện, thành phần không?

John : Student

registration form

schedule form available classes

1: enter id

2: validate id

3: enter current semester

4: create new schedule 5: display

6: get courses

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

84

II.5.3. Phân loại class (stereotype) Stereotype Mô tả

Boundary class (lớp biên) Lớp biên là lớp nằm trên biên của hệ thống (form, report, giao diện với các hệ thống khác...)

Entity class (lớp thực thể) Lớp thực thể lưu trữ thông tin mà nó sẽ được ghi vào bộ nhớ ngoài.

Control class (lớp điều khiển) Lớp điều khiển là lớp có trách nhiệm điều phối hoạt động của các lớp khác.

II.5.4. Class Diagram

Biểu đồ lớp thể hiện các lớp và quan hệ giữa chúng, hoặc các gói các l ớp và quan h ệ giữa các gói này. Bi ểu đồ lớp giúp người phát tri ển quan sát và l ập kế hoạch cấu trúc h ệ thống trước khi lập trình. Nó đảm bảo hệ thống được thiết kế tốt ngay từ đầu.

Trong biểu đồ lớp, mỗi lớp được biểu diễn bằng một hình chữ nhật với tên lớp, các thu ộc tính (attribute) và các thao tác (operator):

- Thuộc tính (attribute) : Thu ộc tính là các thông tin c ủa lớp (ví d ụ lớp Công ty có các thuộc tính: Tên, Địa chỉ, Số nhân viên...)

- Thao thác (operator): Thao tác là các hành vi c ủa lớp. Mỗi thao tác gồm có 3 phần sau: Tên thao tác, tham số của thao tác và kiểu giá trị của thao tác.

II.5.4.1. Quan hệ giữa các class (relationship)

Trong hệ thống, các lớp không đứng riêng lẻ mà làm việc phối hợp với nhau. Quan hệ giữa các lớp cho phép một lớp biết về thuộc tính, thao tác và quan h ệ của lớp khác. Các quan h ệ được bi ểu di ễn trên bi ểu đồ l ớp. Gi ữa các l ớp có 4 ki ểu quan h ệ chính: kết h ợp (association), phụ thu ộc (dependencies) , tập h ợp (aggregation) và khái quát hóa (generalization).

Quan hệ kết hợp (assiciation)

Quan hệ kết hợp chỉ ra rằng có một đường liên kết giữa 2 lớp. Khi có quan hệ kết hợp, mỗi lớp có th ể gửi thông điệp đến lớp khác trong bi ểu đồ tương tác. K ết hợp có th ể một chiều hay hai chiều.

Quan hệ kết hợp có th ể đệ quy. Kết hợp đệ quy ch ỉ ra r ằng một đối tượng có quan h ệ với một đối tượng khác thuộc cùng một lớp.

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

85

Quan hệ phụ thuộc (dependency)

Quan hệ phụ thuộc cũng sử dụng để kết nối 2 lớp. Nhưng khác với quan hệ kết hợp, quan hệ phụ thuộc chỉ có 1 chi ều. Quan hệ phụ thuộc chỉ ra lớp (A) phụ thuộc lớp (B). Có ngh ĩa là các thao tác của lớp (A) hiểu được ngữ nghĩa của lớp (B). Trong VB, khi thiết kế không cần phải xây d ựng quan h ệ phụ thuộc vì b ất cứ lớp (form, module, class module...) nào trong VB đều có thể hiểu các lớp khác.

Quan hệ tụ hợp (aggregation)

Tụ hợp (aggregation) là hình th ức mạnh của quan hệ kết hợp. Quan h ệ kết hợp ch ỉ ra rằng một đối tượng thuộc lớp này chứa đối tượng thuộc lớp kia. Quan h ệ kết hợp cài đặt trong VB thực chất là việc khai báo một thuộc tính của một lớp là một đối tượng thuộc lớp khác.

Quan hệ khái quát hoá (generalization)

Khái quát hóa (hay tr ừu tượng hóa) là ti ến trình nh ằm lược bỏ những thuộc tính, thao tác không thực sự cần thiết của đối tượng để có được cái nhìn t ổng quát h ơn. Khái ni ệm khái quát hóa gắn liền với khái niệm kế thừa (inherite) trong lập trình hướng đối tượng. Nếu lớp (A) kế thừa lớp (B) có nghĩa là lớp (A) là con của lớp (B), lớp (A) có đầy đủ các thuộc tính, thao tác của lớp (B), đồng thời có những thuộc tính và thao tác riêng của mình. Trong UML, ta gọi (B) là khái quát hóa của (A).

ScheduleForm<<boundary>>

RegistrationForm<<boundary>>

1 111

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

86

II.5.4.2. Tính nhiều (multiplicity) của quan hệ

Tính nhiều của quan h ệ giữa hai lớp (A) và (B) là s ự biểu diễn MỘT đối tượng thuộc lớp (A) có quan hệ với bao nhiêu đối tượng của lớp (B) trong cùng 1 thời điểm?

Với mỗi quan hệ, phải xác định tính nhiều ở 2 đầu của đường quan hệ.

Tính nhiều Ý nghĩa

* Nhiều

0 Không

1 Một

0..* Từ không đến nhiều

1..* Từ một đến nhiều

0..1 Không hay một

1..1 Chỉ một

Một giáo viên có thể dạy nhiều cua học, mỗi cua học chỉ có một giáo viên.

Mỗi cua h ọc có t ừ 3 đến 10 sinh viên. M ột sinh viên có th ể tham gia nhi ều cua h ọc hoặc chẳng tham gia cua học nào.

1..*

Person Teacher

Course

1

Course Student

3..10 0..*

Truck

tonnage

GroundVehicle

weight licenseNumber

Car

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

87

II.5.5. Cập nhật sequence diagram

Biểu đồ tuần tự được xây d ựng ở bước trước là bi ểu đồ tuần tự của khung nhìn UC (khi chúng ta ch ưa có các l ớp). Trong khung nhìn thi ết kế (khung nhìn logic), sau khi đã xác định các lớp, các thuộc tính và thao tác c ủa lớp, chúng ta ph ải tiến hành xây d ựng biểu đồ tuần tự của khung nhìn logic.

Biểu đồ tuần tự này thực chất là sự cập nhật của biểu đồ tuần tự của khung nhìn UC, nhưng được cập nhật tên lớp, thao tác của lớp.

Quá trình này nếu kết hợp với công việc lập trình có thể tạo được khung chương trình đồng bộ với các biểu đồ UML. Việc lập trình theo khung này giúp người thiết kế có thể hình dung độ phức tạp của dự án, khối lượng công việc cần thực hiện, giúp phát tri ển dự án một cách có kế hoạch.

Rational Rose hỗ trợ tích hợp với Java, VC, VB theo cả 2 chiều: Từ mô hình UML phát sinh mã nguồn và t ừ mã ngu ồn chuyển đổi thành mô hình UML để giúp xây d ựng phần mềm một cách đồng bộ.

II.6. Biểu đồ thành phần (Component diagram) Biểu đồ thành phần là biểu đồ mức kiến trúc vật lý (liên quan đến cài đặt), gồm các modul vật lý (mã nguồn chương trình, các tệp chạy được - exe, dll...). Các dạng biểu đồ thành phần

- Thành phần mã nguồn: Có ý ngh ĩa vào thời điểm dịch chương trình, là các file mã nguồn của chương trình (*.frm, *.frx, *.bas, *.cls)

- Thành ph ần nh ị phân : Được d ịch ra t ử các file mã ngu ồn (các file *.obj, *.lib, *.dll...). Có ý nghĩa vào thời điểm liên kết hoặc thời điểm chạy chương trình

- Thành phần khả thi : là các t ệp chương trình th ực hiện được (*.exe...), là k ết quả của các thành phần nhị phân (liên kết tĩnh hay động).

II.6.1. Tổng kết

Các việc phải làm:

- Phân tích các bi ểu đồ tương tác (tuần tự và cộng tác), tìm ki ếm các đối tượng trong biểu đồ này

- Gộp các đối tượng cùng lo ại thành các l ớp. Bổ sung các l ớp điều khiển và lớp biên chưa có trong biểu đồ tương tác.

- Tìm các thuộc tính và thao tác của biểu đồ tương tác

- Tìm quan hệ

- Lập biểu đồ lớp

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

88

- Chỉnh sửa lại bi ểu đồ tương tác c ủa khung nhìn UC thành bi ểu đồ tương tác c ủa khung nhìn thiết kế (khung nhìn logic)

II.7. Ví dụ áp dụng

II.7.1. Mô tả bài toán

Phần mô t ả bài toán r ất quan trọng để bạn có th ể có được một bản thiết kế phần mềm tốt, hãy đặt mình ở vị trí của khách hàng để yêu cầu người thiết kế, mô tả càng chi tiết càng tốt. Sau đây là phần mô tả bài toán ví dụ:

Xây dựng phần mềm nhập sơ đồ kết cấu phẳng, nhập tải trọng, kết xuất dữ liệu ra file S2K (SAP2000 v8.0).

Các chức năng

- Tạo lưới: người dùng chọn các bước theo chiều dọc (ví dụ 3:6:6:3m), và theo chi ều ngang (ví d ụ 3:3:3m), chương trình t ạo ra l ưới vuông góc theo các kho ảng chia đã chọn.

- Chương trình ở 1 trong 3 chế độ

o Chọn: Người dùng sử dụng chuột để chọn đối tượng

o Vẽ nút: Người dùng vẽ các nút tại các mắt lưới

o Vẽ thanh: Người dùng vẽ các thanh bằng cách nối 2 nút

o Khi click trái chu ột vào các bi ểu tượng trên toolbar thì chuy ển về các ch ế độ tương ứng. Khi click ph ải chuột thì ch ương trình chuy ển ngay sang ch ế độ chọn.

- Vẽ nút trên các đỉnh lưới: Ở chế độ vẽ nút, mỗi khi người dùng di chuy ển chuột, vị trí nút lưới gần con trỏ chuột nhất được sáng lên (giống chế độ snap của AutoCAD). Khi người dùng click trái chuột thì chương trình sẽ tạo ra nút tại vị trí đó.

- Vẽ thanh nối các nút: Ở chế độ vẽ thanh, chương trình chia làm 2 chế độ nhỏ

o Chọn nút đầu: Khi ng ười dùng di chuy ển chuột, nút g ần con tr ỏ chuột nhất được sáng lên. Khi click trái chuột thì chương trình đánh dấu nút tương ứng và chuyển sang chế độ Chọn nút cuối.

o Chọn nút cu ối: Khi người dùng di chuy ển chuột, nút g ần con tr ỏ chuột nhất được sáng lên, một đường nối giả định được vẽ giữa nút đầu và nút cuối. Khi click trái chuột, chương trình tạo thêm 1 thanh nối giữa 2 nút và lại chuyển về chế độ Chọn nút đầu

- Chọn nút, thanh bằng chuột (click hoặc chọn theo window)

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

89

o Chọn nút, thanh bằng chuột: Khi người dùng click chuột ở gần nút hoặc thanh (khoảng cách khoảng 6 pixel), đánh dấu nút hoặc thanh đang được chọn

o Chọn nút, thanh b ằng window: Khi ng ười dùng click vào 1 vùng tr ống trên màn hình, tạo ra một hình chữ nhật di chuyển theo con chuột. Click chuột lần nữa để xác định vùng chọn hình chữ nhật, tất cả các đối tượng nằm trong vùng chọn được đánh dấu là đang chọn.

- Xóa thanh, nút: Khi ng ười dùng b ấm phím Delete ho ặc click vào bi ểu tượng trên Toolbar, xóa tất cả các nút và thanh đang được chọn. Nếu một nút b ị xóa, tất cả các thanh nối với nút đó cũng bị xóa theo.

- Nhập tải tập trung cho nút: Khi ng ười dùng chọn menu hoặc click vào Toolbar, hi ển thị hộp thoại cho phép nhập tải tập trung cho tất cả các nút đang được chọn.

- Nhập tải phân bố đều cho thanh: Khi người dùng chọn menu hoặc click vào Toolbar, hiển th ị hộp tho ại cho phép nh ập t ải phân b ố đều cho t ất cả các thanh đang được chọn.

- Lưu dữ liệu ra file S2K

II.7.2. Biểu đồ UseCase

II.7.2.1. Tìm kiếm Actor

Hệ thống chỉ có 1 Actor là người dùng chương trình.

II.7.2.2. Tìm UseCase

Dựa vào các ch ức năng được liệt kê trong yêu c ầu người dùng, có th ể phân chia các ch ức năng đó thành các UseCase sau

- Tạo lưới

- Vẽ nút

- Vẽ thanh

- Chọn đối tượng

- Xóa đối tượng

- Nhập liên kết

- Nhập tải tập trung

- Nhập tải phân bố đều

- Lưu dữ liệu ra file S2K

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

90

II.7.2.3. Biểu đồ UseCase

II.7.2.4. Mô tả UseCase

UseCase Tạo lưới

Name Tạo lưới

Brief Description Tạo lưới chia vuông góc theo các khoảng cách ngang và dọc do người dùng lựa chọn

Preconditions

Actor Input System Response

0 Chọn chức năng Tạo mới

1 Hiển thị hộp thoại (danh sách các kho ảng cách theo phương x và y)

2 Thêm khoảng cách (phương x, y)

3 Bổ sung khoảng cách theo phương x, y

4 Xóa khoảng cách (phương x, y)

5 Xóa kho ảng cách t ại v ị trí được ch ọn trong danh sách các kho ảng cách phương x, y

6 Nhấn OK để tạo lưới

Main Flow

7 Tạo l ưới vuông góc v ới các kho ảng các theo ph ương x, y đã ch ọn. Đóng h ộp thoại

0 Nhấn OK để tạo lưới Alternative Flow

1 Nếu số khoảng cách theo phương x (hoặc y) là 0, thông báo lỗi

Post-conditions

UseCase Vẽ nút

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

91

Name Vẽ nút

Brief Description Vẽ nút trên mắt lưới

Preconditions Đã tạo lưới.

Actor Input System Response

0 Chọn chức năng vẽ nút

1 Chuyển sang chế độ vẽ nút

2 Di chuyển con trỏ chuột

3 Tìm m ắt l ưới g ần con tr ỏ chu ột nh ất, đánh dấu mắt lưới đó

4 Click trái chuột

Main Flow

5 Tạo nút tại vị trí mắt lưới đang được đánh dấu

0 Click phải chuột hoặc nhấn phím ESC hoặc chọn 1 chức năng khác

Chuyển ch ương trình sang ch ế độ ch ọn đối tượng

Alternative Flow

1

Post-conditions

UseCase Vẽ thanh

Name Vẽ thanh

Brief Description Vẽ thanh nối 2 nút

Preconditions Có ít nhất 2 nút đã được vẽ

Actor Input System Response

0 Chọn chức năng vẽ thanh

1 Chuyển sang chế độ vẽ thanh – nút đầu

2 Di chuyển con trỏ chuột

3 Tìm nút gần con trỏ chuột nhất, đánh dấu nút đó

4 Click trái chuột

5 Ghi nh ận nút đang được đánh d ấu, chuyển sang chế độ vẽ thanh – nút cuối

6 Di chuyển con trỏ chuột

7 Tìm nút gần con trỏ chuột nhất, đánh dấu nút đó, vẽ đường kết nối giữa 2 nút

8 Click trái chuột

Main Flow

9 Tạo thanh n ối giữa nút đầu và nút cu ối, chuyển sang chế độ vẽ thanh – nút đầu

Alternative Flow 0 Click phải chuột hoặc nhấn phím

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

92

ESC hoặc chọn 1 chức năng khác

Chuyển ch ương trình sang ch ế độ ch ọn đối tượng

1 Chọn nút cuối trùng nút đầu Thông báo l ỗi, chuy ển sang ch ế độ v ẽ thanh – nút đầu

Post-conditions

UseCase Chọn đối tượng

Name Chọn đối tượng

Brief Description Chọn đối tượng bằng chuột

Preconditions

Actor Input System Response

0 Chọn chế độ chọn đối tượng

1 Chuyển sang ch ế độ ch ọn đối t ượng – bình thường

2 Di chuyển chuột

3 Nếu đang ở chế động ch ọn đối tượng – cửa sổ, vẽ cửa sổ từ điểm đã lưu đến v ị trí của con trỏ chuột

4 Click chuột trên màn hình chính

5 Nếu con tr ỏ chu ột g ần nút ho ặc thanh, đánh dấu đối tượng được chọn

6 Nếu con tr ỏ chu ột không g ần đối tượng nào, lưu lại điểm vừa click, chuy ển sang chế độ chọn đối tượng – cửa sổ

Main Flow

7 Nếu đang ở chế độ chọn đối tượng – cửa sổ, đánh d ấu t ất c ả các đối n ằm trong cửa sổ

0 Click phải chuột hoặc nhấn phím ESC hoặc chọn 1 chức năng khác

1 Chuyển ch ương trình sang ch ế độ ch ọn đối tượng

2 Chọn nút cuối trùng nút đầu

Alternative Flow

Thông báo l ỗi, chuy ển sang ch ế độ v ẽ thanh – nút đầu

Post-conditions

UseCase Xóa đối tượng

Name Xóa đối tượng

Brief Description Xóa các đối tượng đang đánh dấu được chọn

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

93

Preconditions Có đối tượng được chọn

Actor Input System Response

0 Nhấn nút Delete hoặc biểu tượng trên Toolbar

1 Xóa tất cả các thanh được đánh dấu chọn

Main Flow

2 Xóa t ất c ả các nút đang được đánh d ấu chọn. Xóa tất cả các thanh nối với nút đó

0 Không có nút nào được chọn Alternative Flow

1 Thông báo lỗi

Post-conditions

UseCase Nhập liên kết

Name Nhập liên kết

Brief Description Nhập các ràng bu ộc (chuyển vị theo phương x, y, z, chuy ển vị quay theo ph ương 1, 2, 3)

Preconditions Có đối tượng được chọn

Actor Input System Response

0 Chọn ch ức n ăng nh ập liên k ết (menu hoặc toolbar)

2 Hiển th ị h ộp tho ại cho phép đối t ượng chuyển vị theo phương x, y, z ho ặc quay theo ph ương 1, 2, 3 (d ưới d ạng check box)

3 Lựa ch ọn các giá tr ị trên check box

4 Click OK

Main Flow

Đưa ràng buộc vào các đối tượng

0 Không có đối t ượng nào được chọn

1 Thông báo lỗi

2 Nhấn cancel

Alternative Flow

3 Đóng hộp thoại

Post-conditions

UseCase Nhập tải tập trung

Name Nhập tải tập trung

Brief Description Nhập tải tập trung (các giá trị X, Y, Z) cho tất cả các nút đang được chọn

Preconditions Có đối tượng được chọn

Main Flow Actor Input System Response

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

94

0 Chọn ch ức n ăng nh ập t ải t ập trung (menu hoặc toolbar)

1 Bỏ đánh dấu tất cả các thanh đang được chọn

2 Hiển thị hộp thoại cho phép nhập 3 giá trị x, y, z của tải

3 Nhập các giá trị x, y, z

4 Click OK

5 Đưa giá tr ị các t ải vào nút, đóng h ộp thoại

0 Không có nút nào được chọn

1 Thông báo lỗi

2 Nhập sai giá tr ị x, y, z (không phải số)

3 Thông báo lỗi

4 Nhấn cancel

Alternative Flow

5 Đóng hộp thoại

Post-conditions

UseCase Nhập tải phân bố đều

Name Nhập tải phân bố đều

Brief Description Nhập tải phân b ố đều (các giá tr ị X, Y, Z lo ại hệ tọa độ local hay global) cho t ất cả các thanh đang được chọn.

Preconditions Có đối tượng được chọn

Actor Input System Response

0 Chọn ch ức n ăng nh ập t ải phân bố (menu hoặc toolbar)

1 Bỏ đánh d ấu t ất c ả các nút đang được chọn

2 Hiển thị hộp thoại cho phép nhập 3 giá trị x, y, z c ủa t ải phân b ố, h ệ t ọa độ local hay global

3 Nhập các giá tr ị x, y, z, lo ại h ệ tọa độ

4 Click OK

Main Flow

5 Đưa giá tr ị các t ải vào thanh, đóng h ộp thoại

0 Không có thanh nào được chọn

1 Thông báo lỗi

Alternative Flow

2 Nhập sai giá tr ị x, y, z (không

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

95

phải số)

3 Thông báo lỗi

4 Nhấn cancel

5 Đóng hộp thoại

Post-conditions

UseCase Lưu dữ liệu ra file S2K

Name Lưu dữ liệu ra file S2K

Brief Description Lưu dữ liệu (nút, thanh, tải tập trung, tải phân bố) ra file S2K

Preconditions Có nút và thanh

Actor Input System Response

0 Chọn ch ức n ăng l ưu d ữ li ệu (menu, toolbar)

1 Hiển thị hộp thoại chọn tên file

2 Click OK

3 Ghi danh sách các nút (s ố thứ tự, tọa độ) ra file

4 Ghi danh sách các thanh (s ố th ứ t ự, 2 nút, ràng buộc) ra file

5 Ghi các ràng buộc của nút ra file (nếu có)

6 Ghi các tải tập trung của nút ra file

Main Flow

7 Ghi các tải phân bố của thanh ra file

0 Thao tác trên file bị lỗi

1 Thông báo lỗi, hỏi có tiếp tục hay không?

2 Chưa vẽ nút, thanh

3 Thông báo lỗi

4 Nhấn cancel

Alternative Flow

5 Đóng hộp thoại

Post-conditions

II.7.3. Biểu đồ tương tác

II.7.3.1. Tìm đối tượng

Dựa vào yêu cầu người dùng và các đặc tả chi tiết của từng Usecase, chúng ta có danh sách các ứng viên đối tượng (tìm các danh từ có chứa thuộc tính và thao tác)

- MainForm: tất cả các thao tác trên sơ đồ kết cấu đều thực hiện trên form này

- Structure: Sơ đồ kết cấu

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

96

- Frame: Thanh

- Node: Nút

- Grid: lưới vuông góc

- GridForm: hộp thoại nhập các khoảng cách của lưới vuông góc

- RestraintForm: hộp thoại nhập liên kết

- ForceForm: hộp thoại nhập tải tập trung

- DistributedForm: hộp thoại nhập tải phân bố

- SaveDialog: hộp thoại chọn tên file để lưu

II.7.3.2. Biểu đồ tuần tự (sequence diagram)

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

97

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

98

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

99

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

100

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

101

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

102

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

103

II.7.4. Biểu đồ lớp

II.7.4.1. Tìm kiếm lớp

Từ danh sách các đối tượng đã liệt kê, tập hợp các đối tượng cùng loại được các lớp sau

- frmMain

- clsStructure

- clsFrame

- clsNode

- clsGrid

- frmGrid

- frmRestraint

- frmForce

- frmDistributed

- CommondDialog: lớp hộp thoại có sẵn của Microsoft

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

104

II.7.4.2. Biểu đồ lớp

II.7.5. Cập nhật biểu đồ tương tác

Sau khi đã có biểu đồ lớp, các đối tượng trong biểu đồ tương tác giai đoạn 1 phải được cập nhật với tên lớp, các thuộc tính và thao tác của lớp đó. Quá trình cập nhật biểu đồ tương tác nên kết hợp với sinh code (b ằng Rational Rose) để tạo được sự thống nhất giữa thiết kế và thực thi.

Bộ môn Tin học Xây dựng – ĐHXD Tài liệu hướng dẫn thực tập tốt nghiệp

105