Bài giảng Phân tích thiết kế hệ thống - Chương 4: Phân tích kiến trúc (Architecture)
Chương 4
()
Kiến trúc - Architecture
• Kiến trúc liên quan đến việc xá c định
• Cá c thành phần chí nh của hệ thống
• Cá ch mà cá c thành phần này liên kết với nhau
• Kiến trúc thể hiện
• Tổ chức cấu trúc của hệ thống từ cá c thành phần của nó
• Cá ch cá c phần tử tương tá c với nhau để cung cấp cá c hành vi tổng thể
của hệ thống hoặc yêu cầu chức năng
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
2
Hiền
Định nghĩa kiến trúc
• Kiến trúc là một tập hợp cá c quyết định quan trọng về việc tổ
chức một hệ thống phần mềm. Quyết định này bao gồm:
• Việc lựa chọn cá c yếu tố cấu trúc và giao diện của hệ thống
• Sự kết hợp của yếu tố cấu trúc và hành vi thành subsystem
• Phong cá ch kiến trúc bao gồm cá c phần tử, giao diện, và sự hợp tá c
của chúng.
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
3
Hiền
Cá c khá i niệm trong kiến trúc
• Hệ thống con - Subsystems
• Cá c lớp - Classes
• Cá c dịch vụ - Services
• Nguyên tắc xá c định subsystems
• Coupling
• Cohesion
• Chiến lược phâ n lớp cho việc xá c định subsystems
• Theo hướng trá ch nhiệm - Responsibility driven
• Theo hướng tá i sữ dụng - Reuse driven
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
4
Hiền
Subsystems: Classes
• Một giải phá p về phạm vi bằng cá ch chia hệ thống thành những
thành phần nhỏ hơn gọi là subsystems.
• Subsystems có thể được chia nhỏ một cá ch đệ quy thành
những subsystems đơn giản hơn.
• Subsystems được cấu tạo từ cá c lớp thiết kế. (design
classes).
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
5
Hiền
Subsystems: Services
• Một subsystem được đặc trưng bởi cá c dịch vụ nó cung cấp
cho subsystems khá c.
• Dịch vụ là:
• Một tập hợp cá c hoạt động có liên quan chia sẻ một mục đích chung
• Một tập hợp cá c hoạt động của một subsystem có sẵn với subsystem
khá c thô ng qua interface của subsystem
Subsystems: Services
• Coupling và Cohesion
• Khả năng đóng gó i dữ liệu (Data encapsulation), kế thừa (Inheritance)
• Một chương trì nh thiết kế theo hướng đối tượng đòi hỏi chia nhỏ bài
toá n thành cá c phần, sao cho chúng vừa có đặc tí nh liên kết (giao
tiếp giữa cá c phần) lại vừa có khả năng tá ch biệt riêng rẽ để thay
đổi, kiểm tra mà khô ng ảnh hưổng đến thành phần khá c
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
7
Hiền
Subsystems: Services
• Coupling:
• Mức độ phụ thuộc của một phần tử vào một phần tử khá c trong hệ
thống, phần tử có thể là class, sub-systems, system.
• Loose coupling (khô ng phụ thuộc nhiều vào phần tử khá c):
• Sub-system độc lập
• Dễ hiểu hơn khi sub-systems độc lập
• Sửa đổi và bảo trì dễ dàng hơn
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
8
Hiền
Subsystems: Services
• Cohesion:
• Mức độ phụ thuộc bên trong của một phần tử (class, subsystem), mức
độ liên quan về chức năng giữa cá c nhiệm vụ của một phần tử.
• High cohesion:
• Subsystem chứa cá c đối tượng liên quan
• Tất cả cá c phần tử hướng tới việc thực hiện cùng một tá c vụ.
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
9
Hiền
Phâ n lớp - Layering
• Layering là chiến lược chia hệ thống (system) thành cá c hệ
thống con (subsystems).
• Layering
• Chia một hệ thống thành hệ thống phâ n cấp của cá c hệ thống con
(subsystems)
• Có hai cá ch:
• Hướng trá ch nhiệm - Responsibility driven
• Hướng tá i sử dụng - Reuse driven
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
10
Hiền
Kiểu phâ n lớp
• Hướng trá ch nhiệm - Responsibility driven:
• Lớp có trá ch nhiệm được xá c định rõ ràng
• Lớp thực hiện vai trò cụ thể
• Hướng tá i sử dụng - Reuse driven
• Cá c lớp được thiết kế để cho phé p tá i sử dụng tối đa cá c thành phần
hệ thống.
• Cá c lớp ở mức cao hơn sử dụng dịch vụ của cá c lớp cấp dưới
Kiểu phâ n lớp
• Ví dụ:
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân
Hiền
12
Kiến trúc Client-Server
Mô hì nh clienservebao gồm:
• Servemộmá y đơn hoặc mộứng dụng mà nó cung cấp cá c dịch vụ
cho nhiều clients
• Có thể là IIS (Internet Information Servicesdựa trên má y chủ Web
• Có thể là WCF (Windows Communication Foundatio)
• Có thể là mộdịch vụ trong đám mâ y
• Clientphần mềm ứng dụng cung cấp giao diện ngườdùng cuốUI
để truy cập cá c dịch vụ từ server
• WPHTMSilverlightASNET…
Mô hì nh Client-Server
Client
Machine
Mobile
Client
Server
Desktop
Client
Mô hì nh Client-Server – Ví dụ
• Web server (IIS) – Web browser (Firefox)
• FTP server (ftpd) – FTP client (FileZilla)
• Email server (qmail) – email client (Outlook)
• SQL Server – SQL Server Management Studio
• Bit Torrent Tracker – Torrent client (μTorrent)
• DNS server (bind) – DNS client (resolver)
• DHCP server (wireless router firmware) – DHCP client (mobile
phone /Android DHCP client/)
• SMB server (Windows) – SMB client (Windows)
Kiến trúc 3-Tier / Multi-Tier
• Front-end (client layer)
• Client software: cung cấp giao diện (UI) của hệ thống
• Middle tier (business layer)
• Server software: cung cấp lõ i logic của hệ thống.
• Hiện thực cá c quy trì nh nghiệp vụ hoặc cá c dịch vụ
• Back-end (data layer)
• Quản lý dữ liệu của hệ thống(database / cloud)
Kiến trúc 3-Tier / Multi-Tier
Mô hì nh kiến trúc 3-Tier / Multi-Tier
Data Tier
Middle Tier
Client Tier (FronEnd)
(BacEnd)
(Business Tier)
Client
Machine
Mobile
Client
Database
Business
Logic
Desktop
Client
Kiến trúc Model-View-Controller
• Tá ch riêng logic nghiệp vụ với dữ liệu của ứng dụng và cá ch
trì nh bày
• Model
• Giữ trạng thá i của ứng dụng (data)
• View
• Hiển thị dữ liệu cho người sử dụng (shows UI)
• Controller
• Điều khiển sự tương tá c với người sử dụng
Kiến trúc Model-View-Controller
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích thiết kế hệ thống - Chương 4: Phân tích kiến trúc (Architecture)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phan_tich_thiet_ke_he_thong_chuong_4_phan_tich_kie.pptx

