CÔNG NGHỆ PHẦN MỀM
ThS. Đinh Thị Lương
05/10/21
1
Giới thiệu
Số tiết: 45
Điểm tổng kết
05/10/21
Semina giữa kỳ: 30%
Thi cuối kỳ: 70%
2
Tài liệu tham khảo
R.
Pressman,
"Software
Engineering A
Practitioner's Approach", 2001
Ian Sommerville’s , “Software Engineering 7th
Ed.”, 2005
Các giáo trình, bài giảng môn Công nghệ Phần
mềm của Khoa Công nghệ Thông tin của các
trường Đại học trên thế giới.
05/10/21
3
Tài liệu tham khảo
R.
Pressman,
"Software
Engineering A
Practitioner's Approach", 2001
Ian Sommerville’s , “Software Engineering 7th
Ed.”, 2005
Các giáo trình, bài giảng môn Công nghệ Phần
mềm của Khoa Công nghệ Thông tin của các
trường Đại học trên thế giới.
05/10/21
4
Các vấn đề liên quan
Điều kiện tiên quyết:
Có kiến thức về ngơn ngữ lập trình và đã từng lập
trình các ứng dụng cơ bản
Có khả năng áp dụng những cấu trúc dữ liệu và giải
thuật.
Có hiểu biết về kiến trúc máy tính, mạng máy tính.
5
Các vấn đề liên quan (tt1)
Mục tiêu môn học: giúp sinh viên
05/10/21
Hiểu và giải thích được quy trình phát triển phần mềm
Phân tích được các yêu cầu của người sử dụng
Lựa chọn một mơ hình quy trình phát triển phần mềm
thích hợp cho một sản phẩm cụ thể.
Giải thích tầm quan trọng của các hoạt động đánh giá
chất lượng phần mềm.
Biết được phải tạo ra những kết quả gì trong từng
giai đoạn của quy trình phát triển phần mềm.
Áp dụng các mơ hình thiết kế hệ thống thích hợp cho
từng sản phẩm cụ thể.
Sử dụng các CASE Tool để hỗ trợ quá trình phát triển
phần mềm.
6
Nội dung chương trình
Chương 1 Tổng quan về cơng nghệ phần mềm
Giới thiệu về một số khái niệm cơ bản
Thế nào là một phần mềm tốt?
05/10/21
Thách thức đối với cơng nghệ phần mềm?
Vấn đề về tính chun nghiệp và đúng quy tắc
Bài tập
7
Nội dung chương trình (tt1)
Chương 2 Quy trình xây dựng phần mềm
05/10/21
Một số mơ hình phát triển phần mềm
Các hoạt động trong quy trình phần mềm
Bài tập
8
Nội dung chương trình (tt2)
Chương 3
05/10/21
Yêu cầu hệ thống
Yêu cầu hệ thống
Yêu cầu của người sử dụng
Tài liệu đặc tả yêu cầu
Bài tập
9
Nội dung chương trình (tt3)
Chương 4
05/10/21
Quy trình xác định yêu cầu
Phân tích khả thi
Phát hiện và phân tích yêu cầu
Đánh giá yêu cầu
Lập kế hoạch quản lý yêu cầu
Bài tập
10
Nội dung chương trình (tt5)
Chương 5
05/10/21
Các mơ hình hệ thống
Mơ hình ngữ cảnh
Mơ hình ứng xử
Mơ hình dữ liệu
Mơ hình đối tượng
Phương pháp hướng cấu trúc
Bài tập
11
Nội dung chương trình (tt6)
Chương 6 Thiết kế kiến trúc
05/10/21
Thiết kế kiến trúc là gì?
Tổ chức hệ thống
Phân rã hệ thống
Các chiến lược điều khiển
Các kiến trúc tham chiếu
Bài tập
12
Nội dung chương trình (tt7)
Chương 7
05/10/21
Thiết kế giao diện người dùng
Giao diện người dùng
Quy trình thiết kế giao diện người dùng
Bài tập
13
Nội dung chương trình (tt8)
Chương 8
05/10/21
Cải tiến phần mềm
Bảo trì phần mềm
Các quy trình cải tiến phần mềm
Tái kỹ nghệ hệ thống
Bài tập
14
Nội dung chương trình (tt9)
Chương 9
05/10/21
Kiểm thử phần mềm
Quy trình kiểm thử
Kiểm thử hệ thống
Bài tập
15
Nội dung chương trình (tt10)
Chương 10
05/10/21
Quản lý dự án
Định nghĩa về quản lý dự án
Các hoạt động quản lý
Lập kế hoạch dự án
Lịch biểu của dự án
Quản lý rủi ro
Bài tập
16
Nội dung chương trình (tt11)
Chương 11
Chuẩn và các quy trình hoạt
động trong cơng nghiệp phần mềm
Các quy trình hoạt động
Các vai trò trong hoạt động sản xuất phần mềm
05/10/21
Khái niệm vai trị
Các vai trị
Hệ thống chuẩn trong cơng nghiệp phần mềm
17
Chương 1
Tổng quan về
công nghệ phần mềm
Giới thiệu
Ngày nay, tất cả các nước phát triển đều phụ
thuộc chủ yếu vào các hệ thống phần mềm. Và
càng ngày càng có nhiều hệ thống được kiểm
sốt bởi phần mềm. Do đó, việc xây dựng và bảo
trì hệ thống phần mềm một cách hiệu quả là yêu
cầu cần thiết đối với nền kinh tế toàn cầu và của
từng quốc gia.
Khái niệm về công nghệ phần mềm được đưa ra
lần đầu tiên vào năm 1968 tại hội nghị thảo luận
về khủng hoảng phần mềm. Công nghệ phần
mềm đề cập tới các lý thuyết, phương thức và
công cụ để xây dựng phần mềm chuyên nghiệp,
mang lại lợi nhuận cao.
05/10/21
19
Giới thiệu (tt1)
Trong chương đầu tiên, chúng ta sẽ tìm hiểu về
một số khái niệm cơ bản có liên quan tới phần
mềm và công nghệ phần mềm. Để từ đó, chúng
ta có những hiểu biết cơ bản để tiếp tục nghiên
cứu các chương tiếp theo.
Ngồi ra, quy trình xây dựng phần mềm đòi hỏi
phải tuân thủ các nguyên tắc vơ cùng chặt chẽ.
Do đó, trong phần cuối chương này, chúng ta sẽ
tìm hiểu về những yêu cầu căn bản đối với một
kỹ sư phần mềm.
05/10/21
20
Mục tiêu
Hiểu rõ các khái niệm liên quan đến phần mềm
và cơng nghệ phần mềm được trình bày trong
phần 1.
Biết được một số nguyên tắc cơ bản về tính
chuyên nghiệp và đúng nguyên tắc đối với kỹ sư
phần mềm.
Có thể tham khảo thêm về một số nguyên tắc của
“Code of Ethics” để hiểu rõ hơn về các nguyên
tắc đối với một kỹ sư phần mềm.
05/10/21
21
Một số khái niệm cơ bản
Khi tìm hiểu về công nghệ phần mềm, chúng ta
thường đặt ra một số câu hỏi sau:
05/10/21
Phần mềm là gì?
Cơng nghệ phần mềm là gì?
Sự khác biệt giữa cơng nghệ phần mềm và khoa học máy
tính?
Sự khác biệt giữa cơng nghệ phần mềm và cơng nghệ hệ
thống?
Quy trình phần mềm là gì?
Mơ hình quy trình phát triển phần mềm là gì?
Chi phí của cơng nghệ phần mềm bao gồm những gì?
Các phương pháp cơng nghệ phần mềm là gì?
CASE (Computer-Aided Software Engineering) là gì?
Thế nào là một phần mềm tốt?
Những thách thức chính đối với công nghệ phần mềm?
22
Một số khái niệm cơ bản (tt1)
Phần mềm là gì?
Phần mềm là các chương trình máy tính và những tài liệu
liên quan đến nó như: các u cầu, mơ hình thiết kế, tài liệu
hướng dẫn sử dụng… Do đó, chúng ta thấy rằng đặc điểm
của phần mềm là trừu tượng và vơ hình.
Các sản phẩm phần mềm được chia thành 2 loại:
Sản phẩm đại trà (Generic Product):
Sản phầm theo đơn đặt hàng (Bespoke Product hoặc
Customised Product):
05/10/21
được phát triển để bán ra ngoài thị trường, đối tượng người sử dụng
là tương đối đa dạng và phong phú. Những sản phẩm phần mềm
thuộc loại này thường là những phần mềm dành cho máy PC.
được phát triển cho một khách hàng riêng lẻ theo yêu cầu. Ví dụ:
Những hệ thống phần mềm chuyên dụng, hỗ trợ nghiệp vụ cho một
doanh nghiệp riêng lẻ …
23
Một số khái niệm cơ bản (tt2)
Công nghệ phần mềm là gì?
05/10/21
Cơng nghệ phần mềm là những quy tắc cơng nghệ
(engineering discipline) có liên quan đến tất cả các
khía cạnh của quá trình sản xuất phần mềm.
Các kỹ sư phần mềm nên tuân theo một phương
pháp luận có hệ thống và có tổ chức trong cơng việc
của họ. Đồng thời, họ nên sử dụng các công cụ và kỹ
thuật thích hợp với vấn đề cần giải quyết, các ràng
buộc và tài nguyên sẵn có.
24
Một số khái niệm cơ bản (tt3)
Sự khác biệt giữa cơng nghệ phần mềm và khoa
học máy tính?
05/10/21
Khoa học máy tính đề cấp tới lý thuyết và những vấn
đề cơ bản; cịn cơng nghệ phần mềm đề cập tới các
hoạt động xây dựng và đưa ra một phần mềm hữu
ích.
Khi sự phát triển của phần mềm trở lên mạnh mẽ thì
các lý thuyết của khoa học máy tính vẫn khơng đủ để
đóng vai trị là nền tảng hồn thiện cho công nghệ
phần mềm.
25