2.3. Các mô hình phát triển Phần mềm - 1 số lưu ý(2.4)

Màu nền
Font chữ
Font size
Chiều cao dòng

2.3. Các mô hình phát triển PM:

+ Hiện nay có rất nhiều mô hình phát triển phần mềm, và thường được phân thành 2 loại: mô hình tuyến tính và mô hình lặp.

–Mô hình tuyến tính: các bước được thực hiện tuần tự, không lặp lại.

.Mô hình thác nước

.Mô hình V…

–Mô hình lặp: các bước có thể thực hiện song song, có thể lặp lại một số bước.

.Mô hình tiến hóa

.Mô hình xoắn ốc

.Mô hình hợp nhất…

________________

2.3.2. Mô hình Thác nước:

+ Các pha của mô hình thác nước bao gồm:

–  Phân tích và xác định các yêu cầu

–  Thiết kế hệ thống và phần mềm

–  Cài đặt và kiểm thử đơn vị

–  Tích hợp và kiểm thử hệ thống

–  Vận hành và bảo trì.

+ Là mô hình cổ điển

+ Phương pháp áp dụng 1 lần

+ Điều khiển hiệu quả

+ Phạm vi giới hạn của vòng lặp

+ Vòng đời dài

+ Không thích hợp với các hệ thống không rõ ràng

+ Trong mô hình thác nước, năm pha trên phải được

thực hiện một cách tuần tự; kết thúc pha trước, rồi mới được thực hiện pha tiếp theo. Do đó, nhược

điểm chính của mô hình thác nước là rất khó khăn trong việc thay đổi các pha đã được thực hiện. Giả sử, pha phân tích và xác định yêu cầu đã hoàn tất và

chuyển sang pha kế tiếp, nhưng lúc này lại có sự thay đổi yêu cầu của người sử dụng; thì chỉ còn cách là phải thực hiện lại từ đầu.

+ Mô hình này chỉ thích hợp khi các yêu cầu đã được tìm hiểu rõ ràng và những thay đổi sẽ được giới hạn một cách rõ ràng trong suốt quá trình thiết kế. Tuy nhiên, trong thực tế có rất ít những hệ thống nghiệp vụ có các yêu cầu ổn định.

+ Ưu điểm:

–Chỉ phù hợp với các dự án nhỏ hoặc

–Yêu cầu xác định

+ Nhược điểm:

–Không phù hợp với dự án lớn

–Thời gian thực hiện lâu

____________

2.3.2. Mô hình V:

Bảo trì

Phân tích yêu cầu-Kiểm thử chấp nhận

Thiết kế hệ thống-Kiểm thử hệ thống

Thiết kế chương trình-Kiểm thử đơn vị và tích hợp

Lập trình                                  

+ Trong mô hình V:

–Các tiến trình kiểm thử được thêm vào

–Kết nối kiểm thử với phân tích và thiết kế

–Thích hợp với những trường hợp bài toán không nhất quán

___________

2.3.3. Mô hình bản mẫu

(Vòng tròn)Nghe Khách trình bày--Tạo / sửa bản mẫu--Khách kiểm tra bản mẫu

+ Mục đích

– Xem xét yêu cầu người sử dụng ở giai đoạn ban đầu

– Giảm bớt rủi ro và không chắc chắn

– Kiểm chứng thiết kế và thực thi

+ Nên thường xuyên trả lời các câu hỏi chuyên biệt; mục đích phải được xác định

Lợi ích của bản mẫu:

+ Học bằng cách làm việc

+ Tăng cường giao tiếp

+ Tăng sự tham gia của người dùng vào dự án

+ Làm rõ các yêu cầu chỉ biết một phần

Tuần tự làm bản mẫu:

+ Tập hợp yêu cầu

+ Thiết kế nhanh

+ Xây dựng bản mẫu

+ Đánh giá của khách hàng

+ Làm mịn

+ Quay lại thiết kế nhanh để điều chỉnh

+ Xây dựng sản phẩm

+ Ưu điểm: phù hợp với

–  Hệ thống rủi ro cao

–  Yêu cầu không chắc chắn

–  Giao diện chưa rõ ràng

–  Chiến lược cài đặt chưa rõ ràng

+ Hạn chế:

–Khách hàng có thể cho rằng nguyên mẫu là hệ

thống thực

.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 cho hệ

thống thực

–Nguyên mẫu không giống hoàn toàn hệ thống cuối cùng

.Khách hàng sẽ có các phản ứng khác nhau

+ Mô hình bản mẫu thường được sử dụng khi:

–Khi mới rõ mục đích chung chung của phần mềm, chưa rõ chi tiết

đầu vào hay xử lý ra sao hoặc chưa rõ yêu cầu đầu ra

–Dùng như “Hệ sơ khai” để thu thập yêu cầu người dùng qua các thiết kế nhanh

–Các giải thuật, kỹ thuật dùng làm bản mẫu có thể chưa nhanh,

chưa tốt, miễn là có mẫu để thảo luận gợi yêu cầu của người dùng

_____________

2.3.4. Mô hình phát triển ứng dụng nhanh:

+ Mô hình bản mẫu thường được sử dụng khi:

–Khi mới rõ mục đích chung chung của phần mềm, chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưa rõ yêu cầu đầu ra

–Dùng như “Hệ sơ khai” để thu thập yêu cầu người dùng qua các thiết kế nhanh

–Các giải thuật, kỹ thuật dùng làm bản mẫu có thể chưa nhanh,chưa tốt, miễn là có mẫu để thảo luận gợi yêu cầu của người dùng

+ Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD) là mô hình phát triển phần mềm gia tăng, tăng dần từng bước (Incrimental software development) với mỗi chu trình phát triển rất ngắn (60-90 ngày)

+ Xây  dựng  dựa  trên  hướng  thành  phần  (Component-based construction) với khả năng tái sử dụng (reuse)

+ Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xử lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data, Process, Appl. Generation, Test)

2.3.4. Mô hình phát triển ứng dụng nhanh:Dài quá(bỏ)

RAD: Mô hình nghiệp vụ:

Luồng thông tin được mô hình hóa để trả lời các câu hỏi:

–Thông tin nào điều khiển xử lý nghiệp vụ ?

–Thông tin gì được sinh ra?

–Ai sinh ra nó ?

–Thông tin đi đến đâu ?

–Ai xử lý chúng ?

RAD: Mô hình tiến trình và dữ liệu

+ Data modeling: các đối tượng dữ liệu cần để hỗ trợ nghiệp vụ (business). Định nghĩa các thuộc  tính  của  từng  đối  tượng  và  xác  lập quan hệ giữa các đối tượng

+ Process  modeling:  Các  đối  tượng  dữ  liệu được chuyển sang luồng thông tin thực hiện chức năng nghiệp vụ. Tạo mô tả xử lý đễ cập nhật  (thêm, sửa, xóa, khôi  phục) từng  đối tượng dữ liệu

RAD: Tự sinh ứng dụng và kiểm thử

+Application Generation: Dùng các kỹ thuật

thế hệ 4 để tạo phần mềm từ các thành phần có sẵn hoặc tạo ra các thành phần có thể tái dụng lại sau này. Dùng các công cụ tự động để xây dựng phần mềm

+Testing and Turnover: Kiểm thử các thành phần mới và kiểm chứng mọi giao diện (các thành phần cũ đã được kiểm thử và dùng lại)

RAD: Hạn chế ?

+ Cần nguồn nhân lực dồi dào để tạo các nhóm cho các chức năng chính

+ Yêu cầu hai bên giao kèo trong thời gian ngắn phải có phần mềm hoàn chỉnh, thiếu trách nhiệm của một bên dễ làm dự án đổ vỡ

+ RAD không phải tốt cho mọi ứng dụng, nhất là với ứng dụng không thể môđun hóa hoặc đòi hỏi tính năng cao

+ Mạo hiểm kỹ thuật cao thì không nên dùng RAD

______________

2.3.5. Mô hình tiến hóa

+ Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo thời gian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiện thêm chức năng, tính năng

+ Các mô hình tiến hóa (evolutionary models) có tính lặp lại. Kỹ sư phần mềm tạo ra các phiên bản (versions) ngày càng hoàn thiện hơn, phức tạp hơn

+ Các  mô  hình:  gia  tăng  (incremental),  xoắn  ốc(spiral), xoắn WINWIN (WINWIN spiral) mô hình phát triển đồng thời (concurrent development model)

+Mô hình tiến hóa:

Đặc tả-Phiên bản đầu tiên

Phát triển-Phiên bản trung gian

Hợp thức hóa-Phiên bản cuối cùng

+ Ưu điểm: phù hợp với

–  Dự án vừa và nhỏ

–  Các phần của dự án phức tạp

–  Các hệ thống có thời gian sống ngắn

+ Hạn chế

–  Cấu trúc hệ thống tồi

–  Tiến trình không rõ ràng

____________

2.3.5.1. Mô hình gia tăng

+ Mô hình gia tăng (The incremental model): Kết hợp mô hình tuần tự và ý tưởng lặp lại của chế bản mẫu

+ Sản phẩm lõi với những yêu cầu cơ bản nhất của hệ thống được phát triển

+ Các chức năng với những yêu cầu khác được phát triển thêm sau (gia tăng)

+ Lặp lại quy trình để hoàn thiện dần:

+ Mô hình này được đề xuất dựa trên ý tưởng

thay  vì  phải  xây  dựng  và  chuyển  giao  hệ thống một lần thì sẽ được chia thành nhiều giai đoạn, tăng dần. Mỗi giai đoạn là một phần kết quả của một chức năng được yêu cầu.

+ Các yêu cầu của người sử dụng được đánh thứ tự ưu tiên. Yêu cầu nào có thứ tự ưu tiên càng cao thì càng ở trong những giai đoạn

phát triển sớm hơn.

Đánh giá các yêu cầu sơ bộ->Gán các yêu cầu cho từng vòng->Thiết kế kiến trúc hệ thống->Phát triển 1 vòng của 1 ht->Đánh giá 1 vòng->Tích hợp các vòng->Đánh giá hệ thống->Hệ thống cuối cùng

+ Ưu điểm của mô hình phát triển gia tăng:

–Sau mỗi lần tăng vòng thì có thể chuyển giao kết quả thực hiện được cho khách hành nên các chức năng của hệ thống có thể nhìn thấy sớm hơn.

–Các vòng trước đóng vai trò là mẫu thử để giúp tìm hiểu thêm các yêu cầu ở những vòng tiếp theo.

–Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì sẽ được kiểm thử càng kỹ.

_____________

2.3.5.2. Mô hình xoắn ốc:(spiral)

Lập kế hoạch

Giao tiếp khách hàng

Khách hàng

đánh giá

Xây dựng &

Xuất xưởng

Thiết kế

Phân tích rủi ro

(Boehm)

Xác định mục đích, lựa chọn và ràng buộc

Đánh giá lựa chọn; xác định và giải quyết rủi ro

Phát triển và kiểm chứng sản phẩm mức tiếp theo

Kế hoạch cho giai đoạn tiếp

+ Trong mô hình xoắn ốc, quy trình phát triển phần

mềm được biểu diễn như một vòng xoắn ốc. Các pha trong quy trình phát triển xoắn ốc bao gồm:

–Thiết lập mục tiêu: xác định mục tiêu cho từng pha của dự án.

–Đánh giá và giảm thiểu rủi ro: rủi ro được đánh giá và thực hiện các hành động để giảm thiểu rủi ro.

–Phát triển và đánh giá: sau khi đánh giá rủi ro, một mô hình xây      dựng hệ thống sẽ được lựa chọn từ những mô hình chung.

–Lập kế hoạch: đánh giá dự án và pha tiếp theo của mô hình xoắn ốc sẽ được lập kế hoạch.

+ Nhấn mạnh việc đánh giá các rủi 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

1 giai đọan phát triển

– 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

+ Giao tiếp khách hàng: giữa người phát triển và khách hàng để tìm hiểu yêu cầu, ý kiến

+ Lập kế hoạch: Xác lập tài nguyên, thời hạn và những thông tin khác

+ Phân tích rủi ro: Xem xét mạo hiểm kỹ thuật và mạo hiểm quản lý

+ Thiết kế: Xây dựng một hay một số biểu diễn của ứng dụng

+ Xây  dựng  và  xuất  xưởng: xây  dựng, kiểm thử, cài đặt và cung cấp hỗ trợ người dùng (tư liệu, huấn luyện, . . .)

+ Đánh giá của khách hàng: Nhận các phản hồi của người sử dụng về biểu diễn phần mềm trong giai đoạn kỹ nghệ và cài đặt

+ Ưu điểm

– Hạn chế rủi ro sớm

–Nhận được phản hồi (feedbacks) từ khách hàng sớm

–  Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa

+ Hạn chế

–Khó thuyết phục khách hàng là phương pháp tiến hóa xoắn ốc có thể kiểm soát được

–Chưa được dùng rộng rãi như các mô hình tuyến tính hoặc chế thử.

+ Mô hình xoắn ốc phù hợp với

–Các hệ phần mềm quy mô lớn, các dự án lớn, phức tạp

– Hệ thống cần phát triển nhiều phiên bản

– Các hệ thống có yêu cầu chưa xác định rõ ràng

____________

2.3.5.3. Mô hình xoắn ốc WINWIN:

+ Là mô hình xoắn ốc nhằm thỏa hiệp giữa người phát triển và khách hàng, cả hai cùng “Thắng” (win-win)

–Khách thì có phần mềm thỏa mãn yêu cầu chính

–Người phát triển thì có kinh phí thỏa đáng và thời gian hợp lý

+ Các hoạt động chính trong việc xác định hệ thống:

–    Xác định cổ đông (stakeholders)

–    Xác định điều kiện thắng của cổ đông

–    Thỏa hiệp điều kiện thắng của các bên liên quan

1. Xác định mức tiếp của cổ đông

2. Xác định điều kiện thắng của cổ đông

3a. Hòa hợp điều kiện thắng

3b. Thiết lập mục tiêu mức tiếp và các ràng buộc, dự kiến

4. Đánh giá tiến trình và dự kiến sản phẩm, giải quyết rủi ro

5. Xác định mức tiếp của sản phâm và quy trình, kể cả phân chia nhỏ

6. Kiểm định sản phẩm và quy trình

7. Xét duyệt và đánh giá

___________

2.3.6. Mô hình phát triển đồng thời

+ Mô   hình   phát   triển   đồng   thời   (The   concurrent development model):

–Xác định mạng lưới những hoạt động đồng thời (Network of concurrent activities)

–Các sự kiện (events) xuất hiện theo điều kiện vận động trạng thái trong từng hoạt động

–Dùng cho mọi loại ứng dụng và cho hình ảnh khá chính xác về trạng thái hiện trạng của dự án

–Thường  dùng  trong  phát  triển  các  ứng  dụng  khách/chủ (client/server applications): hệ thống và các thành phần (componets) trong hệ thống được phát triển đồng thời.

___________

2.3.7. Mô hình hướng thành phần:

+ Mô hình hướng thành phần (Component-based model): Gắn với những công nghệ hướng đối tượng (Object- oriented technologies) qua việc tạo các lớp (classes) có chứa cả dữ liệu và giải thuật xử lý dữ liệu

+ Có nhiều tương đồng với mô hình xoắn ốc

+ Với ưu điểm tái sử dụng các thành phần qua Thư viện /

kho các lớp: tiết kiệm 70% thời gian, 80% giá thành.

+ Mô hình hướng thành phần sử dụng UML như một chuẩn công nghiệp

....

Giao tiếp khách hàng

Lập kế hoạch

Phân tích rủi ro

Kỹ nghệ xây dựng và xuất xưởng

Khách hàng đánh giá

_________________________

2.3.7. Mô hình hướng sử dụng lại

Mô hình này phát triển định hướng sử dụng lại (Reuse)

+  Hệ thống được tích hợp từ các thành phần đã tồn tại hay hệ thống phi thương mại

+  Các giai đoạn của tiến trình

–     Phân tích thành phần

–     Cải biến các yêu cầu

–     Thiết kế hệ thống hướng sử dụng lại

–     Phát triển và tích hợp

Phát triển định hướng sử dụng lại (2)

Đặc tả yêu cầu->Phân tích thành phần->Thay đổi yêu cầu->Thiết kế HT dùng lại->Phát triển và tích hợp->Thẩm định hệ thống

+Hướng phát triển này rất quan trọng nhưng kinh nghiệm và công cụ còn hạn chế

_____________

2.3.8. Mô hình hợp nhất

+ Mô hình hợp nhất sử dụng Các kỹ thuật thế hệ 4 (Fourth generation techniques): Tập hợp các công cụ cho phép xác định đặc tính phần mềm ở mức cao, sau đó tự động sinh mã nguồn dựa theo đặc tả đó.

+ Các công cụ 4GT điển hình: ngôn ngữ phi thủ tục cho truy vấn CSDL, tạo báo cáo, xử lý dữ liệu, tương tác màn hình, tạo mã nguồn, khả năng đồ họa bậc cao, khả năng bảng tính, khả năng giao diện Web.

+ Từ thu thập yêu cầu cho đến sản phẩm: đối thoại giữa khách và người phát triển là quan trọng.

+ Không nên bỏ qua khâu thiết kế: 4GT chỉ áp dụng để triển khai thiết kế qua 4GL

+ Tiến trình hợp nhất có thể được nhìn dưới hai góc nhìn khác nhau

–Góc nhìn quả lý: quan tâm đến lĩnh vực kinh tế, chiến thuật, con người.

.Tiến trình gồm 4 giai đoạn.

–Góc nhìn kỹ thuật: quan tâm đến công nghệ, kiểm tra chất lượng, phương pháp.

.Tiến trình gồm nhiều bước lặp.

+ Góc nhìn quản lý

+ Góc nhìn kỹ thuật: các bước lặp

–  Mỗi bước lặp gồm các hoạt động

• Đặc tả

• Phân tích

• Thiết kế

• Mã hóa

• Kiểm thử

• Cài đặt

–  Mỗi bước lặp là một tiến trình thác đổ

+ Góc nhìn kỹ thuật

+ Kết hợp hai góc nhìn

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

+ Ưu điểm: giảm thời gian phát triển và tăng năng suất lao động.

+ Nhược điểm: 4GT khó dùng hơn ngôn ngữ lập trình, mã khó tối ưu và khó bảo trì cho hệ thống lớn ⇒ cần kỹ năng của kỹ sư phần mềm

+ Trong tương lai: kết hợp 4GT với mô hình hướng thành phần.                                                                       

Kết luận:

+ Trong  thực  tế,  người  ta  thường  kết  hợp nhiều mô hình cho một dự án

–Đối với Hệ thống phức tạp, cần chia dự án thành các hệ thống con

–Áp dụng mô hình xoắn ốc hay mô hình hợp nhất cho toàn bộ dự án.

–Mỗi hệ thống con có thể áp dụng một mô hình khác nhau

• Áp dụng mô hình nguyên mẫu cho các hệ thống con phức tạp

• Áp dụng mô hình thác nước cho các hệ thống con khác

______________

2.4. Một số lưu ý

Lựa chọn mô hình

Phụ thuộc vào bài toán, vào môi trường cụ thể

Yêu cầu rõ ràng: => Mô hình thác nước

Yêu cầu chưa rõ ràng, độ phức tạp cao

Yêu cầu có khả năng thay đổi

Không chắc chắn về tính hiệu quả, tính khả thi

=> Làm bản mẫu, mô hình xoắn ốc

Tổ hợp các mô hình:

Có thể tổ hợp các mô hình để đem lại hiệu quả

 Lặp tiến trình:

Mỗi phần của tiến trình được lặp theo 2 cách tiếp cận

• Phát triển tăng

• Phát triển xoắn ốc

Chuẩn hóa tiến trình:

Tăng năng lực của tổ chức phát triển phần mềm

ISO 9000-03 (International Standards Organi•ation )

• CMM (Software Engineering Institute)

 Giảm chi phí phát triển:

Sử dụng các phương pháp, công cụ tiên tiến

•  tái sử dụng: thư viện thương mại,...

•  tự sinh mã: công cụ tạo giao diện,...

•  hướng đối tượng: kế thừa, bảo trì

•  ngôn ngữ bậc cao: năng lực biểu diễn cao

Thực hiện các pha phát triển:

+ Pha xác định yêu cầu và thiết kế có vai trò quyết định đến chất lượng phần mềm, chiếm phần lớn công sức so với mã hóa, kiểm thử

+ Khi chuyển tiếp giữa các pha phát triển phải thẩm

định để đảm bảo lỗi không ảnh hưởng đến pha sau

+ Tài liệu tạo ra ở mỗi pha không chỉ dùng cho pha kế tiếp mà còn dùng để đảm bảo chất lượng của phần mềm và dùng trong khâu bảo trì

+ Cần chuẩn hóa mẫu biểu, cách thức ghi chép, tạo tài liệu nhằm đảm bảo chất lượng phần mềm.


Bạn đang đọc truyện trên: Truyen2U.Pro