Công nghệ phần mềm - Chương 1: Tổng quan về xây dựng phần mềm

1.1. Khái niệm và định nghĩa

1.2. Quy trình thiết kế và xây dựng chương trình

phần mềm: mô hình, các nhiệm vụ cơ bản

1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây

dựng chương trình phần mềm

1.4. Các thuộc tính chất lượng của thiết kế và

xây dựng chương trình phần mềm

pdf44 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2036 | Lượt tải: 2download
Tóm tắt nội dung Công nghệ phần mềm - Chương 1: Tổng quan về xây dựng phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hệ thống (tin học) đều trãi qua sự 
khởi đầu, triển khai, xây dựng, khai thác, 
bảo dưỡng và kết thúc. Gọi quá trình này 
là vòng đời (life cycle). 
 Nếu chỉ đề cập đến sự triển khai và xây 
dựng thì gọi là sự phát triển của hệ thống 
(system development). 
13 
Chu kỳ phát triển phần mềm (Software Development Life 
Cycle - SDLC) 
14 
Systems planing and selection/ Hoạch định và chọn lựa hệ thống 
 Nhận diện sự cần thiết phải có hệ thống 
• Nhóm phân tích được thành lập 
• các yêu cầu được yêu tiên chuyển thành các 
kế hoạch cho bộ phận IS (information system) 
 Chọn lựa hệ thống 
• Xây dựng một kế hoạch cụ thể 
• Xác định được có hay không cái giá của việc 
phát triển hệ thống lớn hơn lợi ích có thể có. 
15 
Systems analysis/Phân tích hệ thống 
 Xác định yêu cầu hệ thống (người dùng 
mong được gì từ hệ thống được đề 
nghị) 
 Xác định những yêu cầu, cấu trúc không 
còn phù hợp để loại bỏ 
 Xây dựng thiết kế mới 
 So sánh, đánh giá thiết kế để chọn 
phương án tối ưu (giá, nhân công, cấp 
độ kỹ thuật…) 
16 
Systems design/ Thiết kế hệ thống 
 Chuyển bản mô tả các giải pháp thành 
bản đặc tả logic, vật lý; 
• Thiết kế logic: Không phụ thuộc phần cứng 
hay phần mềm 
• Thiết kế vật lý: Chọn NNLT, chọn CSDL, chọn 
hệ điều hành, chọn mạng … 
 Thiết kế mọi diện mạo của hệ thống từ 
nhập vào và xuất ra của màn hình đến 
máy in, cơ sở dữ liệu, và các xử lý tính 
toán; 
17 
Systems implemention and operation/ Thực hiện và vận 
hành hệ thống 
 Thực hiện mã hóa, chạy thử và cài đặt. 
• Mã hóa, lập trình viên lập các chương trình tạo 
nên hệ thống. 
• Chạy thử, lập trình viên và phân tích viên kiểm tra 
từng chương trình rồi toàn bộ hệ thống để tìm và 
sửa lỗi 
• Cài đặt 
 Vận hành: người lập trình tạo sự thay đổi 
mà người sử dụng yêu cầu và sửa đổi hệ 
thống 
18 
Chu kỳ phát triển phần mềm (Software Development Life 
Cycle - SDLC) 
 Chu kỳ phần mềm (Software life cycle) là gì? 
“ Là khoảng thời gian từ lúc phần mềm bắt đầu hình thành 
cho đến lúc nó không còn dùng được nữa” 
 Chu kỳ phần mềm thường trải qua các giai đoạn 
(phase) sau: 
 Giai đoạn 1: Preliminary Investigation/Requirement (nghiên cứu 
sơ bộ) 
Giai đoạn 2: Analysis (Phân tích) 
Giai đoạn 3: Design (Thiết kế) 
Giai đoạn 4: Development / Construction (Xây dựng) 
Giai đoạn 5: Testing (Thử nghiệm hệ thống) 
Giai đoạn 6: Implementation (Triển khai hệ thống) 
Giai đoạn 7: Maintenance (Bảo trì, nâng cấp) 
 Chu kỳ phần mềm còn được gọi là chu kỳ phát triển 
phần mềm (SDLC) 
19 
2. Các mô hình SDLC 
 Mô hình Waterfall (Waterfall model) 
 Mô hình lặp và tăng dần (Iterative and Incremental) 
 Mô hình bản mẫu (Prototype) 
 Mô hình phát triển ứng dụng nhanh (RAD) 
 Mô hình xoắn ốc (Spiral) 
 Mô hình chữ V (V-model) 
 Mô hình tiến hóa (Evolutionary) 
 Mô hình dựa trên các thành phần (Component) 
 Các mô hình nhiều phiên bản (Multi-version models) 
 Mô hình RUP 
20 
Mô hình thác nước (waterfall) 
21 
Mô hình thác nước (waterfall) 
 Xuất hiện từ năm 1970 
 Thay thế phương pháp “code – and – fix” 
 Ưu điểm: 
• Giai đoạn kế tiếp chỉ bắt đầu khi giai đoạn hiện hành hoàn tất 
• Người dùng cuối và khách hàng biết rõ 
 Nhược điểm: 
• Không quay lui 
• Phải đặc tả một cách chính xác yêu cầu ngay từ đầu 
 Sử dụng khi: xác định sản phẩm ổn định và đã biết 
rõ vấn đề kỹ thuật 
22 
Mô hình tăng trưởng/ (Incremental Model) 
23 
Mô hình tăng trưởng / (Incremental Model) 
 D.R. Graham 1988: Vòng đầu tạo sản phẩm lõi, Các vòng sau 
bổ sung dần chức năng 
 Ưu điểm: 
• Chức năng chính, chức năng có độ rũi ro cao sẽ được thực hiện 
trước 
• Sau mỗi vòng đều có thể chuyển giao cho khách hàng 
• Giảm rũi ro cho thất bại toàn dự án 
 Nhược điểm: 
• Phải xác định chức năng đầy đủ và hoàn chỉnh trước khi qua vòng 
sau 
• Khách hàng khi thấy vòng đầu thường nghĩ hệ thống đơn giản 
 Sử dụng khi : 
• Khi cần nhanh chóng đưa ra chức năng cơ bản của hệ thống. 
• Áp dụng cho sản phẩm có thời gian hoàn thiện > 1 năm. 
• Khi các yêu cầu đã hiểu rõ nhưng mong muốn có sự tiến hóa dần 
của sản phẩm 
24 
Mô hình tạo bản mẫu/ (prototype) 
25 
26 
Mẫu thử (bản mẫu) 
Triển khai, Chuyển 
giao và Phản hồi 
Lập kế hoạch nhanh 
Xây dựng mẫu thử 
Mô hình hoá 
thiết kế nhanh 
Giao tiếp 
26 
Mô hình tạo bản mẫu 
(prototype) 
27 
Mô hình tạo bản mẫu (prototype) 
 Xây dựng một bản mẫu ban đầu để người sử dụng xem xét 
 Bản mẫu ban đầu: 
• Bị loại bỏ 
• Được phát triển 
 Ưu điểm: 
• Khách hàng tương tác sớm với hệ thống 
• Khách hàng cùng làm việc với người phát triển hệ thống 
• Thiết kế và phát triển mềm dẽo 
 Nhược điểm: 
• Quick – and – dirty 
• Chất lượng thấp và khó bảo trì 
• Bị khách hàng hối thúc 
• Người phát triển sẽ bị rơi vào giai đoạn code – and fix 
 Sử dụng khi: 
• Yêu cầu chưa được biết rõ; yêu cầu không ổn định 
28 
Mô hình RAD (Rapid Application Development) 
 Được phát triển bởi IBM năm 1980 qua sách của James Matin 
 Chu kỳ phát triển: 60-90 ngày 
 Ráp nối tốc độ cao của mô hình thác nước, xây dựng dựa vào 
các thành phần và ứng dụng tạo mã tự động 
 Ưu điểm: 
• Thời gian phát triển ngắn 
• Cần ít nhân công 
• Giảm rũi ro nhờ có khách hàng tham gia 
 Nhược điểm: 
• Người phát triển phải có kỹ năng sử dụng công cụ tốt 
• Người phát triển và khách hàng pahir gắn bó và nỗ lực cao 
 Sử dụng khi: 
• Hệ thống có thể dễ dàng phân chia thành nhiều module 
• Biết rõ yêu cầu của hệ thống 
• Thời gian ngắn 
• Có thể sử dụng lại những thành phần đã có 
• Hệ thống nhỏ, không có tính nghiêm ngặt 
29 
30 
Mô hình xoắn ốc 
 (Spiral model) 
Thử nghiệm 
nguyên mẫu 
Đánh giá các 
phương án 
Thiết kế và tạo lập 
1 nguyên mẫu 
Xác định mục 
tiêu, các 
phương án và 
các ràng buộc 
Chu trình 1 
30 
Mô hình xoắn ốc (Spiral model) 
 Được đề nghị bởi Berry Boehm, 1988 
 Mỗi vòng lặp biểu diễn một gia đoạn trong chu trình 
 Mỗi chu kỳ có 4 tầng, mỗi tầng ¼ cung 
 Ưu điểm: 
• Tạo bản mẫu sớm 
• Cho phép người dùng tham gia vào các giai đoạn 
• Ưu tiên thực hiện trước những chức năng quan trọng 
 Nhược điểm: 
• Đánh giá rũi ro tốn nhiều chi phí 
• Phức tạp, khó quản lý, khó thuyết phục khách hàng 
 Sử dụng khi: 
• Những dự án có độ rũi ro cao, dự án cần nhiều thời gian 
• Kết hợp giữa lặp của mô hình tạo bản mẫu và mô hình thác nước 
31 
Mô hình chữ V (V-model) 
Tinh thần chủ 
đạo của V-
model là các 
hoạt động kiểm 
thử phải được 
tiến hành song 
song (theo khả 
năng có thể) 
ngay từ đầu 
chu trình cùng 
với các hoạt 
động phát triển. 
32 
Mô hình tiến hóa (Evolutionary) 
33 
Phát triển dựa trên các thành phần 
Thương lượng 
Định nghĩa 
mục tiêu 
Phân loại các 
thành phần 
Đối sánh 
Lựa chọn thành 
phần phù hợp 
Giảm 70% thời 
gian, 84% chi phí 
34 
RUP/UML Rational Unified Process 
 Kỹ thuật thế hệ thứ 4 
 Bao gồm 4 giai đoạn chính đan xen 
nhiều dòng hoạt động 
• Phân tích yêu cầu 
• Mô hình hóa nghiệp vụ 
• Thiết kế 
• Cài đặt, vận hành, triển khai 
 Mỗi giai đoạn đều hình thành từ những 
bước lặp (iteration) 
35 
 36 
 37 
Các bước lặp (iteration) 
 Khởi tạo (inception) 
• Xác định phạm vi dự án 
• Chi phí, thời gian 
• Rũi ro, môi trường 
• Thay đổi bổ sung 
 Tinh chế (elaboration) 
• Tinh chế kiến trúc, yêu cầu 
• Đánh giá độ rũi ro, các thành phần sử dụng 
 Xây dựng (construction) 
• Đánh giá tài nguyên, kiểm soát và thực hiện tối ưu hóa 
• Hoàn thành sản phẩm 
• Đánh giá sản phẩm so với yêu cầu 
 Chuyển giao (transition) 
• Cài đặt; kiểm thử 
• Tiếp nhận ý kiến 
• Bảo trì 
38 
Phương pháp phát triển phần mềm linh hoạt 
 Agile software development chủ yếu tập 
trung: 
• Thích ứng thay vì dự đoán 
• Hướng đến con người thay vì quy trình 
 ASD đề cao tính chủ động sáng tạo và 
sự trao đổi thông tin giữa các thành viên 
39 
Chương I - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM 
1.1. Khái niệm và định nghĩa 
1.2. Quy trình thiết kế và xây dựng chương trình 
phần mềm: mô hình, các nhiệm vụ cơ bản 
1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây 
dựng chương trình phần mềm 
1.4. Các thuộc tính chất lượng của thiết kế và 
xây dựng chương trình phần mềm 
40 
Các kỹ thuật tiêu biểu trong TK và XD phần mềm 
Các chiến lược chung/General Strategies: 
 Chia để trị / divide-and-conquer 
 Kỹ thuật tinh chỉnh / stepwise refinement 
 Thiết kế Top-down và Thiết kế bottom-up 
 Kỹ thuật trừu tượng dữ liệu/data 
abstraction và che dấu thông 
tin/information hiding 
 Kỹ thuật lặp và tăng trưởng dần (iterative 
and incremental approach) 
41 
Các kỹ thuật tiêu biểu trong TK và XD phần mềm 
Các phương pháp: 
 Function-oriented (structured) Design 
 Object-oriented Design 
 Data-structure Centered Design 
 Component-based Design (CBD) 
42 
Chương I - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM 
1.1. Khái niệm và định nghĩa 
1.2. Quy trình thiết kế và xây dựng chương trình 
phần mềm: mô hình, các nhiệm vụ cơ bản 
1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây 
dựng chương trình phần mềm 
1.4. Các thuộc tính chất lượng của thiết kế và 
xây dựng chương trình phần mềm 
43 
ĐẶC TÍNH CHẤT LƯỢNG PHẦN MỀM THEO ISO/IEC 
9126 
Phù hợp,Chính xác, Liên tác,Tuân thủ chuẩn, An toàn 
(Suitability, Accuracy, Interoperability, Compliance, Security) 
Dễ hiểu, Dễ học, Dễ thao tác: 
(Understandability, Learnability, Operability ) 
Đáp ứng được về thời gian, Đáp ứng được về tài nguyên: 
(Time Behavior, Resource Behavior ) 
Phân tích được, Thay đổi được, Kiểm thử được, Ổn đinh 
(Analysability, Changeability, Stability, Testabilty) 
Thích nghi được, Cài đặt được, Khớp được , Thay thế được 
(Adaptability, Installability, Conformance, Replaceablity ) 
It trục trặc, Kháng lỗi, Khả năng khôi phục được: 
(Maturity, Fault Tolerance, Recoverability) 
Chức năng 
Functionality 
Dễ dùng 
Usability 
Tin cậy 
Reablility 
Hiệu quả 
Efficiency 
Bảo trì được 
Maintainability 
Khả chuyển 
Portability 
44 

File đính kèm:

  • pdfCông nghệ phần mềm - Chương 1 Tổng quan về xây dựng phần mềm.pdf