Tiến trình phát triển phần mềm bao gồm ba giai đoan cơ Tiến trình phát triển phần mềm bao gồm ba giai đoan cơ bản : * Giai đoạn xác định : Tập trung vào “làm cái gì ?” , bao gồm : Phân t
Trang 1CHƯƠNG 1:
TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM
Trang 2¾ Mục tiêu ục tiêu
Trang 3Mục tiêu :
trong công nghệ phần mềm.
Trang 51.1 Lược sử
Qua các giai đoạn :
Giai đoạn I : Thời kỳ thế hệ thứ hất ủ MTĐT ( Thậ iê 50 )
Giai đoạn I : Thời kỳ thế hệ thứ nhất của MTĐT ( Thập niên 50.)
Mô tả dựa vào các đặc trưng:
Trang 62 Giải quyết khủng hoảng:
-Thay đổi quan điểm nghiên cứu , đối tượng nghiên cứu, phương pháp nghiên cứu, p g p p g
Trang 7vào ứng dụng thực tế.
Trang 8dục, quốc phòng, giải trí, kinh doanh,
hoạt động vào các lĩnh vực tương ứng
chuyển vào lĩnh vực tương ứng
Trang 91 2 Phần mềm (tt)
3 Các thành phần phần mềm
a Thành phần giao diện :
dụng ( như chọn công việc,nhập dữ liệu nguồn, …)
b Thành phần xử lý :
Kiểm tra tính hợp lệ của dữ liệu nguồn
- Kiểm tra tính hợp lệ của dữ liệu nguồn
- Tra cứu, Tính toán, biến đổi cho ra kết quả
c Thành phần dữ liệu:
- Tổ chức cấu trúc dữ liệu
- Tổ chức lưu trử Cơ sở dữ liệu
- Truy xuất (đọc ghi) dữ liệu
- Truy xuất (đọc, ghi) dữ liệu
Trang 10trình biên dịch, các trình tiện ích xử lý tệp, Hệ điều hành .
b Phần mềm thời gian thực
Có đặc trưng ràng buộc chặt chẽ với thời gian
Có đặc trưng ràng buộc chặt chẽ với thời gian
Trang 11g Phần mềm trí tuệ nhân tạo :
Dùng các thuật toán phi số như các hệ chuyên gia mạng nơron nhântạo,
Trang 121 2 Phần mềm (tt)
5 Chất lượng phần mềm (các tiêu chuẩn phần mềm) :
a Tính đúng đắn : Không có sự cố Đúng với yêu cầu thiết kế
a Tính đúng đắn : Không có sự cố, Đúng với yêu cầu thiết kế
b Tính tiến hóa : Có thể thay đổi, mở rộng các yêu cầu, chức năng của
phần mềm
c Tính tiện dụng : Dễ học, dễ sử dụng
d Tính hiệu quả : Kinh tế, tốc độ, bộ nhớ
e Tính khoa học : Về nội dung, hình thức
f Tính độc lập : Độc lập với thiết bị, với cấu trúc đối tượng phần mềm
quản lý
g Tính toàn vẹn : Có cơ chế ngăn ngừa việc phát sinh dữ liệu sai qui
cách, phục hồi dữ liệu,
Trang 13
1 2 Phần mềm (tt)
1.2 Phần mềm (tt).
6 Một số thuật ngữ liên quan:
- Phát triển phần mềm (Software development) Phát triển phần mềm (Software development).
Tiến trình xây dựng phần mềm từ khi bắt đầu lập kế hoạch dự án phần mềm cho đến khi chuyển giao sản phẩm
phẩm.
- Ứng dụng (Application).
Tập các chương trình thực hiện tự động trên máy tính
Tập các chương trình thực hiện tự động trên máy tính một số nhiệm vụ.
- Kỹ sư phần mềm ( Software Engineer).
Người áp dụng kiến thức phát triển phần mềm vào việc
tổ chức xây dựng một cách có hệ thống các ứng dụng.
- Người dùng (User ) g g ( )
Đối tượng sử dụng phần mềm.
Trang 141 3 Công nghệ phần mềm (Software Engineering )
Là cách sử dụng các công cụ, kỹ thuật trong việc giải quyết mộtbài toán nào đó
lý, các phương pháp,các công cụ, các thủ tục phục vụ cho việc xâydựng các phần mềm có chất lượng trong khoảng thời gian và chiphí hợp lý
2 Các đối tượng nghiên cứu của CNPM
Trang 151 3 Công nghệ phần mềm (Software Engineering) (tt)
3 Các yếu tố trong CNPM
a Con nguời :
Bao gồm : Nhà quản lý, nhà phân tích hệ thống, kỹ sư phần mềm,người kiểm định chất lượng, lập trình viên, người dùng kháchhàng,…
Trang 161 3 Công nghệ phần mềm (Software Engineering )(tt)
Trang 171.4 Các qui trình công nghệ q g g
( Mô hình các quy trình phát triển phần mềm)
1 Mô hình tuần tự tuyến tính ( Linear Sequential Model)
( Các tên gọi khác :
- Mô hình thác nước (Waterfall Model)
- Vòng đời cổ điển (Classical life cycle) )
a Xác định yêu cầu bài toán
( mô tả dạng văn bản)
- Danh sách các yêu cầu
Thông tin chi tiết ề các ê cầ
- Thông tin chi tiết về các yêu cầu
- Các qui định liên quan
Trang 181 4 Các qui trình công nghệ (tt)
b Mô hình hóa yêu cầu
( mô tả dạng sơ đồ)
dạng mô hình ( Mô hình thế giới thực)
ầ
yêu cầu
- Mô hình xử lý : Hệ thống các công việc trong thế giới thực cùngvới quan hệ giữa chúng
- Mô hình dữ liệu : Hệ thống thông tin cùng với quan hệ giữa
chúng
- Các mô hình khác
Trang 191 4 Các qui trình công nghệ (tt)
c Thiết kế phần mềm :
- Mô tả thành phần giao diệnMô tả thành phần giao diện
- Mô tả thành phần xử lý
- Mô tả thành phần dữ liệu
- Mô tả kiến trúc phần mềm
- Mô tả kiến trúc phần mềm
Trang 201 4 Các qui trình công nghệ (tt)
d Mã hóa
Trang 211 4 Các qui trình công nghệ (tt)
e Kiểm chứng
yêu cầu
- Phần mềm đã được khẳng định về chất lượng
Trang 221 4 Các qui trình công nghệ (tt)
f Bảo trì :
Trang 23Bảo trì ( Mô hình thác nước )
Trang 24các giai đoạn đầu, đầu vào và đầu ra đều là tài liệu.
Sản phẩm phần mềm được hình thành thông qua chuỗi các hoạt động xây dựng phần mềm theo trình tự rõ ràng các hoạt động xây dựng phần mềm theo trình tự rõ ràng.
Trang 25nhu cầu của họ vào thời điểm cuối dự án.
Nói chung mô hình này thường ẩn chứa nhiều rủi ro mà chỉ có thể phát hiện ở giai đoạn cuối cùng và chi phí để sửa chữa có thể rất cao.
Trang 261 4 Các qui trình công nghệ (tt)
2 Mô hình tạo mẫu (Prototyping Model) :
a Tập hợp yêu cầu : Kỹ sư PM và khách hàng cùng xác định
các yêu cầu (được biết), các qui định liên quan.
b Thiết kế nhanh : Thiết kế những yêu cầu đã được biết để g y ợ
tạo một bản mẫu sơ bộ.
c Đánh giá của khách hàng : Bản mẫu được khách hàng
đánh giá để làm rõ thêm các yêu cầu khác của hệ thống.
d Làm mịn bản mẫu : Thiết kế lại bản mẫu đã được khách
hàng đánh giá
hàng đánh giá.
Sơ đồ :
Trang 27nhanh phẩm
Làm mịn bản mẫu dựngXây
Đánh giá của
dựng bản mẫu
của Khách hàng
( Mô hình làm bản mẫu )
Trang 29Nhược điểm:
Prototype thường được làm nhanh, thậm chí vội vàng, theo kiểu "hiện thực sửa" và có thể thiếu sự phân tích đánh giá một cách cẩn thận tất cả khía cạnh liên quan đến
hệ thống cuối cùng ệ g g
Nói chung mô hình này vẫn chưa thể cải thiện được việc
Nói chung mô hình này vẫn chưa thể cải thiện được việc loại trừ khoảng cách giữa yêu cầu và ứng dụng cuối cùng.
Trang 301 4 Các qui trình công nghệ (tt)
3 Mô hình xoắn ốc ( Spiral Model )
a Xác định mục tiêu, giải pháp,ràng buộc
b Phân tích rủi ro.
Trang 31Kế hoạch dựa
Phân tích rủi ro dựa trên phản ứng khách hàng
ế oạc dựa
trên ý kiến của
khách hàng Quyết định thực hiện tiếp hay không
ốĐánh giá của
Hướng tới hệ thống hoàn
chỉnhBản mẫu ban đầu
( Mô hình xoắn ốc )
khách hàng
Bản mẫu tầng tiếp theo
Trang 32Ưu điểm:
Phân tích đánh giá rủi ro được xem xét như một
hầ hiế ế ỗi ò ắ để ă ứ
phần thiết yếu trong mỗi vòng xoắn để tăng mức
độ tin cậy của dự án.
Cho phép thay đổi tùy theo điều kiện thực tế dự
án tại mỗi vòng xoắn.
Đây chính là mô hình tổng quát nhất, có thể xem như là mô hình tổng hợp các mô hình khác g ợp
Trang 341 4 Các qui trình công nghệ (tt)
5 Nhận xét chung về các qui trình công nghệ.
Tiến trình phát triển phần mềm bao gồm ba giai đoan cơ
Tiến trình phát triển phần mềm bao gồm ba giai đoan cơ bản :
* Giai đoạn xác định :
Tập trung vào “làm cái gì ?” , bao gồm : Phân tích hệ thông, lập kế hoạch dự án, phân tích yêu cầu.
* Giai đoạn phát triển : Giai đoạn phát triển :
Tập trung vào “làm thế nào ?” , bao gồm : Thiết kế, mã hóa, kiểm thử.
* Gi i đ bả t ì
* Giai đoạn bảo trì :
Tập trung vào “thay đổi ?”, bao gồm : Sửa lỗi, thích nghi, nâng cao g
Trang 359 Khi chức năng bị thay đổi sẽ dẫn tới cấu trúc phần mềm thay đổi
9 Nhược điểm cơ bản là sự tách biệt giữa các chức năng và dữ liệu làm
cho phải viết lại mã cho các chức năng giống nhau những xử lý các kiểu dữ liệu khác nhau.
Trang 361 5 Các phương pháp phát triển phần mềm
2 Phương pháp Hướng đối tượng :
Cấu trúc thông tin trong hệ thống thông tin là ít thay đổi
Khái niệm đối tượng được dùng để mô tả thông tin.
Đối tượng: Dữ liệu – Tác vụ
9 Tăng cường tính tái sử dụng: Giữa vào quan hệ kế
thừa làm giảm chi phí xây dựng lại
9 Tăng cường tính mở rộng: Không ảnh hưởng đến
cấu trúc thông tin do mở rộng chức năng có thể thực
hiện qua việc tạo lố con.
Khuyết điểm: Lĩnh vực ứng dụng (cấu trúc thông tin)
thay đổi sẽ dẫn tới xây dựng lại phần mềm y y ự g ạ p
Trang 371 6 Công cụ phát triển phần mềm
1.6 Công cụ phát triển phần mềm
Hệ thống phần mềm hổ trợ quá trình phát triển phần phần mềm hay trong từng giai đoạn gọi là CASE Tools ( Computer Aided Software Engineering Tools) :
Chức năng của CASE trong mối giai đoạn phát triển PM
Trang 381 7 Các nội dung cơ bản của công nghệ phần mềm
1 Phân tích yêu cầu phần mềm (Software Requirement)
2 Thiết kế phần mềm (Software Design)
3 Xây dựng phần mềm (Software Construction)
4 Kiểm thử phần mềm (Software Testing)
5 Bảo dưỡng phần mềm (Software Evolution and Maintenance)
6 Quản lý cấu hình phần mềm (Software Configuration Management)
7 Quản lý công nghệ phần mềm (Software Engineering Management)
8 Qui trình công nghệ phần mềm (Software Engineering Process)
9 Cơ sở hạ tầng công nghệ phần mềm (Software Engineering
Infrastructure)
10 Chất lượng phần mềm (Software Quality)
10 Chất lượng phần mềm (Software Quality)
Trang 391 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
về kỹ thuật vμ chất l−ợng của phần mềm
- Quy trình công nghệ ‘Phân tích yêu cầu’
(Requirement Engineering Process)
- Xác định yêu cầu (Requirement Elicitation)
- Phân tích yêu cầu (Requirement Analysis)
- Hợp thức hóa yêu cầu (Requirement Validation)
- Quản lý yêu cầu (Requirement Management)
Trang 401 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
2.Thiết kế phần mềm
ềphần mềm
Bản thiết kế cũng phải mô tả cấu trúc hệ thống của phần mềm ở mộtmức độ tương đối cụ thể vμ rõ rμng, tạo điều kiện cho việc xây dựng
phần mềm
- Kiến thức cơ bản về thiết kế phần mềm (Software Design Basic
Concepts)
- Kiến trúc phần mềm (Software Architecture)
- Chất lượng Thiết kế phần mềm (Software Design Quality)
Ký hiệ thiết kế (Soft are Design Notations)
- Ký hiệu thiết kế (Software Design Notations)
- Quy trình vμ phương pháp thiết kế (Software Design Strategies and Methods)
Trang 411 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
hóa
nhau) về Xây dựng phần mềm Theo góc độ thứ nhất có ba kiểu giaodiện xây dựng phần mềm (Software Construction Interface) :
- Ngôn ngữ (Linguistic Construction Methods)
- Hiển thị (Visual Construction Methods)
Trang 421.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
tắc tổ chức cơ bản có ảnh hưởng lớn tới cách thức tiến hμnh xây dựngphần mềm :
- Giảm độ phức tạp (Reduction in Complexity)
- Dự đoán trước những sự khác biệt (Anticipation of Diversity)Dự đoán trước những sự khác biệt (Anticipation of Diversity)
- Cấu trúc việc hợp thức hóa (Structuring for Validation)
- Áp dụng các tiêu chuẩn (Use of External Standards)
Trang 431.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
4 Kiểm thử phần mềm
có hoạt động theo đúng như yêu cầu đã được đặc tả hay không Việckiểm tra phải được tiến hμnh một cách bμi bản, tuân thủ theo một quytrình định trước Kỹ thuật kiểm thử vμ mức độ kiểm thử phải đượclựa chọn dựa theo đặc trưng của từng phần mềm cũng như theo yêucầu của dự án phát triển phần mềm
- Kỹ thuật kiểm thử (Test Techniques)
- Các phương pháp đo lường liên quan tới Kiểm thử phần mềm (Test Related Measures)
- Quản lý quy trình kiểm thử (Management the Test Process)
- Quản lý quy trình kiểm thử (Management the Test Process)
Trang 441.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
5 Bảo trỡ (Bảo dưỡng) phần mềm
ắ Bao gồm các hoạt động liên quan tới việc sửa đổi phần
ắ Bao gồm các hoạt động liên quan tới việc sửa đổi phần mềm sau khi đã được bμn giao như: sửa chữa lỗi, bổ sung thêm các tính năng, nâng cấp hiệu năng hay cải tiến cho phù hợp với một môi trường vận hμnh mới Bản chất của các hoạt động bảo trỡ không hoμn toμn giống như các hoạt
động phát triển phần mềm Do vậy, cần phải có các quy trình quản lý các kỹ thuật các phương pháp đo lường vμ
đánh giá riêng, chuyên dụng cho bảo trỡ phần mềm.
Trang 451.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
ắ Kiến thức cơ bản về bảo trỡ phần mềm được phân thμnh các chủ đề sau:
9 Các hoạt động bảo trỡ (Maintenance Activities)
9 Quy trình trỡ (Maintenance Process)
9 Tổ chức bảo trỡ (Organization Aspect of Maintenance)
9 Vấn đề bảo trỡ phần mềm (Problems of Software Maintenance)
9 Giá thμnh bảo trỡ trỡ vμ các phương pháp ước lượng (Maintenance Cost and Maintenance Cost Estimation)
9 Các phương pháp đo lường trong bảo trỡ (Maintenance Measurements)
9 Kỹ thuật bảo trỡ (Techniques for Maintenance)
Trang 461.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
6 Quản lý cấu hình phần mềm
khai một dự án phần mềm Ví dụ nh−: báo cáo về yêu cầu phần mềm,bản thiết kế, các phiên bản khác nhau của một phần mềm, các báo
cáo tiến độ, công cụ phát triển v.v., Việc khởi tạo, sửa chữa hay bổsung các phần tử nμy phải đ−ợc quản lý một cách có hệ thống, duy trì
đ−ợc tính thống nhất, vμ cho phép truy cứu đ−ợc trong suốt quá trìnhể
triển khai dự án
Trang 471.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
ắ Kiến thức về quản lý cấu hình đã đ−ợc xác định vμ phân thμnh các chủ đề nh− sau:
9 Quy trình quản lý cấu hình phần mềm (Software Configuration
Management Process)
9 Xác định cấu hình phần mềm (Software ConfigurationIdentification)
9 Giám sát cấu hình phần mềm (Software Configuration Control)
9 Báo cáo hiện trạng cấu hình phần mềm (Software ConfigurationStatus Accounting)
9 Quản lý việc phát hμnh vμ chuyển giao phần mềm (SoftwareRelease Management and Delivery)
Trang 481 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
7 Quản lý công nghệ phần mềm
ắ Liên quan tới vấn đề quản lý vμ đo lường dự án phần
mềm Kiến thức về quản lý được phân loại theo các bước tiến hμnh một dự án như: thiết lập lập kế hoạch triển khai, đánh giá vμ kết thúc Kiến thức về đo lường đề cập tới việc thiết lập vμ triển khai các chương trình đo lường, p g g việc lựa chọn chỉ số vμ phương pháp đo lường.
Trang 491 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
ắ Các chủ đề chính trong quản lý công nghệ phần mềm lμ:
- Đo lường (Measurement)
- Tổ chức vμ điều hμnh (Organizational Management and
Coordination)
- Thiết lập dự án (Initiation and Scope Definition)
- Lập kế hoạch (Planning) p g
- Triển khai (Enactment)
- Duyệt vμ đánh giá (Review and Evaluation)
Kết thú d á (P j t Cl O t)
- Kết thúc dự án (Project Close-Out)
- Hoạt động sau khi kết thúc dự án (Post-Closure
Activities)
Trang 501 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
8 Quy trình công nghệ phần mềm
ắ Lĩnh vực kiến thức nμy đề cập tới việc thiết lập, quản lý,
đo lường vμ vận hμnh các quy trình công nghệ, phục vụ cho việc phát triển phần mềm Một quy trình CNPM có chất lượng sẽ đảm bảo cho các dự án phần mềm triển khai
vμ kết thúc theo đúng tiến độ, không vượt quá kinh phí, g g q p sản phẩm lμm ra thỏa mãn các yêu cầu về kỹ thuật vμ chất lượng.
Trang 511 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
- Đo lường quy trình (Process Measurement)
- Thiết lập quy trình (Process Definition) ết ập quy t ( ocess e t o )
- Phân tích định lượng quy trình (Qualitative Process
Analysis)
- Cμi đặt vμ cải tiến quy trình (Process Implementation and Change)
Trang 521 7 Các nội dung cơ bản của công nghệ phần mềm
9 C«ng cô ph¸t triÓn phÇn mÒm (Software Tools
Methods)
Trang 531 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
10 Chất l−ợng phần mềm
ắ Chất l−ợng phần mềm đ−ợc đề cập tới theo hai khía cạnh:
ắ Chất l−ợng phần mềm đ−ợc đề cập tới theo hai khía cạnh:
Chất l−ợng sản phẩm (phần mềm)
Chất l−ợng quy trình sản xuất.
Theo quan điểm hiện nay thì muốn sản xuất đ−ợc sản phẩm có chất l−ợng thì cần phải có một quy trình sản xuất
Trang 541 7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
chủ đề sau:
ầ ề
Khái niệm chất l−ợng phần mềm (Software Quality Concepts)
Định nghĩa Bảo đảm chất l−ợng, Kiểm tra vμ Hợp thức hoá (Defining Software Quality Assurance, Verification and Validation)
Lập kế hoạch cho Bảo đảm chất l−ợng Kiểm tra vμ Hợp thức hóa (Planning for Software Quality Assurance, Verification and Validation)
vμ Hợp thức hóa (Activities and Techniques for Software QualityAssurance, Verification and Validation)
(Measurement Applied to Software Quality Assurance, Verificationand Validation)