Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm cung cấp cho người học các kiến thức: 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.
Trang 1Trường CĐ-KT Lý Tự Trọng
Khoa Công Nghệ Thông Tin
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ụ
Trang 22 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
Trang 3III 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
Trang 4V 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:
oLà hệ thống các giai đoạn mà quá trình phát triển phần
mềm trải qua
oCầ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
Trang 51 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
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
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
Trang 61.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
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ử
Trang 71.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 đã
dự án
từ mẫu
Sử dụng
thêm pp
vòng đời
Loại bỏ mẫu Tồi Hạn chế
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 test Service 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
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
Trang 82 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:
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)
Trang 9GV: 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