Giáo trình Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về Công nghệ phần mềm - Lương Trần Hy Hiến
– Làm việc với Developer, Architect, Tester để
chuẩn bị bản đóng gói
• Redistribute Component
• Runtime Library
• DB Script,
– Đóng gói phần mềm
– Làm việc với Tester để tiến hành kiểm lỗi và
sửa lỗi bản đóng gói
102 trang |
Chia sẻ: huongthu9 | Lượt xem: 571 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về Công nghệ phần mềm - Lương Trần Hy Hiến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
COMP1026 – Introduction to Software Engneering – Chapter 01 - 1 HIENLTH
Chủ đề 1: Tổng quan về CNPM
COMP1026 – Introduction to Software Engneering – Chapter 01 - 2 HIENLTH
Mục tiêu
• Biết được những khái niệm thiết yếu
trong CNPM.
• Biết được về một qui trình phần mềm cơ
bản.
• Biết được tổ chức nhân sự và vai trò của
từng thành viên trong hệ thống.
• Biết được các loại tài liệu kỹ thuật.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 3 HIENLTH
Nội dung
• Khái niệm về Phần mềm
• Khái niệm về Chất lượng phần mềm
• Khái niệm về Công nghệ phần mềm
• Khái niệm về Quy trình phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 4 HIENLTH
Khái niệm về phần mềm
• Ví dụ: xét một số phần mềm sau
– Phần mềm quản lý học sinh cấp 3.
– Phần mềm quản lý thư viện.
– Phần mềm quản lý nhà sách.
– Phần mềm quản lý khách sạn.
– Phần mềm quản lý phòng mạch tư.
– Phần mềm quản lý sổ tiết kiệm.
– Phần mềm quản lý giải vô địch bóng đá.
– Phần mềm quản lý bán vé chuyến bay.
– Phần mềm quản lý các đại lý.
– Phần mềm xếp thời khóa biểu.
–
COMP1026 – Introduction to Software Engneering – Chapter 01 - 5 HIENLTH
Khái niệm về phần mềm
• Phần mềm dưới góc nhìn của người sử dụng:
– Chương trình thực thi được trên máy tính
hoặc các thiết bị chuyên dụng khác, 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 hơn các thao
tác nghiệp vụ của mình.
– Ví dụ:
• PM QL bán hàng: hỗ trợ lập chứng từ hóa đơn,
đơn đặt hang, quản lý doanh thu, in báo cáo,
• PM QLSV trường ĐH: quản lý hồ sơ sinh viên, kết
quả học tập, xét tốt nghiệp, học phí,
COMP1026 – Introduction to Software Engneering – Chapter 01 - 6 HIENLTH
Khái niệm về phần mềm
• Môi trường triển khai phần mềm
– Máy tính: Desktop, Laptop,
– Thiết bị chuyên dụng:
• Thiết bị di động: PDA, Pocket PC, Điện thoại di động
• Các thiết bị chuyên dụng khác: set-top box, router, firewall
(phần cứng)
• Hỗ trợ làm tốt hơn các thao tác nghiệp vụ:
– Tin học hóa nghiệp vụ hiện đang làm thủ công,
– Cải tiến chức năng nghiệp vụ hiện đang được thực hiện trên
máy tính,
– Đề ra, xây dựng và triển khai chức năng nghiệp vụ mới
COMP1026 – Introduction to Software Engneering – Chapter 01 - 7 HIENLTH
Khái niệm về phần mềm
• Phần mềm dưới góc nhìn của chuyên viên
Tin học:
– Đây là một hệ thống bao gồm 3 thành phần
cơ bản:
• Thành phần giao tiếp
• Thành phần xử lý
• Thành phần lưu trữ
cần được xây dựng để thực hiện theo yêu cầu
của người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 8 HIENLTH
Khái niệm về phần mềm
• Thành phần giao tiếp (Giao diện):
– Cho phép tiếp nhận các yêu cầu về việc sử dụng phần mềm từ
người sử dụng (chọn công việc muốn thực hiện và cung cấp các
dữ liệu nguồn liên quan đến công việc đó), từ các thiết bị thu
thập dữ liệu (cân, nhiệt kế, tế bào quang điện), hoặc từ các
phần mềm khác.
– Cho phép trình bày các kết quả của việc thực hiện các yêu cầu
cho người dùng (kết quả của công việc khi thực hiện trên máy
tính) hoặc điều khiển hoạt động các thiết bị điều khiển
(đóng/mở cửa, dùng hay cho chuyển động)
– Một cách tổng quát, thành phần giao tiếp cho phép nhập/xuất
thông tin cùng với hình thức trình bày/giao tiếp tương ứng.
– Mục tiêu chính của thành phần này là đưa thông tin từ thế giới
bên ngoài phần mềm (người sử dụng, các thiết bị, phần mềm
khác) và bên trong, hoặc ngược lại.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 9 HIENLTH
Khái niệm về phần mềm
• Thành phần xử lý:
– Kiểm tra tính hợp lệ của thông tin nguồn được cung
cấp từ người dùng theo các quy định ràng buộc trong
thế giới thực
• Ví dụ: chỉ cho mượn tối đa 3 quyển sách, mỗi lớp học không
quá 50 học sinh
– Tiến hành xử lý cho ra kết quả mong đợi theo quy
định tính toán có sẵn trong thế giới thực
• Ví dụ: quy tắc tính tiền phạt khi trả sách về, quy định tính
tiền điện, trả góp khi mua nhà
– Hoặc tiến hành xử lý theo thuật giải tự đề xuất
• Ví dụ: xếp thời khóa biểu tự động, nén ảnh, phát sinh nước
cờ của máy tính
COMP1026 – Introduction to Software Engneering – Chapter 01 - 10 HIENLTH
Khái niệm về phần mềm
• Thành phần xử lý:
– Việc xử lý dựa trên thông tin nguồn từ người sử dụng
cung cấp
• Ví dụ: tính nghiệm phương trình bậc 2 dựa trên các hệ số
nhập vào
hoặc dữ liệu lưu trữ có sẵn
• Ví dụ: tính tồn kho dựa trên các phiếu nhập xuất đã lưu trữ
hoặc cả hai
• Ví dụ: tính tiền phạt dựa trên ngày trả sách được nhập vào
và thông tin về loại sách đã được lưu trữ
– Việc xử lý cho ra kết quả có thể dùng để xuất cho
người dùng xem qua thành phần giao diện, hay lưu
trữ lại qua thành phần lưu trữ, hoặc cả hai
COMP1026 – Introduction to Software Engneering – Chapter 01 - 11 HIENLTH
Khái niệm về phần mềm
• Một cách tổng quát, thành phần xử lý là hệ thống
chuyên xử lý tính toán, biến đổi dữ liệu,
– dùng thông tin nguồn từ các thành phần giao diện
(chức năng nhập) hay thành phần dữ liệu (chức năng
đọc);
– Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau đó
tiến hành xử lý (chức năng xử lý) – nếu cần thiết
– Để cho ra kết quả sẽ được trình bày thông qua thành
phần giao diện (chức năng xuất) hoặc lưu trữ lại
trong thành phần dữ liệu (chức năng ghi)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 12 HIENLTH
Khái niệm về phần mềm
• Thành phần lưu trữ (thành phần dữ liệu)
– Cho phép lưu trữ lại (chức năng ghi) các kết quả đã xử lý
• Ví dụ: Việc mượn sách đã được kiểm tra hợp lệ, bảng lương
tháng đã được tính
trên bộ nhớ phụ với tổ chức lưu trữ được xác định trước
• Ví dụ: tập tin có cấu trúc, tập tin nhị phân, cơ sở dữ liệu
– Cho phép truy xuất lại (chức năng đọc) các dữ liệu đã lưu trữ
phục vụ cho các hàm xử lý tương ứng
– Một cách tổng quát thành phần dữ liệu là hệ thống chuyên đọc
ghi dữ liệu cùng với mô hình tổ chức lưu trữ dữ liệu tương ứng.
Mục tiêu chính của thành phần này là chuyển đổi dữ liệu giữa bộ
nhớ chính và bộ nhớ phụ
COMP1026 – Introduction to Software Engneering – Chapter 01 - 13 HIENLTH
Khái niệm lớp phần mềm
• Lớp phần mềm:
– Lớp phần mềm là hệ thống các phần mềm trên cùng
một lĩnh vực hoạt động nào đó
– Do cùng lĩnh vực hoạt động nên các phần mềm cùng
lớp thường có cấu trúc và chức năng tương tự nhau
• Mục tiêu của ngành Công nghệ Phần mềm
– Xây dựng được phần mềm có chất lượng
– Dễ dàng xây dựng phần mềm mới từ các phần mềm
có sẵn cùng lớp
COMP1026 – Introduction to Software Engneering – Chapter 01 - 14 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính đúng đắn
Tính đúng đắn:
- Đầy đủ
- Chính xác
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 15 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiện dụng
Tính tiện dụng:
- Dễ học
- Dễ sử dụng
- Giao diện trực quan
- Tự nhiên
Tính đúng đắn
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 16 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính hiệu quả
Tính hiệu quả:
- Tối ưu sử dụng CPU*
- Tối ưu sử dụng bộ nhớ*
- Tối ưu sử dụng thiết bị
Tính đúng đắn
Tính tiện dụng
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 17 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tương thích
Tính tương thích:
- Import/Export dữ liệu
- Tương tác
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 18 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiến hóa
Tính tiến hóa: một trong
các tính chất quan trọng
nhất được quan tâm
xem xét trong ngành
Công nghệ Phần mềm
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Tính tương thích
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 19 HIENLTH
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiến hóa
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Tính tương thích
Dưới góc nhìn của Người sử dụng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 20 HIENLTH
Chất lượng phần mềm
Tính dễ kiểm tra: việc kiểm tra các thành phần phù hợp với
yêu cầu phần mềm là dễ dàng nhất có thể được
Tính dễ sửa lỗi: khi có sự không phù hợp (so với yêu cầu)
trong quá trình kiểm tra một thành phần, việc phát hiệu chính
xác “vị trí lỗi” và sửa lỗi là nhanh nhất có thể được.
Tính dễ bảo trì: khi cần nâng cấp, cải tiến một thành phần
(theo yêu cầu mới), việc cập nhật phần mềm là nhanh, chính
xác nhất có thể được và đặc biệt là cố gắng hạn chế ảnh
hưởng đến các thành phần khác
Tính tái sử dụng: các thành phần đã thực hiện có thể dùng
lại trong các phần mềm cùng lớp (hoặc cùng lĩnh vực) với
thời gian và công sức ít nhất có thể được
Dưới góc nhìn của chuyên viên Tin học
COMP1026 – Introduction to Software Engneering – Chapter 01 - 21 HIENLTH
Phát triển của Công nghệ phần mềm
• Giai đoạn 1 (1950 – giữa 1960)
– Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần
mềm
• Giai đoạn 2 (từ giữa 1960 đến giữa 1970)
– Hệ thống đa chương trình và đa nguời dùng
– Bắt đầu cuộc “khủng hoảng” phần mềm
• Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
– Sự phát triển và sử dụng rộng rãi máy tính cá nhân
– Sự phát triển của các công ty phần mềm
• Giai đoạn 4 (từ giữa 1980 đến nay)
– Phần cứng ngày càng phát triển
– Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày
càng phức tạp, công nghệ ngày càng phát triển
COMP1026 – Introduction to Software Engneering – Chapter 01 - 22 HIENLTH
Cuộc khủng hoảng phần mềm
• Số lượng các phần mềm tăng vọt (do sự phát triển của
phần cứng: tăng khả năng, giá thành hạ)
• Có quá nhiều khuyết điểm trong các phần mềm được
dùng trong xã hội:
– Thực hiện không đúng yêu cầu (tính toán sai, không
ổn định)
– Thời gian bảo trì nâng cấp quá lâu, chi phí cao, hiệu
quả thấp
– Khó sử dụng
– Thực hiện chậm
– Không chuyển đổi dữ liệu giữa các phần mềm
–
COMP1026 – Introduction to Software Engneering – Chapter 01 - 23 HIENLTH
Cuộc khủng hoảng phần mềm
• Một số kết luận:
– Việc tăng vọt số lượng phần mềm là điều hợp lý và sẽ
còn tiếp diễn
– Các khuyết điểm của phần mềm có nguồn gốc chính
từ phương pháp, cách thức và quy trình tiến hành xây
dựng phần mềm:
• Cảm tính: mỗi người theo một phương pháp riêng
• Thô sơ, đơn giản: chỉ tập trung vào việc lập trình
mà ít quan tâm đến các công việc cần làm khác
(khảo sát hiện trạng, phân tích yêu cầu, thiết kế)
• Thủ công: còn thiếu các công cụ hỗ trợ quy trình
phát triển
COMP1026 – Introduction to Software Engneering – Chapter 01 - 24 HIENLTH
Các định nghĩa về CNPM
• Bauer [1969]: SE là 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 1 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.
• Parnas [1987]: SE là việc xây dựng phần mềm
nhiều phiên bản bởi nhiều người.
• Sommerville [1995]: SE là một nguyên lý kỹ
nghệ liên quan đến tất cả các mặt (lý thuyết,
phương pháp và công cụ) của sản phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 25 HIENLTH
Các định nghĩa về CNPM
• IEEE [1993]:
1. việc áp dụng phương pháp tiếp cận có hệ
thống, bài bản và được lượng hóa trong
phát triển, vận hành và bảo trì phần mềm;
2. nghiên cứu các phương pháp tiếp cận được
dùng trong (1)
• Pressman [1995]: SE là bộ môn tích hợp cả
quy 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
COMP1026 – Introduction to Software Engneering – Chapter 01 - 26 HIENLTH
Công nghệ phần mềm
• Khái niệm:
– Công nghệ phần mềm là 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 với chi phí hợp lý trong
khoảng thời gian hợp lý
• Đối tượng nghiên cứu:
– Quy trình công nghệ
– Phương pháp xây dựng phần mềm
– Công cụ hỗ trợ phát triển phần mềm
Công nghệ phần mềm
Phương pháp Công cụ Quy trình
COMP1026 – Introduction to Software Engneering – Chapter 01 - 27 HIENLTH
Công nghệ phần mềm
• Các đối tượng nghiên cứu của Công nghệ phần mềm :
– Quy trình phần mềm:
• Hệ thống các giai đoạn mà quá trình phát triển phần mềm phải trải
qua,
• với mỗi giai đoạn cần xác định rõ:
– Mục tiêu, kết quả nhận từ giai đoạn trước đó,
– Kết quả chuyển giao cho giai đoạn kế tiếp
– Phương 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 một giai
đoạn nào đó trong quy trình phần mềm
– 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
• Hỗ trợ các chuyên viên tin học trong các bước xây dựng phần mềm
theo một phương pháp nào đó với một quy trình được chọn trước
COMP1026 – Introduction to Software Engneering – Chapter 01 - 28 HIENLTH
Quy trình Công nghệ Phần mềm
• Xây dựng phần mềm cần phải thực hiện theo trình tự nào?
• Cần bao nhiêu người tham gia? Vai trò của từng thành viên?
Tổ chức quản lý các thành viên?
• Giao tiếp giữa các thành viên trong hệ thống?
Quy trình Công nghệ Phần mềm – Software Development Process
COMP1026 – Introduction to Software Engneering – Chapter 01 - 29 HIENLTH
Qui trình Công nghệ phần mềm
29
Phần mềm
Yêu cầu phần mềm
Lập trình
Thiết kế
Lập trình
Phân tích
Thiết kế
Lập trình
Phân tích
Thiết kế
Lập trình
Kiểm tra
1
2 3
4
COMP1026 – Introduction to Software Engneering – Chapter 01 - 30 HIENLTH
Quy trình Công nghệ Phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 31 HIENLTH
Quy trình Công nghệ Phần mềm
Bộ phận tiếp nhận
yêu cầu của khách hàng
Business Analyst
• Làm thế nào để tiếp nhận
chính xác yêu cầu của
khách hàng?
• Làm thế nào để đặc tả
đúng yêu cầu của khách
hàng?
• Làm thế nào để giao tiếp,
tương tác với bộ phận phát
triển hệ thống?
• Làm thế nào để kiểm tra hệ
thống phát triển đúng theo
yêu cầu trước khi thực hiện
triển khai đến khách hàng?
COMP1026 – Introduction to Software Engneering – Chapter 01 - 32 HIENLTH
Quy trình Công nghệ Phần mềm
Bộ phận phát triển
phần mềm
Developer
• Làm thế nào để thiết kế hệ
thống đúng với yêu cầu
của người dùng?
• Làm thế nào để giao tiếp,
tương tác với các thành
viên trong bộ phận phát
triển phần mềm?
• Làm thế nào để quản lý,
theo dõi tiến trình thực hiện
phần mềm?
COMP1026 – Introduction to Software Engneering – Chapter 01 - 33 HIENLTH
Quy trình Công nghệ Phần mềm
Developm
ent Business Analyst
Bộ phận phát
triển phần mềm
Bộ phận tiếp
nhận yêu cầu của
khách hàng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 34 HIENLTH
Quy trình Công nghệ Phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 35 HIENLTH
Qui trình Công nghệ phần mềm
• Phân tích: Mô tả mức phát thảo các thành
phần của phần mềm (đã có yêu cầu)
• Thiết kế: Mô tả mức chi tiết các thành
phần của phần mềm (đã phân tích)
• Lập trình: Thực hiện các thành phần của
phần mềm (đã thiết kế)
• Kiểm tra: kiểm chứng các thành phần của
phần mềm (đã thực hiện)
35
COMP1026 – Introduction to Software Engneering – Chapter 01 - 36 HIENLTH
Mô hình thác nước
Khảo sát
Phân tích
Thiết kế
Cài đặt
Kiểm tra
Triển khai
Bảo trì
COMP1026 – Introduction to Software Engneering – Chapter 01 - 37 HIENLTH
Giai đoạn khảo sát
Khảo sát
Kết quả:
Nội dung: • Xác định quy trình xử lý
nghiệp vụ
• Thu thập biểu mẫu thống kê
Tài liệu đặc tả kiến trúc hệ thống:
• Yêu cầu chức năng
• Yêu cầu phi chức năng
• Kiến trúc hệ thống
COMP1026 – Introduction to Software Engneering – Chapter 01 - 38 HIENLTH
Giai đoạn khảo sát (tt)
Xét Hệ thống quản lý giáo vụ tại trường đại học
• Qui trình xử lý nghiệp vụ
– Xử lý nhập học
– Xử lý nhập điểm
– Xử lý sinh viên tốt nghiệp
– Quản lý giảng viên
• Báo biểu thống kê
– Hồ sơ sinh viên
– Hồ sơ giảng viên
– Bảng điểm sinh viên
– Bảng điểm theo lớp
– Danh sách lớp
– .
COMP1026 – Introduction to Software Engneering – Chapter 01 - 39 HIENLTH
Giai đoạn khảo sát (tt)
Kết quả
• Yêu cầu chức năng:
– Lưu trữ những thông tin gì ?
– Tra cứu theo tiêu chuẩn nào ?
– Xử lý tính toán theo công thức nào ?
– Kết xuất, thống kê ?
• Yêu cầu phi chức năng:
– Cài đặt trên môi trường nào ? Windows ? Web ?
– Sử dụng hệ quản trị cơ sở dữ liệu nào ?
• Access/SQL Server/Oracle/DB2
– Sử dụng công nghệ gì ?
• Java/.NET/Delphi/PHP/
COMP1026 – Introduction to Software Engneering – Chapter 01 - 40 HIENLTH
Giai đoạn khảo sát (tt)
Xét hệ thống quản lý giáo vụ
trường đại học:
• Kiến trúc hệ thống:
– Windows Application
– Database Server
Database
Server
Windows App
Windows App
COMP1026 – Introduction to Software Engneering – Chapter 01 - 41 HIENLTH
Giai đoạn khảo sát (tt)
Xét hệ thống quản lý giáo vụ trường đại học:
• Kiến trúc hệ thống:
– Web Server
– Database Server
– Client
Web Server
Database
Server
Client 1
Client 2
Client 3
COMP1026 – Introduction to Software Engneering – Chapter 01 - 42 HIENLTH
Giai đoạn phân tích
Phân tích
Kết quả:
Nội dung:
• Phân tích khả thi
• Xây dựng mô hình dữ liệu
mức quan niệm
• Xây dựng mô hình xử lý
Hồ sơ phân tích:
• Mô hình ERD (CDM)
• Mô hình DFD
• Phương án triển khai hệ thống
COMP1026 – Introduction to Software Engneering – Chapter 01 - 43 HIENLTH
Giai đoạn phân tích (tt)
Xét hệ thống quản lý giáo vụ trường đại học:
• Phương án triển khai - PA1
Database Server
Module Sinh viên
Module Giảng viên
Printer Server
COMP1026 – Introduction to Software Engneering – Chapter 01 - 44 HIENLTH
Giai đoạn phân tích (tt)
Xét hệ thống quản lý giáo vụ trường đại học:
• Phương án triển khai – PA2
Database ServerModule Sinh viên
Module Giảng viên Printer Server
COMP1026 – Introduction to Software Engneering – Chapter 01 - 45 HIENLTH
Giai đoạn phân tích (tt)
Xét hệ thống quản lý giáo vụ trường đại học:
• Phương án triển khai – PA3
Database ServerModule Sinh viên
(NV B phụ trách) Printer Server
Module Giảng viên
(NV A phụ trách)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 46 HIENLTH
Giai đoạn phân tích (tt)
Xét hệ thống quản lý giáo vụ tại trường đại học:
• Mô hình thực thể kết hợp (ERD)
0,n
0,n
0,n
0,n
SinhVien
MaSV
HoTenSV
NgaySinh
NoiSInh
MonHoc
MaMon
TenMon
Nganh
MaNganh
TenNganh
Khoa
MaKhoa
TenKhoa
Mon hoc nganh
SoTinChi
Dang Ky Hoc Mon
Lan
HocKy
NienKhoa
Diem
...
Quan Huyen
MaQuan
TenQuan
Tinh Thanh
MaTinh
TenTinh
CDM – Conceptual Data Model
ERD – Entity Relationship Diagram
COMP1026 – Introduction to Software Engneering – Chapter 01 - 47 HIENLTH
Giai đoạn phân tích (tt)
Xét hệ thống quản lý giáo vụ tại trường đại học:
• Mô hình xử lý DFD
Người dùng
Hồ sơ sinh viên
Nhập
thông tin
SV
Kiểm tra
thông tin
SV
Thông tin sinh viên
H
ồ
s
ơ
s
in
h
v
iê
n
Yêu cầu tạo mới
nhập sinh viên
COMP1026 – Introduction to Software Engneering – Chapter 01 - 48 HIENLTH
Thiết kế
Kết quả:
Nội dung: • Thiết kế dữ liệu
• Thiết kế xử lý
• Thiết kế giao diện
Hồ sơ thiết kế:
• Mô hình PDM
• Kiến trúc Module
• Hệ thống chức năng
• Hệ thống giao diện
Giai đoạn thiết kế
COMP1026 – Introduction to Software Engneering – Chapter 01 - 49 HIENLTH
Giai đoạn thiết kế (tt)
Xét hệ thống quản lý giáo vụ tại trường đại học:
• Mô hình vật lý (PDM)
PDM – Physical Data Model
SinhVien
MaSV
MaQuan
MaKhoa
MaNganh
HoTenSV
NgaySinh
NoiSInh
MonHoc
MaMon
TenMon
Nganh
MaNganh
MaKhoa
TenNganh
Khoa
MaKhoa
TenKhoa
Mon hoc nganh
MaMon
MaNganh
SoTinChi
Dang Ky Hoc Mon
MaSV
MaMon
Lan
HocKy
NienKhoa
Diem
Quan Huyen
MaQuan
MaTinh
TenQuan
Tinh Thanh
MaTinh
TenTinh
COMP1026 – Introduction to Software Engneering – Chapter 01 - 50 HIENLTH
Giai đoạn thiết kế (tt)
Kiến trúc phân hệ - Module
Hệ thống
quản lý Sinh viên
Phân hệ Sinh viên Phân hệ Giảng viên
COMP1026 – Introduction to Software Engneering – Chapter 01 - 51 HIENLTH
Giai đoạn thiết kế (tt)
Hệ thống chức năng Module Quản lý Sinh viên
Quản lý sinh viên
Danh sách SV
Quản lý khóa học
Quản lý đăng ký
học phần
Quản lý học phí
COMP1026 – Introduction to Software Engneering – Chapter 01 - 52 HIENLTH
Giai đoạn thiết kế (tt)
Hệ thống giao diện phân hệ sinh viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 53 HIENLTH
Giai đoạn thiết kế (tt)
Hệ thống giao diện phân hệ sinh viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 54 HIENLTH
Giai đoạn thiết kế (tt)
Module quản lý sinh viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 55 HIENLTH
Giai đoạn thiết kế (tt)
Hệ thống giao diện phân hệ Giảng viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 56 HIENLTH
Giai đoạn thiết kế (tt)
Hệ thống giao diện phân hệ Giảng viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 57 HIENLTH
Cài đặt
Kết quả:
Nội dung: • Tạo CSDL
• Tạo giao diện
• Cài đặt các xử lý
• Source code:
Giao diện
DLL
ActiveX Control
Sample Database
• Chương trình: EXE, Web App
Giai đoạn cài đặt
COMP1026 – Introduction to Software Engneering – Chapter 01 - 58 HIENLTH
Kiểm tra
Kết quả:
Nội dung: • Kiểm lỗi
• Kiểm lỗi phân hệ
• Kiểm lỗi hệ thống
• Roadmap
• Test plan
• Test case
• Bug
• Test report
Giai đoạn kiểm tra
COMP1026 – Introduction to Software Engneering – Chapter 01 - 59 HIENLTH
Triển khai
Kết quả:
Nội dung: • Đóng gói sản phẩm
• Cài đặt thử nghiệm với dữ
liệu thật của khách hàng
• Hướng dẫn sử dụng
• Chương trình cài đặt
• Tài liệu hướng dẫn cài đặt
• Tài liệu hướng dẫn cấu
hình hệ thống
Giai đoạn triển khai
COMP1026 – Introduction to Software Engneering – Chapter 01 - 60 HIENLTH
Sưu liệu/Tài liệu liên quan
• Tài liệu kỹ thuật
– Tài liệu khảo sát
– Tài liệu phân tích
– Tài liệu thiết kế
– Tài liệu hướng dẫn lập trình
– Tài liệu hướng dẫn đóng gói chương trình
• Tài liệu hướng dẫn người dùng
– Broche
– Installation guide
– User Manual
– Release Notes
– Upgrade or Hot fixing guide (Version History)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 61 HIENLTH
Bảo trì
Kết quả:
Nội dung: • Hỗ trợ sữa lỗi
• Theo dõi thay đổi yêu cầu
• Nâng cấp
• Tài liệu hướng dẫn giải quyết
sự cố
• Tài liệu hướng dẫn nâng cấp
• Hostfix / Service Pack
Giai đoạn bảo trì
COMP1026 – Introduction to Software Engneering – Chapter 01 - 62 HIENLTH
Mô hình thác nước mở rộng
Khảo sát
Phân tích
Thiết kế
Cài đặt
Kiểm tra
Triển khai
Bảo trì
COMP1026 – Introduction to Software Engneering – Chapter 01 - 63 HIENLTH
Quy trình Prototype
Xác định
yêu cầu
“Thiết kế
nhanh”
Xây dựng
Prototype
Đánh giá và
xác định rõ yêu cầu
Phát triển
phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 64 HIENLTH
Quy trình xoắn ốc
Tiếp xúc
Khách hàng
Lập kế hoạch
Phân tích rủi ro
Phân tích, thiết kế
Xây dựng
và triển khai
Đánh giá
của khách hàng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 65 HIENLTH
Quy trình xoắn ốc
• Qui trình được biểu diễn ở dạng xoắn ốc thay vì
một dãy các hoạt động với quay lui.
• Mỗi lần lặp trong xoắn ốc biểu diễn một pha
trong qui trình.
• Không có các pha cố định như đặc tả hay thiết
kế - số lần lặp trong xoắn ốc được chọn phụ
thuộc vào nhu cầu.
• Các rủi ro được đánh giá và giải tỏa một cách rõ
ràng xuyên suốt qui trình.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 66 HIENLTH
Quy trình phát triển lặp
66
Chúng ta có thể chia nhỏ phần mềm ra
làm nhiều giai đoạn thay vì làm một lần từ
đầu đến cuối.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 67 HIENLTH
CASE
• Computer-aided software engineering (CASE) là các
công cụ phần mềm được chuẩn hóa để hỗ trợ các qui
trình phát triển và tiến hóa phần mềm.
• Tự động hóa các hoạt động
– Trình soạn thảo đồ họa cho phát triển mô hình phần
mềm;
– Thư viện dữ liệu để quản lý các thực thể thiết kế;
– Trình xây dựng GUI cho việc xây dựng giao diện
người dùng;
– Trình gỡ lỗi để hỗ trợ tìm lỗi;
– Trình dịch tự động để tạo phiên bản mới của một
chương trình.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 68 HIENLTH
Phân loại CASE
• Phân loại giúp chúng ta hiểu được các kiểu công cụ
CASE khác nhau và sự hỗ trợ của chúng cho các hoạt
động trong qui trình.
• Góc nhìn chức năng
– Các công cụ được phân loại theo chức năng cụ thể
của chúng.
• Góc nhìn qui trình
– Các công cụ được phân loại theo các hoạt động của
qui trình mà nó hỗ trợ.
• Góc nhìn kết hợp
– Các công cụ được phân loại theo tổ chức của chúng
thành các đơn vị kết hợp.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 69 HIENLTH
Câu hỏi
1. Phân biệt khoa học máy tính với Công
nghệ Phần mềm?
2. Phân biệt Công nghệ Hệ thống với Công
nghệ Phần mềm?
3. Quy trình phần mềm là gì?
4. Mô hình Quy trình phát triển phần mềm
là gì?
COMP1026 – Introduction to Software Engneering – Chapter 01 - 70 HIENLTH
Câu hỏi (tt)
5. Xây dựng một sản phẩm phần mềm phải
đầu tư những chi phí nào ?
COMP1026 – Introduction to Software Engneering – Chapter 01 - 71 HIENLTH
Câu hỏi (tt)
5. Xây dựng một sản phẩm phần mềm phải
đầu tư những chi phí nào ?
COMP1026 – Introduction to Software Engneering – Chapter 01 - 72 HIENLTH
Bài tập
1. Xét phần mềm giải bài tập về đa thức. Giả sử chỉ xét
chức năng tính đạo hàm một đơn thức P(x) = a.xn (với
a là số thực, n là số nguyên không âm), theo qui tắc
tính đạo hàm Q(x) = P’(x) = n.a.xn-1
2. Viết chương trình giải phương trình bậc 2
3. Xét phần mềm quang hình học, giả sử chỉ xem xét chức
năng xác định ảnh của một vật qua một thấu kính. Cho
biết công thức xác định ảnh: 1/d + 1/d’ = 1/f
4. Chức năng xác định hình chiếu điểm M trên đường
thẳng d
72
COMP1026 – Introduction to Software Engneering – Chapter 01 - 73 HIENLTH
References
Bài giảng này có tham khảo:
• Slide bài giảng “Nhập môn Công nghệ Phần
mềm”, Trần Ngọc Bảo, ĐH Sư phạm TpHCM.
• Slide bài giảng “Xây dựng phần mềm hướng đối
tượng”, Trần Minh Triết, ĐH KHTN TpHCM.
• Slide bài giảng Kỹ nghệ phần mềm, ĐH Công
nghệ, ĐHQG Hà Nội.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 74 HIENLTH
Câu hỏi và thảo luận
COMP1026 – Introduction to Software Engneering – Chapter 01 - 75 HIENLTH
Tổ chức nhân sự
Project Manager
Product ManagerTester
Architect
Developer
COMP1026 – Introduction to Software Engneering – Chapter 01 - 76 HIENLTH
Development Teams
Infrastructure
Architect
Solution
Architect
Project Manager
Developer
Tester
End User
COMP1026 – Introduction to Software Engneering – Chapter 01 - 77 HIENLTH
Tổ chức nhân sự
COMP1026 – Introduction to Software Engneering – Chapter 01 - 78 HIENLTH
Vai trò của các thành viên
COMP1026 – Introduction to Software Engneering – Chapter 01 - 79 HIENLTH
Business Analyst
• Vai trò
– Tiếp nhận, thu thập tài liệu mô tả yêu cầu của
khách hàng
• Yêu cầu chức năng
• Yêu cầu phi chức năng
– Nắm được toàn bộ các qui trình hoạt động
của hệ thống
– Chuyển giao yêu cầu và hỗ trợ cho các thành
viên
COMP1026 – Introduction to Software Engneering – Chapter 01 - 80 HIENLTH
Business Analyst
• Công việc
– Làm việc trực tiếp với khách hàng để xác định
toàn bộ yêu cầu của hệ thống
– Hỗ trợ các thành viên trong quá trình xây
dựng kịch bản demo, bộ dữ liệu test,
– Tiếp nhận yêu cầu cập nhật của khách hàng
trong quá trình bảo trì
– Xây dựng hồ sơ đặc tả yêu cầu
– Xây dựng các kịch bản khai thác
COMP1026 – Introduction to Software Engneering – Chapter 01 - 81 HIENLTH
Business Analyst
• Phần mềm sử dụng
– Power Designer
• Business Process Model
• Requirement Model
• Use – Case diagram
– Rational RequisitePro
– Microsoft Office
• Word
• Excel
• Visio
• Publisher
• Power Point
– Workflow
– Visual Team System
• Business Analyst Role
COMP1026 – Introduction to Software Engneering – Chapter 01 - 82 HIENLTH
Project Manager
• Vai trò
– Lập và theo dõi kế hoạch thực hiện dự án
• Thời gian
• Nhân sự
• Ngân sách
– Phân công, theo dõi và hỗ trợ các thành viên
trong dự án
– Quản trị rủi ro
COMP1026 – Introduction to Software Engneering – Chapter 01 - 83 HIENLTH
Project Manager
• Công việc
– Lập kế hoạch thực hiện dự án
– Làm việc trực tiếp với Business Analyst để nắm được
yêu cầu, kế hoạch thực hiện triển khai dự án
– Làm việc với Architect để xác định kế hoạch chi tiết
cho giai đoạn cài đặt phần mềm
– Làm việc với Developer để xây dựng kế hoạch chi tiết
cho giai đoạn cài đặt phần mềm
– Làm việc với nhóm test để xây dựng kế hoạch chi tiết
cho giai đoạn kiểm chứng phần mềm.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 84 HIENLTH
Project Manager
• Phần mềm sử dụng
– Project Management
• Microsoft Office Project 2013
• Microsoft Project Professional 2013
• Microsoft Project Web Access 2013
• Microsoft Sharepoint Portal 2013
• Microsoft Windows Sharepoint Service
– eTimeMachine Solution
• eTimeMachine Enterprise
• ETM.NET
• eTimeMachine Workflow
• eTimeMachine PathFinder
– Primavera
COMP1026 – Introduction to Software Engneering – Chapter 01 - 85 HIENLTH
Project Manager
• Phần mềm sử dụng
– Source Code Management
• Visual Sourcesafe
– Visual Team System
• Project Manager Role
COMP1026 – Introduction to Software Engneering – Chapter 01 - 86 HIENLTH
Architect
• Vai trò
– Thiết kế kiến trúc hệ thống phần mềm
– Thiết kế prototype
– Thiết kế giao diện(mô hình)
– Thiết kế dữ liệu(mô hình)
– Thiết kế xử lý (mô hình)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 87 HIENLTH
Architect
• Công việc
– Chọn kiến trúc hệ thống
• Mô hình 1 lớp, 2 lớp, 3 lớp
• Windows, Web,..
– Thiết kế kiến trúc hệ thống
• Kiến trúc các phân hệ
• Chức năng của mỗi phân hệ
– Thiết kế giao diện
– Thiết kế xử lý
– Thiết kế dữ liệu
COMP1026 – Introduction to Software Engneering – Chapter 01 - 88 HIENLTH
Architect
• Công việc
– Ước lượng chi phí: nhân sự, thời gian thực
hiện
– Làm việc với Project Manager xây dựng kế
hoạch chi tiết cài đặt phần mềm
– Hỗ trợ nhóm Test chuẩn bị môi trường test,
cài đặt cấu hình hệ thống
– Hỗ trợ Techincal writer viết các sưu liệu kỹ
thuật, hướng dẫn cài đặt triển khai hệ thống
COMP1026 – Introduction to Software Engneering – Chapter 01 - 89 HIENLTH
Architect
• Phần mềm sử dụng
– Power Designer
• Conceptual Data Model
• Physical Data Model
• Object-Oriented Model (UML Model)
– Rational Rose (IBM Rational)
• UML Model
– Microsoft Project
• Web Access
• Sharepoint
– Workflow
– Visual Team System
• Architect Role
COMP1026 – Introduction to Software Engneering – Chapter 01 - 90 HIENLTH
Developer
• Vai trò
– Tham gia vào giai đoạn cài đặt phần mềm
– Thực hiện kiểm tra đơn vị (Unit Test)
– Sửa lỗi(Bug)
• Công việc
– Sử dụng công cụ và môi trường phát triển
phần mềm để viết code
• Tạo giao diện (Dos/Win/Web)
• Viết code xử lý
COMP1026 – Introduction to Software Engneering – Chapter 01 - 91 HIENLTH
Developer
• Công việc
– Sử dụng các Third-party Component để phát
triển tạo giao diện ứng dụng
• ComponentOne
• Infragistics
• Intersoft
– Sử dụng các bộ thư viện SDK để viết xử lý
• Pocket PC SDK
• DirectX SDK
• OpenGL SDK
COMP1026 – Introduction to Software Engneering – Chapter 01 - 92 HIENLTH
Developer
• Công việc
– Sử dụng hệ quản trị cơ sở dữ liệu để cài đặt
cơ sở dữ liệu
• Table
• View
• Stored procedure
•
– Tạo báo cáo, thống kê theo biểu mẫu
(Report)
– Sửa lỗi (Bug) phát sinh từ tester
COMP1026 – Introduction to Software Engneering – Chapter 01 - 93 HIENLTH
Developer
• Phần mềm sử dụng
– IDE (Integrite Development Environment)
• Visual studio.Net 2008/2010/2013
• Borland Delphi
• NetBean
• Jbuilder
• PHP
• .
COMP1026 – Introduction to Software Engneering – Chapter 01 - 94 HIENLTH
Developer
• Phần mềm sử dụng
– DBMS (Database Management System)
• Access
• SQL Server 2005/2008/2012/2014
• Oracle 9i/10g/11g/12c
• My SQL
• DB2 (IBM)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 95 HIENLTH
Developer
• Phần mềm sử dụng
– Report Tool
• Crystal Report
• Data Dynamic Report
• ComponentOne Report
– Project Management Tool
• Developer Role
– Workflow
• Developer Role
– Visual Team System
• Developer Role
COMP1026 – Introduction to Software Engneering – Chapter 01 - 96 HIENLTH
Tester
• Vai trò
– Kiểm lỗi phần mềm
– Kiểm lỗi bản đóng gói
– Kiểm lỗi tài liệu
• User guide
• Installation Guide
• Release Notes
• Troubleshooting
COMP1026 – Introduction to Software Engneering – Chapter 01 - 97 HIENLTH
Tester
• Công việc
– Chuẩn bị môi trường test
• Windows XP, 2000, 2003, 2008
• Linux
• IE, FireFox, Netscape, Mozilla
• Test Database, Test data
– Viết test case
– Thực hiện test các test case trong từng môi trường
khác nhau
– Mô tả Bug và chi tiết các bước để tạo ra bug
– Theo dõi quá trình Fix Bug
– Báo cáo kết quả test
COMP1026 – Introduction to Software Engneering – Chapter 01 - 98 HIENLTH
Tester
• Phần mềm sử dụng
– Web testing
• Test Manager Role
• Tester Role
– Automation Test
– Load testing
– Code Analysis
– Project Management Tool
• Tester Role
– Workflow
• Tester role
COMP1026 – Introduction to Software Engneering – Chapter 01 - 99 HIENLTH
Packer
• Vai trò
– Làm việc với Developer, Architect, Tester để
chuẩn bị bản đóng gói
• Redistribute Component
• Runtime Library
• DB Script,
– Đóng gói phần mềm
– Làm việc với Tester để tiến hành kiểm lỗi và
sửa lỗi bản đóng gói
COMP1026 – Introduction to Software Engneering – Chapter 01 - 100 HIENLTH
Packer
• Phần mềm sử dụng
– InstallShield
– Wise Install
– Project Management Tool
• Packer Role
– Workflow
• Packer role
–
COMP1026 – Introduction to Software Engneering – Chapter 01 - 101 HIENLTH
Technical Writer
• Công việc
– Viết các tài liệu kỹ thuật
• Tài liệu khảo sát
• Tài liệu phân tích
• Tài liệu thiết kế
• Tài liệu hướng dẫn lập trình
• Tài liệu hướng dẫn đóng gói chương trình
– Tài liệu hướng dẫn người dùng
• Broche
• Installation guide
• User Manual
• Release Notes
• Upgrade or Hot fixing guide (Version History)
COMP1026 – Introduction to Software Engneering – Chapter 01 - 102 HIENLTH
Technical Writer
• Phần mềm sử dụng
– Microsoft Office
– eHelp/RoboHelp
– HTML Help/Help Workshop
– PageMaker
– Acrobat Writer/Distiller
– Project Management Tool
• Technical Role
– Workflow
• Technical role
–
Các file đính kèm theo tài liệu này:
- giao_trinh_nhap_mon_cong_nghe_phan_mem_chuong_1_tong_quan_ve.pdf