Lời nói đầuNgày nay Công nghệ thông tin đã trở thành một phần tất yếu của cuộc sống con người.Việc áp dụng các phần mềm tin học vào các lĩnh vực giúp nâng cao tính hiệu quả vàchính xác c
Trang 1ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-o0o -PHÁT TRIỂN PHẦN MỀM THEO CẤU PHẦN
ĐỀ TÀI: Xây dựng chương trình quản lý sinh viên phòng Lab trung tâm
đào tạo vào phát triển nguồn nhân lực Viettel ICT hướng cấu phần
Giảng viên HD : Nguyễn Thái Cường
Nhóm thực hiện : Nhóm 13
2 Nguyễn Hữu Trượng
3 Chu Văn Công
Hà Nội, tháng 12 - 2015
Trang 2Lời nói đầu
Ngày nay Công nghệ thông tin đã trở thành một phần tất yếu của cuộc sống con người.Việc áp dụng các phần mềm tin học vào các lĩnh vực giúp nâng cao tính hiệu quả vàchính xác của công việc, ngoài ra còn tiết kiệm thời gian và giảm bớt mệt nhọc cho conngười khiến hệ thống công việc hoạt động nhịp nhàng hơn
Nhu cầu thực tế của xã hội đòi hỏi con người phải luôn năng động và sáng tạo để tạo rangày càng nhiều sản phẩm cho xã hội Đối với các công ty lớn thì việc quản lý là vô cùngquan trọng Vì thế việc tin học hóa khâu quản lý này sẽ giúp ích rất nhiều trong việc pháttriển của công ty đồng thời cũng giúp việc quản lý hiệu quả, khoa học hơn
Tập đoàn viễn thông quân đội Viettel là một trong những tập đoàn hàng đầu của ViệtNam Hầu hết các khâu quản lý trong tập đoàn đều đã được tin học hóa Phòng Lab làmột phòng làm việc sinh viên mới được mở nên việc tin học hóa vẫn chưa được tiếnhành Việc quản lý vẫn đang được tiến hành trên giấy tờ và các file excel nên còn gặp khánhiều khó khăn Vì thế việc xây dựng một chương trình quản lý sinh viên là vô cùng cầnthiết
Đề tài quản lý sinh viên là một đề tài không phải là mới, hiện tại trên thị trường
cũng có rất nhiều các phần mềm có chức năng tương tự Tuy nhiên với đặc thù của từngđơn vị các chương trình quản sinh viên đều có những đặc điểm khác nhau Chương trình
quản lý sinh viên được xây dựng bằng J2EE sử dụng hệ quản trị cơ sở dữ liệu mysql.
Phần mềm này giúp trung tâm đào tạo và phát triển nguồn nhân lực Viettel ICT quản lýsinh viên, điểm danh, đăng kí khóa học/open day giúp việc tìm kiếm không mất thời gian
mà hiệu quả và tính chính xác vẫn cao
Chương trình được xây dựng hướng cấu phần để có thể linh hoạt và hiệu quả hơn trong
việc xây dựng, sử dụng Chương trình hướng cấu phần nên thuận lợi trong việc tái sửdụng code và việc phát triển hệ thống ở những version sau Để tối ưu hóa trong quá trình
xây dựng chương trình chúng em có áp dụng design patterns vào thiết kế.
Tuy đã cố gắng nhưng do thời gian và kinh nghiệm còn hạn chế nên chương trình khôngthể tránh khỏi những sai xót Chúng em rất mong thầy cô và các bạn có thể góp ý đểchương trình có thể hoàn thiện hơn
Em xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Nguyễn Thái Cường – Đại học
Công nghiệp Hà Nội trong thời gian qua để giúp em có thể hoàn thành dự án này
Trang 3Mục lục
Trang 4Chương I: Tổng quan về lập trình hướng cấu
phần
I Kiến thức tổng quan về cấu phần
1 Khái niệm lập trình hướng cấu phần
Lập trình hướng cấu phần (component object programing - COP) là kiểu lập trình có xuhướng chia hệ thống phần mềm thành những thành phần giữ các chức năng khác nhau(mỗi thành phần này được gọi là một bộ phận hợp thành) mà khi kết hợp lại ta thu đượcmột hệ thống phần mềm hoàn chỉnh Với lập trình hướng cấu phần, chương trình đượcxây dựng bằng cách lắp ráp các thành phần phần mềm có thể sử dụng lại, các khối tựchứa mã máy (hay còn gọi là các khối thành phần thực hiện) Các thành phần này gồmcác thành phần giao diện, các kết nối COP nẩy sinh xuất phát từ thực tế rằng mọi thứ cócấu trúc đều được tạo nên từ các thành phần khác Điển hình như trong nền công nghiệp
tự động, các hệ thống được cấu tạo từ các thành phần Ví dụ, để phát triển một chiếc ô tô
là rất phức tạp
Ô tô = {Các thành phần được ghép nối};
Các thành phần cấu tạo nên ô tô là thuộc nhiều loại khác nhau, kích cỡ khác nhau, chứcnăng khác nhau, được sản xuất bởi các nhà sản xuất khác nhau Các thành phần này giớihạn từ các ốc vít rất nhỏ đến các hệ thống con phức tạp hơn như các động cơ, các bộtruyền phát nhanh
Trong công nghiệp phần mềm Sản phẩm vẫn làm bằng tay là chủ yếu Điều đó dẫn đếntính năng của sản phẩm thấp, chất lượng không đảm bảo, khó tái sử dụng
Trong công nghệ phần cứng Mọi sản phẩm cũng được tạo ra dựa trên phương pháphướng cấu phần Thực tế cho thấy nền công nghiệp này phát triển rất nhanh, thu đượcnhiều lợi nhuận Đây chính là lý do tại sao COP lại quan trọng
COP sử dụng nhiều khái niệm của OOP (lập trình hướng đối tượng) nhưng hai phươngpháp này là độc lập nhau COP phát triển phần mềm bằng cách lắp ráp các thành phầntrong khi OOP nhấn mạnh đến các lớp và các đối tượng COP nhấn mạnh giao diện vàkết cấu, trong khi OOP nhấn mạnh về cài đặt viết mã COP không cần biết bất cứ kiếnthức nào về cách thức một thành phần cài đặt giao diện của chúng, nó xem thành phầnnhư một hộp đen (không bị ảnh hưởng bởi sự thay đổi trong cài đặt của giao diện thànhphần), chỉ quan tâm đến đầu vào, đầu ra, chức năng nhiệm vụ của hộp đen đó Ví dụ: Ốcvít dùng để làm gì, làm thế nào để sử dụng nó mà không cần biết nó được làm như thếnào, sử dụng công cụ gì COP lắp ráp các thành phần thông qua giao diện của các thànhphần này
Trang 5Sự khác nhau giữa 2 phương pháp lập trình OOP và COP được chỉ ra trong bảngsau:
COP nhấn mạnh giao diện và kết cấu
OOP nhấn mạnh về đối tượng/lớpOOP hỗ trợ bao bọc, thừa kế, đa xạ nhưngchưa bao giờ đạt mục đích của nó vì kế thừaxâm phạm bao bọc, hơn nữa các đối tượng vàcác lớp không tự vận hành
COP là kỹ thuật đóng gói và phân tán OOP là kỹ thuật cài đặt
COP hỗ trợ sử dụng lại mức cao OOP hỗ trợ sử dụng lại mức thấp
COP về nguyên tắc có thể viết bởi bất kỳ
ngôn ngữ lập trình nào OOP bị giới hạn bởi ngôn ngữ OO
COP gồm các thành phần gắn kết lỏng
lẻo
OOP gồm các đối tượng phụ thuộc chặt chẽhơn vào các đối tượng khác qua giao diện kếthừa (Cha thay đổi, con thay đổi theo)
COP có các thành phần hạt nhân từ lớn
đến nhỏ
OOP gồm các đối tượng là các đơn vị củakiến trúc
COP hỗ trợ đa giao diện và thiết kế
hướng giao diện
OOP không cung cấp mỗi quan hệ rõ ràng vềgiao diện giữa các lớp con và lớp cha
1 Hình 1:Sự khác nhau giữa cop và oop
Các ngôn ngữ có thể được sử dụng trong lập trình hướng cấu phần: Visual Basic,Delphi, C#, Java…
Tóm lại: Kỹ nghệ phần mềm dựa trên cấu phần – CBSE (Component BasedSoftware Engineering) gồm các hoạt động:
o COA (Component Oriented Analysis): Phân tích hướng cấu phần
Trang 6o COD (Component Oriented Design): Thiết kế hướng cấu phần
o COP (Component Oriented Programming): Lập trình hướng cấu phần
o COM (Component Oriented Management): Quản lý hướng cấu phần
Từ cách nhìn của tiến trình kỹ nghệ, các thành phần có thể được phân làm 5 dạngkhác nhau:
Thành phần đặc tả: Biểu diễn các đặc tả của một đơn vị phần mềm, mô tảmột tập hành vi của các đối tượng thành phần
Thành phần giao diện: Định nghĩa một tập hành vi có thể được yêu cầu bởimột đối tượng thành phần
Thành phần cài đặt: Có thể vận hành độc lập (điều này không có nghĩa nóđộc lập với các thành phần khác Nó có thể có nhiều phụ thuộc với thànhphần khác)
Thành phần đã cài đặt: Thành phần mã thực thi
Thành phần đối tượng: Lớp, gói,
CBSE hiện tại là một mô hình cho việc phát triển các hệ thống phần mềm lớn như:
Các ứng dụng phân tán cho doanh nghiệp
Các ứng dụng Web – N Tier
Các dịch vụ Web (Web Services)
Có thể dùng các công nghệ của Java như:
EJB: Enterprise Java Bean,
COM: Component Object Model,
DCOM: Distributed Component Object Model ,
Trang 72 Nguyên tắc của hướng cấu phần
Từ “ cấu phần” đã được dùng trong ngành công nghiệp máy tính 1 thời gian dài Có 1điều thực tế, khái niệm về cấu phần đã xuất hiện xung quanh chúng ta từ trước khi máytính ra đời Một người xây dựng 1 ngôi nhà sử dụng các cấu phần từ những ngành côngnghiệp khác nhau để tạo nên ngôi nhà Các nhà sản xuất ô tô đã sử dụng nhiều cấu phần
từ các ngành công nghiệp khác để tạo một chiếc xe hơi Trong ngành công nghiệp phầncứng máy tính, các kỹ sư không còn phải thiết kế các phần cứng cơ bản từ đầu cho mỗisản phẩm Chip vi xử lý, chip bộ nhớ, bo mạch, và card mạng là các thứ có sẵn cho việcxây dựng hệ thống máy tính lớn và mạnh mẽ hơn Mặc dù chúng ta có thể có nhiều địnhnghĩa khác nhau về phần mềm hướng cấu phần, nhưng các nguyên tắc về phần mềm cấuphần vẫn như cũ từ các định nghĩa khác nhau [Allen 1997; Garlan 2000; Liskov 2000;Luck 2000; Wang 2000, 2002]
Các nguyên tắc cơ bản trong công nghệ phần mềm hướng cấu phần nói chung và lập trìnhhướng cấu phần nói riêng
Chiến lược cơ bản và hiệu quả để giải quyết bất kỳ vấn đề lớn và phức tạp trong khoa họcmáy tính là "phân chia và xử lý" Một ý tưởng chính trong phát triển phần mềm hướng
Trang 8cấu phần là tạo ra các module phần mềm mà nó tự khép kín và có khả năng độc lập triểnkhai Do đó các nhà phát triển phần mềm khác nhau sẽ có thể làm việc trên các thànhphần độc lập khác nhau mà không cần phải giao tiếp với nhau nhiều, và các thành phầnnày sẽ làm việc liền mạch với nhau Ngoài ra, trong giai đoạn duy trì phần mềm, sẽ có thểthay đổi một số thành phần mà không ảnh hưởng đến tất cả những thành phần khác.Khi chúng ta phân tách một hệ thống, chúng ta phân tách yếu tố của nó thành các thànhphần riêng biệt bằng 1 số cách sau:
- Mỗi thành phần như là 1 mức chi tiết.
- Mỗi thành phần có thể được giải quyết một cách độc lập
- Các triển khai của các thành phần này có thể được tích hợp để đáp ứng các yêu cầu ban đầu của hệ thống
Sự trừu tượng là 1 cách để phân chia sản phẩm bằng cách thay đổi các mức chi tiết đượcxem xét.Các thành phần phần mềm cố gắng che giấu một số chi tiết để cung cấp chỉ cácthông tin cần thiết cho khách hàng thông qua giao diện của họ.Chiến lược trừu tượng hóa
và sau đó phân chia thành các kiểu điển hình trong quá trình phát triển phần mềm.Sựphân chia được sử dụng để phân mảnh phần mềm thành các thành phần mà có thể kết hợpđược với nhau nhằm giải quyết các vấn đề được đặt ra.Sự trừu tượng hỗ trợ đưa ra mộtlựa chọn tốt cho các thành phần Khoa học máy tính đã trải qua trừu tượng hóa khácnhau Thủ tục trừu tượng cho phép chúng ta phân chia một vấn đề thành các đơn vị chứcnăng độc lập Dữ liệu trừu tượng hoặc kiểu dữ liệu gói gọn các đối tượng với một tập hợpcác hoạt động đặc trưng cho các hành vi của các đối tượng Cuốn sách này xem xét đếnloại thứ ba của sự trừu tượng: trừu tượng thành phần, đó là mức độ trừu tượng cao nhấttrong điều kiện về phần mở rộng của nó và các thông tin hữu ích đóng gói
Phần mềm tồn tại dưới nhiều hình thức khác nhau trong suốt quá trình kỹ phát triển phầnmềm.Tại các mô hình và các giai đoạn phân tích, các đặc tả yêu cầu được xem như là mộthình thức của phần mềm.Trong giai đoạn thiết kế, thiết kế kiến trúc và thiết kế chi tiết cáctài liệu là một phần của phần mềm Mã nguồn trong giai đoạn thực hiện và thực thi triểnkhai code đến các của khách hàng là phần mềm chắc chắn Do đó, phần mềm có thể dùnglại, bao gồm việc tái sử dụng bất kỳ sản phẩm phần mềm trong các định dạng khác nhau Như chúng ta đã thảo luận nhanh ở Chương 1, có năm hình thức của các thành phần phầnmềm, cụ thể là: thành phần đặc tả, thành phần giao diện, thành phần thực hiện, các thànhphần được cài đặt, và các thành phần đối tượng Mỗi hình thức của các thành phần phầnmềm có thể được tái sử dụng trong các giai đoạn khác nhau của một vòng đời phần mềm
Trang 9• Nguyên tắc 3: Phát triển phần mềm hướng cấu phần tăng độ tin cậy của phần mềm
Với những tiến bộ nhanh chóng của phần cứng máy tính, độ tin cậy cao, mạnh mẽ, và rẻhơn phần cứng có sẵn cho các ứng dụng khác nhau Độ tin cậy của một hệ thống tínhtoán chủ yếu dựa vào sự tin cậy của bộ phận một phần mềm Phát triển phần mềm hướngcấu phần và lập trình hướng thành phần cung cấp một cách có hệ thống để đạt được các
hệ thống đáng tin cậy Do sự trừu tượng của các thành phần và hệ thống tích hợp của cácthành phần, nó dễ dàng hơn nhiều để xác nhận yêu cầu quan trọng và xác minh an toàncho các hệ thống hướng thành phần Mặt khác, thành phần tái sử dụng thường đã đượckiểm nghiệm qua quá trình xác nhận và sử dụng thực tế trong một thời gian dài, do đó,chất lượng của nó có thể yên tâm
năng suất phần mềm
Phần mềm hướng cấu phần được xây dựng bằng cách lắp ráp và tái sử dụng các thànhphần hiện có hơn là phát triển từ đầu mỗi lần - tái sử dụng thay vì làm mới Quá trình nàynhanh hơn nhiều so với việc phát triển một ứng dụng từ đầu trong hầu hết các trườnghợp
chuẩn phần mềm
Như Clemens Czyperski mô tả trong [Clemens 2003], các thị phần để phát triển, thànhphần tiêu chuẩn phải được đặt đúng chỗ Tiêu chuẩn có thể được sử dụng để tạo ra mộtthỏa thuận về chi tiết kỹ thuật giao diện vững chắc, tạo điều kiện cho hiệu quả của thànhphần, và đảm bảo COP là một mô hình lập trình mới, trong đó "plug-and-play" trở thànhhiện thực trong phát triển phần mềm cũng như các thành phần phần cứng
3 Tại sao COP quan trọng
Hàng trăm năm qua, các ngành công nghiệp đã áp dụng các tiêu chuẩn thành phần
và các công cụ lắp ráp hợp lý để tăng tốc độ phát triển của các sản phẩm rất phức tạpĐây là một cuộc cách mạng Công nghiệp, nó đã làm thay đổi đáng kể về bản chất của sảnxuất, nơi mà máy móc bằng hơi nước và các nguồn năng lượng khác thay thế cho sứcngười hoặc động vật, nơi những công nhân chưa có tay nghề được thay thế bởi các côngnhân lành nghề, và các sản phẩm lớn được làm và lắp ráp bằng máy thay thế cho các sảnphẩm làm bằng tay
Trang 10Tuy nhiên riêng trong ngành công nghiệp phần mềm, các sản phẩm chủ yếu vẫn làcác sản phẩm được làm thủ công Năng suất làm việc thấp, chất lượng công việc khôngđảm bảo và các dự án chủ yếu bị dừng lại Hiện tượng này được gọi là “Cuộc khủnghoảng phần mềm”.
Cũng như phát triển công nghệ phần cứng, chi phí phát triển một ứng dụng chomáy tính chủ yếu là ở phần mềm Vấn đề quan trọng của ngành công nghệ phần mềm làlàm thế nào để tạo ra những phần mềm chất lượng hiệu quả
Xây dựng thành các thành phần được các kỹ sư phần mềm nhìn nhận như là mộtcông nghệ quan trọng để giải quyết “Cuộc khủng hoảng phần mềm”
Cuộc cách mạng công nghiệp của phần mềm sẽ xuất hiện dựa trên công nghệ phầnmềm hướng thành phần Có một số lý do chính để giải thích tại sao COP ( ComponentOriented Programming) lại quan trọng COP cung cấp một mức độ trừu tượng cao hơn.Hiện nay có một số lượng lớn các thành phần, các thư viện hỗ trợ được tái sử dụng trongviệc phát triển ứng dụng cho các lĩnh vực khác nhau Và 3 mục tiêu chính của COP là :Giải quyết phức tạp, quản lý thay đổi, tái sử dụng
Giải quyết phức tạp
Chúng ta đang sống trong một thế giới phức tạp ở thời đại bùng nổ thông tin Theomột nhóm nghiên cứu ở trường đại học Berkeley năm 2000, “Thế giới sản xuất từ mộtđến hai exabytes ( 1 exabytes = 1018bytes) thông tin mỗi năm, đó là khoảng 250 MBcho mỗi người đàn ông, mỗi người phụ nữ và mỗi đứa trẻ trên trái đất Như vậy trongkhoa học máy tính, kích thước và độ phức tạm đã được tăng lên đáng kể
Trang 11Năm AT&T BSD MINIX Linux Solaris Win NT
Sự thay đổi kích thước của phần mềm theo thời gian
Bảng trên cho thấy sự so sánh của một số hệ điều hành về kích thước của chúng
Ký tự đầu tiên là tên phiên bản , thứ hai là kích thước của mã nguồn (1KB=1000 bytes,1MB = 1000000 bytes) Sự so sánh trong mỗi cột có ý nghĩa thực sự, trong khi giữa cáccột không cho thấy nhiều ý nghĩa Và thật may mắn, COP cũng cấp một cách hiệu quả để
đối phó với sự phức tạp của phần mềm : phân chia và chinh phục.
Quản lý thay đổi
Trang 12Thay đổi là vốn có trong ngành công nghệ phần mềm Các yêu cầu người dùngthay đổi, thay đổi thông số kỹ thuật, thay đổi nhân sự, thay đổi công nghệ, thay đổi ngânsách và còn nhiều nguyên nhân thay đổi khác.
Một trong những nguyên tắc cơ bản của kỹ thuật phần mềm là để nhấn mạnh tầmquan trọng của quản lý các thay đổi Điều quan trọng cần nhấn mạnh trong kiến trúc vàthiết kế của phần mềm phụ thuộc giữa vào các thành phần và việc quản lý những ngườitrong dự án COP cung cấp một cách hiệu quả để thực hiện theo các nguyên tắc cơ bản kỹthuật phần mềm nhằm đối phó với các thay đổi : lên kế hoạch cho sự thay đổi, thiết kếcho sự thay đổi và xây dựng các thay đổi Phần mềm sẽ dễ dàng thích ứng với những yêucầu mới và các thay đổi mới Các kỹ sư phần mềm đã đi đến thống nhất rằng cách tốtnhất để đối phó với các thay đổi liên tục là xây dựng hệ thống ra các thành phần để có thểtái sử dụng phù hợp với một tiêu chuẩn và kiến trúc plug-in
Tái sử dụng
Một phần mềm phải cho phép tái sử dụng thiết kế và thực hiện một việc gì đó vàphải được sử dụng lại trong những hoàn cảnh khác nhau Điều này sẽ làm tăng năng suấtlàm việc, cải thiện chất lượng phần mềm vv…
Có nhiều cấp độ khác nhau trong việc tái sử dụng phần mềm
Ví dụ :
+ Sao chép mã nguồn – Đây là cấp thấp nhất của việc tái sử dụng
Xây dựng lớp thư viện các hàm, thủ tục là hình thức tốt hơn về việc tái sử dụng hơn sovới việc sao chép mã nguồn nhưng không phổ biến
Các lớp thư viện này tốt hơn về việc tái sử dụng và họ đang cố gắng phổ biến nó.Tuy nhiên, vấn đề đặt ra là nó đòi hỏi sự hiểu biết trước khi các lớp có thể tái sử dụng.Hơn nữa , nó chỉ hỗ trợ tái sử dụng hộp trắng Và như vậy khách hàng sẽ bị ảnh hưởngnếu cấu trúc bên trong các lớp thư viện này thay đổi
Ví dụ, trong một ngôn ngữ hướng đối tượng (OOP) như C++ hay Java, các lớp thưviện được kết hợp thực hiện với các lớp cơ sở Những thay đổi bất kỳ trong các lớp cơ sở
sẽ phá vỡ kết cấu các lớp thư viện Hơn nữa mức độ tái sử dụng trong ngôn ngữ cụ thể,không thể tái sử dụng trên các ngôn ngữ khác
COP hỗ trợ cấp độ cao nhất của việc tái sử dụng phần mềm vì nó cho phép tái sửdụng bao gồm hộp trắng, hộp xám và hộp đen
Tái sử dụng hộp trắng có nghĩa là phần source code của một thành phần phần mềm đượccung cấp, được nghiên cứu, tái sử dụng, điều chỉnh hoặc sửa đổi
Trang 13Tái sử dụng hộp đen được dựa trên nguyên tắc ẩn thông tin Các giao diện cụ thểcho các dịch vụ người dùng có thể yêu cầu từ một thành phần Các thành phần cung cấpviệc thực hiện các giao dịch mà khách hàng thao tác Miễn là các giao diện này khôngthay đổi, các thành phần có thể được thay đổi trong nội bộ chương trình mà không ảnhhưởng tới các người dùng.
Tái sử dụng hộp xám nằm giữa tái sử dụng hộp đen và tái sử dụng hộp trắng Khi kích thước và độ phức tạp của hệ thống phần mềm tăng lên, việc xác định vàquản lý phù hợp các mối liên hệ giữa các thành phần của hệ thống sẽ trở thành trọng tâm.COP cung cấp một giải pháp quản lý để đối phó với sự phức tạp của phần mềm, sự thayđổi liên tục của hệ thống và các vấn đề về tái sử dụng phần mềm COP là mô hình thực tế
để phát triển hệ thống phần mềm lớn Ví dụ như các doanh nghiệp có quy mô lớn và nằmphân tán, các ứng dụng web và các dịch vụ Web
I Tổng quan về hệ thống
1 Phát biểu bài toán
Hiện nay việc quản lý sinh viên hàng ngày của CBCNV tại Trung tâm đào tạo và pháttriển người nhân lực Viettel ICT đang gặp nhiều khó khăn do phải thực hiện thủ công vàkhông có công cụ để quản lý, theo dõi lịch học theo kế hoạch cũng như thời gian làm việcthực tế của từng sinh viên
Căn cứ trên thực tế thực hiện công việc cũng như chỉ đạo của ban lãnh đạo Trung tâmđào tạo và phát triển người nhân lực Viettel ICT, bài toán đặt ra hướng tới tin học hóa cácnghiệp vụ đang thực hiện thủ công để giải quyết những khó khăn trong công tác quản lýtiến độ công việc cá nhân tại Trung tâm đào tạo và phát triển người nhân lực Viettel ICT:
- Tin học hóa quá trình điểm danh
- Tin học hóa quy trình quản lý thông tin sinh viên
- Quản lý việc đăng kí tham gia KH/PV/open day
2 Mục tiêu hệ thống
Hệ thống quản lý sinh viên phải đáp ứng được các mục tiêu sau đây:
- Cho phép người quản lý kiểm soát, theo dõi được quá trình học tập làm việc củasinh viên
Trang 14- Cho phép người quản lý quản lý thông tin cá nhân, trình độ, tình trạng của từngsinh viên
- Cho phép người quản lý có thể cập nhật thông tin các khóa học, hội thảo, cácbuổi open day mới và sinh viên có thể đăng kí tham gia các khóa học, phỏngvấn, open day
3 Phạm vi hệ thống
(a) Danh sách nhóm người sử dụng hệ thống
• Cán bộ quản lý phòng Lab: Thực hiện quản lý sinh viên: điểm danh, quản lý thôngtin sinh viên và báo cáo thống kê
• Sinh viên: Xem các thông tin của cán bộ quản lý đăng lên hệ thống, có thể đăng kícác KH/PV/open day
4 Mô hình tổng thể hệ thống
Hình 1 Sơ đồ tổng thể hệ thống
Trang 15II Xác định yêu cầu hệ thống
1 Đối với học viên
- Xem thời khóa biểu
- Tra cứu
- Đổi mật khẩu
- Đăng nhập
- Đăng ký khóa học/openday/phỏng vấn
2 Đối với quản lý
- Quản lý thành viên
- Cấp lại mật khẩu
- Quản lý điểm danh
- Quản lý sinh viên
Trang 16III Phân tích thiết kế hệ thống
Trang 18- Đăng ký khóa học/openday/phỏng vấn
- Đối với quản lý
- Quản lý thành viên
- Cấp lại mật khẩu
- Quản lý điểm danh
- Quản lý sinh viên
3 Mối quan hệ giữa usecase với actor
Trang 194 Mô tả chi tiết các use case
(a) Quản lý khóa học
a.1 Mô tả Usecase
Mô tả tóm tắt
Tên ca sử dụng Quản lý khóa họcMục đích Ca sử dụng này cho phép quản trị thêm mới, thayđổi cũng như xóa khóa họcTác nhân Quản lý
Nếu quản lý chọn [Thêm khóa học], luồng sự
kiện con Thêm khóa học được thực hiện
Nếu quản lý chọn [Sửa khóa học], luồng sự
kiện con Sửa khóa học được thực hiện
Nếu quản lý chọn [Xóa khóa học], luồng sự
kiện con Xóa khóa học được thực hiện
Thêm khóa học
Hệ thống yêu cầu quản lý chọn mã môn nhậptên khóa học, thời gian bắt đầu, thời gian kếtthúc
Quản lý chọn [Lưu lại], luồng sự kiện lưu đượcthực hiện và những thông tin về khóa học đượclưu trong cơ sở dữ liệu
Sửa khóa học
Hệ thống yêu cầu quản lý chọn khóa học cầnsửa đổi
Quản trị chọn [Sửa khóa học]
Hệ thống hiển thị thông tin của khóa học
Quản trị sửa đổi những thông tin cần thiết vàxác nhận việc sửa đổi bằng việc click [Lưu lại]
Hệ thống cập nhật lại các thay đổi vào cơ sở
Trang 20 Hệ thống loại bỏ khóa học khỏi cơ sở dữ liệu
và cập nhật lại cơ sở dữ liệu
Luồng sự kiện phụ
Luồng sự kiện này được thực hiện khi quản trịkhông muốn thêm, sửa, xóa khóa học khỏi hệthống bằng việc chọn [Hủy]
Điều kiện
Tiền điều kiện Quản lý phải đăng nhập thành công vào hệ
thống
Hậu điều kiện
Nếu ca sử dụng này thành công, thông tin vềkhóa học sẽ được thêm vào, sửa đổi, hay xóakhỏi hệ thống Trong các trường hợp khác, hệthống ở trạng thái chưa thay đổi
a.2 Biểu đồ lớp tham gia ca sử dụng
Manager
(from UseCaseForManager) )
W_ManageClasses class_id class_name subject_id shift_id course_id class_timeStart class_timeStop class_timeToRegistry getCourse() getSubject() getShift() getClass() setClass()
C_ManageClasses
getCourse() getSubject()
getShift() getClass() setClass()
Courses id course_id course_name course_timeStart
course_timeStop get() set()
subjects id subject_id subject_name numberofLession get() set()
Classes id class_id class_name subject_id shift_id course_id class_timeStart class_timeStop class_timeToRegister shift dayOfWeek get() set()
Trang 21a.3 Biểu đồ tuần tự
: Manager : W_ManageClasses : C_ManageClasses : Courses : subjects : Classes
get
getCourse
show selectAction
Trang 22: Manager : W_ManageClasses : C_ManageClasses : Courses : subjects : Classes
add new class
add new class check validations
show
- Luồng 2: sửa khóa học
Trang 23: Manager : W_ManageClasses : C_ManageClasses : Courses : subjects : Classes
choose save
edit class
edit class check validations
Trang 24: Manager : W_ManageClasses : C_ManageClasses : Courses : subjects : Classes
Các luồng sự
kiện Luồng sự kiện chính Ca sử dụng bắt đầu khi quản trị viên muốnthêm, sửa , xóa openday/ phỏng vấn
Hệ thống sẽ hiển thị cho quản trị viên các lựachọn:
- Thêm openday/ phỏng vấn
- Sửa openday/ phỏng vấn
- Xóa openday/ phỏng vấn
Trang 25 Hệ thống sẽ yêu cầu quản lý chọn công việcmuốn thực hiện
Nếu quản lý chọn [Thêm openday/ phỏng vấn],
luồng sự kiện con Thêm openday/ phỏng vấn
được thực hiện
Nếu quản lý chọn [Sửa openday/ phỏng vấn],
luồng sự kiện con Sửa openday/ phỏng vấn
được thực hiện
Nếu quản lý chọn [Xóa openday/ phỏng vấn],
luồng sự kiện con Xóa openday/ phỏng vấn
được thực hiện
Thêm khóa học
Hệ thống yêu cầu quản lý chọn mã môn nhậptên khóa học, thời gian bắt đầu, thời gian kếtthúc cấu hình thời gian đăng ký
Quản lý chọn [Lưu lại], luồng sự kiện lưu đượcthực hiện và những thông tin về khóa học đượclưu trong cơ sở dữ liệu
Sửa khóa học
Hệ thống yêu cầu quản lý chọn khóa học cầnsửa đổi
Quản trị chọn [Sửa khóa học]
Hệ thống hiển thị thông tin của khóa học
Quản trị sửa đổi những thông tin cần thiết vàxác nhận việc sửa đổi bằng việc click [Lưu lại]
Hệ thống cập nhật lại các thay đổi vào cơ sở
Hệ thống loại bỏ khóa học khỏi cơ sở dữ liệu
và cập nhật lại cơ sở dữ liệu
Luồng sự kiện phụ Luồng sự kiện này được thực hiện khi quản trịkhông muốn thêm, sửa, xóa khóa học khỏi hệ
thống bằng việc chọn [Hủy]
Điều kiện
Tiền điều kiện Quản trị phải đăng nhập thành công vào hệthống.
Hậu điều kiện
Nếu ca sử dụng này thành công, thông tin vềkhóa học sẽ được thêm vào, sửa đổi, hay xóakhỏi hệ thống Trong các trường hợp khác, hệthống ở trạng thái chưa thay đổi
Trang 26b.2 Biểu đồ lớp tham gia ca sử dụng
Manager
(from UseCaseForManager) )
W_ManageOPInterview opInterview_id opInterview_name opInterview_timeStart opInterview_timeToRegister opInterview_detail opInterview_note affiliate_id opInterview_type getAffiliate() getCourse() getopInterview() setopInterview()
C_ManageOPInterview
getAffiliate() getCourse() getopInterview() setopInterview()
Affiliates id affiliate_id affiliate_name afffiliate_detail affiliate_note get() set()
Courses
id course_id course_name course_timeStart course_timeStop get() set()
(from ManageClasses)
OPInterview id opInterview_id opInterview_name opInterview_timeStart opInterview_timeToRegister opInterview_detail opInterview_note affiliate_id opInterview_type
Trang 28: Manager : W_ManageOPInterview C_ManageOPInterview C_ManageOPInterview
get
getAffiliate
getCourse getOPInterview
choose affiliate, course
- Luồng 2: Sửa
Trang 29: Manager : W_ManageOPInterview C_ManageOPInterview C_ManageOPInterview : : : Affiliates : Courses : OPInterview
- Luồng 3: Xóa
Trang 30: Manager : W_ManageOPInterview C_ManageOPInterview C_ManageOPInterview
Đăng ký khóa học
Có khóa học/PV/ open day mới
ký khóa học/PV/open day vừa mới cập nhật và thông báo thànhcông cho người dùng
Trường hợp thất bại: hệ thống thông báo lỗi cho ngườidùng
Trang 31- Hủy đăng ký khóa học
Hệ thống sẽ yêu cầu quản lý chọn công việcmuốn thực hiện
Nếu quản lý chọn [Đăng ký khóa học], luồng
sự kiện con Đăng ký khóa học được thực hiện
Nếu quản lý chọn [Hủy đăng ký], luồng sự
kiện con Hủy đăng ký được thực hiện
Đăng ký khóa học
Hệ thống hiển thị danh sách khóa học có thểđăng ký và yêu cầu học viên chọn
Học viên chọn khóa học muốn đăng ký
• Học viên chọn [Lưu đăng ký] thông tin đăng
ký sẽ được lưu vào cơ sở dữ liệu
Hủy đăng ký
Hệ thống yêu cầu học viên chọn thông tin đăng
ký cần hủy bỏ
•Học viên chọn [Hủy đăng ký] thông tin đăng
ký đó sẽ được xóa khỏi cơ sở dữ liệu
Luồng sự kiện phụ Luồng sự kiện này được thực hiện khi học viênkhông muốn đăng ký hoặc hủy khóa học khỏi
hệ thống bằng việc chọn [Hủy]
Điều kiện
Tiền điều kiện Học viên phải đăng nhập thành công vào hệthống
Hậu điều kiện
Nếu ca sử dụng này thành công thông tin đăng
ký sẽ được thêm hoặc xóa khỏi cơ sở dữ liệu.Trong các trường hợp khác, hệ thống ở trạngthái chưa thay đổi
Trang 32c.2 Biểu đồ lớp tham gia ca sử dụng
Trainee
(from UseCaseForTrai nee) ) W_RegisterClass
trainee_id class_id getClasses() getTrainees() set()
C_RegisterClass getClasses() getTrainees() set()
Classes
id class_id class_name subject_id shift_id course_id class_timeStart class_timeStop class_timeToRegister shift dayOfWeek get() set()
(from ManageClasses)
Trainees
trainee_id student_id traninee_vdi profile_id class_id trainee_status get() set() check()
(from ManageTrai nee)
TimeTable trainee_id class_id get() set()
Trang 33Tên ca sử dụng Đăng ký openday/phỏng vấn
Mục đích Ca sử dụng này cho phép học viên đăng ký thamgia các buổi openday/phỏng vấn mà mình
mong muốnTác nhân Học viên
- Hủy đăng openday/phỏng vấn
Hệ thống sẽ yêu cầu quản lý chọn công việcmuốn thực hiện
Nếu quản lý chọn [Đăng ký openday/phỏng
vấn], luồng sự kiện con Đăng ký
Trang 34openday/phỏng vấn được thực hiện
Nếu quản lý chọn [Hủy đăng ký], luồng sự
kiện con Hủy đăng ký được thực hiện
Đăng ký openday/phỏng vấn
Hệ thống hiển thị danh sách openday/phỏngvấn có thể đăng ký và yêu cầu học viên chọn
Học viên chọn openday/phỏng vấn muốn đăngký
• Học viên chọn [Lưu đăng ký] thông tin đăng
ký sẽ được lưu vào cơ sở dữ liệu
Hủy đăng ký
Hệ thống yêu cầu học viên chọn thông tin đăng
ký cần hủy
•Học viên chọn [Hủy đăng ký] thông tin đăng
ký đó sẽ được xóa khỏi cơ sở dữ liệu
Luồng sự kiện phụ
Luồng sự kiện này được thực hiện khi học viênkhông muốn đăng ký hoặc hủy openday/phỏngvấn khỏi hệ thống bằng việc chọn [Hủy]
Điều kiện
Tiền điều kiện Học viên phải đăng nhập thành công vào hệ
thống
Hậu điều kiện
Nếu ca sử dụng này thành công thông tin đăng
ký sẽ được thêm hoặc xóa khỏi cơ sở dữ liệu.Trong các trường hợp khác, hệ thống ở trạngthái chưa thay đổi
Trang 35d.2 Biểu đồ lớp tham gia ca sử dụng
Trainee
(from UseCaseForTrainee) )
W_RegisterOPInterview
trainee_Id opInterview_id getTrainee() getopInterview() set()
C_RegisterOPInterview
getTrainee() getopInterview() set()
OPInterview
id opInterview_id opInterview_name opInterview_timeStart opInterview_timeToRegister opInterview_detail opInterview_note affiliate_id opInterview_type
(from ManageOPInterview)
Trainees
trainee_id student_id traninee_vdi profile_id class_id trainee_status get() set() check()
(from ManageT rainee)
ListTraineeRegisterOPInterview trainee_id opInterview_Id
set
set
Trang 36users id users_name users_pass users_idPerrmission get() set()
Trang 37f.1 Mô tả Usecase
Đăng ký khóa học
Học viên có nhu cầu muốn cấp lại mật khẩu
mới cập nhật và thông báo thành công cho người dùng
Trường hợp thất bại: hệ thống thông báo lỗi cho ngườidùng
f.2 Biểu đồ lớp tham gia ca sử dụng
Manager
(from UseCaseForManager) )
W_ResetPassword username reset()
users
id users_name users_pass users_idPerrmission get() set()
(from Login)
C_ResetPassword
reset()
Trang 38home page
Trang 39id users_name users_pass users_idPerrmission get() set()
(from Login)
C_ResetPassword
reset()
Trang 40Quản lý thànhviên
viên vừa mới cập nhật và thông báo thành công cho người dùng
Trường hợp thất bại: hệ thống thông báo lỗi cho người