Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 33 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
BỘ GIÁO DỤC VÀ ĐÀO TẠO
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM </b>
<b>TP. Hồ Chí Minh, 2019 </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>Biểu đồ Use case </b>
Use–case này sử dụng lại chức năng của use-case kia
Use-case này mở rộng từ use-case kia bằng các thêm chức năng cụ thể
Use-case này kế thừa các chức năng từ use-case kia
<b>Biểu đồ lớp (Class Diagram) </b>
tính và phương pháp của lớp đó
hai lớp độc lập, có liên quan đến nhau
phận – tổng thể
nhau trong hoạt động của hệ thống
<b>Biểu đồ trạng thái (State Diagram) </b>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Trạng thái đối tượng Biểu diễn trạng thái của đối tượng trong vòng đời của
<b>Biều đồ hoạt động (Activity Diagram) </b> Các luồng Phân cách các lớp đối tượng
khác nhau trong biều đồ hoạt
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>Biểu đồ thành phần (Component Diagram) </b>
của biểu đồ, mỗi thành phần có thể chứa nhiều lớp hoặc nhiều chương trình con
Giao thức truyền thơng ICP/IP trông qua kết nối mạng lan
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Hình 3.3. Activity diagram - Bắt đầu game ... 17
Hình 3.4. Activity diagram - Điều khiển nhân vật ... 18
Hình 3.5. Activity diagram - Tương tác đối tượng ... 19
Hình 3.6. Activity diagram - Chọn chế độ chơi ... 20
Hình 3.7. Activity diagram - Tạo phịng ... 21
Hình 3.8. Activity diagram - Tham gia phịng chơi ... 22
Hình 3.9. Activity diagram - Điều khiển nhân vật 2D... 23
Hình 3.10. Sequence diagram - Bắt đầu game... 24
Hình 3.11. Sequence diagram - Điều khiển nhân vật 3D ... 25
Hình 3 12. Sequence diagram - Chọn chề độ chơi ... 25
Hình 3.13. State diagram - Nhân vật... 26
Hình 3.14. State diagram - Phong chơi... 27
Hình 3.15. Component diagram ... 27
Hình 3.16. Deployment diagram ... 28
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Trên thế giới cũng như Việt Nam, công nghệ thông tin đã trở thành một cơng nghệ mũi nhọn, nó là ngành công nghệ kỹ thuật không thể thiếu trong việc áp dụng vào các hoạt động xã hội như: các hoạt động quản lý hệ thống, kinh doanh, trong hoạt động nghiên cứu,… và đặc biệt là trong lĩnh vực game – một lĩnh vực đang phát triển mạnh hiện nay.
Ở nước ta hiện nay, việc xây dựng một ứng dụng game đã khơng cịn xa lại, nhưng để tạo ra một game hay và chất lượng là một vấn đề không dễ. Đây là một vấn đề nan giải, để xây dựng được một game đạt chất lượng ngoài việc người lập trình phải có kinh nghiệm, kiến thức vững chất về các công cụ và ngôn nghữ lập trình, thì cần phải hiểu, hoạch định và phân tích tối ưu được các vai trò chức năng của hệ thống thơng tin, chính vì thế nhóm chúng em chọn đề tài “Phân tích thiết kế hệ thống game”.
Game có tên là Dark Ascending, đây là một tựa game được tạo nên từ sự sáng tạo, kết hợp giữa thể loại kinh dị và giải trí đơn giản tạo nên một game đặc biệt có 1 khơng 2 trên thị trường. Game mang phong cách độc lạ với kiểu chơi nửa 2d, nửa 3d.
Mặt dù đã rất cố gắng để hồn thành cơng việc, nhưng do thời gian có hạn và thiếu kinh nghiệm cũng như kỹ năng chưa cao nên việc phân tích và thiết kế cịn nhiều thiết sót, kính mong q thầy cơ và các bạn góp ý, bổ sung để nhóm hồn thiện cho đồ án tốt hơn nữa. Nhóm chúng em xin chân thành cảm ơn!
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Người chơi bấm nút bắt đầu game để chơi và được đưa vào chế độ 3d, trong phần 3d này người chơi có thể di chuyển, xoay camera, góc nhìn thứ nhất. Người chơi đọc thư, tìm chìa khóa để mở cửa, sau khi mở cửa sẽ chuyển sang khu vực chính. Trong khu vực này, người chơi đọc lá thư để biết điểm tiếp theo, mở cánh cửa sau đó chọn chế độ offline hoặc online rồi vào phần chơi chính dưới góc nhìn 2d. Ở chế độ online người chơi phải cần kết nối mạng sau đó được tự động vào phịng bất kì do người chơi khác tạo và đang được mở hoặc nếu khơng tìm thấy phịng sẽ tự động tạo phòng mới, ở chế độ offline người chơi được tự động tạo phòng như chế độ online nhưng không cho bất kỳ người chơi nào khác tham gia và không cần mạng.
Khi vào chế độ 2d, cơ chế game thay đổi, người chơi điều khiển nhân vật di chuyển 2 hướng trái và phải, camera sẽ tự động đi xuống, hệ thống sẽ tự động phát sinh ngẫu nhiên các bậc để đứng hoặc gai, nếu để nhân vật đi quá màn hình camera hoặc chạm gai thì sẽ chết, vì vậy người chơi cần phải điều khiển và giữ cho nhân vật không bị rơi quá màn hình, có khoảng thời gian quy định ở góc trên màn hình, nếu thời gian chưa về 0 mà người chơi để chết thì sẽ bị tính là gameover, ngược lại nếu sinh tồn được hết thời gian trên ( bộ đếm về 0) thì được tính là win và có thể chết an tồn. Trong chế độ online chỉ gameover khi toàn bộ người chơi đều chết, nếu người chơi này chết mà người kia còn sống và sinh tồn xong hết khoảng thời gian quy định thì được tính là win.
Sau khi chết sẽ được đưa quay khu vực nhà tù, đổi lại góc nhìn 2d, người chơi đọc thư để quyết định có tiếp tục được hay không. Nếu phần chơi 2d bị gameover sẽ có thơng báo và chuyển sang màn hình gameover rồi chuyển về giao diện menu, nếu phần chơi 2d là win thì được tiếp tục chơi.
Ở giao diện menu, người chơi bấm nút tiếp tục sẽ được chuyển vào khu vực nhà tù ở phần trước khi bị gameover, đọc lá thư và đến cửa để bắt đầu phần chơi 2d như trên.
Game phải có dung lượng không quá lớn, tốc độ xử lý nhanh.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"> Giao diện game dễ nhìn, thân thiện với người sử dụng.
Công việc tính tốn (vai chạm, mạng, điểm số, …) phải thực hiện chính xác, khơng chấp nhận sai sót.
Đảm bảo an tồn dữ liệu khi kết nối Internet. Tạo cảm giác chân thật, sống động cho người chơi. Phân tích game theo hướng đối tượng cụ thể, rõ ràng.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Phân tích thiết kế là qi trình tìm hiểu và mơ phỏng lại hiện tượng, quy trình nghiệp vụ trong thiết giới thực từ đó xây dựng hệ thống để giải quyết bài toán đặt ra trên máy tính.
Chất lượng thiết kế là nhân tố chính quyết định chất lượng phần mềm. Không thiết kế hoặc thiết kế không tốt dẫn đến phần mềm chất lượng thấp: Không quản lý được những thay đổi yêu cầu.
Khó kiểm thử. Khó bảo trì.
Khơng có tính tiến hóa. Khơng tái sử dụng được.
Thiết kế tốt mang lại phần mềm chất lượng tốt: Dễ dàng thay đổi yêu cầu.
Đặc trưng của cấu trúc này là phân chia chương trình chính thành nhiều chương trình con, mỗi chương trình con nhằm thực hiện một cơng việc xác định.
Các thức thực hiện của phương pháp hướng chức năng là phương pháp thiết kế từ trên xuống (top-down). Phương pháp này tiến hành phân rã bài toán thành các bài toán nhỏ hơn, rồi tiếp tục phân rã các bài toán con cho đến khi nhận được các bài tốn có thể cài đặt được ngay sử dụng các hàm của ngơn ngữ lập trình hướng chức năng.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Đây là lối tiếp cận truyền thống của ngành công nghệ phần mềm, quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn.
Căn cứ vào thơng tin người dùng cần, sau đó thiết kế dữ liệu để chứa những thơng tin đó. Phương pháp này tập trung vào thông tin.
<i>2.3.2. Hướng đối tượng: </i>
Lấy đối tượng làm trung tâm. Đối tượng = chức năng + dữ liệu.
Hệ thống = tập trung các đối tượng + quan hệ giữa các đối tượng.
Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng vào đời thực. Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó.
Ưu điểm:
Gần gũi với thế giới thực. Tái sử dụng dễ dàng
Đóng gói, che dấu thơng tin làm cho hệ thống tin cậy hơn. Thừa kế giảm chi phí, hệ thống có tính mở cao.
Phù hợp với hệ thống lớn và phức tạp.
UML là ngơn ngữ mơ hình hóa hợp nhất dùng để biểu diễn hệ thống. Nói một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống. Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng để thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư ... (Giống như trong xây dựng người ta dùng các bản vẽ thiết kế để hướng dẫn và kiểm sốt thi cơng, bán hàng căn hộ ...).
Phân tích thiết kế hướng đối tượng cần các bản vẽ để mô tả hệ thống được thiết kế, cịn UML là ngơn ngữ mô tả các bản vẽ nên cần nội dung thể hiện. Do vậy, chúng ta phân tích và thiết kế theo hướng đối tượng và sử dụng UML để biểu diễn các thiết kế đó nên chúng thường đi đôi với nhau.
UML sử dụng để vẽ cho nhiều lĩnh vực khác nhau như phần mềm, cơ khí, xây dựng … trong phạm vi các bài báo cáo này chúng ta chỉ nghiên cứu cách sử dụng UML
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">cho phân tích và thiết kế hướng đối tượng trong ngành phần mềm. Phân tích thiết kế hướng đối tượng sử dụng UML bao gồm các thành phần sau:
Mỗi góc nhìn như thầy bói xem voi, nó khơng thể hiện hết hệ thống nhưng thể hiện rõ hệ thống ở một khía cạnh. Chính vì thế trong xây dựng có bản vẽ kiến trúc (nhìn về mặt kiến trúc), bản vẽ kết cấu (nhìn về mặt kết cấu), bản vẽ thi cơng (nhìn về mặt thi công). Trong phần mềm cũng như vậy, Phân tích thiết kế hướng đối tượng sử dụng UML có các góc nhìn sau:
<i>Hình 2.1. Sơ đồ cấu trúc góc nhìn View</i>
Use Case View: cung cấp góc nhìn về các case sử dụng giúp chúng ta hiểu hệ thống có gì? ai dùng và dùng nó như thế nào.
Logical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào. Bên trong nó có gì.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"> Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào.
Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu cách phân bổ và sử dụng lại các thành phần trong hệ thống ra sao.
Deployment View: cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh hưởng lớn đến kiến trúc hệ thống.
Tập hợp các góc nhìn này sẽ giúp chúng ta hiểu rõ hệ thống cần phân tích, thiết kế. Trong Hình 2.1 chúng ta thấy góc nhìn Use Case View nằm ở giữa và chi phối tất cả các góc nhìn cịn lại. Chính vì thế chúng ta thường thấy các tài liệu nói về 4 view + 1 chứ khơng phải 5 view nhằm nhấn mạnh vai trò của Use Case View.
<i>2.5.2. Diagram (bản vẽ) </i>
Diagram có thể dịch là sơ đồ. Tuy nhiên ở đây chúng ta sử dụng từ bản vẽ cho dễ hình dung. Các bản vẽ được dùng để thể hiện các góc nhìn của hệ thống.
<i>Hình 2.2. Sơ đồ bản vẽ diagram</i>
Trong đó:
Use Case Diagram: bản vẽ mô tả về case sử dụng của hệ thống. Bản vẽ này sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì. Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"> Class Diagram: bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống được cấu tạo từ những thành phần nào. Nó mơ tả khía cạnh tĩnh của hệ thống.
Object Diagram: Tương tự như Class Diagram nhưng nó mơ tả đến đối tượng thay vì lớp (Class).
Sequence Diagarm: là bản vẽ mô tả sự tương tác của các đối tượng trong hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian.
Collaboration Diagram: tương tự như sequence Diagram nhưng nhấn mạnh về sự tương tác thay vì tuần tự theo thời gian.
State Diagram: bản vẽ mô tả sự thay đổi trạng thái của một đối tượng. Nó được dùng để theo dõi các đối tượng có trạng thái thay đổi nhiều trong hệ thống. Activity Diagram: bản vẽ mô tả các hoạt động của đối tượng, thường được sử
dụng để hiểu về nghiệp vụ của hệ thống.
Component Diagram: bản vẽ mô tả về việc bố trí các thành phần của hệ thống cũng như việc sử dụng các thành phần đó.
Deployment Diagram: bản vẽ mô tả việc triển khai của hệ thống như việc kết nối, cài đặt, hiệu năng của hệ thống v.v….
<b>Lưu ý: Ở đây chúng ta sử dụng từ hệ thống tương đương với sản phẩm phần mềm. </b>
<i>2.5.3. Notations (ký hiệu): </i>
Notations là các ký hiệu để vẽ, nó như từ vựng trong ngơn ngữ tự nhiên. Bạn phải biết từ vựng thì mới ghép thành câu, thành bài được. Xem ví dụ từ bảng các ký hiệu.
<i>2.5.4. Mechanisms (qui tắc, cơ chế): </i>
Mechanisms là các qui tắc để lập nên bản vẽ, mỗi bản vẽ có qui tắc riêng và bạn phải nắm được để tạo nên các bản vẽ thiết kế đúng.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><i>Bảng 3.1. Các tác nhân trong hệ thống </i>
STT Tác nhân Ý nghĩa, nhiệm vụ của Actor
1 Tác nhân admin giữ vai trò điều hành, quản lý và theo dõi mọi hoạt động của hệ thống
tác trong game như: tạo phòng, tham gia phòng, di chuyển, …
Người dùng được hỗ trợ chơi game offline và online
<i>Bảng 3.2. Các chức năng chính của game </i>
1 Bắt đầu và tiếp tục game Bắt đầu và tiếp tục với chế độ 3d. 2 Điều khiển nhân vật 3d Bao gồm di chuyển nhân vật và xoay camera
trong môi trường 3d
3 Tương tác các đối tượng Có thể tương tác các đối tượng như: cửa, chìa khóa, thư... trong mơi trường 3d 4 Điều khiển nhân vật 2d Di chuyển nhân vật qua trái hoặc phải. 5 Chọn chế độ chơi Từ chế độ 3d, chọn chế độ chơi online hoặc
offline để chuyển sang 2d 6 Tạo phòng và tham gia
phòng chơi online
Sau khi chọn chế độ online, hệ thống sẽ tự động tìm phịng, nếu khơng tìm thấy phịng
thì sẽ tự động tạo phòng mới
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i>3.3.1. Biểu đồ use – case tồng quát: </i>
<i>Hình 3.1. Sơ đồ Use case </i>
<i>3.3.2. Biểu đồ lớp (Class Diagram): </i>
<i>Hình 3.2. Class diagram </i>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><i>3.3.3. Biểu đồ hoạt động (Activiti diagram): </i>
<i>Hình 3.3. Activity diagram - Bắt đầu game </i>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><i>Hình 3.4. Activity diagram - Điều khiển nhân vật </i>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><i>Hình 3.5. Activity diagram - Tương tác đối tượng </i>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><i>Hình 3.6. Activity diagram - Chọn chế độ chơi </i>
</div>