Báo cáo môn phân tích thiết kế phần mềm hướng đối tượng giáo viên hướng dẫn Trần Anh Dũng
Trang 1Cộng hòa Xã hội chủ nghĩa Việt NamĐộc Lập – Tự Do – Hạnh phúc
Trang 21 Tổng quan
1.1 Đặt vấn đề
Hiện nay, xu hướng sử dụng phần mềm mã nguồn mở đang ngày càng được nhân rộng vì những điểm nổi bật sáng giá của nó trong khi vẫn duy trì chất lượng ngang bằng với những phần mềm được phát triển theo hướng truyền thống Vì thế, nhu cầu phát triểnphần mềm mã nguồn mở cũng ngày càng được nâng cao Eclipse hiện đang là một trong những môi trường phát triển tích hợp (IDE) phổ biến nhất trên thế giới sử dụng mã nguồn mở, được hỗ trợ bởi một cộng đồng khổng lồ toàn cầu những người sử dụng, các nhà phát triển và các nhà nghiên cứu
1.2 Tổng quan về Eclipse Platform
Eclipse là một nền tảng phát triển mã nguồn mở dựa trên Java, có thể mở rộng được Bản thân chỉ đơn giản là một khung công tác và một tập các dịch vụ để xây dựng ứng dụng từ các trình cắm thêm (plugin) Về cơ bản, Eclipse đã đi kèm với một bộ trình cắm thêm tiêu chuẩn trong đó có Java Development Tools (JDT)
Tuy người dùng đã khá hài lòng khi sử dụng Eclipse như một môi trường phát triển Java tích hợp nhưng tham vọng của nó không dừng ở đó Eclipse cũng có các môi trường phát triển cắm thêm (PDE - Plug-in Development Environment) dành cho người người muốn mở rộng Eclipse, cho phép xây dựng các công cụ tích hợp liên tục với môi trường Eclipse Vì mọi thứ trong Eclipse là trình cắm thêm nên tất cả các nhà phát triển công cụ đều có một sân chơi bình đẳng để cung cấp các phần mở rộng cho Eclipse, mang lại một IDE hợp nhất, nhất quán cho người dùng
Sự bình đẳng và nhất quán này không chỉ hạn chế trong các công cụ phát triển Java Các trình cắm thêm đã có sẵn hoặc được lập kế hoạch để hỗ trợ cho các ngôn ngữ lập trình như như JavaScript, PHP, C, C++, Cobol, Python, C#, HTML, XML Khung công tác Eclipse cũng có thể được sử dụng làm cơ sở cho các kiểu ứng dụng khác khôngliên quan đến phát triển phần mềm, chẳng hạn như các hệ thống quản lý nội dung, ứng dụng mạng như Telnet, trình duyệt web
1.3 Một số sản phẩm đã phát triển liên quan đến Eclipse Platform
1.3.1 Android Development Tools (ADT)
ADT là một plugin cho Eclipse, được thiết kế để xây dựng ứng dụng Android trong một môi trường tích hợp mạnh mẽ ADT mở rộng những tính năng của Eclipse,
Trang 3Android Framework API, debug ứng dụng bằng công cụ Android SDK và xuất ra nhữngfile apk để phân phối ứng dụng.
1.3.2 Google Plugin for Eclipse (GPE)
GPE là một bộ những công cụ phát triển phần mềm cho phép những nhà phát triển trên Java nhanh chóng thiết kế, xây dựng, tối ưu hóa và triển khai ứng dụng dựa trên điện toán đám mây
Trang 41.3.3 Adobe Flash Builder
Adobe Flash Builder là một môi trường phát triển để xây dựng game và ứng dụng, sử dụng ngôn ngữ ActionScript và framework mã nguồn mở Flex
Trang 5RSA là một công cụ thiết kế, mô hình hóa và phát triển toàn diện cho phân phối phần mềm end-to-end, sử dụng UML để thiết kế ứng dụng Java và dịch vụ web RSA được xây dựng trên nền tảng Eclipse và có thể mở rộng bằng nhiều Eclipse plugin.
1.4 Mục tiêu demo, các sản phẩm có chức năng tương tự demo
Ứng dụng sẽ triển khai một phiên bản máy tính của trò chơi Cờ tỷ phú Phiên bản này sẽ giả lập trò chơi Cờ tỷ phú bằng Eclipse Platform và các bộ plugins của Eclipse
Hiện nay trò chơi Monopoly đã và đang được nhiều hãng phát hành dưới nhiều phiên bản, hầu hết đã hướng tới chơi online trên trình duyệt web:
- Monopoly: do hãng Pogo phát triển, tập trung vào chơi online nhiều người, cóthể chơi với bạn bè nếu có tài khoản trên trang web của hãng Pogo:
Trang 6- Monopoly: do hãng Popcap phát triển, tập trung vào mô phỏng bàn cờ tỷ phú như thực tế, có nhiều hiệu ứng 3D bắt mắt:
Trang 7Hạn chế: Hiện nay những phiên bản Cờ tỷ phú đã được thương mại hóa đều không hỗ trợ đa ngôn ngữ.
1.5 Phần mở rộng, cải tiến chức năng demo
- Người chơi có thể thay đổi giao diện bàn cờ; giao diện, nhân vật thân thiện, dễ
sử dụng
2 Các thành phần và phương pháp xây dựng ứng dụng
2.1 Các thành phần, đặc trưng
Eclipse Platform được thiết kế và xây dựng để đáp ứng những yêu cầu sau:
Hỗ trợ việc xây dựng nhiều công cụ phát triển ứng dụng
Hỗ trợ một bộ cung cấp công cụ không giới hạn, bao gồm những nhà phát hành độc lập (ISV)
Hỗ trợ công cụ điều khiển các loại nội dung tùy ý (ví dụ: Java, HTML, C, XML,
…)
Trang 8 Tạo điều kiện cho các công cụ tích hợp liên tục với nhiều loại nội dung và nhà cung cấp công cụ khác nhau.
Hỗ trợ những môi trường phát triển ứng dụng sử dụng GUI và không sử dụng GUI
Chạy được trên nhiều hệ điều hành, bao gồm Windows, LinuxTM, Mac OS X, Solaris AIX, và HP-UX
Nhấn mạnh tính phổ biến của ngôn ngữ Java trong việc viết ra các công cụ
Vai trò chủ yếu của Eclipse Platform là cung cấp các cơ chế và quy tắc cho nhà cung cấp công cụ sử dụng để viết những bộ công cụ tích hợp liên tục Những cơ chế này được phơi bày qua các API giao diện, lớp và phương thức được định nghĩa đầy đủ Eclipse Platform cũng cung cấp những framework tạo điều kiện cho việc phát triển công
cụ mới
Hình 1: Kiến trúc của Eclipse Platform.
2.1.1 Platform Runtime
Trang 9Runtime là mã định nghĩa mô hình trình cắm thêm của Eclipse, dựa trên đặc tả OSGi và quan điểm về các phần mở rộng và các điểm mở rộng Thời gian chạy cũng cung cấp các dịch vụ bổ sung như ghi nhật ký và tương tranh.
Công việc chính của Platform runtime là phát xem plugin nào đang có trong thư mục plugin của Eclipse.Mỗi plugin đều có 1 tập tin Manifest liệt kê những kết nối mà plugin cần Plugin chỉ được tải vào Eclipse mỗi khi thực sự cần thiết để giảm lượng tài nguyên yêu cầu và thời gian khởi tạo
Một plugin là đơn vị nhỏ nhất của hàm trong Eclipse Platform, có thể được phát triển và phân phối riêng Ngoại trừ Platform Runtime, tất cả tính năng của Eclipse Platform đều được đặt trong các plugin
dụ trên, JDT (Java Development Toolkit) có nhiệm vụ hỗ trợ các công cụ cho phép lập trình viên biên soạn, biên dịch, thực thi và gỡ rối các chương trình Java
Trang 10khiển một tập hợp các công cụ (tools) kết hợp với nhau để hỗ trợ các tác vụ lập trình Các nhà cung cấp các công cụ đóng góp vào nền tảng Eclipse bằng cách gói gọn các công cụ của họ vào các thành phần có thể gắn vào (pluggable) Eclipse, được gọi là trình
bổ sung Eclipse (Eclipse plug-in)
Một plugin là đơn vị nhỏ nhất của hàm trong Eclipse Platform, có thể được phát triển và phân phối riêng Ngoại trừ Platform Runtime, tất cả tính năng của Eclipse
Platform đều được đặt trong các plugin
Cung cấp hệ thống tài liệu mở rộng, có thể là định dạng HTML hay XML
2.2 Quy trình và phương pháp xây dựng ứng dụng
- Bước 1: Phân tích, thiết kế sơ đồ chức năng (use case) và các kịch bản trong game
- Bước 2: Import các plugin hỗ trợ cho việc thiết kế giao diện
- Bước 3: Tạo Project
Trang 11+ Chọn File New để tạo các lớp (class) và màn hình giao diện (JFrame) tronggame.
- Bước 4: Tiến hành cài đặt ứng dụng
- Bước 5: Kiểm tra và sửa lỗi
- Bước 6: Hoàn thành demo với phiên bản Monopoly 1.0
3 Phân tích, thiết kế, cài đặt ứng dụng
3.1 Luật chơi
Trò chơi luôn vận hành với hai viên xúc xắc
Trang 12 Khi đổ xúc xắc, nếu kết quả của hai viên xúc xắc ra trùng nhau thì người chơi sẽ được thêm một lượt đổ nữa Nếu người chơi đổ xúc xắc trùng nhau ba lần liên tiếp sẽphải vào tù.
Người chơi bị vào tù sẽ phải di chuyển quân cờ của mình đến ô thăm tù Khi người chơi ra khỏi tù sẽ xuất phát từ ô đó thay vì vạch xuất phát
Có ba cách để ra tù: 1, Gieo được hai viên xúc xắc trùng nhau 2, Trả một khoản tiền bảo lãnh cho ngân hàng (giá trị khoản tiền được quy định khác nhau tùy phiên bản) 3, Dùng thẻ ra tù miễn phí (nhận được do bốc thăm thẻ khí vận/cơ hội hoặc mua lại từ người chơi khác)
Người chơi đang ở trong tù nếu đã thử 3 lần mà vẫn không gieo được hai viên xúc xắc trùng nhau thì bắt buộc phải trả tiền bảo lãnh cho ngân hàng để ra tù
Để xây được nhà trên một mảnh đất nào đó, người chơi phải sỡ hữu toàn bộ các mảnh đất của nhóm màu đó Ví dụ: Một người chơi muốn xây nhà trên khu đất màu
đỏ, người đó phải có trong tay tất cả các mảnh đất màu đỏ khác trên bàn cờ
Để xây được khách sạn người chơi trước tiên phải xây 4 căn nhà, đến căn nhà thứ
5 sẽ tự động đổi thành khách sạn
Mỗi lần đi qua vạch xuất phát người chơi sẽ được nhận một khoản tiền
Một khi đã mua đất, người chơi không thể bán lại cho ngân hàng nhưng có thể bán hoặc trao đổi với người chơi khách, hoặc đem đi cầm cố ở ngân hàng (với giá thấp hơn giá mua)
Khi một mảnh đất đang bị cầm cố, người chơi nào dừng chân trên mảnh đất đó không phải trả phí
3.2 Sơ đồ Use case
Trang 13- Mô tả:
Use Case Nhập thông tin người chơi:
Điều kiện: không
Dòng sự kiện chính:
Ngay sau khi trò chơi bắt đầu, màn hình nhập thông tin người chơi sẽ hiện lên
để người chơi nhập tên và thêm người chơi đó vào
Dòng sự kiện phụ: không
Dòng sự kiện khác:
Tên người chơi không được là một chuỗi rỗng Nếu người chơi nhập chuỗi rỗng, trò chơi sẽ không cho thêm vào người chơi đó
Khi người chơi bấm nút Exit, trò chơi sẽ kết thúc
Use Case Di chuyển:
Điều kiện:
Khi người chơi đã nhập thông tin người chơi
Dòng sự kiện chính:
Trò chơi được chơi theo lượt Quân cờ di chuyển dựa trên kết quả đổ xí ngầu
Sự kiện xảy ra với người chơi tùy thuộc vào ô người chơi đi đến và tùy thuộc vào người chơi có đi qua Go không Vị trí và thông tin mới của người chơi được hiển thị trên bàn cờ Lượt chơi kết thúc khi người chơi bấm nút End Turn Sau đó lượt chơi của người khác sẽ bắt đầu
Trang 14 Dòng sự kiện phụ:
Sau khi người chơi đã di chuyển đến vị trí mới, tùy theo loại ô cờ mà người chơi có khả năng dừng ngay Go; đi đến ô Jail; dừng tại ô Jail; dừng tại ô Free Parking; trả tiền thuê cho chủ ô cờ; lấy thẻ từ Community Chest hoặc Chance;hoặc mua 1 ô cờ có thể giao dịch được
Dòng sự kiện khác: không
Use Case Đi qua Trạm khởi hành:
Điều kiện:
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Use Case Vào tù:
Điều kiện:
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Người chơi đi đến ô Go to Jail
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Người chơi đi đến ô Jail
Dòng sự kiện chính:
Người chơi thăm tù Không có sự kiện nào xảy ra cho người thăm tù
Dòng sự kiện phụ: không
Dòng sự kiện khác: không
Trang 15 Đang là lượt của người chơi.
Người chơi đã đổ xí ngầu
Người chơi đi đến ô Free Parking
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Người chơi đi đến một ô cờ có thể giao dịch được
Dòng sự kiện chính:
Trò chơi này có 3 loại ô cờ có thể giao dịch được: ô bất động sản, ô sân bay và
ô dịch vụ Ô có thể giao dịch được khi không có chủ Khi người chơi đi đến ô
cờ có thể giao dịch được, người chơi có thể mua ô này bằng cách bấm nút Purchase Số tiền người chơi phải trả bằng với giá trị của ô đó Thông tin người chơi được hiển thị trên bàn cờ được rerfresh để hiển thị lại các ô và số tiền người chơi đang có
Dòng sự kiện phụ: không
Dòng sự kiện khác:
Không có sự kiện nào xảy ra nếu người chơi không đủ tiền mua ô đó
Ô sân bay và dịch vụ có cùng 1 giá
Use Case Mua nhà:
Điều kiện:
Đang là lượt của người chơi
Người chơi chưa đổ xí ngầu
Người chơi độc quyền một hay nhiều nhóm màu
Dòng sự kiện chính:
Khi một người chơi sở hữu tất cả ô cờ trong 1 nhóm màu thì người chơi này được gọi là độc quyền nhóm màu đó Người chơi có thể xây nhà trên các ô bấtđộng sản có cùng 1 nhóm màu mà người chơi độc quyền bằng cách bấm nút Buy House trước khi người chơi đổ xí ngầu Giá tiền của 1 căn nhà phụ thuộc vào ô cờ Sau khi mua nhà, trạng thái của người chơi được cập nhật và hiển thịtrên bàn cờ
Dòng sự kiện phụ:
Khi nút Buy House được nhấn, một dialog sẽ hiện ra Người chơi chọn nhóm màu độc quyền và số nhà muốn mua trong dialog Sau khi nhấn nút OK, người chơi trả phí và nhà được tạo ra Tất cả ô bất động sản trong nhóm màu được chọn phải có cùng số nhà
Dòng sự kiện khác:
Trang 16 Không có sự kiện nào xảy ra nếu người chơi không đủ tiền.
Người chơi có thể xây tối đa 4 căn nhà trong cùng 1 ô cờ
Use Case Trả tiền thuê:
Điều kiện:
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Người chơi đi đến một ô cờ thuộc sở hữu của người chơi khác
Dòng sự kiện chính:
Người chơi trả tiền thuê cho chủ ô cờ Tỉ giá tiền thuê phụ thuộc vào loại ô cờ người chơi đi đến
Dòng sự kiện phụ:
Tiền thuê 1 ô bất động sản được định nghĩa trong thuộc tính bất động sản Mỗi
ô cờ có thể có mức thuê khác nhau Nếu ô cờ nằm trong nhóm màu độc quyềncủa chủ ô cờ thì tiền thuê tăng gấp đôi
Nếu ô cờ là ô dịch vụ, người chơi trả tiền thuê theo kết quả xí ngầu Nếu chủ ô
cờ sở hữu 1 ô dịch vụ thì người chơi trả số tiền thuê gấp 4 lần kết quả xí ngầu.Nếu sở hữu 2 ô thì gấp 10 lần
Nếu ô cờ là ô sân bay và chủ ô cờ sở hữu N ô sân bay thì số tiền thuê người chơi cần trả là $25*2N-1
Dòng sự kiện khác:
Nếu người chơi không đủ tiền trả thì sẽ phá sản Người chơi phải trao tất cả ô
cờ có thể trao đổi được cho chủ ô cờ, và không còn trong màn chơi nữa
Use Case Lấy thẻ:
Điều kiện:
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu
Người chơi đi đến ô cơ hội
Dòng sự kiện chính:
Trò chơi này có 2 loại thẻ: Community Chest và Chance Khi người chơi đi đến ô cơ hội, một thẻ ngẫu nhiên sẽ được phát cho người chơi Người chơi thực hiện theo những gì ghi trên thẻ, trạng thái người chơi sẽ được cập nhật vàhiển thị
Nếu là thẻ vào tù, người chơi sẽ bị đưa đến Jail ngay lập tức
Nếu thẻ yêu cầu người chơi đi đến 1 ô nào đó, người chơi sẽ được đưa đến ô
Trang 17Nếu người chơi không đủ tiền trả thì sẽ phá sản Tất cả ô cờ có thể trao đổi được trở thành vô chủ, và người chơi không còn trong màn chơi nữa.
Use Case Đổ xí ngầu:
Đang là lượt của người chơi
Người chơi đã đổ xí ngầu và đi đến ô cờ mới
Use Case Xem thông tin:
Điều kiện: không
Đang là lượt của người chơi
Người chơi chưa đổ xí ngầu
Người chơi đang bị vào tù
Trang 18 Nếu người chơi không đổ được 2 nút giống nhau và không đủ tiền trả thì sẽ phá sản Tất cả ô cờ có thể trao đổi được trở thành vô chủ, và người chơi không còn trong màn chơi nữa.
Use Case Giao dịch:
Điều kiện:
Đang là lượt của người chơi
Người chơi chưa đổ xí ngầu
Dòng sự kiện chính:
Người chơi có thể yêu cầu người chơi khác bán ô có thể giao dịch được Nếu người chơi muốn giao dịch với người chơi khác thì bấm nút Trade Dialog giao dịch sẽ hiện lên cho người chơi chọn người muốn giao dịch, ô cờ người chơi muốn giao dịch và số tiền người chơi muốn trả Sau đó 1 dialog sẽ hiện lên để xác nhận Nếu người bán chọn Yes thì ô cờ sẽ được bán theo thỏa thuậngiao dịch
Dòng sự kiện phụ: không
Dòng sự kiện khác:
Nếu người chơi bấm nút Cancel, dialog sẽ đóng và giao dịch bị hủy
Nếu người chơi không đủ tiền, giao dịch bị hủy bỏ
Nếu người bán không đồng ý thỏa thuận, giao dịch bị hủy bỏ
3.3 Màn hình giao diện và mô tả thành phần
3.3.1 Giao diện khởi động:
Trang 193.3.1.1 Mô tả thành phần:
Gồm 3 Button:
- Play Now : Người chơi chọn để vào game
- Help : Xem luật chơi
- Exit : Thoát game
Trang 20- Biến cố 3: Xảy ra khi người chơi nhấp nút “EXIT” trò chơi sẽ hiển thị thông báo: “Do you want to exit the game ?” (Yes, No)
+ Yes :Thoát game
Trang 21- Button “Shuffle players”: Xáo trộn thứ tự người chơi.
- Button “Start Game”: bắt đầu trò chơi
- Button “Help”: Giúp người chơi có thể xem hướng dẫn luật chơi tại màn hình tạo nhân vật
- Button “Exit”: Thoát game
3.3.2.2 Mô tả xử lý:
- Biến cố 1: Xảy ra khi đã xác nhận ít nhất 2 người chơi thì nút “Shuffle
Players” sẽ hiện lên