1. Trang chủ
  2. » Trung học cơ sở - phổ thông

chuong4phantichkt xuanhiens weblog

33 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

• 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[r]

(1)

Chương

Phân tích kiến trúc

(2)

Kiến trúc - Architecture

• Kiến trúc

liên quan đến việc xác định

• Các thành phần hệ thống

• Cách mà thành phần liên kết với

• Kiến trúc thể hiện

• Tổ chức cấu trúc hệ thống từ thành phần

(3)

Định nghĩa kiến trúc

• Kiến trúc tập hợp định quan trọng việc tổ

chức hệ thống phần mềm Quyết định bao gồm:

• Việc lựa chọn yếu tố cấu trúc giao diện hệ thống • Sự kết hợp yếu tố cấu trúc hành vi thành subsystem

• Phong cách kiến trúc bao gồm phần tử, giao diện, hợp tác chúng

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân

(4)

Các khái niệm kiến trúc

• Hệ thống - Subsystems

• Các lớp - Classes

• Các dịch vụ - Services

• Nguyên tắc xác định subsystems

• Coupling • Cohesion

(5)

Subsystems: Classes

• Một giải pháp phạm vi cách chia hệ thống thành

thành phần nhỏ gọi subsystems.

• Subsystems chia nhỏ cách đệ quy thành

những subsystems đơn giản

• Subsystems cấu tạo từ 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

(6)

Subsystems: Services

• Một

subsystem

được đặc trưng

dịch vụ

nó cung cấp

cho subsystems khác.

• Dịch vụ là:

• Một tập hợp hoạt động có liên quan chia sẻ mục đích chung

(7)

Subsystems: Services

• Coupling Cohesion

• Khả đóng gói liệu (Data encapsulation), kế thừa (Inheritance) đa hình (Polymorphism) tảng 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ỏ

tốn thành phần, cho chúng vừa có đặc tính liên kết (giao tiếp phần) lại vừa có khả 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

(8)

Subsystems: Services

• Coupling

:

• Mức độ phụ thuộc phần tử vào phần tử khác hệ thống, phần tử 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

(9)

Subsystems: Services

• Cohesion:

• Mức độ phụ thuộc bên phần tử (class, subsystem), mức độ liên quan chức nhiệm vụ phần tử

• High cohesion:

• Subsystem chứa đối tượng liên quan

• Tất phần tử hướng tới việc thực tác vụ

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân

(10)

Phân lớp - Layering

• Layering chiến lược chia hệ thống (system) thành hệ

thống (subsystems).

• Layering

• Chia hệ thống thành hệ thống phân cấp hệ thống (subsystems)

• Có hai cách:

(11)

Kiểu phân lớp

• Hướng trách nhiệm - Responsibility driven:

• Lớp có trách nhiệm xác định rõ ràng • Lớp thực vai trị cụ thể

• Hướng tái sử dụng - Reuse driven

• Các lớp thiết kế phép tái sử dụng tối đa thành phần hệ thống

(12)

Kiểu phân lớp

(13)

Kiến trúc Client-Server

• Mơ hình client-server bao gồm:

• Server: máy đơn ứng dụng mà cung cấp dịch vụ cho nhiều clients

• Có thể IIS (Internet Information Services) dựa máy chủ Web • Có thể WCF (Windows Communication Foundation)

• Có thể dịch vụ đá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 dịch vụ từ server

(14)

Mơ hình Client-Server

Server

Desktop Mobile

(15)

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/)

(16)

Kiến trúc 3-Tier / Multi-Tier

• Front-end (client layer)

• Client software: cung cấp giao diện (UI) hệ thống

• Middle tier (business layer)

• Server software: cung cấp lõi logic hệ thống • Hiện thực quy trình nghiệp vụ dịch vụ

• Back-end (data layer)

(17)(18)

Mơ hình kiến trúc 3-Tier / Multi-Tier

Business Logic Desktop Mobile Client Client Machine Database Data Tier (Back-End) Middle Tier (Business Tier)

(19)

Kiến trúc Model-View-Controller

• Tách riêng logic nghiệp vụ với liệu ứng dụng cách

trình bày

• Model

• Giữ trạng thái ứng dụng (data)

• View

• Hiển thị liệu cho người sử dụng (shows UI)

• Controller

(20)(21)

Tổng quan 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 giải

yêu cầu phi chức hệ thống (ví dụ, chất lượng)

bối cảnh yêu cầu chức hệ thống.

• Mục đích phân tích kiến trúc:

• Xác định kiến trúc ứng viên (candidate architecture) cho hệ thống, dựa kinh nghiệm thu từ hệ thống tương tự lĩnh vực vấn đề tương tự

• Xác định mơ hình kiến trúc

(22)

Các bước phân tích kiến trúc

• Xác định phân tích

các yêu cầu chức

có ảnh

hưởng đến kiến trúc.

• Yêu cầu chức có liên quan (đặc biệt trường hợp yêu cầu thay đổi), yêu cầu phi chức phân tích chi tiết Gọi chung nhân tố kiến trúc (architectural factors)

(23)

Các bước phân tích kiến trúc

• Mơ hình hố kiến trúc: sử dụng Collaboration Diagrams

• Collaboration diagram thể kết hợp lớp, giao diện, yếu tố khác tương tác với để cung cấp hành vi hợp tác • Tên khái niệm bao gồm hai khía cạnh tĩnh động định việc

hiện thực use case

• Thể tập hợp thơng tin trao đổi tập đối tượng để thực mục đích cụ thể

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân

(24)

Các bước phân tích kiến trúc

• Mơ hình hố kiến trúc: sử dụng Component Diagrams

• Component diagram: giúp cho mơ hình hóa khía cạnh vật lý hệ thống phần mềm hướng đối tượng Nó minh họa kiến trúc thành phần phần mềm phụ thuộc chúng

(25)

Các bước phân tích kiến trúc

• Mơ hình hố kiến trúc: sử dụng Component Diagrams

• Components Interfaces

• interface tập hợp hoạt động sử dụng để xác định dịch vụ lớp components

• Interface

• Thể giao diện hệ thống

• Được thực thành phần tham gia thực interface

• Thúc đẩy phát triển hệ thống có dịch vụ vị trí độc lập thay

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xuân

(26)

Các bước phân tích kiến trúc

• Ký hiệu Interface

• Kiểu

(27)

Các bước phân tích kiến trúc

• Loại Components: có loại:

deployment

,

work product

execution

• Deployment: Component cần cho việc thực thi hệ thống, VD dll exe

• Work product: thành phần tạo trình phát

triển hệ thống, gồm tập tin mã nguồn tập tin liệu từ thành phần triển khai

• Execution: tạo hệ 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

(28)

Các bước phân tích kiến trúc

(29)

Các bước phân tích kiến trúc

• Mơ hình hố kiến trúc: sử dụng Packages

• Packages

• Là chế tổ chức phần tử mơ hình thành nhóm

• Nhóm phần tử có ngữ nghĩa gần có xu hướng thay đổi

• Package nên low coupling 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

(30)

Các bước phân tích kiến trúc

• Ký hiệu Package :

• Tương tự folder

(31)

Các bước phân tích kiến trúc

• Các phần tử bên Package

• Package chứa phần tử: classes, interfaces, components, nodes, collaborations, use cases, diagrams packages khác

• Một tạo thành khơng gian tên, phần tử loại phải có tên

• Ví dụ, khơng thể có hai lớp package có tên

Bài giảng Phân tích thiết kế hệ thống - GV: Từ Thị Xn

(32)

Mơ hình hố kiến trúc: Packages

• Visibility

• Visibility tầm vực thuộc tính hoạt động lớp package

• Protected: phần tử thấy packages con

(33)

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

lập

Ngày đăng: 20/04/2021, 01:24