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ừ Thị Xuân Hiền

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

 

pptx 33 trang phuongnguyen 7720
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ừ Thị Xuân Hiền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung 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ừ Thị Xuân Hiền

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ừ Thị Xuân Hiền
Chương 4  Phân tích kiến trúc( Architecture ) 
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 
K iế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 Hiền 
2 
Đị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 
P hong 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 Hiền 
3 
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 Hiền 
4 
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 Hiền 
5 
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) và đa hình (Polymorphism) là nền tảng của  lập trình  hướng đối tượng. 
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 Hiền 
7 
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 Hiền 
8 
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 Hiền 
9 
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 Hiền 
10 
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 client-server bao gồm : 
Server : một máy đơn hoặc một ứng dụng mà nó cung cấp các dịch vụ cho nhiều clients 
Có thể là IIS (Internet Information Services) dựa trên máy chủ Web 
Có thể là WCF ( Windows Communication Foundation ) 
Có thể là một dịch vụ trong đám mây 
Clients : phần mềm ứng dụng cung cấp giao diện người dùng cuối UI để truy cập các dịch vụ từ server 
WPF , HTML5, Silverlight, ASP.NET,  
Mô hình Client-Server 
Server 
Desktop 
Client 
Mobile 
Client 
Client 
Machine 
network connection 
network connection 
network connection 
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 
Business 
Logic 
Desktop 
Client 
Mobile 
Client 
Client 
Machine 
network 
network 
network 
Database 
Data Tier 
(Back-End) 
Middle Tier 
(Business Tier) 
Client Tier (Front-End) 
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ổng quan về phân tích kiến trúc 
Phân tích kiến trúc liên quan với việc xác định và giải quyết các yêu cầu phi chức năng của hệ thống (ví dụ, chất lượng) trong bối cảnh của các yêu cầu chức năng của hệ thống . 
Mục đích của phân tích kiến trúc : 
Xác định một kiến trúc ứng viên ( candidate architecture) cho hệ thống, dựa trên kinh nghiệm thu được từ hệ thống tương tự hoặc trong lĩnh vực vấn đề tương tự. 
X ác định các mô hình kiến trúc 
X ác định các chiến lược tái sử dụng 
Các bước phân tích kiến trúc 
Xác định và phân tích các yêu cầu chức năng có ảnh hưởng đến kiến trúc . 
Yêu cầu chức năng cũng có liên quan (đặc biệt là trong trường hợp yêu cầu thay đổi), yêu cầu phi chức năng được phân tích chi tiết . Gọi chung là các nhân tố của kiến trúc ( architectural factors ) 
Những yêu cầu có tác động đáng kể đến kiến trúc, phải phân tích những thay thế và tạo ra giải pháp để giải quyết 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
22 
Các bước phân tích kiến trúc 
Mô hình hoá kiến trúc: sử dụng Collaboration Diagrams 
Collaboration diagram thể hiện sự kết hợp của các lớp, giao diện, và các yếu tố khác tương tác với nhau để cung cấp các hành vi hợp tác . 
Tên một khái niệm bao gồm cả hai khía cạnh tĩnh và động chỉ định việc hiện thực một use case. 
Thể hiện một tập hợp các thông tin trao đổi giữa một tập các đối tượng để thực hiện một mục đích cụ thể . 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
23 
Các bước phân tích kiến trúc 
Mô hình hoá kiến trúc: sử dụng Component Diagrams 
Component diagram : giúp cho mô hình hóa các khía cạnh vật lý của hệ thống phần mềm hướng đối tượng . Nó minh họa kiến trúc của các thành phần phần mềm và sự phụ thuộc giữa chúng. 
Đóng gói việc hiện thực phân loại bên trong nó 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
24 
Các bước phân tích kiến trúc 
Mô hình hoá kiến trúc: sử dụng Component Diagrams 
Components và Interfaces 
interface l à một tập hợp các hoạt động được sử dụng để xác định một dịch vụ của lớp hoặc các components 
Interface 
Thể hiện giao diện chính của hệ thống 
Được hiện thực bởi các thành phần tham gia hiện thực interface. 
Thúc đẩy sự phát triển của các hệ thống có các dịch vụ vị trí độc lập và có thể thay thế 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
25 
Các bước phân tích kiến trúc 
Ký hiệu Interface 
Kiểu 1 
Kiểu 2 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
26 
Các bước phân tích kiến trúc 
Loại Components: có 3 loại: deployment , work product và execution . 
Deployment : Component cần cho việc thực thi của hệ thống, VD dll và exe 
Work product : những thành phần được tạo ra trong quá trình phát triển hệ thống, gồm những tập tin mã nguồn và các tập tin dữ liệu từ các thành phần triển khai 
Execution : được tạo ra như là một hệ quả của một hệ thống thực thi 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
27 
Các bước phân tích kiến trúc 
Component Stereotypes 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
28 
Các bước phân tích kiến trúc 
Mô hình hoá kiến trúc : sử dụng Packages 
Packages 
Là cơ chế tổ chức các phần tử mô hình thành các nhóm 
Nhóm các phần tử có ngữ nghĩa gần nhau và có xu hướng thay đổi cùng nhau 
Package nên low coupling và high cohesive , kiểm soát truy cập nội dung 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
29 
Các bước phân tích kiến trúc 
Ký hiệu Package : 
Tương tự folder 
Packages tham chiếu đến package khác sử dụng ký hiệu dependency 
Ví dụ: Purchasing package phụ thuộc vào Receiving package 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
30 
Các bước phân tích kiến trúc 
Các phần tử bên trong Package 
Package có thể chứa các phần tử: classes, interfaces, components, nodes, collaborations, use cases, diagrams và packages khác. 
Một tạo thành một không gian tên, do đó các phần tử cùng loại phải có tên duy nhất. 
Ví dụ, không thể có hai lớp trong cùng một package có cùng tên. 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
31 
Mô hình hoá kiến trúc: Packages 
Visibility 
Visibility là tầm vực của các thuộc tính và các hoạt động của lớp trong package 
Protected: các phần tử có thể thấy bởi các packages con 
Private: các phần tử không thể thấy bởi các package bên ngoài 
Các bước phân tích kiến trúc 
Ví dụ: 
Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền 
33 

File đính kèm:

  • pptxbai_giang_phan_tich_thiet_ke_he_thong_chuong_4_phan_tich_kie.pptx