Tài liệu Công nghệ phần mềm - Chương I: Tổng quan về CNPM - Nguyễn Văn Danh: 16/02/2014
1
Trường CĐ-KT Lý Tự Trọng
Khoa Công Nghệ Thông Tin
Giáo trình tham khảo: Nhập môn công
nghệ phần mềm của Nguyễn Tiến Huy –
ĐH-KHTN
Môn: Công Nghệ Phần Mềm
GV: Nguyễn Văn Danh
Chương I: Tổng quan về CNPM
Sinh viên biết các khái niệm cơ bản về công nghệ phần mềm,
quy trình xây dựng phần mềm.
Phần mềm và lớp phần mềm
Kiến trúc các thành phần của phần mềm
Công nghệ phần mềm
Qui trình công nghệ phần mềm
Phương pháp và công cụ phát triển phần mềm
GV: Nguyễn Văn Danh
I. Phần mềm và lớp phần mềm
1. Phần mềm.
Định nghĩa: là hệ thống các chương trình được thực
hiện 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.( Đây là quan điểm
của các người sử dụng phần mềm).
- Nhà chuyên môn
- Lĩnh vực chuyên nghành
- Thao tác nghiệp vụ
GV: Nguyễn Văn Danh
16/02/2014
2
2. Lớp phần mềm
Là hệ thống các phần mềm trên cùng lĩnh vực hoạt động
nào ...
9 trang |
Chia sẻ: putihuynh11 | Lượt xem: 660 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Công nghệ phần mềm - Chương I: Tổng quan về CNPM - Nguyễn Văn Danh, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
16/02/2014
1
Trường CĐ-KT Lý Tự Trọng
Khoa Công Nghệ Thông Tin
Giáo trình tham khảo: Nhập môn công
nghệ phần mềm của Nguyễn Tiến Huy –
ĐH-KHTN
Môn: Công Nghệ Phần Mềm
GV: Nguyễn Văn Danh
Chương I: Tổng quan về CNPM
Sinh viên biết các khái niệm cơ bản về công nghệ phần mềm,
quy trình xây dựng phần mềm.
Phần mềm và lớp phần mềm
Kiến trúc các thành phần của phần mềm
Công nghệ phần mềm
Qui trình công nghệ phần mềm
Phương pháp và công cụ phát triển phần mềm
GV: Nguyễn Văn Danh
I. Phần mềm và lớp phần mềm
1. Phần mềm.
Định nghĩa: là hệ thống các chương trình được thực
hiện 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.( Đây là quan điểm
của các người sử dụng phần mềm).
- Nhà chuyên môn
- Lĩnh vực chuyên nghành
- Thao tác nghiệp vụ
GV: Nguyễn Văn Danh
16/02/2014
2
2. Lớp phần mềm
Là hệ thống các phần mềm trên cùng lĩnh vực hoạt động
nào đó chúng có cấu trúc & chức năng giống nhau.
GV: Nguyễn Văn Danh
3. Phân loại phần mềm
Có nhiều cách phần loại phần mềm khác nhau. Phân loại
dụa trên mục đích của người sử dụng phần mềm( trên
góc độ người sử dụng) & phân loại dựa trên mục đích tạo
lập phần mềm.
Phân loại dựa trên mục đích sử dụng phần mềm:
Phần mềm hệ thống
Phần mềm khoa học kỹ thuật
Phần mềm nhúng
Phần mềm ứng dụng web
Phần mềm thương mại ( Quản lý tiền lương, QL nhân viên)
GV: Nguyễn Văn Danh
II. Phân loại phần mềm
phân loại dựa trên mục đích tạo lập (góc độ người lập
trình)
Phần mềm theo hơp đồng: là phần mềm viết ra cho một khách
hàng cụ thể với các yêu cầu cụ thể, có thời gian và chi phí cụ thể
và phải có trách nhiệm bảo trì phần mềm
Phần mềm khung: Là phần mềm được tạo ra nhằm nhanh chóng
triển khai một phần mềm theo hợp đồng được tiện lợi. Đây là
phần mềm khong đưa cho người sử dụng và có những đăc điểm
như sau: không có khách hàng cụ thể, không có yêu cầu cụ thể.
Phần mềm đóng gói: Là phần mềm đươc làm ra để bán rộng rãi
cho mọi người. Đặc điểm là khong có khách hàng cụ thể, không
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.
GV: Nguyễn Văn Danh
16/02/2014
3
III. Kiến trúc phần mềm
GV: Nguyễn Văn Danh
III. Kiến trúc phần mềm
Bảng tóm tắt các hàm cùng ý nghĩa tương ứng:
STT Thành phần Hàm Ý Nghĩa Ghi Chú
1
Thành phần
giao diện
Hàm nhập
Hàm xuất
Nhập yêu cầu, dữ
liệu nguồn, xuất kết
quả đã xử lý
Cần xác định hình thức
nhập/xuất và tổ chức dữ
liêu tương ứng
2
Thành phần xử
lý
Hàm kiểm tra
Hàm xử lý
Kiểm tra tính hợp lệ
dữ liệu. Xử lý tính
toán phát sinh, biến
đổi trên dữ liệu
Sử dụng hàm nhập, hàm
đọc, hàm xuất, hàm ghi
3
Thành phần dữ
liệu
Hàm đọc
Hàm ghi
Đọc dữ liệu từ bộ
nhớ phụ vào bộ nhớ
chính. Ghi dl từ bộ
nhớ chính vào bộ
nhớ phụ
Cần xác định cách thức tổ
chức lưu trữ dữ liệu
GV: Nguyễn Văn Danh
IV. Chất lượng phần mềm
Một phần mềm được đánh giá có chất lượng tuỳ vào những
yếu tố sau:
Tính đúng đắn: chạy tốt, chạy đúng theo yêu cầu người sử dụng.
Tính tiến hoá: là khả năng đáp ứng của phần mềm khi qui định
của nghiệp vụ thay đổitheo thời gian, hoặc tốc độ thực hiện theo
máy móc.
Tính hiệu quả: Việc chiếm bộ nhớ trong hay bộ nhớ ngoài sao cho
hiệu quả.
Tính tương thích: Là khả năng tương tác giữa phần mềm với các
phần mềm khác.
Tính tiện dụng: Phần mềm dễ học dễ sử dụng, thân thiện với
người dùng
Trong 5 tính chất trên, tính chất nào là quan trọng nhất.
GV: Nguyễn Văn Danh
16/02/2014
4
V. Công nghệ phần mềm
Bauer(1969): Việc thiết lập và sử dụng các nguyên lý
công nghệ đúng đắn để thu được phần mềm một cách
kinh tế vừa tin cậy vừa làm việc hiệu quả trên các
máy thực.
Ghezzi(1991) Một lĩnh vực của khoa học máy tính
liên quan đến việc xây dựng các phần mềm vừa lớn
vừa phức tạp bởi một hay một số nhóm kỹ sư.
Sommervile(1995): là lĩnh vực liên quan đến lý
thuyết, phương pháp và công cụ dùng cho phát triển
phần mềm.
GV: Nguyễn Văn Danh
V. Công nghệ phần mềm
Kawamura(1995): là lĩnh vực học vấn về các kỹ
thuật, phương pháp luận công nghệ học trong toàn
bộ quy trình phát triển phần mềm nhằm nâng cao cả
chất và lượng của sản xuất phần mềm.
Pressman(1995): là bộ môn tích hợp cả qui trình, các
phương pháp, các công cụ để phát triển phần mềm
máy tính.
Ta có thể đưa định nghĩa tóm tắt như sau:
Công nghệ phần mềm là một nghành khoa học nghiên
cứu về 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ý.
GV: Nguyễn Văn Danh
VI. Đối tượng nghiên cứu
CNPM đưa ra 3 đối tượng nghiên cứu chính:
Quy trình công nghệ phần mềm:
o Là hệ thống các giai đoạn mà quá trình phát triển phần
mềm trải qua.
o Cần xác định rõ mục tiêu, kết quả nhận được, kết quả
chuyển giao.
Phương pháp phát triển phần mềm: hệ thống các
hướng dẫn để thực hiện một giai đoạn nào đó.
Công cụ và môi trường phát triển phần mềm: Hệ thống
các phần mềm trợ giúp trong lĩnh vực xây dựng phần
mềm.
GV: Nguyễn Văn Danh
16/02/2014
5
1. Qui trình công nghệ phần mềm
GV: Nguyễn Văn Danh
1.1. Các bước cơ bản xây dựng phần mềm:
1.1.1 Xác định:
Hình thành đề tài ước lượng công việc.
Khách hàng muốn gì?
Thu thập thông tin.
1.1.2 Phát triển:
Xây dựng chương trình.
Kiểm tra tính đúng đắn.
1.1.3 Bảo trì( vận hành)
Giúp chương trình chạy ổn định với điều kiện mới.
Làm phù hợp với hiện tại.
1.2. Một số mô hình triển khai xây dựng
phần mềm
GV: Nguyễn Văn Danh
1.2.1 Mô hình thác nước
1.2.1.1 Mô hình thác nước 2 giai đoạn
Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao
Xác định yêu
cầu
Xác định chính xác
các yêu cầu đặt ra cho
phần mềm
Thông tin về các hoạt
động của thế giới thực.
Danh sách các yêu cầu,
cùng với các thông tin
mô tả chi tiết về các yêu
cầu.
Lập trình
Tạo lập phần mềm
mong muốn theo yêu
cầu
Danh sách các yêu cầu
cùng thông tin liên quan
Chương trình thực hiện
được trên máy tính.
1.2.1.2 Mô hình thác nước 3 giai đoạn
GV: Nguyễn Văn Danh
Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao
Xác định yêu
cầu
Xác định chính xác
các yêu cầu đặt ra cho
phần mềm
Thông tin về các hoạt
động của thế giới thực.
Danh sách các yêu cầu,
cùng với các thông tin
mô tả chi tiết về các yêu
cầu.
Thiết kế
Mô tả các thành phần
của phần mềm
Danh sách các yêu cầu
cùng thông tin liên quan
Mô 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.
Lập trình
Tạo lập phần mềm
mong muốn theo yêu
cầu
Mô hình phần mềm Chương trình phần mềm
nguồn với cấu trúc cơ sở
dữ liệu tương ứng.
16/02/2014
6
1.2.1.3 Mô hình thác nước 4 giai đoạn
GV: Nguyễn Văn Danh
Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao
Xác định yêu
cầu
Xác định chính xác các
yêu cầu đặt ra cho phần
mềm
Thông tin về các hoạt động
của thế giới thực.
Danh sách các yêu cầu,
cùng với các thông tin mô tả
chi tiết về các yêu cầu.
Phân tích
Mô tả thế giới thực thông
qua các mô hình
Danh sách các yêu cầu
cùng thông tin liên quan
Mô hình xử lý( hệ thống các
công việc cùng với quan hệ
giữa chúng).
Mô hình dữ liệu(ERD)
Thiết kế
Mô tả các thành phần của
phần mềm trước khi cài
đặt
Mô hình thế giới thực Mô 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.
Lập trình
Tạo lập phần mềm mong
muốn theo yêu cầu
Mô hình phần mềm Chương trình phần mềm
nguồn với cấu trúc cơ sở dữ
liệu tương ứng.
1.2.1.4 Mô hình thác nước 5 giai đoạn
GV: Nguyễn Văn Danh
Xác định YC
Phân tích
Thiết kế
Triển khai
Vận hành
Bảo trì
Thời gian
Bước
1.2.1.4 Mô hình thác nước 5 giai đoạn
GV: Nguyễn Văn Danh
Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao
Xác định yêu
cầu
Xác định chính xác các
yêu cầu đặt ra cho phần
mềm
Thông tin về các hoạt động
của thế giới thực.
Danh sách các yêu cầu,
cùng với các thông tin mô tả
chi tiết về các yêu cầu.
Phân tích
Mô tả thế giới thực thông
qua các mô hình trước
khi thiết kế
Danh sách các yêu cầu
cùng thông tin liên quan
Mô hình xử lý( hệ thống các
công việc cùng với quan hệ
giữa chúng).
Mô hình dữ liệu(ERD)
Thiết kế
Mô tả các thành phần của
phần mềm trước khi cài
đặt
Mô hình thế giới thực Mô 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.
Triển khai
Tạo lập phần mềm mong
muốn theo yêu cầu.
Kiểm tra độ tin cậy
chương trình
Mô hình phần mềm
Danh sách các yêu cầu cần
cho việc kiểm tra PM
Chương trình phần mềm
nguồn với cấu trúc cơ sở dữ
liệu tương ứng.
Bảo trì
Đảm bảo phần mềm vận
hành tốt.
Phần mềm đã hoàn thành Các phản ảnh của khách
hàng trong quá trình sử
dụng phần mềm.
16/02/2014
7
1.2.2 Mô hình bản mẫu phần mềm
GV: Nguyễn Văn Danh
Khảo sát, thu thập thông tin sơ bộ
Xây dựng mẫu ban đầu
Làm mịn mẫu
Khảo sát, lấy ý kiến người dùng
Đánh giá
Mẫu hoàn chỉnh
HT đã
hoàn chỉnh?
Hoàn chỉnh
dự án
từ mẫu
Sử dụng
thêm pp
vò g đời
Loại bỏ mẫu
Hạn chế Tồi
Tốt
Chưa Tốt
1.2.3 Mô hình xoắn ốc
GV: Nguyễn Văn Danh
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design Detailed
design
Code
Unit test
Integr ation
test
Acceptance
testService Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
2. Các phương pháp phát triển phần mềm
GV: Nguyễn Văn Danh
2.1 Tổng quan: có nhiều phương pháp phát triển phần mềm.
Mỗi PP có những hướng dẫn cụ thể các công việc cần thực hiện
trong từng giai đoạn trong qui trình xây dựng phần mềm.
16/02/2014
8
2. Các phương pháp phát triển phần mềm
GV: Nguyễn Văn Danh
2.2 Phân loại: Gồm 2 loại dựa vào tính chất của công việc:
Phương pháp xây dựng:
Phương pháp hướng chức năng.
Phương pháp hướng dữ liệu.
Phương pháp hướng đối tượng.
Phương pháp tổ chức quản lý:
Xây dựng phương án
Tổ chức nhân sự
Ước lượng rủi ro
Lập và theo dõi kế hoạch triển khai
Chúng ta chỉ quan tâm đến các phương pháp xây dựng. Phần còn
lại anh chị tham khảo giáo trình” Quản lý dự án xây dựng các hệ
thống thông tin”
2.3 Các phương pháp xây dựng phần
mềm
GV: Nguyễn Văn Danh
2.3.1 Cách tiếp cận:
a. Từ trên xuống: Đây là cách giải quyết vấn đề theo
hướng phân tích.
Ta bắt đầu từ những thành phần chính của hệ thống sau
đó các thành phần này sẽ được phân tích thành các phần
chi tiết và cụ thể hơn. Quá trình này tiếp diễn cho đến
khi đáp ứng ý muốn của nhà xây dựng phần mềm.
b. Từ dưới lên:
Ngược lại với PP trên, giải quyết theo hướng tổng hợp.
2.3.2 Cách tiến hành:
GV: Nguyễn Văn Danh
2.3.2.1 Phương pháp hướng chức năng:
Áp dụng nguyên lý chia để trị
Chia các công việc lớn mà hệ thống cần thực hiện
thành các công việc nhỏ hơn và độc lập nhau.
2.3.2.2 Phương pháp hướng dữ liệu:
Chú trọng nhiều đến thành phần dữ liệu trong hệ thống.
Tách dữ liệu ra khỏi quá trình xử lí.
Tách biệt cơ sở dữ liệu và các ứng dụng (tổ chức cơ sở
dữ liệu riêng)
16/02/2014
9
GV: Nguyễn Văn Danh
2.3.2.3 Phương pháp hướng đối tượng:
Một hệ thống phần mềm là tập hợp các đối tượng có khả
năng tương tác với nhau.
Hệ thống được chia thành các đối tượng bao gồm cả dữ
liệu và xử lý -> cả hệ thống là sự ghép nối các đối tượng
bằng truyền thông
2.3.2 Cách tiến hành:
3. Công cụ và môi trường phát triển phần mềm
GV: Nguyễn Văn Danh
3.1 Khái niệm: Các công cụ và môi trường là các phần mềm
hỗ trợ chính người phát triển trong quá trình xây dựng phần
mềm.
3.2 Phần mềm hỗ trợ thực hiện các giai đoạn:
3.2.1 Hỗ trợ phân tích: Win A&D, Analyst Pro,
3.2.2 Phần mềm hỗ trợ thiết kế: Quick UML, Power
Designer , Oracle Designer,
3.2.3 Phần mềm hỗ trợ lập trình:
3.2.4 Phần mềm kiểm chứng
3.2.5 Phần mềm lập kế hoạch
Các file đính kèm theo tài liệu này:
- chuong1_8023_1996698.pdf