Bài giảng Phân tích và Thiết kế hệ thống - Chương 4: Phân tích kiến trúc (Architecture) - Từ Thị Xuân Hiền

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.

pptx33 trang | Chia sẻ: huongthu9 | Lượt xem: 590 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích và Thiết kế hệ thống - Chương 4: Phân tích kiến trúc (Architecture) - Từ Thị Xuân Hiền, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4 Phân tích kiến trúc (Architecture)Kiến trúc - ArchitectureKiến trúc liên quan đến việc xác địnhCác thành phần chính của hệ thốngCách mà các thành phần này liên kết với nhau Kiến trúc thể hiệnTổ 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ăngBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền2Định nghĩa kiến trúcKiế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ốngSự kết hợp của yếu tố cấu trúc và hành vi thành subsystemPhong 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ền3Các khái niệm trong kiến trúcHệ thống con - SubsystemsCác lớp - ClassesCác dịch vụ - ServicesNguyên tắc xác định subsystemsCouplingCohesionChiến lược phân lớp cho việc xác định subsystemsTheo hướng trách nhiệm - Responsibility drivenTheo hướng tái sữ dụng - Reuse drivenBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền4Subsystems: ClassesMộ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ền5Subsystems: ServicesMộ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 chungMộ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: ServicesCoupling và CohesionKhả 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ền7Subsystems: ServicesCoupling: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ậpDễ hiểu hơn khi sub-systems độc lậpSửa đổi và bảo trì dễ dàng hơnBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền8Subsystems: ServicesCohesion: 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 quanTấ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ền9Phân lớp - LayeringLayering là chiến lược chia hệ thống (system) thành các hệ thống con (subsystems).LayeringChia 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 drivenHướng tái sử dụng - Reuse drivenBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền10Kiểu phân lớpHướng trách nhiệm - Responsibility driven:Lớp có trách nhiệm được xác định rõ ràngLớp thực hiện vai trò cụ thểHướng tái sử dụng - Reuse drivenCá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ướiKiểu phân lớpVí dụ:Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền12Kiến trúc Client-ServerMô 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 clientsCó thể là IIS (Internet Information Services) dựa trên máy chủ WebCó thể là WCF (Windows Communication Foundation)Có thể là một dịch vụ trong đám mâyClients: 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ừ serverWPF, HTML5, Silverlight, ASP.NET, Mô hình Client-ServerServerDesktopClientMobileClientClientMachinenetwork connectionnetwork connectionnetwork connectionMô 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 StudioBit 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-TierFront-end (client layer)Client software: cung cấp giao diện (UI) của hệ thốngMiddle 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-TierMô hình kiến trúc 3-Tier / Multi-TierBusinessLogicDesktopClientMobileClientClientMachinenetworknetworknetworkDatabaseData Tier(Back-End)Middle Tier(Business Tier)Client Tier (Front-End)Kiến trúc Model-View-ControllerTách riêng logic nghiệp vụ với dữ liệu của ứng dụng và cách trình bàyModelGiữ trạng thái của ứng dụng (data)ViewHiể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ụngKiến trúc Model-View-ControllerTổng quan về phân tích kiến trúcPhâ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úcXác định các chiến lược tái sử dụngCác bước phân tích kiến trúcXá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ếtBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền22Các bước phân tích kiến trúcMô hình hoá kiến trúc: sử dụng Collaboration DiagramsCollaboration 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ền23Các bước phân tích kiến trúcMô hình hoá kiến trúc: sử dụng Component DiagramsComponent 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ền24Các bước phân tích kiến trúcMô hình hoá kiến trúc: sử dụng Component DiagramsComponents và Interfacesinterface 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 componentsInterfaceThể 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ền25Các bước phân tích kiến trúcKý hiệu InterfaceKiểu 1Kiểu 2Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền26Các bước phân tích kiến trúcLoạ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à exeWork 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 khaiExecution: được tạo ra như là một hệ quả của một hệ thống thực thiBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền27Các bước phân tích kiến trúcComponent StereotypesBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền28Các bước phân tích kiến trúcMô hình hoá kiến trúc: sử dụng PackagesPackagesLà cơ chế tổ chức các phần tử mô hình thành các nhómNhóm các phần tử có ngữ nghĩa gần nhau và có xu hướng thay đổi cùng nhauPackage nên low coupling và high cohesive, kiểm soát truy cập nội dungBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền29Các bước phân tích kiến trúcKý hiệu Package :Tương tự folderPackages tham chiếu đến package khác sử dụng ký hiệu dependencyVí dụ: Purchasing package phụ thuộc vào Receiving packageBài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền30Các bước phân tích kiến trúcCác phần tử bên trong PackagePackage 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ền31Mô hình hoá kiến trúc: PackagesVisibilityVisibility là tầm vực của các thuộc tính và các hoạt động của lớp trong packageProtected: các phần tử có thể thấy bởi các packages conPrivate: các phần tử không thể thấy bởi các package bên ngoàiCác bước phân tích kiến trúcVí dụ: Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân Hiền33

Các file đính kèm theo tài liệu này:

  • pptxbai_giang_phan_tich_va_thiet_ke_he_thong_chuong_4_phan_tich.pptx