Bước phỏt triển đầu tiờn nhất được bắt đầu với tiến trỡnh phõn tớch và thiết kế. Rational Rose từ Rational Software Corp cũn gọi là cụng cụ CASE cho phộp chỳng ta mụ hỡnh hoỏ cỏc mụ hỡnh dữ liệu và cỏc lớp bằng việc sử dụng UML. Phần mềm tớch hợp FastObjects™ Rose Link cho Java™ tớch hợp trực tiếp FastObjects với Rational Rose cho phộp mụ hỡnh hoỏ một cỏch trực quan cỏc ứng dụng Java sử dụng cơ sở dữ liệu FastObject. Với cụng nghệ FastObject chỳng ta cú thể làm bền vững mụ hỡnh dữ liệu đối tượng mà khụng cần chuyển nú sang lược đồ quan hệ. Do vậy khụng cần thiết nghĩ đến mụ hỡnh cơ sở dữ liệu trong suốt quỏ trỡnh thiết kế.
Bằng việc sử dụng FastObjects™ Rose Link cho Java™ chỳng ta cú thể định nghĩa ở thời điểm thiết kế cỏc lớp nào sẽ là bền vững. Sau đú Rose cú thể tự động phỏt sinh mó nguồn Java với thi hành bộ khung của cỏc lớp trong mụ hỡnh thiết kế. Mó bộ khung được phỏt sinh bởi Rose sau đú cú thể được sử dụng để cung cấp cỏc thi hành cụ thể của cỏc lớp.
Lợi ớch của tiếp cận này: Người thiết kế cú thể tập trung hoàn toàn vào lụ gớch ứng dụng và khụng cần xem xột cỏc chi tiết như:
Cỏc đối tượng nghiệp vụ và cỏc web client tương tỏc với nhau như thế nào ? Đõy sẽ là một lợi thế khụng chỉ trong suốt giai đoạn thiết kế mà cũn ở một giai đoạn sau đú của tiến trỡnh phỏt triển, bởi vỡ cỏc đối tượng Java và cỏc Java Servlet hiểu lẫn nhau trong bất cứ hoàn cảnh nào.
Đõy cũng sẽ là một lợi thế khụng chỉ trong suốt giai đoạn thiết kế mà cũn ở một giai đoạn sau đú của tiến trỡnh phỏt triển, bởi vỡ cơ sở dữ liệu FastObjects sẽ lưu trữ tất cả cỏc đối tượng nghiệp vụ trong mụ hỡnh ban đầu.
Use Case
Chỳng ta bắt đầu bằng việc định nghĩa cỏc use case cho cửa hàng.
Mụ hỡnh use case của cửa hàng gồm 4 use case. Hai use case chỉ ra cỏch một khỏch hàng làm việc với cửa hàng, hai use case khỏc minh hoạ việc quản lý cửa hàng:
Mua hàng (Khỏch hàng)
Vào web site
Chọn hạng mục sản phẩm hoặc tỡm kiếm theo từ khoỏ
Xem danh sỏch sản phẩm Xem chi tiết một sản phẩm Thờm sản phẩm vào giỏ hàng Xem giỏ hàng
Bỏ sản phẩm ra khỏi giỏ hàng Mua
Thoỏt khỏi
Xem hiện trạng giao hàng (Khỏch hàng)
Đăng nhập với e-mail và password Xem tất cả cỏc đơn hàng của khỏch hàng
Xem một kỹ một đơn hàng Thoỏt khỏi
Quyết định giao hàng (Người quản lý cửa hàng)
Đăng nhập với e-mail và password Xem tất cả hoặc những đơn hàng chưa giao
Xem chi tiết một đơn hàng
Quyết định giao hàng hoặc từ chối đơn hàng
Thoỏt khỏi
Tỡm kiếm/Cập nhật sản phẩm (Người quản lý cửa hàng)
Đăng nhập với e-mail và password Chọn hạng mục sản phẩm hoặc tỡm kiếm theo từ khoỏ
Xem danh sỏch sản phẩm Xem chi tiết một sản phẩm
Sửa đổi/ thờm/ loại bỏ sản phẩm khỏi cửa hàng
Thoỏt khỏi
Hỡnh 31. Cỏc use case khỏch hàng mua hàng và người quản lý cập nhật hàng
Hỡnh 32. Cỏc use case khỏch hàng xem hiện trạng giao hàng và người quản lý quyết định giao hàng
Cỏc use case giỳp cho việc thiết kế một mụ hỡnh đối tượng nghiệp vụ và việc thi hành của một ứng dụng.
Mụ hỡnh nghiệp vụ
Tiếp theo, một mụ hỡnh đối tượng đó được rỳt ra từ những use case này và cỏc lớp sau đõy được mụ hỡnh hoỏ:
Session Cỏc đối tượng của lớp này bao chứa thụng tin về những người “sở hữu” một phiờn làm việc (người quản lý cửa hàng, khỏch hàng), về nội dung của giỏ hàng hoặc đơn hàng, cũng như thụng tin về trạng thỏi
Person Lớp này là lớp cơ sở cho Customer và ShopManager và bao chứa cỏc thụng tin đặc trưng cho khỏch hàng (tờn, tờn thỏnh, địa chỉ…)
Purchase Cỏc đối tượng của lớp này cú thể là ShoppingCart, Order hoặc DeliveredOrder
Item Cỏc đối tượng của lớp này bao chứa một danh sỏch đơn giản cỏc sản phẩm theo chủng loại. í tưởng là để cung cấp cỏc danh sỏch cỏc đơn vị sẵn cú khỏc nhau, chẳng hạn cỏc gúi hàng với cỏc khối lượng nào đú hoặc với số lượng cỏc thành phần nào đú Customer,
ShopManager
Cỏc lớp này nhận được từ Person và bao chứa một danh sỏch cỏc đơn hàng hoặc một danh sỏch cỏc đơn giao hàng
Thing Hỡnh thành cỏc lớp cơ sở cho Product, Category và Unit. Bao chứa cỏc trường mụ tả (name, shortDescription, longDescription) cũng như cỏc tham chiếu tới cỏc hỡnh ảnh Product, Category,
Unit
Hỡnh thành thụng tin sản phẩm
Hỡnh 33. Cỏc mụ hỡnh lớp trong Rational Rose