ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC SƯ PHẠMKHOA TIN HỌC PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG ĐỀ TÀIPhân tích thiết kế hệ thống quản lý bán hàng siêu thị TGMart¬Giáo viên hướng dẫn : Lê Thị Thanh BìnhSinh viên thực hiện : Nguyễn Trường HiếuNguyễn Thị Thảo LinhLớp sinh hoạt: 17CNTT1
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
HƯỚNG ĐỐI TƯỢNG
ĐỀ TÀI Phân tích thiết kế hệ thống quản lý bán hàng siêu thị TG-Mart
Giáo viên hướng dẫn : Lê Thị Thanh Bình Sinh viên thực hiện : Nguyễn Trường Hiếu
Nguyễn Thị Thảo Linh
Trang 2Phân tích thiết kế hệ thống quản lý bán hàng siêu thị TG-Mart
1.Lý do chọn đề tài 3
2.Mục tiêu của đề tài 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1.Phân tích hướng đối tượng? 4
1.1.1.Định nghĩa phân tích thiết kế hướng đối tượng: 4
1.1.2.Các khái niệm cơ bản của hướng đối tượng: 4
1.1.3.Các nguyên tắc cơ bản của phương pháp hướng đối tượng 5
1.2.Tổng quan về mô hình hóa ngôn ngữ UML 6
1.2.1.UML là gì? 6
1.2.2 Mục tiêu của UML 6
1.2.3.Các biểu đồ UML 6
CHƯƠNG 2: KHẢO SÁT HỆ THỐNG 19
2.1.Phạm vi đề tài 19
2.2.Khảo sát thực tế: 19
2.2.1.Kế hoạch khảo sát: 19
2.2.2.Mục tiêu: 19
2.2.3.Kết quả khảo sát: 19
2.3.Quy trình xử lý 20
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 22
3.1.Phân tích hệ thống 22
3.1.1.Xác định các Actor 22
3.1.2 Xác định các use case 22
3.2.Thiết kế hệ thống: 23
3.2.1 Biểu đồ Use Case: 23
3.2.2 Biểu đồ hoạt động: 24
3.2.3 Biểu đồ lớp 30
3.2.4 Biểu đồ tuần tự 31
Trang 3MỞ ĐẦU
1.Lý do chọn đề tài
Xã hội Việt Nam hiện tại đang trên con đường phát triển không ngừng, cùng với
đó là sự phát triển của khoa học công nghệ ngày càng được nâng cao và áp dụngmọi mặt trong đời sống Chính vì thế việc áp dụng khoa học kĩ thuật vào các lĩnhvực đời sống sẽ làm cho công việc trở nên dễ dàng và hiệu quả hơn
Hiện nay có ngày càng nhiều những cửa hàng tiêu dùng trên khắp cả nước, côngtác quản lý hoạt động trên thủ tục giấy tờ đã và đang trở nên lạc hậu không cònhiệu quả để thúc đẩy hoạt động phát triển đi lên nữa Và cách đơn giản hóa cáccông tác quản lý ấy là đưa công nghệ thông tin vào hoạt động nghiệp vụ của cửahàng Nó phù hợp với thời đại 4.0 hiện nay, mang đến sự chuyên nghiệp trong côngviệc cũng như giảm bớt lao động thủ công cho con người, tạo cho khách hàng sựthoải mái trong công tác mua bán
Và đây cũng chính là nội dụng mà nhóm đã triển khai tìm hiểu và đưa ra giải
pháp cho tình trạng trên Đồ án phân tích thiết kế hệ thống quản lý cửa hàng Đồ án
sử dụng kiến thức từ môn học Phân tích thiết kế hướng đối tượng với UML để làmnền tảng cho quá trình phần phân tích hệ thống để xây dựng nên chường trình
2.Mục tiêu của đề tài
Với sự phát triển của công nghệ phần mềm, nhiều công cụ lập trình đã được pháttriển và có khả năng hỗ trợ mạnh cho người sử dụng, giảm thiểu công sức của lậptrình viên khi xây dựng chương trình Khi triển khai tin học hóa các bài toán trongthực tế, chúng ta không còn gặp nhiều khó khăn ở khâu viết chương trình mà vấn
đề chính là ở khâu thực hiện phân tích, thiết kế hệ thống cho bài toán đó
Phương pháp phân tích, thiết kế hệ thống hướng đối tượng giúp chúng ta hểu rõhơn những công việc phải làm, những yêu cầu thực tế về số liệu cần phải đáp ứng,
và trên cơ sỏ đó xây dựng các mô hình cần thiết để mô tả mối tương quán giữa cácthành phần trong hệ thống, từ đó dễ dàng hơn rất nhiều trrong việc triển khai lậptrình cũng như bảo trì, nâng cấp cho hệ thống hoạt động tốt, đap ứng các yêu cầuthay đổi của người dử dụng
Trang 4CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1.Phân tích hướng đối tượng?
1.1.1.Định nghĩa phân tích thiết kế hướng đối tượng:
Trong kỹ nghệ phần mềm để sản xuất được một sản phẩm phần mềmngười ta chia quá trình phát triển sản phẩm ra nhiều giai đoạn như thu thập
và phân tích yêu cầu, phân tích và thiết kế hệ thống, phát triển (coding),kiểm thử, triển khai và bảo trì Trong đó, giai đoạn phân tích, thiết kế baogiờ cũng là giai đoạn khó khăn và phức tạp nhất Giai đoạn này giúp chúng
ta hiểu rõ yêu cầu đặt ra, xác định giải pháp, mô tả chi tiết giải pháp Nó trảlời 2 câu hỏi What (phần mềm này làm cái gì?) và How (làm nó như thếnào?)
Để phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trongnhững cách làm đó là xem hệ thống gồm những đối tượng sống trong đó vàtương tác với nhau Việc mô tả được tất cả các đối tượng và sự tương tác củachúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó Phương thức nàygọi là Phân tích thiết kế hướng đối tượng (OOAD)
1.1.2.Các khái niệm cơ bản của hướng đối tượng:
Đối tượng: một đối tượng biểu diễn môt thực thể vật lý, một thực thể kháiniệm hoặc một thực thể phần mềm Có thể định nghĩa một đối tượng làmột khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ýnghĩa với một ứng dụng cụ thể
Lớp: mô tả một tập hợp các đối tượng có cùng một cấu trúc, cùng hành vi
và có cùng những mối quan hệ với các đối tượng khác Như vậy, một đốitượng là thể hiện của một lớp và một lớp là một định nghĩa trừu tượngcủa đối tượng
Trang 5 Gói: là một cách tổ chức các thành phần, phần tử trong hệ thống thànhcác nhóm Nhiều gói có thể được kết hợp với nhau để trở thành một hệthống con.
Kế thừa: trong phương pháp hướng đối tượng, một lớp có thể sử dụng lạicác thuộc tính và phương thức của một hoặc nhiều lớp khác
1.1.3.Các nguyên tắc cơ bản của phương pháp hướng đối tượng
Trừu tượng hóa (abstraction):
Các thực thể phần mềm được mô hình hoá dưới dạng các đốitượng
Các đối tượng được trừ tượng hóa ở mức cao hơn dựa trên thuộctính và phương thức mô tả đối tượng để tạo thành lớp
Các lớp được trừu tượng hóa ở mức cao hơn nữa để tao thành một
sơ đồ các lớp được kế thừa lẫn nhau Trong phương pháp hướngđối tượng có thể tồn tại những lớp không có đối tượng tương ứnggọi là lớp trừu tường
Tính bao đóng (encapsulation): che dấu mọi chi tiết hiện thực của đốitượng không cho bên ngoài thấy và truy xuất Đây chính là tính độc lậpcao giữa các đối tượng
Che dấu các thuộc tính dữ liệu : nếu cần cho phép truy xuất mộtthuộc tính dữ liệu, ta tạo hai phương thức set/get tương ứng đểgiám sát việc truy xuất và che dấu chi tiết hiện thực bên trong(thuộc tính private)
Che dấu chi tiết hiện thực các phương thức
Che dấu các hàm và sự hiện thực của chúng
Tính modul hóa (modularity): các bài toán sẽ được phân chia thànhnhững vấn đè nhỏ hơn, đơn giản và quản lý được
Tính phân cấp (hierarchy): cấu trúc chung của một hệ thống hướng đốitượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp
Trang 61.2.Tổng quan về mô hình hóa ngôn ngữ UML
1.2.1.UML là gì?
Là ngôn ngữ mô hình hóa hợp nhập dùng để biểu diễn hệ thống Nóimộ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 nhaucũng như dùng phát triển hệ thống, thuyết phục khách hàng, các nhà đầutư, vv
1.2.2 Mục tiêu của UML
UML cung cấp cho người dùng một ngôn ngữ mô hình hoá trực quan sẵnsàng để dùng và có ý nghĩa:
- Cho phép phát triển và trao đổi những mô hình mang nhiều ý nghĩa
- Cung cấp khả năng mở rộng và chuyên môn hoá để mở rộng nhữngkhái niệm cốt lõi
- Độc lập với ngôn ngữ lập trình chuyên biệt và các tiến trình pháttriển
- Cung cấp nền tảng về sự hiểu biết ngôn ngữ mô hình hoá
- Khuyến khích và hỗ trợ sự phát triển của các công cụ hướng đốitượng
- Hỗ trợ những khái niệm phát triển cấp độ cao như collaboration,framework, pattern and component
Trang 7- Actor được dùng để chỉ người sử dụng hoặc một đối tượngnào đó bên ngoài tương tác với hệ thống chúng ta đang xemxét.
- Tác nhân không nhất thiết luôn luôn là con người Tác nhân
có thể là môi trường, hệ thống khác, thực thể bên ngoàitương tác với hệ thống
Trang 8Association thường được dùng để mô tả mối quan hệgiữa Actor và Use Case và giữa các Use Case với nhau.
+ Quan hệ Extend
Trang 9Extend dùng để mô tả quan hệ giữa 2 Use Case Quan hệExtend được sử dụng khi có một Use Case được tạo ra để bổsung chức năng cho một Use Case có sẵn và được sử dụng trongmột điều kiện nhất định nào đó.
1.1.1.2 Biểu đồ hoạt động:
a) Giới thiệu biểu đồ hoạt động
Biểu đồ họat động( activity diagram) cho phép mô tả hoạtđộng của hệ thống so với một hoặc nhiều ca sử dụng
Một biểu đồ hoạt động định nghĩa:
Các hoạt động(activity) của hệ thống và của các tácnhân
Thứ tự mà các hoạt động này được thực hiện
Phụ thuộc có thể giữa các hoạt động nàyMột hoạt động tương ứng với một công việc ở mức trừutượng cao có mục tiêu xác định
Các hoạt động không tương ứng với các thao tác trong
mô hình khái niệm, các thao tác đó liên quan đến khái niệm,chứ không liên quán đến hệ thống hay các tác nhân Thôngthường, các biểu đồ hoạt động được định nghĩa trức hoặctrong khi xây dựng mô hình khái niệm
b) Các kí hiệu:
Trang 10 Hàng lang (swimlane): dung để phân lùng các hoạtđộng liên quan đến các tác nhân hoặc hệ thống.
Nút start, nút end:
Star thể hiện điểm bắt đầu quy trình:
End thể hiện điểm kết thúc quy trình:
Trang 11 Join:
Cùng ký hiệu với Fork nhưng thể hiện trường hợpphải thực hiện hai hay nhiều hành động trước rồimới thực hiện hành động tiếp theo
1.1.1.3 Biểu đồ trạng thái
a) Giới thiệu biểu đồ trạng thái:
Biểu đồ trạng thái( state diagram) mô tả hành vi của mộtthể hiện của một khái niệm ( hay hành vi của một đốitượng)
Biểu đồ trạng thái bao gồm:
Các trạng thái của một thể hiện (đối tượng)
Các chuyển tiếp cho phép chuyển từ trạng thái nàysang trạng thái khác
Trang 12 Các sự kiện cho phép vượt qua các chuyển tiếp
b) Trạng thái
- Một trạng thái là một tình huống mà thể hiện/ đốitượng của một khái niệm/ lớp tồn tại ở một thờiđiểm nào đó
- Một thể hiện ở trong một trạng thái trong mộtkhoảng thời gian nhất định
- Trong khoảng thời gian đó, thể hiện có thể thựchiện các hoạt động và chờ các sự kiện
Có 2 loại chuyển tiếp:
- Chuyển tiếp trong (interne transition): một trạngthái, cho phpes trả lời một sự kiện mà không rờitrạng thái đó
- Chuyển tiếp giữa các trạng thái hay chuyển tiếpngoài ( externe transition): mô tả một sự chuyểntrạng thái
d) Sự kiện
Một chuyển tiếp có dạng tổng quát như sau:
Sự Kiện [Điều Kiện]/Hành động
- “Sự Kiện” là tên sự kiện dẫn đến sự vượt qua mộtchuyển tiếp
- “Điều Kiện” là một biểu thức logic phải đúng để
có thể vượt qua một chuyển tiếp
- “Hành Động” định nghĩa một thao tác được thựchiện khi vượt qua chuyển tiếp
e) Trạng thái phức hợp
Trang 13Nhiều trạng thái và chuyển tiếp nối các trạng tháinày có thể nhóm lại tạo nên một trạng thái phức hợp( composite sate).
Một trạng thái phức hợp chứa một trạng thái đầu
- Các thuộc tính (attribut) của lớp: các biến và kiểu của chúng
- Các thao tác (operation) của lớp: các phương thức(method),các tham đối và có thể giá trị trả về
mô tả gồm tên Class, thuộc tính và phương thức
Trong đó,– Class Name: là tên của lớp
Trang 14– Attributes (thuộc tính): mô tả tính chất của các đốitượng Ví dụ như khách hàng có Mã khách hàng, Tênkhách hàng, Địa chỉ, Ngày sinh v.v…
– Method (Phương thức): chỉ các hành động mà đốitượng này có thể thực hiện trong hệ thống Nó thể hiệnhành vi của các đối tượng do lớp này tạo ra
Trang 15Với mỗi đối tượng của Professor, có nhiều Course Offerings
có thể được dạy Với mỗi đối tượng của Course Offering, cóthể có 1 hoặc 0 Professor giảng dạy
Là một dạng đặc biệt của liên kết mô hình hóa mối quan hệtoàn thể-bộ phận (whole-part) giữa đối tượng toàn thể và các
bộ phận của nó
Kết tập là mối quan hệ “là một phần” (“is a part-of”)
Bội số quan hệ được biểu diễn giống như các liên kết khác
Cấu thành (Composition)
Một dạng của kết tập với quyền sở hữu mạnh và các vòng đờitrùng khớp giữa hai lớp
Whole sở hữu Part, tạo và hủy Part
Part bị bỏ đi khi Whole bị bỏ, Part không thể tồn tại nếu Wholekhông tồn tại
Trang 16Mối quan hệ giữa các lớp trong đó một lớp chia sẻ cấu trúcvà/hoặc hành vi với một hoặc nhiều lớp khác
Xác định sự phân cấp về mức độ trừu tượng hóa trong đó lớpcon kế thừa từ một hoặc nhiều lớp cha
Đơn kế thừa (Single inheritance)
Đa kế thừa (Multiple inheritance)
Là mối liên hệ “là một loại” (“is a kind of”)
1.1.1.5 Biểu đồ tuần tự
a) Giới thiệu biểu đồ tuần tự
Biểu đồ tuần tự (sequence diagram) biểu hiện sự tương tácgiữa các đối tượng bằng việc nhấn mạnh thứu tự trao đổithông điệp giữa các đối tượng
b) Các thành phần của biểu đồ tuần tự
Đối tượng (object or class): biểu diễn bằng các hình chữ nhật
Đường đời đối tượng (Lifelines): biểu diễn bằng các đườnggạch rời thẳng đứng bên dưới các đối tượng
Thông điệp (Message): biểu diễn bằng các đường mũi tên
Thông điệp được dùng để giao tiếp giữa các đối tượng vàlớp Có nhiều loại thông điệp được định nghĩa ở phần 1.3
Trang 17Xử lí bên trong đối tượng (biểu diễn bằng các đoạn hình chữnhật rỗng nối với các đường đời đối tượng)
*Các loại thông điệp trong biểu đồ tuần tự
Thông điệp đồng bộ (Synchronous Message)
Thông điệp đồng bộ cần có một request trước hành động tiếptheo
Thông điệp không đồng bộ (Asynchronous Message)
Thông điệp không đồng bộ không cần có một request trướchành động tiếp theo
Thông điệp chính mình (Self Message)
Là thông điệp mà đối tượng gửi cho chính nó để thực hiệncác hàm nội tại
Trang 18Thông điệp trả lời hoặc trả về (Reply or Return Message)
Là thông điệp trả lời lại khi có request hoặc sau khi kiểm tratính đúng đắn của một điều kiện nào đó Ví dụ thông điệp loạinày như tin nhắn trả về là success hoặc fail
Thông điệp tạo mới (Create Message)
Là thông điệp được trả về khi tạo mới một đối tượng
Thông điệp xóa (Delete Message) Là thông điệpđược trả về khi xóa một đối tượng
Trang 19CHƯƠNG 2: KHẢO SÁT HỆ THỐNG
2.1.Phạm vi đề tài
Siêu thị mini TG-mart là siêu thị chuyên cung cấp các mặt hàng nhu yếu phẩmphục vụ cho sinh hoạt hàng ngày Với lượng khách càng ngày càng tăng, đểphục vụ khách được tốt hơn, chính xác hơn và nhanh chóng hơn thì chủ quánđang từng bước tin học hóa các khâu quản lý Quản lý cửa hàng được tổ chứcnhư sau: có các bộ phận chính bao gồm : bộ phận thu ngân, bộ phận nhânviên, bộ phận quản lý
- Hiểu được quá trình quản lý và tổ chức phân công công việc cho nhân viên
- Nắm bắt được quá trình mua bán giữa khách hàng và nhân viên
- Hiểu rõ được quá trình nhập xuất dữ liệu bán hàng, tổng kết thu chi
2.2.3.Kết quả khảo sát:
Câu 1: Cửa hàng tổ chức hệthống
nhân viên như thế nào?
Cửa hàng gồm có 3 bộ phận chính báo gồm: bộ phận thu ngân,
người quản lý, và bộ phận nhân viênCâu 2: Quy trình mua hàng
và thanh toán tại cửa hàng như thế nào?
Khách hàng chọn hàng mà mình mong muốn Nếu không tìm thấy hàng hoặc có thắc mắc gì sẽ hỏi nhân viên để đươc nhân viên tưvấn sau khi chọn được mặt hàngmình mong muốn thì đưa đến quầythu ngân để
tính tiền Thu ngân nhận sản phẩm quét mã vạch rồi nhập số lượng và
Trang 20tiến hành thanh toán Thu ngân nhận tiền từ khách hàng và in hóa đơn sau đó đưa hóa đơn và hàngcho khách.
Câu 3: Việc nhập hàng tại cửa hàng như nào?
Chúng tôi sẽ kiểm kê hàng mỗi tuần
và mỗi tháng, mặt hàng nào thiếu sẽ tiến hành thông báo cho nhà cung cấp để nhập hàng.Nhà cung cấp sẽ đưa hàng tới
cửa hàng Người quản lý sẽ kiểm tra và nhận hàng, tiến hành in phiếu nhập và thanh toán cho nhà cung cấp
Câu 4: Cửa hàng thực hiện quản lý nhân viên như nào?
Tôi quản lý nhân viên của mìnhbằng
hệ thống quản lý nhân viên của cửahàng
Câu 5: Cửa hàng có gặp khó khăn trong việc kiếm tra hàng hóa và cập nhật thông tin số lượng hàng không?
Trước đây thì có nhưng bây giờ đã
có hệ thống quản lý nên cũng dễdàng
trong việc đóCâu 6: Khách hàng khi mua
hàng thì có những hình thứcthanh toán nào
Khách hàng có thể thanh toán bằngthẻ và bằng tiền mặt
2.3.Quy trình xử lý
Yêu cầu xây dựng một hệ thống siêu thị bán hàng Khi nhà cung cấp đemhàng tới nhân viên sẽ nhận mặt hàng và kiểm tra chất lượng và số lượng hàngnếu đáp ứng sẽ lập phiếu nhập hàng để nhận hàng và thanh toán Phiếu nhậphàng có các thông tin: mã số phiếu, ngày tạo, họ tên người lập, chức vụ, nhàcung cấp, địa chỉ, tên sản phẩm nhập, mã sản phẩm nhập, số lượng, đơn giá,thành tiền hàng hóa được phân loại trước khi chuyển tới kho Hàng hóa có cácthông tin: mã hàng hóa, tên hàng, loại hàng, giá bán
Khi khách hàng chọn được sách ưng ý và đem ra quầy thanh toán và nhậnhóa đơn, tại quầy nhân viên bán hàng quét mã vạch sản phẩm, nếu không scan