Bài tập lớn+Bài thi môn Thiết kế và xây dựng phần mềm

#1
(07/07/2011)
"Tôi gửi bài tập lớn cuối khóa để các em làm lấy điểm thi. Bài làm gửi qua file cho tôi, Subject: Bài thi TKXDPM - tênnhóm Các nhóm phân công từng người cụ thể và ghi rõ phần bài làm của mỗi người để tôi chấm và cho điểm."


từ alliant.cty@gmail.com tới
nguyenvuanhchien@gmail.com,
708t100@gmail.com,
huongdl2602@gmail.com

ngày
10:13 Ngày 07 tháng 7 năm 2011 chủ đề
Bài thi kết thúc môn "Thiết kế và xây dựng phần mềm" Download bản word thầy đính kèm : Ở đây


Bài tập lớn cuối môn học
“Thiết kế và xây dựng phần mềm”
(tiếp cận “hướng đối tượng”)
Xây dựng biểu đồ ca sử dụng và biểu đồ lớp
A. Yêu cầu bài toán:
· Một đơn vị đào tạo (tạm gọi là Nhà trường) cung cấp nhiều Khóa học (course) thuộc nhiều lĩnh vực.
· Mỗi Khóa học được xây dựng từ nhiều Chủ đề (topic).
· Giảng viên (Tutor) thuộc Nhà trường được phân công giảng dạy các Khóa học theo lĩnh vực chuyên môn và khả năng.
· Hàng năm Nhà trường công bố và bảo trì Thời khóa biểu (Calendar) và phân công các Giảng viên dạy cho các Khóa học khác nhau.
· Một nhóm các Nhà quản trị khóa học (tạm gọi là Giáo vụ) của Nhà trường quản lý các Khóa học, bao gồm: nội dung khóa học, phân giảng viên dạy từng khóa, và định thời khóa biểu cho khóa học.
· Nhà trường cần xây dựng một Hệ thống Quản lý Khóa học để kiểm soát việc quản lý các Khóa học tốt hơn, trực quan hơn, đồng thời tăng tốc việc lập và quản lý Thời khóa biểu cho các Khóa học khác nhau.
B. Xây dựng biểu đồ ca sử dụng, một số gợi ý:
Các thuật ngữ và thực thể đặc thù cho hệ thống:

  • Khóa học và các Chủ đề của Khóa học đó
  • Giảng viên dạy Khóa học
  • Giáo vụ, người phân công Giảng viên dạy Khóa học
  • Thời khóa biểu
  • Sinh viên xem Thời khóa biểu để chọn Khóa học sẽ theo.
Xác định tác nhân của hệ thống:

Từ danh sách trên thấy ra một số vai trò thực hiện các hoạt động nghiệp vụ (các hoạt động này sẽ xác định chi tiết sau). Các vai trò và hoạt động nghiệp vụ này xác lập nên một số thực thể hệ thống. Có một số thực thể thực hiện một hành động (thực thể “tích cực”) và một số khác là mục tiêu của hành động (thực thể “thụ động”). Các thực thể “tích cực” (thực hiện hành động) có thể xếp vào các tác nhân tiềm năng:

· Giảng viên

· Giáo vụ

· Sinh viên

Tuy nhiên, Sinh viên không phải là người tham gia tích cực vào hệ thống theo quan điểm của bài ra, nên bị loại khỏi danh sách. Tương tự đối với Giảng viên. Tuy vậy họ vẫn sẽ có mặt trong mô hình ca sử dụng với mục đích không để bị mất thông tin. Danh sách tác nhân cuối cùng còn lại là:

· Giáo vụ

Ca sử dụng:
Các luồng nghiệp vụ đầu tiên nhận biết được là:

  • Quản lý Khóa học
  • Quản lý việc phân công dạy các Khóa học
Phân rã tiếp, “Quản lý khóa học”sẽ bao gồm:

    1. Xem (thông tin) Khóa học (View Courses)
    2. Quản lý chủ đề một Khóa học (Manage Topics for a Course)
    3. Quản lý thông tin Khóa học (Manage Course information)
Còn “Quản lý việc phân công dạy các khóa học” bao gồm:

    1. Xem Thời khóa biểu các Khóa học(View Course Calendar)
    2. Xem (dữ liệu về) Giảng viên (View Tutors )
    3. Quản lý thông tin Giảng viên (Manager Tutor Information)
    4. Phân công Giảng viên dạy các Khóa học (Assign Courses to Tutors)
Từ đây, đưa ra danh sách các ca sử dụng cho hệ thống, bao gồm 7 hạng mục được phân rã (in nghiêng).
Biểu đồ ca sử dụng:




Bài tập 1:

1.1 Vận dụng các kiến thức đã học để xác định tác nhân và ca sử dụng:

Gợi ý trên đây là một cách làm.

Hãy thực hiện việc xác định các ca sử dụng theo quy trình trình bày trong bài giảng (Bài 2):

· Xác định các chức năng hệ thống cần thực hiện (có thể vẫn theo hai nhóm: quản lý khóa họcquản lý phân công dạy như gợi ý trên)

· Xác định các tác nhân

· Xây dựng các ca sử dụng dựa vào tác nhân.

1.2 Mô tả các ca sử dụng theo mẫu như trình bày trong Bài giảng 2:

Chú ý:
Mỗi nhóm sinh viên mô tả 5 ca sử dụng (Xem Bảng 1). Chú ý phân việc để mỗi sinh viên đều có bài làm của mình.



Bảng 1: Phân công bài làm cho các nhóm

Tên nhóm
Ca sử dụng
Lớp
Nhóm 1 (Chiến)
1-5
1,3,4
Nhóm 2 (Ngọc 1)
2-6
1,2,3
Nhóm 3 (Ngọc 2)
3-7
1,4,5
Nhóm 4 (Ngọc 3)
1,2,3,5,6
1,2,6
Nhóm 5 (Ngọc 4)
1,3,4,5,6
1,3,5
Nhóm 6 (Ngọc 5)
2,4,5,6,7
1,4,6
Nhóm 7 (Hương 1)
3-7
1,3,4
Nhóm 8 (Hương 2)
2-6
1,2,3
Nhóm 9 (Hương 3)
1-5
1,4,6
Nhóm 10 (Hương 4)
3-7
1,2,5





C. Xây dựng biểu đồ lớp, một số gợi ý:

Xác định lớp
1. Xác định các thực thể “tích cực” (“chủ động”) trong hệ thống:
Các lớp và giao diện phản ảnh các thực thể quan trọng trong lĩnh vực vấn đề, vì vậy các thực thể này có thể lập nên danh sách dự bị cho các lớp. Trước hết là các tác nhân của các ca sử dụng:
· Giáo vụ,
với tư cách là một lớp, chọn thêm cả
· Sinh viên và
· Giảng viên.
2. Xác định các thực thể (“thu động”) trong lĩnh vực nghiệp vụ hệ thống và trong các ca sử dụng, bao gồm:

  • Khóa học:
    • Các Chủ đề của Khóa học
    • Thời khóa biểu đã lập cho Khóa học
3. Danh mục các thực thể là lớp và giao diện hệ thống là:

      1. CourseAdministrator (Giáo vụ)
      2. Tutor (Giảng viên)
      3. Student (Sinh viên)
      4. Course (Khóa học)
      5. Topic (Chủ đề)
      6. CourseCalendar (Thời khóa biểu)
Gán phương thức cho lớp:
Các lớp được bao gói theo chức năng. Đối với Hệ quản lý khóa học, các chức năng được bao gói trong các lớp ở đây khác nhau về bản chất và là khác nhau đối với các lớp khác nhau. Vì các ca sử dụng đều liên quan đến Giáo vụ, nên có thể ánh xạ trực tiếp ca sử dụng này như các phương thức của nó vào lớp “Giáo vụ” (CourseAdministrator).
ClassName
Methods
CourseAdministrator
viewCourses()
manageCourse()
manageTopic()
viewCourseCalendar()
viewTutors()
manageTutorInformation()
assignTutorToCourse()
Ngoài ra còn có thể xác định một số chức năng bên trong (implicit) phản ánh các thực thể nghiệp vụ của lớp (tức là gắn tự nhiên với nghiệp vụ mà lớp đảm nhận). Một cách trực quan, có thể xác định lớp Course sẽ cung ứng các chức năng view tất cả các course, có thể tạo course mới và thay đổi thông tin với course đang có, view chi tiết của course cụ thể, thậm chí hủy course khỏi hệ thống. Vì vậy gán các chức năng này như các phương thức của Course.
Tương tự đối với các lớp khác, thu được sơ đồ gán phương thức sau đây:
ClassName
Methods
Course (Khóa học)
viewAllCourses()
viewCourseInformation()
createCourse()
modifyCourse()
removeCourse()
Topic (Chủ đề)
viewAllTopics()
viewTopicInformation()
createTopic()
modifyTopic()
removeTopic()
Tutor (Giảng viên)
viewTutorInformation()
createTutor()
modifyTutor()
removeTutor()
CourseCalendar (Thời khóa biểu)
viewCourseCalendar()
Student (Sinh viên)
viewAllStudents()
viewStudentInformation()

Xác định quan hệ giữa các lớp:
Giữa các thực thể “tích cực”: Thường các thực thể này có chung quan hệ tổng quát hóa (là-một).

Giữa các thực thể “thụ động”: Thường các thực thế này có chung quan hệ kết hợp hoặc kết tập (có-một). Thường thì các thực thể này về bản chất là không-giao dịch và thường phản ánh dữ liệu hơn là hành vi.

Quan hệ giữa các thực thể “tích cực” và “thụ động”: Các quan hệ này có thể dễ dàng biểu diễn bằng cách sử dụng các kết hợp định hướng (directed), xác định đâu là lớp chứa, đâu là lớp bị chứa – Thí dụ CourseAdministrator “quản lý” Courses, CourseAdministrator và Course “quản lý” Topic, v.v.









Class diagram:





Bài tập 2:

2.1 Xác định các lớp:

Cách trình bày trên đây chỉ là gợi ý. Hãy bình luận và phê phán các kết quả thu được nếu có thể. Xác định lại các lớp nếu cần.

2.2. Gán trách nhiệm cho lớp:

Hãy dùng các mẫu gán trách nhiệm cho lớp (GRASP) để thực hiện việc gán trách nhiệm cho các lớp. Trên các đường liên kết nối các lớp hãy ghi các thông báo được gửi giữa chúng, không ghi tên của kết hợp như trong hình trên.

Phân công các lớp để mỗi nhóm thực hiện cho trong Bảng 1.






www.cntt508c.com
 

Bình luận bằng Facebook

Top