1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Framework và ứng dụng trong việc xây dựng phần mềm

122 28 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 122
Dung lượng 2,21 MB

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

Nội dung

Ph亥n l噂n các 8鵜nh ngh a 8隠u nh医t trí r茨ng, m瓜t framework h逢噂ng 8嘘i t逢嬰ng là m瓜t ki院n trúc ph亥n m隠m có th吋 s穎 d映ng l衣i, bao g欝m c違 thi院t k院 và mã th詠c hi羽n.Tuy nhiên, l衣i không có 8鵜nh ng

Trang 1

Ngày nay, m瓜t trong nh英ng v医n 8隠 quan tr丑ng c栄a ngành công ngh羽 ph亥n

m隠m là v医n 8隠 s穎 d映ng l衣i Ngay t瑛 th運i k "8亥u tiên, ng逢運i ta 8ã c嘘 g逸ng s穎 d映ng

l衣i ph亥n m隠m b茨ng cách xây d詠ng tr逢噂c các th逢 vi羽n l噂p Trong các th逢 vi羽n l噂pnày có ch泳a các hàm và th栄 t映c th逢運ng hay 8逢嬰c s穎 d映ng trong các 泳ng d映ng ph亥n

m隠m Tuy nhiên, cách s穎 d映ng l衣i này t逢挨ng 8嘘i th映"8瓜ng, vì ch雨 có th吋 s穎 d映ng l衣icác 8o衣n mã có s印n, mà không th吋 s穎 d映ng các thi院t k院 Ý t逢荏ng s穎 d映ng l衣i cácthi院t k院 có s印n 8ã 8逢嬰c th吋 hi羽n qua vi羽c s穎 d映ng các m磯u thi院t k院 M瓜t m磯u thi院t

k院 là m瓜t mô t違 có tên v隠 m瓜t c員p v医n 8隠 và gi違i pháp, nó có th吋"8逢嬰c áp d映ng trong

nh英ng hoàn c違nh khác nhau Tuy nhiên, các m磯u thi院t k院 th逢運ng khó s穎 d映ng vì có

m泳c 8瓜 tr瑛u t逢嬰ng hóa cao Do v壱y, 8吋 có th吋 s穎 d映ng l衣i các thi院t k院 có s印n hi羽u

qu違 h挨n, ng逢運i ta 8ã 8逢a ra khái ni羽m framework Gi嘘ng v噂i các m磯u thi院t k院, cácframework c ng 8逢嬰c s穎 d映ng l衣i d宇 dàng b茨ng cách thu nh壱n l衣i các k鵜ch b違n pháttri吋n ph亥n m隠m thành công Tuy nhiên, khác v噂i m磯u thi院t k院, framework th逢運ng

g逸n v噂i m瓜t mi隠n 泳ng d映ng c映 th吋 và bao g欝m c違 thi院t k院 và mã th詠c hi羽n

A隠 tài c栄a khóa lu壱n này là “Framework và 泳ng d映ng trong vi羽c xây d詠ng

ph亥n m隠m” N瓜i dung c栄a 8隠 tài g欝m các ph亥n sau

T ごng quan vz framework Ph亥n này nêu ra khái ni羽m, các 8員c 8k吋m và phân

lo衣i framework

Ph ⇔¬ng pháp phát triあn framework Ph亥n này 8逢a ra m瓜t ph逢挨ng pháp 8吋 xây

d詠ng framework Ph逢挨ng pháp này g欝m nhi隠u giai 8q衣n là: thu th壱p yêu c亥u vàphân tích, thi院t k院, tri吋n khai, xác minh và th育m 8鵜nh tính h嬰p l羽

Các v Xn 8z trong viうc phát triあn framework Ph亥n này nêu lên các v医n 8隠 g員p

ph違i trong khi phát tri吋n framework nh逢 v医n 8隠 v隠 ph衣m vi c栄a mi隠n 泳ng d映ng, v医n8隠 v隠 l壱p tài li羽u cho framework, …

Mô t V bài toán Lfp lおch và theo dõi tixn 8じ thばc hiうn dば án Ph亥n này là các

phân tích,"8員c t違 yêu c亥u c栄a 泳ng d映ng Qu違n lý d詠 án

Phân tích và thixt kx hう thぐng Ph亥n này là các k院t qu違 c栄a vi羽c phân tích và

thi院t k院 h羽 th嘘ng L壱p l鵜ch và theo dõi ti院n 8瓜 th詠c hi羽n d詠 án

Xây d ばng framework QuVn lý lおch làm viうc Ph亥n này 8逢a ra framework c栄a

mi隠n 泳ng d映ng Qu違n lý l鵜ch làm vi羽c, d詠a trên các k院t qu違 c栄a vi羽c phân tích vàthi院t k院 bài toán L壱p l鵜ch và theo dõi ti院n 8瓜 th詠c hi羽n d詠 án

Trang 2

Ch 逢挨ng 1

Trong m瓜t vài th壱p niên g亥n 8ây, vi羽c s穎 d映ng l衣i ph亥n m隠m 8ã và v磯n là m瓜t

v医n 8隠 quan tr丑ng cho các t鰻 ch泳c phát tri吋n ph亥n m隠m A亥u tiên, ph亥n m隠m 8逢嬰c

s穎 d映ng l衣i d逢噂i hình th泳c là các th逢 vi羽n hàm API hay các th逢 vi羽n l噂p Ti院p theo,các nhà phát tri吋n nh壱n th医y không ch雨 c亥n s穎 d映ng l衣i các 8q衣n mã mà còn c亥n

ph違i s穎 d映ng l衣i c違 các thi院t k院 c栄a ph亥n m隠m Do v壱y, 8ã xu医t hi羽n khái ni羽m v隠design pattern – m磯u thi院t k院 và framework – khung làm vi羽c Các m磯u thi院t k院 là

m瓜t mô t違 có tên v隠 m瓜t c員p v医n 8隠 và gi違i pháp Các mô t違 chi ti院t v隠 m磯u thi院t k院

s胤"8逢嬰c trình b亥y trong m瓜t ch栄"8隠 khác, còn n瓜i dung c栄a ph亥n này s胤 ch雨 trình b亥y

là m瓜t h羽 th嘘ng hoàn ch雨nh H羽 th嘘ng này có th吋"8逢嬰c 8k隠u ch雨nh l衣i 8吋 t衣o ra các泳ng d映ng hoàn ch雨nh Các framework nói chung 8逢嬰c s穎 d映ng và 8逢嬰c phát tri吋nkhi c亥n phát tri吋n m瓜t vài 泳ng d映ng t逢挨ng t詠 M瓜t framework th詠c hi羽n các ph亥nchung gi英a các 泳ng d映ng này Do v壱y, m瓜t framework gi違m công s泳c c亥n thi院t 8吋xây d詠ng các 泳ng d映ng

Ph亥n l噂n các 8鵜nh ngh a 8隠u nh医t trí r茨ng, m瓜t framework h逢噂ng 8嘘i t逢嬰ng là

m瓜t ki院n trúc ph亥n m隠m có th吋 s穎 d映ng l衣i, bao g欝m c違 thi院t k院 và mã th詠c hi羽n.Tuy nhiên, l衣i không có 8鵜nh ngh a nào 8逢嬰c th嘘ng nh医t chung v隠 framework và cácthành ph亥n h嬰p thành c栄a nó

Sau 8ây là m瓜t s嘘 các 8鵜nh ngh a khác nhau ho員c t逢挨ng t詠 nhau v隠 framework8逢嬰c nêu trong [10]:

“M瓜t framework ràng bu瓜c các l詠a ch丑n chính xác v隠 s詠 phân chia tr衣ng thái

và lu欝ng 8k隠u khi吋n, ng逢運i dùng hoàn thi羽n ho員c m荏 r瓜ng framework 8吋 t衣o ra m瓜t泳ng d映ng th詠c t院”

Trang 3

“M瓜t framework là m瓜t t壱p các l噂p mà bao g欝m m瓜t thi院t k院 tr瑛u t逢嬰ng chocác gi違i pháp c栄a m瓜t ho員c các v医n 8隠 liên quan”

“M瓜t framework là m瓜t t壱p các 8嘘i t逢嬰ng mà c瓜ng tác v噂i nhau 8吋 t衣o ra m瓜tt壱p các 8áp 泳ng cho m瓜t 泳ng d映ng ho員c m瓜t vùng h羽 th嘘ng con”

“M瓜t framework là m瓜t t壱p các ký hi羽u c栄a các l噂p c瓜ng tác mà 8衣t 8逢嬰c c違các m磯u ph衣m vi nh臼 và các c挨 ch院 ch栄 y院u 8吋 th詠c hi羽n các yêu c亥u chung và thi院t

Nh逢 v壱y, m瓜t framework bao g欝m m瓜t t壱p các l噂p mà các th吋 hi羽n c栄a chúng

c瓜ng tác v噂i nhau, 8逢嬰c d詠"8鵜nh 8吋 m荏 r瓜ng, s穎 d映ng l衣i cho các 泳ng d映ng c映 th吋

c栄a m瓜t l nh v詠c M瓜t h丑 các v医n 8隠 liên quan, cho phép t鰻ng h嬰p trong m瓜tframework H挨n n英a, các framework 8逢嬰c bi吋u di宇n thành m瓜t ngôn ng英 l壱p trình,

nh逢 v壱y nó cung c医p cho vi羽c s穎 d映ng l衣i c違 mã th詠c hi羽n và thi院t k院

1.1.1.2 EXu trúc cてa mじt framework

M瓜t framework h逢噂ng 8嘘i t逢嬰ng bao g欝m các thành ph亥n sau:

fi Các tài li羽u thi院t k院

Trang 4

Hình 1.1 M嘘i quan h羽 gi英a các thành ph亥n khác nhau trong m瓜t framework [4]

Các thành ph亥n c栄a m瓜t framework 8逢嬰c mô t違 nh逢 sau:

Các tài li うu thixt kx: thi院t k院 c栄a m瓜t framework có th吋 bao g欝m các l逢嬰c 8欝

l噂p, vi院t b茨ng v<n b違n ho員c chí ít là m瓜t ý t逢荏ng trong 8亥u c栄a nhà phát tri吋n

Các giao di うn: các giao di羽n miêu t違"8áp 泳ng bên ngoài c栄a các l噂p Các giao

di羽n có th吋"8逢嬰c s穎 d映ng 8吋 mô hình các vai trò khác nhau trong h羽 th嘘ng, ví

d映 nh逢 các vai trò trong m瓜t m磯u thi院t k院 M瓜t vai trò 8衣i di羽n cho m瓜t nhóm

nh臼 c栄a các ph逢挨ng pháp trong giao di羽n mà liên quan t噂i các ph逢挨ng phápkhác

Các l ずp trなu t⇔ぢng: m瓜t l噂p tr瑛u t逢嬰ng là m瓜t s詠 th詠c hi羽n ch逢a 8亥y 8栄 c栄a

m瓜t ho員c nhi隠u giao di羽n Nó có th吋"8逢嬰c s穎 d映ng 8吋"8鵜nh ngh a cách 8嘘i x穎

mà s胤 là chung cho m瓜t nhóm các thành ph亥n th詠c hi羽n m瓜t nhóm các giao

di羽n

Các thành ph Zn: Gi嘘ng nh逢 các l噂p, các thành ph亥n có th吋"8逢嬰c tích h嬰p v噂i

các l噂p khác Trong hình v胤, có m瓜t m i tên “là m瓜t ph亥n c栄a” gi英a các l噂p vàcác thành ph亥n N院u b違n thân các l噂p có m瓜t API 8逢嬰c 8鵜nh ngh a 8亥y 8栄 thìt壱p k院t qu違 c栄a các l噂p s胤"8逢嬰c bi吋u hi羽n nh逢 là m瓜t t鰻 h嬰p các thành ph亥n

M瓜t thành ph亥n 8逢嬰c 8鵜nh ngh a nh逢 sau: “M瓜t thành ph亥n ph亥n m隠m là m瓜t8挨n v鵜 k院t c医u v噂i các giao di羽n 8逢嬰c ghi rõ theo h嬰p 8欝ng và các ph映 thu瓜c

Các tài li羽u

thi院t k院

Các giao di羽n

Các l噂p tr瑛uv逢嬰ngCác thành ph亥n

Trang 5

ng英 c違nh rõ ràng M瓜t thành ph亥n ph亥n m隠m có th吋"8逢嬰c tri吋n khai không ph映thu瓜c và 8逢嬰c t鰻 h嬰p b茨ng các hãng th泳 ba”

Các l ずp: M泳c th医p nh医t c栄a m瓜t framework là các l噂p Các l噂p ch雨 khác v噂i

các thành ph亥n là trong th詠c t院, các API 8逢嬰c công khai c栄a nó không 8逢嬰c8逢a ra trong các giao di羽n c栄a m瓜t framework M瓜t cách 8k吋n hình là các l噂p8逢嬰c s穎 d映ng b荏i các thành ph亥n 8吋"8衣i di羽n cho ch泳c n<ng, ví d映 m瓜t ng逢運idùng framework th逢運ng không nhìn th医y các l噂p này tr瑛 khi anh ta làm vi羽c

v噂i các thành ph亥n

Cách th泳c làm vi羽c c栄a m瓜t framework nh逢 sau:

M瓜t framework làm vi羽c b茨ng cách cung c医p m瓜t 8員c t違 rõ ràng c栄a các t逢挨ngtác 8逢嬰c mong 8嬰i gi英a các thành ph亥n Ví d映, m瓜t thành ph亥n có th吋 trông ch運

nh英ng gì t瑛 các thành ph亥n khác và cái gì nên 8逢嬰c cung c医p t噂i chúng? M瓜tframework 8鵜nh ngh a các d鵜ch v映 l詠a ch丑n, và cung c医p m瓜t gi違i thích cho vi羽c8鵜nh ngh a thành ph亥n nào là m瓜t thành ph亥n cung c医p Nh逢 th院, m瓜t thành ph亥n s胤

có kh違 n<ng 8逢嬰c m荏 r瓜ng r医t l噂n và các thành ph亥n m噂i có th吋 t逢挨ng tác m衣nh m胤

v噂i nh英ng cái 8ã có Chúng c瓜ng tác v噂i các chi ti院t, khía c衣nh c映 th吋 c栄a các v医n8隠"8逢嬰c cân nh逸c b荏i framework Các thành ph亥n 泳ng d映ng có th吋 v磯n còn ch泳ngminh tính t逢挨ng thích v噂i các v医n 8隠 khác, nh逢 ng英 ngh a c栄a d英 li羽u mà chúngchuy吋n qua Các b瓜 ph壱n ph映 thu瓜c có th吋"8逢嬰c gi噂i thi羽u nh逢 là các thành ph亥n

c栄a framework S詠 thi hành các thành ph亥n này có th吋 cùng framework xác 8鵜nh

m瓜t d鵜ch v映 và cung c医p các d鵜ch v映 này cho các thành ph亥n khác

1.1.1.3 Phân bi うt framework vずi các khái niうm khác

M瓜t m磯u thi院t k院 khác v噂i m瓜t framework 荏 ba 8k吋m Thと nhXt, m瓜t m磯u thi院t

k院 là tr瑛u t逢嬰ng h挨n m瓜t framework, b荏i vì m瓜t framework 8逢嬰c bao g欝m c違 mã,trong khi 8ó ch雨 có các ví d映 c栄a các m磯u thi院t k院 m噂i 8逢嬰c mã hóa Các m磯u thi院t

k院 th壱m chí mô t違 m映c"8ích, vi羽c cân b茨ng các y院u t嘘 khác 8吋"8衣t 8逢嬰c s詠 k院t h嬰p

t嘘t nh医t và các k院t qu違 c栄a m瓜t thi院t k院 Ak隠u này không là m瓜t tr逢運ng h嬰p cho các

framework Th と hai, các m磯u thi院t k院 là nh英ng ki院n trúc nh臼 h挨n so v噂i các

framework Do v壱y, m瓜t framework có th吋 ch泳a m瓜t s嘘 các m磯u thi院t k院, nh逢ng8i隠u ng逢嬰c l衣i là không th吋 Do v壱y, các m磯u thi院t k院 không có 違nh h逢荏ng l噂n t噂i

ki院n trúc c栄a 泳ng d映ng Cuぐi cùng, các framework 8逢嬰c chuyên môn hóa h挨n so

v噂i các m磯u thi院t k院 Các framework luôn luôn liên quan 8院n m瓜t mi隠n 泳ng d映ng c映

th吋, trong khi 8ó các m磯u thi院t k院 là chung và có th吋"8逢嬰c 泳ng d映ng trong b医t k

mi隠n 泳ng d映ng nào

Trang 6

Các ngôn ng英 m磯u khác v噂i framework theo cách mà m瓜t ngôn ng英 m磯u miêut違: làm nh逢 th院 nào 8吋 t衣o ra m瓜t thi院t k院 Trong khi 8ó, m瓜t framework h逢噂ng 8嘘iv逢嬰ng là m瓜t thi院t k院 Các ngôn ng英 m磯u b鰻 sung cho m瓜t framework, do chúng có

th吋 h逢噂ng d磯n các k悦 s逢 ph亥n m隠m s穎 d映ng framework nh逢 th院 nào, và mô t違 t衣isao nó l衣i 8逢嬰c thi院t k院 nh逢 v壱y

M瓜t 泳ng d映ng h逢噂ng 8嘘i t逢嬰ng khác v噂i m瓜t framework 荏 ch厩, m瓜t 泳ng d映ng

mô t違 m瓜t ch逢挨ng trình th詠c hi羽n ph泳c t衣p mà th臼a mãn m瓜t yêu c亥u c映 th吋.Framework 8衣t 8逢嬰c các tính n<ng c栄a m瓜t 泳ng d映ng nh逢ng nó không th吋 thi hành

b荏i vì nó không bao g欝m các t逢挨ng tác trong tr逢運ng h嬰p 泳ng d映ng c映 th吋

Các framework khác v噂i các th逢 vi羽n l噂p 荏 ch厩: chúng nh逸m t噂i các mi隠n 泳ng

d映ng c映 th吋 Trong khi 8ó, các th逢 vi羽n l噂p cung c医p cho ng逢運i s穎 d映ng các s詠 th詠chi羽n tr逢噂c c栄a thu壱t toán Các th逢 vi羽n l噂p là th映" 8瓜ng, ng逢運i s穎 d映ng g丑i các

ph逢挨ng pháp trong th逢 vi羽n l噂p 8吋 th詠c hi羽n m瓜t s嘘 ho衣t 8瓜ng Trong khi 8ó cácframework 8鵜nh ngh a khung cho m瓜t 泳ng d映ng th詠c t院 và 8i隠u khi吋n lu欝ng 8k隠ukhi吋n trong 泳ng d映ng Các framework có th吋 khác so v噂i th逢 vi羽n l噂p, nh逢ng chúng

có th吋 s穎 d映ng các th逢 vi羽n l噂p 8ã có s印n 8吋 th詠c hi羽n các thu壱t toán chung và các

c医u trúc d英 li羽u

Các thành ph亥n ph亥n m隠m ban 8亥u 8ã 8逢嬰c d詠"8鵜nh là các thành ph亥n ch泳cp<ng riêng l飲 mà có th吋"8逢嬰c 8亥u t逢 t瑛 nhà cung c医p và tích h嬰p vào trong các 泳ng

d映ng Các framework d逢運ng nh逢 là nh英ng thành ph亥n mà có th吋"8逢嬰c 8亥u t逢 t瑛 nh逢cung c医p và nhi隠u h挨n m瓜t framework có th吋"8逢嬰c s穎 d映ng trong m瓜t 泳ng d映ng.Tuy nhiên, m瓜t 8k吋m khác d宇 nh壱n th医y gi英a chúng là các framework cung c医p m瓜t

b瓜 r瓜ng h挨n các d鵜ch v映 so v噂i các thành ph亥n ph亥n m隠m Chúng có kh違 n<ng tùy

bi院n nhi隠u h挨n, có các giao di羽n ph泳c t衣p h挨n và 8i隠u quan tr丑ng h挨n là chúng th詠c

s詠"8鵜nh ngh a cho m瓜t h丑"泳ng d映ng ho員c m瓜t di羽n r瓜ng c栄a các 泳ng d映ng Do v壱y,các framework là khó h丑c h挨n 8嘘i v噂i các nhà phát tri吋n, nh逢ng m瓜t khi 8ã hi吋u8逢嬰c h院t framework thì s胤 có 8逢嬰c s詠 linh 8瓜ng cao h挨n và v噂i m瓜t framework8逢嬰c thi院t k院 t嘘t thì có th吋 gi違m 8逢嬰c các n厩 l詠c c亥n b臼 ra 8吋 xây d詠ng m瓜t 泳ng

d映ng 8ã 8逢嬰c tùy bi院n rõ r羽t h挨n

Trong khi các framework và các thành ph亥n là các k悦 thu壱t khác nhau, chúngnên 8逢嬰c xem và 8逢嬰c s穎 d映ng nh逢 các k悦 thu壱t c瓜ng tác v噂i nhau V噂i cácframework có th吋 s穎 d映ng các thành ph亥n và các 泳ng d映ng 8逢嬰c phát tri吋n s穎 d映ngcác framework th壱m chí có th吋 ti羽n d映ng h挨n các thành ph亥n Ví d映, m瓜t 泳ng d映ngVisual C++ 8逢嬰c t衣o v噂i MFC framework, th壱m chí có th吋 s穎 d映ng các thành ph亥nActiveX trong giao di羽n c栄a nó gi嘘ng nh逢 vi羽c trao 8鰻i v噂i các thành ph亥n ActiveX8逢嬰c 8óng gói trong MFC framework M瓜t ví d映 khác cho s詠 ph映 thu瓜c l磯n nhau

Trang 7

gi英a các framework và thành ph亥n là vi羽c s穎 d映ng các framework 8吋 t衣o các thànhph亥n m噂i, ví d映, framework Active Template Library (ATL) c栄a Microsoft 8逢嬰c s穎

d映ng r瓜ng rãi trong vi羽c t衣o các thành ph亥n ActiveX

fi S詠"8鰻i chi隠u c栄a 8k隠u khi吋n

V隠"8員c 8k吋m th泳 nh医t, các framework t<ng c逢運ng kh違 n<ng mô8un hóa b茨ng cách8óng gói các chi ti院t th詠c hi羽n không ch逸c ch逸n 8茨ng sau các giao di羽n ch逸c ch逸n

Kh違 n<ng này giúp cho vi羽c t<ng c逢運ng ch医t l逢嬰ng c栄a ph亥n m隠m b茨ng cách c映c b瓜hóa các tác 8瓜ng c栄a nh英ng thay 8鰻i v隠 ki院n trúc và s詠 th詠c hi羽n S詠 c映c b瓜 hóanày gi違m các n厩 l詠c 8逢嬰c yêu c亥u 8吋 hi吋u và duy trì ph亥n m隠m hi羽n có

M員t khác, các giao di羽n ch逸c ch逸n 8逢嬰c cung c医p b荏i các framework còn t<nge逢運ng kh違 n<ng s穎 d映ng l衣i b茨ng cách 8鵜nh ngh a các thành ph亥n chung mà có th吋8逢嬰c áp d映ng 8吋 t衣o ra các 泳ng d映ng m噂i Kh違 n<ng s穎 d映ng l衣i c栄a frameworkthúc 8育y ki院n th泳c c栄a mi隠n 泳ng d映ng và 逢u tiên n厩 l詠c c栄a các nhà phát tri吋n kinhnghi羽m 8吋 tránh vi羽c t衣o và làm h嬰p l羽 l衣i các gi違i pháp chung cho các yêu c亥u c栄a泳ng d映ng l員p l衣i và các thách th泳c trong thi院t k院 ph亥n m隠m Vi羽c s穎 d映ng l衣i cácthành ph亥n thi院t k院 có th吋 là m瓜t s詠 c違i ti院n 8áng k吋 trong s違n xu医t ch逢挨ng trình,

c ng nh逢 t嘘t cho vi羽c nâng cao ch医t l逢嬰ng, tính hi羽u qu違, 8瓜 tin c壱y và tính s印nsàng c栄a ph亥n m隠m

V隠 kh違 n<ng m荏 r瓜ng, m瓜t framework t<ng c逢運ng kh違 n<ng m荏 r瓜ng b茨ng cáchcung c医p các 8k吋m nóng t逢運ng minh mà cho phép các 泳ng d映ng m荏 r瓜ng các giaodi羽n ch逸c ch逸n và cách 泳ng x穎 c栄a vùng 泳ng d映ng v噂i các s詠 thay 8鰻i 8逢嬰c yêu c亥u

b荏i các tr逢運ng h嬰p c栄a 泳ng d映ng trong m瓜t ng英 c違nh c映 th吋 Kh違 n<ng m荏 r瓜ng c栄aframework là c亥n thi院t 8吋"8違m b違o các s詠"8k隠u ch雨nh có tính th運i gian c栄a các d鵜ch

v映 và tính n<ng 泳ng d映ng m噂i

Cu嘘i cùng, 8員c 8k吋m c栄a ki院n trúc th運i gian ch衣y c栄a m瓜t framework là s詠" 8鰻ichi隠u c栄a 8k隠u khi吋n, th逢運ng 8逢嬰c g丑i là “Nguyên t逸c Hollywood”-"A瑛ng g丑i chochúng tôi, chúng tôi s胤 g丑i cho b衣n Ki院n trúc này cho phép 泳ng d映ng h嬰p v噂i cácquy t逸c tiêu chu育n b茨ng cách 8k隠u ch雨nh t瑛ng b逢噂c x穎 lý, b茨ng các 8嘘i t逢嬰ng qu違n

lý s詠 ki羽n mà 8逢嬰c vi羽n d磯n thông qua c挨 ch院 g穎i kích h丑at l衣i c栄a framework Khicác s詠 ki羽n x違y ra, framework g穎i l衣i kích ho衣t b茨ng cách vi羽n d磯n ph逢挨ng phápmóc n嘘i trên các 8嘘i t逢嬰ng qu違n lý s詠 ki羽n 8ã 8逢嬰c 8<ng ký tr逢噂c, cái mà th詠c hi羽n

Trang 8

vi羽c x穎 lý 泳ng d映ng c映 th吋 trên các s詠 ki羽n A鰻i chi隠u 8k隠u khi吋n cho phépframework 8鵜nh ngh a m瓜t t壱p các ph逢挨ng pháp 泳ng d映ng c映 th吋"8吋"8áp 泳ng v噂i các

s詠 ki羽n 荏 bên ngoài

1.1.3 Phân lo衣i framework

Các framework h逢噂ng 8嘘i t逢嬰ng có th吋"8逢嬰c phân lo衣i theo nhi隠u chi隠u khácnhau, trong 8ó nh英ng chi隠u quan tr丑ng nh医t là vùng v医n 8隠 mà framework tr臼 t噂i,

c医u trúc n瓜i b瓜 c栄a framework và framework 8逢嬰c d詠"8鵜nh s穎 d映ng nh逢 th院 nào

V隠 cách phân lo衣i th泳 nh医t, ng逢運i ta chia các framework thành các framework泳ng d映ng, các framework mi隠n 泳ng d映ng và các framework h厩 tr嬰 Các lo衣iframework này s胤"8逢嬰c trình b亥y chi ti院t trong ph亥n 1.1.3.1

Ph亥n 1.1.3.2 s胤 trình b亥y các framework c医u trúc và các lo衣i framework 8逢嬰cchia theo c医u trúc n瓜i b瓜 c栄a framework

Và cu嘘i cùng, n院u phân lo衣i theo cách th泳c d詠"8鵜nh s穎 d映ng framework, thì s胤

có các framework h瓜p 8en, các framework h瓜p tr逸ng và các framaework h瓜p xám.Chi ti院t v隠 các lo衣i framework này s胤"8逢嬰c mô t違 trong ph亥n 1.1.3.3

1.1.3.1 Phân loTi framework theo vùng vXn 8z

Tr逢噂c khi 8i vào chi ti院t c栄a các lo衣i framework 8逢嬰c phân theo vùng v医n 8隠

mà framework 8ó tr臼 t噂i, ta s胤"8隠 c壱p t噂i hai khái ni羽m là các monolithic framework

và fine-grained framework

Các tài li羽u hi羽n có [10] v隠 các framework miêu t違 các kinh nghi羽m thu 8逢嬰c

t瑛 vi羽c s穎 d映ng các monolithic framework, ví d映 nh逢 các ki院n trúc ph亥n m隠mj逢噂ng 8嘘i t逢嬰ng cho m瓜t s嘘 l nh v詠c c映 th吋 Tuy nhiên, còn có m瓜t cách ti院p c壱nkhác là tìm ra các framework fine-grained nh臼 và c瓜ng tác l磯n nhau M瓜t 泳ng d映ng

có th吋"8逢嬰c “t鰻ng h嬰p” t瑛 m瓜t s嘘 các framework fine-grained này

S詠 phát tri吋n c栄a các fine-grained c ng t逢挨ng t詠 nh逢 vi羽c phát tri吋n cácmonolithic framework Ai吋m khác nhau ch栄 y院u là framework fine-grained ph違i8逢嬰c thi院t k院 cho s詠 tích h嬰p b荏i vì ph衣m vi bao hàm c栄a framework không ph違i làm瓜t l nh v詠c hoàn ch雨nh

Vi羽c phân lo衣i theo vùng v医n 8隠 chia các framework thành ba lo衣i là cácframework 泳ng d映ng, các framework mi隠n 泳ng d映ng và các framework h厩 tr嬰 Cácframework 泳ng d映ng và mi隠n 泳ng d映ng th逢運ng là các monolithic framework, còncác framework h厩 tr嬰 là nh英ng tr逢運ng h嬰p 8k吋n hình c栄a fine-grained framework

M瓜t framework 泳ng d映ng là m瓜t t壱p c栄a các thành ph亥n v噂i m瓜t thi院t k院"泳ng

d映ng có th吋"8逢嬰c s穎 d映ng l衣i Ak隠u này có ngh a r茨ng, ng逢運i dùng không nh英ng

Trang 9

nh壱n 8逢嬰c m瓜t t壱p con mã ch泳c n<ng mà còn b逸t 8亥u v噂i c違 m瓜t thi院t k院 v隠 cách

mà chúng làm vi羽c nh逢 th院 nào Ai隠u này c ng có ngh a là, m瓜t framework 泳ng

d映ng có th吋 cung c医p nhi隠u tính n<ng h挨n các th逢 vi羽n hàm, vì v隠 c挨 b違n các th逢

vi羽n hàm là không ph映 thu瓜c vào nhau

A嘘i v噂i m瓜t nhà phát tri吋n, vi羽c s穎 d映ng m瓜t framework 泳ng d映ng khác v噂i

vi羽c s穎 d映ng m瓜t th逢 vi羽n 荏 cách mà 泳ng d映ng 8逢嬰c vi院t V噂i m瓜t th逢 vi羽n, nhàphát tri吋n vi院t mã 8吋 g丑i các hàm có trong th逢 vi羽n Ak隠u này có ngh a là, anh ta s胤

ph違i ch鵜u trách nhi羽m cho cách mà các thành ph亥n khác t逢挨ng tác v噂i nhau Còn khi

s穎 d映ng m瓜t framework 泳ng d映ng, nhà phát tri吋n vi院t mã mà s胤"8逢嬰c framework泳ng d映ng g丑i Ak隠u này có ngh a là, framework 泳ng d映ng ch鵜u trách nhi羽m cho s詠v逢挨ng tác gi英a các thành ph亥n Trong khi 8k隠u ki羽n này d逢運ng nh逢 không là m瓜t l嬰iích l噂n nh逢ng th詠c s詠"8ây l衣i là m瓜t k院t qu違 r医t có ý ngh a thu 8逢嬰c t瑛 cách ti院p c壱nnày Framework 泳ng d映ng 8逢嬰c s穎 d映ng l衣i trong nhi隠u 泳ng d映ng b荏i nhi隠u nhàphát tri吋n khác nhau Ak隠u này có ngh a là, framework 泳ng d映ng là m瓜t khái ni羽m8逢嬰c xác th詠c và vi羽c s穎 d映ng nó s胤 thu 8逢嬰c m瓜t 泳ng d映ng t嘘t h挨n Các ví d映 c栄aframework泳ng d映ng là framework cho các giao di羽n ng逢運i dùng [3]

Lo衣i th泳 hai là phân lo衣i framework theo vùng v医n 8隠 c栄a m瓜t mi隠n 泳ng d映ng.Các framework này 8衣t 8逢嬰c ki院n th泳c và s詠 tinh thông trong m瓜t vùng v医n 8隠 c映

th吋 Các framework cho 8k隠u khi吋n s違n xu医t và 8a ph逢挨ng ti羽n là các ví d映 c栄aframework mi隠n 泳ng d映ng Các framework mi隠n 泳ng d映ng có th吋 ti羽n d映ng khi

th詠c hi羽n các ch逢挨ng trình cho m瓜t mi隠n 泳ng d映ng xác 8鵜nh Nó th逢運ng xuyên8逢嬰c 8k隠u ch雨nh cho v瑛a v噂i các công ty ho員c 8逢嬰c phát tri吋n t瑛"8亥u Frameworknày gi違m s嘘 l逢嬰ng công vi羽c mà c亥n 8吋 th詠c hi羽n 泳ng d映ng và nó 8逢a ra m瓜t ph亥n

m隠m có ch医t l逢嬰ng cao h挨n cho mi隠n 泳ng d映ng này M瓜t ví d映 c映 th吋 c栄a cácframework thu瓜c lo衣i này là nh逢 Java Media Framework (JMF) Framework nàynhúng các ch泳c n<ng c亥n thi院t cho vi羽c phát tri吋n các 泳ng d映ng v隠 x穎 lý các fileaudio và video (d欝n kênh, tách kênh, mã hóa, các b瓜 l丑c hi羽u 泳ng), các 8k隠u khi吋n

v隠 trình di宇n và các ph逢挨ng ti羽n 8衣t 8逢嬰c các khóa cho s詠"8欝ng b瓜 c栄a các ph逢挨ng

ti羽n khác nhau nh逢"8亥u vào ti院ng và 8亥u vào hình

Lo衣i cu嘘i cùng theo cách phân lo衣i này là các framework h厩 tr嬰 Cácframework h厩 tr嬰 là các framework mà ph映c v映 cho các d鵜ch v映 m泳c th医p c栄a h羽

th嘘ng nh逢 các trình 8i隠u khi吋n cho các thi院t b鵜 và b瓜"8k隠u khi吋n truy nh壱p file Nhàphát tri吋n 泳ng d映ng s穎 d映ng các framework h厩 tr嬰 tr詠c ti院p ho員c s穎 d映ng các s詠8i隠u ch雨nh 8逢嬰c t衣o ra b荏i các trình cung c医p c栄a h羽 th嘘ng Các framework h厩 tr嬰

có th吋"8逢嬰c tùy bi院n, ví d映 khi phát tri吋n m瓜t h羽 th嘘ng m噂i ho員c trình 8i隠u khi吋nthi院t b鵜 m噂i

Trang 10

1.1.3.2 Phân loTi framework theo cXu trúc nじi bじ

N院u nh逢 c医u trúc n瓜i t衣i c栄a framework 8逢嬰c miêu t違 thì nó có th吋 làm cho

vi羽c hi吋u cách 泳ng x穎 c栄a framework d宇 dàng h挨n C医u trúc n瓜i t衣i c栄a m瓜tframework liên quan t噂i các khái ni羽m v隠 các ki院n trúc ph亥n m隠m Nh英ng ki院n trúcnày 8逢嬰c g丑i là “các framework ki院n trúc”, do chúng 8逢嬰c thi院t k院 theo cách 8吋"8衣t8逢嬰c c医u trúc chính c栄a m瓜t ki院n trúc ph亥n m隠m h逢噂ng 8嘘i t逢嬰ng Nguyên t逸c t鰻ng

th吋 cho c医u trúc n瓜i t衣i c栄a m瓜t framework 8逢嬰c mô t違 b荏i framework có tính ki院ntrúc c栄a nó Các framework có tính ki院n trúc 8ã 8逢嬰c mô t違 là:

fi Layered (Phân t亥ng), giúp cho c医u trúc các 泳ng d映ng có th吋" 8逢嬰c phân rãthành các nhóm c栄a các công vi羽c con v噂i m泳c tr瑛u t逢嬰ng khác nhau 8鵜nh v鵜"荏

t亥ng khác nhau

fi Pipes and Filters (渦ng và b瓜 l丑c), có th吋"8逢嬰c dùng 8吋 c医u trúc các 泳ng d映ng

mà có th吋"8逢嬰c chia thành m瓜t vài các công vi羽c con hoàn toàn 8瓜c l壱p, 8逢嬰c

th詠c hi羽n theo trình t詠 n嘘i ti院p ho員c song song 8ã 8逢嬰c xác 8鵜nh m瓜t cách rõràng

fi Model-View-Controller (MVC), 8鵜nh ngh a m瓜t ki院n trúc cho các 泳ng d映ng cótính t逢挨ng tác, chia tách gi英a giao di羽n c栄a 泳ng d映ng v噂i các ch泳c n<ng ch栄

y院u c栄a nó

fi Presentation-Abstraction-Controller (Trình di宇n-Tr瑛u t逢嬰ng-Ai隠u khi吋n), ki院ntrúc này là thích h嬰p 8吋 c医u trúc các h羽 th嘘ng ph亥n m隠m mà có tính t逢挨ng táccao v噂i ng逢運i s穎 d映ng, cho phép nh英ng 8k隠u khi吋n và trình b亥y c栄a các môhình tr瑛u t逢嬰ng c栄a h羽 th嘘ng có th吋"8逢嬰c t衣o bên ngoài các ch泳c n<ng con và8瓜c l壱p v噂i m厩i cái khác

fi Reflective (Ph違n ánh), có kh違 n<ng áp d映ng cho các 泳ng d映ng mà c亥n ph違i cân

nh逸c v隠 m瓜t s詠 thích nghi trong t逢挨ng lai do s詠 thay 8鰻i môi tr逢運ng, côngngh羽 và các yêu c亥u, mà không c亥n có ph違i thay 8鰻i v隠 ki院n trúc và cách th詠chi羽n c栄a nó

fi Microkernel, là phù h嬰p cho các h羽 th嘘ng ph亥n m隠m c亥n cung c医p các khungnhìn khác nhau d詠a trên các ch泳c n<ng c栄a chúng và ph違i thích nghi v噂i cácyêu c亥u c栄a h羽 th嘘ng Ví d映 c栄a microkernel là các h羽"8k隠u hành

fi Blackboard (B違ng 8en), giúp 8吋 c医u trúc các 泳ng d映ng ph泳c t衣p mà liên quan

t噂i m瓜t vài h羽 th嘘ng con chuyên bi羽t cho các l nh v詠c khác nhau Các h羽 th嘘ngcon này ph違i h嬰p tác 8吋 xây d詠ng các gi違i pháp cho vi羽c gi違i quy院t các v医n 8隠

Trang 11

fi Broker (Môi gi噂i), c医u trúc các h羽 th嘘ng ph亥n m隠m phân tán, trong 8ó cácthành ph亥n t逢挨ng tác khác nhau giao ti院p v噂i nhau khi v壱n hành thông quatruy隠n thông nh逢 trong m瓜t mô hình ch栄 khách.

Vi羽c s穎 d映ng các ki院n trúc này nh逢 là m瓜t nguyên t逸c thi院t k院 ch栄 y院u cho

m瓜t framework Ak隠u 8ó có ngh a là, các ki院n trúc này là các 泳ng c穎 viên t嘘t cho

vi羽c 泳ng d映ng các m磯u thi院t k院 h逢噂ng 8嘘i t逢嬰ng c ng nh逢 cho vi羽c phát tri吋nframework

1.1.3.3 Phân loTi framework theo cách sぬ dつng

D詠a trên cách s穎 d映ng framework, các framework h逢噂ng 8嘘i t逢嬰ng 8逢嬰c chiathành hai lo衣i chính là các framework h瓜p tr逸ng và các framework h瓜p 8en Nh逢ng

ph亥n l噂n các 泳ng d映ng d逢運ng nh逢 là m瓜t t鰻 h嬰p c栄a c違 hai lo衣i framework này và8逢嬰c g丑i là các framework h瓜p xám

Trong m瓜t framework h瓜p tr逸ng, ki院n trúc c栄a framework 8逢嬰c bi院t nh逢 là cácthành ph亥n và 泳ng d映ng c栄a nhà phát tri吋n s胤 xây d詠ng trên nó Thi院t k院 hoàn toànph違i 8逢嬰c vi院t thành tài li羽u, b荏i vì, các ki院n trúc này c亥n 8吋 thay 8鰻i frameworkcho phù h嬰p v噂i m瓜t 泳ng d映ng c映 th吋 Do v壱y, ng逢運i s穎 d映ng ph違i có ki院n th泳c và

n逸m v英ng ki院n trúc c栄a framework 8吋 tùy bi院n framework thành m瓜t 泳ng d映ng c映

th吋

Ng逢嬰c l衣i, các framework h瓜p 8en d医u c医u trúc n瓜i t衣i c栄a chúng Ng逢運i s穎d映ng ch雨 c亥n bi院t các 8k吋m nóng (hot spot) c栄a h羽 th嘘ng và m瓜t miêu t違 chung v隠cách s穎 d映ng framework h挨n là ph違i có ki院n th泳c toàn di羽n v隠 ki院n trúc c栄aframework C挨 ch院 này th逢運ng 8逢嬰c s穎 d映ng 8吋 cung c医p tính linh ho衣t là s詠 t鰻ng

h嬰p Trong khi các 8k吋m nóng c栄a h羽 th嘘ng c亥n ph違i 8逢嬰c làm rõ ràng, thì n厩 l詠c 8吋xây d詠ng m瓜t framework h瓜p tr逸ng, th逢運ng 8逢嬰c làm b茨ng cách t鰻ng quát hóa t瑛

m瓜t s嘘"泳ng d映ng hoàn ch雨nh, có th吋 t逢挨ng 8嘘i nh臼 B医t l嬰i c栄a lo衣i framework h瓜p

tr逸ng là ng逢運i s穎 d映ng cu嘘i s穎 d映ng c亥n ph違i n逸m, hi吋u các ki院n th泳c v隠 ki院n trúc

t鰻ng th吋 Ak隠u này d磯n 8院n m瓜t quá trình h丑c lâu và s詠 r栄i ro v隠 l厩i cao Ng逢嬰c l衣i

v噂i các h羽 th嘘ng h瓜p tr逸ng, vi羽c s穎 d映ng framework h瓜p 8en d宇 dàng h挨n, b荏i vì

ng逢運i dùng ch雨 c亥n bi院t các ki院n th泳c v隠 các ph亥n t穎 có th吋 thay 8鰻i 8逢嬰c và 8i吋m

e挨 b違n c栄a h羽 th嘘ng Tuy nhiên, các framework h瓜p 8en là khó xây d詠ng h挨n cácframework h瓜p tr逸ng

Framework h瓜p 8en và h瓜p tr逸ng 8鵜nh d衣ng 8逢運ng bao ngoài c栄a thi院t k院framework và các nguyên t逸c s穎 d映ng Ph亥n l噂n các framework có th吋"荏 trong vùng

gi英a hai thái c詠c này, và 8逢嬰c coi nh逢 là m瓜t framework h瓜p xám Các frameworkh瓜p xám c嘘 g逸ng th詠c hi羽n các l嬰i ích c栄a các thi院t k院 h瓜p 8en và h瓜p tr逸ng, trong

Trang 12

khi c嘘 g逸ng lo衣i b臼 các gi噂i h衣n nh壱n bi院t 8逢嬰c c栄a hai lo衣i framework này Tuynhiên, các framework h瓜p xám d逢運ng nh逢 là m瓜t lý thuy院t không ai mu嘘n th詠c

hi羽n, b荏i vì m丑i ng逢運i 8隠u cho r茨ng m瓜t framework h瓜p 8en 8ã là 8栄

Vi羽c s穎 d映ng framework h瓜p tr逸ng là t逢挨ng ph違n v噂i vi羽c s穎 d映ng framework

h瓜p 8en Khi s穎 d映ng l衣i framework h瓜p 8en, ng逢運i s穎 d映ng không c亥n bi院t ph亥n

m隠m 8逢嬰c th詠c hi羽n nh逢 th院 nào và c ng không c亥n bi院t chúng th詠c hi羽n các 8嘘iv逢嬰ng mà có th吋"8逢嬰c s穎 d映ng l衣i trong t鰻 h嬰p các 8嘘i t逢嬰ng nh逢 th院 nào

Framework h瓜p tr逸ng 8逢嬰c s穎 d映ng 8吋 t衣o ra các l噂p c映 th吋 M瓜t s嘘 các l噂p c映th吋 này là các thành ph亥n, b荏i vì chúng th詠c hi羽n các giao di羽n t瑛 framework h瓜p

tr逸ng Các thành ph亥n này cùng v噂i các l噂p c瓜ng tác 8逢嬰c g丑i là framework h瓜p8en

Ai隠u khác nhau ch栄 y院u gi英a m瓜t framework h瓜p 8en và m瓜t framework h瓜p

tr逸ng là khi s穎 d映ng m瓜t framework h瓜p tr逸ng, ng逢運i s穎 d映ng ph違i m荏 r瓜ng các l噂p

và th詠c hi羽n các giao di羽n Ng逢嬰c l衣i, m瓜t framework h瓜p 8en bao g欝m các thành

ph亥n và các l噂p mà có th吋 t衣o 8逢嬰c các th吋 hi羽n và 8逢嬰c c医u hình b荏i ng逢運i s穎

d映ng Các thành ph亥n và các l噂p trong các framework h瓜p 8en th逢運ng là các th吋hi羽n c栄a các ph亥n t穎 trong các framework h瓜p tr逸ng B瓜 t鰻 h嬰p và c医u hình c栄a cácthành ph亥n trong framework h瓜p 8en có th吋"8逢嬰c h厩 tr嬰 b荏i các công c映 và s胤 d宇dàng h挨n cho nhà phát tri吋n so v噂i vi羽c s穎 d映ng các ph亥n c栄a m瓜t framework h瓜p

tr逸ng Các framework h瓜p 8en là d宇 dàng 8逢嬰c 8k隠u ch雨nh do ch雨 c亥n bi院t các giao

di羽n c栄a các 8k吋m nóng Các framework h瓜p tr逸ng th逢運ng có kh違 n<ng s穎 d映ng l衣inhi隠u h挨n nh逢ng l衣i khó 8吋 hi吋u chi ti院t c医u trúc n瓜i b瓜 và th壱m chí, có th吋 t衣o ra

m瓜t s詠 bùng n鰻 các l噂p con

Trang 13

1.2 Ph 逢挨ng pháp phát tri吋n framework

Vi羽c phát tri吋n framework có m瓜t s嘘"8k吋m khác so v噂i vi羽c phát tri吋n m瓜t 泳ng d映ngchu育n bình th逢運ng Ak吋m khác bi羽t quan tr丑ng là framework ph違i 8逢嬰c xây d詠ng 8吋bao 8逢嬰c t医t c違 các khái ni羽m xác 8áng trong m瓜t mi隠n 泳ng d映ng Quá trình pháttri吋n framework 8逢嬰c mô t違 nh逢 hình 1.2

Hình 1.2 Quá trình phát tri吋n framework

Nh逢 v壱y, m瓜t quá trình phát tri吋n framework s胤 bao g欝m các pha sau:

fi Phân tích mi隠n 泳ng d映ng Aây là giai 8o衣n chu育n b鵜 cho vi羽c phát tri吋nframework N瓜i dung chi ti院t c栄a ph亥n này s胤"8逢嬰c nêu trong ph亥n 1.2.1

fi Thu th壱p các yêu c亥u và phân tích Các ho衣t 8瓜ng chính c栄a giai 8q衣n này s胤8逢嬰c trình b亥y trong ph亥n 1.2.2

Trang 14

fi Thi院t k院 framework Chi ti院t v隠 các ho衣t 8瓜ng c栄a pha thi院t k院 framework s胤8逢嬰c nêu trong ph亥n 1.2.3.

fi Tri吋n khai framework Aây là giai 8o衣n th詠c hi羽n các thi院t k院 c栄a framework

b茨ng m瓜t ngôn ng英 l壱p trình h逢噂ng 8嘘i t逢嬰ng c映 th吋 N瓜i dung c栄a ph亥n này

s胤"8逢嬰c trình b亥y trong ph亥n 1.2.4

fi Ki吋m th穎 Ph亥n 1.2.5 s胤 trình b亥y ng逸n g丑n v隠 các ho衣t 8瓜ng c亥n th詠c hi羽ntrong giai 8o衣n này

1.2.1 Chu育n b鵜 cho vi羽c phát tri吋n framework

Ph亥n này 8逢a ra m瓜t gi噂i thi羽u ng逸n v隠 các ho衣t 8瓜ng 8逢嬰c th詠c hi羽n tr逢噂ckhi b逸t 8亥u quá trình phát tri吋n framework và xác 8鵜nh các 8亥u vào nào s胤 là c亥nthi院t 8吋 b逸t 8亥u quá trình phát tri吋n A吋 xây d詠ng 8逢嬰c m瓜t framework, các nhàphát tri吋n c亥n ph違i có 8逢嬰c các ki院n th泳c b鰻 sung v隠 mi隠n 泳ng d映ng mà frameworkd詠"8鵜nh 8衣t 8逢嬰c Do v壱y, m瓜t phân tích mi隠n 泳ng d映ng ng逸n g丑n nên 8逢嬰c th詠c

hi羽n tr逢噂c ho員c nh逢 là m瓜t s詠 kh荏i 8亥u c栄a m瓜t quá trình phát tri吋n framework.Vi羽c phân tích mi隠n 泳ng d映ng là s詠 nh壱n d衣ng các l噂p và các 8嘘i t逢嬰ng mà làchung cho t医t c違 các 泳ng d映ng trong cùng mi隠n 泳ng d映ng 8ang phân tích Mô hình

mi隠n 泳ng d映ng nên ch雨 t壱p trung vào các ch院 tác chính c栄a mi隠n mà không c亥n 8ivào các chi ti院t M瓜t mô hình mi隠n 泳ng d映ng là m瓜t công c映 t嘘t khi b逸t 8亥u pháttri吋n m瓜t khung nhìn lôgíc c栄a h羽 th嘘ng Nó nên miêu t違 các khái ni羽m mà m瓜t

ng逢運i dùng trong mi隠n 泳ng d映ng th逢運ng s穎 d映ng và k院t qu違 phân tích mi隠n 8逢嬰cdùng nh逢 m瓜t công c映 giao ti院p v噂i nh英ng ng逢運i liên quan t噂i vi羽c phát tri吋n h羽

th嘘ng Mô hình mi隠n 泳ng d映ng không nên miêu t違 l nh v詠c t瑛 góc nhìn c栄a nhà pháttri吋n, vì 8i隠u này s胤 c違n tr荏 vi羽c trao 8鰻i và làm n違y sinh các r栄i ro Không nên 8逢a

ra các chi ti院t thi院t k院 quá s噂m trong quá trình phát tri吋n framework

M瓜t phân tích mi隠n 泳ng d映ng th壱m chí còn cung c医p s詠 h厩 tr嬰 t嘘t khi xác 8鵜nh

rõ các ca s穎 d映ng Nên có ít nh医t hai tài li羽u là k院t qu違 c栄a vi羽c phân tích mi隠n 泳ng

d映ng là ph衣m vi c栄a mi隠n 泳ng d映ng và mô hình t nh ch泳a các 8嘘i t逢嬰ng và l噂p quan

tr丑ng trong mi隠n 泳ng d映ng này

Ai隠u quan tr丑ng trong giai 8q衣n này là ph違i xác 8鵜nh m瓜t ph衣m vi rõ ràng c栄a

mi隠n 泳ng d映ng Vi羽c 8逢a ra m瓜t framework bao trùm toàn b瓜 các l nh v詠c s胤 là m瓜t8i隠u không t逢荏ng Ph衣m vi này s胤"8逢嬰c s穎 d映ng nhi隠u trong vi羽c thu th壱p các yêu

c亥u c栄a quá trình phát tri吋n H挨n n英a, ph衣m vi này làm cho vi羽c thu th壱p yêu c亥u rõràng h挨n N院u m瓜t yêu c亥u là trong mi隠n 泳ng d映ng thì yêu c亥u này s胤 là h嬰p l羽, và

ng逢嬰c l衣i, n院u yêu c亥u này 荏 ngoài mi隠n 泳ng d映ng thì yêu c亥u này s胤 là không h嬰p

Trang 15

l羽 Ph衣m vi c栄a mi隠n 泳ng d映ng th壱m chí còn 8óng vai trò nh逢 m瓜t công c映 cho vi羽c

s穎 d映ng l衣i m瓜t framework, khi ng逢運i s穎 d映ng ph違i quy院t 8鵜nh m瓜t framework có làphù h嬰p 8吋 s穎 d映ng cho m瓜t 泳ng d映ng 8逢嬰c yêu c亥u hay không ?

Vi羽c xác 8鵜nh ph衣m vi c栄a mi隠n 泳ng d映ng th逢運ng là khó kh<n, c ng khó nh逢

vi羽c quy院t 8鵜nh nh英ng gì n茨m ngoài mi隠n, và nh英ng gì mi隠n nên có Vi羽c phát tri吋n

m瓜t framework cho m瓜t vùng h姻p d宇 h挨n cho m瓜t l nh v詠c r瓜ng Do v壱y, c亥n ph違i

có 8栄 th運i gian cho h丑at 8瓜ng quan tr丑ng này

Bên c衣nh vi羽c xác 8鵜nh ph衣m vi c栄a mi隠n 泳ng d映ng, trong giai 8q衣n này, cònc亥n ph違i làm m瓜t tài li羽u n英a là mô hình t nh Mô hình t nh này nên ch泳a các 8嘘iv逢嬰ng và các l噂p quan tr丑ng nh医t c栄a mi隠n 泳ng d映ng Chúng nên là các 8嘘i t逢嬰ngtrong th院 gi噂i th詠c hay các 8嘘i t逢嬰ng t瑛 th院 gi噂i c栄a 泳ng d映ng này Các 8嘘i t逢嬰ng

và các l噂p nên 8逢嬰c 8員t tên theo cách hi吋u c栄a ng逢運i s穎 d映ng vì mô hình này s胤 là

m瓜t công c映 cho vi羽c trao 8鰻i gi英a các nhà phát tri吋n và ng逢運i s穎 d映ng c栄a các 泳ng

d映ng t逢挨ng lai

Các k院t qu違 c栄a giai 8q衣n phân tích mi隠n 泳ng d映ng s胤 là 8亥u vào cho m瓜t quátrình phát tri吋n framework T医t nhiên, quá trình phát tri吋n framework luôn cung c医pl衣i các ph違n h欝i 8吋 hoàn thi羽n h挨n các phân tích mi隠n 泳ng d映ng

M映c tiêu c栄a pha này là 8吋 thu nh壱n t医t c違 các yêu c亥u h嬰p l羽 v隠 mi隠n 泳ng

d映ng và phác th違o ý t逢荏ng v隠 m瓜t h羽 th嘘ng s胤"8áp 泳ng 8亥y 8栄 các yêu c亥u này Phanày g欝m hai ho衣t 8瓜ng chính là: Thu th壱p yêu c亥u và Phân tích Tuy hai ho衣t 8瓜ngnày 8逢嬰c phân chia nh逢ng th詠c ra chúng ch雨 là m瓜t, do v壱y chúng c亥n 8逢嬰c th詠chi羽n song song

Các k院t qu違 c栄a pha này là mô hình yêu c亥u và mô hình phân tích Các môhình yêu c亥u s胤 xác 8鵜nh các yêu c亥u mà h羽 th嘘ng ph違i 8áp 泳ng và các mô hìnhphân tích s胤 phác th違o các khái ni羽m chính c栄a h羽 th嘘ng này

Trang 16

Hình 1.3 Các quá trình con và s 違n ph育m c栄a pha Thu th壱p yêu c亥u và Phân tích

M瓜t yêu c亥u xác 8鵜nh m瓜t ràng bu瓜c trên h羽 th嘘ng ho員c m瓜t d鵜ch v映 mà h羽

th嘘ng nên cung c医p Các yêu c亥u là các công c映 cho quá trình t衣o ra các mô hìnhphân tích chính xác Trong khi phân tích, các yêu c亥u m噂i s胤"8逢嬰c nh壱n d衣ng và các8i吋m không th嘘ng nh医t trong mô hình yêu c亥u s胤"8逢嬰c tìm ra Không th吋 tìm ra t医t

c違 các yêu c亥u và 8違m b違o tính nh医t quán c栄a các yêu c亥u trong l亥n thu th壱p 8亥utiên; c ng ch逢a th吋 có ngay các yêu c亥u chính xác 8吋 làm 8亥u vào cho mô hìnhphân tích Do v壱y hai ho衣t 8瓜ng này ph違i 8逢嬰c th詠c hi羽n song song

M瓜t phân tích mi隠n 泳ng d映ng cùng v噂i m瓜t danh sách các yêu c亥u nên 8逢嬰ccung c医p nh逢"8亥u vào cho pha phân tích và c亥n có ít nh医t hai 泳ng d映ng cùng v噂i cácyêu c亥u trong t逢挨ng lai c栄a framework Vi羽c cung c医p các yêu c亥u c栄a frameworktrên m瓜t c員p 泳ng d映ng s胤 làm cho vi羽c tìm ra các 8i吋m chung d宇 dàng h挨n

1.2.2.1 Thu thfp yêu cZu

M映c tiêu c栄a ho衣t 8瓜ng này là 8吋 tìm ra t医t c違 các yêu c亥u c栄a h羽 th嘘ng s胤8逢嬰c d詠"8鵜nh phát tri吋n Các yêu c亥u không nh医t quán, có m磯u thu磯n ho員c trùng l員p

c ng có th吋"8逢嬰c tìm th医y và 8逢嬰c gi違i quy院t

Danh sách các yêu c亥u c挨 b違n 8逢嬰c l医y t瑛 quá trình thu th壱p các yêu c亥u Môhình mi隠n là m瓜t công c映 cho vi羽c trao 8鰻i và nó cung c医p m瓜t thu壱t ng英 chung 8吋

gi違m thi吋u các l厩i do vi羽c hi吋u nh亥m trong các th違o lu壱n và các ph亥n 8逢嬰c quantâm

Trang 17

Tài li羽u 8亥u ra c栄a ho衣t 8瓜ng này là A員c t違 yêu c亥u chi ti院t và Mô hình ca s穎d映ng Hai mô hình này k院t h嬰p v噂i nhau 8吋 t衣o thành Mô hình yêu c亥u Chúng là

m瓜t công c映"8吋 vi羽c trao 8鰻i gi英a các nhà phát tri吋n, ng逢運i t逢 v医n bán hàng và

ng逢運i s穎 d映ng Do v壱y, chúng nên 8逢嬰c d宇 hi吋u cho t医t c違 các ph亥n liên quan Cácyêu c亥u này nên 8逢嬰c 8鵜nh d衣ng t瑛 góc nhìn c栄a ng逢運i s穎 d映ng ho員c c栄a kháchhàng h挨n là t瑛 góc nhìn c栄a nhà phát tri吋n

Các mô hình yêu c亥u này th壱m chí c ng là m瓜t 8鵜nh d衣ng c挨 s荏 cho pha ki吋m

th穎 và th育m 8鵜nh Ngoài hai tài li羽u 8逢嬰c 8隠 xu医t này, các tài li羽u khác có th吋"8逢嬰cthêm vào trong Mô hình yêu c亥u Các tài li羽u yêu c亥u nên th臼a mãn 6 yêu c亥u sau:

fi Nên ch雨 rõ các 泳ng x穎 bên ngoài c栄a h羽 th嘘ng

fi Nên ch雨 rõ các ràng bu瓜c 8嘘i v噂i vi羽c th詠c hi羽n

fi D宇 dàng thay 8鰻i

fi Nên ph映c v映 nh逢 m瓜t công c映 cho ng逢運i b違o trì h羽 th嘘ng

fi Nên ghi l衣i các d詠"8鵜nh v隠 vòng 8運i c栄a h羽 th嘘ng

fi Nên mô t違 các 8áp 泳ng có th吋 ch医p nh壱n 8逢嬰c 8嘘i v噂i các s詠 ki羽n không mong

mu嘘n

1.2.2.1.1 Quá trình thu th壱p yêu c亥u

M映c tiêu c栄a quá trình này là tìm t医t c違 các yêu c亥u h嬰p l羽 trên h羽 th嘘ng Quátrình này có th吋"8逢嬰c xem nh逢 m瓜t vòng l員p c栄a ba ho衣t 8瓜ng: Làm l瓜 ra, A員c t違 và

Th育m tra

Hình 1.4 Các ho 衣t 8瓜ng c栄a m瓜t quá trình thu th壱p yêu c亥u

Ba ho衣t 8瓜ng này 8逢嬰c 8鵜nh ngh a nh逢 sau:

fi Làm l瓜 ra là quá trình nh壱n bi院t 8逢嬰c t医t c違 các ki院n th泳c c亥n thi院t s胤"8逢嬰c s穎

d映ng trong vi羽c t衣o ra các yêu c亥u theo 8鵜nh d衣ng chu育n

Trang 18

fi A員c t違 là quá trình ti院p nh壱n các phát hi羽n ki院n th泳c làm 8亥u vào 8吋 t衣o ra m瓜t

mô hình chu育n cho các yêu c亥u

fi Th育m tra là quá trình c嘘 g逸ng 8ánh giá và ki吋m nh壱n xem mô hình các yêu c亥uchu育n 8逢嬰c t衣o ra 8ã th臼a mãn v噂i các yêu c亥u c栄a ng逢運i dùng hay ch逢a.Thông tin trên 8逢嬰c thu th壱p t瑛 t医t c違 các ng逢運i liên quan, nh英ng s穎 d映ngkhác nhau s胤 có các yêu c亥u khác nhau 8嘘i v噂i h羽 th嘘ng M瓜t h羽 th嘘ng ch雨 d詠a trênquan 8i吋m c栄a m瓜t ng逢運i dùng thì s胤 không th吋"8áp 泳ng 8逢嬰c 8亥y 8栄 t医t c違 các yêu

c亥u c亥n có c栄a h羽 th嘘ng Ngoài ra, thông tin còn có th吋 tìm 8逢嬰c trong các s違n

ph育m c nh逢 các 8員c t違, phân tích, thi院t k院, mã, các ca ki吋m th穎, …

Ti院n trình xác 8鵜nh yêu c亥u là m瓜t pha quan tr丑ng trong quá trình phát tri吋nframework, b荏i vì n院u có l厩i trong vi羽c tìm ra t医t c違 các yêu c亥u, và trong vi羽c tìm

ra các yêu c亥u 8úng s胤 d磯n t噂i các thay 8鰻i v隠 sau trong các pha ti院p theo Chi phí

ph違i tr違 cho vi羽c s穎a l厩i do các thay 8鰻i trong yêu c亥u s胤 r医t cao do c亥n ph違i vi院t l衣icác thi院t k院 và mã Chi phí này s胤 t<ng lên qua m厩i pha khi các l厩i không 8逢嬰c phát

hi羽n k鵜p th運i Do v壱y, c亥n nhi隠u n厩 l詠c trong pha phân tích 8吋"8違m b違o có 8逢嬰c m瓜t8員c t違 yêu c亥u 8úng, hoàn thi羽n và nh医t quán

1.2.2.1.2 A員c t違 yêu c亥u

Các yêu c亥u nên 8逢嬰c chia thành hai nhóm: các yêu c亥u c栄a framework và cácyêu c亥u c栄a 泳ng d映ng c映 th吋 Sau 8ó chúng ti院p t映c 8逢嬰c chia thành các yêu c亥uch泳c n<ng và các yêu c亥u phi ch泳c n<ng Ak隠u này là phù h嬰p vì vi羽c phân chia cácyêu c亥u nh逢 v壱y s胤 làm cho vi羽c nh壱n d衣ng các thu瓜c tính và các 8i吋m chung trongcác yêu c亥u c栄a các 泳ng d映ng nhanh h挨n

Trang 19

Hình 1.5 S 詠 phân chia các yêu c亥u

Các yêu c亥u ch泳c n<ng xác 8鵜nh các ch泳c n<ng và d鵜ch v映 mà h羽 th嘘ng s胤cung c医p Các yêu c亥u phi ch泳c n<ng xác 8鵜nh các ràng bu瓜c mà h羽 th嘘ng ph違i tuântheo khi phát tri吋n và m荏 r瓜ng Các ràng bu瓜c yêu c亥u ng逢運i dùng này có th吋 t<nglên do các chính sách c栄a công ty, các tiêu chu育n, các ràng bu瓜c 8逢嬰c d詠a trên các

h羽 th嘘ng có liên quan và nhi隠u cái khác n英a

Có ba l噂p khác nhau c栄a các yêu c亥u phi ch泳c n<ng:

fi Các yêu c亥u v隠 s違n ph育m, nh逢 tính hi羽u qu違, kích th逢噂c và tính kh違 chuy吋n

fi Các yêu c亥u v隠 quá trình phát tri吋n, nh逢 các tiêu chu育n, các quy 逢噂c v隠"8員ttên, …

fi Các yêu c亥u t瑛 bên ngoài, các ch泳c n<ng bao trùm t医t c違 các yêu c亥u phi ch泳cp<ng khác nh逢 các yêu c亥u v隠 chi phí, các yêu c亥u t瑛 các h羽 th嘘ng khác và cácyêu c亥u không th吋"8逢嬰c 8逢a vào hai nhóm k吋 trên

Các yêu c亥u phi ch泳c n<ng c栄a m瓜t framework nói chung là khác so v噂i cácyêu c亥u phi ch泳c n<ng c栄a các 泳ng d映ng Các yêu c亥u phi ch泳c n<ng c栄a cácframework h逢噂ng vào thi院t k院 h挨n so v噂i các yêu c亥u phi ch泳c n<ng c栄a 泳ng d映ng.Nguyên nhân là vì, các framework có các ng逢運i s穎 d映ng khác so v噂i các 泳ng d映ng

Trang 20

thông th逢運ng Ng逢運i s穎 d映ng các framework l衣i chính là nh英ng nhà phát tri吋n 泳ngd映ng M瓜t framework 8逢嬰c s穎 d映ng 8吋 phát tri吋n m瓜t 泳ng d映ng mà s胤"8逢嬰c xây

d詠ng 8吋 th臼a mãn các yêu c亥u c栄a ng逢運i dùng Trong h亥u h院t các tr逢運ng h嬰p,

nh英ng ng逢運i phát tri吋n 泳ng d映ng s胤 là ng逢運i thi院t l壱p các yêu c亥u cho framework.Các yêu c亥u ch泳c n<ng th逢運ng xuyên 8逢嬰c ki吋m th穎 và th育m 8鵜nh, nh医t là cácyêu c亥u ch泳c n<ng 8ã 8逢嬰c 8鵜nh d衣ng v噂i các ca s穎 d映ng Các yêu c亥u phi ch泳cp<ng khó ki吋m tra h挨n Các yêu c亥u phi ch泳c n<ng c ng có th吋 khó 8逢嬰c xác 8鵜nh

b茨ng cách s穎 d映ng m瓜t ngôn ng英 t詠 nhiên, b荏i vì chúng có xu h逢噂ng là r医t ph泳c

t衣p Vi羽c s穎 d映ng các ngôn ng英 t詠 nhiên r医t khó kh<n 8吋 phát hi羽n s詠 không nh医tquán gi英a các yêu c亥u, b荏i vì s詠 không nh医t quán n茨m trong m嘘i quan h羽 gi英achúng Ngôn ng英 t詠 nhiên có th吋 gây ra nh亥m l磯n gi英a nh英ng ng逢運i liên quan trongquá trình phát tri吋n b荏i vì nh英ng ng逢運i khác nhau s穎 d映ng các thu壱t ng英 khác nhaucho cùng m瓜t khái ni羽m

1.2.2.1.3 Mô hình Ca s穎 d映ng

M瓜t mô hình Ca s穎 d映ng ch泳a các tác nhân và các ca s穎 d映ng M瓜t ca s穎 d映ng8鵜nh ngh a cách mà h羽 th嘘ng s胤"8逢嬰c s穎 d映ng và cách th泳c mà nó 8áp 泳ng l衣i m瓜tyêu c亥u c映 th吋 M厩i ca s穎 d映ng là m瓜t cách c映 th吋"8吋 s穎 d映ng h羽 th嘘ng Theo 8鵜nhngh a c栄a Jacobson, thì “M厩i ca s穎 d映ng thi院t l壱p m瓜t quá trình c栄a các s詠 ki羽n8逢嬰c b逸t 8亥u b荏i m瓜t tác nhân và nó ch雨 rõ t逢挨ng tác gi英a m瓜t tác nhân và h羽

th嘘ng”

Các ca s穎 d映ng c ng nên 8逢嬰c phân chia nh逢 các yêu c亥u, thành các 泳ng x穎chung và các泳ng x穎 c映 th吋 S詠 phân chia này làm cho nó d宇 dàng 8吋 nh壱n d衣ng cái

gì là chung gi英a các 泳ng d映ng khác nhau và 泳ng x穎 nào ch雨 là riêng c栄a m厩i 泳ng

d映ng S詠 phân chia c栄a các yêu c亥u tuân theo k鵜ch b違n chính c栄a quá trình pháttri吋n framework, quá trình mà t壱p trung vào cái gì là 8i吋m chung và cái gì là c映 th吋gi英a các 泳ng d映ng nh壱n 8逢嬰c

M瓜t tác nhân là m瓜t khái ni羽m mô hình hóa c栄a các ng逢運i s穎 d映ng ho員c các

h羽 th嘘ng khác và nó là m瓜t s詠 tr嬰 giúp 8吋"8鵜nh ngh a nh英ng gì t欝n t衣i ngoài h羽

th嘘ng này Các tác nhân có nh英ng th吋 hi羽n c映 th吋, 8ó là các ng逢運i s穎 d映ng, mà th詠c

hi羽n m瓜t t壱p các thao tác trên h羽 th嘘ng

Các yêu c亥u ch泳c n<ng n院u có th吋 nên 8逢嬰c 8鵜nh d衣ng b茨ng các ca s穎 d映ng.Các ca s穎 d映ng s胤 h英u d映ng h挨n cho vi羽c tìm các 8i吋m chung gi英a các 泳ng d映ng,các 泳ng x穎 chung mà nên 8逢嬰c 8逢a vào trong framework

Ngoài ra, mô hình Ca s穎 d映ng còn là m瓜t ph逢挨ng ti羽n trao 8鰻i thông tin t嘘tgi英a nh英ng ng逢運i s穎 d映ng và các nhà phát tri吋n, b荏i vì, các ca s穎 d映ng 8逢嬰c trình

Trang 21

b亥y theo nh英ng khái ni羽m mà g亥n g i v噂i ng逢運i s穎 d映ng M瓜t mô hình Ca s穎 d映ngth壱m chí còn là m瓜t công c映 t嘘t cho vi羽c tìm ra các 8i吋m không nh医t quán gi英a cácyêu c亥u khác nhau, b荏i vì các ca s穎 d映ng có tính chu育n hóa cao h挨n ngôn ng英 thông

th逢運ng Tính chu育n hóa này còn làm cho vi羽c nh壱n d衣ng các quan h羽 gi英a các yêuc亥u d宇 dàng h挨n

M瓜t mô hình Ca s穎 d映ng th壱m chí còn là c挨 s荏 cho quá trình ki吋m th穎 N院unh逢 các yêu c亥u 8逢嬰c chu育n hóa b荏i các ca s穎 d映ng và các ki吋m th穎"8逢嬰c thi院t k院theo các ca s穎 d映ng này thì s胤 có m瓜t quan h羽 tr詠c ti院p gi英a vi羽c v逢嬰t qua các ki吋m

th穎 và vi羽c 8áp 泳ng 8亥y 8栄"8逢嬰c các yêu c亥u M嘘i quan h羽 gi英a mô hình Ca s穎

d映ng và các mô hình khác c栄a quá trình phát tri吋n 8逢嬰c mô t違 nh逢 hình v胤 sau

Hình 1.6 M 嘘i quan h羽 gi英a mô hình Ca s穎 d映ng và các mô hình khác c栄a quá trình phát

tri吋n h羽 th嘘ng

1.2.2.2 Phân tích

M映c tiêu c栄a phân tích là phác th違o m瓜t mô hình c栄a h羽 th嘘ng mà 8áp 泳ng 8亥y8栄 các ch泳c n<ng S詠 phân tích nên t壱p trung toàn b瓜 vào v医n 8隠 và ph違i 8逢嬰c th詠c

hi羽n xong mà không c亥n có s詠 cân nh逸c 8院n môi tr逢運ng thi hành Lý do cho cách

ti院p c壱n này là mô hình phân tích nên gi英"8逢嬰c tính t逢挨ng thích ngay c違 khi môi

tr逢運ng th詠c hi羽n thay 8鰻i M瓜t lý do khác là, các chi ti院t th詠c hi羽n d宇"8育y các nhàphát tri吋n t壱p trung vào các v医n 8隠 c栄a vi羽c th詠c hi羽n theo m瓜t môi tr逢運ng thi hànhnào 8ó, và do v壱y, s胤 làm cho v医n 8隠 mà h羽 th嘘ng d詠"8鵜nh gi違i quy院t n茨m ngoài

tr丑ng tâm c栄a vi羽c phát tri吋n

Trang 22

M瓜t khi nhà phát tri吋n 8ã nh壱n d衣ng 8逢嬰c v医n 8隠 c栄a mi隠n 泳ng d映ng và cácyêu c亥u 8ã 8鵜nh ngh a, nh英ng ph亥n nào c栄a mi隠n 泳ng d映ng mà framework ho員c h羽

th嘘ng 8逢嬰c d詠"8鵜nh 8衣t 8逢嬰c, h羽 th嘘ng này ph違i 8逢嬰c phác th違o và các frameworkcùng v噂i h羽 th嘘ng này nên 8逢嬰c nh壱n d衣ng

Mô hình phân tích bao g欝m m瓜t mô hình 8嘘i t逢嬰ng t nh Các 8嘘i t逢嬰ng này8逢嬰c xây d詠ng t瑛 các 8嘘i t逢嬰ng c栄a th院 gi噂i th詠c gi嘘ng nh逢 vi羽c phân tích mi隠n泳ng d映ng Các 8嘘i t逢嬰ng có c違"荏 trong mô hình mi隠n 泳ng d映ng và mô hình phântích nên 8逢嬰c 8員t cùng tên 8吋"8違m b違o có th吋 theo dõi và gi違m các l厩i phát sinh do

s詠 hi吋u nh亥m

Ý t逢荏ng v噂i m瓜t mô hình là 8吋"8衣t 8逢嬰c các khái ni羽m quan tr丑ng và l丑c ra

nh英ng cái nào là không quan tr丑ng T医t c違 s詠 tr瑛u t逢嬰ng là các t壱p con c栄a th詠c t院8逢嬰c ch丑n l詠a cho m瓜t m映c 8ích 8員c bi羽t Ak隠u này làm cho các nhà phát tri吋n t壱ptrung vào v医n 8隠 d宇 dàng h挨n mà không quan tâm t噂i các chi ti院t 8茨ng sau v医n 8隠này T医t c違 mô hình nên có m映c 8ích c映 th吋 c栄a nó Các mô hình h厩 tr嬰 vi羽c pháttri吋n framework nên có kh違 n<ng t壱p trung s詠 chú ý c栄a nhà phát tri吋n vào cái gì s胤

là t逢挨ng t詠 gi英a các 泳ng d映ng và cái gì là không

1.2.2.2.1 Th詠c hi羽n vi羽c phân tích

Quá trình t衣o ra mô hình phân tích là l員p l衣i m瓜t cách t詠 nhiên và m瓜t mô hìnhphù h嬰p nh逢 m瓜t n隠n t違ng cho pha thi院t k院,"8衣t"8逢嬰c b茨ng cách làm m鵜n và t<ngm泳c 8瓜 c栄a vi羽c chu育n hóa Không có ranh gi噂i rõ ràng gi英a vi羽c phân tích và thi院t

k院 M瓜t s嘘 các ho衣t 8瓜ng bình th逢運ng thu瓜c v隠 pha thi院t k院 nh逢ng l衣i 8逢嬰c th詠c

hi羽n xong trong su嘘t pha phân tích, v噂i m映c 8ích là tìm ra t医t c違 các l噂p và các m嘘iquan h羽 quan tr丑ng trong các mô hình phân tích

Phác th違o tr衣ng thái và v医n 8隠, miêu t違 chúng t瑛 góc nhìn c栄a ng逢運i s穎 d映ng.M瓜t khi các tr衣ng thái và v医n 8隠 này 8逢嬰c phác th違o, nó có th吋 nh壱n d衣ng các s詠

tr瑛u t逢嬰ng c亥n thi院t và b逸t 8亥u vi羽c xây d詠ng các mô hình phân tích

Quá trình phân tích nên g欝m các b逢噂c sau:

fi Phác th違o tr衣ng thái và v医n 8隠

fi Ki吋m tra các gi違i pháp hi羽n có

fi Nh壱n d衣ng các s詠 tr瑛u t逢嬰ng chính

fi Nh壱n d衣ng các s詠 tr瑛u t逢嬰ng m泳c cao

fi Nh壱n d衣ng nh英ng ph亥n nào c栄a v医n 8隠 mà framework s胤 làm vi羽c

fi Yêu c亥u 8亥u vào t瑛 các khách hàng và thay 8鰻i cách ti院p c壱n

Trang 23

Trong quá trình làm m鵜n, các l噂p t瑛 mô hình mi隠n 泳ng d映ng không c亥n thi院t b鵜xóa b臼 Các l噂p m噂i nên 8逢嬰c 8逢a ra càng nhi隠u càng t嘘t, khi có th吋, chúng s胤 làcác m泳c cao h挨n c栄a s詠 tr瑛u t逢嬰ng Vi羽c 8逢a ra các m泳c cao h挨n c栄a s詠 tr瑛u t逢嬰ng

s胤 d磯n t噂i vi羽c t<ng các 8k吋m chung c栄a h羽 th嘘ng B茨ng cách 8逢a ra các s詠 tr瑛uv逢嬰ng m泳c cao, nhi隠u 8k吋m t逢挨ng 8欝ng gi英a các 泳ng d映ng 8逢嬰c tìm th医y, các s詠v逢挨ng 8欝ng này s胤"8逢嬰c 8逢a vào trong framework

Các s詠 tr瑛u t逢嬰ng m泳c cao làm cho các thành ph亥n này b隠n v英ng h挨n tr逢噂ccác thay 8鰻i trong các yêu c亥u M瓜t thành ph亥n v噂i m瓜t ki院n trúc ch泳a các tr瑛uv逢嬰ng m泳c cao có th吋"8逢嬰c thay 8鰻i mà không c亥n c医u trúc l衣i ki院n trúc c栄a nó Cácthay 8鰻i c亥n thi院t 8逢嬰c 8逢a vào b茨ng cách t衣o ra s詠 chuyên bi羽t hóa c栄a s詠 tr瑛uv逢嬰ng m泳c cao Các yêu c亥u s胤 luôn luôn thay 8鰻i b荏i vì th院 gi噂i xung quanh ph亥n

m隠m h羽 th嘘ng là luôn luôn thay 8鰻i S詠 thay 8鰻i 8ó s胤 ph違n ánh b茨ng các thay 8鰻i8逢嬰c áp 8員t cho h羽 th嘘ng Do v壱y, vi羽c tìm ra các 8i吋m chung là m瓜t v医n 8隠 quan

tr丑ng l噂n không ch雨 trong phân tích framework

Vi羽c tìm ra các l噂p chung này là b逢噂c 8亥u tiên trong ho衣t 8瓜ng phân tích c栄a

vi羽c nh壱n d衣ng các framework trong h羽 th嘘ng Cách d宇 dàng nh医t 8吋 nh壱n d衣ng các

s詠 tr瑛u t逢嬰ng là m瓜t ti院p c壱n t瑛 d逢噂i lên B逸t 8亥u s詠 nh壱n d衣ng t瑛 vi羽c ki吋m tra các

gi違i pháp hi羽n có Vi羽c ki吋m tra các gi違i pháp ho員c h羽 th嘘ng hi羽n có có th吋 sinh ra

ki院n trúc h英u d映ng và cung c医p thông tin quan tr丑ng v隠 các framework có th吋 th詠c

hi羽n 8逢嬰c

Ti院p theo, phân tích các c医u trúc d英 li羽u và các thu壱t toán, sau 8ó t鰻 ch泳c các

s詠 tr瑛u t逢嬰ng hóa Th逢運ng xuyên nh壱n d衣ng các 8嘘i t逢嬰ng tr逢噂c khi b衣n s逸p 8員t s挨8欝 l噂p có c医u trúc và các s詠 ph映 thu瓜c Nh壱n d衣ng các gi違i pháp nào có 8i吋m chung

và cái gì là duy nh医t t噂i m厩i ch逢挨ng trình M瓜t g嬰i ý là các framework ti隠m n<ng có

th吋"8逢嬰c tìm th医y trong:

fi Các mô hình th院 gi噂i th詠c

fi Các ho衣t 8瓜ng 8逢嬰c th詠c hi羽n b荏i ng逢運i s穎 d映ng cu嘘i

fi Mã ngu欝n cho gi違i pháp ph亥n m隠m hi羽n t衣i

M瓜t s嘘 các 8k吋m chung 8逢嬰c nh壱n d衣ng có th吋"8逢嬰c 8逢a vào trong framework8吋 t<ng c逢運ng các 8k吋m chung c栄a framework phù h嬰p v噂i các yêu c亥u t逢挨ng lai.Các tr瑛u t逢嬰ng có th吋 t欝n t衣i trong các 泳ng d映ng 8ã 8逢嬰c phát tri吋n Tuy nhiên,th逢運ng là khó kh<n 8吋 quy院t 8鵜nh m瓜t 8k吋m chung nào là c亥n thi院t hay không? M瓜t8i吋m chung làm t<ng s詠 ph泳c t衣p và có th吋 t<ng chi phí cho vi羽c phát tri吋n và s穎

d映ng l衣i Do v壱y, nó ph違i 8逢嬰c cân nh逸c gi英a 8k吋m chung và 8瓜 ph泳c t衣p c栄aframework Gi嘘ng nh逢 m瓜t quy t逸c, s詠 tr瑛u t逢嬰ng m泳c cao 8逢嬰c 8逢a vào nên trong

Trang 24

cùng ph衣m vi c栄a framework Các quy院t 8鵜nh v隠 các 8k吋m chung nên 8逢嬰c làm tàili羽u, nh医t là trong các tr逢運ng h嬰p không rõ ràng H挨n n英a, framework không nênquá l噂n Các framework l噂n nên 8逢嬰c phân chia thành các framework nh臼 h挨n và8逢嬰c t壱p trung h挨n Các framework nh臼 h挨n thì d宇 s穎 d映ng h挨n.

1.2.2.2.2 Mô hình 8嘘i t逢嬰ng t nh

M映c tiêu c栄a mô hình này là mô t違 các 8嘘i t逢嬰ng, các quan h羽 gi英a các 8嘘iv逢嬰ng và các khái ni羽m khác c栄a th院 gi噂i th詠c mà chúng là quan tr丑ng 8嘘i v噂i h羽

th嘘ng 8鵜nh xây d詠ng Mô hình 8嘘i t逢嬰ng t nh cung c医p m瓜t bi吋u di宇n 8欝 h丑a 8逢嬰c

hi吋u m瓜t cách d宇 dàng và phù h嬰p cho s詠 trao 8鰻i, không nh英ng gi英a các nhà pháttri吋n mà còn gi英a các nhà phát tri吋n và các ng逢運i s穎 d映ng

Mô hình8嘘i t逢嬰ng t nh không nên ch泳a b医t k c医u trúc máy tính nào tr瑛 khi

v医n 8隠"8ang 8逢嬰c gi違i quy院t là m瓜t v医n 8隠 v隠 máy tính Vi羽c 8員t tên cho các 8嘘iv逢嬰ng và các khái ni羽m trong mô hình này nên 8逢嬰c th詠c hi羽n t瑛 góc nhìn c栄a

ng逢運i s穎 d映ng

Nh逢"8ã 8隠 c壱p 荏 trên, m厩i 8嘘i t逢嬰ng 8ã 8逢嬰c 8逢a ra trong mô hình mi隠n 泳ng

d映ng thì nên 8逢嬰c 8員t cùng tên trong mô hình 8嘘i t逢嬰ng t nh Mô hình 8嘘i t逢嬰ng

t nh là m瓜t tài li羽u tham kh違o, không ch雨 xuyên su嘘t quá trình phát tri吋n mà còntrong pha b違o trì Do v壱y, tên c栄a các 8嘘i t逢嬰ng và khái ni羽m trong mô hình nên8逢嬰c th詠c hi羽n theo m瓜t cách h院t s泳c t詠 nhiên

Mô hình8嘘i t逢嬰ng t nh nên bao g欝m các 8嘘i t逢嬰ng phân tích và các liên k院t

gi英a các 8嘘i t逢嬰ng Các quan h羽 k院t h嬰p không ph違i là m瓜t 8k隠u quan tr丑ng nh逢ng

n院u chúng 8逢嬰c tìm th医y thì nên 8逢嬰c 8逢a vào trong mô hình Các c医u trúc th瑛a k院phù h嬰p nên 8逢嬰c tìm th医y và chú ý nên tìm các c医u trúc và các 8嘘i t逢嬰ng chung

c栄a nhi隠u h挨n m瓜t trong các 泳ng d映ng mà framework 8逢嬰c d詠"8鵜nh 8衣t 8逢嬰c

Vi羽c phát tri吋n m瓜t mô hình 8嘘i t逢嬰ng t nh cho m厩i 泳ng d映ng là phù h嬰p

Vi羽c phát tri吋n này nên 8逢嬰c th詠c hi羽n cho t医t c違 các 泳ng d映ng m瓜t cách song song.Khi tìm th医y các s詠 tr瑛u t逢嬰ng chung, chúng nên 8逢嬰c 8逢a vào trong mô hình 8嘘iv逢嬰ng t nh c栄a framework

1.2.2.3 Các kxt quV và mô hình bご sung

Các mô hình8逢嬰c gi噂i thi羽u 荏 trên 8ôi khi là các mô hình không ti羽n d映ng màcòn có th吋 không phù h嬰p cho m丑i t鰻 ch泳c Tuy nhiên, các mô hình này là th逢運ng

là chung cho ph亥n l噂n các ph逢挨ng pháp phát tri吋n, nh逢ng m厩i s詠 phân tích l衣i yêu

c亥u m瓜t t壱p các mô hình c映 th吋 Aôi khi, không ph違i m厩i mô hình 8逢嬰c gi噂i thi羽u 荏trên là c亥n thi院t, và 8ôi khi chúng là không 8栄 N院u vi羽c s穎 d映ng các mô hình mà

Trang 25

không bao trùm t医t c違 các yêu c亥u ho員c các mô hình 8逢嬰c s穎 d映ng không làm n鰻ib壱t 8逢嬰c các v医n 8隠 quan tr丑ng, thì th逢運ng s穎 d映ng m瓜t mô hình b鰻 sung.

Mô hình nên h厩 tr嬰 s詠 nh壱n d衣ng các khái ni羽m chung, có th吋"8逢嬰c hi吋u m瓜tcách d宇 dàng càng t嘘t Các ghi chú 8逢嬰c s穎 d映ng 8吋 duy trì tính 8挨n gi違n và tránh8逢嬰c s詠 hi吋u nh亥m Trong tr逢運ng h嬰p này, các mô hình 8欝 h丑a là t嘘t nh医t M瓜t ví

d映 có th吋 là, s穎 d映ng các m亥u khác nhau trong mô hình 8嘘i t逢嬰ng 8吋 di宇n 8衣t cáckhái ni羽m, các quan h羽 và nhi隠u h挨n th院 n英a M瓜t mô hình d宇 hi吋u s胤 làm gi違m các

l厩i do vi羽c hi吋u nh亥m và là c亥n thi院t cho vi羽c s穎 d映ng l衣i m瓜t cách hi羽u qu違 Ng逢運i

s穎 d映ng l衣i s胤 hi吋u mô hình nhanh chóng và d宇 dàng j挨n

Pha thi院t k院 bao g欝m thi院t k院 ki院n trúc, mà 荏"8ó xác 8鵜nh các 8嘘i t逢嬰ng và s詠

c瓜ng tác gi英a chúng, và thi院t k院 chi ti院t, mà 荏"8ó các l噂p và các ph逢挨ng pháp c栄a nó8逢嬰c mô t違 chi ti院t h挨n A亥u ra t瑛 pha thi院t k院 là m瓜t mô hình 8嘘i t逢嬰ng t nh và các

mô hình8瓜ng mô t違 các s詠 c瓜ng tác Các mô hình này nên t衣o thành m瓜t n隠n t違ng8亥y 8栄 cho s詠 th詠c hi羽n h羽 th嘘ng

Lý do cho vi羽c có pha thi院t k院, mà không b逸t 8亥u vi院t mã tr詠c ti院p sau khiphân tích là vì: mô hình phân tích không thích h嬰p 8吋 chuy吋n thành mã ngu欝n Các

mô hình phân tích xem xét h羽 th嘘ng t瑛 quan 8k吋m mang tính khái ni羽m, mà không8隠 c壱p 8院n môi tr逢運ng th詠c hi羽n A吋 cung c医p m瓜t n隠n t違ng v英ng ch逸c cho s詠 th詠c

hi羽n, các 8嘘i t逢嬰ng ph違i 8逢嬰c làm m鵜n, và các mô hình ph違i 8逢嬰c m荏 r瓜ng Các 8嘘iv逢嬰ng và mô hình này ph違i 8逢嬰c 8鵜nh ngh a các ho衣t 8瓜ng nào nên 8逢嬰c cung c医p

và chính xác nh英ng gì 8逢嬰c trao 8鰻i gi英a các 8嘘i t逢嬰ng Pha thi院t k院 th壱m chí s胤

ph映c v映 cho vi羽c th育m 8鵜nh các k院t qu違 phân tích và các 8i隠u ch逢a rõ ràng s胤"8逢嬰ckhám phá

Các mô hình phân tích có th吋"8逢嬰c thay 8鰻i theo nhi隠u cách 8吋 thích nghi v噂imôi tr逢運ng th詠c hi羽n Các thay 8鰻i này nên 8逢嬰c ki吋m soát m瓜t cách c育n th壱n Cácthay 8鰻i nên th詠c hi羽n là thêm ho員c thay 8鰻i các ch泳c n<ng liên quan t噂i môi tr逢運ngth詠c hi羽n Các thay 8鰻i liên quan 8院n các ch泳c n<ng khác thu瓜c v隠 mô hình lôgíc vàmang tính khái ni羽m thì 8ã 8逢嬰c ki吋m soát trong su嘘t pha phân tích

1.2.3.1 Quá trình thi xt kx framework

M瓜t thi院t k院 framework là m瓜t thi院t k院 ph亥n m隠m mà khi 8逢嬰c tri吋n khai s胤cung c医p các ch泳c n<ng chung và tr瑛u t逢嬰ng 8ã 8逢嬰c nh壱n d衣ng trong vi羽c phântích Framework s胤 là m瓜t s詠 th詠c hi羽n c栄a các ph亥n chung c栄a các 泳ng d映ng trong

mi隠n 泳ng d映ng

Trang 26

Hình 1.7 M瓜t framework là nh英ng ph亥n chung c栄a các 泳ng d映ng trong m瓜t mi隠n 泳ng d映ng

Giai"8o衣n thi院t k院 c栄a quá trình phát tri吋n framework bao g欝m hai pha, là thi院t

k院 ki院n trúc và thi院t k院 chi ti院t Trong pha thi院t k院 ki院n trúc, 8嘘i t逢嬰ng và các s詠

c瓜ng tác c栄a chúng s胤"8逢嬰c thay 8鰻i, nh逢 m瓜t s詠 cân nh逸c t噂i môi tr逢運ng th詠c hi羽n.Còn trong pha thi院t k院 chi ti院t, các 8嘘i t逢嬰ng 8逢嬰c nh壱n d衣ng trong pha thi院t k院 ki院ntrúc s胤"8逢嬰c mô t違 theo ngôn ng英"8逢嬰c d詠"8鵜nh dùng 8吋 th詠c hi羽n framework và

n院u c亥n thi院t, các 8嘘i t逢嬰ng 8ó s胤"8逢嬰c làm m鵜n

Ti院n trình c栄a pha thi院t k院"8逢嬰c ch雨 ra trong hình 1.8 Trong quá trình thi院t k院,các thi院t k院"8逢嬰c 8ánh giá liên t映c và các gi違i pháp thi院t k院"8隠 xu医t có th吋"8逢嬰c

ch泳ng minh b茨ng cách làm m磯u

Trang 27

Hình 1.8 Các ho衣t 8瓜ng trong pha thi院t k院 framework

V医n 8隠 chính c栄a pha thi院t k院 framework là cung c医p m瓜t n隠n t違ng cho m瓜t s詠

th詠c thi chung, mà s胤"8逢嬰c áp d映ng cho m瓜t vài 泳ng d映ng c映 th吋 Trong su嘘t quátrình thi院t k院, nhi隠u s詠 tr瑛u t逢嬰ng s胤"8逢嬰c nh壱n d衣ng và do v壱y, các thi院t k院 ph違i d宇dàng thay 8鰻i

Ph亥n l噂n các khái ni羽m chung c栄a các 泳ng d映ng 8ã 8逢嬰c nh壱n d衣ng trong phaphân tích mi隠n 泳ng d映ng và pha phân tích Do v壱y các tr瑛u t逢嬰ng 8逢嬰c tìm th医ytrong su嘘t pha thi院t k院 s胤 h亥u nh逢 ch逸c ch逸n là t衣i m瓜t m泳c th医p h挨n S詠 nh壱n d衣ng

c栄a m瓜t s詠 tr瑛u t逢嬰ng m泳c cao trong su嘘t pha thi院t k院 có th吋 ch雨 là k院t qu違 tr違 v隠

c栄a pha phân tích

Trong th詠c t院, các tr瑛u t逢嬰ng 8逢嬰c tìm t瑛 “d逢噂i lên”, b茨ng cách nghiên c泳ucác ví d映 c映 th吋, g嬰i ý ph違i có m瓜t thi院t k院"8吋 tìm m瓜t s詠 tr瑛u t逢嬰ng Thi院t k院 nên là

m瓜t t鰻ng quan trong 8亥u c栄a các nhà thi院t k院, m瓜t thi院t k院 m磯u ho員c m瓜t 泳ng d映ng

c trong 8ó v医n 8隠 thi院t k院 t逢挨ng t詠"8ã 8逢嬰c gi違i quy院t

Bên c衣nh vi羽c tìm ra các s詠 tr瑛u t逢嬰ng, trong pha thi院t k院 còn ph違i nh壱n d衣ngcác gi違i pháp thi院t k院 chung S胤 không có l嬰i n院u thi院t k院 cùng m瓜t v医n 8隠 hai l亥n,

ho員c làm hai thi院t k院 hoàn thi羽n"8吋 gi違i quy院t hai v医n 8隠 t逢挨ng t詠 nhau M瓜t gi違ipháp thi院t k院 chung không ch雨 gi違i quy院t v医n 8隠 hi羽n t衣i mà còn s穎 d映ng 8逢嬰c v噂i

nh英ng v医n 8隠 t逢挨ng t詠

Trang 28

Vi羽c tìm ki院m nh英ng gi違i pháp thi院t k院 tr逢噂c 8逢嬰c s穎 d映ng l衣i s胤 gi噂i h衣n s詠c亥n thi院t cho các quy院t 8鵜nh thi院t k院 ph泳c t衣p N院u m瓜t v医n 8隠 thi院t k院 là t逢挨ng t詠,

ho員c gi嘘ng h羽t nhau, thì 8吋 v医n 8隠 này 8逢嬰c gi違i quy院t th詠c s詠, các gi違i pháp thi院t

k院 tr逢噂c nên 8逢嬰c s穎 d映ng l衣i

Các ki院n th泳c có th吋 có trong t鰻 ch泳c c ng nên 8逢嬰c s穎 d映ng l衣i t嘘i 8a Các

m磯u thi院t k院 là các gi違i pháp chung cho các v医n 8隠 mà th逢運ng x違y ra trong thi院t k院framework Các m磯u thi院t k院"8ã 8逢嬰c 泳ng d映ng cho nhi隠u thi院t k院 và các gi違i pháp

mà chúng g嬰i ý là nh英ng ch泳ng minh t嘘t Các m磯u thi院t k院 không nh英ng giúp cho

vi羽c trao 8鰻i gi英a các nhóm thi院t k院 mà còn làm cho framework 8逢嬰c hi吋u d宇 dàngj挨n

1.2.3.2 Pha thi xt kx kixn trúc

Trong su嘘t pha thi院t k院 ki院n trúc, m瓜t mô t違 m泳c cao c栄a framework và các泳ng d映ng 8逢嬰c làm d詠a trên các mô hình phân tích Các ho衣t 8瓜ng sau nên là chungcho thi院t k院 ki院n trúc trong h亥u h院t các ph逢挨ng pháp h逢噂ng 8嘘i t逢嬰ng

Hình 1.9 Các ho衣t 8瓜ng trong pha thi院t k院 ki院n trúc

M映c tiêu c栄a thi院t k院 ki院n trúc là 8吋 nh壱n d衣ng các 8嘘i t逢嬰ng 8逢嬰c c亥n 8吋 th詠chi羽n h羽 th嘘ng này và cách mà các 8嘘i t逢嬰ng c瓜ng tác Trong pha này, n院u c亥n thi院t,

h羽 th嘘ng s胤"8逢嬰c chia thành các h羽 th嘘ng con

A亥u vào c栄a pha thi院t k院 ki院n trúc là các yêu c亥u và các mô hình phân tích,8逢嬰c miêu t違 trong ph亥n phân tích A亥u ra c栄a pha thi院t k院 ki院n trúc là các mô hìnhtheo d衣ng c栄a m瓜t mô hình 8嘘i t逢嬰ng t nh ho員c các mô hình 8瓜ng (các l逢嬰c 8欝v逢挨ng tác, các bi吋u 8欝 tr衣ng thái và các mô hình lu欝ng d英 li羽u) Các mô hình này s胤8鵜nh d衣ng m瓜t c挨 s荏 cho vi羽c nh壱n d衣ng cách th詠c hi羽n các l噂p

Trang 29

1.2.3.2.1 Làm m鵜n mô hình 8嘘i t逢嬰ng phân tích

Trong ho衣t 8瓜ng này, các 8嘘i t逢嬰ng m噂i, mà không 8逢嬰c gi噂i thi羽u trong các

mô hình phân tích, có th吋"8逢嬰c 8逢a ra 8吋"8k隠u ch雨nh h羽 th嘘ng trong su嘘t quá trìnhphát tri吋n M瓜t phân tích c栄a môi tr逢運ng th詠c hi羽n 8逢嬰c th詠c hi羽n song song v噂i

vi羽c phân tích, ho員c ít nh医t tr逢噂c khi b逸t 8亥u pha thi院t k院 Các thay 8鰻i khác có th吋

là b臼, chia tách ho員c sát nh壱p các 8嘘i t逢嬰ng có 8逢嬰c t瑛 s詠 phân tích Các thay 8鰻inày nên 8逢嬰c ki吋m soát r医t c育n th壱n, vì chúng th逢運ng có xu h逢噂ng làm gi違m s泳c

M瓜t l噂p 8衣i di羽n cho m瓜t s詠 tr瑛u t逢嬰ng c栄a các 8嘘i t逢嬰ng mà 8逢嬰c 育n d映 t瑛

nó N院u m瓜t l噂p có nhi隠u tác v映, nó có th吋 ch泳a m瓜t vài s詠 tr瑛u t逢嬰ng khác nhau.Tuy nhiên, m瓜t l噂p không nên có nhi隠u h挨n 25 tác v映 [7], b荏i vì các l噂p v噂i m瓜t s嘘n逢嬰ng l噂n các tác v映 thì d逢運ng nh逢 không chia s飲 v噂i các ph亥n khác c栄a thi院t k院

A吋 kh逸c ph映c v医n 8隠 này, m瓜t l噂p l噂n v噂i nhi隠u tác v映 nên 8逢嬰c chia thành nhi隠u

ph亥n M厩i ph亥n 8ó s胤"8逢嬰c ki吋m tra và 8逢嬰c 8逢a ra 8吋"8衣i di羽n cho m瓜t vài s詠 tr瑛uv逢嬰ng Khi 8ó, các ph亥n này có th吋"8逢嬰c chia s飲 v噂i m瓜t s嘘 ph亥n khác c栄a thi院t k院

1.2.3.2.2 Gán các trách nhi羽m h羽 th嘘ng t噂i các 8嘘i t逢嬰ng c映 th吋

Trách nhi羽m c栄a m瓜t 8嘘i t逢嬰ng ho員c m瓜t h羽 th嘘ng 8逢嬰c 8鵜nh ngh a nh逢 là

“ki院n th泳c 8吋 duy trì và các ho衣t 8瓜ng mà có th吋"8逢嬰c th詠c hi羽n” Trong h羽 th嘘ngnày, trách nhi羽m h羽 th嘘ng s胤"8逢嬰c phân ph嘘i t噂i các 8嘘i t逢嬰ng mà 8ã 8逢嬰c nh壱nd衣ng trong các pha s噂m h挨n

Trong su嘘t quá trình nh壱n d衣ng các ho衣t 8瓜ng mà m瓜t 8嘘i t逢嬰ng ch鵜u tráchnhi羽m th詠c hi羽n, và ki院n th泳c gì v隠 nó 8吋 duy trì, m瓜t cách chung 8吋 di宇n 8衣t cáctrách nhi羽m t逢挨ng t詠 nên 8逢嬰c s穎 d映ng, b荏i vì vi羽c này có th吋 giúp 8叡 vi羽c nh壱n

d衣ng các tr瑛u t逢嬰ng Các trách nhi羽m nên 8逢嬰c 8員t t衣i l噂p mà v隠 lôgíc chúng thu瓜c

v隠 Trong m瓜t s嘘 tr逢運ng h嬰p 8吋 bi院t m瓜t l噂p nào mà trách nhi羽m 8ó thu瓜c v隠 làkhông rõ ràng Sau 8ó, ng逢運i thi院t k院 nên h逢噂ng t噂i m泳c cao nh医t c栄a s詠 tr瑛uv逢嬰ng N院u m瓜t trách nhi羽m có th吋 thu瓜c v隠 m瓜t vài l噂p t瑛 quan 8k吋m 8逢嬰c lôgic,thì trách nhi羽m này nên 8逢嬰c 8員t trong l噂p mà nó cho phép ng逢運i thi院t k院 nh壱n

d衣ng s詠 tr瑛u t逢嬰ng 荏 m泳c cao h挨n

1.2.3.2.3 Phân tích các s詠 c瓜ng tác

Trang 30

M瓜t 8嘘i t逢嬰ng c瓜ng tác v噂i m瓜t 8嘘i t逢嬰ng khác n院u nh逢 nó c亥n 8院n m瓜t ho員cnhi隠u các tác v映 c栄a các 8嘘i t逢嬰ng khác 8吋 th詠c hi羽n 8亥y 8栄 ch泳c n<ng c栄a mình.Trong su嘘t ho衣t 8瓜ng này, các s詠 c瓜ng tác gi英a các 8嘘i t逢嬰ng trong h羽 th嘘ng nên8逢嬰c nh壱n d衣ng A嘘i v噂i m厩i 8嘘i t逢嬰ng và m厩i trách nhi羽m trong h羽 th嘘ng, s詠 c瓜ngtác nên 8逢嬰c tìm ra n院u nh逢 trách nhi羽m này ch雨 có th吋"8逢嬰c 8áp 泳ng 8亥y 8栄 n院u có

s詠 c瓜ng tác v噂i các 8嘘i t逢嬰ng khác

N逢嬰c 8欝 t逢挨ng tác là m瓜t công c映 h英u d映ng trong vi羽c xác 8鵜nh các"8嘘i t逢嬰ngnên 8逢嬰c c瓜ng tác nh逢 th院 nào trong h羽 th嘘ng Các liên k院t gi英a các 8嘘i t逢嬰ng có

th吋"8逢嬰c thay 8鰻i t瑛 s詠 phân tích Ak隠u này h亥u nh逢 ch逸c ch逸n s胤 là thay 8鰻i chung

nh医t t噂i mô hình phân tích S詠 th詠c hi羽n th詠c t院 c栄a các liên k院t và s詠"8欝ng b瓜 gi英acác quá trình là các ví d映 v隠 các liên k院t có th吋 b鵜 thay 8鰻i

A吋 cho thi院t k院 có kh違 n<ng m荏 r瓜ng, thì không nên có s詠 tham chi院u t噂i các

l噂p c映 th吋 C亥n 8違m b違o 8鵜nh ngh a các s詠 c瓜ng tác gi英a các l噂p tr瑛u t逢嬰ng nh逢hình v胤 1.10 Thông qua các s詠 c瓜ng tác gi英a các l噂p tr瑛u t逢嬰ng nào 8ó, 8i隠u này

m荏"8逢運ng cho cách s穎 d映ng các ph逢挨ng pháp 8瓜ng 8逢嬰c gi噂i h衣n trong các l噂p c映

ch逸n ph違i l員p l衣i thông qua các ho衣t 8瓜ng tr逢噂c

Vi羽c dò tìm 8吋 nh壱n d衣ng các s詠 tr瑛u t逢嬰ng, s胤 cung c医p các c医u trúc phân c医p

th瑛a k院 sâu và h姻p, b荏i vì thông tin 8逢嬰c chia s飲 b荏i các l噂p s胤"8逢嬰c tr瑛u t逢嬰ng hóathành các siêu l噂p Các ki院n trúc th瑛a k院 r瓜ng và không sâu ch雨 ra r茨ng các s詠 tr瑛uv逢嬰ng v磯n 8逢嬰c tìm th医y trong ki院n trúc này

Trang 31

M瓜t s詠 quan tâm chính khi làm m鵜n các c医u trúc phân c医p và các s詠 c瓜ng tácnên gi英 các ch泳c n<ng chung và các tr瑛u t逢嬰ng 8ã 8逢嬰c nh壱n d衣ng trong s詠 phântích S詠 làm m鵜n sâu h挨n không nên vi ph衣m các tr瑛u t逢嬰ng có tính khái ni羽m này.M瓜t cách 8吋 b逸t 8亥u s詠 làm m鵜n là tìm các siêu l噂p mà th詠c hi羽n cùng m瓜t tác

v映 và c嘘 g逸ng chuy吋n tác v映 này vào m瓜t siêu l噂p m噂i Cách ti院p c壱n này có th吋 tr違

v隠 m瓜t c医u trúc phân c医p sâu h挨n và có th吋 là khó hi吋u h挨n, b荏i vì các tác v映 c栄a nós胤"8逢嬰c tr違i dài trong c医u trúc này B医t k khi nào, s詠 th瑛a k院 nên 8逢嬰c thay th院 b荏i

t鰻 h嬰p C嘘 g逸ng không m荏 r瓜ng c医u trúc phân c医p quá xa, nh逢ng rút ra thu瓜c tínhvào m瓜t l噂p c医u trúc phân c医p m噂i và s穎 d映ng các 育n d映 c栄a l噂p m噂i này nh逢 cácthành ph亥n trong các 育n d映 c栄a c医u trúc phân c医p l噂p 8亥u tiên

Các nhà thi院t k院 nên tìm các l噂p ho員c các tác v映 mà có các tên khác nhau,nh逢ng cung c医p cùng ch泳c n<ng A員t tên l衣i cho chúng là m瓜t cách 8挨n gi違n có th吋

ch医p nh壱n 8逢嬰c, và s胤 làm nó d宇 dàng h挨n 8吋 xem các 8k吋m chung, nh逢ng yêu c亥u

m瓜t s嘘 công vi羽c v隠 so衣n th違o v<n b違n

N院u có các tác v映 ho員c các l噂p mà cung c医p các ch泳c n<ng g亥n gi嘘ng nhau, thì

có th吋 s穎 d映ng tham s嘘 cho chúng N院u các s詠 khác nhau có th吋"8逢嬰c rút ra b茨ngvi羽c truy隠n các tham s嘘, các l噂p t逢挨ng t詠 trong các 泳ng d映ng khác có th吋"8逢嬰c thay

th院 b荏i m瓜t l噂p chung trong framework L噂p này s胤 s穎 d映ng vi羽c truy隠n các tham

s嘘 khác nhau, tùy thu瓜c vào 泳ng d映ng s穎 d映ng l噂p này

Trang 32

Hình 1.11 Các thu 瓜c tính chung 8逢嬰c nh壱n d衣ng b茨ng cách 8鰻i tên và s穎 d映ng tham s嘘

Nói chung, vi羽c l員p l衣i d逢運ng nh逢 là không th吋 tránh kh臼i, nh逢 vi羽c t医t c違 các

s詠 tr瑛u t逢嬰ng d逢運ng nh逢 không th吋"8逢嬰c tìm th医y trong l噂p 8亥u tiên Ai隠u này bu瓜ccác c医u trúc phân c医p l噂p s胤"8逢嬰c c医u trúc l衣i trong thi院t k院, và m瓜t 8k隠u ki羽n tiênquy院t cho vi羽c c医u trúc l衣i các c医u trúc này là 8吋 hi吋u chúng Kh違 n<ng hi吋u 8逢嬰c

có th吋"8逢嬰c thu th壱p ho員c b荏i tài li羽u chính xác ho員c b茨ng cách 8挨n gi違n hóa ho員c

là m瓜t s詠 k院t h嬰p c栄a c違 hai

1.2.3.3 Pha thixt kx chi tixt

Trong su嘘t pha thi院t k院 chi ti院t, t医t c違 các l噂p v噂i các thu瓜c tính và các tác v映8逢嬰c nh壱n d衣ng và 8逢嬰c mô t違, khi s穎 d映ng ngôn ng英 th詠c hi羽n d詠"8鵜nh A亥u vào làcác 8嘘i t逢嬰ng và các s詠 c瓜ng tác 8逢嬰c nh壱n d衣ng trong thi院t k院 ki院n trúc, 8ã 8逢嬰cmiêu t違 trong mô hình 8嘘i t逢嬰ng t nh và các mô hình 8瓜ng, ví d映 các l逢嬰c"8欝 t逢挨ngtác và các bi吋u 8欝 chuy吋n d鵜ch tr衣ng thái

M瓜t tác v映 v噂i m瓜t s嘘 tham s嘘, d逢運ng nh逢 là m瓜t cách chung 8吋 xây d詠ng

m瓜t l噂p h挨n là m瓜t tác v映 v噂i quá nhi隠u tham s嘘 Các tác v映 có tham s嘘 nên 8逢嬰clàm m鵜n l衣i và có th吋"8逢嬰c chia thành nhi隠u tác v映 Tuy nhiên có m瓜t ngo衣i l羽 là các

c医u t穎"8吋 kh荏i t衣o 8嘘i t逢嬰ng

M瓜t tác v映 nên th詠c hi羽n nhi隠u h挨n m瓜t nhi羽m v映 M瓜t tác v映 mà th詠c hi羽nnhi隠u nhi羽m v映 khác nhau nên 8逢嬰c chia thành m瓜t vài tác v映, b荏i vì m瓜t ph亥n c栄atác v映 có th吋"8逢嬰c chia s飲 b荏i m瓜t vài l噂p, trong khi các ph亥n khác nhau là duy nh医t

c栄a m瓜t l噂p

Các l噂p là s詠 tr瑛u t逢嬰ng c栄a các 8嘘i t逢嬰ng 8逢嬰c khái quát t瑛 nó Các l噂p cónhi隠u h挨n 25 tác v映 mô t違 các s詠 tr瑛u t逢嬰ng ph泳c t衣p, và có th吋 ch泳a m瓜t vài các s詠

tr瑛u t逢嬰ng khác Các s詠 tr瑛u t逢嬰ng này nên có l噂p c栄a b違n thân nó Viêc làm ph泳c

t衣p các giao di羽n chung th壱m chí càng làm cho framework khó hi吋u thêm

Các s詠 tr瑛u t逢嬰ng m噂i có th吋"8逢嬰c tìm th医y trong su嘘t quá trình thi院t k院 chi

ti院t Các s詠 tr瑛u t逢嬰ng có th吋"8逢嬰c 8逢a ra trong các mô hình mà chúng thu瓜c v隠, 8吋duy trì c医u trúc c栄a tài li羽u Các s詠 tr瑛u t逢嬰ng mang tính khái ni羽m thu瓜c v隠 s詠phân tích

A吋 nh壱n d衣ng 8逢嬰c các l噂p sâu h挨n, các ký hi羽u tác v映 nên là th嘘ng nh医t, tính

ch医t 8欝ng d衣ng nên 8逢嬰c chú tr丑ng h挨n là tính c映 th吋

N瓜i dung chính c栄a pha này là s穎 d映ng m瓜t ngôn ng英 l壱p trình h逢噂ng 8嘘iv逢嬰ng c映 th吋, nh逢 C++, Java, … 8吋 tri吋n khai các thi院t k院"8ã 8逢嬰c t衣o ra trong giai

Trang 33

8o衣n thi院t k院 Vi羽c tri吋n khai này liên quan ch員t ch胤"8院n các yêu c亥u c栄a framework

và ngôn ng英 th詠c hi羽n d詠"8鵜nh Do v壱y, trong ph亥n này, s胤 không 8i sâu vào vi羽c

th詠c hi羽n m瓜t framework c映 th吋 nào c違, mà ch雨"8隠 c壱p 8院n k鵜ch b違n tri吋n khai và

m瓜t s嘘 tiêu chu育n c亥n ph違i 8áp 泳ng trong khi xây d詠ng m瓜t framework

Khi tri吋n khai m瓜t framework, m瓜t cách ti院p c壱n t瑛 trên xu嘘ng nên là cáchphù h嬰p nh医t, b逸t 8亥u t瑛 các l噂p m泳c cao Các phát tri吋n này th詠c hi羽n ch泳c n<ngchung c栄a các 泳ng d映ng và ti院p t映c th詠c hi羽n các 8嘘i t逢嬰ng m泳c th医p T医t c違 các8嘘i t逢嬰ng là không hi羽u l詠c t衣i th運i 8k吋m ki吋m tra framework, do v壱y m瓜t 8k隠u ki羽n8吋 thay th院 chúng ph違i 8逢嬰c tìm th医y Ho員c là các cu嘘ng mã có th吋"8逢嬰c cung c医p,

ho員c g丑i t噂i các 8嘘i t逢嬰ng m泳c th医p có th吋"8逢嬰c gi違"8鵜nh

Ti院p sau pha thi院t k院 chi ti院t, t医t c違 các l噂p v噂i các thu瓜c tính và ph逢挨ng pháp8逢嬰c xác 8鵜nh khi s穎 d映ng ngôn ng英"8逢嬰c d詠 ki院n Tuy nhiên, không có ranh gi噂i

rõ ràng gi英a thi院t k院 chi ti院t, tri吋n khai và ki吋m th穎, b荏i vì các s詠 không nh医t quán

s胤"8逢嬰c phát hi羽n trong khi tri吋n khai và s胤"8逢嬰c ph違n h欝i l衣i pha thi院t k院 chi ti院t.Các thành ph亥n th壱m chí còn 8逢嬰c ki吋m tra trong su嘘t pha tri吋n khai

A亥u vào c栄a pha tri吋n khai là m瓜t mô t違 chi ti院t c栄a các l噂p, các giao di羽n vàcác 8鵜nh ngh a bên ngoài 8逢嬰c c映 th吋 v噂i hình th泳c c栄a ngôn ng英 th詠c hi羽n A亥u ra

là m瓜t t壱p các l噂p 8逢嬰c th詠c hi羽n, s印n sàng 8吋"8逢嬰c ki吋m tra A嘘i v噂i m厩i l噂p, vi羽ctri吋n khai g欝m hai b逢噂c sau:

fi S詠 tri吋n khai giao di羽n bên ngoài c栄a l噂p Giao di羽n này, 8逢嬰c xác 8鵜nh trong

su嘘t pha thi院t k院 chi ti院t, 8逢嬰c hoàn thành 8吋 ch泳a 8鵜nh ngh a bên trong c栄a

l噂p này, ví d映 các thu瓜c tính và tác v映"8逢嬰c b違o v羽 hay riêng t逢

fi S詠 tri吋n khai các tác v映, b逸t 8亥u v噂i m瓜t tác v映 r厩ng (không ch泳a mã) v噂i ki吋utr違 v隠"8úng Các 泳ng x穎 n瓜i b瓜"8逢嬰c xác 8鵜nh b茨ng cách ki吋m tra các mô hình8瓜ng, ví d映 các l逢嬰c 8欝 t逢挨ng tác và các bi吋u 8欝 chuy吋n d鵜ch tr衣ng thái Cácn逢嬰c 8欝 t逢挨ng tác th壱m chí ch泳a các mã gi違 (pseudocode), trên 8ó vi羽c th詠chi羽n có th吋"8逢嬰c d詠ng lên 永ng x穎 toàn b瓜 c栄a các tác v映"8逢嬰c th詠c hi羽ntrong b逢噂c này

Các quy 逢噂c tiêu chu育n v隠 th詠c hi羽n nên 8逢嬰c 8鵜nh ngh a ho員c 8逢嬰c s穎 d映ngl衣i Các quy 逢噂c này bao g欝m xác 8鵜nh các c医u trúc file, các quy 逢噂c 8員t tên và cácquy t逸c cho các tham chi院u, Khi có m瓜t mã ngu欝n theo chu育n, vi羽c 8丑c mã s胤8逢嬰c d宇 dàng Vi羽c có m瓜t 8q衣n mã mà d宇" 8丑c s胤 thu壱n l嬰i cho vi羽c hi吋uframework, và ti院t ki羽m 8逢嬰c th運i gian cho ng逢運i s穎 d映ng

Trang 34

1.2.5 Xác minh và th 育m 8鵜nh tính h嬰p l羽

N瓜i dung chính s胤" 8逢嬰c trình b亥y bao g欝m ph亥n 1.2.5.1 là các khái ni羽mchung v隠 vi羽c ki吋m th穎 ph亥n m隠m, và ph亥n 1.2.5.2, là các s詠 ki吋m th穎 dành riêngcho framework

M映c 8ích c栄a vi羽c ki吋m th穎 là 8吋 ki吋m tra r茨ng h羽 th嘘ng 8ang 8逢嬰c xây d詠ng8áp 泳ng 8逢嬰c 8亥y 8栄 các yêu c亥u 8ã 8逢嬰c nêu trong phân tích mi隠n 泳ng d映ng ho員ctrong pha phân tích M映c 8ích c栄a vi羽c th育m"8鵜nh tính h嬰p l羽 là 8吋 ki吋m tra s違nph育m 8逢嬰c xây d詠ng 8ã là s違n ph育m mà ng逢運i t逢 v医n th詠c s詠 mu嘘n ch逢a

M瓜t trong các ho衣t 8瓜ng c栄a pha này là ho衣t 8瓜ng ki吋m th穎 Ho衣t 8瓜ng ki吋mth穎 này th逢運ng 8逢嬰c phân nhóm thành ki吋m th穎"8挨n v鵜, ki吋m th穎 tích h嬰p và ki吋m

th穎 ng逢嬰c Các ho衣t 8瓜ng khác là các 8i隠u tra mã và 8ánh giá, ki吋m th穎 có tính ch医t

th嘘ng kê Các th<m dò mã và 8ánh giá là không khác cho vi羽c phát tri吋n framework

và s詠 s穎 d映ng l衣i, nh逢"8嘘i v噂i vi羽c phát tri吋n ph亥n m隠m khác Do v壱y 荏"8ây ch雨trình b亥y ki吋m th穎 mang tính ch医t th嘘ng kê

1.2.5.1 Các khái niうm vz kiあm thぬ phZn mzm

Trong ph亥n này, s胤 trình b亥y khái ni羽m v隠 ki吋m th穎"8挨n v鵜, ki吋m th穎 tích h嬰p

và mô hình ki吋m th穎 Khi th詠c hi羽n m瓜t ki吋m th穎"8挨n v鵜, t衣i m瓜t th運i 8k吋m, ch雨 duy

nh医t m瓜t 8挨n v鵜"8逢嬰c ki吋m th穎 M瓜t 8挨n v鵜 có th吋 là m瓜t ho衣t 8瓜ng, m瓜t l噂p ho員c

m瓜t mô8un ch泳a m瓜t vài l噂p và có th吋 là m瓜t framework Ý t逢荏ng là m瓜t 8挨n v鵜8逢嬰c xác 8鵜nh t嘘t, cùng v噂i các trách nhi羽m 8逢嬰c xác 8鵜nh t嘘t 8ã 8逢嬰c ki吋m th穎, do

v壱y nó 8逢嬰c xác nh壱n là s胤"8áp 泳ng 8亥y 8栄 các yêu c亥u 8逢嬰c giao trách nhi羽m cho8挨n v鵜 này

Có hai ph逢挨ng pháp cho vi羽c làm các ki吋m th穎"8挨n v鵜 là:

fi Ki吋m th穎 c医u trúc, yêu c亥u ki院n th泳c v隠 c医u trúc n瓜i b瓜 c栄a 8挨n v鵜 Ph逢挨ngpháp ki吋m th穎 này s胤 ch雨 ra tính tin c壱y c栄a 8挨n v鵜

fi Ki吋m th穎 c映 th吋, ho員c ki吋m th穎 ch泳c n<ng, 8逢嬰c làm d詠a trên các yêu c亥u8逢嬰c giao trách nhi羽m cho 8挨n v鵜 này Ph逢挨ng pháp này không quan tâm t噂i

c医u trúc n瓜i b瓜 c栄a 8挨n v鵜 này, nó ch雨 ki吋m th穎 vi羽c 8挨n v鵜"8áp 泳ng t噂i các8亥u vào xác 8鵜nh nh逢 th院 nào

Ki吋m th穎 tích h嬰p là vi羽c ki吋m th穎 các 8挨n v鵜 ph亥n m隠m làm vi羽c v噂i nhau

nh逢 th院 nào T衣i cùng m瓜t th運i 8k吋m, m瓜t ki吋m th穎 tích h嬰p có th吋 là m瓜t ki吋m th穎8挨n v鵜, m瓜t 8挨n v鵜 có th吋 ch泳a m瓜t vài các 8挨n v鵜 con Các bi吋u 8欝 ca s穎 d映ng làcác công c映 t嘘t cho vi羽c th詠c hi羽n các ki吋m th穎 tích h嬰p

Trang 35

Khi t医t c違 các mô8un 8逢嬰c k院t h嬰p 8吋" 8鵜nh d衣ng h羽 th嘘ng cu嘘i cùng, vi羽cki吋m th穎 tích h嬰p cu嘘i cùng 8ôi khi 8逢嬰c g丑i là ki吋m th穎 h羽 th嘘ng Vi羽c ki吋m th穎

h羽 th嘘ng này xác nh壱n là h羽 th嘘ng có th臼a mãn các yêu c亥u hay không N院u các yêu

c亥u 8ã 8逢嬰c vi院t d逢噂i d衣ng các bi吋u 8欝 ca s穎 d映ng, thì các k院t qu違 c栄a m瓜t ca s穎d映ng c映 th吋 s胤"8逢嬰c t逢挨ng 泳ng tr詠c ti院p v噂i vi羽c th臼a mãn m瓜t yêu c亥u c映 th吋 Vi羽c

ki吋m th穎 h羽 th嘘ng s胤 là b逢噂c 8亥u tiên 8吋 ki吋m th穎 h羽 th嘘ng có 8áp 泳ng 8逢嬰c cácyêu c亥u 8員t ra hay không Các ki吋m th穎 tích h嬰p s噂m h挨n s胤 ch雨 th臼a mãn các yêu

c亥u nh壱n 8逢嬰c t瑛 các nhà t逢 v医n, do v壱y vi羽c ki吋m th穎 h羽 th嘘ng là quan tr丑ng

Cu嘘i cùng, là khái ni羽m v隠 mô hình ki吋m th穎 Cách phù h嬰p nh医t là s穎 d映ng

m瓜t mô hình cho c違 vi羽c phát tri吋n framework và vi羽c s穎 d映ng l衣i framework này

Mô hình ki吋m th穎 bao g欝m các ca ki吋m th穎 và các tri吋n khai th穎 nghi羽m

M瓜t tri吋n khai th穎 nghi羽m"8逢嬰c s穎 d映ng 8吋 mô ph臼ng th院 gi噂i xung quanh8挨n v鵜"8逢嬰c ki吋m th穎 Vi羽c ki吋m th穎 này th詠c hi羽n các l運i g丑i t噂i các ho衣t 8瓜ng

c栄a 8嘘i t逢嬰ng 8逢嬰c ki吋m th穎

M瓜t ca ki吋m th穎 ch泳a m瓜t chu厩i các ho衣t 8瓜ng ho員c m瓜t chu厩i các kích thích,cùng v噂i m瓜t 8員c t違 c栄a s詠 ki羽n 8逢嬰c mong mu嘘n N院u các ca s穎 d映ng 8ã 8逢嬰cdùng trong mô hình yêu c亥u, thì chúng s胤"8鵜nh d衣ng m瓜t n隠n t違ng t嘘t, mà t瑛"8ó, các

ca ki吋m th穎"8逢嬰c d宇 dàng thu nh壱n Các yêu c亥u mà 8逢嬰c vi院t d逢噂i d衣ng các ca s穎

d映ng có th吋"8逢嬰c ki吋m tra tr詠c ti院p b茨ng vi羽c thi hành các ca ki吋m th穎, cái mà 8逢嬰cthu nh壱n t瑛 các ca s穎 d映ng này

1.2.5.2 Các ki あm thぬ dành riêng cho framework

雲"8ây không có s詠 khác nhau th詠c s詠 gi英a vi羽c ki吋m th穎 các 8挨n v鵜 c栄a m瓜tframework so v噂i vi羽c ki吋m th穎 các h羽 th嘘ng ph亥n m隠m thông th逢運ng Tuy nhiên,荏"8ây v磯n có m瓜t s嘘"8k吋m khác bi羽t ph映 thu瓜c vào vi羽c s穎 d映ng các k悦 thu壱t h逢噂ng8嘘i t逢嬰ng và th詠c t院 là framework 8逢嬰c phát tri吋n 8吋 s穎 d映ng l衣i

Có hai câu h臼i chính c亥n 8逢嬰c tr違 l運i b茨ng vi羽c ki吋m th穎 m瓜t framework Câu

h臼i 8亥u tiên là framework có th詠c s詠 bao trùm mi隠n 泳ng d映ng 8逢嬰c d詠"8鵜nh haykhông Câu h臼i này 8逢嬰c ki吋m th穎 b茨ng cách ti院p t映c s穎 d映ng l衣i framework N院uframework này là không phù h嬰p cho vi羽c phát tri吋n m瓜t 泳ng d映ng thì nên cân nh逸c

gi英a vi羽c framework này nên 8逢嬰c thi院t k院 l衣i, ho員c n院u có th吋 thì ph衣m vi c栄a

mi隠n 泳ng d映ng nên 8逢嬰c thay 8鰻i Các 泳ng d映ng hi羽n có có th吋"8逢嬰c s穎 d映ng 8吋

mô hình hóa các k鵜ch b違n c栄a các s詠 ki羽n mà có th吋"8逢嬰c s穎 d映ng trong giai 8q衣nsau, 8吋 ki吋m th穎 kh違 n<ng s穎 d映ng l衣i c栄a framework

Trang 36

Câu h臼i th泳 hai là li羽u framework này có 8áp 泳ng 8亥y 8栄 các ph亥n c栄a các yêuc亥u 泳ng d映ng hay không Câu h臼i này 8逢嬰c th育m 8鵜nh ch栄 y院u cùng v噂i các ho衣t8瓜ng c栄a vi羽c ki吋m th穎 h羽 th嘘ng.

Jacobson kh鰯ng 8鵜nh r茨ng, tính 8a hình là m瓜t công c映 t嘘t trong quá trình ki吋m

th穎 N院u các thay 8鰻i 8逢嬰c làm trong m瓜t l噂p con, còn g丑i là l噂p ph映c v映 thì 荏"8ây

s胤 không c亥n 8吋 ki吋m th穎 l噂p khách (framework này) Nó s胤 là hi羽u qu違"8吋 ki吋mth穎 l噂p con, xác nh壱n r茨ng l噂p con này s胤"8áp 泳ng thích h嬰p v噂i các l運i g丑i t瑛framework

Nh逢 v壱y, n院u các l噂p m噂i c映 th吋"8逢嬰c thi院t k院"8吋 c医u hình framework thành

m瓜t 泳ng d映ng c映 th吋 thì m厩i l噂p m噂i này ph違i 8逢嬰c ki吋m th穎"8挨n v鵜, nh逢ng b違nthân framework l衣i không ph違i ki吋m th穎 nh逢 m瓜t thành ph亥n riêng l飲 n英a Tuynhiên, framework này ph違i 8逢嬰c ki吋m th穎 trong m瓜t ki吋m th穎 tích h嬰p Aây là m瓜t

ki吋m th穎 c栄a 泳ng d映ng hoàn ch雨nh xem các l噂p c映 th吋 m噂i s胤 t逢挨ng tác v噂iframework nh逢 th院 nào

N院u t医t c違 các l噂p c映 th吋"8逢嬰c nh壱n t瑛 th逢 vi羽n c栄a framework (các l噂p 8ã8逢嬰c s穎 d映ng tr逢噂c 8ây) thì có hai tr逢運ng h嬰p có th吋 x違y ra Tr逢運ng h嬰p th泳 nh医t

s詠 k院t h嬰p c栄a các l噂p này và framework 8ã 8逢嬰c s穎 d映ng và ki吋m th穎 tr逢噂c 8ây,

và nó s胤 là không c亥n thi院t 8吋 ki吋m th穎 l衣i s詠 k院t h嬰p này Tr逢運ng h嬰p th泳 hai x違y

ra khi các l噂p c映 th吋"8ã 8逢嬰c s穎 d映ng tr逢噂c v噂i nhau cùng v噂i framework này,

nh逢ng l衣i không ph違i 荏 trong s詠 k院t h嬰p này Trong tt逢運ng h嬰p này, không yêu c亥ucác ki吋m th穎 riêng cho m厩i l噂p c映 th吋, tuy nhiên, c亥n có m瓜t ki吋m th穎 cho 泳ngd映ng hoàn ch雨nh

Trong th詠c t院, không c亥n thi院t ph違i có m瓜t ki吋m th穎" 8挨n v鵜 cho m瓜tframework 8逢嬰c s穎 d映ng l衣i M瓜t framework 8逢嬰c phát tri吋n 8亥y 8栄 v噂i t医t c違 các

l噂p c映 th吋 c亥n thi院t có trong th逢 vi羽n c栄a framework s胤 gi違m b噂t r医t nhi隠u các n厩

l詠c c栄a vi羽c ki吋m th穎 c栄a m瓜t 泳ng d映ng c映 th吋"8逢嬰c xây d詠ng t瑛 framework này

Các framework 8ã 8逢嬰c 8鵜nh ngh a cho m瓜t s嘘 l逢嬰ng l噂n các mi隠n 泳ng d映ng

姶u 8i吋m 8ã 8逢嬰c kh鰯ng 8鵜nh c栄a các framework là t<ng c逢運ng kh違 n<ng s穎 d映ng

l衣i và gi違m th運i gian 8吋 ti院p c壱n các 泳ng d映ng Nh逢ng 荏"8ây có các v医n 8隠 và các

tr荏 ng衣i 8i kèm v噂i các framework, mà có th吋 xu医t hi羽n tr逢噂c khi chúng 8逢嬰c s穎d映ng trong các d詠 án th壱t

Vi羽c s穎 d映ng l衣i 荏 m泳c các thành ph亥n l噂n là có th吋 t衣o ra ph亥n l噂n h挨n c栄a

h羽 th嘘ng và v噂i nh英ng khía c衣nh 8逢嬰c 8k隠u ch雨nh cho phù h嬰p, 8ã không 8逢嬰c ch雨

ra b荏i b違n thân các m磯u h逢噂ng 8嘘i t逢嬰ng Cách hi吋u này 8ã d磯n t噂i vi羽c phát tri吋n

Trang 37

các framework h逢噂ng 8嘘i t逢嬰ng; các 泳ng d映ng l噂n và tr瑛u t逢嬰ng trong m瓜t vùng c映th吋 mà có th吋" 8逢嬰c 8k隠u ch雨nh cho phù h嬰p v噂i các 泳ng d映ng riêng bi羽t M瓜tframework ch泳a m瓜t ki院n trúc l噂n mà có th吋"8逢嬰c s穎 d映ng l衣i nh逢 t鰻ng th吋"泳ng

d映ng cho vi羽c xây d詠ng m瓜t h羽 th嘘ng m噂i

Các v医n 8隠 ch栄 y院u g員p ph違i trong quá trình phát tri吋n framework là xác 8鵜nhkích th逢噂c chính xác c栄a mi隠n 泳ng d映ng, l壱p tài li羽u cho framework, ph鰻 bi院nframework và xác nh壱n các ho衣t 8瓜ng tr瑛u t逢嬰ng Các v医n 8隠 này s胤"8逢嬰c trình b亥ychi ti院t trong các ph亥n sau

Khi quy院t 8鵜nh phát tri吋n m瓜t framework cho m瓜t mi隠n 泳ng d映ng c映 th吋, s胤 có

v医n 8隠 v隠 xác 8鵜nh chính xác kích th逢噂c c栄a mi隠n N院u nh逢 mi隠n 泳ng d映ng quá l噂n,thì các nhà phát tri吋n s胤 không th吋 có 8栄 kinh nghi羽m c栄a mi隠n 泳ng d映ng này H挨nn英a, có th吋 là khó kh<n 8吋 ch泳ng minh tính ti羽n ích và kh違 n<ng 泳ng d映ng c栄a m瓜tframework cho m瓜t mi隠n 泳ng d映ng l噂n Th壱m chí, 8亥u t逢 tài chính cho m瓜tframework l噂n có th吋 là quá nhi隠u nên s胤 r医t khó 8吋 có 8逢嬰c các tài nguyên c亥nthi院t Và cu嘘i cùng, d詠 án có th吋 s胤 không có 8逢嬰c các l嬰i ích s穎 d映ng l衣i 8ã 8逢嬰c

d詠"8鵜nh 8衣t 8逢嬰c trong m瓜t th運i gian có th吋

Ng逢嬰c l衣i, m瓜t mi隠n 泳ng d映ng nh臼 h挨n thì s胤 có th吋 s穎 d映ng các kinh nghi羽m8ã bi院t m瓜t cách hi羽u qu違 h挨n Tuy nhiên, có m瓜t v医n 8隠 là framework k院t qu違 cókhuynh h逢噂ng nh衣y c違m v噂i các thay 8鰻i c栄a mi隠n 泳ng d映ng Ví d映, v噂i m瓜tframework h姻p, m瓜t 泳ng d映ng có th吋 d宇 dàng m荏 r瓜ng v逢嬰t quá gi噂i h衣n c栄aframework, và do v壱y s胤 yêu c亥u nhi隠u thay 8鰻i c栄a 泳ng d映ng c映 th吋 t噂i framework8吋 ti羽n d映ng h挨n, khi framework ph違i bao trùm 泳ng d映ng hoàn ch雨nh

T瑛 nh英ng lu壱n 8k吋m trên, có th吋 th医y r茨ng vi羽c xác 8鵜nh gi噂i h衣n c栄a mi隠n泳ng d映ng là m瓜t quy院t 8鵜nh ph違i 8逢嬰c cân nh逸c r医t c育n th壱n B荏i vì t逢挨ng lai làkhông 8oán tr逢噂c 8逢嬰c, do v壱y s胤 có m瓜t v医n 8隠 là r医t khó 8吋"8衣t 8逢嬰c các gi噂i h衣n

rõ ràng cho framework M瓜t v医n 8隠 th泳 hai là, m瓜t cách r医t t詠 nhiên, xu h逢噂ng c栄ang逢運i dùng là t<ng kích th逢噂c c栄a framework trong su嘘t quá trình thi院t k院, b荏i vì

m瓜t framework 8ã bao g欝m m瓜t s嘘 các khía c衣nh khác d逢運ng nh逢 s胤 ti羽n ích h挨n

m瓜t framework mà thi院u các m員t này

Ngoài các v医n 8隠 trên, vi羽c l詠a ch丑n kích th逢噂c c栄a l nh v詠c là m瓜t v医n 8隠khó M瓜t framework không 8逢嬰c quá chung chung 8院n m泳c các thành ph亥n c栄a nóx逢嬰t quá 泳ng d映ng d詠"8鵜nh M瓜t cách ti院p c壱n “m瓜t kích c叡 h嬰p cho t医t c違” s胤"8逢a

ra các r栄i ro không c亥n thi院t Framework phù h嬰p nh医t cho m瓜t l nh v詠c c映 th吋 s胤

Trang 38

ph違n ánh m瓜t cách k悦 càng, 8栄 nh臼, t壱p trung trên m瓜t v医n 8隠 c映 th吋 hay m瓜t nhómcác v医n 8隠.

Các framework h逢噂ng 8嘘i t逢嬰ng n鰻i lên nh逢 là m瓜t ph逢挨ng pháp quan tr丑ng8吋 ti院p nh壱n vi羽c s穎 d映ng l衣i mã t嘘t h挨n Tuy nhiên, m瓜t tr荏 ng衣i chính v磯n còn trêncon 8逢運ng c栄a vi羽c s穎 d映ng r瓜ng rãi chúng, 8ó là các framework có khuynh h逢噂ng

tr荏 nên l噂n và ch泳a các m嘘i t逢挨ng quan ph泳c t衣p gi英a các 8嘘i t逢嬰ng Các nhà l壱ptrình s胤 ph違i h丑c r医t nhi隠u khi ti院p c壱n v噂i m瓜t framework m噂i A嘘i v噂i ng逢運i s穎

d映ng, 8k吋m khác nhau ch栄 y院u gi英a m瓜t framework và m瓜t l噂p các th逢 vi羽n là ki院n

th泳c 8逢嬰c yêu c亥u 8吋 s穎 d映ng chúng Nói chung, các framework là khó hi吋u h挨ncác l噂p th逢 vi羽n, b荏i vì framework nh逢 là m瓜t b瓜"8鵜nh d衣ng 8吋 v隠 sau, s胤 thu nh壱nnhi隠u thông tin thi院t k院 h挨n

M瓜t framework là d宇 dàng s穎 d映ng, n院u các giao di羽n 8k隠u ch雨nh 8逢嬰c c栄a nó

là 8挨n gi違n 8院n m泳c có th吋 và th嘘ng nh医t v隠 bi吋u m磯u M瓜t tài li羽u t嘘t c亥n miêu t違các v医n 8隠 quan tr丑ng sau:

fi M映c 8ích c栄a framework

fi T鰻ng quan v隠 ki院n trúc và các t逢挨ng tác chính

fi Ai吋m 8k隠u ch雨nh và cách s穎 d映ng chúng

fi Các thành ph亥n tiêu chu育n 8逢嬰c cung c医p b荏i th逢 vi羽n l噂p

M映c 8ích c栄a vi羽c làm tài li羽u framework g欝m hai ph亥n AZu tiên, thông tin

v隠 thi院t k院 framework và thông tin liên quan khác c亥n 8逢嬰c trao 8鰻i trong su嘘t quátrình phát tri吋n framework Các thông tin trao 8鰻i 8挨n gi違n, không c亥u k là r医tthu壱n l嬰i 8吋 m荏 r瓜ng ki院n th泳c v隠 framework 8逢嬰c phát tri吋n M瓜t nhóm thi院t k院

nh臼 th逢運ng s穎 d映ng các k悦 thu壱t tùy h泳ng khác nhau 8吋 trao 8鰻i thông tin gi英a cácthành viên trong nhóm V医n 8隠 là, các k悦 thu壱t này r医t không hi羽u qu違 và th逢運ngkhông 8違m b違o r茨ng thông tin 8úng 8ã 8逢嬰c 8逢a 8院n

Thと hai, thông tin v隠 cách s穎 d映ng framework nh逢 th院 nào c亥n 8逢嬰c chuy吋n

t噂i ng逢運i s穎 d映ng framework Tr逢運ng h嬰p này quan tr丑ng h挨n, nh医t là khi các kênhthông tin tiêu chu育n là không hi羽u l詠c và t医t c違 thông tin ph違i 8逢嬰c trao 8鰻i theo

m瓜t cách nào 8ó 8吋 có th吋 phân phát cùng v噂i framework này Ph逢挨ng pháp hi羽n t衣i8吋 th詠c hi羽n v医n 8隠 này là các gi違i thích v隠 các lo衣i s鰻 tay khác nhau, s穎 d映ng các

ph逢挨ng ti羽n khác nhau Tài li羽u này th逢運ng là tùy h泳ng, 8k隠u này làm nó khó 8吋

hi吋u và so sánh Vi羽c l壱p tài li羽u framework nên ch泳a m映c 8ích c栄a framework,

Trang 39

thông tin v隠 cách s穎 d映ng framework nh逢 th院 nào, m映c 8ích c栄a các ví d映" 泳ngd映ng, và thi院t k院 th詠c t院 c栄a framework.

A嘘i v噂i m瓜t framework, h瓜p tr逸ng hay h瓜p 8en, 8隠u c亥n ng逢運i dùng hi吋u 8逢嬰ccác nguyên t逸c d逢噂i l噂p ho員c ki院n trúc c挨 b違n c栄a framework này M員t khác, cácquy t逸c và ràng bu瓜c chi ti院t 8逢嬰c 8鵜nh ngh a b荏i các nhà phát tri吋n framework ph違i8逢嬰c làm không c違m tính và framework này có th吋 không 8逢嬰c s穎 d映ng nh逢 d詠8鵜nh Ví d映 v隠 các quy t逸c và ràng bu瓜c này là s嘘 các y院u t嘘 trong t壱p h嬰p các 8嘘iv逢嬰ng framework, vi羽c t衣o hay h栄y b臼 các 8嘘i t逢嬰ng framework t nh và 8瓜ng, tr壱t

t詠 c栄a các tr逢運ng h嬰p c映 th吋, s詠"8欝ng b瓜 và các v医n 8隠 v隠 hi羽u qu違 th詠c hi羽n Cácquy t逸c và ràng bu瓜c này th逢運ng xuyên b鵜 che gi医u tuy羽t 8嘘i ho員c không có trongcác tài li羽u, và 荏"8ây có m瓜t nhu c亥u l噂n 8吋 suy lu壱n và làm tài li羽u v隠 chúng V医n8隠"8逢嬰c 8員t ra là, thông tin này c亥n 8逢嬰c chuy吋n t違i nh逢 th院 nào theo m瓜t d衣ng

ng逸n g丑n và súc tích t噂i ng逢運i s穎 d映ng framework

Ph鰻 bi院n m瓜t framework 8吋 phát tri吋n 泳ng d映ng ph違i 8逢嬰c d詠a trên m瓜t s嘘nguyên t逸c quan tr丑ng V医n 8隠 là c亥n có 8鵜nh ngh a và 8違m b違o các nguyên t逸c nàycho framework Framework này ph違i có th吋"8逢嬰c s穎 d映ng l衣i, có 8瓜 ch逸c ch逸n ch医p

nh壱n 8逢嬰c trong l nh v詠c này và 8逢嬰c làm tài li羽u t嘘t

V医n 8隠 c栄a vi羽c 8鵜nh ngh a 8瓜 ch逸c ch逸n trong l nh v詠c có 8瓜 ph泳c t衣p s胤 b鵜nhân 8ôi A亥u tiên, b違n thân l nh v詠c này tuy không ph違i là ch逸c ch逸n, nh逢ng ph違ikhông 8逢嬰c thay 8鰻i Th泳 hai, v医n 8隠 c栄a gi噂i h衣n l nh v詠c và các gi噂i h衣n th壱m chílàm ph泳c t衣p quy院t 8鵜nh v隠 ph鰻 bi院n framework này Quy院t 8鵜nh framework này có8逢嬰c làm tài li羽u t嘘t và hi羽u qu違 hay không là khó, do không có ph逢挨ng pháp l壱p tài

li羽u chung nào 8逢嬰c ch医p nh壱n mà bao trùm t医t c違 các m員t c栄a framework, th壱m chí

r医t khó kh<n 8吋"8鵜nh ngh a tài li羽u này có là d宇 hi吋u hay không 8嘘i v噂i các ng逢運idùng d詠"8鵜nh

Vi羽c ph鰻 bi院n m瓜t framework không 8亥y 8栄 có th吋 s胤 mang l衣i các h壱u qu違nghiêm tr丑ng trong vi羽c duy trì và s穎 d映ng framework này c ng nh逢 khi áp d映ngcho các泳ng d映ng c映 th吋

Khi phát tri吋n m瓜t framework, các k院t qu違 ph違i 8逢嬰c ki吋m th穎 Do m瓜t framework

có th吋"8逢嬰c s穎 d映ng theo nhi隠u cách khác nhau và không 8逢嬰c bi院t tr逢噂c, v医n 8隠 có

th吋 ch雨"8挨n gi違n là không th詠c hi羽n 8逢嬰c vi羽c ki吋m th穎 t医t c違 các m員t xác 8áng c栄aframework

Trang 40

J挨n n英a, vi羽c ki吋m th穎 framework cho các l厩i, s穎 d映ng ph逢挨ng pháp truy隠n th嘘ng,

nh逢 các ph亥n thi hành c栄a mã trong các l噂p 8ã 8逢嬰c xác 8鵜nh 8úng, s胤 không làm

vi羽c cho toàn b瓜 framework Cách t嘘t nh医t là các ph亥n c栄a framework có th吋"8逢嬰c

ki吋m th穎 theo cách này, nh逢ng khi framework d詠a trên ph亥n này 8逢嬰c th詠c hi羽n b荏i

ng逢運i s穎 d映ng thì l衣i không th吋"8逢嬰c ki吋m th穎 hoàn toàn tr逢噂c khi framework 8逢嬰c

ph鰻 bi院n Chúng th壱m chí liên quan t噂i v医n 8隠 v隠 ki吋m th穎 các ph逢挨ng pháp tr瑛uv逢嬰ng Th栄 t映c ki吋m th穎 tiêu chu育n không cho phép vi羽c ki吋m th穎 các thành ph亥n

tr瑛u t逢嬰ng, nh逢 là các l噂p c挨 s荏 tr瑛u t逢嬰ng

Ngày đăng: 07/03/2020, 18:19

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w