UML[7] là ngụn ngữ mụ hỡnh hƣớng đối tƣợng để đặc tả, vẽ ra thành hỡnh vẽ, nhằm xõy dựng và làm tài liệu đầy đủ về cơ chế của một hệ thống. Cú thể ỏp dụng UML để mụ hỡnh hoỏ hệ thống phần mềm hay nghiệp vụ. Nú là chọn lựa tốt nhất để xõy dựng hệ thống hƣớng đối tƣợng và dựa trờn cỏc thành phần, nhất là cho cỏc hệ thống lớn và phức tạp.
UML ấn định một tập hợp cỏc kớ hiệu quy ƣớc và sơ đồ để mụ hỡnh hoỏ hệ thống theo phƣơng phỏp hƣớng đối tƣợng. UML cú thể mụ hỡnh hoỏ nhiều kiểu hệ thống khỏc nhau, từ phần mềm đến tiến trỡnh tổ chức.
UML cung cấp 9 kiểu sơ đồ để ta mụ hỡnh hoỏ hệ thống:
- Sơ đồ ca sử dụng (Use Case Diagram) -- để mụ hỡnh hoỏ quy trỡnh nghiệp vụ (business processes)
- Sơ đồ tuần tự (Sequence diagrams) -- để mụ hỡnh hoỏ sự kiện theo thời gian - Sơ đồ hợp tỏc (Collaboration diagrams) -- để mụ hỡnh hoỏ tƣơng tỏc bờn trong hệ thống
- Sơ đồ trạng thỏi (State diagrams) -- để mụ hỡnh hoỏ hành vi của cỏc đố tƣợng của hệ thống.
- Sơ đồ hoạt động (Activity diagrams) -- để mụ hỡnh hoỏ hành vi của cỏc ca sử dụng, đối tƣợng, và operations.
- Sơ đồ lớp (Class diagrams) -- để mụ hỡnh hoỏ cấu trỳc tĩnh của cỏc lớp - Sơ đồ đối tƣợng (Object diagrams) -- để mụ hỡnh hoỏ cấu trỳc tĩnh của cỏc đối tƣợng
- Sơ đồ thành phần (Component diagrams) -- để mụ hỡnh hoỏ cỏc thành phần - Sơ đồ triển khai (Deployment diagrams) -- để mụ hỡnh hoỏ triển khai productive của hệ thống.
- Tuy nhiờn cần lƣu ý rằng UML chỉ là hệ thống kớ hiệu chứ khụng phải là một phƣơng phỏp luận. Nú ấn định cỏc cụng cụ trực quan và ngữ nghĩa để mụ hỡnh hoỏ hệ thống, chứ khụng ấn định một phƣơng phỏp ỏp dụng cỏc kớ hiệu đú. Bởi vậy, một nhà kiến trỳc hay thiết kế dựng sơ đồ nào là tuỳ theo bản chất của hệ thống và mức trừu tƣợng hoỏ.
Cỏc nột nổi bật của UML[7][8] là:
- Xõy dựng mụ hỡnh của hệ thống bằng cỏch phõn ró thành cỏc hệ thống con, làm cho toàn bộ hệ thống dễ hiểu hơn.
- Khi hệ thống càng phức tạp, càng khú nắm bắt, do đú phải cú kĩ thuật mụ hỡnh hoỏ tốt để cú thể quản trị đƣợc nú.
- Một mụ hỡnh tốt với ngữ nghĩa rừ ràng là rất cần thiết để cỏc thành viờn của dự ỏn giao tiếp với nhau và để đảm bảo tớnh đỳng đắn của kiến trỳc.
III.1 Cỏc sơ đồ ca sử dụng III.1.1 Sơ đồ ca sử dụng a. Tỏc nhõn (Actor) [1][3][7][8] Hỡnh 5: Sơ đồ ca sử dụng của hệ thống b. Sơ đồ ca sử dụng mức 1 KetThuc NSD (from Actors) NSD (from Actors) ChonBC TỡmKiem NSD (from Actors) Inan HienThiKQ <<include>> <<include>> XuatBC <<extend>> QuanLyNSD QuanTri (from Actors) NSD (from Actors) (from Actors) CoreBanking (from Actors) TTxuly Timkiem (from Actors) QuanTri (from Actors)
Hỡnh 6: Sơ đồ ca sử dụng mức 1
c. Sơ đồ ca sử dụng mức 2
Trung tõm xử lý (TTXuly)
Hỡnh 7: Sơ đồ ca sử dụng mức 2 của tỏc nhõn TTXuly
CoreBanking
Hỡnh 8: Sơ đồ ca sử dụng mức 2 của tỏc nhõn CoreBanking
TTXuLy (from Actors) LuutruDL RestoreDL DongboDulieu TaothumucDL CoreBanking (from Actors) <<extend>> <<extend>> KhaiBaoBC Nhaptay Tudong LuutruDL DongboDulieu <<extend>> <<extend>> Tonghopdulieu KetThuc ThuthapThongtin SinhBC <<extend>> TTXuly (from Actors)
d. Mụ tả ca sử dụng Hỡnh 9: Mụ tả ca sử dụng rl_KyDL rl_XoaDL rl_Luutru rl_LoaiBC DongboDL
(from Use Case View)
<<realize>> <<realize>> <<realize>> <<realize>> <<realize>> rl_KhaibaokyD L TonghopD L
(from Use Case View) rl_Tongho p <<realize> > <<realize> > KhaibaoBC
(from Use Case View)
rl_KhaibaoBC <<realize>>
Tong hopDL
(from Use Case View)
rl_TonghopDL <<realize>>
DongboDL
(from Use Case View)
rl_DongboDL <<realize>>
XuatDL
(from Use Case View)
rl_XuatDL <<realize>>
rl_HIenThitWeb
XuatBC
(from Use Case View)
<<realize>>
rl_FileDl <<realize>>
rl_DoThi <<realize>>
Ca sử dụng rl_KhaibaoBC
Diễn tả (brief description): Khai bỏo bỏo cỏo mới trong hệ thống.
Cỏc tỏc nhõn: NSD
Luồng sự kiện
NSD Hiển thị Hệ thống
1.Nhập loại bỏo cỏo, số lƣợng cột, số lƣợng dũng, định kỳ, định dạng bỏo cỏo
2. Kiểm tra đó cú bỏo cỏo mới này chƣa. Chƣa cú sẽ thờm vào hệ thống và chi tiết bỏo cỏo
3. Hiển thị bỏo cỏo
Bảng 6: Mụ tả quỏ trỡnh khai bỏo bỏo cỏo mới
Cỏc ngoại lệ: 1. Loại bỏo cỏo chƣa tồn tại. Thụng bỏo và yờu cầu khai bỏo vào chƣơng trỡnh.
2. Định kỳ bỏo cỏo đó cú trong cỏc định kỳ cũ chƣa. Thụng bỏo và khai bỏo lại nếu chƣa tồn tại
Cỏc mối quan hệ:
Điều kiện đầu: Loại bỏo cỏo, định kỳ bỏo cỏo đó đƣợc khai bỏo trong bảng bỏo cỏo.
b. Ca sử dụng rl_DongboDL
Diễn tả: Thực hiện đồng bộ dữ liệu thụ từ CoreBanking theo yờu cầu của TTXuly.
Tỏc nhõn: CoreBanking, TTxuly
CoreBanking Ttxuly Hệ thống
1.Nhận dạng dữ liệu cần trớch rỳt và tự động thực hiện đẩy sang Ttxuly
2. Dựng kết nối ODBC, DTS của SQL server thực hiện select và Insert dữ liệu.
3. Nhận dữ liệu từ CoreBanking và lƣu dữ liệu dƣới dạng Table
Bảng 7: Mụ tả quỏ trỡnh đồng bộ dữ liệu
Ngoại lệ: 1. Nguồn dữ liệu cần lấy trờn CoreBanking. Nguồn nào mới chƣa cú cần thụng bỏo
2. Cỏc bảng chứa dữ liệu đó đƣợc tạo sẵn trƣớc đú. Thụng bỏo và yờu cầu sửa lại, thờm mới nếu thiếu hoặc sai sút thụng tin.
Cỏc mối quan hệ : Điều kiện đầu:
Điều kiện cuối : Trớch rỳt dữ liệu từ Corebanking vào cỏc kho dữ liệu chung của hệ thống,
c. Ca sử dụng rl_TonghopDL
Diễn tả: Tổng hợp dữ liệu bỏo cỏo từ cỏc nguồn dữ liệu thụ trờn CoreBanking đẩy về.
Tỏc nhõn: TTxuly
Luồng sự kiện
Ttxuly System
1. Xỏc định hệ thống cỏc bỏo cỏo cần xuất dữ liệu theo định kỳ
hiện tổng hợp DL cho bỏo cỏo
Bảng 8: Mụ tả quỏ trỡnh tổng hợp dữ liệu
Ngoại lệ: 1. Bỏo cỏo khụng cú trong hệ thống.
Cỏc mối quan hệ:
Điều kiện đầu: Loại bỏo cỏo, định kỳ bỏo cỏo đó đƣợc khai bỏo trong bảng bỏo cỏo.
Điều kiện cuối: tổng hợp và lƣu trữ dữ liệu theo hệ thống bỏo cỏo yờu cầu d. Ca sử dụng rl_XuatBC
Diễn tả: Xuất nội dung bỏo cỏo theo cỏc hỡnh thức: Hiển thị Web, xuất dạng đồ thị, xuất dạng file.
Tỏc nhõn: NSD
Luồng sự kiện
NSD System
1.Lựa chọn bỏo cỏo, hỡnh thức xuất dữ liệu bỏo cỏo
2. Kiểm tra bỏo cỏo trong hệ thống cú dữ liệu hay khụng
3. Nếu cú hiển thị hoặc thực hiện theo yờu cầu của NSD
Bảng 9: Mụ tả quỏ trỡnh xuất bỏo cỏo
Ngoại lệ: 1. Khụng cú dữ liệu bỏo cỏo do: Bỏo cỏo đú khụng cú dữ liệu tại định kỳ chọn, hoặc do dữ liệu khụng chiết xuất thành cụng trờn Host, hoặc đó cú dữ liệu nhƣng Ttxuly khụng thực hiện đồng bộ bỏo cỏo. Thụng bỏo, thực hiện kiểm tra lại cỏc vấn đề liờn quan đến dữ liệu của bỏo cỏo.
Mối quan hệ: - Điều kiện đầu:
- Điều kiện cuối: Xỏc định loại bỏo cỏo, định kỳ bỏo cỏo cần xuất. Xỏc định đƣợc bỏo cỏo nào khụng cú dữ liệu hoặc lỗi.
e. Ca sử dụng QuanlyNSD
Tỏc nhõn: TTxuly (Admin)
NSD Hệ thống
1.
- Nhập thụng tin ngƣời sử dụng - Phõn quyền: Lựa chọn một trong 2 quyền:
- Quyền Admin: Quản lý menu Hệ thống, khai bỏo NSD, khai bỏo lớp bỏo cỏo mới , cỏc chỉ tiờu bỏo cỏo... - Quyền xem, in bỏo cỏo: Cú quyền quản lý, khai thỏc cỏc bỏo cỏo.
1’.Cập nhật thụng tin, ngày khởi tạo user, mó chi nhỏnh, phõn quyền, mó user trờn SIBS.
Phõn cấp một trong cỏc quyền sau:
Ban Tổng giỏm đốc
Ban Lónh đạo cỏc ban HSC
Ban Giỏm đốc chi nhỏnh
Trƣởng phũng
Phú phũng
Chuyờn viờn
2.Đăng nhập hệ thống 2.Kiểm tra cú cũn active khụng. Nếu cũn,
- Kiểm tra nếu chƣa login lần nào và chƣa quỏ 12 thỏng, yờu cầu đổi mật khẩu, nếu đó quỏ 12 thỏng sẽ bị khúa user.
- Kiểm tra đó đến ngày đổi mật khẩu chƣa(6 thỏng) dựa vào ngày đổi mật khẩu lần cuối.Đó đến ngày thỡ thụng bỏo, đƣa ra màn hỡnh đổi mật khẩu
Khi vào chƣơng trỡnh, cập nhật ngày login hệ thống lần cuối
Bảng 10: Mụ tả quỏ trỡnh quản lý người sử dụng
Nhap thong tin dang nhap
Kiem tra user con active khong
Kiem tra user da den han doi mat khau chua
Doi va cap nhat ngay doi mat khau
Login thanh cong
Cap nhat ngay login chuong trinh Den han doi mat khau Kiem tra ngay login lan cuoi cua user
Khoa user Qua thoi gian
12 thang
Thong bao user bi khoa hoac khong ton tai
III.3.3 Sơ đồ hoạt động đối với một số chức năng
III.3.3.1 Phõn tớch ca sử dụng
Hỡnh 11: Phõn tớch ca sử dụng
RL _ HienthiWeb (from Use-Case Realizations)
rl_TonghopBC
(from Use-Case Realizations) TongHopDL
(from Use Case View) <<realize>>
<<realize>> rl_KhaibaoBC
Khai baoBC (from Use Case View)
<<realize>>
rl_TonghopDL (from Use- Case Realizations)
TonghopDL (from Use Case View)
<<realize>>
rl_DongboDL (from Use- Case Realizations)
DongboDL
(from Use Case View) <<realize>>
rl_KyDL
(from Use-Case Realizations)
rl_XoaDL
(from Use-Case Realizations) rl_LoaiBC
(from Use-Case Realizations)
DongboDL (from Use Case View) <<realize>> <<realize>> <<realize>> <<realize>> rl_XuatDL RL_Xuatfile (from Use-Case Realizations)
XuatDL
(from Use Case View) <<realize>>
rl_HienthiWeb (from Use-Case Realizations)
rl_Xuatfile (from Use-Case Realizations)
XuatBC
(from Use Case View)
<<realize>> <<realize>> rl_Dothii <<realize>> <<realize>> rl_Luutru (from Use-Case Realizations)
from Use-Case Realizations
(from Use- Case Realizations)
RL_Dothi
(from Use-Case Realizations) (from Use-
Case Realizations)
rl_KhaiBaokyDL
: c_NhapBC : e_DanhsachBC : frmKhaibaoBC : NSD : e_Baocao : e_ChiTietBC 3. issue( ) 2. CheckExist( ) 4. AddMaster( ) 5. AddDetail( ) 1. issue( ) a. Rl_KhaibaoBC
Hỡnh 12: Sơ đồ hoạt động của RL_KhaibaoBC
b. Rl_TonghopDL
Hỡnh 13: Sơ đồ hoạt động của Rl_TonghopDL
: TTxuly : c_TonghopDL : e_ChiTietDL : e_GiaoDich : e_TonKho : frmTonghop : e_BangDL 5. AddDetail( ) 4. AddMaster( ) 6. ChangeExpOfDay(array) 2. CheckExist( ) 3. SetBlankStore( ) 1. XDngayDL(NgayDL)
c. Rl_DongboDL
Hỡnh 14: Sơ đồ hoạt động của Rl_DongboDL
d.Rl_HienthiBC
Hỡnh 15: Sơ đồ hoạt động của Rl_HienthiBC
: NSD : c_HienthiDulieu : e_KyBC : e_ : e_Baocao : e_ChiTietBaocao : frmDanhsachBC 2. CheckState( ) 6. CheckKyBC 5. ChangeExpOfDay(array) 4. AddDetail( ) 3. AddMaster( ) 1. export(type:Baocao) : frmDongboDL : e_GiaoDich : e_ChiTietDL : c_DongboDL : TTxuly : e_DanhsachBC : e_DSkyBC 1. Distribute() 3. AddMaster( ) 4. AddDetail( ) 2. CheckExists( ) 5. CheckKyBC( )
e. Rl_XuatBC
Hỡnh 16: Sơ đồ hoạt động của Rl_XuatBC
III.3.3.2 Cỏc sơ đồ tuần tự đối với một số chức năng cơ bản
a. Rl_KhaibaoBC
Hỡnh 17: Sơ đồ tuần tự của Rl_KhaibaoBC
: c_LoaiBC : c_ : e_DSbaocao : e : frmKhaiBaoBC : frm : NSD : : e_Baocao : e_ : e_ChiTietBaocao : e_ issue( ) AddMaster( ) AddDetail( ) CheckExist( ) issue( ) : NSD : frm_ChonBC : e_LuutruDL : e_Kieuxuat : e_ChitietBC : c_XuatBC 1. SelectTransact( ) 2. ExportStore( ) 4. ChangeExportOfDay(array) 3. VerifyExport( ) 5. ChangeOwnStore()
b. Rl_TonghopDL
Hỡnh 18: Sơ đồ tuần tự của Rl_TonghopDL
c. Rl_DongboDL
Hỡnh 19: Sơ đồ tuần tự của Rl_DongboDL
d. Rl_XuatBC
Hỡnh 20: Sơ đồ tuần tự của Rl_XuatBC
: NSD
: NSD : c_Xua : c_Xuat BC : e_DSBaocaoi : e_ : e_DulieuLuutru : e_ : e_Baocao : e_ : eChiTiettBõocao : frmXuat : frmXuat export(type:Kieuxuat) CheckState( ) AddMaster( ) AddDetail( ) ChangeExpOfDay(array) : NSD
: : packageDL : : c_DBoDL : c : e_ : e_ChitietDL : e_BangDL : e_ : e_NgayDL : e : e_LoaiDLi : e_ Import(ThuthapDL) AddMaster( ) AddDetail( ) ChangeImportOfDay(array) CheckExist( ) SetBlankStore( ) : e_DSbaocao : e_ : TTxuly
: : packageDL : : c_ : c_StoreTHBC : e_t : e_ChiTietBaocaot : e_KyBC : e_DulieuluutruBCi : e_ Distribute()
AddMaster( )
AddDetail( )
CheckExists( )
III.3.3. Thiết kế sơ đồ lớp
Cỏc đối tƣợng chớnh [1][3][9]
Hỡnh 21: Sơ đồ cỏc đối tượng lớp chớnh
c_TonghopDL
impStore()
(from Use-Case Realizations)
C_DongboDL
issue() Checkexist()
(from Use-Case Realizations)
c_XuatBC
Distribute() export()
(from Use-Case Realizations)
e_DLBaocao ReportID : string ItemID: Int Branch : string DataDate : Date CurrCode : string Value1 : Decimal Value2: Decimal Value3 : Decimal Value4 Decimal Value5 : Decimal Value5: Decimal Value6 : Decimal Value7 : Decimal Value8: Decimal Value9 : Decimal CharValue1 string CharValue2 : string CharValue3: string AddMaster() VerifyImport()
(from Use-Case Realizations)
e_ChiTietBC ReportID : String ItemID : String ItemParent: Int ItemDescription : String Prefix : String Suffix : Bit Caption : String Col : String GL : String SQLStatement : String Note : String AddDetail()
(from Use-Case Realizations)
e_DMmodulBC CategoryCode : Date CategoryName : Int CategoryTableDefine : String PrimaryKey : Int DisplayField : String LinkAddress: string InUse: Int StoreProcedure : String PeriodCombo : String CurrencyCombo : String BranchCombo : string issue() CheckExist() ChangeOwnStore() CheckState() SetBlankStore()
(from Use-Case Realizations)
e_DSbaocao CategoryID : Date ReportID : string ReportName: String CaptionWidth: Int ReportWidth: Int ReportFont: Int ReportHeader: Int ReportFooter: Int CurrencyTitle: String ReportRate: String ChangeImpOfDay()
(from Use-Case Realizations)
c_KhaibaoBC
(from Use-Case Realizations)
issue() ChangeExpOfDay() RoundPosition: String LinkAddress: String FirstColumnCaption: String DisplayEmptyItem: String ReportType: String ReportMasterTitle: String ReportMasterFooter: String 1 1..* 1 1..* 1 1..* 1..* 1 1 1 1 1..* 1 1..* 1..* 1..* 1 1 1 1 1 1
<<Class>>KhaibaoBC Tờn hàm Tham số Đầu ra AccessLevel_DeleteByID AccessLevel_GetAll AccessLevel_GetByID AccessLevel_Insert AccessLevel_Update ReportID: string
Khai bỏo một bỏo cỏo mới vào bảng ReportID.
Xỏc nhận xem Bỏo cỏo này đó tồn tại trong chƣơng trỡnh hay chƣa
Lấy dữ liệu từ bảng danh sỏch lớp bỏo cỏo
Thờm mới lớp bỏo cỏo Sửa đổi lớp bỏo cỏo Xúa lớp bỏo cỏo AdminID_DeleteByCategoryCodeAnd ID AdminID_DeleteByID AdminID_GetAll AdminID_GetByCategoryCodeAndID AdminID_GetByCategoryID AdminID_GetByID AdminID_Insert AdminID_Update Categories_DeleteByID Categories_GetAll Categories_GetByID Categories_GetByUserID Categories_Insert Categories_Update
Lấy dữ liệu từ bảng danh sỏch bỏo cỏo
Thờm mới bỏo cỏo Sửa đổi bỏo cỏo Xúa bỏo cỏo ReportDetails_GetByManualReportID
ReportDetails_GetByReportID
ReportDetails_GetByReportIDAndIte mID
ReportDetails_Update
Lấy dữ liệu từ bảng nội dung cỏc bỏo cỏo
Thờm mới nội dung bỏo cỏo Sửa đổi bỏo cỏo
Xúa bỏo cỏo ReportFieldPosition_DeleteByPkId
ReportFieldPosition_GetByPkId ReportFieldPosition_GetByReportID
Lấy dữ liệu từ bảng nội dung cỏc bỏo cỏo
ReportFieldPosition_GetByReportIDA ndItemPosition
ReportFieldPosition_Insert ReportFieldPosition_Update
Sửa đổi nội dung bỏo cỏo Xúa nội dung bỏo cỏo
ReportID_DeleteByID ReportID_GetAll ReportID_GetByID ReportID_Insert ReportID_Update Lấy dữ liệu từ bảng mó cỏc bỏo cỏo
Thờm mới mó bỏo cỏo Sửa đổi mó bỏo cỏo Xúa mó bỏo cỏo
Bảng 11: Mụ tả lớp khai bỏo bỏo cỏo
<<Class>>DongboDL
Tờn hàm Tham số Đầu ra
Package_BCN Datadate: Date (Ngày dữ liệu)
Thờm cỏc dữ liệu của ngày hệ thống vào bảng dữ liệu thụ. CreateAllReportData ReportID: string Tạo dữ liệu cho cỏc bỏo cỏo
Bảng 12: Mụ tả lớp đồng bộ dữ liệu . <<Class>>TonghopDL Tờn hàm Tham số Đầu ra Issue() void ReportID: Mó bỏo cỏo Kyhan: Kỳ bỏo cỏo
Kiểm tra loại bỏo cỏo CheckExists() Boolean CheckState() Boolean SetBlankStore() void CreateAllReportData CreateDateHistory CreateReportDataTable CreateReportDataTemp CreateSpecialItems
Tạo bảng dữ liệu lƣu trữ dữ liệu đó đƣợc tổng hợp
InputItemsData
InsertDataTempIntoReportData
Thực hiện insert dữ liệu vào bảng tạm và bảng lƣu trữ dữ liệu của cỏc bỏo cỏo
<<Class>>XuatBC
Tờn hàm Tham số Đầu ra
ExportToExcel() ReportID: Mó bỏo cỏo Kyhan: Kỳ bỏo cỏo
File dữ liệu Excel
InputItemsData
InsertDataTempIntoReportData
Thực hiện insert dữ liệu vào bảng tạm và bảng lƣu trữ dữ liệu của cỏc bỏo cỏo
Bảng 14: Mụ tả lớp xuất bỏo cỏo