phan tich hdt

3. đặc tả usecase

Ở đây do không có nhiều thời gian nên mình xin nói lên một số Usecase sau: Tim Kiem Nhan Vien, Them Nhan Vien, Xem Cau Hoi, Tra Loi Cau Hoi.

a) Usecase Tim Kiếm Nhân Viên

• Tóm tắt.

Usecase tìm kiếm nhân viên được nhân viên phòng nhân sự sử dụng để tìm kiếm thông tin của một nhân viên. Usecase này được sử sử dụng khi một nhân viên phòng nhân sự cần tra cứu thông tin của một nhân viên nào đó trong công ty.

• Dòng sự kiện

a. Dòng sự kiện chính:

Usecase bắt đầu khi nhân viên phòng nhân sự gọi chức năng tìm kiếm nhân viên. Hệ thống sẽ kiểm tra nhân viên đang dùng đã đăng nhập hay chưa. Hệ thống sẽ tiếp nhận người dùng nhập thông tin tìm kiếm. Hệ thống sẽ thực hiên tìm kiếm trong cơ sở dữ liệu, sau đó hệ thống sẽ hiển thị tất cả các thông tin tìm được ra màn hình cho người dùng.

b. Các dòng sự kiện khác.

Nếu người dùng chưa đăng nhập thì hệ thống phải yêu cầu người dùng đăng nhập.

Nếu hệ thống không tìm thấy dữ liệu trả về thì hệ thống sẽ thông báo là không tìm thấy dữ liệu và đợi người dùng thao tác tiếp.

• Các yêu cầu

Người dùng phải đăng nhập vào hệ thống trước khi sử dụng chức năng này.

• Trạng thái hệ thống khi User bắt đầu Usecase

Trước khi bắt đầu chức năng này Người dùng phải đăng nhập vào hệ thống.

• Trạng thái hệ thống sau khi thực hiện Usecase

Hệ thống sẽ hiện ra thông báo kết quả tìm được cho User và chờ tác vụ tiếp theo của người dùng.

• Điểm mở rộng.

Không có.

b) Usecase Them Nhan Vien

• Tóm tắt.

Usecase tìm kiếm nhân viên được nhân viên phòng nhân sự sử dụng để tìm kiếm thông tin của một nhân viên. Usecase này được sử sử dụng khi một nhân viên phòng nhân sự cần tra cứu thông tin của một nhân viên nào đó trong công ty.

• Dòng sự kiện

i. Dòng sự kiện chính:

Usecase bắt đầu khi nhân viên phòng nhân sự gọi chức năng thêm mới nhân viên. Hệ thống sẽ kiểm tra nhân viên đang dùng đã đăng nhập hay chưa. Hệ thống kiểm tra dữ liệu người dùng nhập vào có đúng như qui định không. Hệ thống sẽ tiếp nhận người dùng nhập thông tin của nhân viên mới. Hệ thống sẽ thực hiên tìm trong dữ liệu đã có nhân viên này chưa ở trong cơ sở dữ liệu, sau đó hệ thống sẽ thêm tất cả các thông tin mà người dùng nhập vào.

ii. Các dòng sự kiện khác.

Nếu người dùng chưa đăng nhập thì hệ thống phải yêu cầu người dùng đăng nhập.

Nếu mà có lỗi xảy ra trong quá trình nhập dữ liệu của người dùng thì thông báo cho người dùng biết là đã có chổ nhập không đúng và để con trỏ chuột tới vị trí sai đầu tiên xuống cho người dùng sửa.

Nếu người mới được thêm vào đã có trong cơ sở dữ liệu rồi thì cập nhật lại trạng thái của họ là đang đi làm.

Nếu hệ thống không thêm được thì sẽ báo lỗi cho người dùng

• Các yêu cầu

Người dùng phải đăng nhập vào hệ thống trước khi sử dụng chức năng này.

• Trạng thái hệ thống khi User bắt đầu Usecase

Trước khi bắt đầu chức năng này Người dùng phải đăng nhập vào hệ thống

• Trạng thái hệ thống sau khi thực hiện Usecase

Hệ thống sẽ có thêm một người mới được thêm vào cơ sở dữ liệu hay là một record mới được cập nhật.

Hệ thống sẽ hiện ra thông báo kết quả tìm được cho User và chờ tác vụ tiếp theo của người dùng.

• Điểm mở rộng.

Không có.

c) Usecase Xem Cau Hoi.

• Tóm tắt:

Usecase xem câu hỏi được bắt đầu ứng viên tiến hành đi phỏng vấn và chức năng nay sẽ được gọi. Usecase này được sử dụng khi một ứng viên xem câu hỏi để trả lời trong buổi phỏng vấn

• Dòng sự kiện

i. Dòng sự kiện chính

Khi bắt đầu phỏng vấn Ứng viên bắt đầu được xem câu hỏi đầu tiên từ ngân hàng câu hỏi mà hệ thống trả về.

ii. Các dòng sự kiện khác

Không có.

• Yêu cầu

Không có.

• Trạng thái hệ thống khi user bắt đầu Usecase

Hệ thống sẽ chờ đợi người dùng sẵn sàng.

• Trạng thái hệ thống sau khi User bắt đầu Usecase

Hệ thống lấy câu hỏi từ ngân hàng câu hỏi về để hiển thị lên cho người dùng xem.

• Điểm mở rộng.

Không có.

---------------------------------------------------

Xây dựng mô hình lớp ở mức phân tích.

1. Review hướng đối tượng

Lập trình hướng đối tượng không ai bác bỏ nó là một xu hướng đang phát triển của ngành công nghệ phần mềm. khác với lập trình cấu trúc thì lập trình hướng đối tượng nó cố gắng ánh xạ các thực thể bên ngoài thế giới thực vào trong chương trình phần mềm.

Khi lập trình hướng đối tượng có 1 vài khái niệm quan trọng đó là class, các từ khóa khai báo về tầm vực.

Class là một thể hiện của một lớp đối tượng bên ngoài thế giới thực mà bạn đang quan tâm. Nó bao gồm các thuộc tính và các “hành động”(phương thức) tương ứng mà bên ngoài đối tượng có.

Tầm vực của một thuộc tính/một phương thức là khả năng cho phép truy cập biến/phương thức đó bên ngoài ở bên ngoài phạm vi của lớp.

Một số ký hiệu của hướng đối tượng.

• Ký hiệu của class: (hình chữ nhật)

Giải thích thêm về class:

• Ký hiệu kế thừa: mũi tên đầu là tam giác rỗng ruột

Cái này sẽ nói rõ hơn trong mục dưới.

• Ký hiệu của private: (nó là ổ khóa mà nó không cho ) nói cho dễ nhớ: private tức là bên ngoài không vào được, mà muốn bên ngoài không “vào” được thì phải “khóa” cửa lại --> riêng tư. Private (nếu mà vẽ ra giấy thì nó có ký hiệu là dấu trừ “-”).

• Ký hiệu của protected: ký hiệu là chìa khóa và bên có một hình màu xanh đẹp đẹp.(nếu vẽ ra giấy thì ký hiệu là dấu thăng. “#” giống chữ CSharp)

• Ký hiệu của public: là ô chữ nhật màu đỏ: nếu viết ra giấy thì nó là dấu cộng(“+”).

2. Các loại quan hệ giữa 2 lớp đối tượng

2.1. Quan hệ kế thừa.

Như ở trên đã nói thì quan hệ kế thừa là một trường hợp rất hay gặp của lập trình và phân tích hướng đối tượng nó góp phần tạo nên hướng lập trình này.

Mô hình ở mức tổng quát:

Đọc: class A là một trường hợp đặc biệt của class B. hoặc Class A kế thừa từ class B.

Ví dụ:

Đọc: lớp học sinh là một trường hợp đặc biệt của lớp người, Hay lớp Học sinh được kế thừa từ lớp Người hay là lớp Cnguoi là một trường hợp đặc biệt của lớp ChocSinh.

2.2. Quan hệ Association:

Quan hệ Association là một quan hệ ở mức phổ biến giữa 2 lớp. Nó thể hiện là trong lớp này có chứa lớp kia(chấm hết không nói thêm gì nữa.)

Hình vẽ:

Đọc:

Hoặc trong class A có chứa 1 hay nhiều thuộc tính là class B.

Hoặc là trong class B có chứa 1 hay nhiều thuộc tính là class A.

Ví dụ: quan hệ Lớp học (CLopHoc) và Học Sinh (CHocSinh).

Đọc: Một lớp có nhiều học sinh

Lưu ý chiều của quan hệ: A -> B hay B -> A nó nêu lên sự chủ động gọi.

Từ A->B

Từ B->A

Khi chiều có cả 2 đầu thì bỏ dấu mũi tên đi.

2.3. Quan hệ Aggregation

Hình vẽ:

Quan hệ Aggregation trước hết là một quan hệ Association nhưng chúng ta phát hiện ra một ràng buộc giữa 2 mối quan hện này là: Khi một đối tượng thuộc lớp B được hủy thì đối tượng xObj thuộc lớp A chưa chắc đã bị hủy(vẫn có thể còn tồn tại).(dễ nhớ: classB có mang cái đầu to[hình thoi] ở phía mình nên nó bao lấy thằng A. nhưng do rổng ruột[hình thoi rổng ruột] nên khi thằng B chết thằng A có thể chui qua cái “lỗ” đó để mà thoát).

VD1: đặt một ngữ cảnh như sau. Bạn đang có một cửa hàng, cửa hàng của bạn có nhiều kho hàng. Do một nguyên do nào đó mà bạn hủy kho đó đi thì hàng của bạn trong kho đó sẽ bị hủy?? không bị hủy mà bạn sẽ đưa nó đi một chổ khác. Cái này cũng tương tự như vậy.

Khi bạn bỏ một kho hàng thì hàng trong kho sẽ không mất hết.

VD2: trong chương trình nghe nhạc của bạn thường thấy các list nhạc mà bạn tạo rao. Khi bạn xóa cái list nhạc đó thì các bài nhạc trong máy của bạn mà thuộc cái list đó nó sẽ không bị xóa theo.

2.4. Quan hệ Composition

Hình vẽ:

Quan hệ Composition là quan hệ mà đã là quan hệ Association nhưng mà khi một đối tượng bObj thuộc classB bị hủy thì đối tượng classA thuộc bObj là không thể không bị hủy(bắt buộc).( dễ nhớ: classB có mang cái đầu to[hình thoi] ở phía mình nên nó bao lấy thằng A. nhưng do kín mít [hình thoi đen thui] nên khi thằng B chết thằng A không thể nào chui qua cái “lỗ” đó để mà thoát cho nên A chết chung).

Ví dụ: lấy ví dụ dễ thấy: trong máy tính của bạn có thư mục và file. Thư mục chứa file.

2.5. Quan hệ Dependency

ClassA không có quan hệ Association với classB. Nhưng ở đâu đó trong các phương thức của classB có gọi thực hiện một phương thức, khai báo một đối tượng của classA.(nói chung qui thì là nếu ko có classA thì classB pó hand không build được ).

------------------------------------------------------------

Cách thức thiết kế lớp đối tượng

Quá trình thiết kế lớp bao gồm các công đoạn sau: Xác định tên lớp đối tượng, xác định các quan hệ, Xác định các thuộc tính, xác định các phương thức, xác định lớp cha của nó(nếu có).

Để xác định tên lớp như thế nào thì các bạn phải dựa vào kinh nghiệm bản thân mà không thể nói một cách dễ dàng được. tuy nhiên nó tuân theo một số qui tắc sau:

1 – Tên lớp phải là danh từ.

2 – Tên lớp phải có chu trình sống của mình, phải có thời điểm sinh ra, chết đi của đối tượng đó.

3 – Nó độc lập tương đối với các đối tượng khác (tức là nó sẽ độc lập hơn đối tượng khác một cách tương đối, về các mặt khác nó có thể phụ thuộc lẫn nhau giữa các đối tượng, nhưng nó là một thể thức ngoài đời có.).

Quan trọng hơn là nó phải nằm trong phạm vi quản lý của yêu cầu bài toán.

Nói túm lạ ngoài đời có gì thì bên trong chương trình của mình có lớp đó.

Phần xác định các quan hệ . Việc xác định các quan hệ giữa các lớp là việc phải lập ra một từ điển quan hệ giữa các lớp ví như: lớp A là con lớp B chẳng hạn. nó cũng có một số qui tắc sau để qui ước là: tên quan hệ phải là động từ, Nó nói lên sự phụ thuộc lẫn nhau của các đối tượng.

Việc xác định các thuộc tính nó có một số qui định như sau: tên thuộc tính phải là danh từ, nó phải có sự lệ thuộc duy nhất vào đối tựng đang xét. Trong khi xác định thuộc tính cần chú ý: nếu thuộc tính đó phụ thuộc một đối tượng thì thuộc tính đó là thuộc tính của đối tượng, thuộc tính phụ thuộc vào nhiều đối tượng thì thuộc tính đó là thuộc tính quan hệ. lư ý ở trên chỉ nói đến thuộc tính của một lớp.

Việc xác định phương thức thực chất đó là các hành động, công việc, của các phương thức đó, nên tên phương thức có nhiều loại phương thức trong xây dựng một lớp đối tượng:

1 - các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo mặc định, phương thức khởi tạo khi biêt một số thuộc tính của nó, phương thức phá hủy.

2 – các phương thức thuộc nhóm cung cấp (phương thức get)

3 – các phương thức thuộc nhóm thiết lập (phương thức set)

4 – các phương thức xử lý tính toán: các phương thức này sẽ đóng vai trò là nơi thực thi các tính toán của từng class tương ứng trước khi thêm, hay làm gì đó với hệ thống dữ liệu của bạn.

5 – các phương thức thuôc nhóm kiểm tra. Đây là nơi kiểm tra các ràng buộc về dữ liệu cho class tương ứng của bạn.

Sau đây là một số quy ước để thiết kế một class.

1 – để thiết kế một class trước tiên bạn phải đưa ra tên của nó là gì.

2 – xác định các phương thức, thuộc tính cho class đó như đã nói ở trên.

3 – Nếu các thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính liên hệ với nhau và nó có ngữ nghĩa cụ thể (ngoài đời có nó) thì nên tách nó ra thành một lớp độc lập với nhau.

4 – Khi 2 hay nhiều lớp có các thuộc tính chung thì nên tách thành một lớp cha của các lớp đó và các lớp đó được kế thừa từ lớp cha của nó.

5 – Khi gặp các thuộc tính có khả năng phân loại trong một số trường hợp thì ta tách các thuôc tính con của nó thành thuộc tính con tương ứng.

Thiết kế một mô hình class.

1-Thiết kế các class như các cách ở trên đã nêu.

3 - Xác định quan hệ giữa các class

2-Xác định các quan hệ và bảng số của nó.

Bảng số của 2 lớp là phần mô tả dữ liệu giữa 2 lớp đó

I- Một nhiều

1 A thì tương ứng với nhiều B

1B tương ứng với 1A

II- Một - Một 1A thì tương ứng với 1B

1B tưng ứng với 1A.

1A tương ứng với 1B

III - nhiều nhiều.

1 A tương ứng với nhiều B.

1B tương ứng với nhiều A

----------------------------------------------------------------

Ví dụ:

Công ty ABC là công ty sản xuất bánh ngọt họ muốn xây dựng một website bán hàng cho mình qua mạng internet.

Khách hàng có thể đăng ký, đặt hàng với công ty qua mạng hay qua điện thoại. nếu qua điện thoại thì có nhân viên sẽ là người nhập các đơn đặt hàng cho bạn. Khi khách hàng đặt một loại bánh nào đó thì hệ thống sẽ kiểm tra xem bánh đó có còn hay không. Hiện tại công ty có các loại bánh như sau: bánh ngọt, bánh mặn, bánh chay.

Công ty hiện cũng áp dụng chương trình “khách hàng thân thiết” với chiến dịch là người dùng thường xuyên của cửa hàng sẽ được giảm 5 % giá thành của bánh khi mua tại thời điểm hiện tại. Khi một khách hàng thường mua hàng hơn lần trong vòng 3 tháng thì họ sẽ trở thành khách hàng thân thiết và được áp dụng chương trình khuyến mãi trên. Trong trường hợp “khách hàng thân thiết” không mua sản phẩm trong một khoảng thời gian 3 tháng thì họ sẽ không còn là khách hàng thân thiết nữa.

Khi người dùng đăng nhập thì hệ thống sẽ liệt kê danh sách các sản phẩm của công ty đang có và cho người dùng xem. Trong quá trình xem người dùng có thể chọn mua cho mình những sản phẩm mà họ vừa ý nhất.

Khi người dùng chọn mua các sản phầm thì họ luôn luôn có một cái “giỏ” để bỏ hàng vào đó, họ sẽ kết thúc mua hàng khi họ tính tiền với cửa hàng, trong trường hợp mà khách hàng quyết định không mua bất kỳ sản phẩm nào trong giỏ hàng thì khách hàng có thể trả lại hàng cho công ty.

Khi khách hàng thanh toán bằng các dịch vụ ATM, Visa thì hệ thống sẽ kết nối với một hệ thống bên ngân hàng để kiểm tra xem thẻ này còn hiệu lực hay không, hệ thống sẽ không lưu các thông tin về tài khoản của khách hàng mà khách hàng nhập vào rồi sẽ chuyển qua bên ngân hàng kiểm tra.

Mô hình class ở mức phân tích (các bạn lưu ý ở mức này chúng ta chưa cần phải đưa ra các phương thức của lớp).

(nguồn: congdongcviet)

Xem thêm bài viết cùng chuyên mục:

Clip Hướng dẫn đóng gói phần mềm C# bằng...

Tạo file XML trong C#

Video dạy lập trình web (tiếng Việt)

Chương trình đào tạo .NET Visual Studio 2010

Video dạy lập trình web với Asp.Net

Khai báo chuỗi kết nối có tham số

Video dạy C# cơ bản

Mã nguồn bán máy tính ASP.NET đa ngôn ngữ

Mở và đọc file XML trong C#

Phân tích thiết kế hướng đối tượng (UML) cho...

Bạn đang đọc truyện trên: AzTruyen.Top