Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 1: Phạm vi của công nghệ phần mềm

? Thuật ngữ công nghệ phần mềm (software engineering-SE) đ-ợc đề xuất

bởi một nhóm nghiên cứu của NATO vào năm 1967

? Hội nghị về SE đ-ợc tổ chức tại Garmisch-Đức năm 1968 nhằm giải quyết

vấn đề khủng hoảng phần mềm

? Cuộc khủng hoảng vẫn còn kéo dài đến nay vì hai lý do:

? tiến trình sản xuất phần mềm có những thuộc tính và vấn đề riêng

? sự trì trệ của phần mềm (software depression) với thời gian kéo dài

và những dự đoán nghèo nàn

? Sự phát triển của phầncứng và hệ điều hành

? hệ điều hành đa nhiệm (1960s)

? bộ nhớ ảo (1970s)

? đa xử lý (multiprocessor)

? hệ điều hành phân tán (mạng),.

? Vấn đề bảo trì phần mềm

pdf14 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2254 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 1: Phạm vi của công nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Huỳnh Xuân Hiệp - CNPM 1
KHOA CÔNG NGHệ THÔNG TIN 
Bộ môn Hệ thống thông tin & Toán ứng dụng 
bμi giảng công nghệ phần mềm 
(COURSE OF SOFTWARE ENGIINEERIING) 
 Th.s Huỳnh Xuân Hiệp 
 Điện thoại: 84.71.831301 
 E-mail: hxhiep@ctu.edu.vn 
Huỳnh Xuân Hiệp - CNPM 2
TàI LIệU THAM KHảO 
1. [Schach1999] Stephen R. Schach, Classical and object-oriented software 
engineering, McGRAW-HILL Inc, 1999,1996. 
2. [Quang2000] Tr−ơng Minh Nhật Quang, Bμi giảng Công nghệ phần mềm, 
Đại Học Cần Thơ, 2000. 
3. [Tuyền2000] Tr−ơng Thị Thanh Tuyền, Bμi giảng Công nghệ phần mềm, 
Đại Học Cần Thơ, 2000. 
4. [Pressman1997] Roger S.Pressman, Software engineering, McGRAW-
HILL Inc, 1997. (Sách dịch – Ngô Trung Việt) 
Huỳnh Xuân Hiệp - CNPM 3
nội dung môn học 
Phần 1 Giới thiệu về chu trình sống của phần mềm 
1 Phạm vi của công nghệ phần mềm 
2 Tiến trình phần mềm 
3 Các mô hình chu trình sống của phần mềm 
4 Nhóm làm việc và các công cụ nghề nghiệp 
5 Kiểm thử 
6 Giới thiệu về đối t−ợng 
7 Một số vấn đề : sử dụng lại, dễ di chuyển và vận hành t−ơng tác 
8 Hoạch định và −ớc l−ợng 
Phần 2 
Các giai đoạn trong chu trình sống của phần mềm 
9 Phân tích yêu cầu 
10 Đặc tả 
11 Thiết kế 
12 Phân tích h−ớng đối t−ợng 
13 Cài đặt 
14 Cài đặt và tích hợp 
15 Bảo trì 
Huỳnh Xuân Hiệp - CNPM 
4
 P h ầ n 
1 
giới thiệu về 
chu trình sống của phần mềm 
(IINTRODUCTIION TO THE SOFTWARE LIIFE CYCLE) 
Huỳnh Xuân Hiệp - CNPM 
5
1 phạm vi của công nghệ phần mềm(SCOPE OF SOFTWARE ENGINEERING)
Nội dung: 
ƒ Lịch sử 
ƒ Kinh tế 
ƒ Bảo trì 
ƒ Đặc tả và thiết kế 
ƒ Đội ngũ lập trình 
ƒ Mô hình h−ớng đối t−ợng 
ƒ Thuật ngữ 
Huỳnh Xuân Hiệp - CNPM 
6
1.1 Lịch sử
(historical aspects)
ƒ Thuật ngữ công nghệ phần mềm (software engineering-SE) đ−ợc đề xuất 
bởi một nhóm nghiên cứu của NATO vào năm 1967 
ƒ Hội nghị về SE đ−ợc tổ chức tại Garmisch-Đức năm 1968 nhằm giải quyết 
vấn đề khủng hoảng phần mềm 
ƒ Cuộc khủng hoảng vẫn còn kéo dài đến nay vì hai lý do: 
‰ tiến trình sản xuất phần mềm có những thuộc tính và vấn đề riêng 
‰ sự trì trệ của phần mềm (software depression) với thời gian kéo dài 
và những dự đoán nghèo nàn 
ƒ Sự phát triển của phần cứng và hệ điều hành 
‰ hệ điều hành đa nhiệm (1960s) 
‰ bộ nhớ ảo (1970s) 
‰ đa xử lý (multiprocessor) 
‰ hệ điều hành phân tán (mạng),... 
ƒ Vấn đề bảo trì phần mềm 
Huỳnh Xuân Hiệp - CNPM 
7
1.2 Kinh tế
(economic aspects)
ƒ Sự lựa chọn kỹ thuật thực hiện nhanh hơn để giảm giá thành 
ƒ Sự ảnh h−ởng của kỹ thuật mới lên công ty phần mềm 
‰ khó bảo trì 
‰ thời gian huấn luyện 
‰ kinh nghiệm làm việc trên kỹ thuật mới ch−a nhiều 
ƒ Phụ thuộc vào sự lựa chọn của khách hàng 
ƒ Luật bản quyền 
Huỳnh Xuân Hiệp - CNPM 
8
1.3 Bảo trì
(maintenance aspects)
ƒ Chu trình sống của phần mềm 
‰ yêu cầu 
‰ đặc tả (phân tích) 
‰ thiết kế 
‰ cài đặt 
‰ tích hợp 
‰ bảo trì 
‰ kết thúc hoạt động 
Các dự án khác 
nhau từ 
1976 đến 1981 
132 dự án gần 
đây nhất của 
Hewlett-Packard 
Giai đoạn yêu cầu và đặc tả 21% 18% 
Giai đoạn thiết kế 18 19 
Giai đoạn cài đặt 36 34 
Giai đoạn tích hợp 24 29 
Hình 1.2 Một số so sánh trên các dự án 
Bảo trì 
67% 
Yêu cầu 
2% 
Đặc tả 
 (Phân tích) 
5% 
Thiết kế 
6% 
Viết mã lệnh 
cho mô-đun 
2% 
Kiểm thử mô-đun 
7% 
Tích hợp
8% 
Hình 1.1 Giá thành của các 
giai đoạn trong chu trình 
sống của phần mềm 
Huỳnh Xuân Hiệp - CNPM 
9
1.4 Đặc tả và thiết kế
(specification and design aspects)
ƒ Sai sót tại các giai đoạn tr−ớc sẽ ảnh h−ởng đến các giai đoạn sau, tạo ra 
các lỗi. Công việc sửa chữa các lỗi càng sớm càng tốt là rất quan trọng 
400 368 
350 
300 
250 
 200 
200 
các dự án từ 1974 
đến 1980 
150 
IBM AS/400 [Kan 
và al., 1994] 
100 
 52 
50 30 
 4 10 
G
i
á
g
ầ
n
đ
ú
n
g
(
x
ấ
p
x
ỉ
)
đ
ể
t
ì
m
k
i
ế
m
v
à
c
h
ỉ
n
h
s
ử
a
m
ộ
t
l
ỗ
i
 1 3 
 Yêu cầu Thiết kế Tích hợp 
 Đặc tả Cài đặt Bảo trì 
Hình 1.4 Giá phải trả để điều chỉnh lỗi 
Huỳnh Xuân Hiệp - CNPM 
10
1.5 Đội ngũ lập trình
(team programming aspects)
ƒ Hình thành từng nhóm làm việc chuyên biệt trong từng lĩnh vực. Một số vấn 
đề nảy sinh nh−: 
‰ cách chia xẻ các phần công việc 
‰ mối quan hệ, sự giao tiếp giữa các thành viên với nhau 
ƒ Kỹ thuật tổ chức và quản lý đội ngũ phát triển phần mềm 
‰ lập trình viên 
‰ đặc tả viên 
‰ thiết kế viên,... 
ƒ Sự ràng buộc lẫn nhau giữa các thành viên cùng nhóm, khác nhóm,... 
ƒ Cách đánh giá thời gian làm việc 
ƒ Cách đánh giá hiệu quả công việc 
ƒ Cách đánh giá về kinh nghiệm thực hiện công việc 
Huỳnh Xuân Hiệp - CNPM 
11
1.6 Mô hình h−ớng đối t−ợng
(the object-oriented paradigm)
ƒ Dữ liệu và tác động có vai trò quan trọng nh− nhau. Một số tên gọi khác: 
‰ thiết kế h−ớng trách nhiệm (responsibility-driven design)[Wirfs-
Brock, Wilkerson và Wiener, 1990] 
‰ thiết kế theo hợp đồng [Meyer, 1992a] 
(a) (b) 
Hình 1.4 So sánh hai ph−ơng pháp cài đặt (a) cấu trúc và (b) h−ớng đối t−ợng 
tài khoản 
tiền gửi 
rút tiền
gửi tiền 
xác định 
tồn khoản 
tài khoản 
tiền gửi 
rút tiền
gửi tiền
xác định 
tồn khoản
thông báo 
thông báo thông báo 
Huỳnh Xuân Hiệp - CNPM 
12
H−ớng cấu trúc H−ớng đối t−ợng 
1. Yêu cầu 
2. Đặc tả (phân tích) 
3. Thiết kế 
4. Cài đặt 
5. Tích hợp 
6. Bảo trì 
7. Kết thúc hoạt động 
1. Yêu cầu 
2. (*) Đặc tả (phân tích) h−ớng đối t−ợng 
3. (*)Thiết kế h−ớng đối t−ợng 
4. (*)Lập trình h−ớng đối t−ợng 
5. Tích hợp 
6. Bảo trì 
7. Kết thúc hoạt động 
Hình 1.5 So sánh chu trình sống giữa h−ớng cấu trúc và h−ớng đối t−ợng 
H−ớng cấu trúc H−ớng đối t−ợng 
2. Đặc tả (phân tích) 
• xác định sản phẩm phải làm gì 
3. Thiết kế 
• thiết kế kiến trúc (tạo các mô-
đun ) 
• thiết kế chi tiết 
4. Cài đặt 
• cài đặt trên ngôn ngữ lập trình 
thích hợp 
2. (*) Đặc tả (phân tích) h−ớng đối t−ợng 
• xác định sản phẩm phải làm gì 
• tạo các đối t−ợng 
3. (*)Thiết kế h−ớng đối t−ợng 
• thiết kế chi tiết 
4. (*)Lập trình h−ớng đối t−ợng 
• cài đặt trên ngôn ngữ lập trình h−ớng đối 
t−ợng thích hợp 
Hình 1.6 Sự khác nhau giữa h−ớng cấu trúc và h−ớng đối t−ợng 
Huỳnh Xuân Hiệp - CNPM 
13
1.7 Thuật ngữ
(terminology)
ƒ Phần mềm (software) 
‰ mã lệnh d−ới dạng máy có thể đọc đ−ợc 
‰ các dạng tài liệu đặc tả, thiết kế, luật và sổ sách về chi phí 
‰ kế hoạch quản lý dự án phần mềm và các tài liệu quản lý khác 
‰ các dạng tài liệu h−ớng dẫn sử dụng 
ƒ Ch−ơng trình (program), là một đoạn mã lệnh có thể tự thực thi đ−ợc 
ƒ Hệ thống (system), là tập hợp các ch−ơng trình liên quan với nhau 
ƒ Sản phẩm (product) 
‰ một mẩu bình th−ờng của phần mềm 
‰ kết quả đạt đ−ợc sau một tiến trình (process) phát triển phần mềm 
ƒ Sản xuất phần mềm (software production) bao gồm hai giai đoạn: 
‰ phát triển phần mềm (software development) 
‰ bảo trì (maintenance) 
Huỳnh Xuân Hiệp - CNPM 
14
ƒ Tập hợp các kỹ thuật (methodology, paradigm) 
ƒ Lỗi (error) hay có lỗi (bug) 
ƒ Thuộc tính (attribute), là thành phần dữ liệu của một đối t−ợng. Còn gọi là: 
‰ trạng thái biến (state variable) trong ngữ cảnh h−ớng đối t−ợng 
‰ thể hiện biến (instance variable,field) trong Java 
‰ tr−ờng (field,member) trong C++ 
ƒ Ph−ơng thức (method). Còn gọi là: 
‰ hàm thành viên (member function) trong C++ 
‰ tr−ờng (field) trong Java 
ƒ Khi một ph−ơng thức bên trong một đối t−ợng đ−ợc kích hoạt, ta gọi là gửi 
một thông báo (sending a message) đến đối t−ợng 

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 1 Phạm vi của công nghệ phần mềm.pdf