công nghệ phần mềm Hệ thống dựa vào máy tính Là tập hợp các phần tử được tổ chức để thực hiện nhiệm vụ thông qua việc xử lý thông tin bằng máy tính. Hệ thống dựa vào máy tính có các thành phần: Phần cứng: Gồm các thiết bị điện tử cung cấp năng lực tính toán, các thiết bị kết nối (thiết bị mạng),… Phần mềm. Cơ sở dữ liệu. Các thủ tục (về nghiệp vụ, về hệ thống,…). Con người. Tài liệu.
Trang 1Chuyên đề:
CƠ SỞ CÔNG NGHỆ PHẦN MỀM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
THS Vũ Thị Thu Hà Email: vuha94@gmail.com
Mob: 0977962996
Trang 2 Nội dung trình bày:
3.1 Tổng quan về công nghệ hệ thống (3 tiết)
3.2 Thu thập và phân tích yêu cầu (3 tiết)
3.3 Đặc tả yêu cầu (3 tiết)
3.4 Thẩm định yêu cầu và quản lý thay đổi (2 tiết)
Kiểm tra giữa kỳ (1 tiết)
Trang 3─ Quy trình Công nghệ hệ thống được gọi là Kỹ nghệ quy trình
nghiệp vụ khi công việc chỉ tập trung vào hoạt động nghiệp vụ của một tổ chức hay doanh nghiệp Còn khi xây dựng một
sản phẩm thì quy trình này trở thành Kỹ nghệ sản phẩm.
─ Cả quy trình nghiệp vụ và kỹ nghệ sản phẩm đều nhằm thiết
Chương 3 TỔNG QUAN VỀ CÔNG NGHỆ HỆ THỐNG
VÀ KỸ THUẬT YÊU CẦU PHẦN MỀM
Trang 4– Có quan hệ với môi
trường xung quanh.
Phần tử
Phần tử
Phần
n tử
Phần tử
Trang 5– HT mạng máy tính : gồm
các Máy tính, các thiết bị mạng,… liên kết với
nhau bằng dây mạng
3.1 Tổng quan về công nghệ hệ thống
3.1.1 Hệ thống và hệ thống dựa vào máy tính (tiếp…)
Trang 6Khung nhìn
cụ thể Khung nhìn chi tiết
Trang 7d) Hệ thống dựa vào máy tính
– Là tập hợp các phần tử được tổ chức để thực hiện
nhiệm vụ thông qua việc xử lý thông tin bằng máy tính.– Hệ thống dựa vào máy tính có các thành phần:
Phần cứng: Gồm các thiết bị điện tử cung cấp năng
lực tính toán, các thiết bị kết nối (thiết bị mạng),…
Trang 8e) Mô hình, thông tin, sản phẩm
Mô hình:
─ Mô hình (model) là một hình ảnh (hay biểu diễn) của
một hệ thống thực, được diễn tả bởi một hình thức hiểu được nào đó (văn bản, phương trình, bảng, dồ
thị, biểu đồ).
─ Mô hình được diễn tả:
Ở một mức độ trừu tượng hóa nào đó,
Trang 9─ Ví dụ 1 : Mô hình hệ thống thông tin
Mô hình HTTT quản lý
3.1.1 Hệ thống và hệ thống dựa vào máy tính
e) Mô hình, thông tin, sản phẩm (tiếp…)
Trang 10Nhà cung cấp
Số hiệu NCC Tên nhà cung cấp Địa chỉ
0 *
Cung ứng
0 *
Mặt hàng
Mã hàng Tên hàng Quy cách Đơn giá
Địa điểm
Phòng
Thời khóa biểu
Phòng Tên môn
Mã lớp Ngày giờ
Môn học
Mã lớp
Trang 11 Mô hình (tiếp…)
─ Trừu tượng hóa: Có 2 mức độ:
Mức logic (dùng cho giai đoạn phân tích HT):
Mô tả bản chất, mục đích hoạt động của HT,
Trả lời câu hỏi “là gì?”, như chức năng gì?, thông
tin gì? Xử lý gì?
Mức vật lý (dùng cho giai đoạn thiết kế HT):
Quan tâm đến phương pháp, công cụ, tác nhân,
… (Có yếu tố vật lý như Bộ phận thực hiện, trang thiết bị,…)
3.1.1 Hệ thống và hệ thống dựa vào máy tính
e) Mô hình, thông tin, sản phẩm (tiếp…)
Trang 12 Mô hình (tiếp…)
─ Ví dụ 1: Trừu tượng hóa mức logic
Trang 13 Mô hình (tiếp…)
─ Ví dụ 2: Trừu tượng hóa mức vật lý
3.1.1 Hệ thống và hệ thống dựa vào máy tính
e) Mô hình, thông tin, sản phẩm (tiếp…)
Trang 14 Thông tin
─ Thông tin dùng trong các hệ thống được phân làm 2
loại:
Thông tin tự nhiên: Là các thông tin sinh ra và
thu nhận bởi con người trực tiếp bằng các cơ quan biểu đạt hay cảm thụ tự nhiên của con người (tai, miệng, mắt)
Thông tin có cấu trúc (gọi là dữ liệu): Là các
thông tin chắt lọc từ thông tin tự nhiên và được cấu trúc lại cho ngắn gọn, chặt chẽ hơn Ví dụ các dãy số, bảng số liệu, hình vẽ, biểu đồ
Trang 15 Sản phẩm
– Sản phẩm trong phạm vi của kỹ nghệ phần mềm chính
là phần mềm được xây dựng bởi các nhà phát triển theo yêu cầu của khách hàng/người dùng
─ Sản phẩm là cái đích cuối cùng mà nhà phát triển và
khách hàng mong đợi và đáp ứng được các yêu cầu chất lượng
─ Việc sản xuất các phần mềm tuân theo các quy trình
chuẩn bởi các mô hình đã nêu trong Chương 1
3.1.1 Hệ thống và hệ thống dựa vào máy tính
e) Mô hình, thông tin, sản phẩm (tiếp…)
Trang 16 Có 2 kỹ nghệ mô hình hóa:
Kỹ nghệ hướng nghiệp vụ
Kỹ nghệ hướng sản phẩm
a)Kỹ nghệ hướng nghiệp vụ
─Mục đích của kỹ nghệ hướng nghiệp vụ là định nghĩa các kiến trúc cho phép sử dụng thông tin hiệu quả trong công việc.
─Phân tích bài toán nghiệp vụ liên quan đến việc xác định chi tiết dữ liệu và các yêu cầu chức năng trong phạm vi nghiệp vụ đã chọn; xác định khả năng tương tác giữa chúng.
─Có 3 kiến trúc cần phân tích và thiết kế:
Trang 17 Kiến trúc dữ liệu:
─ Kiến trúc dữ liệu cung cấp một khung làm việc cho các
nhu cầu thông tin của một công việc hoặc một chức năng nghiệp vụ
─ Các phần tử của kiến trúc này chính là các đối tượng
dữ liệu được sử dụng bởi công việc.
─ Một đối tượng dữ liệu chứa một tập các thuộc tính xác
định các khía cạnh, đặc tính, chất lượng hay mô tả về
dữ liệu
─ Ví dụ: Định nghĩa về đối tượng Khách hàng sẽ có các
thuộc tính: Họ tên, địa chỉ, sản phẩm/hàng hóa quan
3.1 Tổng quan về công nghệ hệ thống
3.1.2 Kỹ nghệ mô hình hóa (tiếp…)
Trang 18─ Trong ngữ cảnh rộng hơn, kiến trúc ứng dụng còn có
vai trò của con người và các thủ tục nghiệp vụ chưa được tự động hóa
Trang 20– Cơ sở hạ tầng kỹ thuật cung cấp nền tảng cho kiến trúc
ứng dụng và dữ liệu
Trang 21b) Kỹ nghệ hướng sản phẩm
─ Mục đích của Kỹ nghệ hướng sản phẩm là biến mong
muốn của khách hàng về các tính năng thành sản
phẩm hiện hữu.
─ Các yêu cầu tổng thể về sản phẩm được phát hiện,
thu thập từ khách hàng (người dùng), bao gồm các
nhu cầu về thông tin, chức năng, hiệu năng của sản
phẩm, các ràng buộc.
─ Khi các yêu cầu được làm rõ, sẽ thực hiện việc thiết
kế và xây dựng sản phẩm theo quy trình công nghệ và các tiêu chuẩn được lựa chọn
3.1 Tổng quan về công nghệ hệ thống
3.1.2 Kỹ nghệ mô hình hóa (tiếp…)
Trang 22nghệ phần mềm
Xây dựng và tích hợp [Khung nhìn chi tiết]
Trang 23Chương 3 TỔNG QUAN VỀ CÔNG NGHỆ HỆ THỐNG
VÀ KỸ THUẬT YÊU CẦU PHẦN MỀM
3.2 Thu thập và Phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu
a) Khái niệm
– Yêu cầu phần mềm là các phát biểu của người dùng
(bằng ngôn ngữ tự nhiên cộng với các sơ đồ) về các
công việc hay dịch vụ mà phần mềm phải thực hiện và các ràng buộc về vận hành
– Để xây dựng được một phần mềm cần hiểu được bản
chất của vấn đề hay yêu cầu mà phần mềm đó phải giải quyết Do vậy cần phát hiện, thu thập các yêu cầu đó
Trang 24a) Khái niệm (tiếp…)
- Theo IEEE (1997), Yêu cầu phần mềm là:
1)Điều kiện hay khả năng cần thiết để người dùng giải quyết được vấn đề hoặc mục tiêu của họ
2)Điều kiện hay khả năng đáp ứng của hệ thống hay thành phần hệ thống (system component) thỏa mãn hợp đồng, tiêu chuẩn, đặc tả hoặc các tài liệu bắt buộc khác
3)Văn bản thể hiện các điều kiện hoặc khả năng đã nêu ở (1) hoặc (2)
về yêu cầu từ người dùng (quan sát hành vi của hệ thống từ bên ngoài) và từ người phát triển (quan sát hệ thống từ bên trong).
Trang 25a) Khái niệm (tiếp…)
─ Các hoạt động của kỹ thuật yêu cầu phần mềm gồm:
Kỹ thuật yêu cầu
Phân tích yêu cầu
Đặc tả yêu cầu
Đặc tả yêu cầu
Thẩm định yêu cầu
Thẩm định yêu cầu
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu
Trang 26a) Khái niệm (tiếp…)
─ Quy trình hoạt động xác đinh yêu cầu phần mềm:
Phân tích yêu cầu
Đặc tả yêu cầu
Đặc tả yêu cầu
Thẩm định yêu cầu
Thẩm định yêu cầu
Trang 27b) Phân loại yêu cầu phần mềm
– Có 2 loại yêu cầu: Yêu cầu chức năng và Yêu cầu phi
chức năng.
Yêu cầu chức năng: Mô tả các hoạt động hay chức năng
của phần mềm mà nó sẽ thực hiện
Ví dụ:
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu (tiếp…)
Trang 28b) Phân loại yêu cầu phần mềm (tiếp…)
2 Yêu cầu phi chức năng: Là các yêu cầu liên quan đến
hiệu năng, độ tin cậy, các ràng buộc, Cụ thể gồm:
Trang 29c) Chỉ dẫn phát hiện và thu thập yêu cầu
─ Xác định các nhóm người có liên quan đến phần mềm (người
sử dụng, chủ đầu tư, chuyên gia nghiệp vụ, người phân
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu (tiếp…)
Trang 30d) Một số phương pháp thu thập yêu cầu
Phương pháp thu thập và nghiên cứu tài liệu
─ Thu thập và nghiên cứu các hồ sơ, tài liệu, sổ sách,
chứng từ, quy định quản lý của tổ chức/doanh nghiệp
─ Đây là phương pháp quan trọng
─ Ví dụ: Quy định về mượn, trả sách, mẫu báo cáo về sách của thư viện, quy định về cách tính lương của một đơn vị,
… (Xem mẫu ở slide sau)
Trang 313.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu (tiếp…)
Trang 32d) Một số phương pháp thu thập yêu cầu (tiếp…)
Phương pháp phỏng vấn
─ Là cách làm việc tay đôi hoặc theo nhóm
─ Người phòng vấn chủ động nêu câu hỏi để hiểu rõ về
các yêu cầu của người dùng
─ Có 2 loại câu hỏi:
Câu hỏi mở: Số khả năng trả lời nhiều.
Câu hỏi đóng: Các phương án trả lời có thể dự
kiến sẵn
─ Đây là phương pháp cơ bản nhất
Trang 33d) Một số phương pháp thu thập yêu cầu (tiếp…)
Phương pháp quan sát
─ Theo dõi (bằng mắt) tại hiện trường
─ Thường kết hợp với phỏng vấn
Phương pháp sử dụng phiếu điều tra
─ Là cách phỏng vấn gián tiếp (không gặp mặt)
─ Các câu hỏi được liệt kê trong một mẫu phiếu điều
tra và người được điều tra ghi trả lời vào phiếu
─ Ưu điểm: Mở rộng điều tra, ít tốn kém
─ Hạn chế: Thiếu giao tiếp, không mở rộng được hiểu
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu
Trang 34e) Quy trình thu thập yêu cầu
─ Bước 1: Lập kế hoạch
Xác định các đối tượng, nguồn thông tin, dữ liệu cùng
với phương pháp, thời gian, trình tự thu thập thông tin
─ Bước 2: Triển khai (thu thập từ trên xuống):
Thu thập yêu cầu mức quyết định (Ban Giám đốc,…)
Thu thập yêu cầu mức điều phối (Trưởng phòng,…)
Thu thập yêu cầu mức thực hiện (kế toán, thủ kho,…)
Quy trình thu thập yêu cầu phải được lặp lại:
Lần đầu thường có thông tin đại thể, sơ bộ
Những lần sau thông tin sẽ chi tiết dần
Trang 35f) Các hoạt động thu thập yêu cầu
‒ Tìm hiểu miền ứng dụng: Gồm các hoạt động nghiệp vụ,
quy tắc nghiệp vụ, sản phẩm và các lĩnh vực liên quan
‒ Thu thập yêu cầu: Giao tiếp với những người liên quan
để phát hiện và thu thập yêu cầu của họ
‒ Phân loại các yêu cầu: Gồm tập hợp các yêu cầu đã thu
thập và sắp xếp vào loại tương ứng
‒ Kiểm tra yêu cầu: Kiểm tra yêu cầu theo nghiệp vụ để
bảo đảm tính đầy đủ, nhất quán và phù hợp
‒ Xử lý xung đột: Tìm ra các xung đột và giải quyết
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu (tiếp…)
Trang 36f) Các hoạt động thu thập yêu cầu (tiếp…)
– Mô tả các hoạt động thu thập yêu cầu:
Đặc tả yêu cầu
Đặc tả yêu cầu
Kiểm tra yêu cầu
Sắp ưu tiên yêu cầu
Sắp ưu tiên yêu cầu
Phân loại yêu cầu
Xử lý xung đột
Xử lý xung đột
Tài liệu yêu cầu
Trang 37g) Sản phẩm của việc phát hiện, thu thập yêu cầu
─ Là tài liệu (tài liệu yêu cầu) bao gồm các nội dung
chính sau:
Phát biểu về nhu cầu và tính khả thi
Phát biểu về phạm vi yêu cầu
Danh sách các yêu cầu và các ràng buộc
Danh sách người dùng và các cá nhân liên quan
Mô tả môi trường kỹ thuật
Các mẫu thử nếu có để xác định rõ hơn các yêu
cầu
3.2 Thu thập và phân tích yêu cầu
3.2.1 Phát hiện và thu thập yêu cầu
Trang 38a) Khái niệm:
– Phân tích yêu cầu bao gồm việc làm mịn, phân tích ý
tưởng và các phát biểu về yêu cầu đã thu thập được để bảo đảm rằng tất cả những người liên quan hiểu điều họ muốn nói, để tìm các lỗi, các thiếu sót
– Phân tích cũng là việc tương tác với khách hàng để làm sáng tỏ các điểm còn chưa rõ và yêu cầu nào quan trọng hơn yêu cầu nào
– Trong khi phân tích, nên biểu diễn các yêu cầu bằng
nhiều hình thức khác nhau: Văn bản, bằng sơ đồ, mô
hình để dễ nhìn, dễ hiểu
Trang 39a) Khái niệm (tiếp…) :
─ Quá trình phân tích, thương lượng yêu cầu sẽ thực hiện
các công việc sau:
Phân loại các yêu cầu và tổ chức thành các nhóm
Khảo sát từng yêu cầu trong mối quan hệ với những yêu cầu khác
Kiểm tra tính nhất quán, tính nhập nhằng, những thiếu sót
Xác định mức ưu tiên các yêu cầu dựa trên nhu cầu của khách hàng hay người sử dụng
3.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu
Trang 40a) Khái niệm (tiếp…) :
– Các câu hỏi thường đặt ra khi bắt đầu phân tích:
Yêu cầu có nhất quán với mục tiêu của sản phẩm
không?
Yêu cầu có thật sự cần thiết không?
Mô tả yêu cầu đã đủ rõ chưa và có nhập nhằng không?
Yêu cầu có mâu thuẫn với các yêu cầu khác không?
Liệu yêu cầu có thể thực hiện được trong môi trường
kỹ thuật của hệ thống không?
─ Bằng cách lặp lại quá trình trên, các yêu cầu sẽ được
loại bớt, kết hợp và sửa đổi để mỗi bên đều thỏa mãn
Trang 41b) Các nguyên lý phân tích yêu cầu (5):
1) Nguyên lý mô hình hóa chức năng:
‒ Xác định các chức năng xử lý dữ liệu (xuất phát từ nhu
cầu xử lý thông tin, dữ liệu).
‒ Chỉ ra luồng dữ liệu đi qua hệ thống (các chức năng) như
thế nào và quy trình xử lý
‒ Xác định các nguồn cung cấp, tiếp nhận thông tin
2) Nguyên lý mô hình hóa dữ liệu
‒ Xác định các đối tượng dữ liệu
‒ Xác định đặc tính của các đối tượng dữ liệu
3.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
Trang 423) Nguyên lý mô hình hóa hành vi:
‒ Chỉ ra các trạng thái khác nhau của hệ thống (VD: Đang xử
lý, đang in, đang đợi,…).
‒ Mô tả các sự kiện làm cho hệ thống thay đổi trạng thái.
Nhận xét: Mô hình trạng thái tạo nên tập các trạng thái và các sự kiện làm thay đổi các trạng thái này
4) Nguyên lý phân rã (Top-down).
‒ Phân tích từng mô hình để biểu diễn các mức thấp hơn (Mô
hình chức năng, mô hình dữ liệu, mô hình hành vi).
‒ Số mức phân rã phụ thuộc vào độ phức tạp của bài toán, nhưng thường không quá 7 mức.
5) Nguyên lý dựa vào bản chất.
‒ Tập trung vào bản chất chứ không xem xét vấn đề cài đặt.
Trang 433.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu
c) Kỹ thuật phân tích hướng cấu trúc
c1 Phân tích chức năng
– Phân tích, làm rõ các chức năng nghiệp vụ và gom nhóm
các chức năng có liên quan với nhau.
– Biểu diễn các chức năng bằng sơ đồ phân cấp có cấu
trúc sau:
<Chức năng tổng quát>
<Chức năng chính 1 > <Chức năng chính 2>
Trang 44c2 Phân tích luồng dữ liệu – DFD (Data Flow Diagram)
– Thành lập dần các DFD diễn tả chức năng ở các mức
Mỗi mức là một tập hợp DFD, bắt đầu từ mức 0 (mức khung cảnh), mức 1 (mức đỉnh),…
– Với mỗi chức năng ở mức trên, ta lập một DFD ở mức
dưới bằng cách:
Phân rã chức năng thành các chức năng con
Vẽ lại luồng dữ liệu vào/ra chức năng trên nhưng vào/ra ở chức năng con thích hợp
Bổ sung các luồng dữ liệu hoặc kho dữ liệu nội bộ
Trang 45c2 Phân tích luồng dữ liệu ( tiếp… )
– Sơ đồ phân rã minh họa như sau:
Mức 1 (đỉnh)
Mức 2 (dưới đỉnh)
3.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
Trang 46 Ví dụ: Hệ thống tín dụng.
– BLD mức ngữ cảnh:
0Quản lý tín dụng
Khách hàng
Đơn vay Đơn vay được duyệt
Phiếu trả nợ
Trang 47Đơn vay
Phiếu trả nợ
1Cho vay
Sổ nợ
3.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
Trang 48Ví dụ: Hệ thống tín dụng (tiếp…)
– BLD mức dưới đỉnh:
1.3 Trả lời đơn Khách hàng
Đơn đã kiểm tra
Đơn đã duyệt Đơn vay bị từ chối
1.1 Nhận đơn
Sổ nợ
1.2 Duyệt đơn
Đơn vay
Đơn vay được chấp nhận
Trang 49Nợ trả trong kỳ
2.1 Theo
2.2
XL nợ trong hạn
Nợ hoàn trả
Nợ trả ngoài hạn
3.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
Trang 50c3 Phân tích quy trình nghiệp vụ
– Sử dụng Lưu đồ hệ thống Ví dụ:
Trang 513.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
c4 Phân tích xử lý, tính toán
– Sử dụng Lưu đồ thuật toán Ví dụ:
Trang 52Số lượng
Mặt hàng
Mã-HH
Tên-HH Quy cách
ĐV tính Đơn giá
Đơn hàng
SH-ĐH SH-KH
Ngày ĐH
Trang 533.2 Thu thập và phân tích yêu cầu
3.2.2 Phân tích yêu cầu (tiếp…)
c5 Phân tích về dữ liệu (tiếp…)
– Sử dụng mô hình quan hệ Ví dụ:
─ Mô hình quan hệ ở dạng 3NF của mô hình E/A trên
được biểu diễn như sau:
Khach-hàng( SH-KH , Tên-KH, Địa-chỉ-KH, Tài-khoản-KH)
Đơn-hàng ( SH-ĐH, SH-KH , Ngày-ĐH)
Mặt-hàng( Mã-MH , Tên-HH, Quy-cách, ĐV-tính, Đơn-giá)
Dòng-ĐH( SH-ĐH, Mã-MH , Số-lượng)