16/02/2014
Môn: Công Nghệ Phần Mềm
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
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
1
16/02/2014
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
2
16/02/2014
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ý Sử dụng hàm nhập, hàm đọc, hàm xuất, hàm ghi 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
GV: Nguyễn Văn Danh
3 Thành phần dữ liệu Hàm đọc Hàm ghi Cần xác định cách thức tổ chức lưu trữ dữ liệu Đọ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ụ
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
3
16/02/2014
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
4
16/02/2014
1. Qui trình công nghệ phần mềm 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.
GV: Nguyễn Văn Danh
1.2. Một số mô hình triển khai xây dựng phần mềm
Mục tiêu Mục tiêu
Kết quả nhận được Kết quả chuyển giao Kết quả nhận được Kết quả chuyển giao
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 Giai đoạn
Thông tin về các hoạt Thông tin về các hoạt động của thế giới thực. động của thế giới thực. Xác định chính xác Xác định chính xác các yêu cầu đặt ra cho các yêu cầu đặt ra cho phần mềm phần mềm Xác định yêu Xác định yêu cầu cầu Danh sách các yêu cầu, Danh sách các yêu cầu, cùng với các thông tin cùng với các thông tin mô tả chi tiết về các yêu mô tả chi tiết về các yêu cầu. cầu.
GV: Nguyễn Văn Danh
Danh sách các yêu cầu Danh sách các yêu cầu cùng thông tin liên quan cùng thông tin liên quan Chương trình thực hiện Chương trình thực hiện được trên máy tính. được trên máy tính. Lập trình Lập trình Tạo lập phần mềm Tạo lập phần mềm mong muốn theo yêu mong muốn theo yêu cầu cầu
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
Thông tin về các hoạt động của thế giới thực. Xác định chính xác các yêu cầu đặt ra cho phần mềm Xác định yêu cầu 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.
GV: Nguyễn Văn Danh
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 Thiết kế 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. Mô hình phần mềm Tạo lập phần mềm mong muốn theo yêu cầu Chương trình phần mềm nguồn với cấu trúc cơ sở dữ liệu tương ứng. Lập trình
5
16/02/2014
1.2.1.3 Mô hình thác nước 4 giai đoạn
Giai đoạn
Mục tiêu
Kết quả nhận được Kết quả chuyển giao
Thông tin về các hoạt động của thế giới thực.
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
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.
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
Phân tích
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)
Mô hình thế giới thực
Thiết kế
Mô tả các thành phần của phần mềm trước khi cài đặt
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.
Mô hình phần mềm
Tạo lập phần mềm mong muốn theo yêu cầu
Lập trình
Chương trình phần mềm nguồn với cấu trúc cơ sở dữ liệu tương ứng.
GV: Nguyễn Văn Danh
1.2.1.4 Mô hình thác nước 5 giai đoạn Bước
Xác định YC
Phân tích
Thiết kế
Triển khai
Vận hành Bảo trì
Thời gian
GV: Nguyễn Văn Danh
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
Thông tin về các hoạt động của thế giới thực.
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
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.
Danh sách các yêu cầu cùng thông tin liên quan
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ế
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)
Mô hình thế giới thực
Thiết kế
Mô tả các thành phần của phần mềm trước khi cài đặt
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
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.
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
Phần mềm đã hoàn thành
Đảm bảo phần mềm vận hành tốt.
Bảo trì
Các phản ảnh của khách hàng trong quá trình sử dụng phần mềm.
GV: Nguyễn Văn Danh
6
16/02/2014
1.2.2 Mô hình bản mẫu phần mềm
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 Hạn chế Tồi Loại bỏ mẫu Đánh giá Tốt Mẫu hoàn chỉnh Chưa Tốt
HT đã hoàn chỉnh?
GV: Nguyễn Văn Danh
Sử dụng thêm pp vòng đời Hoàn chỉnh dự án từ mẫu
1.2.3 Mô hình xoắn ốc
GV: Nguyễn Văn Danh
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.
GV: Nguyễn Văn Danh
7
16/02/2014
2. Các phương pháp phát triển phần mềm
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”
GV: Nguyễn Văn Danh
2.3 Các phương pháp xây dựng phần mềm 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. GV: Nguyễn Văn Danh
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)
GV: Nguyễn Văn Danh
8
16/02/2014
2.3.2 Cách tiến hành: 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
GV: Nguyễn Văn Danh
3. Công cụ và môi trường phát triển phần mềm
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
GV: Nguyễn Văn Danh