1. Trang chủ
  2. » Thể loại khác

CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm

67 15 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

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 4,59 MB

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

Nội dung

Thiết kế là gì? Thiết kế tạo ra một biểu diễn hay mô hình của phần mềm hướng thực thi  Mô hình thiết kế cung cấp các thông tin về kiến trúc architecture, Giao tiếp interfaces, thành p

Trang 4

1 Thiết kế?

Trang 5

Thiết kế là gì?

 Thiết kế tạo ra một biểu diễn hay mô hình của phần mềm hướng thực thi

 Mô hình thiết kế cung cấp các thông tin về kiến trúc

(architecture), Giao tiếp (interfaces), thành phần

(components) và dữ liệu (data)

Trang 6

2 hướng thiết kế

Trang 7

Hướng dẫn thiết kế

 Một thiết kế phải đưa ra một kiến trúc mà

 Dùng mẫu (pattern) hay kiểu (style) kiến trúc được thừa nhận

tốt

 Có thể thi hành theo cách tiến hóa

 Thiết kế phải có tính module, thiết kế phải đưa ra những thành phần mà độc lập chức năng

 Thiết kế được đưa ra từ việc dùng phương pháp lặp

Trang 8

Kiến trúc (Architecture)?

 Kiến trúc phần mềm là một sự tổ chức có tính căn bản

của một hệ thống chứa những thành phần, những mối

quan hệ lẫn nhau của các thành phần này và của các

thành phần này với môi trường, nó chứa đựng những

nguyên lý định hướng cho việc thiết kế và tiến hóa kiến trúc

 Kiến trúc có tính tổng thể

 Kiến trúc cho ta một hình ảnh về hệ thống phần mềm

 Module và hệ thống con (sub-systems):

 Module là một thành phần hệ thống mà cung cấp dịch vụ cho

những thành phần khác nhưng không được xem là một hệ thống riêng biệt

 Một hệ thống con hoạt động có tính độc lập cao

Trang 9

"four bedrooms, three baths, lots of glass "

customer requirements

Trang 10

Safehome product

Internet-based system

Trang 12

Thiết kế dữ liệu ở mức kiến trúc

 Thiết kế một hay nhiều cơ sở dữ liệu để hỗ trợ kiến trúc ứng dụng

Trang 13

2 Thiết kế mô hình hệ thống

 Trong quá trình thiết kế kiến trúc hệ thống, hoạt động đầu tiên phải thực hiện là xây dựng mô hình tổ chức hệ

thống.

 Phương pháp tổ chức hệ thống thường được sử dụng:

 Kiến trúc gọi trả về

 Mô hình client – server

Trang 14

Mô hình trung tâm dữ liệu

Trang 15

Kho dữ liệu

 Hệ thống con phải biến đổi dữ liệu có thể theo 2 cách:

 Chia sẻ dữ liệu trung tâm

 Khi cần chia sẻ dữ liệu lớn thì thường dùng kho dữ liệu trung tâm

Trang 16

Thuận lợi – bất lợi

 Thuận lợi

 Hiệu quả trong chia sẻ

 Hệ thống con không quan tâm tới việc xử lý dữ liệu của

trung tâm dữ liệu (an toàn, backup…)

 Bất lợi

 Tất cả phải theo mô hình dữ liệu của kho

 Tiến hóa dữ liệu thì khó và đắt

Trang 17

Kiến trúc gọi trả về

 Có 2 loại:

 Kiến trúc chương trình chính /chương trình con (main

program /subprogram)

 Kiến trúc gọi thủ tục từ xa (remote procedure call

architecture): các thành phần được phân bổ trên nhiều

máy tính

Trang 18

Chương trình chính /chương trình con

Main program

Controller subprogram

Controller subprogram

Controller subprogram

Controller subprogram

Controller subprogram

Controller subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram

Application subprogram Application subprogram

Trang 19

Mô hình phân lớp

lớp cung cấp một tập các dịch vụ Hệ thống này tương đối

phức tạp

Trang 20

Mô hình phân lớp

 Tổ chức hệ thống thành một tập những tầng (hay máy

trừu tượng), những tầng sẽ cung cấp một tập những dịch vụ

 Các hệ thống con tương tác với nhau qua tầng giao tiếp

 Khi một tầng thay đổi chỉ những tầng liền kề mới bị ảnh hưởng

 Việc cấu trúc hệ thống theo mô hình này rất khó

Trang 21

Mô hình client - server

 Mô hình kiến trúc client-server bao gồm một tập hợp các server cung cấp dịch vụ và các client truy nhập và sử

dụng các dịch vụ đó

 Các thành phần chính của mô hình này bao gồm:

Trang 22

Mô hình client - server

Trang 23

Thuận lợi - bất tiện

 Tổng quát hóa của kiến trúc Client /Server

 Client cũng có thể đóng vai trò server và ngược lại

Trang 24

3 Thiết kế điều khiển

 Có 2 loại điều khiển:

 Điều khiển tập trung: một hệ thống con chính chịu

trách nhiệm kiểm soát, khởi tạo hoặc dừng các hệ

 Môhình lan truyền (Broadcast)

 Mô hình hướng ngắt (Interrupt-driven)

Trang 25

Mô hình gọi - trả lời (call-return)

khiển nằm ở đỉnh của cấu trúc phân cấp và di chuyển dần

xuống dưới Mô hình này thường được áp dụng cho các hệ thống tuần tự (không là mô hình cấu trúc)

Trang 26

Mô hình quản lý

thành phần hệ thống điều khiển việc khởi tạo, ngừng, hoặc cộng tác với các hệ thống khác

Trang 27

Mô hình lan truyền (Broadcast)

 Trong mô hình lan truyền, sự kiện được lan truyền tới tất cả các hệ thống con Hệ thống con được thiết kế để điều khiển

sự kiện này sẽ đáp ứng sự kiện

trên nhiều máy tính khác nhau trong cùng một mạng

 Phát triển tương đối đơn giản

 Hai phân hệ cùng sinh sự kiện có thể gây xung đột

Trang 28

Mô hình hướng ngắt (Interrupt-driven)

gian thực (Có thể kết hợp với mô hình quản lý tập trung)

đáp ứng sự kiện

phức tạp và phụ thuộc phần cứng

Trang 29

4 Thiết kế Module

What is the "right" number of modules for a specific software design?

cost of software

module integration cost module development cost

Trang 30

Width

Trang 31

Kết dính (Cohension) và liên kết (coupling)

Trang 32

Liên kết và phụ thuộc

Uncoupled

Loosely Couple: Some Dependencies

Highly Couple: Many Dependencies

Trang 33

 Liên kết đo lường mức độ kết nối với nhau giữa các thành

phần của hệ thống

 Liên kết lỏng có nghĩa là khi một thành phần thay đổi Khả

năng ảnh hưởng của nó đến các thành phần khác là thấp

 Việc trao đổi thông tin điều khiển và những biến chia sẻ dẫn tới liên kết chặt

 Liên kết lỏng có thể đạt được bằng cách truyền thông giữa các thành phần bằng cách truyền tham số hay thông điệp

message hay tham số, hay là ‘state decentralisation’ (như

trong đối tượng)

Liên kết

Trang 34

Liên kết chặt

Trang 35

Liên kết lỏng

Trang 37

Liên kết tem (stamp)

 Liên kết giữa hai thành phần là một phần của cấu trúc hoặc toàn bộ cấu trúc

 Ví dụ:

integer Operation_A(){

int x,y;

Class_B cB; Class_C c;

Trang 38

Liên kết điều khiển

 Một thành phần gởi các yếu tố điều khiển tới một thành phần khác thì hai thành phần này có control coupling

 io (command, device buffer, length);

 where command is 0,1,2 for read, write open; better

to use read (device buffer, length);

+ A() {

int x = 1;

sub(x, dk)

… }

Trang 39

Liên kết chung và Liên kết nội dung

Liên kết chung: hai thành phần cùng tham chiếu đến

một cấu trúc toàn cục (hoặc biến toàn cục)

Liên kết nội dung: nếu một thành phần tham khảo trực

tiếp đến nội dung của một thành phần khác (biến đổi mã (LISP, Assembler) , con trỏ hay truyền tham chiếu)

Trang 40

Trung bình Cao

Rất cao

Trang 43

…Mức kết dính…

 Kết dính thời gian (Temporal cohesion (weak))

 Nhóm các thành phần được kích hoạt ở thời gian tương tự

call init_calculations

Trang 44

…Mức kết dính…

 Kết dính thủ tục (Procedural cohesion (weak))

 Các phần bên trong một thành phần thể hiện một trình tự điều khiển duy nhất (a single control sequence)

 Tất cả các phần trong một thành phần hoạt động trên cùng dữ liệu tương tự (display and log temperature)

 Kết dính trình tự (Sequential cohesion (medium))

 output của một phần trong thành phần là input của một phần

khác

Trang 45

Mức kết dính

 Kết dính chức năng (Functional cohesion (strong))

 Loại kết dính tối ưu

 Mỗi phần của một thành phần là cần thiết cho việc thực thi

một chức năng duy nhất

 Thực hiện một hoạt động được xác định rõ duy nhất trên một đối tượng dữ liệu (vd: calculate average)

Trang 46

Kết dính

 Chức năng: liên quan tới thực

hiện chức năng duy nhất

 Trình tự: output của hoạt động

này là input của thành phần kế

tiếp

 Thông tin: những hoạt động trên

cùng dữ liệu tương tự thì thuộc

về một module

 Thủ tục: Các phần bên trong một

thành phần thể hiện một trình tự

điều khiển duy nhất

 Thời gian: Các phần của module

cùng hoạt động ở thời gian

tương tự

 Logic: Những phần của module

tất cả hướng về phía thực hiện

một tập những hoạt động tương

tự

 Ngẫu nhiên: Những phần của

module không có quan hệ thiết

yếu

Functional Sequential Communicational Procedural Temporal Logical Coincidental

Trang 47

5 Các mẫu thiết kế

 Creational Pattern (Mẫu kiến tạo): 5 mẫu

 Abstractional Factory Method Pattern.

 Builder pattern.

 Factory Method pattern.

 Prototype Pattern.

 Singleton Pattern.

Trang 48

Tư duy hướng đối tượng

problem domain

Đối tượng - objects

Trang 49

Xây dựng một lớp (Class)

Trang 50

class name attributes:

operations:

Trang 51

Thông điệp - Messages

Trang 52

Mẫu thiết kế Singleton

 Cho phép có một thể hiện của lớp Vd: Find Dialog,

Unikey, một đối tượng toàn cục lưu giữ kết nối CSDL…

Trang 54

Mẫu thiết kế Observer

 Bài toán thực tế: Một đối tượng thời gian để đếm giờ được thể hiện dưới nhiều hình thức như đồng hồ số, đồng hồ kim… Ta có thể

 Dễ dàng thêm, bớt nhiều đối tượng thể hiện

 Khi tay đổi đối tượng thời gian thì tất cả các thể hiện của thời gian đều thay đổi theo

Trang 55

Mô hình Observer

A

B C

Trang 56

AnalogClock

Update() ClockTimer *sub;

Trang 58

MonthlyEmployee : me getPay()

getName()

MonthlyEmployee

getMonthlyPay() getEmployeeName()

Client - unaltered

Target

-unaltered.

Adaptee unaltered

Adaptor

Contains an adaptee object

Provides own implementation of

target’s methods – which call

Trang 59

public class MonthlyAdapter

extends WeeklyEmployee {

private MonthlyEmployee me; //composed with adaptee

//created with adaptee object

public MonthlyAdapter(MonthlyEmployee memp)

{ me = memp; }

//own implementation of target method,

//adapting to use adaptee’s instead

public String getName()

Trang 60

PayProcessor.printPay(ma);

}

}

Trang 61

Draw()

Text Line Rectangle

Add(Graphic) Remove(Graphic) GetChild(int)

Picture

*

Mẫu composite

Trang 62

VD: Hệ thống đặt phòng

Trang 63

Kiến trúc

Trang 64

Thành phần

Trang 65

Chọn ngôn ngữ

Trang 66

Bảo trì và phát triển

Ngày đăng: 11/07/2021, 11:12

HÌNH ẢNH LIÊN QUAN

Môhình trung tâm dữ liệu - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình trung tâm dữ liệu (Trang 14)
Môhình phân lớp - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình ph ân lớp (Trang 19)
Môhình client-server - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình client server (Trang 22)
Môhình gọi - trả lời (call-return) - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình g ọi - trả lời (call-return) (Trang 25)
Môhình quản lý - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình qu ản lý (Trang 26)
Môhình lan truyền (Broadcast) - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình lan truyền (Broadcast) (Trang 27)
Môhình hướng ngắt (Interrupt-driven) - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
hình h ướng ngắt (Interrupt-driven) (Trang 28)
Môhình Observer - CÔNG NGHỆ PHẦN MỀM Chương 6 Thiết kế phần mềm
h ình Observer (Trang 55)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w