Tải bản đầy đủ (.pdf) (229 trang)

bài giảng nhập môn công nghệ phần mềm - phan phương lan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.02 MB, 229 trang )

1
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
GIỚI THIỆU
Phan Phương Lan
2
Nội dung
z Phần I: Tổng quan về Công nghệ phần mềm
z Chương 1: Giới thiệu về Công nghệ phần mềm
z Chương 2: Các mô hình về tiến trình phần mềm
z 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
z Chương 4: Ước lượng giá thành
z Phần II: Tiến trình phần mềm
z Chương 5: Đặc tả yêu cầu
z Chương 6: Thiết kế
z Chương 7: Lập trình
z Chương 8: Kiểm thử
z Chương 9: Triển khai hệ thống
z Chương 10: Bảo trì
3
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.
1
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
2
Nội dung
z Định nghĩa về CNPM
z Các giai đoạn trong phát triển phần mềm
z Những người tham gia trong dự án phát triển
phần mềm
z Các yếu tố chính làm thay đổi sự phát triển phần
mềm
3
Định nghĩa về CNPM
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)
z 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.
4
Đị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 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ì
z Đúng kế hoạch thời gian
z Trong phạm vi ngân sách dự kiến
z Giá thành ngày càng hạ
5
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ử
Bảo trì
Phát hành
6
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 Chức năng/tính năng của PM
z Khả năng mở rộng
z Các loại tài liệu đòi hỏi
z Thời gian đáp ứng hoặc các yêu cầu về chất lượng của
hệ thống
z Nghiên cứu khả thi
z Thiết kế: thiết kế hệ thống và thiết kế chi tiết
7
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 Giải thuật
z Tài liệu
z Coding
z 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 Tài liệu đặc tả
z Thiết kế
z Module
z Chuyển tiếp giữa các giai đoạn
8
Các giai đoạn phát triển phần mềm
z Bảo trì
z Sửa lỗi sau khi phần mềm đã được triển khai
z Đáp ứng sự thay đổi yêu cầu, sự thay đổi về môi
trường, v.v
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: 40 – 20 – 40
Kiểm thử 45%
Cài đặt 20%
Thiết kế 15%
Đặc tả 10%
Xác định yêu cầu 10%
10
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 Hoạt động bảo trì chiếm khoảng 50 – 70% toàn bộ
công sức
z Các loại bảo trì: Hoàn thiện, Phòng ngừa, Hiệu chỉnh
và Thích ứng

z Sự phân phối của các loại bảo trì
Hiệu chỉnh 21%
Thích ứng 25%
Phòng ngừa4%
Hoàn thiện50%
11
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.
12
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 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
z 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
z Lập trình viên: viết mã lệnh cài đặt sự thiết kế
z Nhà kiểm thử: bắt các lỗi
z Người hướng dẫn: chỉ dẫn người dùng cách sử dụng hệ thống
z 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
z 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
z 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
13
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
14
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:
1
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
2
Nộidung
z Tiến trình
z Các mô hình về tiến trình phần mềm
z Mô hình thác nước
z Mô hình chữ V
z Mô hình bản mẫu
z Mô hình phát triển ứng dụng nhanh
z Mô hình gia tăng
z Mô hình xoắn ốc
z Mô hình RUP
3
Tiến trình (Process)
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
z Tiến trình: bao gồm một bộ các công cụ và các
kỹ thuật
4

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
5
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
6
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
7

Tiến trình
z Lý do để mô hình hóa một tiến trình
z Hình thành một cách hiểu chung
z Tìm ra sự không nhất quán, sự dư thừa hay sự bỏ
sót
z 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
z Cụ thể hóa một tiến trình chung cho một hoàn cảnh
cụ thể
8
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.
9
Các mô hình về tiến trình phần mềm
z Mô hình thác nước
z Mô hình chữ V
z Mô hình bản mẫu
z Mô hình phát triển ứng dụng nhanh
z Mô hình gia tăng
z Mô hình xoắn ốc
z Mô hình RUP
10
Mô hình thác nước
(Waterfall Model)
z Một trong các mô hình đầu tiên về tiến trình phần
mềm
z 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
z Đơn giản và dễ giải thích với khách hàng
z Nó biểu diễn
z Một tổng quan mức rất cao của tiến trình phát triển
z Một chuỗi tuần tự các hoạt động của tiến trình
11
Mô hình thác nước
Phân tích yêu cầu
Thiết kế chi tiết
Thiết kế hệ thống
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ì
12
Mô hình thác nước
z Không có sự lặp lại trong mô hình thác nước
z 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
13
Mô hình thác nước
z Hạn chế của mô hình thác nước
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
z 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
z Không có các hoạt động lặp để tạo ra sản phẩm
cuối

z Phảichờđợilâutrướckhicósảnphẩmcuối
14
Mô hình chữ V (V Model)
z Một sự biến đổi của mô hình thác nước
z Sử dụng kiểm thử đơn vị để xác minh (verify) thiết kế chi
tiết
z Sử dụng kiểm thử tích hợp để xác minh thiết kế hệ thống
z Sử dụng kiểm thử chấp nhận để thẩm định (validate) các
yêu cầu
z 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
15
Mô hình chữ V
16
Mô hình bản mẫu
(Prototyping Model)
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
z Giảm sự rủi ro và sự không chắc chắn trong phát
triển
z Sử dụng mô hình bản mẫu khi các yêu cầu chưa
rõ ràng
17
Mô hình bản mẫu
18
Mô hình phát triển ứng dụng nhanh
(Rapid Application Development: RAD)
z Là tiếntrìnhpháttriểnphầnmềmgiatăng

z Thời gian phát triểnphần mềm rấtngắn
z Sử dụng các kỹ thuật thế hệ thứ tư
z Xây dựng dựatrênhướng thành phầnvớikhả năng tái
sử dụng
z Gồmmộtsố nhóm, mỗi nhóm làm 1 RAD theo các
pha: Mô hình hóa nghiệpvụ, Mô hình hóa dữ liệu, Mô
hình hóa xử lý, Tạo ứng dụng, Kiểmthử và đánh giá
( Business, Data, Process, Application Generation,
Testing)
19
Mô hình
phát triển
ứng dụng
nhanh
60 - 90 days
Business
Modeling
Business
Modeling
Data
Modeling
Data
Modeling
Process
Modeling
Process
Modeling
Application
Generation
Application

Generation
Testing &
Turnover
Testing &
Turnover
Team #1
Business
Modeling
Business
Modeling
Data
Modeling
Data
Modeling
Process
Modeling
Process
Modeling
Application
Generation
Application
Generation
Testing &
Turnover
Testing &
Turnover
Team #2
Business
Modeling
Business

Modeling
Data
Modeling
Data
Modeling
Process
Modeling
Process
Modeling
Application
Generation
Application
Generation
Testing &
Turnover
Testing &
Turnover
Team #3
20
Mô hình phát triển ứng dụng nhanh
z Cầnnguồnnhânlựcdồidàođể tạo các nhóm cho các
chứcnăng chính
z Yêu cầuhaibêncam kết trong thờigianngắnphảicó
phầnmềmhoànchỉnh, thiếutráchnhiệmcủamộtbên
dễ làm dự án đổ vỡ
z RAD không phảitốtchomọi ứng dụng, nhấtlàvới
ứng dụng không thể module hóa hoặc đòi hỏitính
năng cao
z RAD không phù hợp khi các rủi ro kỹ thuật cao
21

Mô hình gia tăng
(Incremental Model)
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
z 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
z 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)
z Lặp lại quy trình để hoàn thiện dần
22
Mô hình gia tăng
Phát hành lần 1
Phát hành lần 2

23
Mô hình xoắn ốc (Spiral Model)
z Được đề nghị bởi Boehm (1988)
z Kết hợp các hoạt động phát triển với sự quản lý rủi ro để
giảm đến mức tối thiểu và kiểm soát các rủi ro
z Thích hợp với các hệ lớn
z Mô hình được trình bày ở dạng xoắn ốc trong đómỗi lần
lặp được biểu diễn bởi một đường vòng gồm bốn hoạt
động chính
z Lập kế hoạch
z Xác định các mục tiêu, các lựa chọn và các ràng buộc
z Đánh giá các lựa chọn và các rủi ro
z Phát triển và kiểm thử
24
Mô hình xoắn ốc
25

RUP – Rational Unified Process
z Bổ sung cho UML
z Cách tiếp cận lặp cho các hệ thống hướng đối tượng, bao gồm
các use case để mô hình hóa các yêu cầu
z Các giai đoạn của RUP
z Inception: thiết lập phạm vi, giới hạn, các use case quan trọng, các
kiến trúc ứng viên, các dự đoán về chi phí và kế hoạch làm việc
z Elaboration: đạt được kiến trúc hoàn chỉnh, thiết lập sự hỗ trợ công
cụ, có tất cả các use case, giải quyết tất cả các rủi ro chính
z Construction: xây dựng tiến trình, một hay nhiều sự phát hành
z Transition : phát hành ra cộng đồng người dùng, thường là một số
phát hành
26
RUP
1
NHẬP MÔN
CÔNG NGHỆ PHẦN MỀM
CHƯƠNG 3 - QUẢN LÝ
2
NỘI DUNG
z Qu¶n lý nh©n sù
z Qu¶n lý chÊt l−îng
z Qu¶n lý cÊu h×nh
z Qu¶n lý dù ¸n (LËp kÕ ho¹ch vμ kiÓm so¸t dù ¸n)
3
Ni dung Qun lý nhõn s
z Chọn nhân sự
z Thúc đẩy nhân sự
z Quản lý nhóm
4

Chọn nhân sự
z Nhân sự l thnh phần quan trọng nhất của tổ chức
z Việc quản lý nhân sự kém sẽ dẫn đến sự thất bại của
dự án
z Các yếu tố quản lý nhân sự
z Không phân biệt đối xử
z Tôn trọng
z Lắng nghe
z Trung thực
5
Chọn nhân sự
z Một công việc quản lý dự án quan trọng l chọn nhóm
lm việc
z Các thông tin cần cho sự lựa chọn nhân sự gồm:
z Thông tin đợc cung cấp bởi ứng viên
z Thông tin do phỏng vấn v nói chuyện với ứng viên
z Thông tin từ th tiến cử hay sự giới thiệu của những
ngời biết hay những ngời lm việc với ứng viên
6
Chọn nhân sự
z Một số lu ý trong việc chọn nhân sự
z Các nh quản lý trong công ty không muốn mất ngời
cho các dự án mới. Vì vậy, ta phải chấp nhận những
ngời chỉ có thể lm việc bán thời gian trong dự án.
z Các kỹ năng cần thiết cho dự án l khan hiếm =>
không có đợc nhiều ứng viên để chọn.
z Những sinh viên mới ra trờng không có nhiều kinh
nghiệm cụ thể nhng họ thờng nhiệt tình v dễ học
công nghệ mới
z Sự thnh thạo về kỹ thuật có thể ít quan trọng hơn các

kỹ năng xã hội

×