CASE STUDY iCOOT
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ĐỀ TÀI MÔN HỌC: PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG CASE STUDY iCOOT Giảng viên hướng dẫn: Ths LÊ NGỌC SƠN Sinh viên thực hiện: 1. NGUYỄN VĂN DUY 2. HỒ HỒNG VÂN Lớp : ĐH.TH1 Khóa : 2005 – 2009 TP. Hồ Chí Minh, tháng 7 năm 2008 LỜI CẢM ƠN Chúng em xin chân thành cám ơn Khoa Công nghệ Thông tin, trường Đại học Công nghiệp Tp. HCM đã tạo điều kiện cho chúng em được thực hiện bài tập lớn của môn học này. Chúng em cũng xin chân thành cám ơn Ths. Lê Ngọc Sơn, thầy đã giảng dạy cho chúng em những kiến thức cần thiết trong học kỳ. Những kiến thức đó đã chắp cánh cho chúng em thực hiện bài tập lớn. Chúng em xin chân thành cám ơn quý Thầy cô trong Khoa đã tận tình giảng dạy trang bị cho chúng em những kiến thức cần thiết trong thời gian qua, cuối cùng xin gửi lời biết ơn đến gia đình, bạn bè đã ủng hộ, giúp đỡ, động viên trong những lúc khó khăn cũng như trong suốt thời gian học tập vừa qua. Mặc dù nhóm đã cố gắng hoàn thành bài tập lớn với tất cả nỗ lực của bản thân, nhưng bài tập lớn chắc chắn không tránh khỏi những thiếu sót nhất định, rất mong nhận được sự cảm thông, chia sẻ và tận tình đóng góp chỉ bảo của quý Thầy Cô. Nhóm thực hiện Nguyễn Văn Duy Hồ Hồng Vân NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN . . . . . . . . . . . . . . . . . . . . Tp. HCM, Ngày tháng . năm 2008 Ký tên Lê Ngọc Sơn MỤC LỤC B1: YÊU CẦU NGHIỆP VỤ 5 B1.1: Phát biểu nhiệm vụ của khách hàng .5 B1.2 Danh sách các tác nhân 6 B1.3 Danh sách Use case .6 B1.4 Lược đồ giao tiếp use case .7 B1.5 Lược đồ hoạt động use case .8 B1.6 Chi tiết use case .8 B2: YÊU CẦU HỆ THỐNG .13 B2.1 User Interface Sketches .13 B2.2 Danh sách tác nhân 19 B2.3 Danh sách use case .19 B2.4 Use case diagram 20 B2.5 Tổng quan các use case 21 B2.6 Chi tiết use case .21 B2.7 Yêu cầu bổ sung 26 B2.8 Use case ưu tiên .26 B3 PHÂN TÍCH 27 B3.1 Sơ đồ lớp 27 B3.3 Danh sách các phương thức 29 B3.4 Trạng thái mày cho một Reservation .31 B3.5 Use case Realization .30 B4 THIẾT KẾ HỆ THỐNG .39 B4.1 Lựa chọn công nghệ .39 B4.2 Sơ đồ Layer .40 B4.3 Các giải quyết tầng tương tác 41 B4.4 Packages 41 B4.5 Sơ đồ triển khai .41 B4.6 Chính sách bảo mật 44 B.5 THIẾT KẾ HỆ THỐNG CON 44 B 5.1 Business Service .44 B 5.2 Lược đồ lớp ServletLayer .45 B5.3 Danh sách các trường ServletLayer .45 B 5.4 ServletLayer Message List 45 B 5.5 Sơ đồ lớp ServerLayer 47 B 5.6 ServerLayer Field List 47 B 5.7 ServerLayer Message List 47 B.5.8 BusinessLayer Class Diagram 48 B.5.9 BusinessLayer Field List .49 B 5.10 Protocol Objects Class Diagram 52 B 5.11 Database schema Hình B .34 53 B5.12 Thiết kế User Interface 54 B 5.13 Business Service Realization 54 B1: YÊU CẦU NGHIỆP VỤ Phần này mô tả mô hình yêu cầu nghiệp vụ được tiến hành trong suốt tất cả giai đoạn phát triển iCoot, trong từng giai đoạn phát biểu nhiệm vụ của dự án và mô hình use case nghiệp vụ. Mô hình use case nghiệp vụ cũng áp dụng cho toàn bộ hệ thống Coot. B1.1: Phát biểu nhiệm vụ của khách hang Dưới đây là phát biểu nhiệm các nhiệm vụ được phát biểu bởi Nowhere Cars lúc bắt đàu dự án Coot: - Từ khi chúng tôi áp dụng hệ thống theo dõi xe tự động tại cửa hàng của chúng tôi – sử dụng mã vạch, … và đầu đọc laser – chúng tôi nhiều lợi nhuận: năng suất cho thuê của chúng tôi tăng 20%, nhũng chiếc xe của chúng tôi hiếm khi còn trống ( bị bỏ lỡ) và khách hàng cơ bản phát triển một cách mạnh mẽ, bền vững (theo nghiên cứu thị trường của chúng tôi, đây là một phần đóng góp cho sự tăng trưởng perception of professionalism and efficiency). - Ban quản lý cảm thấy rằng Internet là cơ hội kích thích cho tăng trưởng năng suất và giảm chi phí. Ví dụ, thay vì phải in khá nhiều các catalof xe sẵn có, chúng tôi làm 1 cattalog sẵn có trên Internet cho tất cả mọi người lướt xem trên trình duyệt, chỉ bằng một đường dẫn. Dành cho quyền của khách hàng, chúng tôi có thể cung cấp nhũng dịch vụ thêm vào, như đặt chỗ trước, chỉ bằng một cái click chuột lên nút nhấn. Mục tiêu của chúng tôi tiết kiệm trong khoản này để giảm 15% chi phí đi lại cho mỗi cửa hàng. - Trong vòng 2 năm, sử dụng hệ thống thương mại điện tử hoàn thiện, chúng tôi có ý định cung cấp tất cả dịch vụ của chúng tôi trên web, với delivery and pick – up ở nhà của khách hàng, thus achieving mục đích cuối cùng của chúng tôi là trở thành một công ty cho thuê ảo (trực tuyến) với chi phí vận chuyển thấp nhất gần như là đi bộ đến cửa hàng. Làm việc với khách hàng, các nhiệm vụ này đã được mở rộng thành use case nghiệp vụ. B1.2 Danh sách các tác nhân Assistant: là một nhân viên của một cửa hàng, giúp khách hàng thuê Car và đặt một CarModel. Customer: là người phải trả tiền cho chúng tôi để sử dụng dịch vụ của chúng tôi. Member: là một khách hàng, được định nghĩa, có thẻ xác nhận và được chứng nhận vì vậy người này có thể truy cập vào nhũng dịch vụ đặc biệt (như là thiết lập dịch vụ đặt chỗ trước thông qua điện thoại hoặc trên Internet). NonMember: là khách hàng, được định nghĩa và có thẻ xác nhận nhưng không được kiểm tra vì thế người này phải trả phí để đặt trước chỗ và nhượng một bản sao bản quyền của họ để thuê xe. Auk: Hệ thống tồn tại để lưu chi tiết khách hàng, thông tin đặt chỗ, thông tin cho thuê, và danh mục CarModels sẵn có. DebtDepartment: Điểm đến để thỏa thuận lệ phí LegalDepartment: Điểm đến để thỏa thuận những tai nạn có thể xảy ra trong lúc thuê xe B1.3 Danh sách Use case B1: Khách hàng thuê xe: Khách hàng thuê xe để họ có thể chọn từ danh sách sẵn có. B2: thành viên đặt CarModel: Thành viên yêu cầu thông báo khi CarModel còn trống B3: Nonmember đặt CarModel: Nonmember trả tiền để được thông báo khi CarModel trống. B4: Khách hàng hủy đặt chỗ: Khách hàng hủy một sự đặt chỗ chưa hoàn tất bằng điện thoại hoặc gặp trực tiếp nhân viên. B5: Khách hàng chọn xe: Khách hàng chọn xe họ có thể thuê B6: Khách hàng hỏi Carmodel còn trống: Khách hàng sẽ được lien lạc bởi nhân viên khi xe trống. B7: Xe được thông báo là bị bỏ lỡ: Khách hàng hoặc nhân viên phát hiện xe bị bỏ lỡ B8: Khách hàng khôi phục lại sự đặt chỗ: Khách hàng có thể đặt lại chỗ nếu chưa giải quyết xong hoặc quá thời gian 1 tuần B9: Khách hàng truy cập catalog: Khách hàng xem catalog, tại của hàng hoặc ở nhà B10: …… B11: Khách hàng tự chủ trong việc đặt chỗ B12: Khách hàng trở thành thành viên: Khách hàng cung cấp CreditCard chi tiết và thông tin địa chỉ cụ thể để trở thành Member. B13: Khách hàng được thông báo xe quá chậm: Nhân viên lien lạc với Khách hàng về lỗi rằng xe họ đã thuê đã chậm hơn một tuần. B14: Khách hàng đóng khóa: Sự thay thế khóa được cung cấp cho khách hàng, nguời có thể đóng chúng lại B15: Thẻ hội viên được làm mới: Nhân viên lien hệ với Member để làm mới khi CreditCard hết hiệu lực. (hết thời gian sử dụng) B16: Car không thể trả lại: là một chiếc xe bị hư hỏng nặng hoặc do tai nạn B1.4 Lược đồ giao tiếp use case Lược đồ giao tiếp không được sử dụng rộng rãi trong suốt mô hình yêu cầu nghiệp vụ (dù họ thường mở rộng trong suốt hệ thống cần gặt hái được). Tuy nhiên, một lược đồ (hình B.1) được đưa ra để minh họa sự dính liếu giữa các tác nhân bên trong và bên ngoài hệ thống B3: Nonmember Reserves CarModel. 4: create Resevation 3: get deposit, License 5: confirm Reservation CarModel Reservation NonMember Auk Interface Assistant 1: reserve CarModel 2: find CarModel B1.5 Lược đồ hoạt động use case Lược đồ giao tiếp không được sử dụng rộng rãi trong suốt mô hình yêu cầu nghiệp vụ. Tuy nhiên, một lược đồ (hình B.1) được đưa ra để minh họa nét tinh túy của B3: Nonmember Reserves CarModel use case. B1.6 Chi tiết use case B1: Khách hàng thuê xe. 1. Khách hàng hỏi Assistant loại CarModel họ thích thuê. 2. Nếu Auk cần nhưng không là một Car sẵn có, khách hàng sẽ được hướng dẫn chọn cái khác tương tự. 3. Nếu sẵn có, Assistant sẽ đánh dấu đã chọn trong Auk 4. Assistant yêu cầu bản quyền của khách hàng để xác nhận họ 5. Cho Member, Assistant lấy số thẻ của họ từ thẻ thành viên và kiểm tra rằng họ không cần không cần đóng phí và không có vạch kẻ dọc 6. Cho NonMember, Assistant kiểm tra xem họ có tồn tại trong Auk chưa; nếu chưa, Assistant quét bản sao bản quyền của họ vào trong Auk, và ghi tên của họ, số điện thoại và số bản quyền. 7. Nếu chi tiết khách hàng thỏa mãn và hoàn thành trả phí, họ được thuê xe 8. Nếu thanh toán không thành công, Xe sẽ bị hủy trong Auk. (NonMember) Tell Assistant which CarModel (Assistant) Ask for Deposit and License (NonMember) Find deposit (NonMember) find License (Assistant) find CarModel . (Assistant) Check deposit ad License (Assistant) M . [ok] [not ok] [...]... U7: M ake Reservation U12: Log Off M ember U8:View Rentals U9:Change Password U11:Cancel Reservation A ssistant Use case diagram for iCoot B2.5 Tổng quan các use case Tổng quan use case cho hệ thống iCoot, mô tả các use case làm việc chung với nhau nhu thế nào: Tất cả khách hàng đều có thể tìm kiếm CarModel trong catalog, bằng cách duyệt chỉ mục CarModel (U1) hoặc bằng... hợp của CarModel đã chọn B2.7 Yêu cầu bổ sung s1 Applet Client phải chạy java lugin 1.2 (phiên bản mới nhất) s2 iCoot có kích thước catalog chứa 100.000 CarModel s3 iCoot có Server truy cập đồng thời 1.000.000 lượt truy cập B2.8 Use case ưu tiên Dưới đây là danh sách các use case ưu tiên cho iCoot, với số điểm sử dụng cho sự tăng trưởng đầu tiên Green: o U1: Browse index o U4: Search o U2: view results... advert poster example of (from Use Case View) name phoneNumber : String amountDue : int * 1 Make name details 1 1 * NonMember CarModel (from Use Case View) name price make * (from Use Case View) driversLicense : String * Member * classified as (from Use Case View) number : String ingoodStanding : boolean Reservation * (from Use Case View) number : String timestamp... kiện: Không 1 Member chọn view Reservation 2 iCoot hiển thị thông tin tổng hợp 3 Mở rộng với U11 Hậu điều kiện: Member đã được xem thông tin tổng hợp outstanding Reservation U11: Cancel Reservation.(mở rộng U10) Tiền điều kiện: Không 1 Member chọn Reservation 2 Member chọn hủy Reservation 3 iCoot yêu cầu xác nhận 4 Member xác nhận nếu họ muốn hủy Reservation 5 iCoot mark Reservation như concluded và cập... Trường hợp ngoại lệ: a1 Nếu Member không xác nhận hủy, iCoot không kích hoạt hủy U12: Log off: (mở rộng U5) Tiền điều kiện: Không 1 Thành viên chọn đăng xuất 2 iCoot kết thúc session hiện tại Hậu điều kiện: Member đã đăng xuất hỏi hệ thống Trường hợp ngoại lệ: a1 vì lý do bảo mật, một thành viên đăng nhập sẽ tự đăng xuất khi họ không sử dụng iCoot trong khoảng thời gian 10 phút) U13: Tìm kiếm CarModel.(Trừu... lý do bảo mật, iCoot chỉ hiển thị 4 số sau cùng của Credit Card của thành viên 4 iCoot thông báo cho Member rằng để biết chi tiết chính xác họ phải liên hệ với cửa hàng của họ Hậu điều kiện: Member đã được xem thông tin thành viên chi tiết U7: Make Reservation (Mở rộng U3) Tiền điều kiện: Khách hàng là thành viên, người đã đăng nhập 1 Member đặt trước CarModel để hiện thị chi tiết 2 iCoot yêu cầu Member... Rentals o U9: Change Password Trong sự tăng đầu tiên, U6 cũng hoàn thành Các use case khác được hoàn thành trong suốt increment thứ hai B3 PHÂN TÍCH Taì liệu phần này là kết quả của quá trình phân tích các giai đoạn phát triển iCoot, trong đề nghị của quá trình phân tích mô hình lớp, một trạng thái để Reservation và sử dụng các use case liên quan (Lược đồ giao tiếp) Trạng thái máy lúc Reservation cũng ứng... Rentals của họ 2 iCoot tổng kết thông tin cho xe đang được thuê (số trễ và ngày trễ hạn) Hậu điều kiện: iCoot đã hiện thị thông tin tổng kết của xe hiện đang thuê U9: Change Password: (mở rộng U5) Tiền điều kiện: Không 1 Member chọn thay đổi mật khẩu 2 Member nhập mật khẩu cũ 3 Member nhập mật khẩu mới 4 Member nhập mật khẩu mới thêm một lần nữa (để xác nhận) 5 Member bắt đầu thay đổi 6 iCoot yêu cầu... chọn khác trở nên có quyền hơn Mọi lúc, Member có thể hủy Reservation thông qua Internet, điện thoại hoặc gặp trực tiếp B3.5 Use case Realization Lược đồ giao tiếp cho iCoot, kiểm tra mô hình lớp phân tích, được hiển thị trong hình B.15 đến B.26, một phần hệ thống use case 1:index(indexHeading)-> Customer :NonM emberUi or : M emberUI 1.1: list= findByIndexHeading(IndexHeadiing) 1.2: Include U2, passing... (Mở rộng U5, được mở rộng U11) U11: Cancel Reservation: Member có thể hủy Reservation (mở rộng U10) U12: Log off: Member có thể đăng xuất khỏi hệ thống iCoot (mở rộng U5) U13: Tìm kiếm CarModel: Khách hàng có thể tìm kiếm CarModel từ catalog B2.4 Use case diagram U2: View Rentals U1:Browse Index U13: Look for CarM odel NonM ember U4:Search U3:View CarM odel Details