16/02/2014<br />
<br />
Môn: Công Nghệ Phần Mềm<br />
Trường CĐ-KT Lý Tự Trọng<br />
Khoa Công Nghệ Thông Tin<br />
Giáo trình tham khảo: Nhập môn công<br />
nghệ phần mềm của Nguyễn Tiến Huy –<br />
ĐH-KHTN<br />
GV: Nguyễn Văn Danh<br />
<br />
Chương I: Tổng quan về CNPM<br />
Sinh viên biết các khái niệm cơ bản về công nghệ phần mềm,<br />
quy trình xây dựng phần mềm.<br />
Phần mềm và lớp phần mềm<br />
Kiến trúc các thành phần của phần mềm<br />
Công nghệ phần mềm<br />
Qui trình công nghệ phần mềm<br />
Phương pháp và công cụ phát triển phần mềm<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
I. Phần mềm và lớp phần mềm<br />
Phần mềm.<br />
Định nghĩa: là hệ thống các chương trình được thực<br />
hiện trên máy tính nhằm hỗ trợ cho các nhà chuyên<br />
môn trong từng lĩnh vực chuyên ngành thực hiện tốt<br />
các thao tác nghiệp vụ của mình.( Đây là quan điểm<br />
của các người sử dụng phần mềm).<br />
- Nhà chuyên môn<br />
- Lĩnh vực chuyên nghành<br />
- Thao tác nghiệp vụ<br />
1.<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
1<br />
<br />
16/02/2014<br />
<br />
2. Lớp phần mềm<br />
Là hệ thống các phần mềm trên cùng lĩnh vực hoạt động<br />
nào đó chúng có cấu trúc & chức năng giống nhau.<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
3. Phân loại phần mềm<br />
Có nhiều cách phần loại phần mềm khác nhau. Phân loại<br />
dụa trên mục đích của người sử dụng phần mềm( trên<br />
góc độ người sử dụng) & phân loại dựa trên mục đích tạo<br />
lập phần mềm.<br />
Phân loại dựa trên mục đích sử dụng phần mềm:<br />
Phần mềm hệ thống<br />
Phần mềm khoa học kỹ thuật<br />
Phần mềm nhúng<br />
Phần mềm ứng dụng web<br />
Phần mềm thương mại ( Quản lý tiền lương, QL nhân viên)<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
II. Phân loại phần mềm<br />
phân loại dựa trên mục đích tạo lập (góc độ người lập<br />
<br />
trình)<br />
Phần mềm theo hơp đồng: là phần mềm viết ra cho một khách<br />
<br />
hàng cụ thể với các yêu cầu cụ thể, có thời gian và chi phí cụ thể<br />
và phải có trách nhiệm bảo trì phần mềm<br />
Phần mềm khung: Là phần mềm được tạo ra nhằm nhanh chóng<br />
triển khai một phần mềm theo hợp đồng được tiện lợi. Đây là<br />
phần mềm khong đưa cho người sử dụng và có những đăc điểm<br />
như sau: không có khách hàng cụ thể, không có yêu cầu cụ thể.<br />
Phần mềm đóng gói: Là phần mềm đươc làm ra để bán rộng rãi<br />
cho mọi người. Đặc điểm là khong có khách hàng cụ thể, không<br />
có các yêu cầu cụ thể, không bảo trì mà chỉ có phân bản nâng cấp.<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
2<br />
<br />
16/02/2014<br />
<br />
III. Kiến trúc phần mềm<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
III. Kiến trúc phần mềm<br />
Bảng tóm tắt các hàm cùng ý nghĩa tương ứng:<br />
STT<br />
<br />
Thành phần<br />
<br />
Hàm<br />
<br />
Ý Nghĩa<br />
<br />
Ghi Chú<br />
<br />
1<br />
<br />
Thành phần<br />
giao diện<br />
<br />
Hàm nhập<br />
Hàm xuất<br />
<br />
Nhập yêu cầu, dữ<br />
liệu nguồn, xuất kết<br />
quả đã xử lý<br />
<br />
Cần xác định hình thức<br />
nhập/xuất và tổ chức dữ<br />
liêu tương ứng<br />
<br />
2<br />
<br />
Thành phần xử<br />
lý<br />
<br />
Hàm kiểm tra<br />
Hàm xử lý<br />
<br />
Kiểm tra tính hợp lệ<br />
dữ liệu. Xử lý tính<br />
toán phát sinh, biến<br />
đổi trên dữ liệu<br />
<br />
Sử dụng hàm nhập, hàm<br />
đọc, hàm xuất, hàm ghi<br />
<br />
3<br />
<br />
Thành phần dữ<br />
liệu<br />
<br />
Hàm đọc<br />
Hàm ghi<br />
<br />
Đọc dữ liệu từ bộ<br />
nhớ phụ vào bộ nhớ<br />
chính. Ghi dl từ bộ<br />
nhớ chính vào bộ<br />
nhớ phụ<br />
<br />
Cần xác định cách thức tổ<br />
chức lưu trữ dữ liệu<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
IV. Chất lượng phần mềm<br />
Một phần mềm được đánh giá có chất lượng tuỳ vào những<br />
yếu tố sau:<br />
Tính đúng đắn: chạy tốt, chạy đúng theo yêu cầu người sử dụng.<br />
Tính tiến hoá: là khả năng đáp ứng của phần mềm khi qui định<br />
<br />
của nghiệp vụ thay đổitheo thời gian, hoặc tốc độ thực hiện theo<br />
máy móc.<br />
Tính hiệu quả: Việc chiếm bộ nhớ trong hay bộ nhớ ngoài sao cho<br />
hiệu quả.<br />
Tính tương thích: Là khả năng tương tác giữa phần mềm với các<br />
phần mềm khác.<br />
Tính tiện dụng: Phần mềm dễ học dễ sử dụng, thân thiện với<br />
người dùng<br />
<br />
Trong 5 tính chất trên, tính chất nào là quan trọng nhất.<br />
GV: Nguyễn Văn Danh<br />
<br />
3<br />
<br />
16/02/2014<br />
<br />
V. Công nghệ phần mềm<br />
Bauer(1969): Việc thiết lập và sử dụng các nguyên lý<br />
<br />
công nghệ đúng đắn để thu được phần mềm một cách<br />
kinh tế vừa tin cậy vừa làm việc hiệu quả trên các<br />
máy thực.<br />
Ghezzi(1991) Một lĩnh vực của khoa học máy tính<br />
liên quan đến việc xây dựng các phần mềm vừa lớn<br />
vừa phức tạp bởi một hay một số nhóm kỹ sư.<br />
Sommervile(1995): là lĩnh vực liên quan đến lý<br />
thuyết, phương pháp và công cụ dùng cho phát triển<br />
phần mềm.<br />
GV: Nguyễn Văn Danh<br />
<br />
V. Công nghệ phần mềm<br />
Kawamura(1995): là lĩnh vực học vấn về các kỹ<br />
thuật, phương pháp luận công nghệ học trong toàn<br />
bộ quy trình phát triển phần mềm nhằm nâng cao cả<br />
chất và lượng của sản xuất phần mềm.<br />
Pressman(1995): là bộ môn tích hợp cả qui trình, các<br />
phương pháp, các công cụ để phát triển phần mềm<br />
máy tính.<br />
Ta có thể đưa định nghĩa tóm tắt như sau:<br />
Công nghệ phần mềm là một nghành khoa học nghiên<br />
cứu về việc xây dựng các phần mềm có chất lượng trong<br />
khoảng thời gian và chi phí hợp lý.<br />
<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
VI. Đối tượng nghiên cứu<br />
CNPM đưa ra 3 đối tượng nghiên cứu chính:<br />
Quy trình công nghệ phần mềm:<br />
o Là hệ thống các giai đoạn mà quá trình phát triển phần<br />
<br />
mềm trải qua.<br />
<br />
o Cần xác định rõ mục tiêu, kết quả nhận được, kết quả<br />
<br />
chuyển giao.<br />
<br />
Phương pháp phát triển phần mềm: hệ thống các<br />
<br />
hướng dẫn để thực hiện một giai đoạn nào đó.<br />
<br />
Công cụ và môi trường phát triển phần mềm: Hệ thống<br />
<br />
các phần mềm trợ giúp trong lĩnh vực xây dựng phần<br />
mềm.<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
4<br />
<br />
16/02/2014<br />
<br />
1. Qui trình công nghệ phần mềm<br />
1.1. Các bước cơ bản xây dựng phần mềm:<br />
1.1.1 Xác định:<br />
Hình thành đề tài ước lượng công việc.<br />
Khách hàng muốn gì?<br />
Thu thập thông tin.<br />
1.1.2 Phát triển:<br />
Xây dựng chương trình.<br />
Kiểm tra tính đúng đắn.<br />
1.1.3 Bảo trì( vận hành)<br />
Giúp chương trình chạy ổn định với điều kiện mới.<br />
Làm phù hợp với hiện tại.<br />
GV: Nguyễn Văn Danh<br />
<br />
1.2. Một số mô hình triển khai xây dựng<br />
phần mềm<br />
1.2.1 Mô hình thác nước<br />
1.2.1.1 Mô hình thác nước 2 giai đoạn<br />
Giai đoạn<br />
<br />
Xác định yêu<br />
cầu<br />
<br />
Lập trình<br />
<br />
Mục tiêu<br />
<br />
Kết quả nhận được<br />
<br />
Kết quả chuyển giao<br />
<br />
Xác định chính xác<br />
các yêu cầu đặt ra cho<br />
phần mềm<br />
<br />
Thông tin về các hoạt<br />
động của thế giới thực.<br />
<br />
Danh sách các yêu cầu,<br />
cùng với các thông tin<br />
mô tả chi tiết về các yêu<br />
cầu.<br />
<br />
Tạo lập phần mềm<br />
mong muốn theo yêu<br />
cầu<br />
<br />
Danh sách các yêu cầu<br />
cùng thông tin liên quan<br />
<br />
Chương trình thực hiện<br />
được trên máy tính.<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
1.2.1.2 Mô hình thác nước 3 giai đoạn<br />
Giai đoạn<br />
<br />
Mục tiêu<br />
<br />
Xác định yêu<br />
cầu<br />
<br />
Xác định chính xác<br />
các yêu cầu đặt ra cho<br />
phần mềm<br />
<br />
Thông tin về các hoạt<br />
động của thế giới thực.<br />
<br />
Kết quả nhận được<br />
<br />
Danh sách các yêu cầu,<br />
cùng với các thông tin<br />
mô tả chi tiết về các yêu<br />
cầu.<br />
<br />
Mô tả các thành phần<br />
của phần mềm<br />
<br />
Danh sách các yêu cầu<br />
cùng thông tin liên quan<br />
<br />
Mô tả thành phần giao<br />
diện.<br />
Mô tả thành phần xử lý.<br />
Mô tả thành phần dữ<br />
liệu.<br />
<br />
Tạo lập phần mềm<br />
mong muốn theo yêu<br />
cầu<br />
<br />
Mô hình phần mềm<br />
<br />
Chương trình phần mềm<br />
nguồn với cấu trúc cơ sở<br />
dữ liệu tương ứng.<br />
<br />
Thiết kế<br />
<br />
Lập trình<br />
<br />
Kết quả chuyển giao<br />
<br />
GV: Nguyễn Văn Danh<br />
<br />
5<br />
<br />