Thành phần giao diện : - Tiếp nhận các yêu cầu về việc sử dụng phần mềm của người sử dụng như chọn công việc nhập dữ liệu nguồn dụng như chọn công việc,nhập dữ liệu nguồn, … - Trình b
Trang 1GIÁO TRÌNH:
CÔNG NGHỆ PHẦN MỀM
T ầ T ấ Mi h
Trang 4Nộ d Nội dung
Trang 5CHƯƠNG 1:
CÔNG NGHỆ PHẦN MỀM
Trang 6¾ Mục tiêu
Trang 7Mục tiêu :
trong công nghệ phần mềm
trong công nghệ phần mềm.
Trang 86 Các công cụ và môi trường phát triển phần mềm
6 Các công cụ và môi trường phát triển phần mềm.
Trang 91.1 Lược sử
Qua các giai đoạn :
Giai đoạn I : Thời kỳ thế hệ thứ nhất của MTĐT ( Thập niên 50.)
Mô tả d à á đặ t
Mô tả dựa vào các đặc trưng:
a) Quan điểm : Lập trình là một hoạt động nghệ thuật, dựa trên cảm
Trang 102 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,
3 Các thành quả:
Trang 111.1 Lược sử (tt)
Giai đoạn thứ 3 : ( Từ giữa những năm 70 đến nay ) :
Đặc trưng :
Hệ thông phân bố nhiều máy tính mỗi máy thực hiện một chức
- Hệ thông phân bố - nhiều máy tính, mỗi máy thực hiện một chức năng tương tranh và liên lạc với máy khác.
- Sự phát triển nhanh của các máy tính cá nhân.
Trang 121.2 Phần mềm (Software)
1 Khái niệm.
Phần mềm là hệ thống các chương trình thực hiện được trên máy tính nhằm hổ trợ cho các nhà chuyên môn trong từng lãnh vực chuyên ngành thực hiện tốt các thao tác nghiệp vụ của mình
Lĩnh vực chuyên ngành : Mọi mặt trong đời sống xã hội như giáo
dục, quốc phòng, giải trí, kinh doanh,
Nhà chuyên môn ( nguời sử dụng) : Người hoặc bộ phận tham gia
hoạt động vào các lĩnh vực tương ứng.
Thao tác nghiệp vụ : Các công việc trong thế giới thực được
chuyển vào lĩnh vực tương ứng.
Trang 131.2 Phần mềm (tt)
3 Cá thà h hầ hầ ề
3 Các thành phần phần mềm.
a Thành phần giao diện :
- Tiếp nhận các yêu cầu về việc sử dụng phần mềm của người sử
dụng ( như chọn công việc nhập dữ liệu nguồn )
dụng ( như chọn công việc,nhập dữ liệu nguồn, …)
- Trình bày kết quả phần mềm thực hiện.
- Điều khiển phần mềm hoạt động.
b Thà h hầ ử lý
b Thành phần xử lý :
- 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ả.
Trang 14 Là tập các chương trình phục vụ cho các chương trình khác như :
trình biên dịch, các trình tiện ích xử lý tệp, Hệ điều hành .
Trang 161 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ế.
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í h hiệ ả Ki h tế tố độ bộ hớ
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ý.
Trang 171 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)
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ảnphẩm
- Ứng dụng (Application).Ứng dụng (Application)
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)
- 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 )
- Người dùng (User )
Trang 181.3 Công nghệ phần mềm (Software Engineering )
1 Định nghĩa CNPM.
Công nghệ :
Là cách sử dụng các công cụ, kỹ thuật trong việc giải quyết một bài t á à đó
bài toán nào đó.
Công nghệ phần mềm là ngành khoa học nghiên cứu các nguyên
lý, các phương pháp,các công cụ, các thủ tục phục vụ cho việc xây dựng các phần mềm có chất lượng trong khoảng thời gian và chi phí hợp lý.
2 Các đối tượng nghiên cứu của CNPM.
a Qui trình công nghệ phần mềm
Hệ thố á i i đ t tiế t ì h hát t iể hầ ề
Hệ thống các giai đoạn trong tiến trình phát triển phần mềm
Trang 191.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,
ời kiể đị h hất l lậ t ì h iê ời dù khá h
người kiểm định chất lượng, lập trình viên, người dùng khách hàng,…
Cấu trúc nhóm tuỳ theo quy mô : nhóm nhỏ hoạt động có hiệu quả khoảng 5 – 8 người (tích hợp các khả năng có thể hổ trợ nhau).
Trang 201.3 Công nghệ phần mềm (Software Engineering )(tt)
Trang 211.4 Các qui trình công nghệ.
( ô hì h á ì h há ể hầ ề )
( 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).
M tiê Chỉ á ê ầ à hầ ề hải â d
Mục tiêu : Chỉ ra các yêu cầu mà phần mềm phải xây dựng.
Kết quả tiếp nhận : Thông tin về các hoạt động của thể giới thực.
Kết quả chuyển giao ( cho giai đoạn sau ):
- Danh sách các yêu cầu
- Danh sách các yêu cầu.
- Thông tin chi tiết về các yêu cầu.
- Các qui định liên quan.
Trang 22dạng mô hình ( Mô hình thế giới thực).
Kết quả tiếp nhận : Kết quả chuyển giao của giai đoạn xác định
yêu cầu.
Kết quả chuyển giao ( cho giai đoạn sau ):
Kết quả chuyển giao ( cho giai đoạn sau ):
- Mô hình xử lý : Hệ thống các công việc trong thế giới thực cùng vớ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
hú
chúng.
Trang 231.4 Các qui trình công nghệ (tt)
c Thiết kế phần mềm :
Mục tiêu : Tạo ra mô hình phần mềm (các thành phần phần mềm ).
Kết quả tiếp nhận : Mô hình thế giới thực.
Kết quả chuyển giao :
- Mô tả thành phần giao diện
- Mô tả thành phần xử lý.
Mô tả thà h hầ dữ liệ
- Mô tả thành phần dữ liệu.
- Mô tả kiến trúc phần mềm.
Trang 241.4 Các qui trình công nghệ (tt)
d Mã hóa.
Mục tiêu : Tạo ra phần mềm đúng theo yêu cầu.
Kết quả tiếp nhận : Mô hình phần mềm
Kết quả tiếp nhận : Mô hình phần mềm.
Kết quả chuyển giao :
Trang 251.4 Các qui trình công nghệ (tt)
e Kiểm chứng.
Mục tiêu : Nâng cao độ tin cậy của phần mềm.
Kết quả tiếp nhận : Phần mềm Mô hình phần mềm danh sách các
Kết quả tiếp nhận : Phần mềm, Mô hình phần mềm, danh sách các
yêu cầu.
Kết quả chuyển giao :
Phầ ề đã đ khẳ đị h ề hất l
- Phần mềm đã được khẳng định về chất lượng.
Trang 26 Kết quả chuyển giao :
Kết quả chuyển giao :
- Phần mềm đã hoạt động ổn định.
- Phần mềm đã được nâng cấp.
Trang 28Ưu điểm:
Các giai đoạn được định nghĩa, với đầu vào và đầu ra rõràng Mô hình này cơ bản dựa trên tài liệu nhất là trongcá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ỗicác hoạt động xây dựng phần mềm theo trình tự rõ ràng
Trang 29Nhược điểm:
Đòi hỏi tất cả yêu cầu phần mềm phải được xác định rõràng ngay từ đầu dự án Nhưng đa số dự án cho thấy yêucầu phần mềm thường ẩn chứa các điểm không chắchắ
Nói chung, mô hình này thường ẩn chứa nhiều rủi ro mà
Trang 301.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
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 để
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ị ạ ợ
Trang 311.4 Các qui trình công nghệ (tt)
Tập hợp yêu cầu
và làm mịn
Thiết kế nhanh
Sản phẩm
Trang 32Ưu điểm:
Người sử dụng sớm hình dung ra chức năng và đặc điểmcủa hệ thống
Cải thiện sự liên lạc giữa nhà phát triển và người sử dụng
Trang 33Nhượ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
Nói chung mô hình này vẫn chưa thể cải thiện được việcloại trừ khoảng cách giữa yêu cầu và ứng dụng cuối cùng
Trang 341.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 351.4 Các qui trình công nghệ (tt)
Tập hợp yêu cầu
dựa trên yêu cầu ban đầu
Kế hoạch Phân tích rủi ro
Phân tích rủi ro dựa trên phản ứng khách hàng
chỉnh Bản mẫu ban đầu Đánh giá của
Trang 36Ưu điểm:
Phân tích đánh giá rủi ro được xem xét như một 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ự
i ỗi ắ
á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
h là ô hì h tổ h á ô hì h khá
như là mô hình tổng hợp các mô hình khác.
Trang 37Nhược điểm:
Phức tạp và không phù hợp cho dự án nhỏ với ít rủi ro
Cần có kỹ năng tốt về phân tích rủi ro
Trang 381.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ơ 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 :
Tập trung vào “làm thế nào ?” , bao gồm : Thiết kế, mã hóa kiểm thử
hóa, kiểm thử
Trang 39 Chức năng được phân rã theo một hệ thống cấu trúc.
Tạo ra các mô hình chức năng, mô hình dữ liệu,
Ưu điểm:
9 Đơn giản, dẽ hiểu
9 Người phát triển phần mềm phân rã được chức năng, thấy được quá
trình họat động của phần mềm.
Khuyết điểm:
9 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
Trang 401.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 tinKhá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
Trang 411.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ầnphầ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
Giai đoạn Chức năng
Giai đoạn Chức năng
Phân tích - Soạn thảo sơ đồ: DFD, ERD,
Thiết kế - Sọan thảo sơ đồ quan hệ
- Phát sinh CSDL,
Mã hóa - Soạn thảo chương trình
- Trình dịch,
Trang 421.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 Q ả lý ô hệ hầ ề (S ft E i i M t)
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) as uc u e)
Trang 431.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.
ắ Khâu phân tích yêu cầu phần mềm liên quan tới việc thu thập, phân tích vμ quản lý các yêu cầu về phần mềm Mục đích của khâu nμy lμ phải đặc tả đ−ợc một cách rõ rμng các yêu cầu về tính năng sử dụng
phải đặc tả đ−ợc một cách rõ rμng các yêu cầu về tính năng sử dụng,
về kỹ thuật vμ chất l−ợng của phần mềm.
ắ Kiến thức về lĩnh vực nμy đ−ợc phân thμnh năm chủ đề sau:
- 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 441.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
ắ Trong lĩnh vực nμy, các chủ đề kiến thức sau đã đ−ợc đề cập tới:
- 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)
Trang 451.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
3 Xây dựng phần mềm
ắ Xây dựng phần mềm lμ một khâu cơ bản của CNPM; lập trình viên phải xây dựng được phần mềm thỏa mãn yêu cầu đã được đặc tả vμ tuân thủ bản thiết kế của phần mềm Việc xây dựng phần mềm thường trải qua các bước sau : viết chương trình, kiểm tra vμ hợp thức hóa.
ổ
ắ Việc phân loại kiến thức được thực hiện theo hai góc độ (bổ sung cho nhau) về Xây dựng phần mềm Theo góc độ thứ nhất, có ba kiểu giao diện xây dựng phần mềm (Software Construction Interface) :
- Ngôn ngữ (Linguistic Construction Methods) Ngô gữ ( gu st c Co st uct o et ods)
- Toán học (Formal Construction Methods)
- Hiển thị (Visual Construction Methods)
Trang 461.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm
ắ Theo góc độ thứ hai, mỗi kiểu nμy lại được phân loại theo bốn nguyên 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ựng phần mềm :
p
- Giảm độ phức tạp (Reduction in Complexity)
- 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) Áp dụng các tiêu chuẩn (Use of External Standards).
Trang 471.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
ắ Mục đích của Kiểm thử phần mềm lμ nhằm xác định xem phần mềm
có hoạt động theo đúng như yêu cầu đã được đặc tả hay không Việc kiểm tra phải được tiến hμnh một cách bμi bản tuân thủ theo một quy trình định trước Kỹ thuật kiểm thử vμ mức độ kiểm thử phải được lựa chọn dựa theo đặc trưng của từng phần mềm cũng như theo yêu cầu của dự án phát triển phần mềm.
ắ Liê tới lĩ h ự μ á hủ đề kiế thứ đã đượ á
ắ Liên quan tới lĩnh vực nμy, các chủ đề kiến thức sau đã được xác
định:
- Kiến thức cơ bản về Kiểm thử phần mềm (Basic Concepts and Definitions)
ể ử ầ ề
- Các mức kiểm thử phần mềm (Test Levels)
- 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)
Trang 481.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ầnmềm sau khi đã được bμn giao như: sửa chữa lỗi, bổ sungợ g , gthêm các tính năng, nâng cấp hiệu năng hay cải tiến chophù hợp với một môi trường vận hμnh mới Bản chất củacác hoạt động bảo trỡ không hoμn toμn giống như các hoạt
Trang 491.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μnhcá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)
(Maintenance Cost and Maintenance Cost Estimation)
9 Các phương pháp đo lường trong bảo trỡ (Maintenance Measurements)
Trang 501.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
ắ Nhằm mục đích quản lý tất cả các ‘phần tử’ liên quan tới việc triển 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 511.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ânthμnh các chủ đề nh− sau:
9 Quy trình quản lý cấu hình phần mềm (Software Configuration 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 Configuration Identification)
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 Configuration Status Accounting)
9 Kiểm tra cấu hình phần mềm (Software Configuration Auditing)
9 Quản lý việc phát hμnh vμ chuyển giao phần mềm (Software Release Management and Delivery)