Phân tích thiết kế hệ thống thông tin 8
Chia sẻ bởi Đinh Văn Đông |
Ngày 29/04/2019 |
92
Chia sẻ tài liệu: Phân tích thiết kế hệ thống thông tin 8 thuộc Bài giảng khác
Nội dung tài liệu:
PHÂN TÍCH & THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
GV. ThS Phạm Nguyễn Cương
THIẾT KẾ HỆ THỐNG
THIẾT KẾ LỚP
THIẾT KẾ USE CASE
THIẾT KẾ DỮ LiỆU
THIẾT KẾ CÀI ĐẶT
THIẾT KẾ THỬ NGHIỆM
Chương 8 THIẾT KẾ LỚP
Các tiên đề trong thiết kế hướng đối tượng
Thiết kế lớp
Tinh chế thuộc tính
Tinh chế method
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 1: tiên đề độc lập
Duy trì tính độc lập của các thành phần thiết kế
Tinh độc lập của các thành phần không cao
Tinh độc lập của các thành phần cao
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 2: tiên đề thông tin
Giảm tối đa thông tin các đối tượng thiết kế
Tách thành nhiều đối tượng đơn giản hơn
Tách thành cấu trúc phân cấp kế thừa
Đối tượng phức tạp
Nhiều đối tượng đơn giản
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 2: tiên đề thông tin
Giảm tối đa thông tin các đối tượng thiết kế - ví dụ:
LậpHoáĐơn()
Hoá Đơn
InHoáĐơn()
Hoá Đơn
Máy In
LậpHoáĐơn()
InHoáĐơn()
Các tiên đề trong thiết kế hướng đối tượng
Các hệ quả
Hệ quả 1: thiết kế độc lập, giảm tối đa thông tin trao đổi (Uncouple Design with Less Information )
Coupling
Dùng để đo mức độ liên quan lẫn nhau giữa các đối tượng hoặc giữa thành phần phần mềm
Biểu diễn thông qua kết hợp nhị phân
Coupling càng mạnh liên hệ giữa các đối tượng càng phức tạp
Đánh giá coupling dựa vào:
Mức độ phức tạp của kết nối
Kết nối tham chiếu đến chính bản thân đối tượng hoặc bên ngoài đối tượng
Các thông điệp nhận và gửi đi
Các tiên đề trong thiết kế hướng đối tượng
Các hệ quả
Hệ quả 1: thiết kế độc lập, giảm tối đa thông tin trao đổi (Uncouple Design with Less Information )
Coupling – ví dụ:
Coupling mạnh
Coupling yếu
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Hai loại coupling: tương tác và kế thừa
Coupling tương tác: chia thành 5 loại
Data coupling: liên kết giữa các thành phần là dữ liệu nguyên tố hoặc tổng hợp
Ví dụ:
integer Operation_A()
{
int x,y;
Class_B cB;
….
y = cB.Operation_B(x);
…
}
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác: chia thành 5 loại
Data coupling - Ví dụ:
GiaoDịch
+
rútTiền(sốTK)
TàiKhoản
+
cậpNhật SốDư (sốTiền)
: Integer
rútTiền (sốTK:String)
{
…..
Tk.cậpNhậtSốDư(this.sốTiềnGiaoDịch);
….
}
Dữ liệu trao đổi
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Stamp coupling: liên kết giữa hai thành phần là một phần của cấu trúc hoặc toàn bộ cấu trúc
Ví dụ:
integer Operation_A()
{
int x,y;
Class_B cB; c: Class_C
….
y = cB.Operation_B(c);
…
}
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Control coupling: một thành phần gởi các yếu tố điều khiển tới một thành phần khác thì hai thành phần này có control coupling.
+ A()
{
int x = 1;
sub(x, dk)
…
}
+ sub(x, dk)
{
}
dk
=1
=2
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Common couping: hai thành phần cùng tham chiếu đến một cấu trúc toàn cục (hoặc biến toàn cục) thì có liên hệ gọi là control coupling.
Content coupling: nếu một thành phần tham khảo trúc tiếp đến nội dung hoặc một nhánh của một thành phần khác thì được gọi là content coupling.
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling kế thừa: là coupling giữa lớp tổng quát và lớp chuyên biệt trong cấu trúc phân cấp:
Liên kết giữa lớp tổng quát và lớp chuyên biệt càng chặt càng tốt:
-> không kế thừa những thuộc tính không liên quan hoặc không cần thiết
Nếu một lớp cuyên biệt “chồng” lên hầu hết các method hoặc không sử dụng nó từ lớp tổng quát coupling kế thừa yếu thay đổi tiếp cận tổng quát hoá và chuyên biệt hoá
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling kế thừa: là coupling giữa lớp tổng quát và lớp chuyên biệt trong cấu trúc phân cấp:
Liên kết giữa lớp tổng quát và lớp chuyên biệt càng chặt càng tốt:
-> không kế thừa những thuộc tính không liên quan hoặc không cần thiết
Nếu một lớp cuyên biệt “chồng” lên hầu hết các method hoặc không sử dụng nó từ lớp tổng quát coupling kế thừa yếu thay đổi tiếp cận tổng quát hoá và chuyên biệt hoá
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 2: đơn mục đích
Mỗi lớp chỉ nên giữ một mục đích trong hệ thống
Hệ quả 3: tạo nhiều lớp đơn giản
Tạo ra một tập lớn các lớp đơn giản thay vì một tập nhỏ các lớp phức tạp
Nhánh mạnh tính bao bọc (encapsulation)
Đơn vị hoá
Tính đa hình (polymorphism)
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 3: tạo nhiều lớp đơn giản
Ví dụ:
KháchHàng
…
HọTên
ĐịaChỉ
….
ĐịaChỉ
NhàCungCấp
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 4: ánh xạ kết quả giữa các giai đoạn phải chặt chẽ
Từ quá trình phân tích đến cài đặt, các chi tiết sẽ được đưa thêm vào nhưng vẫn duy trì về cơ bản giống nhau
Hệ quả 5: chuẩn hoá thành phần
Chuẩn hoá các thành phần để có thể tái sử dụng như là một thư viện cho các hệ thống khác
Chương 8 THIẾT KẾ LỚP
Các tiên đề trong thiết kế hướng đối tượng
Thiết kế lớp
Tinh chế thuộc tính
Tinh chế method
Thiết kế lớp
Tinh chế thuộc tính
Kiểu thuộc tính
Thuộc tính đơn trị
Thuộc tính đa trị: có thể dùng các cấu trúc, list, array, bag để khai báo cài đặt.
Ví dụ: thuộc tính sốĐiệnThoại của lớp NhânViên có thể là đa trị
địaChỉ[3]: String
địaChỉ[1..3]: String
Thiết kế lớp
Tinh chế thuộc tính
Kiểu thuộc tính
Thuộc tính dùng để tham chiếu tới các đối tượng khác hoặc tới một thể hiện kết nối
Hiển thị thuộc tính
: =
+ : toàn cục
# : bảo vệ
- : cục bộ
Ghi chú: phạm vi mặc định của các thuộc tính là cục bộ
Thiết kế lớp
Tinh chế thuộc tính
Ví dụ: hệ thống ATM
Các thuộc tính cài đặt liên kết
Thiết kế lớp
Tinh chế method: Các method để cài đặt một lớp có thể là:
Constructor: methode tạo thể hiện (đối tượng) của lớp
Destructor: methode huỷ thể hiện của lớp
Conversion: method chuyển đổi một đơn vị đo lường này sang một đơn vị đo lường khác
Copy: method sao chép nội dung của một thể hiện sang một thể hiện khác
Attribute set: method gán giá trị cho một hoặc nhiều thuộc tính
Attribute get: method trả về giá trị của một hoặc nhiều thuộc tính
I/O method: method cung cấp tới hoặc nhần dữ liệu từ một thiết bị
Domain specific: method xác định tới các ứng dụng của đối tượng
Thiết kế lớp
Thiết kế method
Hiển thị method
<(danh sách tham số)> :
Các method đa số là các method có phạm vi toàn cục
Ví dụ:
+get_Tên(): String
+get_SốTàiKhoản(vtàiKhoản : TàiKhoản): String
Thiết kế lớp
Thiết kế method
Thiết kế nội dung method
Các method được xác định trong giai đoạn phân tích
Thiết kế bằng việc phân tích sơ đồ use case
Các method được thiết kế
Các method vừa phát hiện
Thiết kế lớp
Thiết kế method
Ví dụ: Thiết kế method hệ thống ATM
KháchHàng:: kiểmTraMậtKhẩu()
TàiKhoản::rútTiển()
TàiKhoản::gửiTiền()
TàiKhoản::xemThôngTin()
MáyATM::khởiĐộngMáy()
MáyATM::đóngMáy()
Thiết kế lớp
Thiết kế method
Ví dụ: Thiết kế method hệ thống ATM
KháchHàng::+ kiểmTraMậtKhẩu(sốThẻ:String, vPIN:String): vkháchHàng: KháchHàng
TàiKhoản::+ rútTiền(sồTiền: foat )
TàiKhoản::+ gửiTiền(sốTiền:float): mãTrảVề:String
MáyATM::+ khởiĐộngMáy(sốTiềnKhởiTạo:float )
MáyATM::+ đóngMáy()
Thiết kế lớp
Thiết kế method
KháchHàng::+ kiểmTraMậtKhẩu(sốThẻ:String, vPIN:String): vkháchHàng: KháchHàng
Method mới được phát hiện
Thiết kế lớp
Thiết kế method
TàiKhoản::+ rútTiền(sồTiền: foat )
Các method mới được phát hiện
Thiết kế lớp
Thiết kế method
MáyATM::+ khởiĐộngMáy(sốTiềnKhởiTạo:float )
Thiết kế lớp
Thiết kế method
MáyATM::+ đóngMáy()
Thiết kế lớp
Thiết kế method
Tiếp tục tính chế cho các method mới phát hiện:
KháchHàng:: #lấy_TàiKhoản (sốThẻ, sốPIN)
TàiKhoản:: #cậpNhậtTàiKhoản(sốTK, sốDư)
TàiKhoản:: #tạoGiaoTác(loạiGT, sốTiền, sốDư)
MáyATM:: #cậpNhậtSốTiền(sốTiền)
MáyATM:: #tắtMáy()
NgânHàng:: +KếtNối()
NgânHàng:: đóngKếtNối()
Thiết kế lớp
Thiết kế method
TàiKhoản::#tạoGiaoTác(loạiGiaoTác:String, sốTiền:float, soDu:float)
Thiết kế lớp
Hệ thống ATM
Bài tập
Thiết kế sơ đồ lớp hệ thống: Quản lý thuê cao ốc
Thiết kế sơ đồ lớp hệ thống: Diễn đàn trao đổi học tập khoa CNTT
GV. ThS Phạm Nguyễn Cương
THIẾT KẾ HỆ THỐNG
THIẾT KẾ LỚP
THIẾT KẾ USE CASE
THIẾT KẾ DỮ LiỆU
THIẾT KẾ CÀI ĐẶT
THIẾT KẾ THỬ NGHIỆM
Chương 8 THIẾT KẾ LỚP
Các tiên đề trong thiết kế hướng đối tượng
Thiết kế lớp
Tinh chế thuộc tính
Tinh chế method
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 1: tiên đề độc lập
Duy trì tính độc lập của các thành phần thiết kế
Tinh độc lập của các thành phần không cao
Tinh độc lập của các thành phần cao
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 2: tiên đề thông tin
Giảm tối đa thông tin các đối tượng thiết kế
Tách thành nhiều đối tượng đơn giản hơn
Tách thành cấu trúc phân cấp kế thừa
Đối tượng phức tạp
Nhiều đối tượng đơn giản
Các tiên đề trong thiết kế hướng đối tượng
Tiên đề 2: tiên đề thông tin
Giảm tối đa thông tin các đối tượng thiết kế - ví dụ:
LậpHoáĐơn()
Hoá Đơn
InHoáĐơn()
Hoá Đơn
Máy In
LậpHoáĐơn()
InHoáĐơn()
Các tiên đề trong thiết kế hướng đối tượng
Các hệ quả
Hệ quả 1: thiết kế độc lập, giảm tối đa thông tin trao đổi (Uncouple Design with Less Information )
Coupling
Dùng để đo mức độ liên quan lẫn nhau giữa các đối tượng hoặc giữa thành phần phần mềm
Biểu diễn thông qua kết hợp nhị phân
Coupling càng mạnh liên hệ giữa các đối tượng càng phức tạp
Đánh giá coupling dựa vào:
Mức độ phức tạp của kết nối
Kết nối tham chiếu đến chính bản thân đối tượng hoặc bên ngoài đối tượng
Các thông điệp nhận và gửi đi
Các tiên đề trong thiết kế hướng đối tượng
Các hệ quả
Hệ quả 1: thiết kế độc lập, giảm tối đa thông tin trao đổi (Uncouple Design with Less Information )
Coupling – ví dụ:
Coupling mạnh
Coupling yếu
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Hai loại coupling: tương tác và kế thừa
Coupling tương tác: chia thành 5 loại
Data coupling: liên kết giữa các thành phần là dữ liệu nguyên tố hoặc tổng hợp
Ví dụ:
integer Operation_A()
{
int x,y;
Class_B cB;
….
y = cB.Operation_B(x);
…
}
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác: chia thành 5 loại
Data coupling - Ví dụ:
GiaoDịch
+
rútTiền(sốTK)
TàiKhoản
+
cậpNhật SốDư (sốTiền)
: Integer
rútTiền (sốTK:String)
{
…..
Tk.cậpNhậtSốDư(this.sốTiềnGiaoDịch);
….
}
Dữ liệu trao đổi
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Stamp coupling: liên kết giữa hai thành phần là một phần của cấu trúc hoặc toàn bộ cấu trúc
Ví dụ:
integer Operation_A()
{
int x,y;
Class_B cB; c: Class_C
….
y = cB.Operation_B(c);
…
}
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Control coupling: một thành phần gởi các yếu tố điều khiển tới một thành phần khác thì hai thành phần này có control coupling.
+ A()
{
int x = 1;
sub(x, dk)
…
}
+ sub(x, dk)
{
}
dk
=1
=2
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Common couping: hai thành phần cùng tham chiếu đến một cấu trúc toàn cục (hoặc biến toàn cục) thì có liên hệ gọi là control coupling.
Content coupling: nếu một thành phần tham khảo trúc tiếp đến nội dung hoặc một nhánh của một thành phần khác thì được gọi là content coupling.
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling tương tác:
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling kế thừa: là coupling giữa lớp tổng quát và lớp chuyên biệt trong cấu trúc phân cấp:
Liên kết giữa lớp tổng quát và lớp chuyên biệt càng chặt càng tốt:
-> không kế thừa những thuộc tính không liên quan hoặc không cần thiết
Nếu một lớp cuyên biệt “chồng” lên hầu hết các method hoặc không sử dụng nó từ lớp tổng quát coupling kế thừa yếu thay đổi tiếp cận tổng quát hoá và chuyên biệt hoá
Các tiên đề trong thiết kế hướng đối tượng
Coupling
Coupling kế thừa: là coupling giữa lớp tổng quát và lớp chuyên biệt trong cấu trúc phân cấp:
Liên kết giữa lớp tổng quát và lớp chuyên biệt càng chặt càng tốt:
-> không kế thừa những thuộc tính không liên quan hoặc không cần thiết
Nếu một lớp cuyên biệt “chồng” lên hầu hết các method hoặc không sử dụng nó từ lớp tổng quát coupling kế thừa yếu thay đổi tiếp cận tổng quát hoá và chuyên biệt hoá
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 2: đơn mục đích
Mỗi lớp chỉ nên giữ một mục đích trong hệ thống
Hệ quả 3: tạo nhiều lớp đơn giản
Tạo ra một tập lớn các lớp đơn giản thay vì một tập nhỏ các lớp phức tạp
Nhánh mạnh tính bao bọc (encapsulation)
Đơn vị hoá
Tính đa hình (polymorphism)
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 3: tạo nhiều lớp đơn giản
Ví dụ:
KháchHàng
…
HọTên
ĐịaChỉ
….
ĐịaChỉ
NhàCungCấp
Các tiên đề trong thiết kế hướng đối tượng
Hệ quả 4: ánh xạ kết quả giữa các giai đoạn phải chặt chẽ
Từ quá trình phân tích đến cài đặt, các chi tiết sẽ được đưa thêm vào nhưng vẫn duy trì về cơ bản giống nhau
Hệ quả 5: chuẩn hoá thành phần
Chuẩn hoá các thành phần để có thể tái sử dụng như là một thư viện cho các hệ thống khác
Chương 8 THIẾT KẾ LỚP
Các tiên đề trong thiết kế hướng đối tượng
Thiết kế lớp
Tinh chế thuộc tính
Tinh chế method
Thiết kế lớp
Tinh chế thuộc tính
Kiểu thuộc tính
Thuộc tính đơn trị
Thuộc tính đa trị: có thể dùng các cấu trúc, list, array, bag để khai báo cài đặt.
Ví dụ: thuộc tính sốĐiệnThoại của lớp NhânViên có thể là đa trị
địaChỉ[3]: String
địaChỉ[1..3]: String
Thiết kế lớp
Tinh chế thuộc tính
Kiểu thuộc tính
Thuộc tính dùng để tham chiếu tới các đối tượng khác hoặc tới một thể hiện kết nối
Hiển thị thuộc tính
+ : toàn cục
# : bảo vệ
- : cục bộ
Ghi chú: phạm vi mặc định của các thuộc tính là cục bộ
Thiết kế lớp
Tinh chế thuộc tính
Ví dụ: hệ thống ATM
Các thuộc tính cài đặt liên kết
Thiết kế lớp
Tinh chế method: Các method để cài đặt một lớp có thể là:
Constructor: methode tạo thể hiện (đối tượng) của lớp
Destructor: methode huỷ thể hiện của lớp
Conversion: method chuyển đổi một đơn vị đo lường này sang một đơn vị đo lường khác
Copy: method sao chép nội dung của một thể hiện sang một thể hiện khác
Attribute set: method gán giá trị cho một hoặc nhiều thuộc tính
Attribute get: method trả về giá trị của một hoặc nhiều thuộc tính
I/O method: method cung cấp tới hoặc nhần dữ liệu từ một thiết bị
Domain specific: method xác định tới các ứng dụng của đối tượng
Thiết kế lớp
Thiết kế method
Hiển thị method
Các method đa số là các method có phạm vi toàn cục
Ví dụ:
+get_Tên(): String
+get_SốTàiKhoản(vtàiKhoản : TàiKhoản): String
Thiết kế lớp
Thiết kế method
Thiết kế nội dung method
Các method được xác định trong giai đoạn phân tích
Thiết kế bằng việc phân tích sơ đồ use case
Các method được thiết kế
Các method vừa phát hiện
Thiết kế lớp
Thiết kế method
Ví dụ: Thiết kế method hệ thống ATM
KháchHàng:: kiểmTraMậtKhẩu()
TàiKhoản::rútTiển()
TàiKhoản::gửiTiền()
TàiKhoản::xemThôngTin()
MáyATM::khởiĐộngMáy()
MáyATM::đóngMáy()
Thiết kế lớp
Thiết kế method
Ví dụ: Thiết kế method hệ thống ATM
KháchHàng::+ kiểmTraMậtKhẩu(sốThẻ:String, vPIN:String): vkháchHàng: KháchHàng
TàiKhoản::+ rútTiền(sồTiền: foat )
TàiKhoản::+ gửiTiền(sốTiền:float): mãTrảVề:String
MáyATM::+ khởiĐộngMáy(sốTiềnKhởiTạo:float )
MáyATM::+ đóngMáy()
Thiết kế lớp
Thiết kế method
KháchHàng::+ kiểmTraMậtKhẩu(sốThẻ:String, vPIN:String): vkháchHàng: KháchHàng
Method mới được phát hiện
Thiết kế lớp
Thiết kế method
TàiKhoản::+ rútTiền(sồTiền: foat )
Các method mới được phát hiện
Thiết kế lớp
Thiết kế method
MáyATM::+ khởiĐộngMáy(sốTiềnKhởiTạo:float )
Thiết kế lớp
Thiết kế method
MáyATM::+ đóngMáy()
Thiết kế lớp
Thiết kế method
Tiếp tục tính chế cho các method mới phát hiện:
KháchHàng:: #lấy_TàiKhoản (sốThẻ, sốPIN)
TàiKhoản:: #cậpNhậtTàiKhoản(sốTK, sốDư)
TàiKhoản:: #tạoGiaoTác(loạiGT, sốTiền, sốDư)
MáyATM:: #cậpNhậtSốTiền(sốTiền)
MáyATM:: #tắtMáy()
NgânHàng:: +KếtNối()
NgânHàng:: đóngKếtNối()
Thiết kế lớp
Thiết kế method
TàiKhoản::#tạoGiaoTác(loạiGiaoTác:String, sốTiền:float, soDu:float)
Thiết kế lớp
Hệ thống ATM
Bài tập
Thiết kế sơ đồ lớp hệ thống: Quản lý thuê cao ốc
Thiết kế sơ đồ lớp hệ thống: Diễn đàn trao đổi học tập khoa CNTT
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đinh Văn Đông
Dung lượng: |
Lượt tài: 4
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)