Mô tả:
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
GIỚI THIỆU
Phan Phương Lan
1
Nội dung
z
Phần I: Tổng quan về Công nghệ phần mềm
z
z
z
z
z
Chương 1: Giới thiệu về Công nghệ phần mềm
Chương 2: Các mô hình về tiến trình phần mềm
Chương 3: Quản lý phần mềm
z Quản lí nhân sự và tổ chức
z Quản lí chất lượng
z Quản lí cấu hình
z Quản lí dự án
Chương 4: Ước lượng giá thành
Phần II: Tiến trình phần mềm
z
z
z
z
z
z
Chương 5: Đặc tả yêu cầu
Chương 6: Thiết kế
Chương 7: Lập trình
Chương 8: Kiểm thử
Chương 9: Triển khai hệ thống
Chương 10: Bảo trì
2
Tài liệu tham khảo
z
Sách tham khảo chính:
z Shari Lawrence Pleeger, Joanne M.Atlee, Software
Engineering theory and practice, 3th edition, 2006.
z Ian Sommerville, Software Engineering, 8th edition, 2006.
z
Sách đọc thêm:
z Hans Van Vliet, Software Engineering principles and
practice, John Wiley, 2000.
z Pressman, Roger S., Software Engineering: A Practitioner’s
Approach, McGraw-Hill, 5th edition, 2003.
3
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
CHƯƠNG 1 – GIỚI THIỆU VỀ
CÔNG NGHỆ PHẦN MỀM
1
Nội dung
z
z
z
z
Định nghĩa về CNPM
Các giai đoạn trong phát triển phần mềm
Những người tham gia trong dự án phát triển
phần mềm
Các yếu tố chính làm thay đổi sự phát triển phần
mềm
2
Định nghĩa về CNPM
z
z
IEEE: CNPM là
(1) 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;
(2) Nghiên cứu các phương pháp tiếp cận được dùng
trong (1)
NATO: CNPM là việc thiết lập và dùng các nguyên tắc
công nghệ đúng đắn để thu được phần mềm một cách
kinh tế nhất và chạy hiệu quả trên các máy thật.
3
Định nghĩa về CNPM
z
Mục tiêu của CNPM là làm sao để tạo ra phần mềm:
z
z
z
z
Có chất lượng cao
z Đúng, thỏa yêu cầu khách hàng
z Dễ khai thác, vận hành
z Dễ bảo trì
Đúng kế hoạch thời gian
Trong phạm vi ngân sách dự kiến
Giá thành ngày càng hạ
4
Các giai đoạn phát triển phần mềm
Định nghĩa & Phân
tích yêu cầu
Thiết kế
Cài đặt
Kiểm thử
Phát hành
Bảo trì
5
Các giai đoạn phát triển phần mềm
z
Định nghĩa & Phân tích yêu cầu: thu thập mô tả
đầy đủ của bài toán
z
z
z
z
z
z
Chức năng/tính năng của PM
Khả năng mở rộng
Các loại tài liệu đòi hỏi
Thời gian đáp ứng hoặc các yêu cầu về chất lượng của
hệ thống
Nghiên cứu khả thi
Thiết kế: thiết kế hệ thống và thiết kế chi tiết
6
Các giai đoạn phát triển phần mềm
z
Cài đặt: tập trung vào từng module riêng lẻ:
z
z
z
z
Giải thuật
Tài liệu
Coding
Kiểm thử (kiểm thử đơn vị, kiểm thử tích hợp và kiểm
thử hệ thống): thử và xác nhận tính đúng đắn của
z
z
z
z
Tài liệu đặc tả
Thiết kế
Module
Chuyển tiếp giữa các giai đoạn
7
Các giai đoạn phát triển phần mềm
z
Bảo trì
z
z
Sửa lỗi sau khi phần mềm đã được triển khai
Đáp ứng sự thay đổi yêu cầu, sự thay đổi về môi
trường, v.v
8
Các giai đoạn phát triển phần mềm
z
Công sức của từng giai đoạn: 40 – 20 – 40
Thiết kế 15%
Cài đặt 20%
Đặc tả 10%
Xác định yêu cầu 10%
Kiểm thử 45%
9
Các giai đoạn phát triển phần mềm
z
Công sức của từng giai đoạn – Giai đoạn bảo trì
z
z
z
Hoạt động bảo trì chiếm khoảng 50 – 70% toàn bộ
công sức
Các loại bảo trì: Hoàn thiện, Phòng ngừa, Hiệu chỉnh
và Thích ứng
Sự phân phối của các loại bảo trì
Hiệu chỉnh 21%
Hoàn thiện 50%
Thích ứng 25%
Phòng ngừa 4%
10
Những người tham gia trong dự
án phát triển phần mềm
z
Những người tham gia: Khách hàng, Nhà phát
triển và Người sử dụng.
11
Những người tham gia trong dự
án phát triển phần mềm
z
Các thành viên trong đội phát triển phần mềm:
z
z
z
z
z
z
z
z
Nhà phân tích yêu cầu: làm việc với khách hàng để xác định và
tư liệu hóa các yêu câu
Nhà thiết kế: tạo ra bản mô tả mức hệ thống về cái mà hệ thống
phải thực hiện
Lập trình viên: viết mã lệnh cài đặt sự thiết kế
Nhà kiểm thử: bắt các lỗi
Người hướng dẫn: chỉ dẫn người dùng cách sử dụng hệ thống
Bảo trì viên: chỉnh sửa các lỗi khi hệ thống đã được phát hành và
đáp ứng các thay đổi
Thủ thư: chuẩn bị và lưu giữ các tài liệu chẳng hạn như các đặc
tả yêu cầu
Nhóm quản lý cấu hình: duy trì sự phù hợp giữa các thành phần
được tạo ra
12
Những người tham gia trong dự
án phát triển phần mềm
z
Các vai trò tiêu biểu được thực hiện bởi những thành viên
trong đội phát triển phần mềm
13
Các yếu tố chính làm thay đổi sự
phát triển phần mềm
z
Các yếu tố chính:
14
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
CHƯƠNG 2 – CÁC MÔ HÌNH
VỀ TIẾN TRÌNH PHẦN MỀM
1
Nội dung
z
z
Tiến trình
Các mô hình về tiến trình phần mềm
z
z
z
z
z
z
z
Mô hình thác nước
Mô hình chữ V
Mô hình bản mẫu
Mô hình phát triển ứng dụng nhanh
Mô hình gia tăng
Mô hình xoắn ốc
Mô hình RUP
2
Tiến trình (Process)
z
z
Tiến trình: một chuỗi các bước bao gồm các hoạt
động, các ràng buộc và các tài nguyên mà chúng
tạo ra kết quả được mong đợi
Tiến trình: bao gồm một bộ các công cụ và các
kỹ thuật
3
Tiến trình
z
Các đặc trưng của tiến trình
z Quy định tất cả các hoạt động chính của tiến
trình
z Sử dụng các nguồn tài nguyên, phụ thuộc vào
tập các ràng buộc (chẳng hạn như kế hoạch làm
việc)
z Tạo ra các sản phẩm cuối cùng hoặc trung gian
z Có thể được tạo thành từ các tiến trình con
bằng hệ thống phân cấp hay các liên kết
4
Tiến trình
z
Các đặc trưng của tiến trình
z Mỗi hoạt động của tiến trình có tiêu chuẩn vào
và ra
z Các hoạt động được tổ chức theo trình tự vì thế
sự tính toán về thời gian là rõ ràng
z Mỗi tiến trình có các nguyên tắc hướng dẫn,
bao gồm các mục tiêu của từng hoạt động
z Các ràng buộc có thể áp dụng vào một hoạt
động, tài nguyên hay sản phẩm
5
Tiến trình
z
Tầm quan trọng của tiến trình
z Áp đặt cấu trúc và tính bền vững lên một tập
các hoạt động
z Hướng dẫn ta hiểu, điều khiển, kiểm tra và cải
thiện các hoạt động
z Cho phép ta có được các kinh nghiệm
6
Tiến trình
z
Lý do để mô hình hóa một tiến trình
z
z
z
z
Hình thành một cách hiểu chung
Tìm ra sự không nhất quán, sự dư thừa hay sự bỏ
sót
Tìm ra và đánh giá các hoạt động phù hợp để đạt
được các mục tiêu của tiến trình
Cụ thể hóa một tiến trình chung cho một hoàn cảnh
cụ thể
7
Tiến trình
z
Chu kỳ sống của phần mềm
z Khi một tiến trình liên quan tới việc xây dựng
một phần mềm, tiến trình có thể được xem như
chu kỳ sống của phần mềm.
8
Các mô hình về tiến trình phần mềm
z
z
z
z
z
z
z
Mô hình thác nước
Mô hình chữ V
Mô hình bản mẫu
Mô hình phát triển ứng dụng nhanh
Mô hình gia tăng
Mô hình xoắn ốc
Mô hình RUP
9
Mô hình thác nước
(Waterfall Model)
z
z
z
z
Một trong các mô hình đầu tiên về tiến trình phần
mềm
Phù hợp với những bài toán được hiểu kỹ có rất ít
hay không có các thay đổi về yêu cầu
Đơn giản và dễ giải thích với khách hàng
Nó biểu diễn
z
z
Một tổng quan mức rất cao của tiến trình phát triển
Một chuỗi tuần tự các hoạt động của tiến trình
10
Mô hình thác nước
Phân tích yêu cầu
Thiết kế hệ thống
Thiết kế chi tiết
Lập trình
Kiểm thử đơn vị & tích hợp
Kiểm thử hệ thống
Kiểm thử chấp nhận
Vận hành & bảo trì
11
Mô hình thác nước
z
z
Không có sự lặp lại trong mô hình thác nước
Thực tế, các dự án ít khi tuân theo dòng tuần tự của mô
hình, mà thường có lặp lại
12
Mô hình thác nước
z
Hạn chế của mô hình thác nước
z
z
z
z
Không có các hướng dẫn về cách thức xử lý những
thay đổi về sản phẩm và hoạt động trong suốt sự
phát triển
Xem sự phát triển phần mềm như một tiến trình sản
xuất hơn là tiến trình sáng tạo
Không có các hoạt động lặp để tạo ra sản phẩm
cuối
Phải chờ đợi lâu trước khi có sản phẩm cuối
13
Mô hình chữ V (V Model)
z
z
z
z
z
Một sự biến đổi của mô hình thác nước
Sử dụng kiểm thử đơn vị để xác minh (verify) thiết kế chi
tiết
Sử dụng kiểm thử tích hợp để xác minh thiết kế hệ thống
Sử dụng kiểm thử chấp nhận để thẩm định (validate) các
yêu cầu
Nếu các vấn đề được tìm thấy trong suốt sự xác minh và
thẩm định, phần bên trái của mô hình chữ V có thể được
tái thực hiện trước khi việc kiểm thử phần bên phải được
tái thực hiện
14
Mô hình chữ V
15
Mô hình bản mẫu
(Prototyping Model)
z
z
z
Cho phép sự nghiên cứu về các yêu cầu và thiết
kế được lặp lại
Giảm sự rủi ro và sự không chắc chắn trong phát
triển
Sử dụng mô hình bản mẫu khi các yêu cầu chưa
rõ ràng
16
Mô hình bản mẫu
17
Mô hình phát triển ứng dụng nhanh
(Rapid Application Development: RAD)
z
z
z
z
z
Là tiến trình phát triển phần mềm gia tăng
Thời gian phát triển phần mềm rất ngắn
Sử dụng các kỹ thuật thế hệ thứ tư
Xây dựng dựa trên hướng thành phần với khả năng tái
sử dụng
Gồm một số nhóm, mỗi nhóm làm 1 RAD theo các
pha: Mô hình hóa nghiệp vụ, Mô hình hóa dữ liệu, Mô
hình hóa xử lý, Tạo ứng dụng, Kiểm thử và đánh giá
( Business, Data, Process, Application Generation,
Testing)
18
Team #3
Mô hình
phát triển
ứng dụng
nhanh
Business
Business
Modeling
Modeling
Team #2
Business
Business
Modeling
Modeling
Team #1
Business
Business
Modeling
Modeling
Data
Data
Modeling
Modeling
Process
Process
Modeling
Modeling
Application
Data
Application
Data
Generation
Generation
Modeling
Modeling
Testing
Testing&&
Process
Process
Turnover
Turnover
Modeling
Data
Data
Modeling
Modeling
Modeling
Application
Application
Generation
Generation
Testing
Testing&&
Process
Turnover
Process
Turnover
Modeling
Modeling
Application
Application
Generation
Generation
Testing
Testing&&
Turnover
Turnover
60 - 90 days
19
Mô hình phát triển ứng dụng nhanh
z
z
z
z
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 cam kết 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ể module hóa hoặc đòi hỏi tính
năng cao
RAD không phù hợp khi các rủi ro kỹ thuật cao
20
Mô hình gia tăng
(Incremental Model)
z
z
z
z
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 cho 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 cho 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
21
Mô hình gia tăng
Phát hành lần 1
Phát hành lần 2
…
22
- Xem thêm -