1.2. Công nghệ phần mềm-Khái niệm-đặc điểm-nguyên tắc-hđ cnpm
1.2. Công nghệ phần mềm:
+1.2.1. Khái niệm
+1.2.2. Đặc điểm công nghệ phần mềm
+1.2.3. Một số nguyên tắc CNPM
+1.2.4. Các hoạt động chính trong CNPM
________________________
1.2.1. Khái niệm Công nghệ phần mềm:
+Khái niệm
– Larousse (1996): Công nghệ phần mềm là tập hợp các phương pháp, mô hình, kỹ thuật, công cụ và thủ tục liên quan đến các giai đoạn xây dựng một sản phẩm phần mềm.
– Các giai đoạn đó là:
.đặc tả (specifiction),
.thiết kế(design),
.lập trình(programming),
.thử nghiệm(testing),
.sửa sai(debugging),
.cài đặt(setup) để đem vào ứng dụng (application),
.bảo trì(maintenance) và lập hồ sơ(documentation)
Khái niệm
–Bauer [1969]: CNPM là việc thiết lập và sử dụng các nguyên tắc công nghệ học đúng đắn dùng để thu được phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực.
–IEEE [1993]: CNPM là việc áp dụng phương pháp tiếp cận có hệ thống, bài bản và được lượng hóa trong phát triển, vận hành và bảo trì phần mềm và
việc nghiên cứu các phương pháp tiếp cận nó.
Mục đích:
+ Mục đích chính của công nghệ phần mềm là để
sản xuất ra những phần mềm có chất lượng.
+ Phần mềm có chất lượng là PM thỏa mãn:
–Những yếu tố bên ngoài của một sản phẩm như: tính đúng đắn, tính bền vững, tính có thể mở rộng được, tính sử dụng lại, tính tương thích…;
–Những yếu tố chất lượng bên trong như: tính dễ đọc, dễ hiểu, sản phẩm trực quan, sinh động…
+ Mục đích
– Áp dụng thực tế
.Các kiến thức khoa học,
.Các nguyên tắc kinh tế
.Các nguyên tắc quản lý
.Các kỹ thuật và công cụ thích hợp
–Để sản xuất và bảo trì các phần mềm nhằm bảo đảm 4 yêu cầu
.Phần mềm tạo ra phải đáp ứng được yêu cầu người sử dụng
.Phần mềm phải đạt được các tiêu chuẩn về chất lượng
.Giá thành phải nằm trong giới hạn đặt ra
.Tiến độ xây dựng phần mềm phải đảm bảo
________________________
1.2.2. Đặc điểm CNPM:
+ CNPM là một lĩnh vực của khoa học máy tính, liên quan đến việc xây dựng các hệ thống phần mềm vừa lớn vừa phức tạp bởi một hay một nhóm kỹ sư.
+ CNPM tích hợp cả quy trình, các phương pháp,các công cụ để phát triển phần mềm máy tính.
+ CNPM liên quan đến lý thuyết, phương pháp và công cụ dùng cho phát triển phần mềm.
+ Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo trì phần mềm đã được hệ thống hóa hóa thành phương pháp luận và hình thành nên CNPM.
+ Trong vòng đời phần mềm không chỉ có xây dựng mà bao gồm cả thiết kế, vận hành và bảo trì (tính quan trọng của thiết kế và bảo trì).
+ Nghiên cứu Công nghệ phần mềm nhằm nâng cao năng suất và độ tin cậy của phần mềm, đồng thời giảm chi phí giá thành phần mềm.
________________________
1.2.3. Một số nguyên tắc CNPM:
+ Các nguyên tắc cơ bản
– Chặt chẽ (rigor and formality)
– Chia nhỏ (separation of concerns)
– Mô-đun hóa (modularity)
– Trừu tượng (abstraction)
– Phòng ngừa sự thay đổi (anticipation of change)
– Tổng quát hóa (generality)
– Giải quyết từng bước (incrementality)
+ Chặt chẽ (rigor and formality)
– Sử dụng mô hình lý thuyết và toán học
–Áp dụng cho tất cả các bước, tất cả các sản phẩm
– Ví dụ:
• “chọn • là giá trị lớn nhất của x và y”
• • = max(x,y)
+ Chia nhỏ (separation of concerns)
+ Làm chủ độ phức tạp
– Chỉ tập trung một lĩnh vực cùng một lúc
– Chia vấn đề thành các phần nhỏ hơn
.Giải quyết một phần nhỏ sẽ đơn giản hơn
– Sử dụng thuật toán “chia để trị” (divide and conquer)
– Có thể chia nhỏ theo
.Thời gian: lập kế hoạch
.Khái niệm: giao diện / thuật toán
.Xử lý: chia các xử lý con
+ Mô-đun hóa (modularity)
– Chia nhỏ độ phức tạp nhằm
.Dễ hiểu
.Dễ quản lý các hệ thống phức tạp
– Quan hệ mật thiết với nguyên tắc “chia nhỏ”
– Các phương pháp mô-đun hóa
.Chiến lược từ trên xuống (top-dow)
.Chiến lược từ dưới lên (bottom-up)
.Chất lượng của mô-đun hóa
.Liên kết lỏng lẻo (low coupling)
.Kết cấu cao (high cohesion)
+ Trừu tượng (abstraction)
– Loại bỏ những gì không quan trọng
– Chỉ xem xét các yếu tố quan trọng
– Sử dụng các mô hình
.Mô hình cho người sử dụng
.Mô hình cho người phát triển
– Ví dụ:
.Ngôn ngữ lập trình / cấu trúc phần cứng
.Xây dựng tài liệu
.Đặc tả bởi điều kiện trước và sau
+ Phòng ngừa sự thay đổi (anticipation of change)
– Phần mềm là sản phẩm thường xuyên phải thay
đổi
–Dự báo các yếu tố có thể thay đổi, các ảnh hưởng có thể
– Các thay đổi thường gặp
. Trong đặc tả yêu cầu
. Trong ngữ cảnh sử dụng
. Khả năng về công nghệ
+ Tổng quát hóa (generality)
– Xem xét vấn đề trong ngữ cảnh tổng quát
– Giải quyết vấn đề lớn hơn
– Mục đích
. Tái sử dụng dễ dàng
.Có thể sử dụng các công cụ có sẵn như sử dụng design patterns
.Chi phí có thể tăng cao
+ Giải quyết từng bước (incrementality)
– Nguyên tắc:
.Xác định một phần (tập con)
.Phát triển
.Đánh giá
.Bắt đầu lại
– Áp dụng cho
.Phát triển một sản phẩm
– Một đặc tả / một kiến trúc
.Mô hình phát triển
– Mô hình lặp
________________________
1.2.4. Các hoạt động chính trong CNPM
1. Xác định
2. Phát triển
3. Kiểm thử
4. Tiến hoá
Xác định: Hệ thống làm gi?
Những ràng buộc gì nó cần tuân thủ?
+ Phân tích hệ thống
Vai trò của phần mềm cần phát triển trong hệ thống
+ Lập kế hoạch
Ước lượng công việc, lập lịch biểu, phân công công việc
+ Phân tích yêu cầu
Xác định yêu cầu chi tiết (chức năng, ràng buộc) đặc tả yêu cầu
Phát triển: Tiến hành sản xuất phần mềm như thế nào?
+ Thiết kế (design)
Dịch các yêu cầu thành bản thiết kế (kiến trúc, dữ liệu, thủ tục xử lý, giao diện)
+ Mã hóa (coding)
Chuyển thiết kế thành chương trình máy tính (trong một ngôn ngữ
lập trình)
Kiểm thử: Phát hiện và sửa lỗi chương trình (lỗi lập trình, lỗi thiết kế...
+ Unit test
+ Integration test
+ System test
+ Black test
+ Gray test
+ White test
Tiến hoá: Hoàn thiện hệ thống sau khi đưa vào hoạt động?
+ Sửa lỗi
Sửa lỗi phần mềm
+ Thích nghi
Sửa đổi để thích nghi với môi trường thay đổi
+ Nâng cao
Thêm các chức năng mới, hoàn thiện chức năng cũ
a
Phương pháp luận và kỹ thuật cho từng pha:
*Xác định yêu cầu:
Đặc tả yêu cầu người dùng Xác định yêu cầu phần mềm(Nội dung nghiệp vụ)
Phân tích cấu trúc hóa(Phương pháp, kỹ thuật)
*Thiết kế hệ thống:
Thiết kế cơ bản phần mềm,Thiết kế cấu trúc ngoài của phần mềmThiết kế cấu trúc hóa(Nội dung nghiệp vụ)
Thiết kế cấu trúc hóa(Phương pháp, kỹ thuật)
*Thiết kế ch−ơng trình:
Là thiết kế chi tiết: Thiết kế cấu trúc bên trong của phần mềm (đơn vị ch−ơng trình hoặc môđun)
Lập trình cấu trúc Ph−ơng pháp Jackson Ph−ơng pháp Warnier
*Lập trình
Mã hóa bởi ngôn ngữ lập trình
Mã hóa cấu trúc hóa
*Đảm bảo chất l−ợng
Kiểm tra chất l−ợng phần mềm đã phát triển
Ph−ơng pháp kiểm thử ch−ơng trình
*Vận hành Bảo trì:
Sử dụng, vận hành phần mềm đã phát triển. Biến đổi, điều chỉnh phần mềm
Chưa cụ thể
Bạn đang đọc truyện trên: TruyenTop.Vip