các lược đồ trong gói shopping cart Lược đồ lớp shopping cart Hình 3.6: lược đồ lớp của shopping cart Lược đồ tuần tự shopping cart Hình 3.7: lược đồ tuần tự của shopping cart như dưới
Trang 1- Các tác động: kết hợp phải mô tả một đặc tính về cấu trúc của lĩnh vực ứng dụng
- Các kết hợp ba nhánh: các kết hợp ba nhánh nên được tách ra thành các kết hợp hai nhánh
- Các kết hợp dẫn xuất: các kết hợp được định nghĩa bằng các kết hợp khác Nhận diện các thao tác
Để nhận diện các thao tác, một công cụ thuận lợi là ta nhìn vào các hành vi của các use case - luồng các sự kiện, sau đó phân bổ các hành vi này vào các lớp được
sử dụng bởi use case đó
Nhận diện các thuộc tính
Các thuộc tính là đặc tính của đối tượng riêng lẻ Thuộc tính thường tương ứng với danh từ theo sau là nhóm từ sở hữu Thuộc tính kém thích hợp để mô tả đầy đủ một vấn đề Thuộc tính ít ảnh hưởng đến cấu trúc cơ sở của vấn đề Đầu tiên ta ghi nhận các thuộc tính quan trọng trước, sau đó thêm dần các chi tiết vào sau
3.4 Các lược đồ trong các gói
Sau khi tìm ra các lớp miền nghiệp vụ ta nhóm các lớp có quan hệ gần gũi vào trong các gói Trong mỗi gói có thể chứa gói con trong đó
Ta có các gói sau:
+ sign in and off package: gói đăng nhập
+ shopping cart package: gói mua chọn hàng, có các gói con là: cart package
và catalog package
+ inventory package: gói thống kê số lượng hàng
Trang 2+ customer package: gói khách hàng, có các gói con là: account package, customer package, order package
Lược đồ quan hệ giữa các lớp nghiệp vụ và lớp giao diện:
3.4.1 các lược đồ trong gói sign in and off
Ở mô hình quan niệm phân tích, mô tả yêu cầu ứng dụng ta chỉ mô tả sơ lược
về các chức năng mà hệ thống sẽ làm Đây là mô hình giao tiếp giữa nhà phát triển với người dùng, nó là bản mẫu cho sự giao tiếp, chưa can thiệp vào cách thực hiện như thế nào Cái đó thuộc về pha thiết kế
a) Các lược đồ trong sign in
Trang 3up dateac count() displayc at al og() displays hop pingc art ()
se arch() signou t() creat eaccount ()
Contac tInformation telephone email address getE Mail() getA ddress() getTelephone()
(f ro m Ut il ity)
SignInForm
s ignin ()
c reate ac count() enter user name an d pas sword() displa y()
displa y user information() displa y m ess age()
0 1 0 1 0 1 0 1
Ac count
us erId password sta tus Contac tInform ation cre ate()
update() get us er info() get em ail addres s ()
fi nd ac count ()
(fro m a cco u n t)
S ignon
us ername password getPas sW ord() updatePas sW ord() create()
rem ove() add signin()
SigninHandler
s ign in us er()
c hec k password() validate entered usernam e and password()
Trang 410://display user information( )
Hình 3.3: lược đồ tuần tự của sign in
b) Các lược đồ trong sign off
Lược đồ lớp của sign off
Trang 5Hình 3.4: lược đồ lớp của sign off
lược đồ tuần tự của sign off
Hình 3.5: lược đồ tuần tự của sign off
Trang 63.4.2 các lược đồ trong gói shopping cart
Lược đồ lớp shopping cart
Hình 3.6: lược đồ lớp của shopping cart
Lược đồ tuần tự shopping cart
Hình 3.7: lược đồ tuần tự của shopping cart như dưới đây
Trang 73.4.3 các lược đồ trong gói customer
Lược đồ lớp của create account
Hình 3.8: lược đồ lớp của create account
Lược đồ tuần tự của create account
Trang 8Hình 3.9: lược đồ tuần tự của create account
Lược đồ lớp của update account
Hình 3.10: lược đồ lớp của update account
Trang 9Lược đồ tuần tự của update account
Hình 3.11: Lược đồ tuần tự của update account
CHƯƠNG 4 THIẾT KẾ THÀNH PHẦN
Thiết kế là quá trình mở rộng của pha phân tích bằng việc ta thêm vào đó những khía cạnh kỹ thuật Mục đích của thiết kế là xác định một giải pháp để dễ dàng cho việc mã hoá, cũng như những yêu cầu kỹ thuật, công nghệ đặc trưng cho ứng dụng
Vì ở đây ứng dụng được xây dựng theo hướng thành phần (Component), theo đặc tả J2EE Trước tiên từ pha phân tích ta xây dựng nên các thành phần thuộc tầng nghiệp vụ (business tier) Các thành phần này có chức năng lưu trữ dữ liệu, tính toán, xử lý nghiệp vụ Trong tầng này của ứng dụng này ta xây dựng các Entity Bean, Session Bean Với EJB phiên bản 1.x chưa đưa loại Message Driver Bean
Trang 10vào Dựa vào pha phân tích ta xác định thành phần nào là Entity Bean, thực hiện việc lưu trữ dữ liệu, thành phần nào là Session Bean, thực hiện các thao tác tính toán, xử lý, không liên quan đến việc lưu trữ dữ liệu
Trước khi đi vào thiết kế chi tiết thành phần, ta phải thiết kế kiến trúc, đây là giai đoạn thiết kế ở mức cao Thiết kế kiến trúc ta sẽ chọn kiến trúc MVC- Model-View-Controller Kiến trúc tổng quát này được trình bày như hình dưới đây
Hình 4.1: kiến trúc tổng quát của hệ thống - kiến trúc MVC
Đây là kiến trúc được chọn lựa để xây dựng ứng dụng, đối với các ứng dụng Web, kiến trúc này là lựa chọn tối ưu vì nó giảm tính phức tạp và dễ quản lý hơn Kiến trúc này tăng cường mức độ bảo trì và mở rộng Bằng cách tách biệt logic nghiệp vụ và logic điều khiển với sự trình diễn dữ liệu, kiến trúc này cung cấp tính linh động để giải quyết các ứng dụng phức tạp
Trang 114.1.1 Thành phần sign in
Sign in là thành phần kiểu Entity Bean (BMP), được thể hiện như sau:
Hình 4.2: mô hình EJB của signin
Trang 12Sự giao tiếp giữa EJB với lớp DAO như sau
Hình 4.3: quan hệ giữa thành phần EJB với các lớp truy cập dữ liệu
4.1.2 Thành phần shopping cart
a) Thành phần catalog
Catalog là thành phần thuộc kiểu Session Bean- SB (là Stateless Session Bean),
là Bean thao tác phi trạng thái Sơ đồ của nó được trình bày như sau:
Trang 13Hình 4.4 sơ đồ thành phần EJB của catalog
Sự giao tiếp giữa catalogEJB với các lớp liên quan
Trang 14Hình 4.5: quan hệ giữa thành phần catalogEJB với các lớp ngiệp vụ liên quan
Trang 15b) Thành phần shopping cart
Là thành phần thuộc kiểu Stateful Session Bean, là Bean lưu vết trạng thái, được trình bày như sau:
Hình 4.6: sơ đồ EJB của shopping cart
Quan hệ giữa shoppingcartEJB với các lớp nghiệp vụ khác được trình bày như sau:
Trang 16Hình 4.7: quan hệ giữa shoppingcartEJB với các lớp nghiệp vụ liên quan
4.1.3 Thành phần inventory
Là thành phần thuộc loại Entity Bean, Bean thực thể Sơ đồ của nó được thể hiện như sau:
Trang 17Hình 4.8: sơ đồ EJB của thành phần Inventory
Quan hệ giữa inventoryEJB với lớp DAO được thể hiện như sau:
Trang 18Hình 4.9: quan hệ giữa inventoryEJB với lớp inventoryDAO, inventoryModel
4.1.4 Thành phần customer
a) Thành phần order: là thành phần thuộc loại Bean thực thể (Entity Bean) Nó được trình bày như sau:
Hình 4.10: sơ đồ EJB của thành phần order
Quan hệ giữa orderEJB với các lớp DAO và các lớp nghiệp vụ như sau:
Trang 19Hình 4.11: quan hệ giữa orderEJB với lớp DAO, Model và các lớp nghiệp vụ khác
b) Thành phần customer
Là thành phần thuộc loại Stateless Session Bean, Bean thao tác phi trạng thái Được trình bày như sau:
Trang 20Hình 4.12: sơ đồ EJB của thành phần customer
b) Thành phần account
Là thành phần thuộc loại Entity Bean, Bean thực thể này được trình bày như sau:
Trang 21
Hình 4.13: sơ đồ EJB của thành phần account
Quan hệ giữa accountEJB với các lớp DAO và các lớp khác được trình bày như sau:
Hình 4.14: quan hệ giữa accountEJB với các lớp DAO, Model
4.2 Biểu đồ thành phần của các thành phần nghiệp vụ ở tầng business tier
Trang 22Hình 4.15: biểu đồ thành phần của các thành phần nghiệp vụ
CHƯƠNG 5 THIẾT KẾ HIỆN THỰC HÓA CÁC USE CASE
Chương này chúng ta đi vào thiết kế toàn diện để hiện thực hóa các use case Trong phần thiết kế này chúng ta tuân theo giải pháp đã chọn ở chương 4, tức theo kiến trúc MVC-Model-View-Controller Trong đó Model là các thành phần (các Enterprise Java Bean) thuộc tầng nghiệp vụ (business tier) View là các trang JSP và các lớp JavaBean, cái này thuộc tầng Web (Web tier) Controller là các lớp điều khiển và các EJB mà hoạt động như thành phần điều khiển Nó tách giữa Web tier
và EJB tier và đứng giữa để làm cầu nối cho hai tầng này
Theo kiến trúc MVC như hình 4.1 ở chương bốn, ta đi vào thiết kế cho các use case của ứng dụng
5.1 Thiết kế hiện thực hóa các use case
5.1.1 Thiết kế hiện thực hóa use case sign in
Trang 23Hình 5.1: lược đồ lớp của Sign in
Trang 25Hình 5.2: lược đồ tuần tự của sign in (phần 1)
: MainForm : customer : Template : ScreenDefinitions : ScreenFlowManager : SignInForm : SignInSuccessForm
Hình 5.3: lược đồ tuần tự của sign in (phần 2)
5.1.2 Thiết kế hiện thực hóa use case create account
Trang 26Hình 5.4: lược đồ lớp của create account
Trang 28Hình 5.5: lược đồ tuần tự của create account (phần 1)
Hình 5.6: lược đồ tuần tự của create account (phần 2)
Các lược đồ còn lại của các use case khác được trình bày ở phần phụ lục
Trang 29CHƯƠNG 6 THỰC HIỆN CÀI ĐẶT VÀ TRIỂN KHAI ỨNG DỤNG
6.1.Thực hiện cài đặt
Ở pha này ta tiến hành mã hoá hệ thống Trong hệ thống e-store này ta dùng ngôn ngữ Java, với công nghệ EJB 1.x ở tầng nghiệp vụ (business tier) để mã hoá
Ở tầng Web (Web tier) ta dùng công nghệ JSP, Servlet, JavaBean để mã hoá Ở tầng
cơ sở dữ liệu EIS (Enterprise Information System tier) ta dùng hệ quản trị cơ sở dữ liệu Cloudscape tích hợp trong J2EE Server
Lược đồ thành phần của cả hệ thống trình bày dưới đây:
H ình 6.1: lược đồ thành phần của hệ thống
6.2 Một vài giao diện của ứng dụng
Trang 30Hình 6.2: form đăng nhập vào hệ thống
Trang 31Hình 6.3: Form hiển thị các sản phẩm
Hình 6.4: form hiển thị thông tin mục hàng
Trang 32Hình 6.5: hiển thị giỏ hàng
Trang 33Hình 6.6: hiển thị đơn hàng vừa đặt
6.3 Triển khai hệ thống
Hình 6.7: lược đồ triển khai hệ thống E-store
Trang 34KẾT LUẬN
Đồ án tốt nghiệp này em đi vào tiếp cận công nghệ J2EE, công cụ UML, Rational Rose Các công nghệ, công cụ này tương đối mới nhưng em đã cố gắng tìm hiểu Trong đồ án này, em xây dựng một ứng dụng J2EE cùng với Rational Rose và UML Ứng dụng này mang tính demo, chưa thành một hệ thống hoàn chỉnh
vì đây chỉ là một phần của hệ thống thương mại điện tử
Mặc dù đã cố gắng nhưng em chỉ mới giới thiệu về công nghệ J2EE, UML Những kiến thức này hết sức tổng quát, với số lượng công nghệ mới khá nhiều nên không thể nắm bắt một cách chi tiết hết được Trong thời gian ngắn em đã tiếp cận các công nghệ trên, khó tránh những sai sót, rất mong thầy hướng dẫn tận tình chỉ bảo, cũng như đánh giá, nhận xét
Em chân thành cảm thầy Nguyễn Thanh Tùng đã hướng dẫn và giúp em hoàn thành đồ án này Em xin cảm ơn thầy cô khoa Công nghệ thông tin trường Đại Học Bách Khoa Hà Nội, trường Đại Học Thủy Sản Nha Trang đã giúp em trong quá trình làm đồ án