BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN --------------
Slide bài giảng
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Giảng viên: Lương Trần Hy Hiến Email: hienlth@hcmup.edu.vn version 2.1 TP.HCM – 09/2012
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
COMP1026 – Introduction to Software Engneering HIENLTH - 1
Giới thiệu môn học
• Giảng viên:
– Lương Trần Hy Hiến (HIENLTH®) – Khoa CNTT, ĐH Sư phạm TpHCM (FIT – HCMUP) – Các môn dạy:
• NM Công nghệ Phần mềm, Kiểm thử phần mềm, • Công nghệ NET, Bảo mật và An ninh mạng
– Hướng nghiên cứu:
• Software Testing, Semantic Web, Network Security…
– Email: hienlth@hcmup.edu.vn – Web môn học:
http://fit.hcmup.edu.vn/~hienlth/SE
COMP1026 – Introduction to Software Engneering HIENLTH - 2
Thông tin lớp học
• Tên môn: Nhập môn Công nghệ Phần mềm • Mã số: COMP1026 • Số tín chỉ: 3 (36LT + 18TH)
– Lý thuyết: 36t (12 tuần x 3t/tuần) – Thực hành: 18t (9 tuần x 2t/tuần)
• Môn học trước:
– CSDL, LT Hướng đối tượng, LT Windows
• Giờ học:
– Lý thuyết: Sáng thứ 5, tiết 1 – 3, phòng – Thực hành: Chiều thứ 4, tiết 9 – 10, phòng I.202
COMP1026 – Introduction to Software Engneering HIENLTH - 3
Minh họa Web App
COMP1026 – Introduction to Software Engneering HIENLTH - 4
Minh họa WinForm App
COMP1026 – Introduction to Software Engneering HIENLTH - 5
Mục tiêu môn học
• Cung cấp các kiến thức cơ sở liên quan đến các đối tượng chính trong CNPM: phần mềm, công nghệ phần mềm, đặc trưng của phần mềm, tiến trình, các phương pháp kỹ thuật thực hiện, các phương pháp tổ chức quản lý, công cụ và môi trường triển khai phần mềm.
• Giúp sinh viên hiểu biết các kiến thức nền tảng
để học tiếp các môn chuyên ngành CNPM.
• Phần thực hành giúp SV hiểu và biết tiến hành
xây dựng phần mềm (đơn giản) một cách có hệ thống và có phương pháp. COMP1026 – Introduction to Software Engneering
HIENLTH - 6
Công nghệ phần mề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 những phần mềm có chất lượng, có giá thành 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 – Software Engineering
COMP1026 – Introduction to Software Engneering HIENLTH - 7
Quy trình công nghệ phần mềm
• Xây dựng phần mềm cần thực hiện theo
trình tự nào?
• Cần bao nhiêu người tham gia? Vai trò
từng người? Tổ chức quản lý các thành viên?
• Giao tiếp giữa các thành viên?
Quy trình công nghệ phần mềm – Software Development Process
COMP1026 – Introduction to Software Engneering HIENLTH - 8
Một số phương pháp xây dựng PM
• Phương pháp hướng cấu trúc • Phương pháp tựa Merise • Phương pháp hướng đối tượng
– Phương pháp OMT – Phương pháp UML
COMP1026 – Introduction to Software Engneering HIENLTH - 9
UML – Unified Modeling Language
COMP1026 – Introduction to Software Engneering HIENLTH - 10
Lược đồ trong UML
COMP1026 – Introduction to Software Engneering HIENLTH - 11
Công cụ hỗ trợ phát triển PM
• Rational Rose • Power Designer 12.x/15.x/16 • Microsoft Visio • Microsoft Studio .NET 2008/2010/2012 • Microsoft SQL Server 2005/2008/2012 • Oracle 8i/9i/10i/11i • Microsoft Visual Team System
2008/2010/2012
CASE Tool – Computer Aided Software Engineering
COMP1026 – Introduction to Software Engneering HIENLTH - 12
Công cụ hỗ trợ phát triển PM
• Crystal Report • Component One Enterprise • Infragistics • Intersoft Webgrid • Data Dynamic • Install Shield/Wise Install • eHelp/Robohelp/HTML Help workshop • …
CASE Tool – Computer Aided Software Engineering
COMP1026 – Introduction to Software Engneering HIENLTH - 13
Các chủ đề
• Chủ đề 1: Tổng quan về CNPM • Chủ đề 2 (*):
Khảo sát hiện trạng và xác định yêu cầu
• Chủ đề 3 (*): Phân tích phần mềm • Chủ đề 4 (*): Thiết kế phần mềm • Chủ đề 5: Cài đặt phần mềm • Chủ đề 6 (*): Kiểm chứng phần mềm • Chủ đề 7: Triển khai và bảo trì
COMP1026 – Introduction to Software Engneering HIENLTH - 14
Đánh giá môn học
• Làm bài tập tại lớp & nộp theo yêu cầu
điểm cộng thực hành: 20% • Thi giữa kỳ: 20% • Đồ án: • Thi cuối kỳ (viết): 60% • Bài làm giống nhau: 0 điểm (học lại)
COMP1026 – Introduction to Software Engneering HIENLTH - 15
Tài liệu tham khảo
• Ian Sommerville, Software Engineering, 9th
edition, 2011.
• Roger S. Pressman, Software Engineering: A
Practitioner's Approach, 2005.
• Đồng Thị Bích Thủy, Trần Đan Thư, Hoàng Vũ Quỳnh Hà, Mô Hình CMMI Một Cách Tiếp Cận Cải Tiến Quy Trình Phần Mềm, 2007. • Roger S. Pressman, Kỹ nghệ phần mềm, Tập 01, 02, 03, bản dịch của Ngô Trung Việt, 1999.
COMP1026 – Introduction to Software Engneering HIENLTH - 16
Thank you!!!
COMP1026 – Introduction to Software Engneering HIENLTH - 17
Chủ đề 1: Tổng quan về CNPM
COMP1026 – Introduction to Software Engneering – Chapter 01 - 1 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 - 2 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 - 3 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 - 4 HIENLTH
Khái niệm về phần mềm
• Phầnmềmdướigócnhìncủangườisử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.
COMP1026 – Introduction to Software Engneering – Chapter 01 - 5 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 - 6 HIENLTH
Khái niệm về phần mềm
• Phầnmềmdướigócnhìncủachuyênviên
Tinhọ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 - 7 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 - 8
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 - 9 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 - 10 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 - 11 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 - 12 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 - 13 HIENLTH
Chất lượng phần mềm
Tính đúng đắn:
- Đầy đủ
- Chính xác
Con người
Tính đúng đắn
Phần mềm
Phần mềm khác
Dưới góc nhìn của Người sử dụng
Phần cứng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 14 HIENLTH
Chất lượng phần mềm
Tính đúng đắn
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
Con người
Phần mềm
Phần mềm khác
Dưới góc nhìn của Người sử dụng
Phần cứng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 15 HIENLTH
Chất lượng phần mềm
Tính hiệu quả:
Tính đúng đắn Tính tiện dụng
- Tối ưu sử dụng CPU*
- Tối ưu sử dụng bộ nhớ*
- Tối ưu sử dụng thiết bị
Con người
Phần mềm
Tính hiệu quả Phần mềm khác
Dưới góc nhìn của Người sử dụng
Phần cứng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 16 HIENLTH
Chất lượng phần mềm
Tính tương thích:
- Import/Export dữ liệu
Tính đúng đắn Tính tiện dụng Tính hiệu quả
- Tương tác
Con người
Phần mềm
Phần mềm khác
Dưới góc nhìn của Người sử dụng
Phần cứng Tính tương thích
COMP1026 – Introduction to Software Engneering – Chapter 01 - 17 HIENLTH
Chất lượng 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
Con người
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 tiến hóa
Phần mềm
Phần mềm khác
Dưới góc nhìn của Người sử dụng
Phần cứng
COMP1026 – Introduction to Software Engneering – Chapter 01 - 18 HIENLTH
Chất lượng phần mềm
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 ………
Con người
Phần mềm
Phần mềm khác
Phần cứng
Dưới góc nhìn của Người sử dụng HIENLTH
COMP1026 – Introduction to Software Engneering – Chapter 01 - 19
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 - 20 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 - 21 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 - 22 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 - 23 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 - 24 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 - 25 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ý
Công nghệ phần mềm
• Đố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
Quy trình Phương pháp Công cụ
COMP1026 – Introduction to Software Engneering – Chapter 01 - 26 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,
– 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:
• với mỗi giai đoạn cần xác định rõ:
• 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 - 27 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 - 28 HIENLTH
Quy trình Công nghệ Phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 29 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
• 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?
Business Analyst
• 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 - 30 HIENLTH
Quy trình Công nghệ Phần mềm
Bộ phận phát triển phần mềm
• 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?
Developer
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
Bộ phận phát triển phần mềm
Development
Business Analyst
COMP1026 – Introduction to Software Engneering – Chapter 01 - 32 HIENLTH
Quy trình Công nghệ Phần mềm
COMP1026 – Introduction to Software Engneering – Chapter 01 - 33 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ì HIENLTH
COMP1026 – Introduction to Software Engneering – Chapter 01 - 34
Giai đoạn khảo sát
Khảo sát
Nội dung: • Xác định quy trình xử lý nghiệp vụ
• Thu thập biểu mẫu thống
kê
Kết quả:
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 - 35 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 - 36 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 - 37 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
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ụ trường đại học: • Kiến trúc hệ thống:
– Web Server – Database Server – Client
COMP1026 – Introduction to Software Engneering – Chapter 01 - 39 HIENLTH
Giai đoạn phân tích
• Phân tích khả thi
Nội dung:
• Xây dựng mô hình dữ liệu
mức quan niệm
Phân tích
• Xây dựng mô hình xử lý
Kết quả:
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 - 40 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
COMP1026 – Introduction to Software Engneering – Chapter 01 - 41 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
COMP1026 – Introduction to Software Engneering – Chapter 01 - 42 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
Module Giảng viên (NV A phụ trách)
Database Server
Printer Server
Module Sinh viên (NV B phụ trách)
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ụ tại trường đại học: • Mô hình thực thể kết hợp (ERD)
Quan Huyen
Tinh Thanh
MaQuan TenQuan
MaTinh TenTinh
SinhVien
Khoa
MaKhoa TenKhoa
MaSV HoTenSV NgaySinh NoiSInh
0,n
Dang Ky Hoc Mon
CDM – Conceptual Data Model
ERD – Entity Relationship Diagram
Lan HocKy NienKhoa Diem ...
0,n
MonHoc
Nganh
0,n
Mon hoc nganh
SoTinChi
MaMon TenMon
MaNganh TenNganh
0,n
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ụ tại trường đại học: • Mô hình xử lý DFD
i
i
n ê v h n s ơ s ồ H
COMP1026 – Introduction to Software Engneering – Chapter 01 - 45 HIENLTH
Giai đoạn thiết kế
Nội dung:
• Thiết kế dữ liệu
• Thiết kế xử lý
• Thiết kế giao diện
Thiết kế
Kết quả:
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
COMP1026 – Introduction to Software Engneering – Chapter 01 - 46 HIENLTH
Giai đoạn thiết kế (tt)
Quan Huyen
Tinh Thanh
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)
MaTinh TenTinh
MaQuan MaTinh TenQuan
SinhVien
Khoa
MaKhoa TenKhoa
MaSV MaQuan MaKhoa MaNganh HoTenSV NgaySinh NoiSInh
Nganh
PDM – Physical Data Model
Dang Ky Hoc Mon
MaNganh MaKhoa TenNganh
MaSV MaMon Lan HocKy NienKhoa Diem
Mon hoc nganh
MonHoc
MaMon TenMon
MaMon MaNganh SoTinChi
COMP1026 – Introduction to Software Engneering – Chapter 01 - 47 HIENLTH
Giai đoạn thiết kế (tt)
Kiến trúc phân hệ - Module
COMP1026 – Introduction to Software Engneering – Chapter 01 - 48 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ý học phí
Quản lý đăng ký học phần
COMP1026 – Introduction to Software Engneering – Chapter 01 - 49 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 - 50 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 - 51 HIENLTH
Giai đoạn thiết kế (tt)
Module quản lý sinh viên:
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ệ Giảng 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ệ Giảng viên:
COMP1026 – Introduction to Software Engneering – Chapter 01 - 54 HIENLTH
Giai đoạn cài đặt
Nội dung: • Tạo CSDL
• Tạo giao diện
• Cài đặt các xử lý
Kết quả:
• Source code:
Giao diện
DLL
ActiveX Control
Cài đặt
Sample Database
• Chương trình: EXE, Web App
COMP1026 – Introduction to Software Engneering – Chapter 01 - 55 HIENLTH
Giai đoạn kiểm tra
Nội dung:
• Kiểm lỗi
• Kiểm lỗi phân hệ
• Kiểm lỗi hệ thống
Kết quả:
• Roadmap
• Test plan
• Test case
• Bug
Kiểm tra
• Test report
COMP1026 – Introduction to Software Engneering – Chapter 01 - 56 HIENLTH
Giai đoạn triển khai
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
Kết quả:
• 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
Triển khai
hình hệ thống
COMP1026 – Introduction to Software Engneering – Chapter 01 - 57 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 - 58 HIENLTH
Giai đoạn bảo trì
Nội dung:
• Hỗ trợ sữa lỗi
• Theo dõi thay đổi yêu cầu
• Nâng cấp
Kết quả:
• 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
Bảo trì
• Hostfix / Service Pack
COMP1026 – Introduction to Software Engneering – Chapter 01 - 59 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ì HIENLTH
COMP1026 – Introduction to Software Engneering – Chapter 01 - 60
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 - 61 HIENLTH
Quy trình xoắn ốc
Lập kế hoạch
Tiếp xúc Khách hàng
Phân tích rủi ro
Đánh giá của khách hàng
Phân tích, thiết kế
Xây dựng và triển khai
COMP1026 – Introduction to Software Engneering – Chapter 01 - 62 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 - 63 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 sọan 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 - 64 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 - 65 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 - 66 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 - 67 HIENLTH
Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu
COMP1026 – Introduction to Software Engneering Chapter 2a - 1 HIENLTH
Nội dung
• Tổng quan về Yêu cầu PM • Xác định yêu cầu • Đặc tả yêu cầu • Thẩm định yêu cầu • Đặc tả hệ thống và làm bản mẫu
COMP1026 – Introduction to Software Engneering Chapter 2a - 2 HIENLTH
Phần 1 KHẢO SÁT HIỆN TRẠNG
COMP1026 – Introduction to Software Engneering Chapter 2a - 3 HIENLTH
Nội dung
• Giai đoạn khảo sát hiện trạng và xác định yêu cầu
– Hiện trạng tổ chức – Hiện trạng nghiệp vụ – Hiện trạng Tin học (phần cứng, phần mềm, con
người)
• Xác định và thu thập yêu cầu:
– Phân loại yêu cầu:
• Yêu cầu chức năng: Lưu trữ, tra cứu, tính toán, kết xuất • Yêu cầu phi chức năng – Kỹ thuật thu thập yêu cầu:
• Phỏng vấn • Bảng câu hỏi • Nghiên cứu các tài liệu • Quan sát thực tế COMP1026 – Introduction to Software Engneering
Chapter 2a - 4 HIENLTH
Nội dung
• Tài liệu khảo sát hiện trạng – yêu cầu • Sử dụng Power Designer để mô tả yêu cầu
– Use Case Diagram – Business Process Model – Data Flow Diagram
COMP1026 – Introduction to Software Engneering Chapter 2a - 5 HIENLTH
Giai đoạn khảo sát
Nội dung:
Khảo sát
• Xác định quy trình xử lý
Phân tích
nghiệp vụ
• Thu thập biểu mẫu thống kê
Thiết kế
Kết quả:
Cài đặt
Tài liệu đặc tả kiến trúc hệ thống:
Kiểm tra
• Yêu cầu chức năng
• Yêu cầu phi chức năng
Triển khai
• Kiến trúc hệ thống
Bảo trì
COMP1026 – Introduction to Software Engneering Chapter 2a - 6 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 2a - 7 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 hay 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 2a - 8 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
COMP1026 – Introduction to Software Engneering Chapter 2a - 9 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
COMP1026 – Introduction to Software Engneering Chapter 2a - 10 HIENLTH
YÊU CẦU CỦA NGƯỜI DÙNG
COMP1026 – Introduction to Software Engneering Chapter 2a - 11 HIENLTH
Yêu cầu phần mềm
• Yêu cầu người sử dụng (user requirements):
Những phát biểu bằng ngôn ngữ tự nhiên, biểu đồ… để mô tả các dịch vụ mà hệ thống cung cấp và các ràng buộc.
• Yêu cầu hệ thống (system requirements):
nêu ra các dịch vụ của hệ thống và chi tiết các ràng buộc. Tài liệu này (có thể được gọi là đặc tả chức năng) cần rõ ràng, chính xác. Nó được dùng làm cơ sở cho hợp đồng giữa khách hàng và người phát triển hệ thống.
• Đặc tả phần mềm: là mô tả khái quát các chức năng phần mềm trợ giúp hoạt động nghiệp vụ làm cơ sở để thiết kế và triển khai phần mềm sau này. Tài liệu đặc tả phần mềm được bổ sung thêm các chi tiết để trở thành tài liệu đặc tả yêu cầu hệ thống.
COMP1026 – Introduction to Software Engneering Chapter 2a - 12 HIENLTH
Xác định yêu cầu
• Khi nào thực hiện xác định yêu cầu? • Quy trình thực hiện xác định yêu cầu ? • Đặc tả yêu cầu người dùng như thế nào ?
COMP1026 – Introduction to Software Engneering Chapter 2a - 13 HIENLTH
Xác định yêu cầu (tt)
• Xác định yêu cầu được thực hiện trong các
trường hợp sau: – Có yêu cầu từ phía khách hàng – Kế hoạch thực hiện dự án được chấp nhận
(Project proposed)
COMP1026 – Introduction to Software Engneering Chapter 2a - 14 HIENLTH
Sưu liệu hiện trạng và yêu cầu
• Sưu liệu mô tả hiện trạng, yêu cầu bao
gồm: – Qui trình xử lý nghiệp vụ – Yêu cầu chức năng và phi chức năng – Danh sách mẫu biểu thống kê – Kiến trúc hệ thống – Phương án triển khai hệ thống – Kế hoạch sơ bộ thực hiện, triển khai dự án
COMP1026 – Introduction to Software Engneering Chapter 2a - 15 HIENLTH
Danh sách biểu mẫu thống kê
• Báo cáo, thống kê gồm các loại sau: – Báo cáo được in trên biểu mẫu in sẵn – Báo cáo được in trên giấy trắng
• Ví dụ: danh sách mẫu biểu thống kê hệ thống
quản lý nhân sự: – Hồ sơ nhân viên – Hợp đồng lao động (biểu mẫu) – Danh sách nhân viên thuộc phòng ban – Danh sách nhân viên được tăng lương – Danh sách nhân viên được bổ nhiệm chức vụ mới – ….
COMP1026 – Introduction to Software Engneering Chapter 2a - 16 HIENLTH
Khảo sát hiện trạng
• Hiện trạng tổ chức • Hiện trạng nghiệp vụ • Hiện trạng Tin học (phần cứng, phần
mềm, con người)
COMP1026 – Introduction to Software Engneering Chapter 2a - 17 HIENLTH
Khảo sát hiện trạng
• Hiện trạng tổ chức
– Đối nội: Cơ cấu tổ chức nội bộ
• Bản thân tổ chức là một hệ thống, có cơ cấu tổ
chức
• Sơ đồ cơ cấu tổ chức nội bộ
Cách nhìn tổng thể về 1 tổ chức
– Đối ngoại:
• Tổ chức Môi trường của tổ chức
COMP1026 – Introduction to Software Engneering Chapter 2a - 18 HIENLTH
Khảo sát hiện trạng
• Hiện trạng nghiệp vụ
– Hiểu được quy trình nghiệp vụ: mục tiêu quan
trọng nhất của khảo sát hiện trạng
– Có bao nhiêu nghiệp vụ, bao nhiêu quy trình? • Dưới góc nhìn của người làm quản lý, không phải
của chuyên viên Tin học
– Nghiệp vụ được thực hiện như thế nào?
• Các công đoạn, bộ phận liên quan…
– Tần suất? Thời điểm thực hiện
COMP1026 – Introduction to Software Engneering Chapter 2a - 19 HIENLTH
Khảo sát hiện trạng
• Hiện trạng nghiệp vụ (tt)
– Khối lượng tác vụ/quyết định? – Đánh giá nghiệp vụ hiện tại
• Cần có những nhận xét của những người chuyên
môn trong guồng máy công tác hiện tại
– Có vấn đề/khó khăn gì hiện tại hay không?
Nguyên nhân? • Vấn đề/khó khăn độc lập với công nghệ, chỉ
liên quan đến chuyên môn nghiệp vụ thì cần giải quyết ngay
COMP1026 – Introduction to Software Engneering Chapter 2a - 20 HIENLTH
Khảo sát hiện trạng
• Hiện trạng Tin học
– Phần cứng:
• Các thiết bị hiện tại,
• Số lượng,
• Cấu hình,
• Vị trí (vật lý),
• Tình hình kết nối mạng,
• Loại kết nối…
COMP1026 – Introduction to Software Engneering Chapter 2a - 21 HIENLTH
Khảo sát hiện trạng
• Hiện trạng Tin học (tt)
– Phần mềm:
• Hệ điều hành
• Hệ quản trị CSDL
• Các phần mềm tiện ích khác
• …
– Con người:
• Trình độ chuyên môn Tin học
COMP1026 – Introduction to Software Engneering Chapter 2a - 22 HIENLTH
Xác định và thu thập yêu cầu
• Phân loại yêu cầu: Có 2 loại yêu cầu chính:
– Yêu cầu chức năng (functional requirements): • Là danh sách các công việc sẽ được thực hiện trên máy tính cùng với các thông tin mô tả tương ứng.
– Yêu cầu phi chức năng (non--functional
requirements) • Là các yêu cầu liên quan đến chất lượng phần
mềm. (Yêu cầu về chất lượng PM)
• Là sự ràng buộc trên cách thức thực hiện yêu cầu
chức năng.
COMP1026 – Introduction to Software Engneering Chapter 2a - 23 HIENLTH
Ví dụ Phân loại yêu cầu
Yêu cầu
Loại
Thống kê doanh thu bán hàng Chức năng
Tra cứu sách
Chức năng
Xử lý và phản hồi nhanh
Phi chức năng
Bảo mật mật khẩu
Phi chức năng
COMP1026 – Introduction to Software Engneering Chapter 2a - 24 HIENLTH
Yêu cầu chức năng
• Được chia làm 2 loại:
– Yêu cầu chức năng nghiệp vụ. – Yêu cầu chức năng hệ thống.
COMP1026 – Introduction to Software Engneering Chapter 2a - 25 HIENLTH
Yêu cầu chức năng nghiệp vụ
• Các chức năng của PM
– tương ứng với công việc có thật trong thế giới
thực.
• Có 4 loại chức năng chính ứng với 4 loại nghiệp vụ thông dụng trong các lĩnh vực: – Chức năng Lưu trữ – Chức năng Tra cứu – Chức năng Tính toán – Chức năng Kết xuất
COMP1026 – Introduction to Software Engneering Chapter 2a - 26 HIENLTH
Yêu cầu chức năng nghiệp vụ (tt)
• Chức năng lưu trữ:
– Tương ứng với các công việc ghi chép thông tin sổ sách. – VD: ghi nhận điểm thi kết thúc học phần của sinh viên với qui định điểm số
(từ 0 đến 10) • Chức năng tra cứu:
– Tương ứng với các công việc tìm kiếm và xem thông tin tương ứng. – VD: tìm sách và xem tình trạng sách
• Chức năng tính toán:
– Tương ứng với các công việc tính toán (theo qui định, công thức cho trước) – VD: tính tiền phạt trả sách trễ hạn theo qui định phạt
• Chức năng kết xuất:
– Tương ứng với các công việc lập các báo cáo (theo biểu mẫu cho trước) – VD: Lập báo cáo thống kê về số lượt mượn sách theo từng thể loại trong
năm
COMP1026 – Introduction to Software Engneering Chapter 2a - 27 HIENLTH
Yêu cầu chức năng hệ thống
• Là các chức năng PM phải phát sinh thêm khi tiến hành các công việc trên máy tính thay vì trong thế giới thực.
• Là các chức năng không tương ứng với bất kỳ công việc
nào trong thế giới thực (có nhu cầu nhưng không thể thực hiện thủ công).
• Một số chức năng hệ thống thông dụng sau:
– Phân quyền sử dụng giữa các loại người dùng. – Sao lưu, backup, phục hồi thông tin. – Định cấu hình thiết bị, ngày giờ làm việc. – Mô phỏng hoạt động thế giới thực. – Báo động, nhắc nhở người dùng.
COMP1026 – Introduction to Software Engneering Chapter 2a - 28 HIENLTH
Yêu cầu chức năng hệ thống (tt)
• Phân quyền sử dụng giữa các loại người dùng. – VD: Phân quyền cho 3 loại người dùng trong
phần mềm quản lý thư viện. • Quản trị hệ thống: có quyền sử dụng tất cả các
chức năng.
• Thủ thư: chỉ sử dụng các chức năng liên quan đến
việc mượn trả sách.
• Độc giả: chỉ sử dụng chức năng tra cứu.
• Sao lưu, backup, phục hồi thông tin.
– VD: Sao lưu thông tin các học sinh đã ra
trường và chỉ phục hồi khi cần thiết.
COMP1026 – Introduction to Software Engneering Chapter 2a - 29 HIENLTH
Phân quyền sử dụng
Thủ thư và Quản trị phải đăng nhập trước khi sử dụng
STT Chức năng Độc giả Thủ thư Quản trị Hệ thống
1 Lập thẻ độc giả X X
2 Tiếp nhận sách mới X X
3 Tra cứu sách X X X
4 Cho mượn sách X X
5 Nhận trả sách X X
6 Lập báo cáo X X
7 Thay đổi qui định X
8 Sao lưu, phục hồi X
X 9 … COMP1026 – Introduction to Software Engneering Chapter 2a - 30 HIENLTH
Yêu cầu chức năng hệ thống (tt)
• Định cấu hình thiết bị, ngày giờ làm việc. – Chọn loại máy in, kích thước giấy, niên khoá
hiện hành, tháng làm việc hiện tại… • Báo động, nhắc nhở người dùng.
– Nhắc nhở thủ thư gởi giấy báo đòi sách khi có
độc giả mượn sách quá hạn.
– Báo động khi có khách hàng thiếu nợ quá lâu
hay số tiền quá lớn.
COMP1026 – Introduction to Software Engneering Chapter 2a - 31 HIENLTH
Yêu cầu phi chức năng
• Yêu cầu về sản phẩm: – Yêu cầu khả dụng – Yêu cầu hiệu quả (về hiệu năng, về không gian), tốc độ xử lý – Yêu cầu về độ tin cậy – Yêu cầu khả chuyển • Yêu cầu về tổ chức: – Yêu cầu chuyển giao – Yêu cầu triển khai – Yêu cầu về chuẩn • Yêu cầu mở rộng:
– Yêu cầu hoạt động bên trong – Yêu cầu đạo đức – Yêu cầu pháp lý – Yêu cầu về cá nhân – Yêu cầu an toàn
COMP1026 – Introduction to Software Engneering Chapter 2a - 32 HIENLTH
Xác định và thu thập yêu cầu
• Khái niệm:
– Quá trình nắm bắt yêu cầu – Làm rõ yêu cầu – Gợi mở yêu cầu
• Kỹ thuật thu thập yêu cầu:
– Phỏng vấn – Bảng câu hỏi – Nghiên cứu các tài liệu – Quan sát thực tế – Lập kịch bản (scenarios) – Phân tích thiết kế nhóm (JAD)
COMP1026 – Introduction to Software Engneering Chapter 2a - 33 HIENLTH
Phỏng vấn
• Phỏng vấn cá nhân/phỏng vấn nhóm?
– Phỏng vấn cá nhân – Phỏng vấn nhóm
• Phỏng vấn tự do/phỏng vấn có định hướng?
– Phỏng vấn tự do
• Người được hỏi có cảm giác thoải mái, cung cấp nhiều thông tin sâu
sắc
• Nguy cơ: không có được những thông tin cần thiết, thông tin khó
– Phỏng vấn có định hướng
hệ thống được
• Người được hỏi có thể cảm thấy không thoải mái, ít có khả năng ghi nhận được nhận xét, ý kiến, suy nghĩ riêng của người được phỏng vấn, ít cảm nhận được thái độ của họ đối với hiện trạng.
• Có thể định hướng nội dung cần tìm hiểu, có thể hệ thống hóa các
vấn đề ghi nhận được
COMP1026 – Introduction to Software Engneering Chapter 2a - 34 HIENLTH
Phỏng vấn (tt)
– Làm việc với cấp lãnh đạo để nắm mục tiêu
của hệ thống phần mềm cần xây dựng, những đối tượng cần phỏng vấn
– Yêu cầu cấp lãnh đạo thông báo xuống các
phòng ban, đơn vị để hợp tác
– Phân tích để xác định đúng và đủ những đối
tượng cần phỏng vấn
– Hẹn lịch làm việc – Xác định trước vị trí/trách nhiệm của người
sắp phỏng vấn
COMP1026 – Introduction to Software Engneering Chapter 2a - 35 HIENLTH
Phỏng vấn (tt)
– Khi tìm hiểu, cần ghi nhận các thông tin:
• Nội dung: cái gì? • Bao giờ có: thời gian + thời hạn • Bằng cách nào có nội dung thông tin đó • Nội dung đó ở dạng gì? • Đánh giá của người được phỏng vấn về tình hình
hiện tại thực hiện nghiệp vụ
– Không nên:
• Đưa nhận xét cá nhân của người phỏng vấn • Dùng thuật ngữ/ngôn ngữ Tin học
COMP1026 – Introduction to Software Engneering Chapter 2a - 36 HIENLTH
Sử dụng bảng câu hỏi
• Phải trình bày rõ:
– Mục đích của bảng câu hỏi, – Mục đích sử dụng những thông tin trong bảng câu hỏi, – Tính bảo mật thông tin trả lời (không tiết lộ ai là người cung cấp thông
• Hướng dẫn cách điền: rất cần thiết, cần lưu ý để tránh hiểu nhầm • Thời hạn trả về
tin, không để lộ ra ngoài tổ chức…)
• Câu hỏi trình bày rõ ràng • Hình thức bảng câu hỏi phải dễ dàng để xử lý tự động • Cần để dành chỗ để ghi câu trả lời.
– Cần nhắc khi gần đến thời hạn
– Thêm chỗ cho lời bình – Không phải chỉ ở cuối trang, hay cuối bảng câu hỏi, – Nên dự kiến những câu hỏi nào sẽ có ý kiến thêm thì nên có sẵn chỗ để
ghi lời bình ngay dưới câu hỏi đó)
COMP1026 – Introduction to Software Engneering Chapter 2a - 37 HIENLTH
Nghiên cứu các tài liệu
• Các tài liệu (có thể tìm hiểu những văn bản chung) • Những quy định nội bộ • Các báo cáo liên quan • Những quy định về quy trình nghiệp vụ
– Rất khó có đầy đủ văn bản quy định về quy trình nghiệp vụ – Đơn vị đạt chuẩn ISO?
• Những quy định “bất thành văn” !!! • Thường dễ tiến hành hơn kỹ thuật phỏng vấn hay bảng
câu hỏi
• Thường được tiến hành trước làm cơ sở chuẩn bị cho
việc phỏng vấn hay dùng bảng câu hỏi
COMP1026 – Introduction to Software Engneering Chapter 2a - 38 HIENLTH
Quan sát thực tế
• Tiến hành sau cùng (nếu cần thiết) • Kiểm tra lại:
– Đã hiểu đúng nghiệp vụ hiện tại? – Có những ngoại lệ? – Phát hiện những khó khăn, lỗ hổng trong quy
trình nghiệp vụ
COMP1026 – Introduction to Software Engneering Chapter 2a - 39 HIENLTH
Phương pháp lập kịch bản
• Ý tưởng:
– Xem phần mềm như một vở kịch – Phân chức năng thành những tình huống sử
dụng
– Mỗi tình huống sử dụng cho một kịch bản
diễn • Ưu điểm:
– Yêu cầu được gom nhóm và có cấu trúc – Yêu cầu được mô tả chi tiết vả rõ ràng
COMP1026 – Introduction to Software Engneering Chapter 2a - 40 HIENLTH
Phương pháp lập kịch bản (tt)
Chức năng (màn diễn) Mô tả (kịch bản) Tình huống (cảnh diễn)
Đăng nhập
Người dùng đăng nhập thành công • Hệ thống: yêu cầu tên đăng nhập và mật khẩu • Người dùng: cung cấp thông tin rồi đề nghị đăng nhập • Hệ thống: Chuyển tới màn hình chính
Người dùng đăng nhập thành công • Hệ thống: yêu cầu tên đăng nhập và mật khẩu • Người dùng: cung cấp thông tin rồi đề nghị đăng nhập • Hệ thống: thông báo sai và đề nghị cung cấp lại
• Hệ thống: yêu cầu tên đăng nhập, mật khẩu và câu
hỏi bí mật
Quản trị đăng nhập thành công
• Người dùng: cung cấp thông tin rồi đề nghị đăng nhập • Hệ thống: Chuyển tới màn hình chính
• Hệ thống: yêu cầu tên đăng nhập, mật khẩu và câu
hỏi bí mật
Quản trị đăng nhập thành công
• Người dùng: cung cấp thông tin rồi đề nghị đăng nhập • Hệ thống: thông báo sai và đề nghị cung cấp lại
COMP1026 – Introduction to Software Engneering Chapter 2a - 41 HIENLTH
Phân tích thiết kế nhóm - JAD
• JAD – Joint Application Design • Kỹ thuật áp dụng cho các giai đoạn phân tích
yêu cầu và đặc tả
• Các nhà phát triển và khách hàng làm việc như một nhóm chung và có trách nhiệm chung đối với kết quả đầu ra.
• Nhóm làm việc sẽ thảo luận các yêu cầu cần có, thiết kế các màn hình và báo cáo, xây dựng mô hình định khung nhanh, rút ra các đặc tả
• Chủ yếu dựa trên sự đồng thuận (consensus)
COMP1026 – Introduction to Software Engneering Chapter 2a - 42 HIENLTH
References
• Slide bài giảng CNPM, ĐH KHTN, TpHCM. • Trần Ngọc Bảo, Slide bài giảng CNPM, ĐH
Sư phạm TpHCM.
COMP1026 – Introduction to Software Engneering Chapter 2a - 43 HIENLTH
Q & A
44
COMP1026 – Introduction to Software Engneering Chapter 2a - 44 HIENLTH
THE END
COMP1026 – Introduction to Software Engneering Chapter 2a - 45 HIENLTH
Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu
COMP1026 – Introduction to Software Engneering Chapter 2b - 1 HIENLTH
Phần 2 ĐẶC TẢ YÊU CẦU
COMP1026 – Introduction to Software Engneering Chapter 2b - 2 HIENLTH
Đặc tả yêu cầu
• Đặc tả yêu cầu là quá trình bổ sung các
thông tin vào tài liệu xác định yêu cầu và phát triển các mô hình phân tích
• Quan trọng vì chi phí sửa đổi cao nếu gặp
sai sót
COMP1026 – Introduction to Software Engneering Chapter 2b - 3 HIENLTH
Đặc tả yêu cầu
• Có thể sử dụng các mô hình/lược đồ sau
để mô tả yêu cầu của khách hàng – Use-case diagram (OOM) – Activity diagram (OOM) – Business Process Model (BPM) – Requirement Model (RM) – Data Flow Diagram (DFD)
COMP1026 – Introduction to Software Engneering Chapter 2b - 4 HIENLTH
Mô hình hoá yêu cầu
• Vấn đề: Các mô tả về yêu cầu trong giai
đoạn xác định yêu cầu: – Chỉ mô tả các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực.
– Chưa thể hiện rõ nét việc thực hiện các
nghiệp vụ này trên máy tính.
– Mô tả thông qua các văn bản dễ gây ra nhầm
lẫn và không trực quan.
COMP1026 – Introduction to Software Engneering Chapter 2b - 5 HIENLTH
Mô hình hoá yêu cầu
• Mục tiêu:
– Mô hình hóa thế giới thực với các yêu cầu đã
xác định, giải quyết các vấn đề trên.
• Kết quả:
– Sơ đồ luồng dữ liệu của từng công việc – Sơ đồ phối hợp giữa các công việc
• Sơ đồ luồng dữ liệu:
– Là sơ đồ biểu thị các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực bên trong máy tính.
COMP1026 – Introduction to Software Engneering Chapter 2b - 6 HIENLTH
Nội dung
• Mô hình hóa yêu cầu: – Lược đồ Use-case – Khái niệm Actor và Usecase – Ví dụ
• Mô hình hóa các dòng dữ liệu của mỗi Use-case
– Giới thiệu Mô hình DFD – Sử dụng mô hình DFD để mô hình hóa yêu
cầu lưu trữ, tra cứu, tính toán, kết xuất
COMP1026 – Introduction to Software Engneering Chapter 2b - 7 HIENLTH
Mở đầu
• Đặt vấn đề:
– Các mô tả về yêu cầu trong giai đoạn xác
định yêu cầu: • Chỉ mô tả chủ yếu các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực, chưa thể hiện rõ nét việc thực hiện các nghiệp vụ trên máy tính
• Mô tả thông quá các văn bản dễ gây ra nhầm lẫn
và không trực quan Mô hình hóa yêu cầu
COMP1026 – Introduction to Software Engneering Chapter 2b - 8 HIENLTH
Use Case Diagram
• Ghi nhận chức năng hệ thống dưới góc nhìn của
người sử dụng
• Được xây dựng trong giai đoạn đầu của quy
trình
• Mục tiêu:
– Đặc tả ngữ cảnh của 01 hệ thống – Nắm bắt các yêu cầu của hệ thống – Xác nhận tính hợp lệ của kiến trúc hệ thống – Định hướng quá trình cài đặt và phát sinh các trường
hợp test
• Được dùng bởi nhà phân tích
COMP1026 – Introduction to Software Engneering Chapter 2b - 9 HIENLTH
Khái niệm Actor
Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống
Tên Actor
Con người
Phần mềm
Phần mềm khác
Phần cứng
COMP1026 – Introduction to Software Engneering Chapter 2b - 10 HIENLTH
Actor Nhóm người sử dụng
Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống
Tên Actor
Con người
Phần mềm
Phần mềm khác
Phần cứng
COMP1026 – Introduction to Software Engneering Chapter 2b - 11 HIENLTH
Ví dụ Xét phần mềm Quản lý học sinh cấp III
STT
Yêu cầu
Nhóm người dùng
1
Tiếp nhận học sinh
Giáo vụ?
2
Lập danh sách lớp
Giáo vụ?
3
Tra cứu học sinh
Mọi người? Phụ huynh? Học sinh?
4
Nhận bảng điểm môn
Giáo viên? Giáo vụ?
5
Xem báo cáo tổng kết
Ban giám hiệu?
6
Thay đổi quy định
Ban giám hiệu? Quản trị hệ thống?
Một nhóm người dùng tương ứng với một Actor Mỗi Nhóm người dùng (Actor) được quyền sử dụng một hay nhiều
chức năng trong hệ thống
Một chức năng có thể cho phép nhiều Nhóm người dùng sử dụng Nhiều nhóm người dùng có cùng các quyền hạn giống nhau Nên xét là 1 Actor hay nhiều Actor? Việc xác định Actor phụ thuộc ngữ cảnh và quy trình thực tế
COMP1026 – Introduction to Software Engneering Chapter 2b - 12 HIENLTH
Ví dụ Xét phần mềm Quản lý thư viện
STT
Yêu cầu
Nhóm người dùng
Lập thẻ độc giả
1
Thủ thư
Nhận sách mới
2
Thủ thư
Tra cứu sách
3
Thủ thư? Độc giả? Khách bất kỳ?
Lập phiếu mượn
4
Thủ thư
Nhận trả sách
5
Thủ thư
6
Thay đổi quy định
Thủ thư? Quản trị hệ thống?
COMP1026 – Introduction to Software Engneering Chapter 2b - 13 HIENLTH
Actor Phần cứng ngoại vi
Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống
Tên Actor
Con người
Phần mềm
Phần mềm khác
Phần cứng
COMP1026 – Introduction to Software Engneering Chapter 2b - 14 HIENLTH
Ví dụ
• Ví dụ:
– Phần mềm quản lý Siêu thị:
– Phần mềm quản lý cửa tự động:
• Đọc thông tin từ thiết bị đọc mã vạch Các thiết bị ngoại vi mà phần mềm cần tương tác
– Phần mềm quản lý ra vào các phòng trong công sở
• Đọc thông tin từ camera • Phát lệnh điều khiển mở cửa
– Phần mềm chống trộm
• Đọc tín hiệu từ đầu đọc thẻ từ • Phát lệnh điều khiển mở cửa Có cần liệt kê tất cả thiết bị ngoại vi?
• Đọc tín hiệu từ camera, sensor • Phát lệnh điều khiển ra loa, đèn, điện thoại…
COMP1026 – Introduction to Software Engneering Chapter 2b - 15 HIENLTH
Actor Phần mềm khác
Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống
Tên Actor
Con người
Phần mềm
Phần mềm khác
Phần cứng
COMP1026 – Introduction to Software Engneering Chapter 2b - 16 HIENLTH
Ví dụ
• Kết xuất/nạp dữ liệu từ Excel • Kết xuất dữ liệu báo cáo ra phần mềm gửi email
(Microsoft Outlook, Outlook Express…)
• Phần mềm trung gian kết nối để chuyển đổi email từ dạng Web-based sang POP3 (ví dụ Yahoo!Pop)
• …
COMP1026 – Introduction to Software Engneering Chapter 2b - 17 HIENLTH
Nhận diện các Actor
Trả lời một số câu hỏi như: • Ai là người sử dụng chức năng chính của hệ thống? • Ai cần sự hỗ trợ từ hệ thống để thực hiện công việc
thường nhật của họ?
• Ai phải thực hiện công việc bảo dưỡng, quản trị và giữ
cho hệ thống hoạt động?
• Hệ thống sẽ kiểm soát thiết bị phần cứng nào? • Hệ thống đang xây dựng cần tương tác với những hệ
thống khác hay không ?
• Ai hoặc vật thể nào quan tâm đến hay chịu ảnh hưởng
bởi kết quả mà hệ thống phần mềm tạo ra?
COMP1026 – Introduction to Software Engneering Chapter 2b - 18 HIENLTH
Khái niệm Use-Case
Use-Case
• Một Use-Case là một chuỗi các hành động mà hệ thống thực hiện mang lại một kết quả quan sát được đối với actor. • Có thể hiểu một Use-Case là một chức năng của hệ thống, mang một ý nghĩa nhất định đối với người dùng
COMP1026 – Introduction to Software Engneering Chapter 2b - 19 HIENLTH
Khái niệm Use-Case
Use-Case
• Mỗi use case có các thuộc tính sau:
• Action Steps • Extension Points • Exceptions • Pre-Conditions • Post-Conditions COMP1026 – Introduction to Software Engneering
Chapter 2b - 20 HIENLTH
Khái niệm Use-Case
Use-Case
•Action Steps:
• Mô tả các bước thông thường tương tác thực hiện
giữa người dùng và hệ thống khi Use case này
COMP1026 – Introduction to Software Engneering Chapter 2b - 21 HIENLTH
Khái niệm Use-Case
•Action Steps:
• Chọn chức năng xem thời khóa biểu • Hiển thị màn hình cho phép người dùng chọn thông
tin cần xem gì
• Chọn niên khóa từ danh sách hiện có trong hệ
thống
• Chọn học kỳ từ danh sách hiện có trong hệ thống • Chọn lớp hoặc tên giảng viên cần xem trong danh
sách lớp và giảng viên hiện có trong hệ thống
• Hiển thị thông tin chi tiết thời khóa biểu lớp hoặc
thời khóa biểu của giảng viên
COMP1026 – Introduction to Software Engneering Chapter 2b - 22 HIENLTH
Khái niệm Use-Case
Use-Case
•Extension Points:
• Mô tả các trường hợp ngoại lệ khi sử dụng
Use case này
COMP1026 – Introduction to Software Engneering Chapter 2b - 23 HIENLTH
Khái niệm Use-Case
•Extension Points:
• Nếu người dùng hủy bỏ chức năng xem thời khóa biểu thì hệ thống quay trở lại màn hình trước khi người dùng chọn chức năng xem thời khóa biểu • Nếu người dùng chọn xem thời khóa biểu của tất cả các lớp thì hiển thị TKB của tất cả các lớp các lớp • Người dùng có thể chọn xem thời khóa biểu của tất
cả các giảng viên
• Người dùng có thể in thời khóa biểu của từng lớp • Người dùng có thể in thời khóa biểu của từng giảng
viên
COMP1026 – Introduction to Software Engneering Chapter 2b - 24 HIENLTH
Khái niệm Use-Case
Use-Case
•Exceptions
• Xử lý lỗi xảy ra trong quá trình người dùng
sử dụng chức năng này
COMP1026 – Introduction to Software Engneering Chapter 2b - 25 HIENLTH
Khái niệm Use-Case
•Exceptions
• Người dùng chọn lớp chưa có thông tin, hệ thống báo lỗi và yêu cầu người dùng chọn lớp khác
• Người dùng chọn giảng viên chưa có thông tin, hệ thống báo lỗi và yêu cầu người dùng chọn giảng viên khác
• Trình duyệt không hiển thị được do lỗi javascript, hệ thống báo lỗi và yêu cầu người dùng chọn trình duyệt khác (ví dụ FireFox, Mozila,..) COMP1026 – Introduction to Software Engneering
Chapter 2b - 26 HIENLTH
Khái niệm Use-Case
•Exceptions
• Trình duyệt không hiển thị được do lỗi timeout) hệ đường truyền mạng (Request thống yêu cầu người dùng refresh lại chức năng này
• Trình duyệt không hiển thị được do lỗi kết nối CSDL (Connection) hệ thống yêu cầu người dùng refresh lại chức năng này
• …
COMP1026 – Introduction to Software Engneering Chapter 2b - 27 HIENLTH
Khái niệm Use-Case
Use-Case
•Pre-Conditions
• Điều kiện cần để thực hiện hành động
COMP1026 – Introduction to Software Engneering Chapter 2b - 28 HIENLTH
Khái niệm Use-Case
Use-Case
•Post-Conditions
• Điều kiện cần để kết thúc hành động
COMP1026 – Introduction to Software Engneering Chapter 2b - 29 HIENLTH
Ví dụ
Xét phần mềm Quản lý học sinh cấp III
STT
Yêu cầu
1
Tiếp nhận học sinh
2
Lập danh sách lớp
3
Tra cứu học sinh
4
Nhận bảng điểm môn
5
Xem báo cáo tổng kết
6
Thay đổi quy định
Có bao nhiêu Use-case trong ví dụ này?
Bao gồm cả tính năng Thêm mới, Xóa, và Sửa
COMP1026 – Introduction to Software Engneering Chapter 2b - 30 HIENLTH
Ví dụ
Xét phần mềm Quản lý học sinh cấp III
STT
Yêu cầu
1
Tiếp nhận học sinh
2
Lập danh sách lớp
3
Tra cứu học sinh
4
Nhận bảng điểm môn
5
Xem báo cáo tổng kết
6
Thay đổi quy định
Có bao nhiêu Use-case trong ví dụ này?
Bao gồm cả tính năng Thêm mới, Xóa, và Sửa
COMP1026 – Introduction to Software Engneering Chapter 2b - 31 HIENLTH
Ví dụ
Xét phần mềm Quản lý thư viện
STT
Yêu cầu
1
Lập thẻ độc giả
2
Nhận sách mới
3
Tra cứu học sinh
4
Lập phiếu mượn
5
Nhận trả sách
6
Thay đổi quy định
Có bao nhiêu Use-case trong ví dụ này?
COMP1026 – Introduction to Software Engneering Chapter 2b - 32 HIENLTH
Ví dụ
Phần mềm thí nghiệm mạch điện
STT
Yêu cầu
1
Sắp đặt mạch điện
2
Cung cấp nguồn điện
3
Thay đổi thông số
4
Lưu bài thí nghiệm
5
Lấy lại thí nghiệm
6
Thay đổi quy định
Có bao nhiêu Use-case trong ví dụ này?
COMP1026 – Introduction to Software Engneering Chapter 2b - 33 HIENLTH
Tìm kiếm Use Case
Trả lời một số câu hỏi như: • Actor yêu cầu chức năng gì của hệ thống? • Actor cần phải đọc, tạo, xoá, sửa đổi hoặc lưu
trữ thông tin nào đó của hệ thống không?
• Actor cần thiết phải được cảnh báo về những sự kiện trong hệ thống, hay actor cần phải báo hiệu cho hệ thống về vấn đề nào đó không?
• Hệ thống có thể hỗ trợ một số công việc thường
nhật của actor nào đó hay không?
COMP1026 – Introduction to Software Engneering Chapter 2b - 34 HIENLTH
Tìm kiếm Use Case (tt)
Một số câu hỏi khác cần chú ý: • Hệ thống cần dữ liệu input/ouput nào? Dữ
liệu đó đến từ đâu?
• Những khó khăn nào liên quan đến hiện
thực của hệ thống hiện tại (chẳng hạn hệ thống quản lý bằng giấy tờ nên được thay thế bằng hệ thống quản lý trên máy tính)?
COMP1026 – Introduction to Software Engneering Chapter 2b - 35 HIENLTH
Sơ đồ Use-case
Sự tương tác giữa Actor và Use-case Chiều của mũi tên thể hiện vai trò chủ động trong sự tương tác
Kiểm tra tài khoản
Khách hàng
Rút tiền
COMP1026 – Introduction to Software Engneering Chapter 2b - 36 HIENLTH
Tổng quát hóa giữa các Actor
Người sử dụng
Giáo vụ
Giáo viên
COMP1026 – Introduction to Software Engneering Chapter 2b - 37 HIENLTH
Quan hệ giữa các Use Case
• Use case – Use case
– Dependency: Phụ thuộc
Nhap TKB
<
Giao vu
Dang Nhap
COMP1026 – Introduction to Software Engneering Chapter 2b - 38 HIENLTH
Quan hệ giữa các Use Case
• Use case – Use case
– Generalization: Kế thừa
Xem TKB
Xem TKB Sinh vien
Xem TKB Giang vien
Giang vien
Sinh vien
COMP1026 – Introduction to Software Engneering Chapter 2b - 39 HIENLTH
Ví dụ minh họa
• Use case diagrams mô tả hệ thống quản lý thời
khóa biểu: – Actor:
• Giáo vụ khoa • Giảng viên • Sinh viên – Use case:
• Xem thời khóa biểu • Nhập thời khóa biểu • Sửa thời khóa biểu • Xóa thời khóa biểu • Đăng nhập
COMP1026 – Introduction to Software Engneering Chapter 2b - 40 HIENLTH
Ví dụ minh họa
• Use case diagram mô tả hệ thống quản lý
thời khóa biểu
COMP1026 – Introduction to Software Engneering Chapter 2b - 41 HIENLTH
Tạo Use case diagram trong Power Designer
• Tạo mới Use Case Diagram ? • Tạo actor • Tạo Use case • Mô tả thuộc tính cho Use case • Tạo mối quan hệ giữa các Use case/actor, use case/use case
• Phát sinh report
COMP1026 – Introduction to Software Engneering Chapter 2b - 42 HIENLTH
Ví dụ: Hệ thống ATM
Một khách hàng có thể muốn gửi tiền vào, rút tiền ra hoặc đơn giản kiểm tra lại số tiền trong tài khoản của anh ta qua máy tự động rút tiền (ATM). Khi đưa tiền vào hoặc rút tiền ra, cần phải ghi ra giấy kết quả những chuyển dịch đã thực hiện và trao tờ giấy này cho khách hàng.
Quan sát các chức năng căn bản và các thành phần tham gia, ta thấy có hai tác nhân dễ nhận ra nhất là khách hàng và ATM. Qua đó, có thể nhận dạng các Use Case sau: • Gửi tiền vào. • Rút tiền ra. • Kiểm tra mức tiền trong tài khoản • Thực hiện các chuyển dịch nội bộ hệ thống • In kết quả các chuyển dịch đã thực hiện.
COMP1026 – Introduction to Software Engneering Chapter 2b - 43 HIENLTH
Ví dụ: Hệ thống ATM (tt)
Các Use case trong hệ thống ATM
COMP1026 – Introduction to Software Engneering Chapter 2b - 44 HIENLTH
Mô tả hoạt động rút tiền từ ATM
1. Use-Case bắt đầu khi khách hàng đưa thẻ tín dụng vào. Hệ thống đọc và kiểm tra thông tin của thẻ. 2. Hệ thống nhắc nhập số PIN. Hệ thống kiểm tra số
PIN.
3. Hệ thống hỏi tác vụ nào khách hàng muốn thực
hiện. Khách hàng chọn “Rút tiền”.
4. Hệ thống hỏi số lượng. Khách hàng nhập số lượng. 5. Hệ thống yêu cầu nhập kiểu tài khoản. Khách hàng
chọn “Tài khoản thẻ”.
6. Hệ thống liên lạc với ATM network . . . Yêu cầu: Vẽ sơ đồ Use Case Diagram mô tả hoạt động
rút tiền của khách hàng.
COMP1026 – Introduction to Software Engneering Chapter 2b - 45 HIENLTH
Ví dụ về đặc tả phần mềm
Mô tả qui trình xử lý nhập học trong ứng dụng
quản lý sinh viên ?
• Đối tượng, bộ phận, phòng ban nào tham gia
vào quy trình ? – Sinh viên – Phòng đào tạo – Văn phòng khoa – Phòng tài chính (nếu cần)
• Thực hiện những công việc gì ?
– Chuẩn bị hồ sơ nhập học – Nộp hồ sơ – Nhập hồ sơ – ….
COMP1026 – Introduction to Software Engneering Chapter 2b - 46 HIENLTH
Ví dụ về đặc tả phần mềm
• Dùng BPM để mô tả quy trình xử lý nhập học.
COMP1026 – Introduction to Software Engneering Chapter 2b - 47 HIENLTH
Ví dụ về đặc tả phần mềm
• Dùng BPM để mô tả quy trình xử lý nhập học.
COMP1026 – Introduction to Software Engneering Chapter 2b - 48 HIENLTH
Ví dụ về đặc tả phần mềm
• Dùng BPM để mô tả quy trình xử lý nhập
học.
COMP1026 – Introduction to Software Engneering Chapter 2b - 49 HIENLTH
Các thành phần trong sơ đồ BPM
SInh Vien
• Organization Unit
Tiep nhan TKB
• Process
CSDL QLSV : 2
• Resource
Kiem tra hop le
• Decision
TKB lop
Xep TKB
CSDL TKB
• Flow/Resource Flow
• Start/End/Synchronization
COMP1026 – Introduction to Software Engneering Chapter 2b - 50 HIENLTH
Sơ đồ luồng dữ liệu (DFD)
• Các ký hiệu
Tác nhân/thiết bị (Người sử dụng, thiết bị phát sinh hay tiếp nhận dữ liệu)
Khối xử lý
Luồng dữ liệu (thông tin)
Bộ nhớ phụ (Hồ sơ, Sổ sách, tập tin, csdl…)
COMP1026 – Introduction to Software Engneering Chapter 2b - 51 HIENLTH
Các cấp sơ đồ
• Các cấp sơ đồ
– Cấp 0: Toàn bộ phần mềm là một khối xử lý – Cấp 1: Sơ đồ cấp 0 có thể phân rã thành
nhiều sơ đồ cấp 1, các sơ đồ cấp 1 này phải đảm bảo thể hiện đầy đủ ý nghĩa sơ đồ cấp 0 (tác nhân, thiết bị, luồng dữ liệu, xử lý, bộ nhớ phụ)
– Cấp 2: Mỗi sơ đồ cấp 1 lại có thể phân rã
thành nhiều sơ đồ cấp 2 tương tự như việc phân rã của sơ đồ cấp 0
– …
COMP1026 – Introduction to Software Engneering Chapter 2b - 52 HIENLTH
Ví dụ: sơ đồ cấp 0
Bo Phan Nghien Cuu Thi Truong
Thong Tin Thi Truong
1
Yeu Cau Lap Dat
Ket Qua Yeu Cau
Quan Ly Lap Dat Thue Bao
Khach Hang
Hop Dong
+
Bang Bao Cao
Yeu Cau Vat Tu Cap
Yeu Cau Vat Tu Tong Dai
Ban Giam Doc
COMP1026 – Introduction to Software Engneering Chapter 2b - 53 HIENLTH
CSDL Yeu Cau Khach Hang
Thong tin Yeu Cau chua duoc dap ung
Bo Phan Nghien Cuu Thi Truong
Du Lieu Yeu Cau
Tinh Trang Yeu Cau Khach Hang
Du Lieu Yeu Cau
[Thong Tin Thi Truong]
1.1
1.4
Yeu Cau Mo Rong
Ví dụ: sơ đồ cấp 1
Xu Ly Yeu Cau
1.2 Xu Ly Yeu Cau Mo Rong
+
Lap Ke Hoach +
[Yeu Cau Lap Dat]
[Ket Qua Yeu Cau]
Bang Ke Hoach
Khach Hang
Cac Yeu Cau Co The Dap Ung
Bang Tai Nguyen
Bang Tai Nguyen
[Hop Dong]
Thong Tin Tong Dai va Tuyen Cap
1.3
Thong Tin Thue Bao
Thong Tin Cap _ Thue Bao
1.5 Lap Dat He Thong va Quan Ly Mang +
Lap Dat Thue Bao +
[Yeu Cau Vat Tu Cap]
[Bang Bao Cao]
[Yeu Cau Vat Tu Tong Dai]
Ban Giam Doc
COMP1026 – Introduction to Software Engneering Chapter 2b - 54 HIENLTH
Sơ đồ tổng quát
Dữ liệu xuất
Dữ liệu nhập
Ý nghĩa từng dòng dữ liệu D1:……………. D2:……………. D3:……………. D4:……………. D5:……………. D6:…………….
D1
D2
D5
Người dùng
D6
Xử lý … Thiết bị xuất Thiết bị nhập
D3
D4
Thuật toán xử lý: -Bước 1:……………… -Bước 2:……………… -Bước 3:……………… -………………………..
Dữ liệu ghi Dữ liệu đọc
COMP1026 – Introduction to Software Engneering Chapter 2b - 55 HIENLTH
Sơ đồ tổng quát cho Yêu cầu lưu trữ
• D1: Thông tin cần lưu trữ (dựa vào
Người dùng
biểu mẫu liên quan)
• D5: Thông tin cần lưu trữ (chỉ có trong một số yêu cầu đặc biệt)
D1
D2
D5
Thiết bị nhập
Xử lý LT
Thiết bị xuất
• D3:
D6
– Các danh mục để chọn lựa – Dữ liệu cần thiết cho việc kiểm tra tính hợp lệ (dựa vào quy định)
D3
D4
• D2:
– Các danh mục để chọn lựa – Kết quả thành công/thất bại • D4: Dữ liệu được lưu trữ (dựa vào
biểu mẫu). – Ghi chú: Thông thường D4 = D1 (+ D5) (+ ID tự phát sinh)
• D6: Dữ liệu kết xuất (chỉ có trong
một số yêu cầu đặc biệt)
COMP1026 – Introduction to Software Engneering Chapter 2b - 56 HIENLTH
Sơ đồ tổng quát cho Yêu cầu lưu trữ
• Xử lý lưu trữ
– Đọc D3 để lấy các tham số,
quy định và danh mục
Người dùng
– Hiển thị D2 (các danh mục) – Nhận thông tin D1, D5 (nếu
D1
D2
cần)
D5
– Kiểm tra các thông tin D1, D5
Thiết bị nhập
Xử lý LT
Thiết bị xuất
D6
có thỏa quy định liên quan hay không (dựa vào D3 nếu cần thiết)
D3
D4
– Nếu thỏa quy định, ghi D4, thông báo kết quả D2 (nếu cần) và xuất D6 (nếu cần thiết)
COMP1026 – Introduction to Software Engneering Chapter 2b - 57 HIENLTH
Sơ đồ tổng quát cho Yêu cầu lưu trữ
• Ghi chú:
– D1 không nhất thiết chứa
Người dùng
toàn bộ thông tin trong biểu mẫu liên quan
– Tùy theo quy định có thể có
D1
D2
hay không có D5
D5
Thiết bị nhập
Xử lý LT
Thiết bị xuất
D6
– D4 hoặc D6 không nhất thiết phải trùng với D1 hoặc D5 – D2 không nhất thiết phải
trùng với D3
D3
D4
COMP1026 – Introduction to Software Engneering Chapter 2b - 58 HIENLTH
Sơ đồ tổng quát cho Yêu cầu tra cứu
• D1: Thông tin về đối tượng muốn tìm
Người dùng
kiếm (dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm)
D1
D2
• D5: Thông tin về đối tượng muốn tìm kiếm (chỉ có trong một số yêu cầu đặc biệt) • D3:
D5
Thiết bị nhập
Xử lý TC
Thiết bị xuất
– Các danh mục để chọn lựa – Dữ liệu về đối tượng khi tìm thấy
D6
(dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm)
• D2:
D3
D4
– Các danh mục để chọn lựa – Dữ liệu về đối tượng khi tìm thấy
(dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm)
• D6: Dữ liệu kết xuất (thông thường là
cần thiết)
• D4: Dữ liệu cần lưu trữ lại
– Thông thường không cần thiết – Cần thiết khi nào??? Chapter 2b - 59
HIENLTH COMP1026 – Introduction to Software Engneering
Sơ đồ tổng quát cho Yêu cầu tra cứu
• Xử lý tra cứu
Người dùng
– Đọc để lấy các danh mục (D3) – Hiển thị D2 (các danh mục) – Nhận thông tin về tiêu chí tìm
kiếm D1, D5 (nếu cần)
D1
D2
D5
Thiết bị nhập
Xử lý TC
Thiết bị xuất
– Tìm kiếm theo các tiêu chí D1, D5, nhận được danh sách các đối tượng tìm được (D3)
D6
– Hiển thị thông tin kết quả (D2)
và kết xuất D6 (nếu cần)
D3
D4
COMP1026 – Introduction to Software Engneering Chapter 2b - 60 HIENLTH
Sơ đồ tổng quát cho Yêu cầu tra cứu
• Ghi chú:
Người dùng
– Có rất nhiều mức độ khác nhau từ rất đơn giản đến rất phức tạp để xác định D1
D1
D2
D5
Thiết bị nhập
Xử lý TC
Thiết bị xuất
D6
D3
– D1 chức nhiều thông tin thì việc tìm kiếm sẽ dễ dàng cho người dùng và ngược lại sẽ khó khăn cho phần thiết kế và cài đặt chức năng này – D3 thông thường là danh sách các đối tượng tìm thấy cùng với thông tin liên quan.
D4
– D3 cũng có rất nhiều mức độ khác nhau để xác định các thông tin của đối tượng tìm thấy
– D2 và D6 thường trùng với D3
(nhưng không nhất thiết) Chapter 2b - 61
HIENLTH COMP1026 – Introduction to Software Engneering
Sơ đồ tổng quát cho Yêu cầu tính toán
Người dùng
• D1: Thông tin về đối tượng cần thực hiện việc xử lý tính toán (dựa vào các biểumẫuliênquan)
D1
D2
• D5: Thông tin về đối tượng cần thực hiện việc xử lý tính toán (chỉ có trong một số yêu cầu đặc biệt)
D5
Thiết bị nhập
Xử lý TT
Thiết bị xuất
D6
D3
• D3:
D4
– Dữ liệu cần thiết cho việc xử lý tính toán (dựa vào biểu mẫu và quy định liên quan) – Các tham số tính toán • D4: Kết quả của xử lý tính toán • D2: Kết quả của xử lý tính toán
(thường gồm cả D3 và D4)
• D6: Dữ liệu kết xuất (thường gồm cả
D3 và D4)
COMP1026 – Introduction to Software Engneering Chapter 2b - 62 HIENLTH
Sơ đồ tổng quát cho Yêu cầu tính toán
• Xử lý tính toán
– Nhận thông tin D1, D5 (nếu
cần)
Người dùng
D1
D2
– Đọc D3 để lấy các dữ liệu cần thiết cho việc tính toán (kể cả các tham số)
D5
Thiết bị nhập
Xử lý TT
Thiết bị xuất
D6
– Sử dụng D1, D3, D5 và quy định liên quan để tính kết quả D4
D3
D4
– Ghi kết quả D4 – Hiển thị thông tin kết quả D2
và kết xuất D6
COMP1026 – Introduction to Software Engneering Chapter 2b - 63 HIENLTH
Sơ đồ tổng quát cho Yêu cầu tính toán
• Ghi chú:
Người dùng
D1
D2
D5
Thiết bị nhập
Xử lý TT
Thiết bị xuất
D6
– D1 thường có chứa yếu tố thời gian thực hiện xử lý tính toán – Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng) – D1 có thể rỗng (tính toán cho mọi đối tượng trong tất cả cột mốc thời gian liên quan) – D4 có thể có hay không có
D3
D4
=> Khi nào cần D4?
– Thông thường D2 và D6 bao
gồm D3 và D4
COMP1026 – Introduction to Software Engneering Chapter 2b - 64 HIENLTH
Sơ đồ tổng quát cho Yêu cầu báo biểu
Người dùng
D1
D2
D5
• D1: Thông tin về báo biểu muốn thực hiện (dựa vào biểumẫuliênquan) • D5: Thông tin về báo biểu muốn thực hiện (chỉ có trong một số yêu cầu đặc biệt)
Thiết bị nhập
Xử lý BB
Thiết bị xuất
D6
• D3: Dữ liệu cần thiết cho việc tưực hiện báo biểu (dựa vào biểu mẫu và quy định liên quan)
D3
D4
• D4: Thông tin có trong báo biểu liên quan (cần thiết phải lưu lại) nhưng chưa được xử lý và ghi nhận lại (yêu cầu xử lý tính toán)
• D2: Thông tin về báo biểu được lập
(biểu mẫu liên quan)
• D6: Dữ liệu kết xuất (thường giống D2)
COMP1026 – Introduction to Software Engneering Chapter 2b - 65 HIENLTH
Sơ đồ tổng quát cho Yêu cầu báo biểu
• Xử lý báo biểu
– Nhận thông tin D1, D5 (nếu
Người dùng
cần)
– Đọc D3 để lấy các dữ liệu cần
D1
D2
thiết cho việc lập báo biểu
D5
Thiết bị nhập
Xử lý BB
Thiết bị xuất
D6
– Nếu có D4 thì tính toán theo quy định và Ghi kết quả D4 – Hiển thị thông tin báo biểu D2
và kết xuất D6
D3
D4
COMP1026 – Introduction to Software Engneering Chapter 2b - 66 HIENLTH
Sơ đồ tổng quát cho Yêu cầu báo biểu
• Ghi chú:
– D1 thường có chứa yếu tố thời
Người dùng
gian của báo biểu
D1
D2
– Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng)
D5
Thiết bị nhập
Xử lý BB
Thiết bị xuất
– D4 có thể có hay không có
D6
=> Khi nào cần D4?
– Thông thường D2 và D6 bao
D3
gồm D3 và D4
D4
COMP1026 – Introduction to Software Engneering Chapter 2b - 67 HIENLTH
Bài tập
• Đặc tả yêu cầu và xây dựng Use case diagram
cho các ứng dụng sau: – Quản lý giải bóng đá vô địch quốc gia – Quản lý bình chọn bài hát hay Làn sóng xanh – Quản lý giáo vụ trường đại học – Quản lý giáo vụ trường phổ thông – Quản lý bán hàng – Quản lý học viên trung tâm tin học, ngoại ngữ – Quản lý nhân sự -tiền lương – Quản lý bán hàng trực tuyến – Quản lý nhà trẻ – …
COMP1026 – Introduction to Software Engneering Chapter 2b - 68 HIENLTH
References
Bài giảng này 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. • Giáo trình “Nhập môn Công nghệ Phần mềm”,
Nguyễn Tiến Huy, ĐH KHTN TpHCM
COMP1026 – Introduction to Software Engneering Chapter 2b - 69 HIENLTH
Q & A
70
COMP1026 – Introduction to Software Engneering Chapter 2b - 70 HIENLTH
Câu hỏi và thảo luận
?
COMP1026 – Introduction to Software Engneering Chapter 2b - 71 HIENLTH
Chủ đề 3 (tt): Phân tích Phần mềm
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 1 HIENLTH
Phân tích Hướng đối tượng
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 2 HIENLTH
Nội dung
• Sơ đồ lớp ở mức phân tích
– Xác định các lớp đối tượng chính – Xác định các thông tin và hành động/trách nhiệm của mỗi lớp
đối tượng chính
– Xác định các quan hệ chính – Xác định các lớp đối tượng phụ, các danh mục • Sơ đồ lớp và Khả năng tiến hóa của hệ thống • Sơ đồ trạng thái
– Khái niệm và các ký hiệu
– Áp dụng
• Trạng thái • Biến cố, điều kiện • Trạng thái đầu, trạng thái cuối • Superstate
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 3 HIENLTH
Một số khái niệm mở đầu
• Vấn đề: Mô tả lại bằng một ngôn ngữ nào đó
(thường là các sơ đồ) nhằm diễn tả trực quan về vấn đề
• Phân tích: xây dựng mô hình Thế giới thực • Phân tích theo hướng đối tượng: xây dựng các mô hình về các đối tượng của Thế giới thực
• Một số loại Sơ đồ:
– Sơ đồ lớp đối tượng: Mô tả hệ thống các lớp đối tượng (thuộc tính, hành động) cùng với các quan hệ giữa chúng
– Sơ đồ trạng thái: Mô tả chu trình sống của đối tượng – …
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 4 HIENLTH
Nhắc lại về hướng đối tượng
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 5 HIENLTH
Nhắc lại về hướng đối tượng
Một số ký hiệu
Tên class
Tên class
(Các) thuộc tính
(Các) phương thức
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 6 HIENLTH
Public/Protected/Private
+ # -
Thuộc tính/Phương thức public Thuộc tính/Phương thức protected Thuộc tính/Phương thức private
Class
- privateAttribute # protectedAttribute
Phương thức Private
+publicOp() # protectedOp() - privateOp()
Phương thức Protected
Phương thức Public
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 7 HIENLTH
Tầm vực
• Xác định số lượng thể hiện của thuộc tính
/ phương thức
Class
- classifierScopeAttribute
- instanceScopeAttribute
classifierScopeOperation()
instanceScopeOperation()
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 8 HIENLTH
Ví dụ
CSinhVien
- name - address - studentID - nextAvailID : int
+ addSchedule(theSchedule : Schedule, forSemester : Semester) + getSchedule(forSemester : Semester) : Schedule + hasPrerequisites(forCourseOffering : CourseOffering) : boolean # passed(theCourseOffering : CourseOffering) : boolean + getNextAvailID() : int
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 9 HIENLTH
Nhận xét
Bình thường: Class bình thường In nghiêng: Class thuần ảo Gạch dưới: Object (không phải class)
Tên class
(Các) thuộc tính
Bình thường: Thuộc tính bình thường In nghiêng: không sử dụng Gạch dưới: Thuộc tính static
(Các) phương thức
Bình thường: Phương thức bình thường In nghiêng: Phương thức virtual Gạch dưới: Phương thức static
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 10 HIENLTH
Ví dụ # int MaLoaiHinhVe
CHinhVe
+ float DienTich() + float ChuVi() + void Ve() + ...
CTamGiac CTuGiac CEllipse
# CDiem # CDiem # CDiem P1 P2 P3 # CDiem # float # float Tam A B
# CDiem # CDiem # CDiem # CDiem P1 P2 P3 P4
+ CTamGiac() + float DienTich() + float ChuVi() + void Ve() + ... + CEllipse() + float DienTich() + float ChuVi() + void Ve() + ...
+ CTuGiac() + float DienTich() + float ChuVi() + void Ve() + ...
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 11 HIENLTH
Quan hệ giữa các lớp đối tượng
• Quan hệ kế thừa
– ClassB kế thừa từ ClassA – ClassB là một trường hợp đặc biệt của ClassA – ClassA là trường hợp tổng quát của ClassB
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 12 HIENLTH
Quan hệ giữa các lớp đối tượng
• Quan hệ Association
• Hoặc
– Trong ClassA có thuộc tính có kiểu là ClassB
• Hoặc
– Trong ClassB có thuộc tính có kiểu là ClassA • Nhận xét: Về mặt lập trình, thuộc tính có thể được lưu trữ dạng biến đơn, biến mảng, hay biến con trỏ
• Ví dụ: ?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 13 HIENLTH
Quan hệ giữa các lớp đối tượng
• Quan hệ Aggregation
• Đã xác định được ClassA và ClassB có quan hệ
Association với nhau – Xác định rõ hơn:
• Trong object của ClassA có chứa (trong phần
thuộc tính) object của ClassB
• ObjectX của ClassA bị hủy thì ObjectY của ClassB
(bên trong ObjectX) vẫn có thể còn tồn tại
• Ví dụ: ?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 14 HIENLTH
Quan hệ giữa các lớp đối tượng
• Quan hệ Composition
• Đã xác định được ClassA và ClassB có quan hệ
Association với nhau – Xác định rõ hơn:
• Trong object của ClassA có chứa (trong phần
thuộc tính) object của ClassB
• ObjectX của ClassA bị hủy thì ObjectY của ClassB
(bên trong ObjectX) không thể còn tồn tại
– Ví dụ: ?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 15 HIENLTH
Quan hệ giữa các lớp đối tượng
• Chiều của quan hệ (Association,
Aggregation, Composition)
• Nếu quan hệ là 1 chiều: đa số các lời gọi hàm được gọi theo đúng chiều của quan hệ
• Nếu quan hệ là 2 chiều: không vẽ mũi tên
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 16 HIENLTH
Quan hệ giữa các lớp đối tượng
• Bản số - Multiplicity (Association, Aggregation,
Composition)
– Ý nghĩa – Ví dụ: • 1 • 2 • 1..* • 0..* • * • 1, 3, 5..9
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 17 HIENLTH
Quan hệ giữa các lớp đối tượng
• Quan hệ Dependency
– ClassA và ClassB không có quan hệ Association – ClassA “phụ thuộc” vào ClassB
Tham số truyền vào Kết quả trả ra Biến cục bộ
class A { class A { class A {
void F() {
Trong ClassA có sử dụng biến toàn cục (kiểu B), hoặc sử dụng phương thức/thuộc tính static của ClassB
B x;
void F(B x) { … } B F() { … } }
}; }; };
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 18 HIENLTH
Xây dựng sơ đồ lớp ở mức phân tích
CLASS DIAGRAM
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 19 HIENLTH
Class Diagram
• Được xây dựng và hiệu chỉnh trong suốt
quá trình phát triển
• Mục tiêu:
– Đặt tên và lập mô hình các khái niệm trong
hệ thống
– Đặc tả sự cộng tác – Đặc tả sơ đồ CSDL
• Được phát triển bởi phân tích viên, thiết
kế viên, lập trình viên
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 20 HIENLTH
Lập danh sách các đối tượng
• Tiêu chuẩn nhận dạng đối tượng
– Định danh: Đối tượng phải có tên (thường là danh từ/ngữ danh
từ)
– Chu trình sống: có thời điểm sinh ra, có khoảng thời gian hoạt
động, có thời điểm chấm dứt
– Sự độc lập tương đối với các đối tượng khác – … • Đề nghị:
– Con người – Vật thể – Tổ chức – Vật lý – Không gian – Thời gian…
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 21 HIENLTH
Lập danh sách các đối tượng
• Lập danh sách các đối tượng liên quan
đến hệ thống
Đối tượng đề nghị
Không là đối tượng Là đối tượng
Không được quan tâm Được quan tâm
Tiêu chuẩn nhận dạng đối tượng: có rất nhiều trường phái
Đối tượng phụ Đối tượng chính
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 22 HIENLTH
Ví dụ
• Ví dụ: Xét ngữ cảnh là 1 trường PTTH với phần
mềm quản lý trường cấp 3:
• Danh sách đề nghị:
– Học sinh – Giáo viên – Môn học – Lớp – Học kỳ – Năm học
Tổ Bộ môn BGH Khối Phụ huynh ĐTB Diện HS
Số tiết TKB Bảng điểm Phòng Học phí …
• Đối tượng/Không phải đối tượng?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 23 HIENLTH
Ví dụ
• Được quan tâm?
– Phần mềm quản lý học sinh:
• Học sinh, Giáo viên, Môn học, Lớp, Khối, Phụ
huynh, Học kỳ, Năm học… – Phần mềm quản lý giáo viên:
• Giáo viên, Tổ bộ môn, Môn học, Khối, Lớp, Học kỳ,
Năm học…
– Phần mềm xếp thời khóa biểu:
• Giáo viên, Môn học, Lớp, Phòng, Học kỳ,Năm
học…
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 24 HIENLTH
Ví dụ
• Đối tượng chính?Đối tượng phụ – Phần mềm quản lý học sinh:
• Học sinh, Giáo viên, Môn học, Lớp, Khối, Phụ
huynh, Học kỳ, Năm học… – Phần mềm quản lý giáo viên:
• Giáo viên, Tổ bộ môn, Môn học, Khối, Lớp, Học kỳ,
Năm học…
– Phần mềm xếp thời khóa biểu:
• Giáo viên, Môn học, Lớp, Phòng, Học kỳ,Năm
học…
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 25 HIENLTH
Lập danh sách các quan hệ
• Tiêu chí đánh giá:
– Động từ – Sự phụ thuộc giữa các đối tượng (chủ yếu xét các đối tượng
chính)
• Đề nghị:
– Quan hệ theo thời gian
• Ít biến động: sau 1 thời gian dài mới thay đổi (thường làm
về mặt tổ chức)
• Biến động: quan hệ xảy ra vào lúc nào, trong thông tin có thuộc tính về thời gian, thay đổi theo thời gian (thường quan tâm nhiều đến loại quan hệ này)
– Quan hệ về tổ chức (thường liên quan đến đối tượng phụ) – Quan hệ về không gian (thường liên quan đến đối tượng phụ – Quan hệ theo vai trò: Chủ động/Bị động
• Ví dụ:?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 26 HIENLTH
Nhận dạng thuộc tính
• Sự phụ thuộc (không có ý nghĩa rõ ràng khi
đứng độc lập) – Phụ thuộc một đối tượng Thuộc tính của đối tượng – Phụ thuộc nhiều đối tượng Thuộc tính của quan hệ
• Các loại thuộc tính
– Định danh (thường của đối tượng) – Phân loại – Thời gian – Không gian – Định lượng – … • Ví dụ: ?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 27 HIENLTH
Các bước xây dựng sơ đồ lớp ở mức phân tích
• Bước 1: Xác định các lớp đối tượng, quan hệ và thuộc tính trực tiếp từ yêu cầu của hệ thống – Xét lần lượt từng biểu mẫu và quy định
• Nếu trong sơ đồ lớp hiện tại chưa có thể lưu trữ
được thông tin cần thiết:
– Cần bổ sung thuộc tính vào lớp đối tượng đã
có?
– Cần bổ sung thuộc tính vào quan hệ đã có? – Cần bổ sung thêm quan hệ giữa các lớp đối
tượng đã có?
– Cần bổ sung thêm lớp đối tượng mới?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 28 HIENLTH
Các bước xây dựng sơ đồ lớp ở mức phân tích
• Bước 2:
– Nếu một lớp đối tượng có thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính có liên hệ chặt chẽ với nhau và có ngữ nghĩa cụ thể thì nên tách ra thành lớp đối tượng phụ
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 29 HIENLTH
Các bước xây dựng sơ đồ lớp ở mức phân tích
• Bước 3:
– 3.1. Nhiều lớp đối tượng có nhiều đặc điểm chung
Xây dựng lớp đối tượng tổng quát chung cho các lớp đối tượng cụ thể này
– 3.2. Một lớp đối tượng có thuộc tính phân loại và cách xử lý trong các phương thức của đối tượng thuộc lớp này phụ thuộc vào giá trị của thuộc tính phân loại Tách lớp đối tượng này thành nhiều lớp đối tượng con tương ứng với mỗi (nhóm) giá trị của thuộc tính phân loại
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 30 HIENLTH
Các bước xây dựng sơ đồ lớp ở mức phân tích
• Bước 4:
– Hiệu chỉnh các quan hệ đã có để phù hợp với
các lớp đối tượng vừa được điều chỉnh
• Bước 5:
– Kiểm tra lại sơ đồ lớp và hiệu chỉnh (theo kinh
nghiệm)
• Bước 6:
– Bổ sung các trách nhiệm (phương thức) vào
các lớp đối tượng ở mức phân tích
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 31 HIENLTH
Kết quả
• Sơ đồ lớp • Danh sách các lớp đối tượng và quan hệ
STT
Tên lớp/quan hệ Loại
Ý nghĩa/ghi chú
…
…
…
…
• Mô tả chi tiết từng lớp đối tượng và quan hệ
– Với mỗi lớp đối tượng: • Mô tả các thuộc tính
STT
Tên thuộc tính
Kiểu Ràng buộc Ý nghĩa/ghi chú
…
…
…
…
…
– Với mỗi quan hệ:
STT
Tên thuộc tính
Kiểu Ràng buộc Ý nghĩa/ghi chú
…
…
…
…
…
• Danh sách các trách nhiệm chính
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 32 HIENLTH
Áp dụng
• Áp dụng thực tế vào các bài tập – Xác định các lớp đối tượng chính – Xác định các thông tin và hành động/trách
nhiệm của mỗi lớp đối tượng chính
– Xác định các quan hệ chính – Xác định các lớp đối tượng phụ, các danh mục
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 33 HIENLTH
Ví dụ
CBoMon
CKhoa
0..*
+ + +
BMID MaBM TenBM
: long : string : string
# + -
KhoaID MaKhoa TenKhoa
: int : string : string
0..1
+ Insert ()
: int
CKhoa
0..1
0..1 Co
# + -
KhoaID MaKhoa TenKhoa
: int : string : string
0..*
0..* Thuoc
0..1
CGiangVien
0..*
CNganh
+ + + + + + + + + +
GVID MaGV HocVi ChucDanh TenVT Ho Ten DiaChi DienThoai Email
: long : string : string : string : string : string : string : string : string : string
+ + + +
NganhID MaNganh TenNganh TenVT
: long : string : string : string
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 34 HIENLTH
Ví dụ
0..1
CLOP
CNganh
CKhoa
0..*
0..*
# + -
KhoaID MaKhoa TenKhoa
: int : string : string
0..1
+ + + +
NganhID MaNganh TenNganh TenVT
: long : string : string : string
+ + + + +
LOPID MALOP TENLOP NAMTS TenVT
: long : string : string : short : string
0..1
0..1 Co
0..*
0..1
0..* Thuoc
CLOPNK
0..*
CGiangVien
CTKB
CBoMon
0..*
+ + +
LOPNKID NAM NAMHOC
: long : short : short
+ + +
BMID MaBM TenBM
: long : string : string
+ Insert ()
: int
0..1
0..*
+ + + + + +
TKBID TKB HOCKY NAMHOC NGAYBD NGAYKT
: long : string : short : short : DateTime : DateTime
0..1
0..1
0..*
1..1
CTKBLOP
+ + + + + + + + + +
GVID MaGV HocVi ChucDanh TenVT Ho Ten DiaChi DienThoai Email
: long : string : string : string : string : string : string : string : string : string
+ TKBLOPID : long
CMONHOC
1..1
0..*
0..*
CTKBLOP_CHITIET
MonID MaMon TenMon TinChi SoTietLT SoTietBT TenVT
: long : string : string : short : short : short : string
+ + + + + + +
1..1
0..*
+ + + + +
THU TIETBD TIETKT LYTHUYET PHONG
: short : short : short : short : string
Them () Xoa () Sua () LayDL ()
: void : void : void : void
+ + + +
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 35 HIENLTH
Sơ đồ trạng thái
STATECHART DIAGRAM
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 36 HIENLTH
Statechart Diagram
• Ghi nhận các hành vi động (even –
oriented) • Mục tiêu:
– Mô hình hóa chu kỳ sống của đối tượng – Mô hình hóa các đối tượng phản hồi (user
interfaces, devices, …)
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 37 HIENLTH
Các khái niệm
• Sơ đồ trạng thái
– Mô tả chu trình sống của các đối tượng chính từ khi
sinh ra, hoạt động & mất đi
– Mỗi đối tượng có thể có nhiều sơ đồ trạng thái theo
các góc nhìn khác nhau
• Trạng thái & biến cố
– Trạng thái của đối tượng diễn đạt tình trạng hiện có của đối tượng (có ý nghĩa trong một đoạn thời gian)
– Biến cố là các sự kiện xảy ra làm cho đối tượng
chuyển trạng thái.
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 38 HIENLTH
State Diagram Bàn cờ
Khởi tạo bàn cờ
Quân trắng đi
Quân đen đi
Hòa
Quân đen thắng
Quân trắng thắng
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 39 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 40 HIENLTH
Ví dụ minh họa
• State Diagram mô tả trạng thái TKB
Có lớp mới được phân [Còn lớp chưa được phân phòng]
[Bắt đầu học kỳ mới]
[Một số lớp chưa được phân phòng]
Khởi tạo
Chờ phân phòng
do / Khoi tao TKB
Có lớp mới được phân() / Cap nhat Phong
[Tất cả các lớp đã được phân phòng]
[Tất cả các lớp đã được phân phòng]
Yêu cầu tra cứu TKB
Đang sử dụng
Đóng
Yêu cầu tra cứu TKB(Lop) / TKB Lop Yêu cầu tra cứu TKB(GV) / TKB Giảng viên
[Kết thúc học kỳ]
do / Ket thuc hoc ky
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 41 HIENLTH
Các thành phần trong State diagram
State1
• Trạng thái – State
entry / Action_1 do / Action_2 exit / Action_3
• Sự kiện – Event • Hành động – Action • Mối liên hệ giữa các trạng thái
Event_1 [Condition]/ Action 11
State1
State2
entry / Action_1 do / Action_2 exit / Action_3
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 42 HIENLTH
Một số ký hiệu
Trạng thái
Tên trạng thái
Tên trạng thái
stateVar : type = value
entry/ entry action do/ activity exit/ exit action
Chuyển đổi trạng thái
Tên biến cố (tham số) Tên hành động (tham số)
[Điều kiện]
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 43 HIENLTH
Các trạng thái đặc biệt
• Trang thái bắt đầu
Tr/thái bắt đầu
– Là trạng thái khi mới được khởi tạo của object – Bắt buộc phải có – Chỉ có thể có 1 trạng thái bắt đầu
• Trang thái kết thúc
Tr/thái kết thúc
– Chỉ vị trí kết thúc đời sống của object – Không nhất thiết phải thể hiện – Có thể có nhiều
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 44 HIENLTH
Sơ đồ trạng thái
• Là đồ thị có hướng với các node là các trạng thái nối với
nhau bới các cung mô tả việc chuyển đổi trạng thái
Trạng thái
Biến cố
Tên trạng thái
Hành động
stateVar : type = value Biến cố(tham số) [Biểu thức điều kiện] / Hành động (tham số)
Hành động
Chuyển đổi trạng thái
entry/ entry action do/ activity exit/ exit action
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 45 HIENLTH
Các thành phần trong State diagram
State1
• Sự kiện – Event
entry / Action_1 do / Action_2 exit / Action_3
• Event
– Entry: sự kiện phát sinh khi đối tượng bắt đầu
nhận trạng thái
– Exit: sự kiện phát sinh khi đối tượng kết thúc
trạng thái thúc trạng thái
– Do: sự kiện phát sinh khi user thực hiện một
hành động thông qua bàn phím/chuột.
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 46 HIENLTH
Các thành phần trong State diagram
State1
• Trạng thái – State
entry / Action_1 do / Action_2 exit / Action_3
• Action
– Entry: hành động được thực hiện khi đối
tượng bắt đầu trạng thái
– Do: tập các hành động có thể thực hiện với
trạng thái
– Exit: hành động được thực hiện khi đối tượng
kết thúc trạng thái
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 47 HIENLTH
Các thành phần trong State diagram
• Mối liên hệ giữa các trạng thái –Transition
Event_1 [Condition]/ Action 11
State1
State2
entry / Action_1 do / Action_2 exit / Action_3
– Event – Action – Condition: điều kiện cho phép chuyển từ
trạng thái này sang trạng thái khác
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 48 HIENLTH
Các thành phần trong State diagram
• State – Event – Action – Transition
Them Sinh Vien [SoLuong <10]
Đang mở
KH Khởi tạo
Them Sinh Vien/ SoLuong = 0
do / KhoiTao
entry / Sinh vien dang ky exit / Tang SoLuong 1 DV
Huy
Huy
/ SoLuong = 10
Bị Hủy
Kết thúc
Huy
do / Thong bao sinh vien da dang ky
do / Ket thuc khoa hoc
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 49 HIENLTH
Ví dụ minh họa
• State Diagram mô tả trạng thái TKB
Có lớp mới được phân [Còn lớp chưa được phân phòng]
[Bắt đầu học kỳ mới]
[Một số lớp chưa được phân phòng]
Khởi tạo
Chờ phân phòng
do / Khoi tao TKB
Có lớp mới được phân() / Cap nhat Phong
[Tất cả các lớp đã được phân phòng]
[Tất cả các lớp đã được phân phòng]
Yêu cầu tra cứu T KB
Đang sử dụng
Đóng
Yêu cầu tra cứu T KB(Lop) / TKB Lop Yêu cầu tra cứu T KB(GV) / T KB Giảng viên
[Kết thúc học kỳ]
do / Ket thuc hoc ky
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 50 HIENLTH
Ví dụ minh họa
• State Diagram mô tả trạng thái màn hình
quản lý danh mục người dùng
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 51 HIENLTH
Ví dụ minh họa
• State Diagram mô tả trạng thái màn hình
quản lý danh mục người dùng
Khởi tạo màn hình
entry / Load entry / Show do / Thêm ND do / Sửa ND do / Xóa ND do / Thoát
Sửa ND [Đã chọn ND]
Thêm ND
Thoat
Kết thúc Thêm ND
Kết thúc sửa ND
Kết thúc MH Người dùng
Đang thêm Người dùng
entry / Unload
Đang sửa Người dùng
entry / Thêm ND do / Lưu ND do / Không lưu exit / Xác lập trạng thái
entry / Sửa ND do / Lưu do / Không lưu exit / Xác lập trạng thái
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 52 HIENLTH
Sơ đồ trạng thái
B1, B2: biến cố sinh B4, B8, B9: biến cố mất B3, B5, B6, B7: biến cố hoạt động
B3 B1 B4 S1
S2 B5 B2
B7 S6 S4 S3 B6
B8
S5 B9
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 53 HIENLTH
Sơ đồ trạng thái
• Mỗi sơ đồ trạng thái sẽ ánh xạ thành một thuộc tính của
đối tượng
• Các trạng thái của đối tượng trong 1 sơ đồ trạng thái
không giao nhau và giá trị của thuộc tính tương ứng chỉ mang 1 trong các giá trị tương ứng
• Sơ đồ trạng thái càng chi tiết sẽ phục vụ:
– Có những xử lý thích hợp trong kiểm tra ràng buộc – Có những xử lý thích hợp trong xử lý biến cố – Phục vụ tra cứu, tìm kiếm
• Khi đã quan tâm đến sơ đồ trạng thái của 1 đối tượng
– Thường trong ứng dụng không còn chức năng xóa (thật sự) đối
tượng này
– Các đối tượng sẽ tồn tại ở trạng thái mất thay vì bị xóa thật sự
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 54 HIENLTH
Sơ đồ trạng thái
• Thông thường, sơ đồ trạng thái của 1 đối
tượng có dạng
Sẵn sàng Chấm dứt
Hoạt động Tạm dừng
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 55 HIENLTH
Cách xây dựng sơ đồ trạng thái
• Cách 1:
– Xác định quá trình hoạt động bình thường của đối
tượng từ khi sinh ra đến khi mất đi
– Bổ sung các trạng thái và biến cố liên quan đến
• Sinh ra • Hoạt động • Tạm từng • Mất đi
• Cách 2:
– Xác định các trạng thái sinh – Xác định các trạng thái cuối – Xác định các trạng thái trung gian và các biến
cố/hành động làm chuyển trạng thái
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 56 HIENLTH
Kết quả: Sơ đồ trạng thái
B3
B1
S1
B4
S2
B5
B2
S6
B7
S4
S3
B6
B8
S5
B9
Sơ đồ trạng thái
STT Trạng thái Ý nghĩa
Xử lý liên quan Ghi chú
…
…
…
…
…
Bảng mô tả các trạng thái
STT Biến cố
Ý nghĩa
Xử lý liên quan Ghi chú
…
…
…
…
…
Bảng mô tả các biến cố
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 57 HIENLTH
Tạo State Diagram trong PD
• Tạo mới State Diagram • State
– Start – End – State • Transition • Action • Event
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 58 HIENLTH
Bài tập
• Vẽ sơ đồ trạng thái của thang máy • Vẽ sơ đồ trạng thái của 1 đèn giao thông • Vẽ sơ đồ trạng thái của 1 cặp đèn giao
thông tại ngã tư
• Vẽ sơ đồ trạng thái của 1 độc giả • Vẽ sơ đồ trạng thái của 1 cuốn sách • Vẽ sơ đồ trạng thái của 1 phòng trong
khách sạn
• Vẽ sơ đồ trạng thái của 1 quân cờ
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 59 HIENLTH
Bài tập
Vẽ sơ đồ trạng thái: • Quản lý giải bóng đá vô địch quốc gia • Quản lý bình chọn bài hát hay Làn sóng
xanh
• Quản lý giáo vụ trường đại học • Quản lý giáo vụ trường phổ thông • Quản lý bán hàng • Quản lý nhân sự - Tiền lương
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 60 HIENLTH
Ôn tập
• State diagram là gì ? • Event là gì ? • Transition ? • Action là gì ? Các loại Action ? • Xây dựng State diagram cho một số ứng
dụng trong phần bài tập
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 61 HIENLTH
Câu hỏi và thảo luận
?
COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 62 HIENLTH
Chủ đề 3: Phân tích Phần mềm
COMP1026 – Introduction to Software Engneering Chapter 3 - 1 HIENLTH
Software Life cycle
COMP1026 – Introduction to Software Engneering Chapter 3 - 2 HIENLTH
Giai đoạn khảo sát
• Xác định quy trình xử lý
Nội dung:
Khảo sát
nghiệp vụ
• Thu thập biểu mẫu thống kê
Kết quả:
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 3 - 3 HIENLTH
Giai đoạn phân tích
• Phân tích khả thi
Nội dung:
• Xây dựng mô hình dữ liệu
Phân tích
mức quan niệm
• Xây dựng mô hình xử lý
Kết quả:
Hồ sơ phân tích:
• Phương án triển khai hệ thống
• Mô hình ERD (CDM)
• Mô hình DFD
COMP1026 – Introduction to Software Engneering Chapter 3 - 4 HIENLTH
Phương án triển khai
• Một hệ thống có thể được triển khai theo
nhiều lược đồ khác nhau: – Hệ thống được triển khai trên máy đơn? – Hệ thống được triển khai theo mô hình
Client/Server?
– Hệ thống được triển khai tại văn phòng công
ty? Các phòng ban?
– Yêu cầu phần cứng máy tính? – ….
COMP1026 – Introduction to Software Engneering Chapter 3 - 5 HIENLTH
Phân tích tính khả thi
Xét hệ thống quản lý giáo vụ trường đại học: • Phương án triển khai - PA1
COMP1026 – Introduction to Software Engneering Chapter 3 - 6 HIENLTH
Phân tích tính khả thi (tt)
Xét hệ thống quản lý giáo vụ trường đại học: • Phương án triển khai – PA2
COMP1026 – Introduction to Software Engneering Chapter 3 - 7 HIENLTH
Phân tích tính khả thi (tt)
Xét hệ thống quản lý giáo vụ trường đại học: • Phương án triển khai – PA3
COMP1026 – Introduction to Software Engneering Chapter 3 - 8 HIENLTH
Phương án triển khai
• Mỗi phương án có:
– Thời gian thực hiện? – Chi phí? – Hiệu quả?
COMP1026 – Introduction to Software Engneering Chapter 3 - 9 HIENLTH
Phương án triển khai
• Đối với người dùng, phương án có:
– Ai thực hiện? – Thực hiện đâu? – Thực hiện những công việc gì? – Kế hoạch thực hiện • Về góc độ kỹ thuật: – Hệ thống mạng? – Phần cứng? – Phần mềm ? – Nhân sự
• Huấn luyện & đào tạo • Nội dung huấn luyện là gì? • Thực hiện bao lâu?
COMP1026 – Introduction to Software Engneering Chapter 3 - 10 HIENLTH
Phân tích dữ liệu
• Mô hình dữ liệu ? • Các thành phần trong mô hình CDM • Các bước xây dựng mô hình CDM • Tài liệu/sưu liệu phân tích • Sử dụng Power Designer để tạo mô hình
CDM
• Trao đổi thảo luận
COMP1026 – Introduction to Software Engneering Chapter 3 - 11 HIENLTH
Conceptual Data Model or ERD
• Mô hình thực thể kết hợp (Entity
Relationship Diagram) mô tả mối liên hệ giữa các thực thể.
• Mỗi thực thể là một đối tượng tồn tại bên
ngoài thế giới thực
• Mô hình thực thể kết hợp (Entity
Relationship Diagram) được dùng để thiết kế CSDL ở mức quan niệm nên còn gọi là mô hình quan niệm dữ liệu (Conceptual Data Model)
COMP1026 – Introduction to Software Engneering Chapter 3 - 12 HIENLTH
Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp.
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp.
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
COMP1026 – Introduction to Software Engneering Chapter 3 - 13 HIENLTH
Xét ứng dụng quản lý TKB
• Ví dụ:
TKB lớp Tin 3
COMP1026 – Introduction to Software Engneering Chapter 3 - 14 HIENLTH
Xét ứng dụng quản lý TKB
• Ví dụ: TKB của giảng viên
COMP1026 – Introduction to Software Engneering Chapter 3 - 15 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống quản lý thời khóa biểu bao gồm các
Có bao nhiêu thực thể ? Thuộc tính của mỗi thực thể ? Mối liên hệ giữa các thực thể ?
thông tin sau: – Thứ – Tiết – Môn – Giảng viên – Phòng – Lớp (theo môn) – Học kỳ – Năm học – Khoa
COMP1026 – Introduction to Software Engneering Chapter 3 - 16 HIENLTH
Ví dụ minh họa
CNganh
CKhoa
CBoMon
KhoaID MaKhoa TenKhoa
BoMonID MaBM TenBM
NganhID MaLop TenLop TenVietTat
CLop
CGiangVien
LopTheoMon
LopMonID
LopID MaLop TenLop TenVietTat
GVID MaGV TenV NgaySinh DiaChi
CMonHoc
CThoiKhoaBieu
MonID MaMon TenMon SoTC SoTietLT SoTietTH
MaTKB TenTKB Phong TuTiet DenTiet CoSo
COMP1026 – Introduction to Software Engneering Chapter 3 - 17 HIENLTH
Ví dụ minh họa
Khoa
SinhVien
MaKhoa TenKhoa
MaSV HoTenSV NgaySinh NoiSInh
0,n
Dang Ky Hoc Mon
Lan HocKy NienKhoa Diem ...
0,n
Nganh
MonHoc
0,n
Mon hoc nganh
SoTinChi
MaNganh TenNganh
MaMon TenMon
0,n
COMP1026 – Introduction to Software Engneering Chapter 3 - 18 HIENLTH
Ví dụ minh họa
Ly lich nhan vien
Nhan vien
ThanNhan
MaTN TenTN NgaySinh DiaChi DienThoai
MaNV Ho Ten NgaySinh DiaChi DienThoai
HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
Hoa Don
Hang Hoa
Don dat hang
Chi tiet DDH
Chi tiet hoa don
1,n
1,n
1,n
1,n
SoLuong DonGia ThanhTien ...
SoHD NgayHD ThanhTien VAT TongCong
SoLuong DonGia ThanhTien ...
SoDDH NgayDH ThanhTien VAT TongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
Nha Cung cap
Khach hang
MaNCC TenNCC DiaChi DienThoai
MaKH TenKH DiaChi DienThoai
COMP1026 – Introduction to Software Engneering Chapter 3 - 19 HIENLTH
Các thành phần trong CDM
CKhoa
• Thực thể
KhoaID MaKhoa TenKhoa
Mon hoc nganh
SoTinChi
• Mối kết hợp • Mối liên hệ giữa các thực thể
0,1
CKhoa
CNganh
0,n
KhoaID MaKhoa TenKhoa
NganhID MaLop TenLop TenVietTat
• Mối liên hệ giữa thực thể với mối kết hợp
Nganh
MonHoc
0,n
Mon hoc nganh
SoTinChi
MaNganh TenNganh
MaMon TenMon
0,n
COMP1026 – Introduction to Software Engneering Chapter 3 - 20 HIENLTH
Các thành phần trong CDM
• Mỗi thực thể/mối kết hợp có 3 thành
phần: – Tên (Name) – Mã (Code) – Thuộc tính (Attribute)
COMP1026 – Introduction to Software Engneering Chapter 3 - 21 HIENLTH
Các thành phần trong CDM
• Thuộc tính:
– Đặc trưng mô tả về đối tượng
• Thực thể và tập thực thể:
– Thực thể là một đối tượng tồn tại bên ngoài
thế giới thực, có giá trị cụ thể
– Tập hợp các thực thể giống nhau tạo thành
một tập thực thể
Toan:Khoa
Hoa:Khoa
Khoa
MaKhoa TenKhoa
MaKhoa: KTOAN TenKhoa: TOAN
MaKhoa: KHOA TenKhoa: HOA
Thực thể COMP1026 – Introduction to Software Engneering
Chapter 3 - 22 HIENLTH
Các thành phần trong CDM
• Phân loại thuộc tính:
– Thuộc tính khóa (Primary Identifier) – Thuộc tính có giá trị rời rạc – Thuộc tính đa trị – Thuộc tính là đối tượng phụ (+) – Thuộc tính tính toán (*)
COMP1026 – Introduction to Software Engneering Chapter 3 - 23 HIENLTH
Các thành phần trong CDM
• Thuộc tính khóa:
– Giá trị của thuộc tính khóa hai thực thuộc cùng một tập thực thể không được phép trùng nhau
COMP1026 – Introduction to Software Engneering Chapter 3 - 24 HIENLTH
Các thành phần trong CDM
• Thuộc tính có giá trị rời rạc:
– Thuộc tính phái của Sinh viên chỉ có 2 giá trị:
Nam hoặc Nữ
– Thuộc tính điểm học phần chỉ có các giá trị 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
– Thuộc tính loại nhân viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất.
– ….
COMP1026 – Introduction to Software Engneering Chapter 3 - 25 HIENLTH
Các thành phần trong CDM
• Thuộc tính loại nhân
viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất.
COMP1026 – Introduction to Software Engneering Chapter 3 - 26 HIENLTH
Các thành phần trong CDM
• Thuộc tính đa trị
– Thuộc tính điện thoại của nhân viên là thuộc
tính đa trị: 081234567, 01234567890,… – Thuộc tính email của sinh viên cũng là một
thuộc tính đa trị: • hienlth@hcmup.edu.vn • hienlth@math.hcmup.edu.vn • hpt7777@gmail.com
COMP1026 – Introduction to Software Engneering Chapter 3 - 27 HIENLTH
Các thành phần trong CDM
• Thuộc tính là đối tượng phụ:
– Thuộc tính địa chỉ của sinh viên, nhân viên là một đối tượng phụ, bao gồm các thông tin: • Số nhà • Đường • Phường/xã • Quận/huyện • Tỉnh thành
– Thuộc tính ngày sinh của sinh viên, nhân viên cũng là một đối tượng phụ gồm các thông tin: ngày, tháng, năm
COMP1026 – Introduction to Software Engneering Chapter 3 - 28 HIENLTH
Các thành phần trong CDM
• Thuộc tính tính toán:
– Thuộc tính thành tiền trong hóa đơn là một thuộc tính tính toán, được tính bằng tổng số lượng * đơn giá của các mặt hàng
– Thuộc tính điểm trung bình của học sinh, sinh
viên cũng là một thuộc tính tính toán
COMP1026 – Introduction to Software Engneering Chapter 3 - 29 HIENLTH
Quan hệ giữa các thực thể
• Phân loại:
– Relationship – Inheritance
Quan Huyen
0,n
Tinh Thanh
1,1
MaQuan TenQuan
MaTinh TenTinh
Ly lich nhan vien
Nhan vien
1,1
1,1
MaNV Ho Ten NgaySinh DiaChi DienThoai
HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
COMP1026 – Introduction to Software Engneering Chapter 3 - 30 HIENLTH
Quan hệ giữa các thực thể
• Phân loại dựa trên bản số:
Hoa Don : 2
0,n
Hang Hoa : 2
0,n
SoHD NgayHD ThanhTien VAT TongCong
– Quan hệ “1-1” – Quan hệ “1-nhiều” – Quan hệ “nhiều-nhiều”
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
Ly lich nhan vien
Nhan vien
1,1
1,1
MaNV Ho Ten NgaySinh DiaChi DienThoai
HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
Quan Huyen
0,n
Tinh Thanh
1,1
MaQuan TenQuan
MaTinh TenTinh
COMP1026 – Introduction to Software Engneering Chapter 3 - 31 HIENLTH
Quan hệ giữa các thực thể
• Quan hệ nhiều – nhiều:
Hoa Don : 2
0,n
Hang Hoa : 2
0,n
SoHD NgayHD ThanhTien VAT TongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
Hoa Don
Hang Hoa
Chi tiet hoa don
1,n
1,n
SoLuong DonGia ThanhTien ...
SoHD NgayHD ThanhTien VAT TongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
COMP1026 – Introduction to Software Engneering Chapter 3 - 32 HIENLTH
Quan hệ giữa thực thể và mối kết hợp
• Association link: – Loại mối kết hợp
• 1 – 1 • 1 – nhiều
– Bản số
• 0,1; 1,1; 0,n; 1,n;…
– Vai trò
Hoa Don
Hang Hoa
Chi tiet hoa don
1,n
1,n
SoLuong DonGia ThanhTien ...
SoHD NgayHD ThanhTien VAT TongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
COMP1026 – Introduction to Software Engneering Chapter 3 - 33 HIENLTH
Quan hệ giữa thực thể và mối kết hợp
0..*
Được quản lý bởi
• Quan hệ phản thân – Reflexive association – Recursive association
0..1
Quản lý
Quản lý
Được quản lý bởi
COMP1026 – Introduction to Software Engneering Chapter 3 - 34 HIENLTH
Quan hệ giữa thực thể và mối kết hợp
• Quan hệ phản thân
Quản lý
Được quản lý bởi
Nguyen C:CNhanVien
MaNV = NV05 TenNV = Nguyen C
Nguyen A:CNhanVien
Nguyen B:CNhanVien
MaNV = NV03 TenNV = Nguyen A
MaNV = NV04 TenNV = Nguyen B
Tran A:CNhanVien
Tran B:CNhanVien
MaNV = NV01 TenNV = Tran A
MaNV = NV02 TenNV = Tran B
COMP1026 – Introduction to Software Engneering Chapter 3 - 35 HIENLTH
Xây dựng mô hình CDM
• Từ yêu cầu chức năng
– Từ danh sách mẫu biểu, thống kê – Từ qui trình xử lý nghiệp vụ (DFD, BPM)
• Từ yêu cầu phi chức năng
COMP1026 – Introduction to Software Engneering Chapter 3 - 36 HIENLTH
Các bước xây dựng mô hình CDM
• Xác định tập thực thể • Xác định mối kết hợp • Xác định thuộc tính cho tập thực thể và
mối kết hợp
• Xác định miền giá trị cho từng thuộc tính • Xác định thuộc tính khóa, thuộc tính bắt
buộc, thuộc tính Unique.
• Xác định bản số (Min, max) cho quan hệ,
mối kết hợp
COMP1026 – Introduction to Software Engneering Chapter 3 - 37 HIENLTH
Tạo mô hình CDM trong Power Designer
• Tạo mới mô hình CDM ? • Tạo thực thể • Mô tả thuộc tính cho thực thể • Tạo mối kết hợp • Mô tả thuộc tính cho mối kết hợp • Tạo mối quan hệ giữa các thực thể, mối
kết hợp
• Phát sinh report
COMP1026 – Introduction to Software Engneering Chapter 3 - 38 HIENLTH
Bài tập
• Đặc tả yêu cầu và xây dựng CDM cho các ứng
dụng sau: – Quản lý giải bóng đá vô địch quốc gia – Quản lý bình chọn bài hát hay Làn sóng xanh – Quản lý giáo vụ trường đại học – Quản lý giáo vụ trường phổ thông – Quản lý bán hàng – Quản lý học viên trung tâm tin học, ngoại ngữ – Quản lý nhân sự -tiền lương – Quản lý bán hàng trực tuyến – Quản lý nhà trẻ – …
COMP1026 – Introduction to Software Engneering Chapter 3 - 39 HIENLTH
Câu hỏi ôn tập
• Phương án triển khai hệ thống? • Conceptual Data Model - CDM? • Các thành phần trong CDM? • Data Flow Diagram – DFD? • Các thành phần trong DFD?
COMP1026 – Introduction to Software Engneering Chapter 3 - 40 HIENLTH
Chủ đề 4: Thiết kế Phần mềm
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 1 HIENLTH
Giai đoạn thiết kế
Nội dung:
• Thiết kế dữ liệu
Khảo sát
• Thiết kế xử lý
Phân tích
• Thiết kế giao diện
Thiết kế
Kết quả: Hồ sơ thiết kế:
Cài đặt
• Mô hình PDM
Kiểm tra
• Kiến trúc Module
Triển khai
• Hệ thống chức năng
• Hệ thống giao diện
Bảo trì
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 2 HIENLTH
Thiết kế giao diện
Thiết kế Phần mềm?
Thiết kế xử lý
Thiết kế dữ liệu (lưu trữ)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 3 HIENLTH
Module: Thiết kế Dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 4 HIENLTH
Nội dung
• Thiết kế dữ liệu mức vật lý (PDM)
– Qui tắc chuyển đổi mô hình từ mức quan niệm (CDM/ERD) sang mức vật lý (PDM)
– Bổ sung yêu cầu phi chức năng
• Sử dụng Power Designer để vẽ mô hình PDM, phát sinh và tạo CSDL trong SQL Server 2008/2012
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 5 HIENLTH
Physical Data Model - PDM
• Mô hình dữ liệu ở mức vật lý (Physical
Data Model) biểu diễn cấu trúc dữ liệu sẽ được cài đặt trong các hệ quản trị cơ sở dữ liệu như: SQL server, Oracle, MS Access, DB2, MySQL,…
• Mô hình vật lý có thể được ánh xạ từ mô hình quan niệm dữ liệu (Conceptual Data Model)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 6 HIENLTH
Ví dụ mô hình vật lý
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 7 HIENLTH
Các thành phần trong PDM
Cầu Thủ Cầu Thủ
• Table
vKetQua vKetQua
Mã Số Mã Số Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Vị Trí Vị Trí Số Áo Số Áo
int int nvarchar(50) nvarchar(50) datetime datetime nvarchar(150) nvarchar(150) nvarchar(30) nvarchar(30) tinyint tinyint
TEN_CLB TEN_CLB SO_LUONG_CT SO_LUONG_CT
• View
CAU_LAC_BO CAU_LAC_BO CAU_THU CAU_THU
• Mối quan hệ giữa các Table
Câu Lạc Bộ Câu Lạc Bộ
Sân Bóng Sân Bóng
FK_CAULACBO_SANBONG FK_CAULACBO_SANBONG
Mã Sân Mã Sân Tên Sân Tên Sân Địa Chỉ Địa Chỉ
int int nvarchar(50) nvarchar(50) nvarchar(150) nvarchar(150)
Mã CLB Mã CLB Mã Tỉnh Mã Tỉnh Mã Sân Mã Sân Tên CLB Tên CLB
varchar(7) varchar(7) varchar(4) varchar(4) int int nvarchar(50) nvarchar(50)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 8 HIENLTH
Các thành phần trong PDM
• Table: SINHVIEN (MASV, TENSV, NAM, MAKHOA)
MASV
TENSV
NAM MAKHOA
K29.102.001 Trần Văn Thành
3
VLY
K30.103.022 Lý Chánh
3
HOA
K31.102.101 Hán Quốc Việt
2
VLY
K31.103.017 Phan Sào Nam
2
TOAN
K32.101.001 Nguyễn Công Khế
1
TOAN
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 9 HIENLTH
Các thành phần trong PDM
• Mỗi Table có 3 thành phần:
Cầu Thủ Cầu Thủ
– Tên Table (Name) – Mã (Code) – Thuộc tính (Attribute/Field) • Khóa chính (tăng tự động?) • Khóa ngoại • Bắt buộc (NOT NULL)
Mã Số Mã Số Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Vị Trí Vị Trí Số Áo Số Áo
int int nvarchar(50) nvarchar(50) datetime datetime nvarchar(150) nvarchar(150) nvarchar(30) nvarchar(30) tinyint tinyint
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 10 HIENLTH
Các thành phần trong PDM
• Thuộc tính của Table:
– Kiểu dữ liệu
• Lưu ý: char, varchar, nchar, nvarchar, datetime
– Kích thước/Độ dài
• Lưu ý: phần thập phân
Cầu Thủ Cầu Thủ
Mã Số Mã Số Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Vị Trí Vị Trí Số Áo Số Áo Cân nặng Cân nặng int int nvarchar(50) nvarchar(50) datetime datetime nvarchar(150) nvarchar(150) nvarchar(30) nvarchar(30) tinyint tinyint double precision double precision
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 11 HIENLTH
Xây dựng mô hình PDM
• Convert từ mô hình CDM
– Từ tập thực thể – Từ mối kết hợp
• Bổ sung từ yêu cầu phi chức năng
– Mở rộng – Tốc độ – Tương thích – Bảo mật
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 12 HIENLTH
Convert CDM sang PDM
• Ánh xạ các thành phần từ CDM sang PDM
(Physical Data Model) – Tập thực thể – Quan hệ 1-1 – Quan hệ 1-n – Quan hệ m-n – Quan hệ kế thừa
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 13 HIENLTH
Convert CDM sang PDM
• Ánh xạ tập thực thể
– Mỗi thực thể trong CDM sẽ được chuyển
thành 1 table trong PDM
– Tất cả các thuộc tính của thực thể sẽ được
chuyển thành các thuộc tính (hoặc Fields) của table tương ứng
– Thuộc tính Primary Identifier của thực thể sẽ được chuyển thành primary key (khóa chính) của table tương ứng
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 14 HIENLTH
Convert CDM sang PDM
• Ánh xạ thực thể:
Cầu Thủ Cầu Thủ
Cầu Thủ Cầu Thủ
Mã Số Mã Số Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Vị Trí Vị Trí Số Áo Số Áo Cân nặng Cân nặng
Mã Số Mã Số Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Vị Trí Vị Trí Số Áo Số Áo Cân nặng Cân nặng
int int varchar(50) varchar(50) datetime datetime varchar(150) varchar(150) varchar(30) varchar(30) tinyint tinyint double precision double precision
Huấn Luyện Viên Huấn Luyện Viên
Huấn Luyện Viên Huấn Luyện Viên
Mã HLV Mã HLV Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Điện Thoại Điện Thoại
Mã HLV Mã HLV Họ Tên Họ Tên Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Điện Thoại Điện Thoại
int int varchar(50) varchar(50) datetime datetime varchar(150) varchar(150) varchar(15) varchar(15)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 15 HIENLTH
Quy tắc chuyển
• Quan hệ 1-1
A B
1 1 MA … A B … MA …
A B
MB …
… MB … A B
A B AB
MA … MA …
A B
MA MB … MB MA …
MB … MB … COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 16 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - 1
Nhân Viên
Lý lịch nhân viên
1,1
1,1
Mã NV Họ Tên Ngày Sinh Địa Chỉ Điện thoại
Họ tên Cha Họ tên Mẹ Quê Quán Nghề Nghiệp Hệ Số Lương Trình độ Học vấn Trình độ Ngoại ngữ Dân tộc Tôn Giáo
Lý lịch nhân viên Lý lịch nhân viên Lý lịch nhân viên
Nhân Viên Nhân Viên Nhân Viên
Mã NV Mã NV Mã NV Họ Họ Họ Tên T ên T ên Ngày Sinh Ngày Sinh Ngày Sinh Địa Chỉ Địa Chỉ Địa Chỉ Điện thoại Điện thoại Điện thoại
varchar(5) varchar(5) varchar(5) varchar(40) varchar(40) varchar(40) varchar(20) varchar(20) varchar(20) datetime datetime datetime varchar(50) varchar(50) varchar(50) varchar(15) varchar(15) varchar(15)
Mã NV Mã NV Mã NV Họ tên Cha Họ tên Cha Họ tên Cha Họ tên Mẹ Họ tên Mẹ Họ tên Mẹ Quê Quán Quê Quán Quê Quán Nghề Nghiệp Nghề Nghiệp Nghề Nghiệp Hệ Số Lương Hệ Số Lương Hệ Số Lương Trình độ Học vấn T rình độ Học vấn T rình độ Học vấn Trình độ Ngoại ngữ T rình độ Ngoại ngữ T rình độ Ngoại ngữ Dân tộc Dân tộc Dân tộc Tôn Giáo T ôn Giáo T ôn Giáo
varchar(5) varchar(5) varchar(5) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 17 HIENLTH
Quy tắc chuyển
• Quan hệ 1-n
1 * A B A B
MA …
… MA …
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 18 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - n
Hoa Don
Khach Hang
0,n
0,1
Ma KH Ten KH Địa Chỉ Dien Thoai
So HD Ngay HD Thanh Tien VAT Tong Cong
Hoa Don
Khach Hang
0..*
Ma KH = Ma KH
Ma KH Ten KH Địa Chỉ Dien Thoai
varchar(7) varchar(50) varchar(50) varchar(50)
So HD Ma KH Ngay HD Thanh Tien VAT Tong Cong
varchar(10) varchar(7) datetime money tinyint decimal
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 19 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ 1 - n
1,1
KHOA
BoMon
0,n
MaKhoa TenKhoa NamThanhLap
MaBM TenBM SoLuongGV
1,1
0,n
1,1
BoMon
0,n
KHOA
MaKhoa = MaKhoa
GiangVien
MaKhoa TenKhoa NamThanhLap
varchar(6) varchar(50) datetime
MaBM MaKhoa TenBM SoLuongGV
varchar(6) varchar(6) varchar(50) tinyint
MaGV Ho Ten NgaySinh HocHam HocVi
MaKhoa = MaKhoa
MaBM = MaBM
GiangVien
MaGV MaBM MaKhoa Ho Ten NgaySinh HocHam HocVi
varchar(15) varchar(6) varchar(6) varchar(50) varchar(20) datetime varchar(50) varchar(50)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 20 HIENLTH
Quy tắc chuyển
• Quan hệ m-n
* C * A B A C B
MA … MB …
MA MB …
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 21 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
Hang Hoa
Hoa Don
0,n
0,n
SoHD NgayHD ThanhTien VAT TongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
Hoa Don
Hang Hoa
Chi tiet hoa don
1,n
Number 1,n Decimal (18,2) Money (18,2)
SoLuong DonGia T hanhTien ...
SoHD NgayHD T hanhTien VAT T ongCong
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 22 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
0,n
SinhVien
MonHoc
0,n
MaMH TenMH SoTC
MaSV TenSV NgaySinh NoiSinh
SinhVien
MonHoc
0,n
KetQua
0,n
MaMH TenMH SoTC
MaSV TenSV NgaySinh NoiSinh
HocKy NienKhoa Lan Diem ...
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 23 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
SinhVien
MonHoc
0,n
KetQua
0,n
MaMH TenMH SoTC
MaSV TenSV NgaySinh NoiSinh
HocKy NienKhoa Lan Diem ...
SinhVien
MonHoc
MaMH TenMH SoTC
varchar(6) varchar(50) tinyint
MaSV TenSV NgaySinh NoiSinh
varchar(13) varchar(50) datetime varchar(50)
MaSV = MaSV
MaMH = MaMH
KetQua
MaSV MaMH HocKy NienKhoa Lan Diem
varchar(13) varchar(6) tinyint tinyint tinyint tinyint
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 24 HIENLTH
Convert CDM sang PDM
• Ánh xạ quan hệ m – n
SACH
DocGia
MaSach TenSach
MaDG TenDG
0,n
0,n
MuonTra
Date & Time Date & Time Decimal
NgayMuon NgayTra TienPhat ...
MuonTra
DocGia
SACH
MaDG TenDG
varchar(10) varchar(50)
MaSach TenSach
varchar(10) varchar(50)
MaSach MaDG NgayMuon NgayTra TienPhat
varchar(10) varchar(10) datetime datetime decimal
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 25 HIENLTH
Quy tắc chuyển
• Quan hệ kế thừa
A B C
A(MA, x, y, z) B(MB, x, y, t, u) C(MC, x, y, v)
+ Đơn giản - Không thấy mối liên hệ giữa các loại đối tượng A, B, C - Khó thống kê tổng quát A + x # y - z
C
-v B # t # u
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 26 HIENLTH
Quy tắc chuyển
• Quan hệ kế thừa
A
A(M, Loại, x, y, z, t, u, v)
+ Có được cái nhìn tổng quát về các đối tượng - Lãng phí không gian lưu trữ
Loại
x
y
z
t
u
v
A
A + x # y - z
B
C
C
-v B # t # u
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 27 HIENLTH
Quy tắc chuyển
• Quan hệ kế thừa
Chung_A
Chung_A(M, x, y)
R_B R_A R_C A + x # y - z
R_B(M, t, u) R_A(M, z) R_C(M, v)
C
-v B # t # u
+ Tiết kiệm không gian lưu trữ + Cho phép có cái nhìn tổng quát - Tổ chức khá phức tạp
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 28 HIENLTH
Convert CDM sang PDM
CNhanVien
• Ánh xạ quan hệ kế thừa
# # # #
MaNV HoTen DiaChi DienThoai
: string : string : string : string
CNVQuanLy
CNVanPhong
CNVBanHang
CNVSanXuat
- HeSoLuong : double
- LuongCoBan : double
- SoSanPham : int
- -
HeSoLuong PhuCap
: double : double
CNhanVien
Class Digram
MaNV HoTen DiaChi DienThoai
Variable characters (254) Variable characters (254) Variable characters (254) Variable characters (254)
CNVQuanLy
CNVanPhong
CNVBanHang
CNVSanXuat
HeSoLuong Long float
LuongCoBan Long float
SoSanPham Integer
HeSoLuong PhuCap
Long float Long float
CDM
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 29 HIENLTH
Convert CDM sang PDM
CNhanVien
• Ánh xạ quan hệ kế thừa
MaNV HoTen DiaChi DienThoai
Variable characters (254) Variable characters (254) Variable characters (254) Variable characters (254)
CNVQuanLy
CNVanPhong
CNVBanHang
CNVSanXuat
HeSoLuong Long float
LuongCoBan Long float
SoSanPham Integer
HeSoLuong PhuCap
Long float Long float
CNhanVien
CDM
MaNV HoTen DiaChi DienThoai
varchar(254) varchar(254) varchar(254) varchar(254)
CNVanPhong
CNVQuanLy
CNVBanHang
CNVSanXuat
HeSoLuong double precision
LuongCoBan double precision
SoSanPham int
HeSoLuong PhuCap
double precision double precision
PDM
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 30 HIENLTH
VD minh họa quy tắc chuyển đổi
• Xét hệ thống “Quản lý sinh viên” với tập
thực thể – Sinh Viên – Khoa – Ngành – Quận huyện – Tỉnh thành – Môn học
Và mối quan hệ được mô tả trong mô hình
E-R sau
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 31 HIENLTH
VD minh họa quy tắc chuyển đổi
Quan Huyen
Tinh Thanh
MaQuan TenQuan
MaTinh TenTinh
SinhVien
Khoa
MaKhoa TenKhoa
MaSV HoTenSV NgaySinh NoiSInh
0,n
Dang Ky Hoc Mon
Lan HocKy NienKhoa Diem ...
0,n
MonHoc
Nganh
0,n
Mon hoc nganh
SoTinChi
MaMon TenMon
MaNganh TenNganh
0,n
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 32 HIENLTH
VD minh họa quy tắc chuyển đổi
Quan Huyen
Tinh T hanh
MaTinh T enTinh
MaQuan MaTinh TenQuan
SinhVien
Khoa
MaKhoa TenKhoa
MaSV MaQuan MaKhoa MaNganh HoTenSV NgaySinh NoiSInh
Dang Ky Hoc Mon
MaSV MaMon Lan HocKy NienKhoa Diem
Nganh
Mon hoc nganh
MonHoc
MaMon TenMon
MaNganh MaKhoa TenNganh
MaMon MaNganh SoTinChi
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 33 HIENLTH
VD minh họa quy tắc chuyển đổi
• Xét hệ thống “Quản lý bán hàng” với tập thực
thể: – Hàng hóa – Hóa đơn – Khách hàng – Đơn đặt hàng – Nhà cung cấp – Nhân viên – ….
và mối quan hệ được mô tả trong mô hình E-R sau
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 34 HIENLTH
VD minh họa quy tắc chuyển đổi
ThanNhan
Nhan vien
Ly lich nhan vien
MaTN TenTN NgaySinh DiaChi DienThoai
MaNV Ho Ten NgaySinh DiaChi DienThoai
HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
Don dat hang
Hoa Don
Hang Hoa
SoDDH NgayDH ThanhTien VAT TongCong
1,n
1,n
SoHD NgayHD ThanhTien VAT TongCong
1,n
1,n
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
Chi tiet hoa don
Chi tiet DDH
Nha Cung cap
Khach hang
SoLuong DonGia ThanhTien ...
SoLuong DonGia ThanhTien ...
MaNCC TenNCC DiaChi DienThoai
MaKH TenKH DiaChi DienThoai
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 35 HIENLTH
VD minh họa quy tắc chuyển đổi
Ly lich nhan vien
MaNV = MaNV
Nhan vien
ThanNhan
MaNV = MaNV
MaNV = MaNV
MaNV Ho Ten NgaySinh DiaChi DienThoai
MaTN MaNV TenTN NgaySinh DiaChi DienThoai
MaNV = MaNV
MaNV HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
MaNV = MaNV
Don dat hang
Hang Hoa
Hoa Don
MaHang TenHang QuiCach DonViT inh GiaMua GiaBan
SoDDH MaNV MaNCC NgayDH ThanhTien VAT TongCong
SoHD MaKH MaNV NgayHD ThanhTien VAT TongCong
MaHang = MaHang
MaHang = MaHang
SoDDH = SoDDH MaNCC = MaNCC
SoHD = SoHD
MaKH = MaKH
Chi tiet DDH
Chi tiet hoa don
Nha Cung cap
Khach hang
MaNCC TenNCC DiaChi DienThoai
MaHang SoDDH SoLuong DonGia ThanhTien
SoHD MaHang SoLuong DonGia ThanhTien
MaKH TenKH DiaChi DienThoai
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 36 HIENLTH
VD minh họa quy tắc chuyển đổi
Ly lich nhan vien
Nhan vien
ThanNhan
MaNV Ho Ten NgaySinh DiaChi DienThoai
MaTN MaNV TenTN NgaySinh DiaChi DienThoai
MaNV HoTenCha HoTenMe QueQuan NgheNghiep HeSoLuong TrinhDoHV TrinhDoNN DanToc TonGiao
Don dat hang
Hang Hoa
Hoa Don
MaHang TenHang QuiCach DonViTinh GiaMua GiaBan
SoDDH MaNV MaNCC NgayDH ThanhTien VAT TongCong
SoHD MaKH MaNV NgayHD ThanhTien VAT TongCong
Chi tiet DDH
Chi tiet hoa don
Nha Cung cap
Khach hang
MaNCC TenNCC DiaChi DienThoai
MaHang SoDDH SoLuong DonGia ThanhTien
SoHD MaHang SoLuong DonGia ThanhTien
MaKH TenKH DiaChi DienThoai
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 37 HIENLTH
Tạo mô hình PDM trong Power Designer
• Tạo mới mô hình PDM ? • Tạo table • Mô tả thuộc tính cho table • Tạo relationship • Phát sinh report • Phát sinh DB Script
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 38 HIENLTH
Xây dựng mô hình PDM
• Convert từ mô hình CDM
– Từ tập thực thể – Từ mối kết hợp
• Bổ sung từ yêu cầu phi chức năng
– Mở rộng – Tốc độ – Tương thích – Bảo mật
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 39 HIENLTH
Mở rộng mô hình PDM
Yêu cầu phi chức năng: • Mở rộng
– Thuộc tính có miền giá trị rời rạc – Thuộc tính đa trị – Thuộc tính là đối tượng phụ – Thuộc tính tính toán – Thông tin về cấu hình hệ thống
• Số sản phẩm trên mỗi trang màn hình • Số lượng dòng trong mỗi grid • Thông tin khách hàng • Tham số trong các công thức
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 40 HIENLTH
Mở rộng mô hình PDM
• Thuộc tính có giá trị rời rạc
Nhan vien
+LoaiNV:
-NV San Xuat -NV Ban Hang -NV Quan Ly
+TonGiao:
TonGiao
-Thien Chua -Cao Dai -Hoa Hao
Nhan vien
0,n
0,1
MaTG TenTG
MaNV Ho Ten NgaySinh DiaChi DienThoai Email TonGiao GioiTinh LoaiNV
LoaiNhanVien
0,n
MaNV Ho Ten NgaySinh DiaChi DienThoai Email GioiTinh
1,1
MaLoai TenLoaiNV
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 41 HIENLTH
Mở rộng mô hình PDM
Bảng dữ liệu
Mã Diễn giải
Tiền mặt 1
2 Chuyển khoản
3 Trao đổi
… …
Bộ nhớ
Tiền mặt Chuyển khoản Trao đổi
Tiền mặt Chuyển khoản Trao đổi
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 42 HIENLTH
Mở rộng mô hình PDM
• Thuộc tính là đối tượng phụ
Nhan vien
Tinh Thanh
Nhan vien
0,n
0,1
MaTinh TenTinh
Quan Huyen
0,n
MaNV Ho Ten NgaySinh DiaChi DienThoai Email TonGiao GioiTinh LoaiNV
0,1
MaNV Ho Ten NgaySinh DiaChi DienThoai TonGiao Email GioiTinh LoaiNV
MaQuan TenQuan
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 43 HIENLTH
Mở rộng mô hình PDM
• Số sản phẩm trên màn hình
sản Option = 6 phẩm trên một trang
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 44 HIENLTH
Mở rộng mô hình PDM
• Số sản phẩm trên màn hình
Option = 3 sản phẩm trên một trang
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 45 HIENLTH
Mở rộng mô hình PDM
• Số sản phẩm trên màn hình
Option = 6 sản phẩm trên 1 trang
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 46 HIENLTH
Mở rộng mô hình PDM
Yêu cầu phi chức năng: • Tốc độ:
– Bổ sung thuộc tính tính toán – Backup/Archive Data
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 47 HIENLTH
Bổ sung từ yêu cầu tốc độ
Xét hệ thống quản lý bán hàng tại siêu thị Coopmart:
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 48 HIENLTH
Bổ sung từ yêu cầu tốc độ
Xét hệ thống quản lý bán hàng tại siêu thị COOP MART (30
chi nhánh), giả sử:
• Mỗi ngày siêu thị bán được khoảng 1000 hóa đơn, mỗi hóa đơn có khoảng 10 mặt hàng và mỗi ngày phát sinh khoảng 10.000 record chi tiết hóa đơn
• Dữ liệu chi tiết hóa đơn mỗi năm 365 x 10.000 =
3.650.000 record.
• Dữ liệu lưu trữ trong 10 năm = 3.650.000 x 10 =
36.500.000 record chi tiết hóa đơn
• Hệ thống siêu thị có khoảng 1.000 mặt hàng
– Cho biết số lượng mặt hàng bán trong tháng hiện hành – Chọn trong danh sách 1.000 x 36.500.000 = 36.500.000.000
record !!!
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 49 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Đăng nhập hệ thống • Phân quyền
– Theo chức năng
• Tĩnh • Động
– Theo dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 50 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Đăng nhập hệ thống
Cần lưu trữ thông tin gì?
Cần lưu trữ danh sách người dùng (User)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 51 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Đăng nhập hệ thống
Cần lưu trữ danh sách người dùng (User)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 52 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Đăng nhập hệ thống
Cần lưu trữ danh sách người dùng (User)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 53 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Đăng nhập hệ thống
Cần lưu trữ danh sách người dùng (User)
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 54 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Phân quyền
– Theo chức năng
• Tĩnh
– Phân quyền theo Module – Phân quyền theo hệ thống Menu/Toolbar
• Động
– Phân quyền theo Module – Phân quyền theo hệ thống Menu/Toolbar
– Theo dữ liệu – Phân quyền user/group
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 55 HIENLTH
Bổ sung từ yêu cầu bảo mật
• Tham số các công thức
– Tạo bảng tham số/chuỗi: chứa những giá trị
hằng trong bài toán
Mã
Diễn giải Giá trị
Hiệu lực
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 56 HIENLTH
Bài tập
• Xây dựng mô hình PDM cho các ứng dụng sau:
– Quản lý giải bóng đá vô địch quốc gia – Quản lý bình chọn bài hát hay Làn sóng xanh – Quản lý giáo vụ trường đại học – Quản lý giáo vụ trường phổ – Quản lý bán hàng – Quản lý học viên trung tâm tin học, ngoại ngữ – Quản lý nhân sự - tiền lương – Quản lý bán hàng trực tuyến – Quản lý nhà trẻ – …
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 57 HIENLTH
Câu hỏi và thảo luận
•
?
COMP1026 – Introduction to Software Engneering CH4 – Part 1 - 58 HIENLTH
Exercise: Thiết kế Phần mềm
1
Nội dung
Thiết kế giao diện
Thiết kế Phần mềm?
Thiết kế xử lý
Thiết kế dữ liệu (lưu trữ)
2
Tổng quan
• Khái niệm:
• Thiết kế phần mềm là mô tả chi tiết tổ chức, hoạt động
các đơn vị xử lý của phần mềm
• Dựa trên kết quả của việc phân tích
• Là cơ sở cho việc thực hiện phần mềm
Hồ sơ
Hồ sơ
Phân tích
Thiết kế
Thực hiện
Thiết kế
Phân tích
3
Tổng quan
Màn hình giao diện
Người dùng
D1
D2
- Kiểu dữ liệu
Thiết kế xử lý
Khối xử lý
- Hằng, biến
- Hàm, đơn thể, lớp đối tượng
D3
D4
Lưu trữ dữ liệu
4
Thiết kế giao diện
• Thiết kế giao diện: Mô tả chi tiết cách thức giao tiếp giữa người sử
dụng và phần mềm
• Màn hình giao diện
• Nội dung
• Hình thức trình bày (vẽ hình)
• Mô tả danh sách các thành phần của giao diện:
STT
Tên
Kiểu
Ý nghĩa Miền giá trị Giá trị mặc định
1
• Lập danh sách các biến cố cần xử lý:
STT
Điều kiện kích hoạt
Xử lý
Ghi chú
5
1
...
Thiết kế dữ liệu (lưu trữ)
• Thiết kế dữ liệu: Mô tả chi tiết cách thức tổ chức, lưu trữ
các dữ liệu của phần mềm
• Tổ chức lưu trữ
• Bảng/Tập tin
• Thuộc tính/Cấu trúc
• Liên kết giữa các bảng/Tập tin
• Danh sách các bảng
STT
Bảng
Ý nghĩa
Ghi chú
1
6
...
Thiết kế dữ liệu (lưu trữ)
• Danh sách các thuộc tính bảng X
STT Thuộc tính
Kiểu
Ràng buộc
Ghi chú
Giá trị Khởi động
1
...
7
Thiết kế Xử lý
• Thiết kế xử lý: Mô tả chi tiết hệ thống các hàm xử lý (cùng
với các hằng, biến, kiểu liên quan) của phần mềm
• Danh sách các kiểu dữ liệu xử lý
STT
Kiểu dữ liệu
Ý nghĩa
Ghi chú
...
...
...
...
• Danh sách các thuộc tính kiểu dữ liệu X
STT Thuộc tính
Kiểu
Ràng buộc Giá trị khởi động
Ghi chú
8
...
...
...
...
...
...
Thiết kế Xử lý
• Danh sách các biến
STT
Biến
Kiểu
Ý nghĩa
Ghi chú
...
...
...
...
...
• Danh sách các hằng Kiểu Hằng
STT
Giá trị
Ý nghĩa
Ghi chú
...
...
...
...
...
...
• Danh sách các hàm xử lý
STT
Hàm Tham số
Ý nghĩa Ghi chú
Thuật giải
Kết quả trả về
9
...
...
...
...
...
...
Ví dụ 1
• Phân tích, thiết kế chức năng tra cứu học sinh theo lớp
1. Phân tích
Sơ đồ luồng dữ liệu
Giải thích:
Người dùng
D1: Lớp được chọn
D2: Danh sách học sinh trong lớp được chọn
D1
D2
D3: Danh sách lớp, Danh sách học sinh
Thuật toán xử lý
Tra cứu học sinh theo lớp
Đọc D3
Nhập D1
D3
10
Tính D2 (DS học sinh trong lớp được chọn)
Xuất D2
Ví dụ 1 (tt)
2. Thiết kế
a. Thiết kế dữ liệu (lưu trữ)
Dùng cơ sở dữ liệu quan hệ gồm hai bảng: HOC_SINH, LOP
11
Ví dụ 1 (tt)
2. Thiết kế
b. Thiết kế giao diện
(0)
(1)
12
Cách 1
Ví dụ 1 (tt)
2. Thiết kế
(1
b. Thiết kế giao diện
)
(0
)
13
Cách 2
Ví dụ 1 (tt)
2. Thiết kế
b. Thiết kế giao diện
(1)
(0)
(2)
14
Cách 3
Ví dụ 1(tt)
2. Thiết kế
b. Thiết kế giao diện
Danh sách các biến cố
STT
Điều kiện kích hoạt
Xử lý
Khởi động màn hình
0
???
1
Chọn lớp
???
2
Chọn học sinh
???
15
Ví dụ 1(tt)
2. Thiết kế
b. Thiết kế xử lý STT
Hàm
Tham số
Kiểu trả về
Thuật giải
Ghi chú
1
?
Xuất danh sách lớp
2
?
Xuất danh sách học sinh
...
...
16
3. Bài tập: Mở rộng khi Trường quản lý phân cấp theo khối
Ví dụ 2
• Xét phần mềm quản lý bán hàng với nghiệp vụ lập phiếu
thu tiền của khách hàng
17
Hãy lập sơ đồ logic dữ liệu
Ví dụ 2 (tt)
• Cách 0: dùng 1 bảng
• Cách 1: dùng 2 bảng (PHIEU_THU, LYDO_THU)
• Cách 2: dùng 2 bảng (PHIEU_THU, KHACH_HANG)
• Cách 3: dùng 4 bảng
18
Ví dụ 2(tt)
PHIEU_THU
KHACH_HANG
MA_KH Ho_Ten CMND Dia_Chi
MA_PT MA_KH MA_LDT Ngay_Thu SoTien_Thu
THAM_SO
LYDO_THU
MA_LDT Ten_LDT
MA_Tham_So Ten_Tham_So Gia_Tri
19
Table THAM_SO dùng để lưu những qui định
Ví dụ 3
• Xét phần mềm quản lý nhân sự với nghiệp vụ tiếp nhận
nhân viên
20
Ví dụ 3(tt)
Hãy lập sơ đồ logic dữ liệu cho yêu cầu nghiệp vụ trên trong các trường hợp sau:
a. Không yêu cầu theo dõi quá trình chuyển nhân viên từ
đơn vị này sang đơn vị khác
b. Có yêu cầu theo dõi quá trình chuyển nhân viên
c. Bổ sung qui định: Đơn vị X chỉ nhận các nhân viên có
trình độ đại học và sau đại học
21
Ví dụ 3(tt)
a.
NHAN_VIEN
DON_VI
MA_Don_Vi Ten_Don_Vi
TRINH_DO
MA_NV MA_Don_Vi Ho_Ten Gioi_Tinh Ngay_Sinh Dien_Thoai Dia_Chi Ma_Trinh_Do
MA_Trinh_Do Ten_Trinh_Do
22
Ví dụ 3(tt)
• Table THAM_SO có thể thiết kế theo nhiều cách
• Cách 1
Khóa
ThamSố#1
ThamSố#2
…
ThamSố#N
…
…
…
…
…
Mỗi tham số tương ứng với một cột trong bảng tham số Bảng tham số thường chỉ gồm 1 dòng (chứa giá trị các
tham số hiện hành)
23
Cần vô hiệu hóa tác dụng của một tham số?
? Cần bổ sung tham số mới?
Ví dụ 3 (tt)
• Cách 2
Được lưu Được lưu dạng chuỗi dạng chuỗi
MãThamSố
TênThamSố
Kiểu GiáTrị
TìnhTrạng
…
…
…
…
…
Mỗi tham số tương ứng với một dòng trong bảng tham số Giá trị hiện tại của tham số được lưu bằng dạng chuỗi Mỗi tham số cần lưu trữ kiểu giá trị để phần mềm “hiểu”
đúng nội dung giá trị hiện tại của tham số
24
Cần vô hiệu hóa tác dụng của một tham số?
? Cần bổ sung tham số mới?
Ví dụ 3(tt)
PHAN_CONG
b.
NHAN_VIEN
MA_PC MA_NV MA_Don_Vi Ngay_PhanCong
DON_VI
MA_Don_Vi Ten_Don_Vi
MA_NV Ho_Ten Gioi_Tinh Ngay_Sinh Dien_Thoai Dia_Chi Ma_Trinh_Do
TRINH_DO
25
MA_Trinh_Do Ten_Trinh_Do
Ví dụ 3(tt)
c. Bổ sung qui định: Đơn vị X chỉ nhận các nhân viên có
trình độ đại học và sau đại học
???
26
Bài tập
1. Xét phần mềm quản lý học sinh với chức năng ghi nhận
bảng điểm danh
27
Hãy lập: sơ đồ luồng dữ liệu, sơ đồ logic dữ liệu
Bài tập
2. Xét phần mềm quản lý bán hàng với chức năng lập hóa
đơn bán hàng. Hãy lập sơ đồ logic dữ liệu
28
Bài tập
3. Xét phần mềm quản lý tiết kiệm với chức năng mở sổ
tiết kiệm. Hãy lập sơ đồ logic dữ liệu
29
Bài tập
4.Xét phần mềm quản lý giải bóng đá với các yêu cầu sau:
• Tiếp nhận đăng ký tham gia
• Xếp lịch thi đấu
• Ghi nhận kết quả thi đấu
• Lập bảng xếp hạng
• Giải gồm có 4 đội tham gia.
• Thông tin về mỗi đội bao gồm: Tên đội, danh sách các cầu thủ
của đội
• Thông tin về mỗi cầu thủ bao gồm: Tên cầu thủ, vị trí sở trường
• Xếp lịch thi đấu
30
• Các đội thi đấu vòng tròn hai lượt. Thông tin về trận đấu được xếp lịch: Hai đội bóng tham dự, ngày giờ thi đấu, sân thi đấu (giải diễn ra trên hai sân: A, B)
Bài tập
• Ghi nhận kết quả thi đấu, chỉ yêu cầu ghi nhận:
Tỉ số
•
•
Tổng số thẻ vàng, thẻ đỏ
•
Lập bảng xếp hạng: •
Hạng được dựa trên các tiêu chí sau:
• Điểm số
• Hiệu số
• Số bàn thắng
•
Điểm cho mỗi trân thua là 0, hòa là 1, thắng là 3
1. Hãy lập sơ đồ luồng dữ liệu cho mỗi yêu cầu
31
2. Lập sơ đồ logic dữ liệu
3. Thiết kế màn hình giao diện cho từng yêu cầu.
Giao diện ghi nhận KQTĐ
• Cách 1:
32
Giao diện ghi nhận KQTĐ
• Cách 2:
33
Giao diện ghi nhận KQTĐ
• Cách 3:
34
Giao diện ghi nhận KQTĐ
• Cách 4:
35
Giao diện ghi nhận KQTĐ
• Cách 5:
36
Bài tập
5. Cho CSDL của phần mềm quản lý bán hàng như sau:
• Hãy thiết kế giao diện và mô tả các thành phần của giao
37
diện:
• Lập phiếu nhập, lập phiếu xuất
• Tra cứu hàng hóa
Thiết kế Xử lý
38
Thiết kế xử lý
• Mục tiêu: Mô tả chi tiết hệ thống các hàm xử lý của phần
mềm
Tổ chức: đơn thể/đối tượng
Thông tin chi tiết:
Người dùng
• Tên
D1
D2
Xử lý
• Tham số
Mô tả hàm xử lý
D3
D4
• Kết quả
• Dữ liệu toàn cục
Sự phối hợp
39
Thiết kế xử lý
• Kết quả:
• Danh cách các đơn thể/đối tượng
• Danh sách các hàm của mỗi đơn thể/đối tượng
• Các sơ đồ phối hợp
• Yêu cầu thiết kế:
• Tính đúng đắn
• Tính dễ bảo trì
• Tính tái sử dụng
40
• Tính dễ mang chuyển
Thiết kế xử lý
• Kỹ thuật thiết kế:
• Phân rã/tích hợp
• Tham số hóa
• Đối tượng hóa
• Sơ đồ phối hợp:
• Mô tả cách thức phối hợp (gọi thực hiện) giữa các
hàm
41
Thiết kế xử lý
• Ký hiệu:
Hàm xử lý
Tên hàm
Tên đơn thể
Hàm của đơn thể
Tên hàm
A
B
1
2
A có gọi đến B, C theo thứ tự, không chuyển tham số, không nhận kết quả
C
42
A gọi đến B có chuyển tham số,
A
B
không nhận kết quả
Thiết kế xử lý
A gọi đến B không chuyển tham số,
A
B
nhưng nhận kết quả
B
A gọi đến B hoặc C
A
C
*
A gọi đến B nhiều lần (ít nhất là 0 lần)
A
B
+
A gọi đến B nhiều lần (ít nhất là 1 lần)
A
B
Chú ý: Có n biến cố phải xử lý Tương ứng có n sơ đồ
43
phối hợp
Ví dụ
• Xét màn hình tiếp nhận học sinh mới như sau:
44
Ví dụ
• Hãy:
• Mô tả các biến cố
• Lập danh sách các hàm xử lý
• Lập các sơ đồ phối hợp (Khi có ít nhất hai hàm tham
gia trong cùng một biến cố)
45
Ví dụ - Mô tả biến cố
• Biến cố 0:
• Khởi động màn hình
• Biến cố 1:
• Kiểm tra tuổi học sinh hợp lệ (tuổi từ 15 đến 20)
• Biến cố 2:
• Khi chọn một lớp học trên combobox
• Biến cố 3:
• Kiểm tra dữ liệu hợp lệ và ghi
46
Ví dụ - Danh sách các biến cố
Xử lý
Ghi chú
BC
Điều kiện kích hoạt
0
Khởi động màn hình
- Đọc danh sách lớp, danh sách học sinh, tham số - Xuất danh sách lớp, danh sách học sinh, hồ sơ học sinh mới
theo qui
1
- Kiểm tra ngày sinh hợp lệ và xuất thông báo lỗi nếu không hợp lệ
Tuổi định 1520
thúc Kết nhập ngày sinh
thúc
2
Kết chọn lớp
- Ghi nhận vị trí của lớp được chọn trong danh sách lớp
Chuẩn bị khi ghi hồ sơ
nút
3
47
Nhút ghi
Mã và tên phải khác rỗng
- Kiểm tra hồ sơ hợp lệ - Nếu hợp lệ thì nhập hồ sơ học sinh và ghi hồ sơ học sinh. Xuất thông báo
Ví dụ - Danh sách các hàm xử lý
STT
Tên hàm
Tham số
Kết quả
Ý nghĩa
Ghi chú
…
48
Ví dụ - Lập sơ đồ phối hợp
• Xử lý biến cố 0
Xử lý biến cố 0
Xuất hồ sơ học sinh mới
(2
)
(1
)
Xuất danh sách
49
Ví dụ - Lập sơ đồ phối hợp
• Xử lý biến cố 0: Phân rã hàm
Hàm Xử lý biến cố 0
(6
)
(1
Xuất hồ sơ học sinh mới
)
(2
(5
)
(3
)
(4
Đọc danh sách lớp
)
)
Xuất danh sách học sinh
Đọc danh sách học sinh
50
Đọc danh sách tham số
Xuất danh sách lớp
Ví dụ - Lập sơ đồ phối hợp
(6
Hàm Xử lý biến cố 0
Xuất hồ sơ học sinh mới
)
(1
(2
(3
(4
(5
Xuất d.sách học sinh
)
)
)
)
)
Đọc danh sách lớp
Đọc danh sách học sinh
Đọc danh sách tham số
Xuất danh sách lớp
XL_Doc_Ghi
XL_Nhap_Xuat
Doc_Danh_Dach
Xuat_Danh_Dach
51
Ví dụ - Lập sơ đồ phối hợp
• Xử lý biến cố 1
• Dùng 1 hàm
• Xử lý biến cố 2
• ?
• Xử lý biến cố 3
• ?
52
Bài tập
1. Lập sơ đồ phối hợp cho các biến cố còn lại trong ví dụ
trên.
2. Đánh giá các sơ đồ phối hợp dựa trên các tính chất
- Tính đúng đắn
- Tính tái sử dụng
- Tính dễ bảo trì
- Tính dễ mang chuyển
- …
53
54
Chủ đề 4: Thiết kế Phần mềm (tt)
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 1 HIENLTH
Kiến trúc phần mềm
Heavily reference to Introduction SE Slides: Nguyen Minh Huy, HCMUS
Ivan Sommerville, Software Engneering, Chapter 11
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 2 HIENLTH
Nội dung
• Khái niệm kiến trúc • Các mô hình kiến trúc • Công nghệ phân tán
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 3 HIENLTH
Khái niệm kiến trúc
• Kiến trúc phần mềm là gì? – Phần mềm không đơn nhất Có các thành phần con bên trong. – Thắc mắc về các thành phần con: • Được tổ chức, sắp xếp như thế nào? • Mối liên hệ giữa chúng? • Có cấu trúc ra sao? Kiến trúc phần mềm.
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 4 HIENLTH
Kiến trúc phần mềm
• Là các cấu trúc của hệ thống được tạo
nên bởi: – Các thành phần – Các thuộc tính của từng thành phần có thể
thấy từ bên ngoài
– Mối quan hệ giữa các thành phần
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 5 HIENLTH
Khái niệm kiến trúc (tt)
• Tầm quan trọng của kiến trúc:
– Ảnh hưởng của hiệu quả hoạt động:
• Tính tốc độ (performance) • Tính thích ứng (scalability) • Tính bảo mật (security) • Tính chịu lỗi (fault—tolerance)
– Ảnh hưởng về chi phí: • Khả năng triển khai • Khả năng vận hành • Khả năng bảo trì
– Ảnh hưởng về thiết kế và cài đặt.
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 6 HIENLTH
Khái niệm kiến trúc (tt)
• Thiết kế kiến trúc:
– Hoạt động đầu tiên của pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện:
• Phân rã hệ thống (sub-system) • Bố trí các thành phần • Thiết lập mối quan hệ
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 7 HIENLTH
Khái niệm kiến trúc (tt)
• Thiết kế kiến trúc:
– Hoạt động đầu tiên của pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện:
• Phân rã hệ thống (sub-system) • Bố trí các thành phần • Thiết lập mối quan hệ
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 8 HIENLTH
Các mô hình kiến trúc
• Phân loại mô hình: – Mô hình đơn lập – Mô hình phân tán
• Mô hình Client – Server • Mô hình 3 tầng • Mô hình Peer-To-Peer
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 9 HIENLTH
Mô hình đơn lập
• Là một thể thống nhất • Không có sự phân nhóm • Các thành phần tự do tương tác • Ưu điểm:
– Dễ lập trình và triển khai – Tốc độ xử lý • Khuyết điểm:
– Khó bảo trì, nâng cấp – Không chia sẽ dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 10 HIENLTH
Mô hình Client – Server
• Phân làm 2 phân hệ:
– Server:
• Cung cấp dịch vụ (dữ liệu, thư viện) • Chia sẽ, dung chung
– Client:
• Sử dụng dịch vụ
(giao diện, thư viện)
• Phân tán
• Tương tác giữa các thành phần: – Trong phân hệ: tự do tương tác – Giữa hai phân hệ: tương tác 1 chiều từ client đến server
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 11 HIENLTH
Mô hình Client – Server (tt)
• Mô hình Thin-Client:
– Server đảm trách dữ liệu + xử lý – Client chỉ lo phần giao diện người dung
dump terminal • Mô hình Fat-Client:
– Server đảm trách dữ liệu – Client lo toàn bộ giao diện + xử lý người dùng
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 12 HIENLTH
Mô hình Client – Server (tt)
• Ưu điểm:
– Dữ liệu chia sẽ và đồng bộ. – Hạn chế tương tác Cô lập lỗi Dễ bảo trì, nâng cấp
• Khuyết điểm:
– Chi phí triển khai – Tốc độ xử lý
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 13 HIENLTH
Mô hình 3 tầng (3-tier)
• Phân làm 3 phân hệ:
– Tầng dữ liệu (data layer)
• Dịch vụ dữ liệu • Data center
– Tầng xử lý (business layer)
• Thư viện xử lý • Application server
– Tầng giao diện (presentation layer)
• Giao diện người dung • Thin-Client
• Quy tắc tương tác thang máy không tương
tác vượt tầng
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 14 HIENLTH
Kiến trúc 3 tầng (cont)
• Tầng giao diện
Các thực thể phần mềm làm nhiệm vụ nhập liệu, trình bày, hiển thị, có thể bao gồm bước kiểm tra dữ liệu trước khi gọi Business Logic Layer.
Tương tác với người sử dụng.
Người dùng
Tầng giao diện
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 15 HIENLTH
Kiến trúc 3 tầng (cont)
• Tầng nghiệp vụ
Các thực thể phần mềm thực hiện các chức năng nghiệp vụ.
Người dùng
Chứa các xử lý chính. Quản lý các Transaction, quản
Tầng giao diện
lý các current access.
Tầng nghiệp vụ
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 16 HIENLTH
Kiến trúc 3 tầng (cont)
• Tầng dữ liệu
Các thực thể phần mềm làm
Người dùng
nhiệm vụ lưu trữ dữ liệu.
Tương tác với cơ sở dữ liệu
Tầng giao diện
(thêm, xóa, sửa, chọn).
Tầng nghiệp vụ
Tầng dữ liệu
Cơ sở dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 17 HIENLTH
Mô hình 3 tầng (3-tier) (tt)
• Mô hình đa tầng:
– Mở rộng mô hình 3 tầng – Phần làm nhiều tầng xử lý – Thường dùng trong ứng dụng web
• Ưu điểm:
– Tương tự như mô hình client-server – Xử lý chia sẻ và được chia nhỏ
• Khuyết điểm:
– Tương tự như mô hình client-server
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 18 HIENLTH
Việc trao đổi liên lạc giữa các layer
GUI
Business logic
Data Access
Data Transfer Object (DTO)
Data Các giá trị, dòng, bảng
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 19 HIENLTH
Sự phụ thuộc giữa các layer
GUI
Business logic Data Transfer Object (DTO)
Data Access
Data
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 20 HIENLTH
Tính chất kiến trúc 3 tầng
• Tính chất
Giảm sự gắn kết giữa các thực thể phần mềm
(decoupling).
Presentation Layer
Business Layer
Data Layer
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 21 HIENLTH
Tính chất kiến trúc 3 tầng
• Tính chất
Giảm sự gắn kết giữa các thực thể phần mềm
(decoupling). Tái sử dụng.
Presentation Layer
Business Layer
Data Layer
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 22 HIENLTH
Tính chất kiến trúc 3 tầng
• Tính chất
Giảm sự gắn kết giữa các thực thể phần mềm
(decoupling). Tái sử dụng. Chia sẻ trách nhiệm. Client
Application Server Database Server
Data Source
Presentation Layer Business Layer Data Layer
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 23 HIENLTH
Tính chất kiến trúc 3 tầng (cont)
• Chú ý:
Không phụ thuộc phương pháp lập trình. Mỗi nghiệp vụ không nhất thiết chỉ được
giải quyết bởi 3 đối tượng.
Không là một kiến trúc “siêu việt”.
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 24 HIENLTH
Mô hình Peer-to-Peer
• Là mô hình đơn lập phân tán • Triển khai trên nhiều máy (node) – Các node tương tác được với nhau – Mỗi node đóng vai trò client-server – Chia sẽ dữ liệu + xử lý trên toàn bộ node
• Ưu điểm:
– Không cần server trung tâm – Không gian lưu trữ và khả năng xử lý dàn trải – Dễ triển khai • Nhược điểm:
– Khó lập trình và quản lý dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 25 HIENLTH
Công nghệ phân tán
• Middleware • Web Service
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 26 HIENLTH
Middleware
• Các thành phần trong hệ phân tán giao tiếp
nhau như thế nào? hệ thống đứng giữa điều phối.
• Các chuẩn phổ biến:
– CORBA (Common Object Request Broker
Architecture)
– COM (Component Object Model) – JavaBeans
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 27 HIENLTH
Web Service
• Thư viện lập trình dựng sẵn • Cung cấp dạng dịch vụ • Truy xuất qua internet • Các dịch vụ phổ biến:
– Math services – Google map – Amazon service
• Các chuẩn giao tiếp XML:
– SOAP (Simple Object Access Protocol) – WSDL (Web Services Description Language) – UDDI (Universal Description Discovery and Integration)
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 28 HIENLTH
Bài tập
Thiết kế kiến trúc cho đồ án môn học: • Phân rã hệ thống
DS các thành phần con.
• Bố trí các thành phần
lựa chọn mô hình kiến trúc sắp xếp các thành phần con vào mô hình
• Thiết lập mối quan hệ
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 29 HIENLTH
Câu hỏi và thảo luận
?
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 30 HIENLTH
Chủ đề 4: Thiết kế Phần mềm (tt)
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 1 HIENLTH
Heavily reference to Introduction SE Slides: Tran Ngoc Bao, HCMUP LƯỢC ĐỒ UML
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 2 HIENLTH
SEQUENCE DIAGRAM
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 3 HIENLTH
MỤC TIÊU
• Biết được cách thiết kế Sequence diagram • Biết được các thành phần trong Sequence
diagram
• Biết được cách sử dụng Power Designer
để tạo Sequence Diagram
• Xây dựng một số sequence diagram của
một số ứng dụng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 4 HIENLTH
NỘI DUNG TRÌNH BÀY
• Sequence Diagram? • Các thành phần trong Sequence diagram • Xây dựng một số Sequence diagram của
ứng dụng quản lý thời khóa biểu • Tạo Sequence diagram trong Power
Designer • Tạo report
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 5 HIENLTH
Sequence Diagrams
• Lược đồ tuần tự (Sequence Diagram):
– Mô tả tương tác giữa actor và các đối tượng
hệ thống.
– Mô tả sự tương tác giữa các đối tượng theo
trình tự thời gian
– Thường được dùng để biểu diễn các bước thực hiện trong một kịch bản khai thác (Scenario) của một use-case
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 6 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 7 HIENLTH
Ví dụ minh họa
• Use case diagram mô tả hệ thống quản lý
thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 8 HIENLTH
Ví dụ minh họa: ứng dụng TKB
• Use case • Action Steps
– Chọn chức năng xem thời khóa biểu – Hiển thị màn hình cho phép người dùng chọn thông
tin cần xem
– Chọn niên khóa từ danh sách hiện có trong hệ thống – Chọn học kỳ từ danh sách hiện có trong hệ thống – Chọn lớp hoặc tên giảng viên cần xem trong danh
sách lớp và giảng viên hiện có trong hệ thống
– Hiển thị thông tin chi tiết thời khóa biểu lớp hoặc thời
khóa biểu của giảng viên
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 9 HIENLTH
Ví dụ minh họa
• Sequence diagram mô tả use- case xem TKB hệ thống quản lý thời khóa biểu.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 10 HIENLTH
Các thành phần trong Sequence Diagram
• Lược đồ tuần tự có 2 trục – Trục dọc chỉ thời gian – Trục ngang biểu diễn tập
hợp các đối tượng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 11 HIENLTH
Các thành phần trong Sequence Diagram
• Actor
• Object
• Message
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 12 HIENLTH
Các thành phần trong Sequence Diagram
• Actor
– Tác nhân bên ngoài tương tác với hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 13 HIENLTH
Các thành phần trong Sequence Diagram
• Object
– Đối tượng tham gia quá trình tương tác
giữa người dùng và hệ thống
• Object lifetime
– Mô tả chu kỳ sống của đối tượng trong
toàn bộ sequence diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 14 HIENLTH
Các thành phần trong Sequence Diagram
• Message
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 15 HIENLTH
Các thành phần trong Sequence Diagram
• Message – Thông điệp
– Lược đồ tuần tự mô tả chuỗi các thông điệp
gởi và nhận giữa các đối tượng
– Thông điệp mô tả loại tương tác giữa các lớp
đối tượng
– Thông điệp được gởi từ đối tượng này sang
đối tượng khác
– Thông điệp có thể là 1 yêu cầu thực thi hệ
thống, lời gọi hàm khởi tạo đối tượng, hủy đối tượng, cập nhật đối tượng,...
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 16 HIENLTH
Các thành phần trong Sequence Diagram
• Phân loại thông điệp
– Message – Self Message – Call Message – Self Call Message – Return Message – Self Return Message
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 17 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Message là thông điệp được gởi từ đối tượng A sang đối tượng B, yêu cầu đối B thực hiện một hành động, xử lý
– Ví dụ:
• Sinh viên chọn chức năng xem thời khóa biểu từ
màn hình chính
• Sinh viên chọn lớp từ màn hình xem TKB • …
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 18 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 19 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Message là thông điệp được gởi từ đối
tượng A đến chính nó, yêu cầu đối thực hiện một hành động, xử lý nào đó
– Ví dụ:
• Sinh viên nhập thông tin đăng nhập hệ thống • Hệ thống kiểm tra thông tin đăng nhập • …
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 20 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 21 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Call Message biểu diễn đối tượng A gọi thủ
tục của đối tượng B
– Ví dụ:
• Màn hình chính gọi thủ tục Show (hiển thị) màn
hình xem TKB
• Màn hình xem TKB gọi thủ tục lấy danh sách lớp
của đối tượng lớp
• Giáo vụ gọi hàm kiểm tra thông tin đăng nhập hệ
thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 22 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Call Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 23 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Call Message là thông điệp mà đối tượng
gọi thủ tục/hàm của chính nó.
– Ví dụ:
• Kiểm tra thông tin username/password • Thêm mới TKB của một lớp ⇔ thêm một đối tượng
TKB lớp
• Hiển thị thông tin TKB lớp lên màn hình • Xem TKB lớp
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 24 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Call Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 25 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Return Message thông điệp gởi về từ đối tượng nhận (kết quả ứng thông điệp đối tượng A yêu cầu đối tượng B thực hiện)
– Ví dụ:
• Danh sách lớp được gởi về từ đối tượng lớp cho
đối tượng màn hình xem TKB (ứng với thông điệp yêu cầu lấy danh sách lớp từ màn hình xem TKB gởi cho đối tượng lớp)
• Thông điệp trả về kết quả kiểm tra đăng nhập hệ
thống (thành công/thất bại)
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 26 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Return Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 27 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Return Message thông điệp trả kết quả từ
thông điệp yêu cầu của chính đối tượng
– Ví dụ:
• Đối tượng người dùng kiểm tra thông tin đăng
nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 28 HIENLTH
Các thành phần trong Sequence Diagram
• Message
– Self Return Message được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 29 HIENLTH
Các thành phần trong Sequence Diagram
• Activation
– Activation được sử dụng để mô tả thời gian
cần để thực thi một hành động nào đó. – Activation được tạo trong chu kỳ sống của
một đối tượng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 30 HIENLTH
Các thành phần trong Sequence Diagram
• Activation
– Activation được biểu diễn như sau
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 31 HIENLTH
Ví dụ
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 32 HIENLTH
HD tạo Sequence Diagram trong PD
• Sequence Diagram • Actor • Object • Messages – Message – Self Message – Call Message – Self Call Message – Return Message – Self Return Message
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 33 HIENLTH
COLLABORATION DIAGRAM
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 34 HIENLTH
MỤC TIÊU
• Biết được cách thiết kế Collaboration
diagram
• Biết được các thành phần trong
Collaboration diagram
• Biết được cách sử dụng Power Designer
để tạo Collaboration Diagram
• Xây dựng một số Collaboration diagram
của một số ứng dụng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 35 HIENLTH
NỘI DUNG TRÌNH BÀY
• Collaboration Diagram ? • Các thành phần trong Collaboration
diagram
• Xây dựng một số Collaboration diagram của ứng dụng quản lý thời khóa biểu • Tạo Collaboration diagram trong Power
Designer • Tạo report
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 36 HIENLTH
Collaboration Diagrams
• Lược đồ cộng tác (Collaboration Diagram) mô tả tương tác giữa actor và các đối tượng hệ thống.
• Lược đồ cộng tác thường được dùng để biểu
diễn một kịch bản khai thác (Scenario) của một use-case
• Có thể tạo nhiều collaboration diagram cho một
use case
• Có thể xác định được các lớp đối tượng và mối liên hệ giữa các lớp từ collaboration diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 37 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 38 HIENLTH
Ví dụ minh họa
• Use case diagram mô tả hệ thống quản lý
thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 39 HIENLTH
Ví dụ minh họa: ứng dụng TKB
• Use case • Action Steps
– Chọn chức năng xem thời khóa biểu – Hiển thị màn hình cho phép người dùng chọn thông
tin cần xem
– Chọn niên khóa từ danh sách hiện có trong hệ thống – Chọn học kỳ từ danh sách hiện có trong hệ thống – Chọn lớp hoặc tên giảng viên cần xem trong danh
sách lớp và giảng viên hiện có trong hệ thống
– Hiển thị thông tin chi tiết thời khóa biểu lớp hoặc thời
khóa biểu của giảng viên
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 40 HIENLTH
Ví dụ minh họa
• Sequence diagram mô tả use- case xem TKB hệ thống quản lý thời khóa biểu.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 41 HIENLTH
Ví dụ minh họa
• Collaboration diagram mô tả use-case xem TKB lớp hệ thống quản lý thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 42 HIENLTH
Các thành phần trong Collaboration Diagram
• Lược đồ cộng tác có 4 thành phần chính
– Actor – Object – Message – Instance Link
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 43 HIENLTH
Các thành phần trong Collaboration Diagram
• Actor
– Tác nhân bên ngoài tương tác với hệ thống
• Object
– Đối tượng tham gia quá trình tương tác giữa
người dùng và hệ thống
• Instance link
– Biểu diễn liên kết giữa 2 đối tượng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 44 HIENLTH
Các thành phần trong Collaboration Diagram
• Instance link
– Liên kết giữa actor và object
– Liên kết giữa 2 object
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 45 HIENLTH
Các thành phần trong Collaboration Diagram
• Message
– Thông điệp mô tả tương tác giữa các đối
tượng
– Thông điệp được gởi từ đối tượng này sang
đối tượng khác
– Thông điệp có thể là 1 yêu cầu thực thi hệ
thống, lời gọi hàm khởi tạo đối tượng, hủy đối tượng, cập nhật đối tượng,...
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 46 HIENLTH
Các thành phần trong Collaboration Diagram
• Message
– Thông điệp được biểu diễn trong
Collaboration như sau:
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 47 HIENLTH
Các thành phần trong Collaboration Diagram
• Thuộc tính của thông điệp
– Action – Control Flow – Operation – Arguments – Return Value – Predecessor list – Condition
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 48 HIENLTH
Các thành phần trong Collaboration Diagram
• Thuộc tính của thông điệp
– Action
• Create • Destroy • Self Destroy – Control Flow • Undefined • Asynchronous • Procedure Call • Return
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 49 HIENLTH
Các thành phần trong Collaboration Diagram
• Thuộc tính của thông điệp
– Action
• Create: đối tượng gởi thông điệp gọi hàm khởi tạo
đối tượng nhận thông điệp.
• Destroy: đối tượng gởi thông điệp gọi hàm hủy đối
tượng nhận thông điệp
• Self Destroy: đối tượng gởi thông điệp sẽ bị hủy
sau khi gởi thông điệp đến đối tượng nhận.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 50 HIENLTH
Các thành phần trong Collaboration Diagram
• Thuộc tính của thông điệp
– Control Flow
• Undefined: không được định nghĩa • Asynchronous: thông điệp không đồng bộ, đối
tượng gởi thông điệp không cần đợi kết quả trả về từ đối tượng nhận, các thông điệp có thể thực hiện đồng thời.
• Procedure Call: thông điệp đồng bộ, đối tượng gởi thông điệp phải đợi kết quả trả về từ đối tượng nhận.
• Return: thông điệp return thường liên kết với
thông điệp loại “Procedure Call”
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 51 HIENLTH
Các thành phần trong Collaboration Diagram
• Thuộc tính của thông điệp
– Operation
• Nếu đối tượng trong lược đồ là một thể hiện của một lớp đối tượng (class), chúng ta có thể chọn operation của class để liên kết với message.
• Không thể liên kết Return message với operation
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 52 HIENLTH
Tạo lược đồ Collaboration Digram trong PD
• Tạo trực tiếp Collaboration Diagram
– Actor – Object – Instance link – Messages – Action – Control flow – Operation – ...
• Tạo gián tiếp từ Sequence Diagram: Chuột phải chọn Create Default Communicatiuon Diagram COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 53 HIENLTH
ACTIVITY DIAGRAM
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 54 HIENLTH
MỤC TIÊU
• Biết được cách thiết kế Activity diagram • Biết được các thành phần trong Activity
diagram
• Biết được cách sử dụng Power Designer
để tạo Activity Diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 55 HIENLTH
NỘI DUNG TRÌNH BÀY
• Activity Diagram ? • Các thành phần trong Activity diagram • Xây dựng Activity diagram của ứng dụng
quản lý thời khóa biểu
• Tạo Activity diagram trong Power Designer
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 56 HIENLTH
Activity Diagram
• Biểu diễn mối liên hệ giữa các đối tượng theo
trình tự.
• Được sử dụng để biểu diễn cho hoạt động của
một use case.
• Làm rõ quy trình xử lý nghiệp vụ. • Làm rõ sự luân chuyển dữ liệu trong hệ thống. • Mô tả thuật toán.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 57 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 58 HIENLTH
Ví dụ minh họa
• Use case diagram mô tả hệ thống quản lý
thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 59 HIENLTH
Ví dụ minh họa: ứng dụng TKB
• Use case • Action Steps
– Chọn chức năng xem thời khóa biểu – Hiển thị màn hình cho phép người dùng chọn thông
tin cần xem
– Chọn niên khóa từ danh sách hiện có trong hệ thống – Chọn học kỳ từ danh sách hiện có trong hệ thống – Chọn lớp hoặc tên giảng viên cần xem trong danh
sách lớp và giảng viên hiện có trong hệ thống
– Hiển thị thông tin chi tiết thời khóa biểu lớp hoặc thời
khóa biểu của giảng viên
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 60 HIENLTH
Ví dụ minh họa
• Sequence diagram mô tả use- case xem TKB hệ thống quản lý thời khóa biểu.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 61 HIENLTH
Ví dụ minh họa
• Collaboration diagram mô tả use-case xem TKB lớp hệ thống quản lý thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 62 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case xem thời khóa biểu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 63 HIENLTH
Các thành phần trong Activity diagram
• Activity
• Object state
• Transition
• Decision
• Organization Unit
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 64 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn quy trình nhập
kho
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 65 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case đăng nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 66 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case đăng nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 67 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case đăng
nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 68 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case đăng
nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 69 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case đăng nhập hệ thống
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 70 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case tạo
user
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 71 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case tạo user
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 72 HIENLTH
Ví dụ minh họa
• Activity diagram biểu diễn use case tạo user
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 73 HIENLTH
COMPONENT DIAGRAM
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 74 HIENLTH
Mục tiêu
• Biết được cách thiết kế Component
diagram
• Biết được các thành phần trong
Component diagram
• Biết được cách sử dụng Power Designer
để tạo Component Diagram
• Xây dựng Component diagram của một số
ứng dụng ứng dụng
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 75 HIENLTH
NỘI DUNG TRÌNH BÀY
• Component Diagram ? • Các thành phần trong Component diagram • Xây dựng Component diagram của ứng
dụng quản lý thời khóa biểu
• Tạo Component diagram trong Power
Designer • Tạo report
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 76 HIENLTH
Component Diagrams
• Lược đồ thành phần (Component
Diagram) mô tả mối liên hệ giữa các thành phần trong hệ thống.
• Mỗi thành phần:
– Tập tin source code – Thư viên liên kết (DLL) – Chương trình thực thi (EXE) – Web site – Cơ sở dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 77 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp.
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp.
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ.
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 78 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
He thong quan ly thoi khoa bieu
Giao dien
Xu ly
Du lieu
Ví dụ minh họa Component Diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 79 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
He thong quan ly thoi khoa bieu
Giao dien
Xu ly
Du lieu
Thành phần giao diện
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 80 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
He thong quan ly thoi khoa bieu
Giao dien
Xu ly
Du lieu
Thành phần dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 81 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
He thong quan ly thoi khoa bieu
Giao dien
Xu ly
Du lieu
Thành phần xử lý - Code
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 82 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
He thong quan ly thoi khoa bieu
Giao dien
He thong dich vu nhan tin SMS
Xu ly
_
SMS Service
SMS Message
Du lieu
Ví dụ minh họa Component Diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 83 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
Mobi
He thong dich vu nhan tin SMS
He thong quan ly thoi khoa bieu
_
SMS Service
Giao dien
SMS Message
Viettel
SMS Data
Xu ly
Vina
Interface_6
Port_2
Du lieu
Ví dụ minh họa Component Diagram
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 84 HIENLTH
Ví dụ minh họa
• Component diagram mô tả hệ thống quản
lý thời khóa biểu
Web site (ASPX)
SMS Service (Windows Service)
Business Process
Ví dụ minh họa Component Diagram
Model/Info
Data Access
SQLClient
OracleClient
SQL DB
Controller
Oracle DB
Provider
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 85 HIENLTH
Các thành phần trong Component Diagram
SMS Service (Windows Service)
Web site (ASPX)
• Component
Model/Info
• Interface
• Quan hệ giữa các component
Data Access
SQLClient
Business Process
Model/Info
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 86 HIENLTH
Các thành phần trong Component Diagram
• Component
Oracle DB
– Là một thành phần của hệ thống – Thành phần có thể:
Web site (ASPX)
SMS Service (Windows Service)
• Source code • Lớp đối tượng (Class) • Giao diện • Web application • Web Service • Windows App (EXE) • Thư viện liên kết (DLL) • Cơ sở dữ liệu • Table • …
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 87 HIENLTH
Các thành phần trong Component Diagram
• Component
Oracle DB
– Thuộc tính của Component:
Web site (ASPX)
• Interface • Classes • Port • Part • File • Operation
SMS Service (Windows Service)
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 88 HIENLTH
Các thành phần trong Component Diagram
• Interface
– Tập hợp một số hành động của một lớp đối
tượng
– Tập các hàm dùng chung trong nhiều lớp
khác nhau
• Thành phần của Interface
– Property – Operation
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 89 HIENLTH
Các thành phần trong Component Diagram
• Quan hệ giữa các thành phần
– Quan hệ giữa component và interface – Quan hệ giữa component và component
Data Access
SQLClient
Business Process
Model/Info
• Các loại quan hệ – Generalization – Realization – Dependency
COMP1026 – Introduction to Software Engneering CH4 – Part 4 - 90 HIENLTH
Chủ đề 4: Thiết kế Phần mềm (tt)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 1 HIENLTH
USER INTERFACE DESIGN
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 2 HIENLTH
Nội dung
• Khái niệm giao diện • Các thành phần giao diện • Phân loại màn hình • Một số tiêu chí thiết kế màn hình • Sơ đồ màn hình, sitemap • Mô tả chi tiết màn hình
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 3 HIENLTH
Thiết kế giao diện
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 4 HIENLTH
Khái niệm giao diện
• Giao diện là gì?
– Phần mềm không hoạt động độc lập mà luôn
giao tiếp với: • Người sử dụng • Các hệ thống liên quan
cần thành phần chuyên trách giao tiếp: Giao diện
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 5 HIENLTH
Khái niệm giao diện
• Đặc điểm:
– Nơi diễn ra tương tác – Định nghĩa cách thức giao tiếp – Tiếp nhận thông tin – Phản hồi thông tin
• Phân loại:
– Giao diện người dung (User interface) – Giao diện lập trình (Programming interface)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 6 HIENLTH
Khái niệm giao diện
• Thiết kế giao diện người dùng:
– Lập danh sách màn hình
• Xác định ngữ cảnh giao tiếp • Dựa vào tình huống sử dụng (Use Case)
– Xây dựng sơ đồ màn hình
• Chuyển tiếp giữa các ngữ cảnh • Mối quan hệ giữa các màn hình – Bố trí các thành phần màn hình
• Sắp xếp các đơn vị giao diện màn hình
– Đặc tả màn hình
• Mô tả các thành phần màn hình • Mô tả kịch bản sử dụng
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 7 HIENLTH
Các thành phần của giao diện
Multimedia Giao diện tương tác
Giao dịch điện tử
Giao diện
Giao diện nhập liệu Tài liệu điện tử Giao diện kết xuất
Tìm kiếm thông tin Xử lý thông tin
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 8 HIENLTH
Các thành phần giao diện
• Thành phần tiếp nhận thông tin
– Ra lệnh: Button – Nhập liệu: TextBox – Lựa chọn: ComboBox, ListBox, CheckBox,
RadioButton
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 9 HIENLTH
Các thành phần giao diện
• Thành phần phản hồi thông tin
– Thông tin đơn: Label, Textbox, MessageBox – Thông tin phức: ListView, GridView, Report
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 10 HIENLTH
Phân loại giao diện
• Giao diện DOS
• Giao diện Windows
• Giao diện Web
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 11 HIENLTH
Các thành phần giao diện đồ họa - GUI
The link ed image cannot be displayed. Th e file may h ave been mov ed, renamed, or d eleted. Verify that the link poin ts to the cor rect file and loc ation.
Dialog
SDI – Single Document Interface
Có một cửa sổ làm việc Thường có kích thước cố định Thường không có menu bar
MDI – Multiple Document Interface
Có một cửa sổ làm việc Cho phép thay đổi kích thước cửa sổ (Resizeable) Không có cửa sổ con
Có một cửa sổ làm việc chính (Main frame) và nhiều cửa sổ con (Child
Frame)
Cho phép thay đổi kích thước cửa sổ (Resizeable) Cho phép Minimize/Maximize/Close/Arrange/Cascade cửa sổ con
Workflow Editor Calculator Paint
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 12 HIENLTH
Phân loại màn hình
• Màn hình đăng nhập • Màn hình giới thiệu • Màn hình chính • Màn hình tác giả • Màn hình danh mục • Màn hình nhập liệu – Nhập liệu trực tiếp – Nhập liệu gián tiếp (import)
• Màn hình tra cứu • Màn hình xử lý tính toán • Màn hình thể hiện báo biểu/thống kê • Màn hình thể hiện đối tượng: sơ đồ, cây, biểu tượng…
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 13 HIENLTH
Màn hình đăng nhập
• Hình thức thể hiện
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 14 HIENLTH
Màn hình đăng nhập
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 15 HIENLTH
Màn hình chính
• Hình thức thể hiện (Windows)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 16 HIENLTH
Màn hình chính (Windows)
• Ví dụ minh họa
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 17 HIENLTH
Màn hình chính (Windows)
• Ví dụ minh họa
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 18 HIENLTH
Màn hình tra cứu
• Tiêu chuẩn tra cứu (Search/Filter)
– Thiết kế cố định
• Dễ thiết kế/lập trình • Không có tính mở rộng
– Cho phép người dùng thêm/xóa các tiêu chuẩn trong
quá trình tìm kiếm
• Dễ dụng, mở rộng, tùy biến • Khó thiết kế/lập trình • Tham khảo: Microsoft Outlook 2007,…
– Đối với danh sách (Grid, Sheet), cho phép người dùng
chọn trực tiếp từ thanh filter (tương tự như Excel)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 19 HIENLTH
Màn hình tra cứu
• Hình thức thể hiện
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 20 HIENLTH
Quy tắc thiết kế giao diện
• Quy tắc về màu sắc: – Dùng màu nhất quán – Giới hạn số lượng màu – Không dùng màu sặc sỡ – Cẩn trọng các màu tương phản
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 21 HIENLTH
Quy tắc thiết kế giao diện
• Tính nhất quán
– Màu sắc – Vị trí của các đối tượng – Sử dụng ký hiệu
• Tính trực quan
– Hình thức thể hiện
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 22 HIENLTH
Quy tắc thiết kế giao diện
• Tính nhất quán:
– Vị trí của đối tượng
Không nhất quán
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 23 HIENLTH
Quy tắc thiết kế giao diện
• Tính nhất quán:
Không nhất quán vì: •Màn hình 1: sử dụng màu sắc để biểu diễn các thuộc tính bắt buộc. •Màn hình 2: sử dụng ký hiệu (*) để biểu diễn các thuộc tính bắt buộc.
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 24 HIENLTH
Quy tắc thiết kế giao diện
• Tính trực quan
– Hình thức thể hiện: sử dụng sơ đồ, biểu tượng, hình ảnh, cây để biểu diễn dữ liệu
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 25 HIENLTH
Quy tắc thiết kế giao diện
• Tính trực quan
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 26 HIENLTH
Quy tắc thiết kế giao diện
• Tính trực quan
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 27 HIENLTH
Quy tắc thiết kế giao diện
• Tính trực quan
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 28 HIENLTH
Quy tắc thiết kế giao diện
• Quy tắc về thông báo:
– Nhất quán – Lịch sự – Cô đọng nhưng dễ hiểu – Nên kèm diễn giải, gợi ý – Không dùng ngôn ngữ: đại chúng, chuyên
dụng, kỹ thuật
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 29 HIENLTH
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 30 HIENLTH
Quy tắc thiết kế giao diện
• Quy tắc về kiểm tra nhập liệu – Kiểm tra tất cả dữ liệu nhập – Dựa trên:
• Ràng buộc tự nhiên • Ràng buộc nghiệp vụ
– “Phòng bệnh hơn chữa bệnh”
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 31 HIENLTH
Quy trình
1. Mục đích màn hình 2. Vẽ giao diện màn hình. Trong đó có ghi
chú các control đặc biệt dạng ,,,,… và đánh dấu rõ các sự kiện dạng (1), (2),…
3. Mô tả các control 4. Mô tả các sự kiện (biến cố) và cách xử lý
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 32 HIENLTH
Mô tả các control
STT Tên
Kiểu
Ý nghĩa
Ghi chú
txtHoTen
TextBox
Tên học sinh Không được rỗng
1
txtDiemThi
TextBox
Điểm thi
2
Chỉ cho nhập số nguyên từ 0 đến 10
… …
…
…
…
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 33 HIENLTH
Mô tả sự kiện
STT Điều kiện kích hoạt
Xử lý
Khởi động màn hình
0
???
1
Chọn lớp
???
… …
…
(1)
(0)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 34 HIENLTH
Câu hỏi và thảo luận
•
?
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 35 HIENLTH
THIẾT KẾ MENU
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 36 HIENLTH
Hệ thống thực đơn (Menu)
• Hệ thống thực đơn chính
– Hệ thống thực đơn trong màn hình chính của
mỗi phân hệ (module)
• Hệ thống thực đơn ngữ cảnh
– Thực đơn sử dụng khi click chuột phải lên một
hoặc một nhóm đối tượng trên màn hình
– Thực đơn sử dụng khi click chuột phải lên một
dòng trong lưới (Grid)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 37 HIENLTH
Giới thiệu Menu Giới thiệu Menu
Menu Bar
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 38 HIENLTH
Giới thiệu Menu Giới thiệu Menu
Popup Menu
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 39 HIENLTH
Các thành phần trên Menu bar Các thành phần trên Menu bar
Popup Menu
Menu Bar
Popup Menu
Popup Menu
Popup Menu
Separator
Menu Item
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 40 HIENLTH
Tổ chức hệ thống thực đơn chính
• Hệ thống • Danh mục • Nhóm chức năng 1 (nghiệp vụ 1) • Nhóm chức năng 2 (nghiệp vụ 2) • Tra cứu • Báo cáo (Report) • Công cụ/tiện ích (Tools/Utilities) • Trợ giúp (Help)
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 41 HIENLTH
Tổ chức hệ thống thực đơn (Menu)
• Hệ thống thực đơn Microsoft Word 2003
• Hệ thống thực đơn Microsoft PowerPoint 2003 • Hệ thống thực đơn Total Commander
• Hệ thống thực đơn chương trình QL thư viện
• Hệ thống thực đơn chương trình QL nhân sự
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 42 HIENLTH
Hệ thống thực đơn
• Hệ thống
– Cấu hình hệ thống – Đăng nhập – Đổi mật khẩu – Thoát • Danh mục
– Danh mục nhân viên – Danh mục quận huyện – Danh mục tỉnh thành – Danh mục hàng hóa – ….
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 43 HIENLTH
Hệ thống thực đơn
• Nhóm chức năng 1 – Chức năng 1.1 – Chức năng 1.2 – Chức năng 1.3 – Chức năng 1.4 • Nhóm chức năng 2 – Chức năng 2.1 – Nhóm chức năng 2.2 – Chức năng 2.3 – Chức năng 2.4 – ….
DEMO
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 44 HIENLTH
Biểu diễn hệ thống thực đơn
• Ví dụ: hệ thống chức năng ứng dụng quản lý học sinh
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 45 HIENLTH
Thiết kế báo cáo (Report)
• Phân loại Report
– Report theo mẫu qui định – Report không theo mẫu
• Công cụ sử dụng
– Sử dụng Tools và Controls – Sử dụng excel/word,…
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 46 HIENLTH
Ví dụ minh họa report
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 47 HIENLTH
Thiết kế báo cáo
• Công cụ sử dụng
– MS Access 2000/XP/2003 – Crystal Report 8.5/9/10/11 – ActiveReport - DataDynamics – C1Report – ComponentOne – MS Excel, Word,… – …
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 48 HIENLTH
Công cụ tạo Report
• MS Access 2000/XP/2003/2007
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 49 HIENLTH
Công cụ tạo Report
• Crystal Report 8.5/9/10/11
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 50 HIENLTH
Công cụ tạo Report
• ActiveReport – DataDynamics
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 51 HIENLTH
Công cụ tạo Report
• C1Report - ComponentOne
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 52 HIENLTH
References
Bài giảng này tham khảo từ nguồn: • Slide CNPM, Nguyễn Minh Huy, ĐH KHTN
TpHCM.
• Slide CNPM, Trần Ngọc Bảo, ĐH Sư phạm
TpHCM
• Slide Thiết kế PM hướng đối tượng, Trần
Minh Triết, ĐH KHTN TpHCM.
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 53 HIENLTH
Câu hỏi và thảo luận
?
COMP1026 – Introduction to Software Engneering CH4 – Part 3 - 54 HIENLTH
Nhập môn Công nghệ Phần mềm Nhập môn Công nghệ Phần mềm Chủ đề 5: CÀI ĐẶT PHẦN MỀM Chủ đề 5: CÀI ĐẶT PHẦN MỀM
Lương Trần Hy Hiến, Khoa CNTT, ĐHSP TpHCM
1
Textbook Textbook
• Pressman, Software Engineering, chapter 16 • Sommerville, Software Engineering, chapter 19
2
Cảm ơn Cảm ơn
Bài giảng này tham khảo từ các nguồn sau: • Slide bài giảng CNPM, Trần Ngọc Bảo, ĐH
Sư phạm TpHCM
• Slide bài giảng CNPM, Trần Anh Dũng, ĐH
CNTT, ĐHQG TpHCM.
3
Giai đoạn cài đặt Giai đoạn cài đặt
Nội dung: • Tạo CSDL
Khảo sát
• Tạo giao diện
Phân tích
• Cài đặt các xử lý
Thiết kế
Cài đặt
Kết quả:
• Source code:
Kiểm tra
Giao diện
DLL
Triển khai
ActiveX Control
Sample Database
Bảo trì
• Chương trình: EXE, Web App
4
Cài đặt Cài đặt
• Mục tiêu:
– Biết cách sử dụng môi trường phát triển để xây
dựng chương trình phần mềm
– Biết cách quản lý chia sẽ Source Code
• Nội dung
–
Tổng quan
– Phương pháp lập trình
– Một số qui tắc lập trình
– Kiến trúc mô hình 1 lớp, 2 lớp, 3 lớp
–
5
Sử dụng công cụ Visual Source Safe để tổ chức, quản lý, chia sẻ source code.
Tổng quan Tổng quan
• Cài đặt: Là quá trình chuyển đổi từ thiết kế
chi tiết sang mã lệnh.
• Thế nào là ngôn ngữ lập trình tốt?
– Tập trung vào nhu cầu xác định dự án phát triển của
từng phần mềm riêng.
– Có thể thiết lập được một tập hợp tổng quát những
yêu cầu như sau:
• Dễ dịch thiết kế sang chương trình • Có trình biên dịch hiệu quả, • Khả chuyển chương trình gốc • Có sẵn công cụ phát triển
6
– Dễ bảo trì
Ngôn ngữ lập trình tốt Ngôn ngữ lập trình tốt
• Dễ dịch thiết kế sang chương trình
– Về lý thuyết, việc sinh chương trình gốc từ
một đặc tả chi tiết nên là trực tiếp.
– Tính dễ dịch thiết kế sang chương trình sẽ cho phép một ngôn ngữ cài đặt trực tiếp cho các kết cấu có cấu trúc, các cấu trúc dữ liệu phức tạp, các vào/ra đặc biệt, khả năng thao tác bit và các đối tượng.
– Làm cho việc dịch từ thiết kế sang chương
trình gốc dễ hơn nhiều.
7
Ngôn ngữ lập trình tốt Ngôn ngữ lập trình tốt
• Có trình biên dịch hiệu quả
– Mặc dầu những tiến bộ nhanh chóng trong tốc độ xử lý và mật độ nhớ đã bắt đầu làm giảm nhẹ nhu cầu chương trình siêu hiệu quả, nhiều ứng dụng vẫn còn đòi hỏi các chương trình chạy nhanh, gọn (yêu cầu bộ nhớ thấp). – Các ngôn ngữ với trình biên dịch tối ưu có thể là hấp dẫn nếu hiệu năng phần mềm là yêu cầu chủ chốt.
8
Lựa chọn NNLT Lựa chọn NNLT
• Phụ thuộc vào cấu hình máy • Phụ thuộc vào số lượng ngôn ngữ lập
trình sẵn có
• Phụ thuộc vào thói quen sử dụng ngôn
ngữ lập trình
• Phụ thuộc vào khách hàng • … Cần đánh giá rủi ro khi chọn ngôn ngữ lập trình
9
Kỹ năng lập trình Kỹ năng lập trình
• Hiểu rõ ngôn ngữ (language-specific)
• Sử dụng tên biến thích hợp và có nghĩa
– Tên biến phải rõ ràng, tránh nhầm lẫn
• Nên có các chú thích bên trong mô-đun
• Mã lệnh chuẩn
– Thống nhất về cách đặt tên Mô-đun, tên hàm,
tên biến,…
10
• Khả năng tái sử dụng
Kỹ năng lập trình Kỹ năng lập trình
• Thông tin tối thiểu của một mô-đun:
– Tên mô-đun – Mô tả vắn tắt các công việc mô-đun phải thực
hiện
11
– Tên lập trình viên – Ngày viết – Ngày chỉnh sửa – Danh sách các tham số – Danh sách các biến – …
Lựa chọn phương pháp lập Lựa chọn phương pháp lập trình? trình? • Lập trình tuyến tính (tuần tự)
– Khó sửa, dễ sinh lỗi
• Lập trình có cấu trúc (thủ tục) – Dễ hiểu hơn, an toàn hơn • Lập trình hướng chức năng
– Trao đổi dữ liệu bằng tham số – Loại bỏ hoàn toàn dữ liệu dùng chung
• Lập trình hướng đối tượng
– Tái sử dụng, thuận tiện cho các ứng dụng lớn
• Lập trình Logic
– Mô tả tri thức (Prolog)
12
Lập trình tuyến tính Lập trình tuyến tính
• Khi các phần mềm còn rất đơn giản:
– Chương trình được viết tuần tự với các câu
lệnh thực hiện từ đầu đến cuối.
• Tuy nhiên:
– Khoa học máy tính ngày càng phát triển. – Các phần mềm đòi hỏi ngày càng phức tạp và
lớn hơn rất nhiều.
• Phương pháp lập trình tuyến tính kém
hiệu quả?
13
Lập trình cấu trúc Lập trình cấu trúc
• Phương pháp lập trình thủ tục hay lập
trình cấu trúc – Hệ thống chia các chức năng (hàm) thành các
chức năng nhở hơn.
– Chương trình được tổ chức thành các chương
trình con
– Chương trình = Cấu trúc dữ liệu + giải thuật
• Tổ chức dữ liệu như thế nào? • Khi thay đổi cấu trúc dữ liệu?
14
Lập trình Hướng đối tượng Lập trình Hướng đối tượng
• Lập trình hướng đối tượng – Lập trình định
hướng đối tượng - OOP
– Là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trình.
– Dữ liệu + Hành vi của dữ liệu = Đối tượng
• Cách tiếp cận gần gũi và thực tế
15
CSDL trong ứng dụng quản lý CSDL trong ứng dụng quản lý
CT Tiền lương CT Kế toán CT Nhân sự
Kết nối CSDL Kết nối CSDL Kết nối CSDL
16
CSDL CSDL CSDL
CSDL trong ứng dụng quản lý CSDL trong ứng dụng quản lý
Thành phần giao diện
Giao tiếp dữ liệu
CT Nhân sự
Kết nối CSDL
Thành phần dữ liệu
17
CSDL
CSDL trong ứng dụng quản lý CSDL trong ứng dụng quản lý
Thành phần giao diện: Visual Basic, Visual C++, C#, VB.NET, Delphi…
CT Nhân sự
Giao tiếp dữ liệu: ODBC, DAO, ADODB, ADO.NET,..
Kết nối CSDL
Thành phần dữ liệu: MS Server,
SQL
Access, Oracle,…
18
CSDL
MÔ HÌNH ĐA LỚP (Multi-Layers)
19
Nội dung Nội dung
• Mô hình 1 tầng, 2 tầng, 3 tầng • Phân biệt 3-tier, 3-layer • Vai trò và nhiệm vụ của mỗi layer • Quản lý ngoại lệ trong mô hình 3-layer
20
Mô hình kiến trúc 1 tầng (1 layer) Mô hình kiến trúc 1 tầng (1 layer)
Màn hình nhiệm vụ f Màn hình nhiệm vụ f
I/O I/O Xử lý biến cố Xử lý biến cố Xử lý chính Xử lý chính Xử lý trên dữ liệu Xử lý trên dữ liệu
Dữ liệu của X
21
Người dùng Người dùng
Mô hình kiến trúc 1 tầng (1 layer) Mô hình kiến trúc 1 tầng (1 layer)
Người sử dụng
Màn hình 1 Màn hình 1
Màn hình 2 Màn hình 2
Màn hình 3 Màn hình 3
Màn hình 4 Màn hình 4
Phần mềm
Bộ nhớ phụ
Người dùng 1 Người dùng 1 Người dùng 2 Người dùng 2 Người dùng 3 Người dùng 3
22
Dữ liệu 1 Dữ liệu 2 Dữ liệu 3
Mô hình kiến trúc 1 tầng (1 layer) Mô hình kiến trúc 1 tầng (1 layer)
• Hệ thống trên bao gồm:
– 3 người sử dụng – 4 đơn vị xử lý – 3 đơn vị lưu trữ
• Đặc điểm: Không có sự phân loại các xử lý • Ưu điểm: Thiết kế và lập trình nhanh • Khuyết điểm:
23
???
– Mỗi đơn vị xử lý phức tạp – Khó bảo trì – Không có tính tái sử dụng
Để khắc phục những Để khắc phục những khuyết điểm khuyết điểm
Mô hình kiến trúc 2 tầng (2 layer) Mô hình kiến trúc 2 tầng (2 layer)
Màn hình nhiệm vụ f Màn hình nhiệm vụ f Màn hình nhiệm vụ f Màn hình nhiệm vụ f
Người dùng Người dùng Người dùng Người dùng
I/O I/O I/O I/O Xử lý biến cố Xử lý biến cố Xử lý biến cố Xử lý biến cố Xử lý chính Xử lý trên dữ liệu
Dữ liệu của X Dữ liệu của X
24
XX
Mô hình kiến trúc 2 tầng (2 layer) Mô hình kiến trúc 2 tầng (2 layer)
Hệ thống đơn vị xử lý thể hiện Hệ thống đơn vị xử lý thể hiện
Hệ thống Người dùng Hệ thống Người dùng
Hệ thống đơn vị lưu trữ
25
Hệ thống đơn vị xử lý nghiệp vụ và lưu trữ
Mô hình kiến trúc 2 tầng (2 layer) Mô hình kiến trúc 2 tầng (2 layer)
• Đặc điểm: Các đơn vị xử lý được phân
thành 2 loại – Loại 1: Các đơn vị xử lý chuyên biệt về giao
tiếp người dùng
– Loại 2: Các đơn vị xử lý nghiệp vụ (kiểm tra,
tính toán), lưu trữ (đọc, ghi)
• Ưu điểm, khuyết điểm ?
26
Mô hình kiến trúc 3 tầng (3 layer) Mô hình kiến trúc 3 tầng (3 layer)
Người dùng Người dùng Người dùng Người dùng
Màn hình nhiệm vụ f Màn hình nhiệm vụ f Màn hình nhiệm vụ f Màn hình nhiệm vụ f
I/O I/O I/O I/O Xử lý biến cố Xử lý biến cố Xử lý biến cố Xử lý biến cố
Xử lý chính Xử lý chính Xử lý chính Xử lý chính Xử lý trên dữ liệu Xử lý trên dữ liệu Xử lý trên dữ liệu XX XX
Dữ liệu của X Dữ liệu của X
27
DL_X
Mô hình kiến trúc 3 tầng (3 layer) Mô hình kiến trúc 3 tầng (3 layer)
Hệ thống đơn vị xử lý thể hiện Hệ thống đơn vị xử lý thể hiện
Hệ thống Người dùng Hệ thống Người dùng
Hệ thống đơn vị xử lý nghiệp vụ
Hệ thống đơn vị lưu trữ
28
Hệ thống đơn vị xử lý lưu trữ Hệ thống đơn vị xử lý lưu trữ
3-tier vs 3-layer 3-tier vs 3-layer
29
Vai trò của các layer Vai trò của các layer
• GUI (Presentation) Layer:
– Thu thập và hiển thị thông tin cho người dùng
cuối.
– Không sử dụng trực tiếp các dịch vụ của lớp
Data Acces.
– Sử dụng các dịch vụ do lớp Business Logic
cung cấp.
– Ở lớp này, chúng ta có thể bỏ qua các ràng buộc, các logic nghiệp vụ của ứng dụng.
30
Vai trò của các layer Vai trò của các layer
• Business Logic Layer:
– Lớp này thực hiện các nghiệp vụ chính của hệ thống (Ví dụ: kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu)
– Sử dụng các dịch vụ do lớp Data Access cung cấp. – Cung cấp các dịch vụ cho lớp Presentation
31
Vai trò của các layer Vai trò của các layer
• Data Access Layer:
– Lớp này thực hiện các công việc liên quan đến lưu
trữ và truy xuất dữ liệu của ứng dụng.
– Cung cấp các dịch vụ cho lớp Business Logic sử
dụng.
– Sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như MySql, SQL Server, Oracle,… để thực hiện nhiệm vụ của mình.
32
Các lưu ý quan trọng Các lưu ý quan trọng
• Phân biệt vai trò Business Layer và khái
niệm “xử lý”
• Mỗi Layer vẫn có xử lý riêng, đặc trưng
của Layer đó
• Đôi khi việc quyết định 1 xử lý nằm ở layer
nào chỉ mang tính chất tương đối
33
Việc trao đổi liên lạc giữa các Việc trao đổi liên lạc giữa các layer layer
Data Transfer Object (DTO)
Các giá trị, dòng, bảng
34
Sự phụ thuộc giữa các layer Sự phụ thuộc giữa các layer
Data Transfer Object (DTO)
35
Tính chất của mô hình 3-layer Tính chất của mô hình 3-layer
• Giảm sự kết dính giữa các thực thể phần
mềm (decoupling)
• Tái sử dụng • Chia sẻ trách nhiệm
36
Quản lý ngoại lệ Quản lý ngoại lệ
• Ngoại lệ có thể xảy ra ở bất kỳ layer nào • Khi ngoại lệ xảy ra ở một layer thì:
– Xử lý nội bộ trong layer đó – “Quăng” ngoại lệ lên layer “cao hơn” – Không xử lý
• Khi một layer nhận ngoại lệ từ một layer
“thấp hơn” – Xử lý nội bộ – “Quăng” ngoại lệ lên layer “cao hơn” – Không xử lý
37
Phát triển ứng dụng Phát triển ứng dụng
38
Phát triển ứng dụng Phát triển ứng dụng
Business Logic Layer
Data Access Layer
Data Transfer Object
39
Phát triển ứng dụng Phát triển ứng dụng
• Các lớp DTO
– Nội dung mỗi lớp gồm:
• Fields • Các phương thức khởi tạo. • Các phương thức set, get
– VD: SanPhamDTO, LoaiSanPhamDTO
40
Phát triển ứng dụng Phát triển ứng dụng
• Các lớp DAL
– Ứng với mỗi bảng trong database tạo một class DAL
tương ứng.
– VD: SanPhamDAL, LoaiSanPhamDAL
41
Phát triển ứng dụng Phát triển ứng dụng
• Các lớp BLL
– Tạo các class giao tiếp với lớp Presentation – Sử dụng các dịch vụ ở lớp DAL để xử lý
nghiệp vụ.
– VD: SanPhamBLL, LoaiSanPhamBLL
42
Phát triển ứng dụng Phát triển ứng dụng
• Các lớp PL
– Giao tiếp với người dùng. – Sử dụng các dịch vụ do lớp Business cung cấp. – VD: Xuất ra màn hình.
43
Phát triển ứng dụng Phát triển ứng dụng
44
Phát triển ứng dụng Phát triển ứng dụng
DEMO
45
Câu hỏi và thảo luận Câu hỏi và thảo luận
?
46
Thank you!!! Thank you!!!
47
Nhập môn Công nghệ Phần mềm Nhập môn Công nghệ Phần mềm Chủ đề 6: KIỂM THỬ PHẦN MỀM Chủ đề 6: KIỂM THỬ PHẦN MỀM
Lương Trần Hy Hiến, Khoa CNTT, ĐHSP TpHCM
1
Tài liệu – Textbook Tài liệu – Textbook
• Pressman, Kỹ nghệ phần mềm, chương
18~19.
• Sommerville: Software Engineering,
chương 22~23.
References References
Bài giảng này tham khảo từ các nguồn sau: • Slide bài giảng CNPM, Trần Ngọc Bảo, ĐH
Sư phạm TpHCM
• Slide bài giảng CNPM, Trần Anh Dũng, ĐH
CNTT, ĐHQG TpHCM.
3
Giai đoạn kiểm tra
• Kiểm lỗi
Khảo sát
• Kiểm lỗi phân hệ
Phân tích
• Kiểm lỗi hệ thống
Thiết kế
Nội dung:
Cài đặt
• Roadmap
Kết quả:
Kiểm tra
• Test plan
• Test case
Triển khai
• Bug
• Test report
Bảo trì
Mục tiêu Mục tiêu
• Biết được quy trình kiểm thử phần mềm • Biết được các khái niệm liên quan đến
kiểm thử (testing)
• Biết được các bước kiểm thử • Biết sử dụng một số công cụ hỗ trợ
testing
• Biết viết sưu liệu kiểm thử
Nội dung Nội dung
• Khái niệm kiểm thử phần mềm • Một số đặc điểm của kiểm thử phần mềm • Tại sao kiểm thử lại cần thiết? • Qui trình kiểm thử • Tổ chức và vai trò của các thành viên trong
nhóm test
• Công cụ hỗ trợ test:
• Công cụ theo dõi quá trình test • Công cụ hỗ trợ test tự động
• Sưu liệu kiểm thử: Test plan, test case, test log,
test report,…
Khái niệm kiểm thử phần mềm Khái niệm kiểm thử phần mềm
• Kiểm thử là gì?
A person makes an error ...
… that creates a fault (bug, defect) in the software ...
… that can cause a failure in operation
Khái niệm kiểm thử phần mềm Khái niệm kiểm thử phần mềm
• Kiểm thử phần mềm là quá trình thực thi
phần mềm với mục tiêu tìm ra lỗi
Glen Myers, 1979 Khẳng định được chất lượng của phần mềm đang xây dựng
Hetzel, 1988
Một số đặc điểm kiểm thử PM Một số đặc điểm kiểm thử PM
• Kiểm thử phần mềm giúp tìm ra được sự hiện diện của
lỗi nhưng không thể chỉ ra sự vắng mặt của lỗi
Dijkstra • Mọi phương pháp được dùng để ngăn ngừa hoặc tìm ra
lỗi đều sót lại những lỗi khó phát hiện hơn
Beizer • Điều gì xảy ra nếu việc kiểm thử không tìm được lỗi
trong phần mềm hoặc phát hiện quá ít lỗi – Phần mềm có chất lượng quá tốt – Quy trình/Đội ngũ kiểm thử hoạt động không hiệu quả
Tại sao kiểm thử lại cần thiết? Tại sao kiểm thử lại cần thiết?
• Thông thường thì phần mềm không hoạt động như mong muốn lãng phí tiền bạc, thời gian, uy tín của doanh nghiệp, thậm chí có thể gây nên thương tích hay cái chết.
• Ví dụ:
– Website công ty có nhiều lỗi chính tả trong câu chữ lý do
Khách hàng có thể lãng tránh công ty với công ty trông có vẻ không chuyên nghiệp.
– Một phần mềm tính toán lượng thuốc trừ sâu dùng cho cây trồng, vì lý do tính sai số lượng lên gấp 10 lần Nông dân phải bỏ nhiều tiền mua, cây trồng hư hại, môi trường sống, nguồn nước bị ảnh hưởng,….
Tại sao kiểm thử lại cần thiết? Tại sao kiểm thử lại cần thiết?
• Kiểm thử phần mềm chất lượng phần mềm
được nâng cao.
• Chúng ta có thể đánh giá chất lượng phần mềm dựa vào số lượng lỗi tìm thấy và các đặc tính như: tính đúng đắn, tính dễ sử dụng, tính dễ bảo trì,…
• Kiểm thử có thể đem lại sự tin tưởng đối với chất lượng phần mềm nếu có ít lỗi hoặc không có lỗi nào được tìm thấy. Nếu lỗi tìm thấy và được sửa thì chất lượng phần mềm càng được tăng Giảm chi phí trong quá trình phát triển, nâng cấp, bảo trì phần mềm
Lỗi tăng lên khi nào? Lỗi tăng lên khi nào?
Lỗi tăng lên khi nào? Lỗi tăng lên khi nào?
• Chi phí cho việc tìm thấy và sửa lỗi tăng dần trong suốt chu kỳ sống của phần mềm. Lỗi tìm thấy càng sớm thì chi phí để sửa càng thấp và ngược lại.
Thời điểm tiến hành kiểm thử Thời điểm tiến hành kiểm thử
Tiến hành ở mọi công đoạn phát triển phần mềm
phân tích
- xét duyệt đặc tả yêu cầu
thiết kế
- xét duyệt đặc tả thiết kế
mã hóa
- kiểm thử chương trình
Yêu cầu về kiểm thử Yêu cầu về kiểm thử
Tính lặp lại
- kiểm thử phải lặp lại được (kiểm tra xem
lỗi đã được sửa hay chưa)
- dữ liệu/trạng thái phải mô tả được
Tính hệ thống
- đảm bảo kiểm tra hết các trường hợp
Được lập tài liệu
- kiểm soát tiến trình/kết quả
Vòng đời dự án và Kiểm thử Vòng đời dự án và Kiểm thử
Đối tượng và phạm vi
Kiểm thử chấp nhận
Kiểm thử hệ thống
Đặc tả chức năng/ Thiết kế lô gíc
Thiết kế Vật lý
Kiểm hồi quy
Kiểm thử tích hợp
Cấu trúc CT và đặc tả môđun
Kiểm thử đơn vị
Mã hoá môđun CT
16
Qui trình kiểm thử Qui trình kiểm thử • Kiểm thử thành phần
– Kiểm thử của các từng thành phần chương trình; – Thường là trách nhiệm của lập trình viên tạo ra thành
phần đó;
– Các test được tạo ra từ kinh nghiệm của lập trình
viên.
• Kiểm thử hệ thống
– Kiểm thử một nhóm các thành phần được kết hợp lại
để tại ra hệ thống hay hệ thống con; – Trách nhiệm của một đội test độc lập; – Các test được tạo ra dựa trên bản đặc tả hệ thống.
Qui trình kiểm thử phần mềm Qui trình kiểm thử phần mềm
Lập kế hoạch test Thiết kế test Chuẩn bị dữ liệu test Chạy ứng dụng với bộ dữ liệu test
Test Data
Test plan Test Case
Test Results
So sánh kết quả test với test case Test Report
Nguyên tắc kiểm thử Nguyên tắc kiểm thử
– Chọn các input làm cho hệ thống tạo ra tất cả
các thông báo lỗi;
– Thiết kế input làm tràn bộ đệm; – Lặp lại cùng một input hay một dãy các input
một vài lần;
– Ép các output không hợp lệ phải xuất hiện; – Ép các kết quả tính toán phải hoặc là quá lớn
hoặc là quá nhỏ.
Chính sách kiểm thử (Testing Policy) Chính sách kiểm thử (Testing Policy)
• Kiểm tra tất cả các chức năng trong hệ thống
menu.
• Kiểm tra tất cả các mục khác có cùng chức năng trong hệ thống menu (Toolbar, Listbar, Dialog bar, Context Menu,…)
• Kiểm tra cùng một chức năng với nhiều vai trò khác nhau (đối với hệ thống có nhiều người dùng)
• Kiểm tra tất cả các dữ liệu bắt buộc nhập trong
các màn hình (hợp lệ/không hợp lệ)
Một số khái niệm cơ bản Một số khái niệm cơ bản
• Test plan • Test case • Bug • Test report • Test Manager • Test Designer • Tester
Test plan Test plan
• Cấu trúc chung của một test plan
– Tên project – Danh sách các Module cần test – Ngày bắt đầu, ngày kết thúc – Danh sách các Test case – Nhân sự tham gia – Tài nguyên sử dụng (Servers, Workstations, Printers,…) – Kế hoạch thực hiện (sử dụng Ms Project lập kế hoạch) – …
Giai đoạn kiểm thử Giai đoạn kiểm thử
• Roadmap • Test plan • Test case • Bug • Test Report
Test case Test case
• Cấu trúc chung của một test case:
– Tên project, module – Màn hình, chức năng – Mã số – Tài liệu tham khảo (SRS) – Mục đích – Dữ liệu test – Mô tả các bước (Test step) – Trạng thái – Ngày tạo – …
Test case Test case
• Ví dụ: kiểm tra màn hình đăng nhập
Test case Test case
• Ví dụ: kiểm tra màn hình đăng nhập
– Project: Web testing application – Module: Testing – Màn hình: Đăng nhập hệ thống – Chức năng: đăng nhập – Mã số: TC001 – Dữ liệu test
• Username = “hienlth”, pass = “123456” • Username = “admin”, pass = “admin”
– Các bước thực hiện kiểm tra
Test case – Test step Test case – Test step
Steps
Data
Expected result
Actual results
Step no
1
Nhập Username và ấn nút OK
Username = “hienlth” Hiển thị thông báo “Vui lòng nhập username và password”
2
Nhập Password và ấn nút OK
Password = “123456” Hiển thị thông báo “Vui lòng nhập username và password”
3
Nhập Username , password và ấn nút OK
Username = “hienlth” Password = “abc”
Hiển thị thông báo “Username và password không hợp lệ”
4
Nhập Username , password và ấn nút OK
Username = “abc” Password = “hienlth”
Hiển thị thông báo “Username và password không hợp lệ”
5
Nhập Username, password và ấn nút OK
Username = “abc” Password = “abc”
Hiển thị thông báo “Username và password không hợp lệ”
6
Nhập Username, password và ấn nút OK
Username = “” Password = “”
Hiển thị thông báo “Username và password không hợp lệ”
7
Nhập Username, password và ấn nút OK
Username = “hienlth” Password = “123456”
Hiển thị trang chính của user “hienlth”
8
Nhập Username, password và ấn nút OK
Username = “admin” Password = “admin”
Hiển thị trang chính của user “admin”
…
Giai đoạn kiểm thử Giai đoạn kiểm thử
• Roadmap • Test plan • Test case • Bug • Test Report
Bug Bug
• Cấu trúc chung của Bug:
– Tên bug – Mã số, mức độ – Test case tương ứng (nếu có) – Màn hình, chức năng – Dữ liệu – Mô tả các bước thực hiện – Hình chụp màn hình/quay phim các thao tác. – Trạng thái – Ngày tạo – …
Giai đoạn kiểm thử Giai đoạn kiểm thử
• Roadmap • Test plan • Test case • Bug • Test Report
Test report Test report
• Cấu trúc chung của Test report:
– Test plan ? – Tên người thực hiện – Ngày thực hiện – Môi trường test – Bảng mô tả module/chức năng/test case và
kết quả tương ứng
– Kết luận, đề xuất (nếu có) – ….
Chiến lược kiểm thử Chiến lược kiểm thử
Tester thực hiện
Developer thực hiện
Kiểm thử đơn vị Kiểm thử phân hệ Kiểm thử tích hợp Kiểm thử hệ thống
Phân loại kiểm thử (Testing type) Phân loại kiểm thử (Testing type)
• White-box testing (Strategy) – Component or Unit Testing – Object class testing
• Black-box testing (Strategy)
– Functional testing – Interface testing – Ad hoc testing – Performance testing – Stress testing – Alpha testing – Beta testing – Release testing, ….
White-Box testing White-Box testing
• Phần mềm là một hệ thống gồm 3 thành phần cơ bản: thành phần lưu trữ, thành phần giao tiếp, thành phần xử lý cần phải thực hiện theo yêu cầu của người dùng.
• Thành phần giao tiếp: giao diện chương trình • Thành phần lưu trữ: cho phép lưu trữ và truy xuất dữ liệu. • Thành phần xử lý: thực hiện các xử lý theo qui trình nghiệp vụ của
người dùng
Tester
White-box testing White-box testing
• Kiểm tra tính logic và cấu trúc của mã nguồn (source code): bao gồm server code và client code
• Tester cần phải có kiến thức về ngôn ngữ lập trình (C, C++, VB.NET, Java,…), môi trường phát triển phần mềm (IDE), cũng như các hệ quản trị cơ sở dữ liệu (SQL Server, Oracle, DB2,…), …
• Kiểm tra tất cả các trường hợp có thể xảy ra trong mã nguồn (cấu trúc điều khiển, cấu trúc lặp,…)
White-box testing White-box testing
• Ví dụ: cho đoạn mã C/C++ như sau:
int Test(int a, int b, int c) {
if (a>b) {
if (a>c) return a; else return c; }
else {
if (b>c) return b; else return c; }
}
Để kiểm tra tính đúng đắn của đoạn code trên chúng ta cần ít nhất bao nhiêu trường hợp ?
White-box testing White-box testing
• Ví dụ: cho đoạn mã C/C++ như sau:
int Test(int a, int b, int c) {
if (a>b) {
if (a>c) return a; else return c; }
else {
if (b>c) return b; else return c; }
}
a > c
a > c
a
a > b
a > b
a <= c
a <= c
c
b > c
b > c
b
a <= b
a <= b
b <= c
b <= c
c
White-box testing White-box testing
• Ví dụ: cho đoạn mã C/C++ như sau:
int Test(int a, int b, int c) {
if (a>b) {
if (a>c) return a; else return c; }
else {
if (b>c) return b; else return c; }
}
Để kiểm tra đoạn code trên chúng ta cần ít nhất 4 trường hợp (Test case), ví dụ: • • • •
a = 4, b = 2, c = 3 a = 4, b = 2, c = 5 a = 3, b = 4, c = 2 a = 3, b = 4, c = 6
Component testing Component testing
• Kiểm thử thành phần hay kiểm thử đơn vị là quá trình kiểm thử các thành phần một cách đơn lẻ và cô lập.
• Là một loại kiểm thử thiếu sót. • Thành phần có thể là:
– Các hàm hay phương thức đơn lẻ trong một đối
tượng;
– Các lớp đối tượng; – Các thành phần kết hợp với giao diện được định trước để truy xuất đến các chức năng của chúng.
Kiểm thử lớp đối tượng Kiểm thử lớp đối tượng
• Một test hoàn chỉnh cho một lớp bao gồm – Kiểm thử tất cả các phương thức liên kết với
một đối tượng;
– Thiết lập và interrogating tất cả thuộc tính của
đối tượng;
– Thực hành đối tượng tại tất cả trạng thái có
thể.
• Tính kế thừa làm cho việc kiểm thử lớp đối tượng khó hơn bởi vì thông tin được kiểm thử không có tính cục bộ.
Black-Box testing Black-Box testing
• Hệ thống phần mềm là một công cụ hỗ trợ để
thực hiện các công việc chuyên môn của người sử dụng trên máy tính..
• Phầm mềm quản lý giáo vụ trường phổ thông hỗ trợ các nghiệp vụ: quản lý hồ sơ học sinh, kết quả học tập, tính điểm trung bình, …
• Phần mềm quản lý bán hàng hỗ trợ các nghiệp vụ: lập chứng từ hóa đơn bán hàng, đơn đặt hàng, tính doanh thu, in báo cáo..
Black-Box testing Black-Box testing
• Kiểm tra hệ thống dựa trên bản đặc tả yêu
cầu và chức năng
• Tester không cần phải có kiến thức về
ngôn ngữ lập trình, môi trường phát triển phần mềm (IDE), cũng như các hệ quản trị cơ sở dữ liệu (SQL Server, Oracle, DB2,…), …
• Trong trường hợp này, tester thao tác các chức năng của hệ thống như là một người sử dụng hệ thống (end-user).
Black-Box testing Black-Box testing
• Dựa vào chức năng nhằm phát hiện lỗi: 2) Lỗi giao diện 4) Lỗi khi thực hiện
1) Thiếu chức năng 3) Lỗi trong CTDL
Input Results
Black Box
Black box Data Testing Strategy
Black-Box testing Black-Box testing
• Ví dụ: Kiểm tra màn hình sau
Để kiểm tra tính đúng đắn của đoạn code trên chúng ta cần ít nhất bao nhiêu trường hợp ?
Black-Box testing Black-Box testing
• Ví dụ: Kiểm tra màn hình sau
Min = b
Max = a
Min = c
Min = a
Max = b
Min = c
Min = a
Max = c
Min = b
Black-Box testing Black-Box testing
• Ví dụ: Kiểm tra màn hình sau
Min = b
a ≥ c ≥ b
Max = a
Min = c
a ≥ b ≥ c
Min = a
b ≥ c ≥ a
Max = b
Min = c
b ≥ a ≥ c
Min = a
c ≥ b ≥ a
Max = c
Min = b
c ≥ a ≥ b
Black-Box testing Black-Box testing
Max = a
a ≥ c ≥ b
Min = b
• Ví dụ: Kiểm tra màn hình sau
Max =a
a ≥ b ≥ c
Min = c
Max = b Min = a
b ≥ c ≥ a
Min = a Min = c
Max = b
b ≥ a ≥ c
Min = c
Max = c
c ≥ b ≥ a
Min = a
Max = c
c ≥ a ≥ b
Min = b
Black-Box testing Black-Box testing
• Ví dụ: Kiểm tra màn hình sau
Để kiểm tra màn hình trên chúng ta cần ít nhất 6 trường hợp (Test
case), ví dụ: a = 5, b = 4, c = 2 a = 5, b = 2, c = 4 b = 5, a = 4, c = 2 b = 5, a = 2, c = 4 c = 5, a = 4, b = 2 c = 5, a = 2, b = 4
• • • • • •
Interface testing Interface testing
• Mục đích là phát hiện ra lỗi do lỗi giao diện hay những giả sử không hợp lý về giao diện.
• Đặc biệt quan trọng cho phát triển hướng đối tượng khi các đối tượng được định nghĩa bởi các giao diện.
Các loại giao diện Các loại giao diện
• Giao diện tham số
– Dữ liệu chuyển từ một thủ tục sang một thủ tục khác.
• Giao diện chia sẻ bộ nhớ
– Vùng nhớ được chia sẻ giữa các thủ tục hay hàm.
• Giao diện thủ tục
– Hệ thống con đóng gói một tập các thủ tục được gọi
bởi các hệ thống con khác.
• Giao diện truyền thông điệp
– Các hệ thống con yêu cầu dịch vụ từ các hệ thống
con khác
Lỗi giao diện Lỗi giao diện
• Sử dụng nhầm giao diện
– Một thành phần gọi một thành phần khác và tạo ra một lỗi trong quá trình sử dụng giao diện của nó, ví dụ tham số không đúng thứ tự.
• Hiểu nhầm giao diện
– Một thành phần ngầm định về hành vi của một thành phần được gọi khác nhưng ngầm định đó không đúng.
• Lỗi về thời gian
– Thành phần gọi và được gọi hoạt động với tốc độ
khác nhau và dẫn đến truy cập đến thông tin không đúng (chậm cập nhật).
Nguyên tắc kiểm thử giao diện Nguyên tắc kiểm thử giao diện
• Thiết kế test sao cho tham số ở những
giới hạn cuối của phạm vi của nó.
• Luôn kiểm thử tham số con trỏ với con trỏ
rỗng (null).
• Thiết kế test làm cho thành phần thất bại. • Dùng stress testing trong hệ truyền thông
điệp.
• Trong hệ thống chia sẻ vùng nhớ, làm đa dạng thưc tứ các thành phần hoạt động.
Stress testing Stress testing
• Cho hệ thống hoạt động trong môi trường tối đa của nó. vượt quá khả năng tải Thường sẽ bộc lộ các thiếu sót của hệ thống.
• Nhằm kiểm thử các hành vi thất bại. Hệ thống không nên rơi vào một ngữ cảnh thất bại “thảm họa”.
• Thích hợp cho các hệ phân tán.
Kiểm thử Alpha, Beta Kiểm thử Alpha, Beta
Kiểm thử alpha
Là kiểm thử chấp nhận được tiến hành ở môi trường
khách hàng.
Kiểm thử beta
Mở rộng của alpha testing Được tiến hành với một lượng lớn users User tiến hành kiểm thử không có sự hướng dẫn của
người phát triển
Thông báo lại kết quả cho người phát triển
Release testing Release testing
• Quá trình kiểm thử một release của một hệ thống sẽ được phân phối đến cho khách hàng.
• Mục đích chính là tăng niềm tin của nhà cung cấp trong việc hệ thống đáp ứng được các yêu cầu của nó.
• Release testing thường là black-box hay là
kiểm thử chức năng – Chỉ dựa trên đặc tả hệ thống; – Chuyên viên kiểm thử không cần phải có kiến
thức về cài đặt hệ thống.
Một số kỹ thuật test Một số kỹ thuật test
• Test tĩnh:
– Dựa vào việc kiểm tra tài liệu, source code,…
mà không cần phải thực thi phần mềm.
– Các lỗi được tìm thấy trong quá trình kiểm tra có thể dễ dàng được loại bỏ và chi phí rẻ hơn nhiều so với khi tìm thấy trong test động. Một số lợi ích khi thực hiện việc kiểm tra (reviews):
• Lỗi sớm được tìm thấy và sửa chữa
• Giảm thời gian lập trình
• Giảm thời gian và chi phí test
Một số kỹ thuật test Một số kỹ thuật test
• Test tĩnh (tt):
– Các tài liệu được kiểm thử:
• Tài liệu đặc tả yêu cầu
• Tài liệu đặc tả thiết kế
• Sơ đồ luồng dữ liệu
• Mô hình ER
• Source code
• Test case
• …
Một số kỹ thuật test Một số kỹ thuật test
Dynamic
• Test động:
Specification-based
Structure-based
Experience-based
Equivalence Partitioning
Statement
Boundary Value Analysis
Decision
Error Guessing
Decision Tables
Condition
State Transition
Exploratory Testing
Multiple condition
Use Case Testing
Một số kỹ thuật test Một số kỹ thuật test
• Test động:
– Test dựa trên mô tả (specification-based) hay còn gọi test chức năng (functional testing): Test những gì mà phần mềm phải làm, không cần biết phần mềm làm như thế nào (kỹ thuật black box)
– Test dựa trên cấu trúc (structure-based) hay còn gọi test phi chức năng (non-functional testing): Test phần mềm hoạt động như thế nào (kỹ thuật white box)
– Test dựa trên kinh nghiệm (experience-based): đòi hỏi sự hiểu biết, kỹ năng và kinh nghiệm của người test
Kỹ thuật specification-based Kỹ thuật specification-based
• Kỹ thuật phân vùng tương đương – EP
(Equivalence Partitioning) – Ví dụ: một textbox chỉ cho phép nhập số nguyên từ 1
đến 100
– Ta không thể nhập tất cả các giá trị từ 1 đến 100 – Ý tưởng của kỹ thuật này: chia (partition) đầu vào thành những nhóm tương đương nhau (equivalence). Nếu một giá trị trong nhóm hoạt động đúng thì tất cả các giá trị trong nhóm đó cũng hoạt động đúng và ngược lại.
– Áp dụng: Màn hình, Menu hay mức quá trình
Kỹ thuật specification-based Kỹ thuật specification-based
• Kỹ thuật phân vùng tương đương – EP (tt) – Trong ví dụ trên dùng kỹ thuật phân vùng tương đương, chia làm 3 phân vùng như sau:
invalid
valid
invalid
0
1
100
101
– Như vậy chỉ cần chọn 3 test case để test trường hợp này: -5, 55, 102 hoặc 0, 10, 1000, …
Kỹ thuật specification-based Kỹ thuật specification-based
• Kỹ thuật phân vùng tương đương – EP (tt) – Tuy nhiên nếu ta nhập vào số thập phân (55.5)
hay một ký tự không phải là số (abc)?
– Trong trường hợp trên có thể chia làm 5 phân
vùng như sau: • Các số nguyên từ 1 đến 100 • Các số nguyên nhỏ hơn 1 • Các số nguyên lớn hơn 100 • Không phải số • Số thập phân
– Như vậy, việc phân vùng có đúng và đủ hay không là tùy thuộc vào kinh nghiệm của tester.
Kỹ thuật Boundary Value Kỹ thuật Boundary Value Analysis Analysis • Kỹ thuật phân tích giá trị biên - BVA
(Boundary Value Analysis) – Là 1 trường hợp riêng của EP. – Kỹ thuật BVA sẽ chọn các giá trị nằm tại các
điểm giới hạn của phân vùng.
– Thường dung trong kiểm thử module.
invalid
valid
invalid
0
1
100 101
– Áp dụng kỹ thuật BVA cần 4 test case để test
trường hợp này: 0,1,10,101
Kỹ thuật EP & BVA Kỹ thuật EP & BVA
• Xét ví dụ: Một ngân hàng trả lãi cho khách hàng dựa vào số tiền còn lại trong tài khoản. Nếu số tiền từ 0 đến 100$ thì trả 3% lãi, từ lớn hơn 100 $ đến nhỏ hơn 1000$ trả 5% lãi, từ 1000$ trở lên trả 7% lãi. – Dùng kỹ thuật EP:
• Kỹ thuật EP: -0.44, 55.00, 777.50, 1200.00
– Kỹ thuật BVA: -0.01, 0.00, 100.00, 100.01, 999.99,
1000.00
Tại sao phải kết hợp BVA và EP Tại sao phải kết hợp BVA và EP
• Mỗi giá trị giới hạn đều nằm trong một phân vùng nào đó. Nếu chỉ sử dụng giá trị giới hạn thì ta cũng có thể test luôn phân vùng đó.
• Tuy nhiên vấn đề đặt ra là nếu như giá trị đó sai thì nghĩa là giá trị giới hạn bị sai hay là cả phân vùng bị sai. Hơn nữa, nếu chỉ sử dụng giá trị giới hạn thì không đem lại sự tin tưởng cho người dùng vì chúng ta chỉ sử dụng những giá trị đặc biệt thay vì sử dụng giá trị thông thường.
• Vì vậy, cần phải kết hợp cả BVA và EP
Ví dụVí dụ
2-64 chars.
6 digits, 1st non-zero
Customer Name Account number Loan amount requested
Term of loan
£500 to £9000
Monthly repayment
1 to 30 years
Minimum £10
Term: Repayment: Interest rate: Total paid back:
Customer name Customer name
Number of characters:
1
2
64 65
invalid
valid
invalid
Valid characters:
A-Z
a-z
Any other
-’ space
Conditions
Invalid Partitions
Valid Boundaries
Invalid Boundaries
Customer name
Valid Partitions 2 to 64 chars valid chars
2 chars 64 chars
< 2 chars > 64 chars invalid chars
1 chars 65 chars 0 chars
Account number Account number
valid: non-zero
first character:
invalid: zero
number of digits:
5
6
7
invalid
invalid
valid
Conditions
Valid Partitions
Invalid Partitions
Valid Boundaries
Invalid Boundaries
Account number
6 digits 1st non-zero
100000 999999
5 digits 7 digits 0 digits
< 6 digits > 6 digits 1st digit = 0 non-digit
Loan amount Loan amount
499
500
9000
9001
invalid
valid
invalid
Conditions
Valid Partitions
Valid Boundaries
Invalid Boundaries
Invalid Partitions
500 - 9000
Loan amount
500 9000
499 9001
< 500 >9000 0 non-numeric null
Condition template Condition template
Tag
Tag
Tag
Tag
Conditions
Invalid Partitions
V1 V2
B1 B2
Customer name
Valid Partitions 2 - 64 chars valid chars
Valid Boundaries 2 chars 64 chars
V3 V4
B3 B4
Account number
6 digits 1st non-zero
100000 999999
D1 D2 D3 D4 D5 D6
Invalid Boundaries 1 char 65 chars 0 chars 5 digits 7 digits 0 digits
< 2 chars > 64 chars invalid char < 6 digits > 6 digits 1st digit = 0 non-digit
500 - 9000
B5 B6
D7 D8
Loan amount
500 9000
499 9001
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12
V5 < 500 >9000 0 non-integer null
Design test cases Design test cases
Description
Expected Outcome
Test Case
John Smith
1
New Tags Covered V1, V2, V3, V4, V5 .....
Name: Acc no: 123456 Loan: Term:
2500 3 years
Term: Repayment: Interest rate: Total paid:
3 years 79.86 10% 2874.96
2
B1, B3, B5, .....
Name: AB Acc no: 100000 Loan: Term:
500 1 year
Term: Repayment: Interest rate: Total paid:
1 year 44.80 7.5% 537.60
Phương pháp đoán lỗi Phương pháp đoán lỗi (Error Guessing) (Error Guessing) • Dựa vào trực giác và kinh nghiệm • Thí dụ lỗi chia cho 0. Nếu môđun có phép
chia thì phải kiểm thử lỗi này
• Nhược điểm: không phát hiện hết lỗi
72
Phương pháp đồ thị nguyên nhân - kết quả Phương pháp đồ thị nguyên nhân - kết quả (Cause-effect Graphing) (Cause-effect Graphing)
Mã tuần tự Phủ định
and
Or
Do Until
Tester 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
Tester Tester
• Công việc
– Chuẩn bị môi trường test • Windows XP, 2000, 2003 • 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
Tester Tester
• Phần mềm sử dụng
– Web testing
• Test Manager Role • Tester Role
– Manual Test (Rational Manual Test, Test Complete…) – Automation Test (Rational Functional Test, Test
Complete,…) – Load testing – Code Analysis – Project Management Tool
• Tester Role
– Workflow
• Tester Role
CÁC HOẠT ĐỘNG KIỂM THỬ CÁC HOẠT ĐỘNG KIỂM THỬ
Bắt đầu
Lập kế hoạch Test
Lập kế hoạch
Thiết kế Test
Chuẩn bị
Cài đặt và chuẩn bị
Test
Test tích hợp
Test
Xem xét và Đánh giá kết quả test
Test hệ thống
Phân tích kết quả
Tổng hợp, báo cáo
Kết thúc
CÁC HOẠT ĐỘNG KIỂM THỬ
Bắt đầu
Kế hoạch test
Lập kế hoạch Test
Thiết kế Test
Test case Test procedure
Cài đặt và chuẩn bị
Test
Test scrip Test data Môi trường
Test tích hợp
Xem xét và Đánh giá
Bcáo KQ test Đề xuất
kết quả test
Lỗi Biên bản test
Test hệ thống
Tổng hợp, báo cáo
Bcáo tổng hợp test Hồ sơ
Kết thúc
CÁC HOẠT ĐỘNG KIỂM THỬ
Initiation (khởi động)
Bắt đầu
Definition (Xác định yêu cầu)
Lập kế hoạch Test
Xác định yêu cầu
Definition
Thiết kế kiến trúc
Solution
Solution (Thiết kế kiến trúc)
Thiết kế Test
Construction (Xây dựng)
Cài đặt và chuẩn bị
Lập trình
Construction
Test
Coding (lập trình)
Thử nghiệm
Construction
Test tích hợp
Testing (thử nghiệm)
Xem xét và Đánh giá
kết quả test
Test hệ thống
Tổng hợp, báo cáo
Transition (Triển khai)
Kết thúc
Termination (Kết thúc)
CÁC HOẠT ĐỘNG - Lập kế hoạch test
1. Xác định yêu cầu cho test
Các yêu cầu test
TN Test, CBT • Dựa trên các sản phẩm phân tích • •
2. Đánh giá rủi ro và lập mức ưu tiên cho các yêu cầu • •
Xác định: test cái gì? Xác định: giới hạn công việc, thời gian, nguồn lực TN Test Các rủi ro liên quan đến test
3. Xác lập chiến lược test
TN Test
Phương thức thực hiện Các yêu cầu test được xác định Tiêu chuẩn hoàn thành việc test, mức độ ưu tiên đánh giá chất lượng sản phẩm Phương thức thực hiện • Các yếu tố cần chú ý Tiêu chuẩn đánh giá
Số người, kỹ năng Các yếu tố cần chú ý
4. Xác định nguồn lực và môi trường
Các nguồn lực
• • Môi trường test: phần mềm, cứng… TN Test • Công cụ test • Dữ liệu test
5. Lập lịch trình test
Lịch trình test TN Test
6. Tổng hợp thông tin, lập KH test Kế hoạch test
TN Test
7. Xem xét và thông qua KH test
Xác định nguồn lực Lịch trình test Kế hoạch test được phê duyệt QTDA • • • Các mốc chính
CÁC HOẠT ĐỘNG - thiết kế test CÁC HOẠT ĐỘNG - thiết kế test
• Dựa trên các sản phẩm của:
• Phân tích • bước lập KH test
Danh sách loại test Xác định các test case
TN Test, • CBT • Mô tả test case: vào, ra, điều kiện
1. Lập danh sách các loại test, đảm bảo cho việc xác lập tính đúng đắn & thỏa mãn yêu cầu của sản phẩm
2. Xây dựng tình huống test (test case) Thiết kế test, các mẫu mã sử dụng, yêu cầu về dữ liệu test TN Test, CBT
Các thủ tục test
3. Xây dựng và tổ chức thủ tục test (test procedure) TN Test, CBT
Biên bản xem xét
• Dựa vào: các test case • •
4. Xem xét tình huống test và thủ tục test, đánh giá tỷ lệ yêu cầu của khách hàng (hoặc tình huống sử dụng) sẽ được test dựa trên thiết kế test đã lập QTDA, Cán Xác định các test procedure bộ lập trình Xác lập mối quan hệ và thứ tự giữa • Các test procedure với nhau • Các test procedure - Test cases 5. Thông qua thiết kế Test Thiết kế test được thông qua QTDA
CÁC HOẠT ĐỘNG - Cài đặt và chuẩn bị test CÁC HOẠT ĐỘNG - Cài đặt và chuẩn bị test
Test script • Các lệnh dùng để tự động hoá các thủ tục
test
• Lập trình, sử dụng công cụ test tự động
Test scipts
1.Lập các test script để thực hiện các tình huống test/thủ tục test (nếu cần)
TN Test/ CBT
2. Chuẩn bị dữ liệu test
Dữ liệu test CBT
3. Chuẩn bị môi trường
CBT
Môi trường sẵn sàng cho việc thực hiện test
4. Kiểm tra các công cụ test
CBT
Biên bản kiểm tra công cụ test
5. Xem xét môi trường, điều kiện và dữ liệu test
Môi trường và dữ liệu test được kiểm tra TN Test/ CBT
CÁC HOẠT ĐỘNG - test tích hợp CÁC HOẠT ĐỘNG - test tích hợp
• Tài liệu • Gói phần mềm • …
1. Nhận bàn giao với đội lập trình
CBT
• Dựa trên thiết kế test • Ghi nhận lỗi vào DMS
Các sản phẩm cần test được tiếp nhận
2. Cài đặt
Hệ thống để test sẵn sàng CBT
3. Thực hiện test và ghi nhận lỗi
Biên bản test CBT
4. Xử lý lỗi
Danh sách lỗi phát hiện
TN Test, CBT
5. Xem xét các kết quả test và việc thực hiện khắc phục lỗi
Phối hợp với đội lập trình • • Test lại -> Ghi nhận lỗi mới
Biên bản test
TN Test, QTDA, CBT, CBCL (nếu cần)
CÁC HOẠT ĐỘNG - test hệ thống CÁC HOẠT ĐỘNG - test hệ thống
CBT
Các sản phẩm cần test được tiếp nhận
• Kiểm tra và cập nhật:
TN Test
1. Nhận bàn giao với đội lập trình
Thiết kế test, test script, dữ liệu test được cập nhật
CBT
2. Chỉnh sửa thiết kế test
• Test case • Test procedure • Test script Chương trình được cài đặt • Test data
Biên bản test
CBT
3. Cài đặt
Danh sách lỗi phát hiện
Biên bản test
TN Test, CBT
4. Thực hiện test và ghi nhận lỗi
Danh sách lỗi phát hiện
Kết quả test được xem xét
• Khi hệ thống thoả mãn các tiêu chuẩn đặt ra
5. Xử lý lỗi
TN Test,QTDA, CBT, CBCL (nếu cần)
6. Xem xét các kết quả test và việc thực hiện khắc phục lỗi
Xác nhân sản phẩm đủ tiêu chuẩn phát hành
QTDA, CBCL, TN Test
7. Kết quả test được xem xét
CÁC HOẠT ĐỘNG - xem xét và đánh giá kết quả test CÁC HOẠT ĐỘNG - xem xét và đánh giá kết quả test
1. Phân tích lỗi và đưa ra đề xuất
Báo cáo kết quả test TN Test
Đề xuất
2. Đánh giá tỷ lệ test, đánh giá mức độ đạt được các tiêu chí để hoàn thành test
3. Xem xét báo cáo kết quả test
Báo cáo kết quả test TN Test
•
Phân tích lỗi dựa:
• Dựa trên tỷ lệ YC
• mức độ lặp lại • độ nghiêm trọng • Thời gian sửa lỗi…
được test/tổng số YC cần test
Báo cáo kết quả test được xem xét QTDA, CBCL
CÁC HOẠT ĐỘNG - tổng hợp, báo cáo CÁC HOẠT ĐỘNG - tổng hợp, báo cáo
Dữ liệu, kết quả test
CBT
1. Tập hợp các dữ liệu, kết quả test
Báo cáo tổng hợp test
TN Test
2. Lập báo cáo tổng hợp test
Hồ sơ, files
CBT
3. Tổ chức lưu trữ tài liệu, hồ sơ
VD kiểm tra 3 cạnh tam giác VD kiểm tra 3 cạnh tam giác
• Ví dụ bên có 5 nhánh
a,b,c,d,e.
• Có 4 đường đi ace, abd, abe,
acd.
• Có 6 điều kiện: side1<=0,
side2<=0, side3<=0, side1=side2, side2=side3, side1=side3.
Số testcase ít nhất để thỏa: Số testcase ít nhất để thỏa:
Phủ điều kiện/
• Phủ nhánh:
1. {1, 1, 2} (abe) 2. {-1, -2, -3} (acd)
Phủ kết hợp nhiều
• Phủ đường đi:
nhánh: 1. {1, 1, 1} (abe) 2. {-1, -2, -3} (acd)
điều kiện: số testcase ít nhất là
1. {1, 1, 1} (abe) 2. {-1, -2, -3} (acd) 3. {-1, -1, -1} (ace) 4. {1, 2, 3} (abd)
• Phủ điều kiện:
1. {1, 1, 2} (abe) 2. {-1, -2, -1} (ace) 3. {-1, -2, -2} (ace)
2^6=64
Tài liệu tham khảo Tài liệu tham khảo
• Slide + Ebook
– Giáo trình của thầy Nguyễn Văn Vỵ, ĐH Công nghệ, ĐH QG Hà
Nội • URL - News
– http://www.testingvn.com
Tài liệu tham khảo Tài liệu tham khảo
• Testing Tools
– http://www.aptest.com/resources.html – http://www-
01.ibm.com/software/awdtools/tester/functional/features/index. html?S_TACT=105AGX15&S_CMP=LP
– http://www-01.ibm.com/software/awdtools/test/manager/
• Testing Course
– http://www.aptest.com/courses.html – http://www.aptest.com/testtypes.html – http://www.appperfect.com/products/windowstester.html – http://www.openseminar.org/se/modules/7/index/screen.do
Câu hỏi và thảo luận Câu hỏi và thảo luận
?
Thank you!!! Thank you!!!
Nhập môn Công nghệ Phần mềm Nhập môn Công nghệ Phần mềm Chủ đề 7: TRIỂN KHAI & BẢO TRÌ Chủ đề 7: TRIỂN KHAI & BẢO TRÌ
Lương Trần Hy Hiến, Khoa CNTT, ĐHSP TpHCM
1
Giai đoạn triển khai
Khảo sát
• Đóng gói sản phẩm
Phân tích
• 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
Thiết kế
Cài đặt
Nội dung:
• Chương trình cài đặt
Kiểm tra
Kết quả:
• Tài liệu hướng dẫn cài đặt
Triển khai
• Tài liệu hướng dẫn cấu
hình hệ thống
Bảo trì
MỤC TIÊU MỤC TIÊU
• Biết được cách thiết kế Deployment
diagram
• Biết được các thành phần trong
Deployment diagram
• Biết được cách sử dụng Power Designer để
tạo Deployment Diagram
• Xây dựng Deployment diagram của một
số ứng dụng ứng dụng
3
NỘI DUNG TRÌNH BÀY NỘI DUNG TRÌNH BÀY
• Deployment Diagram ? • Các thành phần trong Deployment
diagram
• Xây dựng Deployment diagram của ứng
dụng quản lý thời khóa biểu
• Tạo Deployment diagram trong Power
Designer • Tạo report
4
Deployment Diagrams Deployment Diagrams
• Lược đồ triển khai (Deployment Diagram) mô tả kiến trúc cài đặt vật lý các thành phần bên trong hệ thống và tương tác giữa chúng, bao gồm kiến trúc phần cứng cũng như phần mềm.
• Lược đồ triển khai thường được sử dụng
trong Deployment View.
5
Deployment Diagram Deployment Diagram
• Một hệ thống có thể được triển khai theo
nhiều lược đồ khác nhau: – Hệ thống được triển khai trên máy đơn? – Hệ thống được triển khai theo mô hình
Client/Server?
– Hệ thống được triển khai tại văn phòng công
ty? Các phòng ban?
– Yêu cầu phần cứng máy tính? – ….
Deployment Diagram Deployment Diagram
• Một hệ thống có thể được triển khai theo
nhiều lược đồ khác nhau.
Triển khai hệ thống LAN (1)
7
Deployment Diagram Deployment Diagram
• Một hệ thống có thể được triển khai theo
nhiều lược đồ khác nhau.
Triển khai hệ thống LAN – WLAN (2)
Phương án triển khai Phương án triển khai
1. Các hạng mục thiết bị
STT
Thiết bị
SL Giá dự kiến
Mục đích
(USD)
Thành tiền (USD)
1
Web Server
3
-Hosting Website -01 server IIS (ASP.NET) -01 Server Apache (PHP)
2
Database Server
-Lưu trữ database của các Website -Hỗ trợ MS SQL Server và MySQL
Sử dụng IE, FireFox để truy cập hệ thống
3
Workstation (máy trạm)
4
Switch
Tổng
Phương án triển khai Phương án triển khai
• Cấu hình/thông số kỹ thuật của từng thiết
bị, ví dụ:
Phương án triển khai Phương án triển khai
2. Các hạng bản quyền phần mềm
STT
Tên phần mềm
SL
Mục đích
Giá dự kiến (USD)
Thành tiền (USD)
1
Windows Server 2008
-Hosting Website -01 server IIS (ASP.NET) -01 Server Apache (PHP)
2
SQL Server Stand/Ent 2008
-Lưu trữ database của các Website -Hỗ trợ MS SQL Server và MySQL
Sử dụng IE, FireFox để truy cập hệ thống
3
Windows 7 Basic/Pro
4
Tổng
Deployment Diagram Deployment Diagram
• Một hệ thống có thể được triển khai theo nhiều
lược đồ khác nhau.
Triển khai hệ thống LAN – WLAN – WLAN (3)
Kết nối Internet? Kết nối Internet? • Kết nối ADSL với VNN
Trong khi kết nối Internet thì điện thoại vẫn hoạt động bình thường (gọi và nhận cuộc gọi bình thường).
Kết nối Internet? Kết nối Internet?
• Kết nối ADSL với FPT/Viettel
Sử dụng đường dây riêng để kết nối đến Server nhà cung cấp (Viettel ngày nay cũng có loại giống VNPT)
Kết nối Internet? Kết nối Internet?
• Sử dụng cáp truyền hình (Saigon Tourist)
Sử dụng đường dây riêng để kết nối đến Server nhà cung cấp (không cần phải có điện thoại cố định)
Kết nối Internet? Kết nối Internet?
• Kết nối Internet không dây
Kết nối Internet? Kết nối Internet?
• Kết nối Internet không dây
Kết nối Internet? Kết nối Internet?
• Kết nối Internet không dây
Kết nối Internet? Kết nối Internet?
• Kết nối Internet Leased line
Phương án triển khai Phương án triển khai
3. Các hạng mục thiết bị
STT
Tên phần mềm
SL Giá dự kiến
Mục đích
(USD)
Thành tiền (USD)
1
Web Server
-Hosting Website -01 server IIS (ASP.NET) -01 Server Apache (PHP)
2
Database Server
-Lưu trữ database của các Website -Hỗ trợ MS SQL Server và MySQL
3
Workstation (Máy trạm)
Sử dụng IE, FireFox để truy cập hệ thống
4
Switch
5
Access Point
Hỗ trợ người dùng truy cập Internet không dây, cung cấp Key
5
Kết nối ADSL
Router Raytek 2700
6
Kết nối Internet Leased line
Cisco Router 2600
Tổng
Phương án triển khai Phương án triển khai
• Mỗi phương án có: – Thời gian thực hiện? – Chi phí? – Hiệu quả?
Phương án triển khai Phương án triển khai
• Đối với người dùng, phương án có
– Ai thực hiện? – Thực hiện đâu? – Thực hiện những công việc gì? – Kế hoạch thực hiện? • Về góc độ kỹ thuật: – Hệ thống mạng? – Phần cứng? – Phần mềm? – Nhân sự
• Huấn luyện & đào tạo • Nội dung huấn luyện là gì? • Thực hiện bao lâu?
BÀI TẬP
Đánh giá Phương án Đánh giá Phương án
• Tính đúng đắn
– Phương án đảm bảo thực hiện được đầy đủ
những yêu cầu
• Tính tiến hóa
– Khả năng phát triển, mở rộng ?
• Tính hiệu quả – Tốc độ xử lý? – Thời gian xây dựng hệ thống trong bao lâu? – Chi phí?
Đánh giá Phương án Đánh giá Phương án
• Tính tiện dụng
– Cho phép nhiều người sử dụng không? – Quyền lợi của người sử dụng như thế nào? – Giao diện trực quan, thân thiện?
• Tính tương thích
– Phù hợp với những ứng dụng đã có hay chưa?
• Tính tái sử dụng
– Khả năng dùng lại cho ứng dụng khác, khách
hàng khác?
Đánh giá Phương án Đánh giá Phương án
• Tính khả thi: có thực hiện được không?
– Về mặt yêu cầu? – Về mặt kinh tế? – Về thời gian: có đáp ứng được hay không?
DEPLOYMENT DIAGRAM
Ví dụ: Xét ứng dụng quản lý TKB Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời
khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời
khóa biểu giảng dạy trong học kỳ
Ví dụ minh họa Ví dụ minh họa
• Deployment diagram mô tả hệ thống
Client
quản lý thời khóa biểu
Web Browser
Server QLGV
Web Server
Hệ thống quản lý giáo vụ
Hệ thống quản lý T KB
IIS Server
SMS Server
Database Server
SMS Service
SQL Server
SMSC Gateway
SMS Web Service
Các thành phần trong Deployment Các thành phần trong Deployment Diagram Diagram
Node Name
• Node
IIS Server
• Component Instance
• Quan hệ giữa các thành phần
Node B
Node A
Node B
Node A
ComponentInstance_1
ComponentInstance_1
Các thành phần trong Deployment Các thành phần trong Deployment Diagram Diagram
• Node
– Là các tài nguyên trong hệ thống – Mỗi Node tương ứng với một thiết bị phần
cứng • Server • PC • Printer • Scaner • Router • ….
– Mỗi Node có thể có nhiều component
Các thành phần trong Deployment Các thành phần trong Deployment Diagram Diagram
• Component Instance
– Là một thể hiện của một component (trong component diagram) sẽ được cài đặt trong Node
– Thuộc tính của Component Instance
Node_7
• Cardinality • Component
ComponentInstance_1
IIS Server
ComponentInstance_2
Các thành phần trong Deployment Các thành phần trong Deployment Diagram Diagram
• Quan hệ giữa các thành phần – Quan hệ giữa Node và Node – Quan hệ giữa Node và Component Instance – Quan hệ giữa Component Instance và
Component Instance
• Các loại quan hệ – Node Association – Dependency
Ví dụ minh họa Ví dụ minh họa
• Deployment diagram mô tả hệ thống
quản lý thời khóa biểu – Sử dụng mô hình Client server – Sử dụng công nghệ Web (Asp.net) – Sử dụng IIS Web sever 7 – Sử dụng trình duyệt (IE) version 8.0 trở lên – Sử dụng CSDL SQL server 2005 – Sử dụng công nghệ nhắn tin di động SMS
Ví dụ minh họa Ví dụ minh họa
• Deployment diagram mô tả hệ thống
Client
quản lý thời khóa biểu
Web Browser
Server QLGV
Web Server
Hệ thống quản lý giáo vụ
Hệ thống quản lý T KB
IIS Server
SMS Server
Database Server
SMS Service
SQL Server
SMSC Gateway
SMS Web Service
Ví dụ minh họa Ví dụ minh họa
• Deployment diagram mô tả hệ thống
quản lý thời khóa biểu
Web Server
IIS Server
Hệ thống quản lý TKB
Data Access
Database Server
SQL Server
ADO.NET
Ví dụ minh họa Ví dụ minh họa
• Deployment diagram mô tả hệ thống
quản lý thời khóa biểu
Web Server
IIS Server
Hệ thống quản lý TKB
Report
Data Access
Database Server
Seagate Crystal Report
SQL Server
ADO.NET
Bài tập Bài tập
Sử dụng Power Designer để xây dựng lược
đồ Deployment cho các bài sau:
• Quản lý giải bóng đá vô địch quốc gia • Quản lý bình chọn bài hát hay Làn sóng
xanh
• Quản lý giáo vụ trường đại học • Quản lý giáo vụ trường phổ thông • Quản lý bán hàng • Quản lý nhân sự - Tiền lương
VIẾT TÀI LIỆU HƯỚNG DẪN
MỤC TIÊU MỤC TIÊU
• Biết được các loại tài liệu • Cấu trúc cơ bản của tài liệu hướng dẫn • Biết được cách sử dụng một số công cụ để
tạo tài liệu hướng dẫn…(CHM, Web, HTML,…)
NỘI DUNG TRÌNH BÀY NỘI DUNG TRÌNH BÀY
• Các loại tài liệu • Các định dạng tài liệu thường dùng • Giới thiệu một số công cụ sử dụng • Hướng dẫn tạo tài liệu hướng dẫn cài đặt, sử dụng với định dạng CHM, Web Help
Các loại tài liệu Các loại tài liệu
Các định dạng tài liệu thường dùng Các định dạng tài liệu thường dùng
• Dạng tập tin PDF • Dạng tập tin CHM • Dạng tập tin HLP • Dạng tập tin HTML (Web help) • Dạng tập tin DOC, DOCX • ….
Tập tin CHM Tập tin CHM
Tập tin CHM Tập tin CHM
• Các thành phần chính trong tập tin CHM
– Content – Index – Search – Favorite
Tập tin CHM Tập tin CHM
• Thành phần: Content
Heading
Topic
Tập tin CHM Tập tin CHM
• Thành phần: Index
Keyword
Tập tin CHM Tập tin CHM
• Thành phần: Search
Nhập từ tìm
Kết quả tìm
Tập tin CHM Tập tin CHM
• Thành phần: Favorites
Danh sách các topic thường dùng
Demo
Tập tin HLP Tập tin HLP
Tập tin HLP Tập tin HLP
• Các thành phần chính trong tập tin HLP
– Content – Index – Find
Tập tin HLP Tập tin HLP
• Thành phần: Contents
Tập tin HLP Tập tin HLP
• Thành phần: Index
Tập tin HLP Tập tin HLP
• Thành phần: Find
Web Help Web Help
Web Help Web Help
• Các thành phần chính trong web Help
– Content – Index – Search – Favorite
Web Help Web Help
• Thành phần: Content
Web Help Web Help
• Thành phần: Index
Web Help Web Help
• Thành phần: Search
Các công cụ hỗ trợ Các công cụ hỗ trợ
• Dạng tập tin DOC, PDF • Dạng tập tin CHM
– HTML Help – Robo Help
• Dạng tập tin HLP – Help Workshop – Robo Help
• Dạng tập tin HTML (Web help)
– Robo Help
Công cụ HTML Help Công cụ HTML Help
• Được sử dụng để tạo các tập tin CHM từ HTML • Được sử dụng để tạo tập tin CHM từ tập tin HLP
Công cụ RoboHelp Công cụ RoboHelp
Công cụ RoboHelp Công cụ RoboHelp
• Project trong RoboHelp (*.mpj)
Công cụ RoboHelp Công cụ RoboHelp • TOC trong RoboHelp
ĐÓNG GÓI SẢN PHẨM
Giai đoạn triển khai
Khảo sát
• Đóng gói sản phẩm
Phân tích
• 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
Thiết kế
Cài đặt
Nội dung:
Kiểm tra
• Chương trình cài đặt
Kết quả:
• Tài liệu hướng dẫn cài đặt
Triển khai
• Tài liệu hướng dẫn cấu
hình hệ thống
Bảo trì
Mục tiêu Mục tiêu
• Biết được quy trình đóng gói phần mềm
• Biết xây dựng môi trường cài đặt thử
nghiệm
• Biết sử dụng một số công cụ đóng gói
thông dụng
Nội dung Nội dung
• Qui trình đóng gói phần mềm
• Sưu liệu mô tả đóng gói phần mềm
• Release note, Version history, Hotfix,
Service pack
• Một số công cụ đóng gói: Install Shield, Wise Install, Install Anywhere để đóng gói phần mềm
Các bước đóng gói sản phẩm Các bước đóng gói sản phẩm
• • • • • • • • • • • • • • • •
Bước 1: Tổ chức các thư mục Bước 2: Tổ chức các thành phần cho người dùng chọn khi cài đặt. Bước 3: Liệt kê danh sách các tập tin DLL cần dùng Bước 4: Liệt kê danh sách các tập tin OCX cần dùng Bước 5: Liệt kê danh sách các Dabatase Drivers cần cài đặt Bước 6: Liệt kê danh sách các Printer Drivers Bước 7: Liệt kê danh sách các FONT cần cài đặt Bước 8: Soạn thảo các tập tin : Readme, INI Bước 9: Liệt kê danh sách các Utilities Software cài thêm Bước 10: Liệt kê danh sách các logo, hình ảnh giới thiệu trong quá trình cài đặt. Bước 11: Tạo file Script Bước 12: Tạo License Key Bước 13: Tạo Demo cho sản phẩm Bước 14: Tạo File Help Bước 15 : Thực hiện đóng gói. Bước 16 : Viết sưu liệu đóng gói.
Các thành phần cơ bản trong bản đóng gói Các thành phần cơ bản trong bản đóng gói
Các thành phần cơ bản trong bản đóng gói Các thành phần cơ bản trong bản đóng gói
Các thành phần cơ bản trong bản đóng gói Các thành phần cơ bản trong bản đóng gói
• Thông tin về sản phẩm (Add/Remove program) • Tổ chức thư mục lưu trữ (Program Files,…) • Components: DLL và ActiveX Control (OCX) • Database file – DB Script file – DB Sample
• Registry • Tài liệu hướng dẫn (User guide, Admin guide,…)
Tổ chức cây thư mục cài đặt Tổ chức cây thư mục cài đặt
Liệt kê danh sách DLL và OCX cần cài đặt Liệt kê danh sách DLL và OCX cần cài đặt
• Thông thường các tập tin DLL và OCX được cài đặt (lưu trữ) vào các thư mục Windows, WinNT, System, System32,… – Danh sách tập tin DLL
– Danh sách tập tin OCX
Công cụ đóng gói InstallShield Công cụ đóng gói InstallShield
• Giao diện chính của InstallShield
Các loại project trong Các loại project trong InstallShield InstallShield • Chọn file File/New (New Project)
Chọn đóng gói Windows Application Chọn đóng gói Web Application
Chọn đóng gói với Source Code
InstallShield - Màn hình chính InstallShield - Màn hình chính
• Giao diện chính - Project Assistant
InstallShield - Màn hình chính InstallShield - Màn hình chính
• Giao diện chính - Installation Designer
Công cụ đóng gói InstallShield Công cụ đóng gói InstallShield
• Thông tin về sản phẩm (Add/Remove program) • Tổ chức thư mục lưu trữ (Program Files,…) • Shortcut • Database file – DB Script file – DB Sample
• INI file • Web server (IIS) • Windows Service • Registry • Biên dịch/tạo tập tin cài đặt Setup.exe
Add/Remove Program Add/Remove Program
Add/Remove Program Add/Remove Program
Công cụ InstallShield Công cụ InstallShield
• Add/Remove Program
Tổ chức lưu trữ thư mục, file Tổ chức lưu trữ thư mục, file
• Tổ chức lưu trữ thư mục, tập tin
Công cụ InstallShield Công cụ InstallShield
Thư mục dùng để đóng gói Tập tin dùng để đóng gói
Tập tin cài đặt
Thư mục cài đặt
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Để tạo tập tin setup.exe chọn chức năng
Build/Release Wizard, thực hiện theo các bước sau:
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Bước 7: Chọn option “Compress all files”
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Bước 9: chọn option “Extract engine from
setup.exe”
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Bước 13: chọn option “Include or setup .NET
Framework” nếu muốn cài đặt .NET Framework
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Bước 15: chọn “Finish”
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Kết quả biên dịch
Biên dịch/tạo tập tin cài đặt Biên dịch/tạo tập tin cài đặt (Setup.exe) (Setup.exe)
• Kết quả biên dịch
Tùy chọn “Custom setup” Tùy chọn “Custom setup”
• Cho phép người dùng chọn thành phần sẽ được
cài đặt
Thành phần thứ 1
Thành phần thứ 2
Công cụ InstallShield – Custom Setup Công cụ InstallShield – Custom Setup
• Cho phép người dùng chọn thành phần sẽ được
cài đặt
InstallShield – Shortcut, Registry,… InstallShield – Shortcut, Registry,…
Công cụ InstallShield - Shortcut Công cụ InstallShield - Shortcut
• Shortcut chương trình thường được tạo
theo cấu trúc sau
Ghi chú: •ProductStream : Dòng sản phẩm •ProductName : Tên sản phẩm •Documentation : Các tập tin hướng dẫn sử dụng (Doc, PDF) •Help : Các tập tin help (*.chm) •Demo : Các tập tin Demo
Công cụ InstallShield - Shortcut Công cụ InstallShield - Shortcut
• Cho phép tạo shortcut trên Desktop hay trong
Start Menu
SQL Servers SQL Servers
• Làm thế nào để tạo DB và dữ liệu trong các
Table trong quá trình cài đặt
Công cụ InstallShield – SQL Servers Công cụ InstallShield – SQL Servers
• Cho phép tạo cơ sở dữ liệu SQL Server từ tập tin Script:
tập tin cấu trúc và tập tin dữ liệu
Công cụ InstallShield – SQL Servers Công cụ InstallShield – SQL Servers
• Cho phép tạo cơ sở dữ liệu SQL Server từ tập tin Script:
tập tin cấu trúc
`
Công cụ InstallShield – SQL Servers Công cụ InstallShield – SQL Servers
• Cho phép tạo cơ sở dữ liệu SQL Server từ tập tin
Script: tập tin dữ liệu
`
InstallShield – SQL Servers InstallShield – SQL Servers
• Làm thế nào để tạo được tập tin script cấu
trúc và script dữ liệu từ SQL servers?
• Tạo tập tin cấu trúc:
– Phát sinh script từ PDM trong Power Designer – Phát sinh script từ SQL Server Enterprise – Phát sinh script từ SQL Servers trong
InstallShield
– ApexSQL – …
InstallShield – SQL Servers InstallShield – SQL Servers
• Làm thế nào để tạo được tập tin script cấu
trúc và script dữ liệu từ SQL Servers?
• Tạo tập tin dữ liệu:
– Tạo tập tin dữ liệu sử dụng Query Analyzer – Phát sinh tập tin dữ liệu từ ApexSQL – …
InstallShield – SQL Servers/Oracle/… InstallShield – SQL Servers/Oracle/…
• Làm thế nào để tạo DB và dữ liệu từ SQL
servers ? – Sử dụng InstallShield
• Làm thế nào để tạo DB và dữ liệu từ SQL
servers/Oracle/… – Xây dựng Tools/Utilities cho phép thực thi các
file Script • Database Configuration • Sử dụng bộ thư viện SQL-DMO của SQL Servers • Sử dụng SQLPlus.exe của Oracle,.. • …
Thông tin kết nối cơ sở dữ liệu Thông tin kết nối cơ sở dữ liệu
• Thông tin kết nối cơ sở dữ liệu trong chuỗi
connectionstring được lấy từ đâu ?
InstallShield – INI file InstallShield – INI file
• Được dùng để lưu trữ thông tin kết nối cơ sở dữ
liệu, cấu hình hệ thống,….
InstallShield – Cấu hình SQL Server InstallShield – Cấu hình SQL Server
• Được dùng để lưu trữ thông tin kết nối cơ sở dữ
liệu
InstallShield – Cấu hình SQL Server InstallShield – Cấu hình SQL Server
• Được dùng để lưu trữ thông tin kết nối cơ sở dữ
liệu
Web Server – Windows XP Web Server – Windows XP
InstallShield –Web Server InstallShield –Web Server
• Cấu hình Web server và Virtual Directory
` `
`
Windows Service Windows Service
InstallShield – Windows Service InstallShield – Windows Service
• Cấu hình Windows Service
`
` `
`
`
Redistribute Component Redistribute Component
• Làm thế nào để chương trình có thể hiển thị các report, chạy được ứng dụng .NET trên máy của người dùng ?
InstallShield – Redistribute InstallShield – Redistribute Component Component
• Cho phép chọn các Component: Crystal
Report, MSDE,….
InstallShield - Registry InstallShield - Registry
• Cho phép tổ chức lưu trữ thông tin trong
Registry
`
`
`
Một số thông tin khác Một số thông tin khác
`
Thông tin về sản phẩm Thông tin về sản phẩm
Thông tin khác Thông tin khác
Thank you!!! Thank you!!!
Review
Software Engneering
Luong Tran Hy Hien Information System Department, Faculty of Information Technology, HCMc University of Pedagogy, Vietnam 099.33.169.72 | hienlth@hcmup.edu.vn
Nội dung thi kết thúc học phần Nội dung thi kết thúc học phần (60%) (60%) • Dạng 1
– Thiết kế dữ liệu (4 đ) – Thiết kế giao diện (3 đ) – Thiết kế báo cáo + SQL(3 đ)
• Dạng 2 (thường dành cho HK hè)
– Phân tích quy trình nghiệp vụ (BPM) (3 đ) – Phân tích & Thiết kế dữ liệu (4 đ) – Thiết kế giao diện (3 đ)
Slide 2
HIENLTH, FIT of HCMUP – www.hienlth.info/se
Thiết kế CSDL
Thiết kế Báo cáo
Thiết kế Giao diện và Xử lý
Nội dung Nội dung
Thiết kế giao diện
Thiết kế Phần mềm?
Thiết kế xử lý Thiết kế dữ liệu (lưu trữ)
Thiết kế CSDL Thiết kế CSDL
Các thuộc tính mở rộng: Miền giá trị rời rạc, đa trị,… có nên thêm bảng hay không??? Quan hệ như thế nào?
Bổ sung thêm bảng lưu thông tin Cấu hình hệ thống
Bổ sung thêm bảng lưu thông tin Người dùng để chứng thực đăng nhập và phân quyền
Ví dụ 1 Ví dụ 1
• Xét phần mềm quản lý bán hàng với nghiệp vụ lập
phiếu thu tiền của khách hàng
Hãy lập sơ đồ logic dữ liệu
Ví dụ 1 (tt) Ví dụ 1 (tt)
• Cách 0: dùng 1 bảng
• Cách 1: dùng 2 bảng (PHIEU_THU, LYDO_THU)
• Cách 2: dùng 2 bảng (PHIEU_THU, KHACH_HANG)
• Cách 3: dùng 4 bảng
Ví dụ 1(tt) Ví dụ 1(tt)
KHACH_HANG
PHIEU_THU
MA_KH Ho_Ten CMND Dia_Chi
MA_PT MA_KH MA_LDT Ngay_Thu SoTien_Thu
THAM_SO
LYDO_THU
MA_LDT Ten_LDT
MA_Tham_So Ten_Tham_So Gia_Tri
Table THAM_SO dùng để lưu những qui định
Ví dụ 2 Ví dụ 2
• Xét phần mềm quản lý nhân sự với nghiệp
vụ tiếp nhận nhân viên
Ví dụ 2 (tt) Ví dụ 2 (tt)
a. Trường hợp không xét sự luân chuyển đơn vị
NHAN_VIEN
DON_VI
MA_Don_Vi Ten_Don_Vi
TRINH_DO
MA_NV MA_Don_Vi Ho_Ten Gioi_Tinh Ngay_Sinh Dien_Thoai Dia_Chi Ma_Trinh_Do
MA_Trinh_Do Ten_Trinh_Do
Ví dụ 2 (tt) Ví dụ 2 (tt) b. Trường hợp xét sự luân chuyển đơn vị
PHAN_CONG
NHAN_VIEN
MA_PC MA_NV MA_Don_Vi Ngay_PhanCong
DON_VI
MA_Don_Vi Ten_Don_Vi
MA_NV Ho_Ten Gioi_Tinh Ngay_Sinh Dien_Thoai Dia_Chi Ma_Trinh_Do
TRINH_DO
MA_Trinh_Do Ten_Trinh_Do
Thiết kế giao diện
Khái niệm giao diện Khái niệm giao diện
• Giao diện là gì?
– Phần mềm không hoạt động độc lập mà luôn
giao tiếp với: • Người sử dụng • Các hệ thống liên quan
cần thành phần chuyên trách giao tiếp: Giao diện
Khái niệm giao diện Khái niệm giao diện
• Đặc điểm:
– Nơi diễn ra tương tác – Định nghĩa cách thức giao tiếp – Tiếp nhận thông tin – Phản hồi thông tin
• Phân loại:
– Giao diện người dùng – Giao diện lập trình
Khái niệm giao diện Khái niệm giao diện
• Thiết kế giao diện người dùng:
– Lập danh sách màn hình
• Xác định ngữ cảnh giao tiếp • Dựa vào tình huống sử dụng (Use Case)
– Xây dựng sơ đồ màn hình
• Chuyển tiếp giữa các ngữ cảnh • Mối quan hệ giữa các màn hình – Bố trí các thành phần màn hình
• Sắp xếp các đơn vị giao diện màn hình
– Đặc tả màn hình
• Mô tả các thành phần màn hình • Mô tả kịch bản sử dụng
Các thành phần của giao diện Các thành phần của giao diện
Multimedia Giao diện tương tác
Giao dịch điện tử
Giao diện
Giao diện nhập liệu Tài liệu điện tử Giao diện kết xuất
Xử lý thông tin
Tìm kiếm thông tin
Các thành phần giao diện Các thành phần giao diện
• Thành phần tiếp nhận thông tin
– Ra lệnh: Button – Nhập liệu: TextBox – Lựa chọn: ComboBox, ListBox, CheckBox,
RadioButton
Các thành phần giao diện Các thành phần giao diện
• Thành phần phản hồi thông tin
– Thông tin đơn: Label, Textbox, MessageBox – Thông tin phức: ListView, GridView, Report
Quy tắc thiết kế giao diện Quy tắc thiết kế giao diện
• Quy tắc về màu sắc: – Dùng màu nhất quán – Giới hạn số lượng màu – Không dùng màu sặc sỡ – Cẩn trọng các màu tương phản
Quy tắc thiết kế giao diện Quy tắc thiết kế giao diện
• Quy tắc về thông báo:
– Nhất quán – Lịch sự – Cô đọng nhưng dễ hiểu – Nên kèm diễn giải, gợi ý – Không dùng ngôn ngữ: đại chúng, chuyên
dụng, kỹ thuật
Quy tắc thiết kế giao diện Quy tắc thiết kế giao diện
• Quy tắc về kiểm tra nhập liệu – Kiểm tra tất cả dữ liệu nhập – Dựa trên:
• Ràng buộc tự nhiên • Ràng buộc nghiệp vụ
– “Phòng bệnh hơn chữa bệnh”
Quy trình Quy trình
1. Mục đích màn hình 2. Vẽ giao diện màn hình. Trong đó có ghi
chú các control đặc biệt dạng ,,,,… và đánh dấu rõ các sự kiện dạng (1), (2),…
3. Mô tả các control 4. Mô tả các sự kiện (biến cố) và cách xử lý
Mô tả các control Mô tả các control
STT Tên
Kiểu
Ý nghĩa
Ghi chú
txtHoTen
TextBox
Tên học sinh Không được rỗng
1
txtDiemThi
TextBox
Điểm thi
2
Chỉ cho nhập số nguyên từ 0 đến 10
… …
…
…
…
Mô tả sự kiện Mô tả sự kiện
STT Điều kiện kích hoạt
Xử lý
Khởi động màn hình
0
???
1
Chọn lớp
???
(1)
… …
…
(0)
THANK YOU FOR YOUR ATTENTION

