1. Trang chủ
  2. » Công Nghệ Thông Tin

thiết kế kiến trúc phần mềm

60 755 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Thiết kế kiến trúc phần mềm
Tác giả Nguyễn Thị Minh Tuyền
Trường học Nhập môn CNPM
Thể loại Bài giảng
Định dạng
Số trang 60
Dung lượng 728,42 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

các kiến trúc mẫu,MVC,mhc-pms

Trang 1

Nguyễn Thị Minh Tuyền

Thiết kế kiến trúc phần mềm

Trang 3

Kiến trúc phần mềm

v Thiết kế kiến trúc là việc hiểu một hệ

thống được tổ chức như thế nào và thiết

kế toàn bộ kiến trúc của hệ thống đó

v Đầu ra của quy trình thiết kế này là một

mô tả về kiến trúc phần mềm.

Trang 5

Các mức trừu tượng của kiến trúc

trúc của các chương trình đơn lẻ Ở mức này, một chương trình được phân thành các

component

của một hệ thống phức tạp gồm nhiều hệ

thống khác, chương trình và các components chương trình Những hệ thống này được phân tán trên nhiều máy tính khác nhau, có thể

được sở hữu và quản lý bởi nhiều công ty khác nhau

Trang 6

Ưu điểm của kiến trúc

v Giao tiếp với các stakeholder

thảo luận với các stakeholder hệ thống

v Phân tích hệ thống

được các yêu cầu phi chức năng hay không

v Tái sử dụng

khác

Trang 7

Biểu diễn kiến trúc

mang tính hình thức để chỉ ra các thực thể và quan hệ giữa chúng là phương pháp thường

gặp nhất để viết tài liệu về kiến trúc phần

mềm

trong một thời gian dài do nó thiếu ngữ nghĩa, không chỉ ra được loại quan hệ giữa các thực

thể và không chỉ ra các thuộc tính của thực thể trong kiến trúc

trúc Yêu cầu về ngữ nghĩa của mô hình phụ

thuộc vào cách các mô hình đó được sử dụng

Trang 8

Kiến trúc của một hệ thống điều

khiển robot

Vision system

Object identification system

Arm controller

Gripper controller

Packaging selection system

Packing system controllerConveyor

Trang 9

thiết kế

§   Mục tiêu ở đây là tạo ra một mô hình hệ thống hoàn chỉnh trong đó nó chỉ ra được các component khác nhau trong hệ thống, giao diện và sự kết nối của chúng

Trang 11

Quyết định chọn kiến trúc thiết kế

v Thiết kế kiến trúc là một quy trình sáng tạo Các hoạt động trong quy trình phụ thuộc vào loại ứng dụng được phát

triển, kinh nghiệm của người thiết kế

kiến trúc và các yêu cầu cụ thể của hệ

thống

v Thiết kế kiến trúc được như là một chuỗi các quyết định hơn là một chuỗi tuần tự các hoạt động

Trang 12

Quyết định chọn kiến trúc thiết kế

không?

hóa hệ thống?

như thế nào?

cách nào?

nào?

Trang 13

Tái sử dụng kiến trúc

trúc tương tự nhau phản ánh những đặc điểm của lĩnh vực đó

trúc lõi với một số biến thể để thỏa mãn các yêu cầu cụ thể của

khách hàng

kế dựa vào một hoặc nhiều mẫu kiến trúc

(architectural pattern)

§   Mẫu kiến trúc là mô tả về kiến trúc của một hệ thống

sử dụng qua các hệ thống phần mềm khác nhau

Trang 14

Kiến trúc và đặc điểm của hệ thống

§   Định vị các chức năng quan trọng và giảm thiểu giao tiếp

§   Sử dụng các component nhỏ, chi tiết, có thể thay thế được

Trang 16

Các góc nhìn về mặt kiến trúc

tài liệu về kiến trúc của một hệ thống?

tả về mô hình kiến trúc?

nhìn về hệ thống

thế nào, các tiến trình thời gian thực tương tác như thế nào, các component hệ thống được phân tán trên mạng như thế nào

§   Đối với việc thiết kế và viết tài liệu, ta thường cần biểu diễn nhiều góc nhìn khác nhau của hệ thống phần mềm

Trang 17

Mô hình kiến trúc phần mềm 4 + 1

logical view development view

process view physical view

use case

chỉ ra các biểu diễn trừu tượng

trong hệ thống dưới dạng các đối

tượng và lớp đối tượng

chỉ ra cách một phần mềm được phân rã để phát triển như thế nào

chỉ ra cách các tương tác

thời gian thực xảy ra trong hệ

thống

chỉ ra phần cứng của hệ thống và cách các component của hệ thống được phân tán trên các processor như thế nào

Trang 18

Mô hình kiến trúc phần mềm 4 + 1

§   chỉ ra các biểu diễn trừu tượng trong hệ thống dưới dạng các đối tượng và lớp đối tượng

§   chỉ ra cách các tương tác thời gian thực xảy ra trong hệ thống

thống được phân tán trên các processor như thế nào

bản (+1)

Trang 20

Kiến trúc mẫu (Architectural pattern)

chia sẻ và tái sử dụng lại các kiến thức

chúng hữu ích và khi nào không, độ mạnh yếu của chúng

đồ họa

Trang 21

Một số mô hình kiến trúc mẫu

Trang 22

The Model-View-Controller (MVC)

pattern

thống Hệ thống được cấu trúc hóa thành ba component logic tương tác với nhau /

•  Model component: quản lý dữ liệu hệ thống và các thao tác

trên dữ trên dữ liệu đó./

•  View component: định nghĩa và quản lý cách dữ liệu được

biểu diễn tới người dùng như thế nào /

•  Controller component: Quản lý tương tác người dùng ( ví

dụ như ấn phím, nhấp chuột, .) và chuyển các tương tác này tới View và Model /

liệu Cũng được sử dụng khi chưa biết được các yêu cầu tương lai cho tương tác và biểu diễn dữ liệu /

ngược lại Hỗ trợ biểu diễn theo nhiều cách khác nhau trên cùng một dữ liệu /

hình dữ liệu và mô hình tương tác đơn giản./

Trang 23

Tổ chức của mô hình

Model-View-Controller

Model

View selection

State change

Change notification

State query

User events

Maps user actions

to model updates Selects view

Renders model Requests model updates Sends user events to controller

Encapsulates application state

Notifies view of state changes

Trang 24

Update request

Change notification

Refresh request User events

Browser

HTTP request processing Application-specific logic Data validation

Dynamic page generation Forms management

Business logic Database

Trang 26

Mô hình kiến trúc phân tầng

Tên" Kiến trúc phân tầng"

Mô tả" Tổ chức hệ thống thành các tầng, mỗi tầng chứa các chức

năng liên quan đến nhau Một tầng cung cấp các dịch vụ cho tầng trên của nó vì vậy các tầng thấp nhất biểu diễn các dịch vụ lõi được sử dụng trong toàn bộ hệ thống /

Được sử dụng khi

nào"

Được sử dụng khi xây dựng các tính năng mới dựa trên những

hệ thống có sẵn; khi việc phát triển được dàn trải trên nhiều nhóm khác nhau và mỗi nhóm chịu trách nhiệm về chức năng của một tầng; khi có một yêu cầu về bảo mật ở nhiều mức độ./

Ưu điểm" Cho phép thay thế các phần miễn là interface được duy trì Các

chức năng dư thừa (ví dụ như phân quyền) có thể được cung cấp ở mỗi tầng để tăng độ tin cậy của hệ thống./

Nhược điểm " Thực tế, cung cấp một sự phân chia rõ rệt giữa các tầng

thường rất khó khăn và tầng cao hơn có thể tương tác trực tiếp với tầng thấp hơn hơn là thông qua một tầng bên dưới nó Hiệu năng cũng có thể là một vấn đề vì nhiều mức diễn giải của một yêu cầu dịch vụ khi nó được thực hiện tại mỗi tầng./

Trang 27

Một kiến trúc phân tầng tổng quát

User interface

Core business logic/application functionality

System utilities System support (OS, database etc.) User interface management Authentication and authorization

Trang 28

Kiến trúc của hệ thống LIBSYS

Web browser interface

Library index

LIBSYS login

Trang 29

Tổng kết

v   Kiến trúc phần mềm là mô tả về cách tổ chức của một hệ thống phần mềm

v   Quyết định chọn kiến trúc thiết kế bao gồm các quyết

định về loại ứng dụng, việc phân tán của hệ thống, mẫu kiến trúc được sử dụng

v   Các kiến trúc có thể được viết thành tài liệu từ một vài góc nhìn chẳng hạn như góc nhìn về mặt khái niệm, góc nhìn về mặt logic, góc nhìn về mặt quy trình, góc nhìn về mặt phát triển

v   Các mô hình kiến trúc mẫu là phương tiện đẻ tái sử dụng các kiến thức về kiến trúc hệ thống tổng quát Chúng mô

tả kiến trúc, giải thích khi nào được sử dụng và ưu nhược điểm của nó

Trang 30

Thiết kế kiến trúc phần mềm

phần 2

Lecture 2

Trang 31

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Kiến trúc repository

v Các hệ thống con phải trao đổi dữ liệu

với nhau Có hai khả năng:

§  Việc chia sẻ dữ liệu được thực hiện ở cơ sở dữ liệu trung tâm hay còn gọi là kho dữ liệu, kho

này được truy cập bởi tất cả các hệ thống con;

§  Mỗi hệ thống con duy trì một cơ sở dữ liệu riêng

và chuyển dữ liệu trực tiếp tới các hệ thống con khác

v Khi có một lượng lớn dữ liệu cần chia sẻ,

mô hình về chia sẻ là mô hình phổ biến nhất và là cơ chế chia sẻ dữ liệu hiệu

quả nhất

31

Trang 32

Mô hình Repository

Tên" Mô hình Repository "

Mô tả" Tất cả các dữ liệu trong hệ thống được quản lý ở một kho trung

tâm, kho này được truy cập bởi tất cả các component của hệ thống Các component không tương tác trực tiếp với nhau, chỉ thông qua kho chung thôi./

Khi nào được sử

dụng"

Sử dụng mô hình này khi ta có một hệ thống trong đó một lượng lớn thông tin được sinh ra phải được lưu trữ trong một thời gian dài Ta cũng có thể sử dụng nó trong các hệ thống hướng dữ liệu trong đó dữ liệu trong kho kích hoạt hành động hay công cụ./

Ưu điểm" Các component có thể độc lập với nhau – chúng không cần biết

sự tồn tại của các component khác Các thay đổi xảy ra ở một component không ảnh hưởng tới các component khác Tất cả các

dữ liệu có thể được quản lý một cách nhất quán (ví dụ như backup dữ liệu được thực hiện đồng thời) vì tất cả dữ liệu được lưu trữ ở cùng một nơi /

Nhược điểm" Các vấn đề xảy ra trên kho chung ảnh hưởng đến toàn hệ thống

Có thể không hiệu quả trong việc tổ chức các giao tiếp thông qua kho Phân tán kho trên nhiều máy tính có thể khó khăn./

Trang 33

Một kiến trúc repository cho một

IDE

Project repository

Design

translator

Java editor

UML editors

Code generators

Design analyzer

Report generator

Python editor

Trang 34

dữ liệu,

v Tập hợp các khách hàng triệu gọi các

dịch vụ này

v Hệ thống mạng cho phép người dung

truy cập vào các server

Trang 35

Mô hình client–server

được tổ chức thành các dịch vụ, mỗi dịch vụ được đặt trên một server riêng lẻ Khách hàng là người sử dụng các dịch vụ này và truy cập vào các server để sử dụng dịch vụ./

Khi nào được sử

dụng"

Được sử dụng khi dữ liệu trong một cơ sở dữ liệu chia sẻ phải truy cập từ nhiều nơi Vì các server được truy cập từ nhiều nơi khác nhau, có thể được sử dụng khi tải trên hệ thống thay đổi./

năng chung (dịch vụ in ấn chẳng hạn) có thể có sẵn cho tất cả các khách hàng và không cần thiết phải cài đặt toàn bộ các dịch vụ /

chối dịch vụ hoặc lỗi server Hiệu năng có thể không dự đoán trước được do nó phụ thuộc vào mạng cũng như hệ thống

Có thể có các vấn đề về quản lý nếu server được sở hữu bởi các tổ chức khác nhau./

Trang 36

Kiến trúc client–server cho một thư

viện phim ảnh

Catalog server Library catalogue

Video server Film store

Picture server Photo store

Web server Film and photo info.

Internet

Trang 37

Kiến trúc pipe and filter

v Các chuyển đổi chức năng xử lý các đầu vào và tạo ra các đầu ra

v Các biến thể của phương pháp này rất

phổ biến Khi các chuyển đổi là tuần tự, đây là mô hình xử lý khối tuần tự mà

các hệ thống xử lý dữ liệu sử dụng

v Không thật sự phù hợp với các hệ thống tương tác

Trang 38

Mô hình pipe and filter

component xử lý (filter) là rời rạc và tiến hành một loại xử lý dữ liệu Dòng dữ liệu (pipe) đi từ một component đến một component khác để xử lý /

Khi nào sử

dụng"

Thường sử dụng trong các ứng dụng xử lý dữ liệu ( cả ứng dụng

xử lý khối và xử lý giao tác) trong đó các đầu vào được xử lý ở các giai đoạn rời rạc để tạo ra các đầu ra tương ứng./

phù hợp với cấu trúc của của nhiều quy trình công việc Tiến hóa bằng cách thêm vào các chuyển đổi là dễ dàng Có thể cài đặt theo kiểu hệ thống tuần tự hoặc song song./

tiếp giữa các chuyển đổi Mỗi chuyển đổi phải phân tích cú pháp đầu vào của nó và chuyển nó thành đầu ra ở dạng được chấp nhận Điều này gây khó khăn trong việc tái sử dụng các chuyển đổi hàm mà cấu trúc dữ liệu không tương thích./

Trang 39

Ví dụ về kiến trúc pipe and filter

Read issued

invoices paymentsIdentify

Issue receipts

Find payments due

Receipts

Issue payment

Trang 41

Các kiến trúc ứng dụng

v Các hệ thống ứng dụng được thiết kế để đáp ứng nhu cầu của một tổ chức

v Vì công việc có nhiều điểm chung, các

hệ thống ứng dụng cũng có xu hướng có kiến trúc chung phản ánh các yêu cầu

ứng dụng

v Kiến trúc ứng dụng tổng quát là một

kiến trúc cho một loại hệ thống phần

mềm được cấu hình và điều chỉnh để tạo

ra một hệ thống đáp ứng các yêu cầu cụ thể

Trang 42

Sử dụng các kiến trúc ứng dụng

v Như là điểm khởi đầu của thiết kế kiến trúc

v Như là một checklist về thiết kế

v Như một cách để tổ chức công việc của nhóm phát triển phần mềm

v Như là một phương tiện để đánh giá

việc tái sử dụng các component

v Như là kho từ vựng để bàn về các loại

ứng dụng

Trang 43

Ví dụ về loại ứng dụng

§   Các ứng dụng hướng dữ liệu trong đó xử lý dữ liệu khối mà không

có sự can thiệp của người dùng trong suốt quá trình xử lý

§   Ứng dụng dữ liệu trung tâm trong đó xử lý các yêu cầu người

dùng và cập nhật thông tin trong một cơ sở dữ liệu hệ thống

Trang 45

tiêu;

Paris

v Người dùng thực hiện các yêu cầu

không đồng bộ về dịch vụ sau đó được

xử lý bởi một bộ quản lý giao tác

Trang 46

Cấu trúc của ứng dụng xử lý giao tác

I/O

Trang 47

Kiến trúc phần mềm của hệ thống

ATM

Get customer account id

Query account

Print details

Return card

Dispense cash Update account

Validate card

Select service

Trang 48

Kiến trúc hệ thống thông tin

v Các hệ thống thông tin có cấu trúc tổng quát có thể được tổ chức theo kiểu cấu trúc phân tầng

v Đây là những hệ thống dựa vào giao tác

vì tương tác với hệ thống này thường là các giao tác cơ sở dữ liệu

Trang 49

Kiến trúc phân tầng của hệ thống

Trang 50

Kiến trúc của hệ thống MHC-PMS

Web browser

Report generation

Transaction management Patient database

Security

Trang 51

Các hệ thống thông tin dựa vào web

các hệ thống dựa vào web trong đó giao diện người dùng được cài đặt trên web browser

thống quản trị tài nguyên dựa vào internet mà

trong đó các đơn đặt hàng điện tử về hàng hóa hay dịch vụ được chấp nhận, các đơn hàng này sau đó

được lên lịch giao cho khách hàng

chứa các tính năng bổ sung hỗ trợ “giỏ hàng” trong

đó người dùng có thể đặt nhiều món hàng trên các giao tác khác nhau sau đó tính tiền chung trong

một giao tác đơn

Trang 52

Cài đặt phía server

v Những hệ thống này thường được cài

đặt theo kiểu kiến trúc đa tầng

client-server

giao diện người dùng được cài đặt sử dụng web

browser;

vấn yêu cầu;

dữ liệu và nắm quyền quản lý giao tác

Trang 53

Hệ thống xử lý ngôn ngữ

v Chấp nhận một ngôn ngữ tự nhiên hoặc ngôn ngữ nhân tạo làm đầu vào và tạo

ra một biểu diễn khác của ngôn ngữ đó

v Có thể chứa một bộ diễn giải để thực

hiện các chỉ dẫn lệnh trong ngôn ngữ

được xử lý

v Được dùng trong các tình huống trong

đó cách dễ nhất để xử lý vấn đề là mô tả một thuật toán hoặc mô tả dữ liệu hệ

thống

Trang 54

Kiến trúc của một hệ thống xử lý

ngôn ngữ

Source language instructions

Translator

Interpreter

Abstract m/c instructions

Check syntax Check semantics Generate

Fetch Execute

Trang 55

Các component của trình biên dịch

chuyển đổi chúng thành một hình thức trung gian

thể (biến, tên lớp, tên đối tượng, ) được sử dụng trong văn bản cần biên dịch

ngôn ngữ cần biên dịch

trong mà chương trình được dịch

Trang 56

Các component của trình biên dịch

v Bộ phân tích ngữ nghĩa: sử dụng thông tin từ cây cú pháp và bảng ký hiệu để

kiểm tra tính đúng đắn về ngữ nghĩa

của văn bản ngôn ngữ đầu vào

v Bộ phát sinh mã : duyệt qua cây cú

pháp và sinh ra mã máy trừu tượng

Trang 57

Kiến trúc pipe and filter của trình

biên dịch

Lexical

Symbol table Syntax tree

Trang 58

Kiến trúc repository cho hệ thống

xử lý ngôn ngữ

Syntax analyzer

Lexical

Abstract syntax tree Grammardefinition

Symbol table definitionOutput

printer

Pretty-Editor

Optimizer

Code generator Repository

Trang 59

tượng để chạy ngôn ngữ được sinh ra

Ngày đăng: 18/12/2013, 20:48

HÌNH ẢNH LIÊN QUAN

mang tính hình thức để chỉ ra các thực thể và - thiết kế kiến trúc phần mềm
mang tính hình thức để chỉ ra các thực thể và (Trang 7)
v   Mỗi mô hình kiến trúc chỉ thể hiện một góc nhìn về hệ thống.   - thiết kế kiến trúc phần mềm
v    Mỗi mô hình kiến trúc chỉ thể hiện một góc nhìn về hệ thống. (Trang 16)
Mô hình kiến trúc phần mềm 4 +1 - thiết kế kiến trúc phần mềm
h ình kiến trúc phần mềm 4 +1 (Trang 17)
v   Các mẫu được biểu diễn sử dụng bảng và mô tả đồ họa.  - thiết kế kiến trúc phần mềm
v    Các mẫu được biểu diễn sử dụng bảng và mô tả đồ họa. (Trang 20)
Một số mô hình kiến trúc mẫu - thiết kế kiến trúc phần mềm
t số mô hình kiến trúc mẫu (Trang 21)
Tổ chức của mô hình Model-View- Model-View-Controller   ControllerView ModelViewselectionStatechangeChangenotificationState queryUser events - thiết kế kiến trúc phần mềm
ch ức của mô hình Model-View- Model-View-Controller ControllerView ModelViewselectionStatechangeChangenotificationState queryUser events (Trang 23)
dụng mô hình MVC - thiết kế kiến trúc phần mềm
d ụng mô hình MVC (Trang 24)
v   Được sử dụng để mô hình hóa giao diện của các hệ thống con.  - thiết kế kiến trúc phần mềm
v    Được sử dụng để mô hình hóa giao diện của các hệ thống con. (Trang 25)
v   Các mô hình hệ thống phân tán chỉ ra cách dữ liệu và các xử lýđượ c phân tán  trên nhiều component như thế nào - thiết kế kiến trúc phần mềm
v    Các mô hình hệ thống phân tán chỉ ra cách dữ liệu và các xử lýđượ c phân tán trên nhiều component như thế nào (Trang 34)
đây là mô hình xử lý khối tuần tự mà các hệ thống xử lý dữ liệu sử dụng.  - thiết kế kiến trúc phần mềm
y là mô hình xử lý khối tuần tự mà các hệ thống xử lý dữ liệu sử dụng. (Trang 37)
mềm được cấu hình và điều chỉnh để tạo ra một hệ thống đáp ứng các yêu cầu cụ - thiết kế kiến trúc phần mềm
m ềm được cấu hình và điều chỉnh để tạo ra một hệ thống đáp ứng các yêu cầu cụ (Trang 41)
chuyển đổi chúng thành một hình thức trung - thiết kế kiến trúc phần mềm
chuy ển đổi chúng thành một hình thức trung (Trang 55)
v   Các mô hình của kiến trúc hệ thống ứng dụng hỗ trợ - thiết kế kiến trúc phần mềm
v    Các mô hình của kiến trúc hệ thống ứng dụng hỗ trợ (Trang 59)

TỪ KHÓA LIÊN QUAN

w