Insert or Drag and Drop your Image
BÀI GIẢNG
CÔNG NGHỆ PHẦN MỀM
Jens Martensson
Insert or Drag and Drop your Image
GIỚI THIỆU TỔNG QUAN VỀ CÔNG NGHỆ PHẦN
MỀM
Jens Martensson
NỘI DUNG
1.
Các khái niệm cơ bản
2.
Quy trình cơng nghệ phần mềm
3.
Các phương pháp xây dựng phần mềm
4.
Công cụ & môi trường phát triển phần mềm
5.
Yêu cầu đối với kỹ sư phần mềm
Jens Martensson
3
1.1. CÁC KHÁI NIỆM CƠ BẢN
•
Phần mềm
•
Chất lượng phần mềm
•
Cơng nghệ Phần mềm
Jens Martensson
4
PHẦN MỀM
•
Các khái niệm
•
Chương trình máy tính: Các chỉ thị để máy tính làm việc.
•
Phần mềm: Các chương trình hỗ trợ thực hiện cơng iệc theo lĩnh vực
chun ngành.
•
Nhiệm vụ chính yếu của phần mềm: Thực hiện các cơng việc dễ dàng và
nhanh chóng.
•
Hoạt động của phần mềm: Mơ phỏng lại các họat động của thế giới thực.
•
Q trình sử dụng một phần mềm: Thực hiện các công việc trên máy tính
để hồn tất cơng việc.
•
Lớp phần mềm: Các phần mềm cùng lĩnh vực họat động
Jens Martensson
5
PHẦN MỀM
•
Mục tiêu của ngành cơng nghệ phần mềm: Xây dựng được các phần mềm có chất lượng, dễ
dàng tích hợp
Jens Martensson
6
PHẦN MỀM
•
Phân loại:
•
Nhóm 1: Phần mềm hệ thống.
•
•
•
Đảm nhận cơng việc tích hợp và điều khiển các thiết bị phần cứng,
Tạo ra môi trường thuận lợi để các phần mềm khác và người sử dụng
thao tác trên đó
Nhóm 2: Phần mềm ứng dụng:
•
Được dùng để thực hiện cơng việc xác định,
•
Một chương trình đơn giản (như chương trình xem ảnh)
•
Nhóm các chương trình cùng tương tác với nhau để thực hiện một công
vịệc, vd, Microsoft office.
Jens Martensson
7
PHẦN MỀM
•
Phân loại:
Ngồi ra, phần mềm cịn được chia làm 2 loại:
•
Sản phẩm đại trà: Phát triển để bán ra ngồi thị trường.
•
Sản phẩm theo đơn đặt hàng: Phát triển theo yêu cầu cho
khách hàng riêng lẻ. Ví dụ: Phần mềm chuyên dụng cho doanh
nghiệp
Jens Martensson
8
PHẦN MỀM
•
Kiến trúc phần mềm: gồm 3 thành phần
Jens Martensson
9
PHẦN MỀM
•
Kiến trúc phần mềm: gồm 3 thành phần
•
Thành phần Giao tiếp (giao diện)
•
•
•
•
Các phương thức nhập/xuất dữ liệu và hình thức trình bày, tổ chức lưu
trữ dữ liệu
Mục tiêu đưa dữ liệu từ thế giới bên ngoài vào phần mềm và ngược lại.
Tiếp nhận yêu cầu, cung cấp nguồn dữ liệu liên quan đến việc thực hiện
yêu cầu.
Trình bày các kết quả thực hiện các yêu cầu cho người dùng
Jens Martensson
10
PHẦN MỀM
•
Kiến trúc phần mềm: gồm 3 thành phần
•
Thành phần dữ liệu
•
•
Các chức năng đọc ghi dữ liệu và mơ hình tổ chức dữ liệu tương ứng.
Mục tiêu chính là chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ,
bao gồm:
ü
Lưu trữ các kết quả đã xử lý.
ü
Truy xuất lại các dữ liệu đã lưu trữ phục vụ cho các hàm xử lý tương
ứng
Jens Martensson
11
PHẦN MỀM
•
Kiến trúc phần mềm: gồm 3 thành phần
•
Thành phần xử lý:
•
Các chức năng về xử lý tính tốn, biến đổi dữ liệu.
•
Kiểm tra tính hợp lệ của dữ liệu nguồn theo ràng buộc
•
Xử lý tạo kết quả mong đợi theo quy định
•
Xuất kết quả qua giao diện hay lưu trữ lại
Jens Martensson
12
1.1.2. CHT LNG PHN MM
ã
ôPhn mm cht lng l phn mềm phải đáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có
khả năng bảo trì, đáng tin cậy, và được người sử dụng chấp nhận».
Jens Martensson
13
1.1.2. CHẤT LƢỢNG PHẦN MỀM
Jens Martensson
14
1.1.2. CHẤT LƯỢNG PHẦN MỀM
•
Tính đúng đắn:
•
Thực hiện đầy đủ và chính xác các u cầu.
•
Tính đúng đắn được xác định trên cơ sở:
•
Tính đúng đắn của giải pháp xử lý / thuật tốn,
•
Tính đúng đắn của tập mã lệnh hoặc nội dung của chương trình,
•
•
Tính đúng đắn qua kiểm thử, việc áp dụng chương trình trong một
khoảng thời gian dài, trên diện rộng và với tần suất sử dụng cao.
Tính tương đương của chương trình với thuật tốn.
Jens Martensson
15
1.1.2. CHẤT LƢỢNG PHẦN MỀM
•
•
Tính tiến hóa
•
Sản phẩm có thể mở rộng, cập nhật thêm chức năng mới dễ dàng.
•
Dễ dàng cập nhật các quy trình nghiệp vụ.
Tính hiệu quả
•
Hiệu quả kinh tế, ý nghĩa, giá trị thu được.
•
Hiệu quả sử dụng (tốc độ xử lý của phần mềm …)
•
Hiệu quả kỹ thuật (tối ưu tài nguyên của máy tính: CPU, bộ nhớ, không
gian xử lý )
Jens Martensson
16
1.1.2. CHẤT LƢỢNG PHẦN MỀM
•
Tính tiện dụng và thân thiện
•
Tính cơ động và linh hoạt của sản phẩm
•
Cảm nhận (về mặt tâm lý) của người dùng về:
•
Dễ học, có giao diện trực quan tự nhiên.
•
Các chức năng của sản phẩm dễ thao tác.
Jens Martensson
17
1.1.2. CHẤT LƢỢNG PHẦN MỀM
•
•
Tính tương thích:
•
Khả năng trao đổi dữ liệu với các phần mềm khác (như: nhận danh sách
nhân viên từ tập tin Excel …)
•
Gồm Giao tiếp nội bộ và giao tiếp bên ngồi.
Tính tái sử dụng:
•
Có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ làm việc khác nhau,
•
Áp dụng về mặt kỹ thuật hay phối hợp về mặt sử dụng với các phần mềm
khác.
Jens Martensson
18
1.1.3. CƠNG NGHỆ PHẦN MỀM
•
Sự ra đời của cơng nghệ phần mềm
•
Từ 1950, máy tính điện tử ra đời, các phần mềm được tạo với số lượng rất
ít, chủ yếu cho quốc phịng.
•
Đến 1960, phần mềm được ứng dụng rộng rãi trong nhiều lĩnh vực
•
Năm 1968 “khủng hoảng phần mềm” do:
•
•
Nhu cầu số lượng phần mềm tăng nhanh do sự phát triển của phần cứng
Các phần mềm dùng mắc nhiều khuyết điểm như: Thiếu chính xác, khơng ổn
định, bảo trì nâng cấp khó khăn, khó chuyển đổi dữ
Jens Martensson
19
1.1.3. CƠNG NGHỆ PHẦN MỀM
•
Sự ra đời của cơng nghệ phần mềm
•
Hội nghị được triệu tập và đưa ra kết luận:
•
•
Tăng số lượng phần mềm trong tương lai.
Khắc phục các khuyết điểm của phương pháp xây dựng phần mềm hiện
tại:
ü
Xây dựng phần mềm theo cảm tính, thơ sơ đơn giản
ü
Chỉ tập trung vào việc lập trình khơng quan tâm các giai đoạn trước khi lập trình
(khảo sát hiện trạng, phân tích u cầu, thiết kế …)
ü
Phương pháp thủ cơng: Cơng cụ hỗ trợ chính khi xây dựng phần mềm là trình biên
dịch (compiler)
Jens Martensson
20
Định nghĩa
•
•
CNPM là một lĩnh vực nghiên cứu của tin học nhằm đề xuất các nguyên lý, phương pháp, công cụ,
cách tiếp cận phục vụ cho việc thiết kế, hiện thực các phần mềm đạt được đầy đủ các yêu cầu về chất
lượng phần mềm” Hay:
CNPM là một ngà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ý
Jens Martensson
21
Định nghĩa
•
Định nghĩa 1: Cơng nghệ phần mềm là là một lĩnh vực nghiên cứu của tin học nhằm đề xuất các
nguyên lý, phương pháp, công cụ, cách tiếp cận phục vụ cho việc thiết kế, hiện thực các phần
mềm đạt được đầy đủ các yêu cầu về chất lượng phần mềm.
Định nghĩa 2: CNPM là một ngà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ý.
Jens Martensson
22
ĐỐI TƯỢNG NGHIÊN CỨU
•
•
•
Quy trình CNPM: Hệ thống các giai đoạn phát triển phần mềm, xác định rõ mục tiêu, kết quả chuyển
giao cho giai đoạn kết tiếp.
Phươnng pháp phát triển phần mềm: Hệ thống các hướng dẫn cho phép từng bước thực hiện các
giai đoạn trong quy trình CNPM.
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
Jens Martensson
23
Khác nhau giữa CN PHẦN MỀM & KH MÁY TÍNH
•
Khi phần mềm càng được phát triển mạnh 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 CNPM
Jens Martensson
24
1.2. QUY TRÌNH CƠNG NGHỆ PHẦN MỀM
•
Bước xác định:
•
Đây là bước hình thành dự án
•
Xác định được vai trị của phần mềm, ước lượng công việc, lập lịch
biểu và phân chia cơng việc.
•
Xác định được u cầu của khách hàng. Các yêu cầu được thu thập đầy
đủ, phân tích rộng và sâu.
•
Cơng cụ sử dụng: Là các sơ đồ phản ánh các thành phần của hệ thống và
mối liên quan giữa chúng.
Jens Martensson
25