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

Giới thiệu công nghệ phần mềm

95 126 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 95
Dung lượng 0,98 MB

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 nguyên t ắ c c ơ b ả n Chặt chẽrigor and formality Chia nhỏseparation of concerns Mô-ñun hóa modularity Trừu tượng abstraction Phòng ngừa sự thay ñổi anticipation of change Tổn

Trang 5

 Công ngh ệ ph ầ n m ề m

 nghiên cứu và phát triển các phương pháp,

kĩthuật và công cụnhằm xây dựng các

Trang 6

 Các nguyên t ắ c c ơ b ả n

 Chặt chẽ(rigor and formality)

 Chia nhỏ(separation of concerns)

 Mô-ñun hóa (modularity)

 Trừu tượng (abstraction)

 Phòng ngừa sự thay ñổi (anticipation of

change)

 Tổng quát hóa (generality)

 Giải quyết từng bước (incrementality)

 Ch ặ t ch ẽ (rigor and formality)

 sửdụng mô hình lý thuyết và toán học

Trang 7

• Gi ả i quy ế t m ộ t ph ầ n nh ỏ s ẽ ñơn giả n h ơ n

• “chia ñể tr ị ” (divide and conquer)

 Quan h ệ m ậ t thi ế t v ớ i nguyên t ắ c “chia nh ỏ ”

 Các ph ươ ng pháp mô- ñ un hóa

• chi ế n l ượ c t ừ trên xu ố ng (top-down)

• chi ế n l ượ c t ừ dướ i lên (bottom-up)

 Ch ấ t l ượ ng c ủ a mô- ñ un hóa

• liên k ế t l ỏ ng l ẻ o (low coupling)

• k ế t c ố cao (high cohesion)

Trang 8

• mô hình cho ng ườ i s ử d ụ ng

• mô hình cho ng ướ i phát tri ể n

Trang 9

 T ổ ng quát hóa (generality)

 xem xét vấn ñềtrong ngữcảnh tổng quát

Trang 19

• vi ế t tài li ệ

• insertions/invariants

• chu ẩ n l ậ p trình (coding standards)

• l ậ p trình theo c ặ p (pair programming)

• ngu ồ n tài nguyên ki ể m th ử

 mã ngu ồ n ñượ c ki ể m th ử theo tài li ệ u thi ế t k ế

 S ả n ph ẩ m: báo cáo ki ể m th ử

Trang 24

• mong ñợ i không th ự c t ế v ề ti ế n tri ể n c ủ a d ự án

 người phát triển có sựchọn lựa không tốt

• phù h ợ p cho nguyên m ẫ u, nh ư ng không phù h ợ p

Trang 25

Phiên bản

ñầu tiên

Phiên b ả n trung gian

Trang 26

Mô hình xo ắ n ố c

(spiral model)

Risk analysis Risk analysis Risk analysis

Risk analysis Proto- type 1 Prototype 2 Prototype 3 Opera-tional

protoype

Concept of Operation

Simulations, models, benchmarks

S/W requirements Requirement validation Design V&V

Product design Detailed design Code Unit test Integration test Acceptance test Service Develop, verify

next-level product

Evaluate alternatives identify, resolve risks

Development plan

Requirements plan Life-cycle plan REVIEW

Mô hình xo ắ n ố c

 nh ấ n m ạ nh vi ệ c ñánh giá các ri ro

 ph ầ n m ề m ñượ c xây d ự ng theo nhi ề u chu k ỳ

 m ỗ i chu k ỳ tương ứ ng v ớ i m ộ t s ả n ph ẩ m c ủ a m ộ t giai

ñ ạ n phát tri ể n ph ầ n m ề m

 xác ñị nh các m ụ c tiêu, gi ả i pháp, ràng bu ộ c

 ñ ánh giá các gi ả i pháp, xác ñị nh các nguy c ơ và tìm

cách gi ả i quy ế t chúng

 phát tri ể n và ki ể m th ử s ả n ph ẩ m c ủ a chu k ỳ này

 l ậ p k ế ho ạ ch cho chu k ỳ ti p theo

Trang 27

• ñ ánh giá th ậ t chi ti ế t, phát tri ể n d ầ n d ầ n, tái s ử d ng, lo ạ i b ỏ ớ t các

yêu c ầ u không c ầ n thi ế t

• trao ñổ i th ườ ng xuyên v ớ i ng ườ i s ử d ng, có tài li ệ u h ướ ng d ẫ n s ử

d ng s ớ m

• c ầ n phân tích các công vi ệ c, xây d ự ng các hình m ẫ u tr ướ c,

• phát tri ể n các ph ầ n ổ n ñị nh tr ướ c

 v ấ n ñề v ề hi ệ u qu ả

• c ầ n ph ả i mô ph ỏ ng, ño lườ ng, th ử nghi ệ m

• phân tích k ỹ tính kh ả thi v ề m ặ t k ỹ thu ậ t

Trang 28

Góc nhìn kthut: quan tâm ñế n

công ngh ệ , ki ể m tra ch ấ t l ượ ng,

Trang 29

Bước lặp chuyển giao

Bước lặp chuyển giao

Bước lặp phát triển

Mẫu thử (maquette) Nguyên mẫu kiến trúc Nguyên mẫu kiến trúc Nguyên mẫu phát triển Nguyên mẫu phát triển

Bước lặp Kết quả

Phiên bản chính thức Phiên bản β

Phiên bản β

Trang 30

Bước lặp chuyển giao

Bước lặp chuyển giao

Bước lặp phát triển

Mẫu thử (maquette) Nguyên mẫu kiến trúc Nguyên mẫu kiến trúc Nguyên mẫu phát triển Nguyên mẫu phát triển

Phiên bản chính thức Phiên bản β

Bước lặp Kết quả

Phiên bản β

Giai ñoạn

Khởi ñầu Soạn thảo

Xây dựng

Chuyển giao

Mô hình h ợ p nh ấ t

 Mô hình h ợ p nh ấ t và UML

Trang 37

S ố ñ úng

S ố sai

B ấ m s ố

K ế t n ố ñượ c

Trang 41

t1

Trang 42

m ộ t th ẻ , thì chuy ể n ti ế p này là có th ểvượt qua ñượ c,

 n u chuy ể n ti ế p này ñượ c th ự c hi ệ n thì t ấ t c ả các nút

vào c ủ a chuy ể n ti ế p s ẽ b ị ấ y ñ i m ộ t th ẻ , và m ộ t th ẻ

s ẽ ñượ c thêm vào t ấ t c ả các nút ra c ủ a chuy ể n ti ế

 n u nhi ề u chuy ể n ti ế p là có th ể vượ t qua thì ch ọ n

chuy ể n ti ế p nào c ũ ng ñượ c

hoc t3 ñược vượt qua

hoc t4 ñược vượt qua

Trang 43

M ạ ng Petri

Ví d ụ

Trang 45

rg2 red2

yellow2 yr2

gy2 safe2

safe1

Trang 46

M ạ ng Petri

 Ví dụ2: mô tảchu kỳsống của một người

thanh niên trẻ con

send_mail

read_mail

Mô tả trường hp 1 người viết và 2 người ñọc ?

Mô tả trường hp hp thư nhn chcha nhiu nht 3 thư ?

Trang 47

M ạ ng Petri

 Ví dụ4: tình huống nghẽn (dead-lock)

2 2

P6

P4

P3 P1

M ạ ng Petri

 Ví dụ4: giải pháp chống nghẽ

2 2

P6

P4

P3 P1

Trang 49

S ả n xu ấ t

P2

C2 C1

 pre-condiition: ñặ c t ả các ràng bu ộ c trên các tham

s ốtrước khi hàm ñượ c th ự c thi

 post-condition: ñặ c t ả các ràng bu ộ c trên các tham

s ốsau khi hàm ñượ c th ự c thi

 có th ể s ử d ng ngôn ng ữ phi hình th ứ c, hình th ứ c

ho ặ c ngôn ng ữ l ậ p trình ñể ñặ c t ả các ñ i ề u ki ệ

Trang 50

pre ∀ i, 1 ≤ i ≤ n, a[i] ≤ a[i+1]

post result = ( ∃ i, 1 ≤ i ≤ n, a[i] = e)

Trang 51

¬_ : Boolean Boolean _ ∧∧∧∧_ : Boolean x Boolean Boolean _ ∨∨∨∨_ : Boolean x Boolean Boolean

mt thao tác không có tham slà mt hng s

mt giá trca kiu tru tượng ñịnh nghĩa ñược biu din bi kí t“_”

Trang 52

¬_ : Boolean Boolean _ ∧∧∧∧_ : Boolean x Boolean Boolean _ ∨∨∨∨_ : Boolean x Boolean Boolean

mt thao tác không có tham slà mt hng s

mt giá trca kiu tru tượng ñịnh nghĩa ñược biu din bi kí t“_”

vect : Integer x Integer Vector

init : Vector x Integer Boolean

ith : Vector x Integer Element

Trang 53

infborder(v) ≤≤≤≤i ≤≤≤≤supborder(v) ith(change-ith(v, i, e), i) = e

infborder(v) ≤≤≤≤i ≤≤≤≤supborder(v) &infborder(v) ≤≤≤≤j ≤≤≤≤supborder(v) &i ≠≠≠≠j

ith(change-ith(v, i, e), j) = ith(v, j)

init(vect(i, j), k) = false

infborder(v) ≤≤≤≤i ≤≤≤≤supborder(v) init(change-ith(v, i, e), i) = true

infborder(v) ≤≤≤≤i ≤≤≤≤supborder(v) &i ≠≠≠≠j init(change-ith(v, i, e), j) = init(v, j)

Trang 56

 các sơñồthao tác (operation schemas)

• mô t ả các thao tác (thay ñổ i tr ạ ng thái)

 các toán tử sơ ñồ(schema operations)

Trang 61

 Kh ở i gán bi ế

 Khai báo thao tác trên bi ế

 kí hi ệ u ∆ bi ể u di ễ n bi ế n tr ạ ng thái b ị thay ñổ i b ở i thao

tác

 kí hi ệu ‘ (dấ u nháy ñơ n) bi ể u di ễ n giá tr ị m ớ i c ủ a bi ế

 Thao tác có th ể có các tham s ố vào và ra

 tên tham s ố vào k ế t thúc b ở i kí t ự “?”

 tên tham s ố ra k ế t thúc b ở i kí t ự “!”

Trang 62

• t ậ p h ợ p các nhân viên ñang vào in

• t ậ p h ợ p các nhân viên ñang ra out

b ấ t bi ế n c ủ a h ệ th ố ng

Trang 64

Ví d ụ 1

 ðặc tảthao tác kiểm tra một nhân viên vào hay ra

 Thao tác này cho k ế t qu ả là ph ầ n t ử c ủ a ki ể

QueryReply == is_in | is_out

 ðặ c t ả thao tác

Ví d ụ 1

 Khởi tạo hệthống

Trang 65

• ð i ề u ki ệ n trên các tham s ố vào

• Quan h ệ gi ữ a tr ạ ng thái tr ướ c và sau

• Tham s ố k ế t qu ả

 Khi gán

Ví d ụ 1

 Hãy ñặ c t ả các thao tác

 Register: thêm vào một nhân viên mới

 QueryIn: cho biết những nhân viên ñang

vào/làm việc

Trang 66

 Schema3 == Schema1 ∧ Schema2

 Schema4 == Schema1 ∨ Schema2

Trang 69

Ví d ụ 1 (ti ế p)

 C ả i ti ế n thao tác CheckIn

 Xử lý thêm hai trường hợp lỗi

1 name? ñã ñượ c ghi nh ậ

2 name? ch ư a ñượ c ñă ng ký

Ví d ụ 1 (ti ế p)

 C ả i ti ế n thao tác CheckIn

 Xử lý thêm hai trường hợp lỗi

Trang 72

dom(directory) = {mary, john, jim, jane}

 t ậ p h ợ p các thành ph ầ n th ứ hai trong m ộ t quan h ệ

Trang 74

 Tìm số ñiện thoại của một người

 Tìm tên theo số ñiện thoại

có th ể c ả i ti ế n ?

Trang 75

Ví d ụ 2

 Xóa số ñiện thoại của một người

Ví d ụ 2

 Xóa các mục trong danh bạ ứng với một tên

 Xóa các mục trong danh bạ ứng với một tập các

tên

Trang 76

Partial Function

 là quan hệmà mỗi phần tửtrong domain cho một

giá trịduy nhất trong range

Trang 80

Ví d ụ 3

 Tìm ngày sinh của một người

 thông báo khi tìm th ấ y

 khi ñ

Ví d ụ 3

 Tìm những người cùng ngày sinh

Trang 84

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

Component design

Data structure design

Algorithm design

Algorithm specification

Requirements

specification

Design activities

Design products

Trang 86

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

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

Trang 87

 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

 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 88

 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

Trang 89

 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)

Trang 90

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ố

Trang 91

 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 93

 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

Ngày đăng: 03/12/2015, 16:21

HÌNH ẢNH LIÊN QUAN

Hình khác nhau - Giới thiệu công nghệ phần mềm
Hình kh ác nhau (Trang 31)
Hình thức ? - Giới thiệu công nghệ phần mềm
Hình th ức ? (Trang 35)
Hình phát triển khác nhau - Giới thiệu công nghệ phần mềm
Hình ph át triển khác nhau (Trang 84)
Hình dữ liệu “repository” - Giới thiệu công nghệ phần mềm
Hình d ữ liệu “repository” (Trang 93)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w