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ế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

Variable characters (10) Variable characters (50)

MaDG TenDG

Variable characters (10) Variable characters (50)

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

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 1520

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