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

Bài giảng Nhập môn công nghệ phần mềm: Chương 6 - Nguyễn Thanh Bình

13 55 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 13
Dung lượng 335,77 KB

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

Nội dung

Bài giảng Nhập môn công nghệ phần mềm - Chương 6: Thiết kế phần mềm cung cấp cho người học các kiến thức: Định nghĩa thiết kế phần mềm, các giai đoạn thiết kế, thiết kế và sự thay đổi, thiết kế hướng mô-đun,...Mời các bạn cùng tham khảo.

Trang 1

Thi ế t k ế (6)

Khoa Công nghệ Thông tin

Trường ðại hc Bách khoa

ðại hc ðà Nng

Thi ế t k ế ?

 phân tích bài toán/v ấ n ñề

 xu ấ t phát t ừ yêu c ầ

 mô t ả m ộ t ho ặ c nhi ề u gi ả i pháp

 ñ ánh giá các gi ả i pháp, ch ọ n gi ả i pháp t ố t nh ấ t

 ở m ộ t m ứ c tr ừ u t ượ ng nh ấ ñị nh

 s ử d ng các mô hình

 3 tính ch ấ t

 tr ả l ờ i câu h ỏ i “nh ư th ế nào”

 mô t ả ch ủ y ế u là c ấ u trúc

 b qua các chi ti ế t cài ñặ t

• gi ả i pháp tr ừ u t ượ ng ≠ gi ả i pháp c ụ th ể

Trang 2

Các giai ñ o ạ n thi ế t k ế

 Ho ạ t ñộ ng thi ế t k ế xu ấ t hi ệ n trong các mô hình phát tri ể n khác nhau

 Hai giai ñ o ạ n thi ế t k ế chính

 Thiết kếkiến trúc

• phân tích gi ả i pháp thành các thành ph ầ

• ñị nh ngh ĩ a giao di ệ n gi ữ a các thành ph ầ

• ñị nh ngh ĩ a ph ầ n v ấ n ñề ñượ c gi ả i quy ế t b ở i m ỗ i thành ph ầ

• có th ể ñượ c th ự c hi ệ n b ở i nhi ề u m ứ c tr ừ u t ượ ng

 Thiết kếchi tiết

• thi ế t k ế thu ậ t toán, c ấ u trúc d ữ li ệ u

Các giai ñ o ạ n thi ế t k ế

Architectural design

Abstract specificatio n

Interface design

Component design

Data structure design

Algorithm design

System architecture

Software specification specificationInterface specificationComponent

Data structure specification

Algorithm specification

Requirements specification

Design activities

Design products

Trang 3

Các giai ñ o ạ n thi ế t k ế

 Architectural design

 xác ñị nh các h ệ th ố ng con

 Abstract specification

 ñặ c t ả các h ệ th ố ng con

 Interface design

 mô t ả giao di ệ n các h ệ th ố ng con

 Component design

 phân tích h ệ th ố ng con thành các thành ph ầ

 Data structure design

 các c ấ u trúc d ữ li ệ u l ư u tr ữ d ữ li ệ u c ủ a bài toán

 Algorithm design

 thi ế t k ế thu ậ t toán cho các hàm/mô- ñ un

T ạ i sao ph ả i thi ế t k ế ?

 có m ộ t ki ế n trúc t ố t

 làm chủ ñược cấu trúc hệthống

 “chia ñểtrị”

 ñạ t ñượ c các tiêu chu ẩ n ch ấ t l ượ ng

 tái sử dụng / dễkeỉem thử/ dễbảo trì

 thi ế t k ế hướ ng ñế n s ự thay ñổ i (design for change)

Trang 4

Thi ế t k ế và s ự thay ñổ i

 Thay ñổ i = tích ch ấ t ñặ c tr ư ng c ủ a ph ầ n

m ề m

 D ự báo thay ñổ i là c ầ n thi ế t

 giảm chi phí bảo trì

 D ự báo thay ñổ i là khó khăn

 sự thay ñổi thường không ñược xác ñịnh

trước

 nhiều yếu tố thay ñổi cùng lúc

 thời ñiểm thay ñổi là khó có thể biết trước

Thi ế t k ế và s ự thay ñổ i

thu ậ t toán

c ấ u trúc d ữ li ệ u

bi ể u di ễ n d ữ li ệ u bên ngoài

thi ế t b ị ngo ạ i vi

môi tr ườ ng xã h ộ i

yêu c ầ u khách hàng

Trang 5

Thi ế t k ế hướ ng mô- ñ un

 Ph ầ n m ề m là t ậ p h ợ p g ồ m các mô- ñ un

t ươ ng tác v ớ i nhau

 Mô- ñ un hóa ñ óng vai trò quan tr ọ ng ñể có

ñượ c ph ầ n m ề m ch ấ t l ượ ng v ớ i chi phí th ấ p

 M ụ c ñ ích thi ế t k ế h ệ th ố ng

 xác ñịnh các mô-ñun có thể

 xác ñịnh tương tác giữa các mô-ñun

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 Các tiêu chu ẩ n ñể ñ ánh giá m ộ t ph ươ ng pháp thi ế t k ế hướ ng mô- ñ un

 tính phân rã (modular decomposability)

 tính tổng hợp (modular composability)

 tính dễhiểu (modular understandability)

 tính liên tục (modular continuity)

 tính bảo vệ(modular protection)

Trang 6

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 tính phân rã (modular decomposability)

 phân rã vấn ñềthành các vấn ñềcon nhỏ

hơn

 có thểgiải quyết các vấn ñềcon một cách

ñộc lập

 các phương pháp thiết kế từtrên xuống (to-down design) thỏa mãn tiêu chuẩn này

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 tính t ổ ng h ợ p (modular composability)

 các mô-ñun dễdàng ñược kết hợp với nhau

ñể tạo nên các hệthống mới

 có mối quan hệchặt chẽvới tính tái sử dụng

 tính tổng hợp có thể xung ñột với tính phân rã

• phân rã thành các mô- ñ un chuyên bi ệ t thay vì các mô- ñ un t ổ ng quát

Trang 7

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 tính dễhiểu (modular understandability)

 thi ế t k ế các mô- ñ un m ộ t cách d ễ hi ể

 tính ch ấ t m ỗ i mô- ñ un

• m ỗ i mô- ñ un có d ễ hi ể u ?

• các tên s ử d ng có ý ngh ĩ a ?

• cso s ử d ng thu ậ t toán ph ứ c t ạ p ?

 Ví d ụ

 s ử d ng “goto”

 ch ươ ng trình vài nghìn dòng l ệ nh, nh ư ng không s ử

d ng hàm/th ủ t ụ

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 tính liên t ụ c (modular continuity)

 một sự thay ñổi trong ñặc tảyêu cầu chỉdẫn

ñến sự thay ñổi trong một (hoặc một sốít) mô-ñun

 Ví dụ

☺ không s ử d ng s ố ho ặ c chu ỗ i ký t ự trong chương

trình, ch ỉ ñượ c s ử d ng các h ằ ng ñ ã ñị nh ngh ĩ a

 s ử d ng m ả ng

Trang 8

Các tiêu chu ẩ n c ủ a m ộ t

ph ươ ng pháp thi ế t k ế

 tính b ả o v ệ (modular protection)

 kiến trúc ñươc thiết kếsao cho nếu một ñiều

kiện bất thường xảy ra, chỉmột (hoặc một số

ít) mô-ñun bị ảnh hưởng

Thi ế t k ế ki ế n trúc

các thành ph ầ n/mô- ñ un

• hàm / nhóm các hàm / lớp

quan h ệ

• sửdụng / gọi / thừa kế

Trang 9

Ch ấ t l ượ ng c ủ a ki ế n trúc

 m ỗ i mô- ñ un có tính k ế t c ố cao (high cohesion)

 một mô-ñun là một ñơn vịlô-gíc

 toàn bộ mô-ñun cùng ñóng góp thực hiện

một mục tiêu

 liên k ế t l ỏ ng l ẽ o (low coupling) gi ữ a các

mô-ñ un

 ít ràng buộc, phụthuộc lẫn nhau

 d ễ hi ể u

 ñị nh ngh ĩ a r ỏ ràng

 các mô-ñun và quan hệgiữa chúng

Các lo ạ i ki ế n trúc

 Ba lo ạ i mô hình ki ế n trúc th ườ ng ñượ c s ử

d ụ ng

 chia sẽ dữliệu: mô hình “Repository”

 chia sẽ dịch vụ, servers: mô hình “Client-Server”

 mô hình lớp (layered model)

Trang 10

Mô hình “Repository”

 Nguyên t ắ c

 dữliệu chia sẽ ñược tập trung trong một CSDL

 các hệthống con ñều truy cập vào CSDL chung

 Khi m ộ t l ượ ng d ữ li ệ u l ớ n c ầ n chia s ẽ gi ữ a các h ệ th ố ng con

 mô hình “Repository” thường ñược sửdụng

Mô hình “Repository”

Trang 11

Mô hình “Repository”

 Ư u di ể m

 ñơn giản

 hiệu quảkhi chia sẽ lượng dữliệu lớn

 sự ñộc lập của các hệthống con

 H ạ n ch ế

 các hệthống con phải thống nhất trên mô hình dữliệu “repository”

 khó khăn khi phân tán dữliệu

Mô hình “Client-Server”

 Nguyên t ắ c

 mô hình phân tán: dữliệu và xử lý ñược phân tán trên nhiều thành phần khác nhau

 H ệ th ố ng bao g ồ m

 các servers cung cấp các dịch vụ

• có th ể có nhi ề u servers

 các clients yêu cầu các dịch vụ

 phương thức trao ñổi

• m ạ ng hay trên m ộ t máy tính

Trang 12

Mô hình “Client-Server”

 Ví d ụ

Mô hình “Client-Server”

 Ư u ñ i ể m

 s ử d ng hi ệ u qu ả m ạ ng

 d dàng thêm server m ớ i ho ặ c nâng c ấ p server hi ệ n

t ạ i

 phân tán d ữ li ệ u d ễ dàng

 H ạ n ch ế

 m ỗ i h ệ th ố ng con quan lý d ữ li ệ u riêng c ủ a nó

• có th ể d n ñế n d ư th ừ a

 không có ki ế n trúc t ậ p trung ghi nh ậ n các dich v ụ

• khó khăn ñể xác ñị nh d ữ li ệ u hay d ị ch v ụ s ử d ng

Trang 13

Mô hình l ớ p

 Nguyên t ắ c

 tổchức hệthống thành tập hợp các lớp

 mỗi lớp cung cấp tập hợp các dịch vụ

 ñượ c s ử d ụ ng ñể mô t ả quan h ệ gi ữ a các

h ệ th ố ng con

 khi giao di ệ n c ủ a m ộ t l ớ p thay ñổ i, ch ỉ l ớ p

k ế c ậ n b ị ả nh h ưở ng

 h ỗ tr ợ mô hình phát tri ể n t ă ng tr ưở ng

Mô hình l ớ p

Ngày đăng: 11/01/2020, 20:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm