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

9