Tài liệu tham khảo hỗ trợ mơn học PHÂN TÍCH THIẾT KẾ HTTT VỚI UML TS Phan Đăng Cầu Hà nội, 25/04/2006 (Tổng số trang bìa: 58) MỤC LỤC CHƯƠNG MỞ ĐẦU 1.1 MỘT VÀI KHÁI NIỆM CƠ BẢN 1.2 CƠNG NGHỆ PHẦN MỀM NHÌN TỪ GĨC ĐỘ LỊCH SỬ 1.3 MỤC ĐÍCH VÀ YÊU CẦU CỦA MÔN HỌC CHƯƠNG PHA XÁC ĐỊNH YÊU CẦU 2.1 NẮM BẮT YÊU CẦU .9 2.2 PHÂN TÍCH YÊU CẦU 10 2.3 LÀM BẢN MẪU (PROTOTYPING) 10 2.4 CÓ KHÁI NIỆM YÊU CẦU HƯỚNG ĐỐI TƯỢNG KHƠNG? 11 2.5 TĨM TẲT CHƯƠNG 11 2.6 PHA YÊU CẦU: TÌM HIỂU VẤN ĐỀ QUẢN LÝ SÁCH Ở THƯ VIỆN .11 CHƯƠNG TỔNG QUAN VỀ UML VÀ PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG15 3.1 SỰ RA ĐỜI CỦA PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG .15 3.2 TỔNG QUAN VỀ NGÔN NGỮ UML .15 3.3 MƠ HÌNH USE-CASE 17 3.4 MƠ HÌNH LỚP 28 3.5 BIỂU ĐỒ HOẠT ĐỘNG .35 3.6 BIỂU ĐỒ TRẠNG THÁI .39 3.7 BIỂU ĐỒ TUẦN TỰ 41 3.8 BIỂU ĐỒ CỘNG TÁC 45 3.9 SỬ DỤNG PHẦN MỀM RATIONAL ROSE .47 3.10 SỬ DỤNG MỘT SỐ PHẦN MỀM KHÁC 49 CHƯƠNG PHA PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG 50 4.1 PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG 50 4.2 PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG HỆ THỐNG QUẢN LÝ THƯ VIỆN 50 CHƯƠNG PHA THIẾT KẾ HƯỚNG ĐỐI TƯỢNG .59 5.1 THIẾT KẾ CƠ SỞ DỮ LIỆU 59 5.2 XÂY DỰNG BIỂU ĐỒ TƯƠNG TÁC CHO CÁC SCENARIO 59 5.3 XÂY DỰNG BIỂU ĐỒ LỚP CHI TIẾT 60 5.4 THIẾT KẾ GIAO DIỆN 61 5.5 THIẾT KẾ CHI TIẾT 62 5.6 VỀ VẤN ĐỀ CÀI ĐẶT OOD 62 MỘT SỐ THUẬT NGỮ VÀ CÁCH VIẾT TẮT 63 TÀI LIỆU THAM KHẢO 64 CÂU HỎI VÀ BÀI TẬP 65 CHƯƠNG MỞ ĐẦU 1.1 MỘT VÀI KHÁI NIỆM CƠ BẢN Phần cứng (hardware) thiết bị cấu kiện mang tính vật lý tiếp xúc tay máy in, ổ đĩa, máy quét, mạch tích hợp (IC) Phần mềm (software) hiểu theo nghĩa đơn giản chương trình chứa dòng lệnh thị cho máy tính thực cơng việc Tuy nhiên thường người ta hiểu phần mềm tập hợp chương trình liệu phục vụ cho công việc tin học hóa Ví dụ phần mềm quản lý dịch vụ bay, phần mềm điều khiển lò phản ứng hạt nhân, phần mềm điều khiển dịch vụ mobile phone Đơi người ta gọi phần mềm chương trình, cho dù thực tế phần mềm gồm nhiều chương trình liệu Ví dụ: chương trình quản lý nhân sự, chương trình quản lý tín dụng Trong công nghệ phần mềm, người ta hiểu phần mềm không chương trình, liệu, mà gồm tài liệu liên quan đặc tả, thiết kế, hướng dẫn sử dụng Chương trình (program): đơi người ta gọi phần mềm chương trình Hay xác hơn, người ta thường gọi phần cài đặt máy tính để chạy chương trình Với cách hiểu phần mềm = chương trình + tài liệu Tuy nhiên, thực tế có người ta đồng hai khái niệm Ví dụ người ta nói "phần mềm cài đặt máy tính khách hàng" Kỹ nghệ phần mềm (software engineering) cách làm phần mềm tuân theo nguyên tắc tương tự nguyên tắc kỹ nghệ truyền thống (ví dụ kỹ nghệ xây dựng cầu, kỹ nghệ làm đường, ) Do thói quen, nhiều tài liệu người ta dùng từ công nghệ phần mềm thay cho từ dịch nghĩa kỹ nghệ phần mềm Vòng đời phần mềm (software life-cycle) giai đoạn mà phần mềm phải trải qua, khảo sát nhu cầu thực tế phần mềm sử dụng Phát triển phần mềm (software developement): Trước năm 1970, việc sản xuất phần mềm coi kết hai giai đoạn nối tiếp nhau: phát triển bảo trì Phát triển phần mềm giai đoạn từ khảo sát phần mềm hoàn thành đưa vào sử dụng Khoảng thời gian sau phần mềm sử dụng gọi thời gian bảo trì (software maintenance) Năm 1970 W.W Royce lần đưa mơ hình phát triển phần mềm (software development model) trải qua nhiều giai đoạn gọi mơ hình thác đổ (Waterfall model) Trong mơ hình này, q trình tạo phần mềm ( a process for the creation of software) coi dòng chảy trải qua pha yêu cầu, phân tích, thiết kế, cài đặt, tích hợp bảo trì Người phát triển (software developer) tên gọi chung cho người tham gia xây dựng phần mềm Nhóm đảm bảo chất lượng phần mềm (software quality assurance group = SQA group) nhóm chuyên kiểm tra chất lượng phần mềm, kiểm tra kết giai đoạn xây dựng phần mềm Quy trình làm phần mềm (software process) cách thức làm phần mềm, bao gồm vòng đời phần mềm, công cụ người phát triển phần mềm Pha (phase) giai đoạn trình xây dựng phần mềm Ví dụ pha xác định yêu cầu, pha phân tích PTTK HTTT với UML - Chương Mở đầu Yêu cầu (requirements) pha trình xây dựng phần mềm Người phát triển khách hàng ngồi lại với Khách hàng nêu yêu cầu mà phần mềm phải có Những người phát triển ghi chép lại Nếu dịch theo tiếng Anh "requirements phase" pha yêu cầu Tuy nhiên cách gọi đơn giản khó hiểu, ta gọi pha xác định yêu cầu Đặc tả (specification) phân tích (analysis): Trên sở yêu cầu khách hàng, người phát triển mơ tả lại xác u cầu mà phần mềm phải có Cách mơ tả có tính chun mơn đơi sử dụng công cụ trợ giúp Pha trả lời câu hỏi "phần mềm làm gì?" (what the product is to do?) Phân tích hệ thống (system analysis) người ta thường gộp hai pha yêu cầu phân tích thành pha gọi pha phân tích hệ thống Thiết kế (design) pha pha đặc tả Căn vào tài liệu đặc tả, pha mô tả cách thức mà phần mềm thực công việc cụ thể Pha trả lời câu hỏi "phần mềm thực nào?" (how the product is to it) “Cái đó” dây hiểu phần mềm cần làm nêu pha đặc tả Pha thiết kế thường có hai phần: thiết kế kiến trúc (architecture design) thiết kế chi tiết (detail design) Cài đặt (implementation) mã hóa (coding) hay lập trình (programming): viết chương trình ngơn ngữ cụ thể Tích hợp (integration) kết nối phần chương trình viết thành phần mềm thống chạy thử, hiệu chỉnh chạy tốt Bảo trì (maintenance) hay đơi gọi hỗ trợ (trong tài liệu tiếng Việt): Những hiệu chỉnh, sửa đổi phần mềm sửa lỗi phát sinh, hiệu chỉnh phần mềm theo yêu cầu khách hàng kể từ phần mềm đưa vào sử dụng Ngày để xây dựng phần mềm người ta thường thực bước (các bước theo thuật ngữ tin học gọi pha) sau đây: Xác định yêu cầu, phân tích, thiết kế, cài đặt, tích hợp, bảo trì Trong nhiều tài liệu người ta gộp hai pha đặt tên "Phân tích hệ thống" Pha tích hợp gồm hai cơng việc: ghép nối phần chương trình (đã viết kiểm thử riêng biệt) thành phần mềm đầy đủ, sau chạy thử kiểm tra tồn phần mềm Cũng có lúc người ta cho việc tích hợp phải tiến hành đồng thời với lập trình, người ta tách cơng việc kiểm thử từ pha tích hợp thành pha riêng Cũng có lúc người ta kết hợp hai pha cài đặt tích hợp thành pha "cài đặt tích hợp" Nếu tổ hợp cách gọi khác nói trên, có nhiều cách mơ tả bước làm phần mềm khác hình thức thực chất tương đương, ví dụ như: Xác định yêu cầu, phân tích, thiết kế, cài đặt, kiểm thử, bảo trì Phân tích hệ thống, thiết kế, cài đặt, kiểm thử, bảo trì Xác định u cầu, phân tích, thiết kế, cài đặt tích hợp, bảo trì Xác định yêu cầu, phân tích, thiết kế, cài đặt kiểm thử, bảo trì Lưu ý từ "phân tích" thay từ đồng nghĩa "đặc tả"; từ "cài đặt" có cách gọi khác "thực hiện" hay "lập trình" Trong tài liệu sử dụng cách gọi PTTK HTTT với UML - Chương Mở đầu 1.2 CƠNG NGHỆ PHẦN MỀM NHÌN TỪ GĨC ĐỘ LỊCH SỬ Máy tính điện tử cho mục đích thương mại máy UNIVAC-1 sản xuất năm 1951 Mỹ Từ khoảng năm 1955 bắt đầu có phần mềm, tức chương trình máy tính Cho đến nay, lấy phương pháp mức độ phức tạp làm cứ, chia trình phát triển phần mềm thành giai đoạn: 1955 - 1970, 1971 - 1985, 1986 đến Tất nhiên phân chia tương đối mà Đặc điểm giai đoạn là: - 1955 - 1970: Tính tốn quản lý rời rạc, quản lý nhỏ Đặc tả yêu cầu khách hàng lúc dùng ngơn ngữ tự nhiên thơng thường Ví dụ câu kiểu như: tơi muốn có tệp liệu chứa thông tin bán sản phầm số hóa đơn, người bán, mặt hàng, ; liệu nhập từ bàn phím, có kiểm tra đưa vào tệp Hàng tháng muốn lấy thông tin doanh thu, lãi, số hàng bán Chương trình hồi gồm khoảng vài trăm dòng lệnh, thừong người thực Thiết kế thời không soạn thảo giấy mà hình thành tư người lập trình Người lập trình vừa viết chương trình vừa suy nghĩ cách tổ chức liệu, cách sử dụng thuật tốn cho chương trình chạy tốt, đáp ứng yêu cầu khách hàng Phương pháp lập trình sử dụng thời lập trình tuyến tính, tức cách viết chương trình phần lớn lệnh đặt theo trình tự thực chúng, nghĩa lệnh cần thực trước viết trước, lệnh thực sau viết sau - 1971 - 1985: Lúc có nhu cầu xây dựng phần mềm thời gian thực (ví dụ tính tốn lò phản ứng hạt nhân phải có kết để điều khiển kịp thời); có nhu cầu xây dựng mạng cục kết nối sở liệu Phần mềm thời kỳ lớn, người hoàn thành thời gian ngắn Người ta nghĩ đến việc phân chia phần mềm cho nhiều người làm ghép nối lại thành phần mềm hoàn chỉnh Để làm điều người ta phải nghĩ cách diễn tả phần mềm cách xác Ngơn ngữ tự nhiên thường chứa đựng yếu tố nhập nhằng không thích hợp cho cơng việc này, người ta đưa công cụ để đặc tả phần mềm, cơng cụ có tính trực quan, sử dụng biểu đồ sử dụng nhiều Vì vấn đề lớn cần phải mơ tả có cấu trúc cho dễ hiểu, phương pháp phân tích có cấu trúc (structured analysis) đời Phương pháp cấu trúc thực sử dụng từ sau năm 1975 Phương pháp tập trung vào việc mô tả công việc cần thực phần mềm thông tin chuyển giao chúng Thành phần phương pháp cấu trúc biểu đồ luồng liệu (Data Flow Diagram - DFD) Thiết kế thời trọng tới cấu hình hệ thống (system configuration) Vấn đề cấu trúc liệu giải thuật ý Các chương trình tiêu biểu thời kể tới hệ điều hành DOS, UNIX Lúc có sở liệu truy cập từ xa Do nhu cầu thực tế, ngơn ngữ lập trình đời giai đoạn có khả hỗ trợ phương pháp lập trình có cấu trúc, nghĩa chương trình phân chia thành chương trình con, chương trình có tên chức xử lý riêng, giao tiếp với chương trình khác thơng qua đối số kiểu trả (nếu có) - Từ 1986 đến nay: Đây thời kỳ máy vi tính PC, thời nối mạng tầm rộng, mạng tồn cầu Internet Ngày có hệ phần mềm cần hàng trăm người làm nhiều năm hệ phần mềm dùng cho chương trình khơng gian Mỹ Thậm chí có hệ cần đến hàng ngàn người nhiều nước làm nhiều năm chương trình điều khiển tổng đài điện thoại bán khắp nơi giới Khác với sản phẩm khác, phần mềm không giữ nguyên mà không ngừng thay đổi Ví dụ chương trình quản lý kết thi đại học chẳng hạn Có thể năm lại có sách khác phải sửa lại cho phù hợp Chương trình quản lý nhân quan, chương trình quản lý du lịch, Người ta nhận thấy phương pháp cấu trúc thích hợp cho phần mềm 5000 dòng lệnh Đặc điểm phương pháp cấu trúc tách riêng liệu thao tác xử lý chúng; thấy công việc thực tế PTTK HTTT với UML - Chương Mở đầu đối tượng thực hiện, mà đối tượng bao hàm chúng thuộc tính hành vi Ví dụ công việc cửa hàng chẳng hạn, có chút trừu tượng nhân cách hóa, xem phối hợp hoạt động đối tượng: khách hàng, hàng, hóa đơn Phương pháp diễn tả phần mềm theo cách nhìn nhận gọi phương pháp hướng đối tượng (Object-Oriented Method) Bản chất phương pháp mô tả phần mềm hoạt động tạo nên đối tượng Mặc dù phương pháp cấu trúc sử dụng, phương pháp hướng đối tượng ngày chiếm ưu sử dụng nhiều Phương pháp hướng đối tượng bao gồm: phân tích, thiết kế lập trình hướng đối tượng Trong thiết kế người ta ý đến môđun (module), đối tượng (object), giao thức (protocol) giao diện (interface) Giao thức hay giao diện nói trao đổi đối tượng Khi cài đặt máy tính người ta thường dùng ngôn ngữ hướng đối tượng Các công cụ CASE (Computer Aided Software Engineering) sử dụng nhiều cơng việc làm phần mềm Ngồi phần mềm viết theo đặt hàng, người ta trọng đến phần mềm đóng gói như: Netscape, Internet Explorer, Word, Excel Người ta cho việc xây dựng phần mềm cần tuân theo nguyên tắc kỹ luật giống xây dựng cầu hay thực công việc kỹ nghệ khác Nếu cầu bị lỗi xây dựng bị sập tác hại gây lớn Một phần mềm quan trọng phần mềm điều khiển hệ thống tên lửa đạn đạo nước mà có lỗi, cho kết tính tốn sai hậu gây thật kinh khủng Chính nhóm nghiên cứu NATO năm 1967 sử dụng thuật ngữ "Software engineering" Họ muốn xây dựng phần mềm kỹ sư cần áp dụng nguyên tắc kỹ nghệ truyền thống Tuy nhiên, có nhiều khác biệt sản phẩm kỹ nghệ truyền thống công nghệ phần mềm Ví dụ cầu hệ điều hành chẳng hạn Sự cố cầu sập xảy xảy cách khắc phục thường xây dựng lại Còn hệ điều hành có cố có cần tắt máy khởi động lại lại chạy tốt Phần mềm sửa lại, có tới 50% để chạy máy tính có cấu hình khác thực thêm chức khác Còn cầu muốn sửa lại 50% khó, nhiều xây dựng dễ thực Mục tiêu công nghệ phần mềm sản xuất phần mềm khơng có lỗi, hồn thành thời hạn với kinh phí cho phép thỏa mãn yêu cầu khách hàng Hơn phần mềm phải dễ sửa đổi người sử dụng cần Để đạt điều này, kỹ sư phần mềm phải trang bị kỹ kỹ thuật quản lý Các kỹ viết chương trình, mà phải áp dụng pha xây dựng phần mềm, khảo sát yêu cầu khách hàng giai đoạn bảo trì Có thể nêu vài lý khiến phải nghiên cứu cách thức xây dựng phần mềm cách có khoa học là: • Ngày phần lớn phần mềm xây dựng theo đơn đặt hàng Như cần có ngơn ngữ chung người xây dựng phần mềm khách hàng • Phần mềm thường không người mà gồm nhiều người xây dựng Những người phát triển phần mềm phải hiểu rõ cơng việc cơng việc chung, mối liên hệ công việc cá nhân nhóm Cần có cách thức diễn đạt công việc làm phần mềm cho kỹ sư phần mềm trao đổi dễ dàng ý tưởng cơng việc với kỹ sư nhóm làm việc • Phần mềm thứ hàng hóa thứ hàng hố khác phải tuân thủ nguyên tắc kinh tế thị trường sản phẩm phải độc lập với người sản xuất Nghĩa sau mua hàng, người mua không bị lệ thuộc vào người bán Muốn sản phẩm phần mềm ngồi chương trình chạy máy, cần có thêm tài liệu cho người khác tìm hiểu bảo trì Vậy cần ngơn ngữ, cách trình bày chung cho sản phẩm phần mềm PTTK HTTT với UML - Chương Mở đầu 1.3 MỤC ĐÍCH VÀ U CẦU CỦA MƠN HỌC Như nói tới, phân tích thiết kế hai giai đoạn quan trọng q trình tạo phần mềm Có hai phương pháp sử dụng cấu trúc hướng đối tượng, phương pháp hướng đối tượng ngày chiếm ưu Trong giai đoạn làm phần mềm có pha đầu tiên, pha xác định yêu cầu, chủ yếu sử dụng ngơn ngữ tự nhiên; pha lại sử dụng số công cụ chuyên dụng UML cơng cụ tạo với mục đích sử dụng cho phân tích thiết kế phần mềm theo phương pháp HĐT UML ngơn ngữ nửa hình thức, có tính trực quan, tức sử dụng biểu tượng hình ảnh, dùng để mơ tả phần mềm Mục đích môn học sử dụng UML cho công việc phân tích thiết kế phần mềm hướng đối tượng Vì phân tích thực sau hoàn thành pha xác định yêu cầu, mơn học bao hàm việc giới thiệu công việc cần làm pha xác định yêu cầu Các u cầu mơn học là: • Sinh viên cần nắm công việc cần làm pha: xác định yêu cầu, phân tích thiết kế phần mềm • Nắm quy tắc, biểu tượng dạng biểu đồ UML để phân tích thiết kế phần mềm HĐT • Áp dụng kiến thức học để thực pha xác định yêu cầu, phân tích thiết kế vấn đề thực tế cần tin học hóa Ngồi chúng tơi khuyến khích bạn sinh viên nên cài đặt chương trình theo phân tích thiết kế ngơn ngữ mà bạn quen thuộc dễ học, ví dụ Microsoft Access chẳng hạn, bạn hiểu sâu lý thuyết CHƯƠNG PHA XÁC ĐỊNH YÊU CẦU 2.1 NẮM BẮT YÊU CẦU Quá trình khám phá yêu cầu khách hàng gọi nắm bắt yêu cầu (requirements capture), gợi mở yêu cầu (requirements elicitation) hay tìm hiểu vấn đề (concept exploration) Sau yêu cầu xác định chúng xem xét để hiệu chỉnh, lược bỏ bớt mở rộng Quá trình gọi phân tích yêu cầu (requrements analysis) Pha yêu cầu thường bắt đầu việc gặp gỡ trao đổi vài thành viên nhóm yêu cầu vài thành viên đại diện cho công ty khách hàng để xác định xem sản phẩm phần mềm cần Cuộc trao đổi thường thực theo cách thành viên nhóm u cầu đưa câu hỏi có tính gợi mở lĩnh vực mà phần mềm sử dụng Các thành viên công ty khách hàng trả lời câu hỏi nhóm yêu cầu, chủ động nêu vấn đề mà họ cần Rõ ràng thành viên tham gia khám phá yêu cầu khách hàng phải có hiểu viết lĩnh vực mà phần mềm ứng dụng để hiểu điều khách hàng nói đưa câu hỏi có ý nghĩa Vì việc nhiệm vụ nhóm u cầu tìm hiểu làm quen với lĩnh vực ứng dụng phần mềm mà khách hàng muốn có Ví dụ phần mềm quản lý chuyến bay hãng hàng khơng lĩnh vực cần tìm hiểu cách thức quản lý chuyến bay hãng hàng khơng Nếu phần mềm chương trình quản lý thư viện nhóm u cầu cần có hiểu biết định lĩnh vực thư viện Để sử dụng từ cách xác, thành viên nhóm u cầu cần tìm hiểu thuật ngữ Ví dụ họ chuẩn bị làm phần mềm lĩnh vực sinh học cần tìm hiểu thuật ngữ sinh học Một phương pháp khắc phục vấn đề thuật ngữ xây dựng từ vựng lĩnh vực ứng dụng Mỗi lần gặp thuật ngữ nhóm u cầu cần tìm hiểu để hiểu cách xác đưa thuật ngữ vào từ vựng Sau có hiểu biết định lĩnh vực ứng dụng phần mềm, thành viên bắt đầu khám phá, tìm hiểu yêu cầu khách hàng theo cách thức sau: 2.1.1 Phỏng vấn khách hàng Có hai kiểu vấn: có cấu trúc (structured) khơng có cấu trúc (unstructured) Với kiểu vấn cấu trúc câu hỏi đóng (close-ended) chuẩn bị trước Ví dụ "cơng ty sử dụng nhân viên bán hàng", "lương trung bình nhân viên cơng ty bao nhiêu" Trong cách vấn khơng có cấu trúc câu hỏi có tính mở (open-ended) đưa Ví dụ "Hãy nêu vài điểm yếu phần mềm sử dụng mà khách hàng có ý định thay thế" Tuy nhiên khơng nên hỏi câu chung chung, khó trả lời "Hãy nói cho tơi biết sản phẩm tại" Các câu hỏi mở nên đưa cho khích lệ người vấn cho câu trả lời phạm vi rộng, nhiên không nên rộng mà nằm phạm vi thông tin cần nắm bắt Phỏng vấn có hiệu cơng việc khơng dễ dàng Điều kiện quan trọng người vấn cần am hiểu lĩnh vực mà họ chuẩn bị vấn Các câu hỏi đưa phải hợp lý để người vấn nói thơng tin có ích cần thiết cách tự nhiên, khơng bị gò ép hay e ngại Đơi câu hỏi thẳng thắn trực tiếp chưa nhận câu trả lời Ví dụ hỏi "lương anh chị thấp, chi tiêu nhiều Anh chị cho biết có khoản tiền ngồi lương " thường người hỏi tìm cách né tránh câu trả lời thật Sau vấn xong người vấn cần viết báo cáo kết vấn nên đưa cho người vấn xem góp ý kiến 2.1.2 Kịch (scenario) Kịch kỹ thuật sử dụng để phân tích u cầu Kịch mơ tả thao tác cần thực phần mềm cần xây dựng để hồn thành cơng việc (trong công việc mà phần mềm cung cấp) PTTK HTTT với UML - Chương Pha xác định yêu cầu 2.1.3 Một vài kỹ thuật nắm bắt yêu cầu khác Một kỹ thuật khác hay sử dụng để nắm bắt yêu cầu khách hàng gửi bảng câu hỏi cho số thành viên đại diện cơng ty khách hàng Bằng cách gửi cho hàng trăm thành viên nhận câu trả lời dạng viết suy nghĩ kỹ Tuy nhiên từ bảng câu hỏi trả lời, người vấn đưa thêm câu hỏi thích hợp với người vấn nhận thơng tin bổ ích Đơi thơng tin có ích nhiều so với trả lời viết có Một cách khác để tìm hiểu nắm bắt yêu cầu khách hàng, đặc biệt môi trường kinh doanh, xem xét biểu mẫu khác mà khách hàng sử dụng Ví dụ việc xem xét biểu mẫu in phòng in ấn biết dạng báo cáo, cỡ giấy; tài liệu viết cách thức điều hành mô tả cơng việc cơng cụ hữu ích để giúp tìm cơng việc thực thực công ty khách hàng Gần người ta thường áp dụng thêm phương pháp quay băng video cảnh làm việc công ty khách hàng (tất nhiên cho phép công ty người quay) Như biết xác xảy Tuy nhiên cách có nhược điểm phải tốn nhiều thời gian để xem lại băng phân tích để rút thông tin cần thiết Một nhược điểm lớn khác phương pháp phần lớn người quay đề khơng thích xuất máy quay trở nên dè dặt hành động Sau thu thông tin ban đầu yêu cầu khách hàng bước phân tích u cầu để rút thơng tin giúp ích cho việc xây dựng phần mềm 2.2 PHÂN TÍCH YÊU CẦU Tới thời điểm này, nhóm yêu cầu có tập hợp khởi đầu yêu cầu khách hàng Các yêu cầu phân làm hai loại: chức (functional) phi chức (nonfunctional) Yêu cầu chức thường gắn với chức tương ứng phần mềm cần xây dựng thể dạng mục chọn thực đơn, ví dụ như: "Phần mềm cung cấp chức tìm kiếm hàng hóa theo tên hàng ngày bán" Đặc tả phi chức dùng để rõ tính chất phần mềm cần xây dựng, ví dụ tính tin cậy bảo trì được; liên quan đến môi trường mà phần mềm sử dụng, ví dụ: tất mã khách hàng nhập trực tiếp từ bàn phím lưu tệp bảng liệu" Tóm lại yêu cầu chức nói đến cơng việc cụ thể, thường thể mục chọn chương trình; u cầu phi chức nói tính chất phần mềm, tính chất khơng thể thể việc cụ thể Thí dụ từ câu "yêu cầu phần mềm phải có giao diện đẹp, thân thiện với người sử dụng" ta nói cụ thể phải làm Một điều quan trọng phần mềm phải theo dõi (traceable) Điều có nghĩa kiểm tra xem tất yêu cầu thể đặc tả chưa; điểm báo cáo yêu cầu tương ứng với điểm báo cáo đặc tả Tương tự báo cáo thiết kế hay chương trình phải tương ứng với tài liệu trước Như nhóm bảo đảm chất lượng phần mềm kiểm tra xem có phải tất mục yêu cầu khách hàng thực chưa Tất yêu cầu thu thập ban đầu đề đưa cho khách hàng xem xét Họ xếp mục yêu cầu theo thứ tự quan trọng, phát hiệu chỉnh điều khơng xác bỏ mục khơng cần thiết Tiếp theo, nhóm u cầu thảo luận với khách hàng vấn xem xét lại vấn đề cách kỹ càng, xem có điều bị bỏ sót khơng Và biết, kỹ thuật phân tích yêu cầu hiệu xác làm mẫu, nhóm chuyển qua bước làm mẫu để đưa cho khách hàng xem xét cách trực quan 2.3 LÀM BẢN MẪU (PROTOTYPING) Bản mẫu xem kỹ thuật phân tích yêu cầu xác 10 PTTK HTTT với UML - Chương Pha phân tích hướng đối tượng trợ giúp nhân viên thư viện Tóm lại ta đưa nguyên tắc xác định lớp chi tiết sau: Xem xét biểu mẫu có nghiệp vụ mà phần mềm ứng dụng Bản thân biểu mẫu lớp mơ hình lớp Tìm danh từ biểu mẫu có xuất danh sách (1), dạng ẩn hiện, ví dụ phiếu đăng ký sau có danh từ ẩn bạn đọc (số thẻ bạn đọc, số chứng minh thư bạn đọc, họ tên bạn đọc, ) Xác định xem nên để danh từ thuộc tính hay nên tách thành lớp Nếu danh từ nói đến đối tượng cần quản lý riêng nên tạo lớp; ngược lại nên để thuộc tính Trong pha yêu cầu ta xác định biểu mẫu thư viện có loại sau: Phiếu Phiếu đăng Sach mượn ký Mã sách Số thẻ Số thẻ Tên sách Mã thủ thư Số CMT Tác giả Mã sách Họ tên Nhà xuất Ngày mượn Giới tính Ngày trả Ngày sinh Phân loại Trả rồi? Địa Số lượng Ghi Được mượn Nơi lưu trữ Được chấp Ghi Nếu bạn đọc mượn nhiều sách nhậnhóa đơn Tuy nhiên thường bạn đọc giống Phiếu trả Số thẻ Mã thủ thư Mã sách Ngày mượn Ngày trả Trả rồi? Ghi Báo cáo Báo cáo sách nhập kho khoảng thời gian Báo cáo sách mượn khoảng thời gian lúc phiếu mượn có hình thức mượn tối đa cuốn, nên sử dụng phiếu cho sách mà Lưu ý thông tin sử dụng cho báo cáo lấy từ nguồn khác, nghĩa báo cáo chủ yếu hiển thị thông tin trích lọc, ta tạm thời khơng xem xét danh từ Từ báo biểu ta tạm đưa danh từ tạo lớp là: Phiếu đăng ký, phiếu mượn, phiếu trả, báo cáo, bạn đọc, sách, thủ thư, sách mượn, sách trả Bây ta phân tích nên lại bỏ Ta xem xét danh từ: Bạn đọc Thông tin bạn đọc giống thông tin phiếu đăng ký, khơng cần tạo thêm lớp Tuy nhiên phiếu đăng ký coi thông tin bạn đọc dự bị (chưa chấp nhận) ta thay lớp phiếu đăng ký lớp bạn đọc.Với lớp bạn đọc ta phải lưu giữ lại tất bạn đọc với thơng tin cần thiết thiết bị nhớ ngồi (đĩa cứng, USB ) Trong pha thiết kế ta rõ cấu trúc csdl này, pha ta gọi đơn giản CSDL bạn đọc Thẻ thư viện Với thẻ thư viện thơng tin có lớp phiếu đăng ký lớp bạn đọc, ta nên xem thuộc tính mà Thủ thư Nếu thư viện nhỏ, có vài thủ thư, việc thủ thư cho mượn khơng quan trọng ta nên để thuộc tính Còn thư viện lớn, có nhiều thủ thư hoạt động thủ thư cần phải quản lý ta xây dựng thành lớp Ở ta giả thiết có nhiều thủ thư cần quản lý công việc họ nên ta xây dựng lớp thủ thư.Thông tin thủ thư lưu CSDL thủ thư Phiếu mượn, phiếu trả Ta thấy hai phiếu có thơng tin nhau, giống thông tin sách mượn, ta coi phiếu mượn thuộc lớp Sách mượn 55 PTTK HTTT với UML - Chương Pha phân tích hướng đối tượng Sách mượn, sách trả Ta thấy sách mượn cần quản lý nên tạo thành lớp Thông tin sách trả thể thuộc tính logic trả lớp sách mượn Với sách mượn ta lưu liệu CSDL sách mượn Tóm lại ta có lớp sau đây: BạnDoc Số thẻ Số CMT Họ tên Giới tính Ngày sinh Địa Được mượn Chính thức Sửa() Thêm mới() Xóa() ThuThu Mã thủ thư Họ tên Giới tính Ngày sinh Địa Sửa() Thêm mới() Xóa() Sach Mã sách Tên sách Tác giả Nhà xuất Phân loại Số lượng Đang mượn Nội dung Nơi lưu trữ Sửa() Thêm mới() Xóa() SachMuon Số thẻ Mã thủ thư Mã sách Ngày mượn Ngày trả Trả rồi? Ghi Sửa() Thêm mới() Xóa() BaoCao Tống số sách nhập kho khoảng thời gian cho trước theo loại Số sách có kho số lần cho mượn khoảng thời gian cho trứoc theo chủng loại Hình 1.5 Các lớp (class) hệ thống quản lý sách thư viện Ghi Vì mục đích quản lý, ta thêm thông tin mượn nội dung vào lớp Sách Căn vào hiểu biết thực tế, ta đưa sơ đồ lớp sau (Lưu ý * giống *): ThuThu * * * Sach 1 BaoCao * BanDoc * SachMuon * BCSachNha p BCSachMuo n Hình 1.6 Biểu đồ lớp hệ thống quản lý sách thư viện Thường xây dựng lớp người phát triển phải có hình dung phần mềm tương lai, việc có nên tạo lớp hay khơng nhiều phụ thuộc vào cách hình dung Như lớp đưa phương án theo cách suy luận chúng tơi Các bạn đưa cách suy luận khác mô hình lớp khác Ví dụ bạn coi giao diện "Đăng ký làm thẻ mới" hay "Phiếu mượn" lớp khác với lớp bạn đọc sách mượn 4.2.3 Xây dựng mơ hình động Bước thứ ba phân tích HĐT xây dựng mơ hình động Mơ hình động (dynamic model) bao gồm hai loại biểu đồ: biểu đồ hoạt động (activity diagram) biểu đồ trạng thái (state diagram) Trong giai đoạn pha phân tích, biểu đồ trạng thái thường sử dụng để mô tả trạng thái lớp qua nhiều use-case Với lớp bạn đọc chẳng hạn, có trạng thái đăng ký làm thẻ, chờ lấy thẻ, tìm kiếm sách, mượn sách, trả sách Có thể dùng biểu đồ trạng thái để liên kết tất trạng thái lớp bạn đọc Tuy nhiên theo việc liên kết khơng mang ý nghĩa lắm, thao tác đăng ký làm thẻ làm lần, việc 56 PTTK HTTT với UML - Chương Pha phân tích hướng đối tượng mượn sách hay trả sách thực theo thứ tự định Do chúng tơi vẽ biểu đồ trạng thái cho lớp bạn đọc scenario mượn sách để làm ví dụ mà thơi 57 PTTK HTTT với UML - Chương Pha phân tích hướng đối tượng Bắt đầu Tìm kiếm sách Bạn đọc điền thơng tin vào biểu tìm sách nhấn nút "Tìm" Hệ thốngkhơng Mượn sách Hệ thống thơng tin tìm kiếm Bạn đọc chọn nút Mượn bổ sung thông tin phiếu mượn Thông tin không hợp lệ Chấp nhận mượn sách Hệ thống thông tin nơi lưu trữ sách (để thủ thư lấy sách cho bạn đọc) Hình 1.7 Biểu đồ trạng thái lớp bạn đọc qua scenario mượn sách Đến đây, pha phân tích hướng đối tượng coi hồn tất Còn việc nên làm xem xét lại phần có hiệu chỉnh thấy cần thiết 58 CHƯƠNG PHA THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Theo Stephan R Schach, OOD gồm bốn bước sau (xem [6]): Xây dựng biểu đồ tương tác cho scenario (interaction diagrams) Xây dựng biểu đồ lớp chi tiết (detailed class diagram) Xây dựng sơ đồ biễn diễn quan hệ đối tượng-khách (client-object relation) Tiến hành thiết kế chi tiết Trong bước bước thứ ba Schach đưa Chúng tơi nghĩ có số bước ln ln phải có, ví dụ bước 1, Các bước lại phụ thuộc vào mơi trường lập trình Trong tốn quản lý sách đề nghị bước sau: Thiết kế sở liệu Xây dựng biểu đồ tương tác cho scenario (interaction diagrams) Xây dựng biểu đồ lớp chi tiết (detailed class diagram) Thiết kế giao diện Tiến hành thiết kế chi tiết Lưu ý từ pha thiết kế việc lựa chọn ngơn ngữ lập trình có ảnh hưởng đến tài liệu thiết kế (xem mục 9.4) Phiên chương trình quản lý sách viết Access, ta sử dụng lớp có sẵn Access, Form, CommandButton, ComboBox, 5.1 THIẾT KẾ CƠ SỞ DỮ LIỆU Cơ sở liệu quản lý sách bao gồm bảng sau: Hình 5.1 Cơ sở liệu quản lý sách Ta xem bốn bảng sở liệu thư viện xem đối tượng CSDL Mỗi bảng lại xem CSDL thành phần Ta gọi sở liệu thành phần CSDL bạn đọc, CSDL thủ thư, CSDL sách CSDL sách mượn (như quy ước UML, gạch có nghĩa đối tượng) 5.2 XÂY DỰNG BIỂU ĐỒ TƯƠNG TÁC CHO CÁC SCENARIO Có đối tượng tham gia biểu đồ là: bạn đọc, TK:Form form để bạn đọc nhập thơng tin cần tìm, PM:SachMuon phiếu mượn thuộc lớp SachMuon, BanDocDB sở liệu bạn đọc, SachDB sở liệu sách SachMuonDB sở liệu sách mượn Vì điều kiện thời gian, thay vẽ hình chữ nhật biểu diễn hoạt động đối tượng, vẽ đường thẳng đứng PTTK HTTT với UML - Chương Pha thiết kế hướng đối tượng TK:Form Bạn đọc hàng Nhập tin PM:SachMuon BanDocDB SachDB SachMuonD B thơng TimKiem() Khơng thấy tìm Tìm thấy Bổ sung thơng tin Kiểm tra Ok Kiểm tra Cập nhật Ok Chấp nhận, thơng tin lưu trữ Hình 5.2 Biểu đồ cho scenario mượn sách Các biểu đồ lại tập dành cho bạn 5.3 XÂY DỰNG BIỂU ĐỒ LỚP CHI TIẾT Để tránh cho việc soạn thảo nhiều, không đưa biểu đồ lớp, biểu đồ tương tự biểu đồ pha phân tích.Các lớp mô tả chi tiết sau: BanDoc SoThe: text SoCMT:text HoTen:text Nam:Yes/No NgaySinh:Date DiaChi:text MuonVe:Yes/No ChinhThuc: Yes/No Sub Edit() Sub AddNew() Sub Dele() ThuThu MaThuThu:te xt HoTen:text Nam:Yes/No NgaySinh:Da te DiaChi:text Sub Edit() Sub BaoCao AddNew() FromDate:date Sub Dele() ToDate:date Sub Nhap() BCSachNha p Sach MaSach:text TenSach:text TacGia:text NhaXuatBan:tex t PhanLoai:text SoLuong:numbe r DangMuon:num ber NoiDung:memo NoiLuuTru:text Sub Edit() Sub AddNew() Sub Dele() SachMuon SoThe: text MaThuThu:text MaSach: Date NgayMuon: Date NgayTra:text TraRoi:Yes/No GhiChu:text Sub Edit() Sub AddNew() Sub Dele() BCSachMuo n Hình 1.10 Mơ tả chi tiết lớp hệ thống quản lý sách thư viện Lưu ý báo cáo sử dụng đối tượng Report Access 60 PTTK HTTT với UML - Chương Pha thiết kế hướng đối tượng 5.4 THIẾT KẾ GIAO DIỆN 5.4.1 Các giao diện biểu diễn lớp Lớp form sử dụng để biểu diễn lớp giao diện phần mềm Ví dụ lớp BanDoc mơ tả form: Hình 1.11 Form dùng để biểu diễn lớp BanDoc Tuy nhiên dùng làm biểu đăng ký thuộc tính lblTitle dùng để thể tiêu đề "Phiếu đăng ký làm thẻ", nút lệnh "Xóa bạn đọc" khơng lên Có nghĩa thể lớp ứng với trường hợp đăng ký làm thẻ có hình thức chức phiếu làm thẻ, sử dụng làm chức "Xem thơng tin bạn đọc" lại có dạng phù hợp Nút lệnh đăng ký hàm thành phần AddNew() Vì bạn đọc đăng ký thành cơng cập nhật vào CSDL Bằng cách tương tự bạn dùng form để biểu diễn lớp khác 5.4.2 Các giao diện khác Bảng chọn chương trình có dạng sau: Hình 1.12 Form chương trình Trên form nút lện tương ứng với chức chương trình (chính use-case 61 PTTK HTTT với UML - Chương Pha thiết kế hướng đối tượng biểu đồ use-case) Mỗi nút lựa chọn hàm thực chức tương ứng (chủ yếu mở form) Có thể xem hình lớp, xem nút lệnh hàm thành phần Theo quan điểm chúng tơi, xem đối tượng lớp đặc biệt Nói chung lớp thường đại diện cho nhiều đối tượng Nhưng lớp đặc biệt đại diện cho đối tượng mà 5.4.3 Dùng giao diện form để thể tính thừa kế nào? Access, VB hay VF (Visual Foxpro) khơng có tính kế thừa Như có hai lớp kế thừa ta phải dùng hai form để thể Ví dụ ta cần form để thể lớp Sach form khác để thể lớp SachMuon (được kế thừa từ lớp Sach) Tuy nhiên thuộc tính lớp SachMuon có lớp Sach nên lớp SachMuon ta cần lưu giữ thuộc tính MaSach mà thơi Các thơng tin khác lấy từ lớp sở lớp Sach 5.5 THIẾT KẾ CHI TIẾT Trong phần ta thực thiết kế chi tiết cho lớp, thực chất thiết kế chi tiết cho hàm thành phần lớp Cách thiết kế phụ thuộc vào ngơn ngữ lập trình lựa chọn Với lớp Sach ta có hàm thành phần Edit(), AddNew() Dele() Tuy nhiên ta sử dụng form để cài đặt thể lớp nên ta dùng hàm kiện để cài đặt hàm Ta sửa lại tên hàm cho phù hợp cmdEdit_Click(), cmdAddNew_Click cmdDele_Click() Ta quy ước hàm thành phần lớp ký hiệu giống hàm thành phần lớp C++, nghĩa có dạng :: Mẫu chung sử dụng để mô tả hàm có dạng: Tên Module Kiểu Module Kiểu trả Tham số vào Tham số Thông báo lỗi Các tệp truy cập Tệp bị thay đổi Module gọi Mô tả Tuy nhiên cài đặt Access ta nên hiệu chỉnh chút Ví dụ với hàm thành phần cmdAddNew_Click() (chính mục đăng ký) mơ tả sau: Tên Module BanDoc:: cmdAddNew_Click() Kiểu Module Event Procedure Kiểu trả Sub Tham số vào Không Tham số Không Thông báo lỗi Không Các bảng truy BanDoc cập Bảng bị thay đổi BanDoc Module gọi MsgBox, InputBox Mô tả Thêm bạn đọc Tuy nhiên bạn nên thực với số phương thức quan trọng để hiểu cách làm, thực tất tốn thời gian 5.6 VỀ VẤN ĐỀ CÀI ĐẶT OOD Mục tiêu môn học dừng lại bước phân tích thiết kế Tuy nhiên nêu bạn có điều kiện nên cài đặt thành chương trình, bạn hiểu rõ phần phân tích thiết kế Nếu bạn có cơng cụ lập trình HĐT mà bạn hiểu rõ, bạn nên dùng để cài đặt OOD Ví dụ mai học ngơn ngữ lập trình Java bạn thử cài đặt xem Còn khơng có ngơn ngữ lập trình bạn đừng mà nao núng Bạn dùng ngơn ngữ lập trình để cài đặt OOD, ví dụ Microsoft Access chẳng hạn 62 MỘT SỐ THUẬT NGỮ VÀ CÁCH VIẾT TẮT Viết tắt Nghĩa tiếng Anh Test case CASE COTS software DFD ERM FD IEEE MIS OOA OOD PDL P-spec RDM RFP RFT SA SPMP SPMP SQA group UML Software developer Computer aided software engineering Commercial-off-the-shelf software Shrink-wrapped software Click-wrapped software Data flow diagram Entity-relationship modeling Functional diagram Institute of Electrical and Electronic Engineers Management information system Object-oriented analysis Object-oriented design Program description language Process specification Rerational database model Requirement for proposal Requirement for tender Structured analysis Software project management plan Software project management plan Software quality assurance group Unified modeling laguage Nghĩa tiếng Việt Số liệu dùng để thử phần mềm, ví dụ input output mẫu Người xây dựng phần mềm Công nghệ phần mềm sử dụng trợ giúp máy tính Phần mềm đóng gói Biểu đồ dòng liệu Mơ hình thực thể-liên kết Biểu đồ phân cấp chức Hệ thông tin quản lý Phân tích hướng đối tượng Thíet kế hướng đối tượng Ngơn ngữ mơ tả chương trình (mã giả) Đặc tả chức Mơ hình sở liệu quan hệ u cầu hồ sơ mời thầu Phân tích có cấu trúc kế hoạch quản lý dự án phần mềm Kế hoạch quản lý dự án phần mềm Nhóm bảo đảm chất lượng phần mềm Ngơn ngữ mơ hình hóa thống Black-box testing: Khi ta kiểm thử đặc tả, ta xem chương trình hộp đen (che kín có bên hộp), nghĩa ta khơng quan tâm đến chương trình viết mà quan tâm xem làm Vì phép thử gọi phép thử hộp đen White-box testing: Khi ta kiểm thử lệnh (code), ta cần xem cấu trúc bên chương trình Như xem chương trình hộp hộp phải suốt để nhìn thấy Người ta gọi phép thử phép thử hộp trắng, để đối lại với hộp đen Có tác giả gọi phép thử hộp thủy tinh (glass-box testing) cho sát nghĩa Regression testing: Dùng liệu mẫu cũ để thử lại chức khơng liên quan đến phần chương trình vừa sửa đổi gọi phép thử lùi lại hay phép thử hồi quy 63 TÀI LIỆU THAM KHẢO E.M Benatan, Quản lý dự án phần mềm, cách tiếp cận cho người thực hành, người dịch: Nguyễn Quốc Toản, Đại học Quốc gia Hà nội, 1999 Huỳnh Văn Đức, Hồng Thiện Hải , Giáo trình nhập môn UML, Nhà xuất Lao Động Xã hội, 2003 Ngô Trung Việt, Nguyễn Kim Ánh , Nhập môn kỹ nghệ phần mềm, Nhà xuất Khoa học Kỹ thuật, 2002 Nguyễn Tuấn Huy (biên dịch), Quá trình phát triển phần mềm thống nhất, Nhà xuất Thống kê, 2003 Nguyễn Văn Ba, Phân tích thiết kế hệ thống thông tin, Nhà xuất Đại học Quốc gia Hà nội, 2005 Stephan R.Schach, Object-Oriented and Classical Software Engineering, McGraw-Hill, 2002 CÂU HỎI VÀ BÀI TẬP Chương Pha xác định yêu cầu Pha yêu cầu bao gồm hai giai đoạn: nắm bắt yêu cầu (requirements capture, requirements elicitation) phân tích yêu cầu (requirements analysis) Trong giai đoạn nắm bát yêu cầu người ta dùng số kỹ thuật như: vấn khách hàng, làm kịch (scenario), gửi bảng câu hỏi cho số thành viên công ty khách hàng, xem xét biểu mẫu khác mà khách hàng sử dụng ghi hình cảnh làm việc cơng ty khách hàng Bạn trình bày rõ kỹ thuật Sau giai đoạn nắm bắt yêu cầu, người ta có tập yêu cầu khách hàng Các yêu cầu phân chia làm hai loại: yêu cầu chức (functional reqquirements) yêu cầu phi chức (nonfunctional reqquirements) Bạn giải thích cho ví dụ hai loại yêu cầu Một điều quan trọng tài liệu báo cáo pha phải có tính theo dõi Đối với pha xác định u cầu điều có nghĩa gì? Người ta nói mẫu xem kỹ thuật phân tích yêu cầu xác Bạn nêu lập luận cho nhận định Một phần mềm có giao diện người-máy thân thiện với người sử dụng (user-friendly humancomputer interface), hay nói đơn giản phần mềm có tính thân thiện với người sử dụng, phần mềm dễ học cho người hiểu biết máy tính Một phần mềm có tính chất thường bao gồm số yếu tố Bạn nói rõ yếu tố gì? Vì nên xây dựng mẫu có tính thân thiện với người sử dụng? Có ý kiến cho mẫu mơ tả xác u cầu khách hàng, nên sử dụng mẫu làm tài liệu đặc tả phần quan trọng tài liệu đặc tả Tuy nhiên sử dụng mẫu làm tài liệu đặc tả có nhiều nhược điểm khó khắc phục Đó nhược điểm gì? Vì khơng nên sử dụng lại mẫu, tức sửa đổi phát triển mẫu để thành sản phẩm phần mềm chuyển giao? Có khái niệm yêu cầu hướng đối tượng không? 10 Hãy áp dụng kiến thức học để thực pha xác định yêu cầu cho vấn đề liệt kê phần tập thực hành (hoặc toán khác bạn lựa chọn) Chương Tổng quan UML phương pháp hướng đối tượng UML gì? UML có phải ngơn ngữ lập trình khơng? Nếu khơng phải có điểm giống ngơn ngữ lập trình? Hãy giải thích khái niệm mơ hình UML Khái niệm hướng nhìn UML có phải thành phần biểu diễn nhìn thấy biểu đồ không? Bạn hiểu thuật ngữ "các hướng nhìn phần mềm?" Hãy giải thích khái niệm "hướng nhìn theo trường hợp sử dụng" (use-case view) "hướng nhìn logic" (logical view) khác biệt chúng Hãy giải thích khái niệm biểu đồ, phần tử mơ hình hệ thống UML Use-case cách ký hiệu UML? Tác nhân (actor) cách ký hiệu UML? Hãy giải thích biểu đồ use-case nêu vài mục đích Hãy giải thích kết hợp (association) generalization actor, cách ký hiệu cho ví dụ minh họa 10 Hãy giải thích kết hợp generalization use-case, cách ký hiệu cho ví dụ minh họa PTTK HTTT với UML - Câu hỏi tập 11 Hãy giải thích ý nghĩa hình sau nói rõ loại kết hợp sử dụng: Gửi tiết kiệm Gửi không kỳ hạn Gửi ký hạn tháng 12 Hãy giải thích ý nghĩa hình sau nói rõ loại kết hợp sử dụng: Sinh viên Sinh viên khoa CNTT (relationship) include 13 Hãy giải thích quan hệ use-case, cách ký hiệu cho ví dụ minh họa Quan hệ có dùng cho tác nhân khơng? Vì sao? 14 Hãy giải thích ý nghĩa hình sau: Gửi tiết kiệm Ghi phiếu gửi tiền Nộp tiền nói rõ khác biệt hình 11 hình 14 15 Hãy giải thích ý nghĩa hình sau: Gửi tiết kiệm Trúng thưởng qua nêu khác biệt quan hệ 16 Điểm mở rộng (extension point) use-case gì?, dùng nào? Ý nghĩa hình sau gì? 17 Hãy so sánh khác biệt Giao hàng Bán hàng Các điểm mở rộng: Bán thiết bị generalization, tin học extend include thơng qua hình sau đây: Bán hàng Bán hàng Giao cửa hàng Mang đến tận nhà In hóa đơn Ký hợp đồng bảo hành Xuất hàng Nhập hàng từ nhà cung cấp Hết hàng 18 Bạn xác định use-case đoạn văn sau đặt tên cho chúng, sau xác định thêm mối liên quan: Khi có khách đến cửa hàng bán quần áo, người bán hàng tìm kiếm quần áo thích hợp với dáng người khách thuyết phục họ mua 19 Hãy trình bày vắn tắt cách xây dựng mơ hình use-case (tức tập hợp biểu đồ usecase) áp dụng để xây dựng biểu đồ use-case mức đơn giản cho toán quản lý bán hàng 20 Một lỗi thường gặp nhiều use-case đưa vào mô hình Bạn nêu ví dụ trường hợp khơng nên đưa vào mơ hình use-case 21 Hãy mơ tả cách thức cân chỉnh lại mơ hình use-case cách xuất phát từ mơ hình đơn giản ban đầu 66 PTTK HTTT với UML - Câu hỏi tập 22 Bản thân use-case có tên gọi cơng việc Để hiểu rõ công việc người ta phải bổ sung bên cạnh use-case phần mơ tả Có cách sử dụng để mô tả use-case? Bạn mô tả use-case "Đăng ký làm thẻ bạn đọc" thư viện theo hiểu biết bạn 23 Lớp gì? Biểu đồ lớp gì? Đối tượng gì? 24 Trong biểu đồ lớp, lớp đối tượng biểu diễn nào? 25 Giữa lớp có số kết hợp là: kết tập (aggregation), hợp thành (composition) kế thừa (generalization) Hãy giải thích xem hình sau ứng với loại kết hợp ý nghĩa chúng gì? a) Hành khách Chuyến bay Hành khách * b) Section Document Section * c) Thư ký Chuyến bay Document Nhân viên 26 Các biểu đồ lớp phân làm hai loại: biểu đồ lớp khái niệm (conceptual class diagram) biểu đồ lớp thiết kế (design class diagram) Hãy giải thích hai loại biểu đồ chúng sử dụng giai đoạn (pha nào) trình xây dựng phần mềm? 27 Việc xây dựng mơ hình lớp (tức xây dựng biểu đồ lớp) bắt đầu việc xác định lớp Có kỹ thuật để xác định lớp 28 Hãy trình bày kỹ thuật trích danh từ (noun extraction) để xác định lớp Hãy minh họa việc xác định lớp chương trình quản lý sinh viên đơn giản 29 Hãy giải thích biểu đồ lớp sau đây: Hang TaiKhoan HangMua n động HoaDon No 1 Co 30 Biểu đồ hoạt (activity diagram) mô tả chuyển tiếp hoạt động trạng thái trạng thái (hoặc hoạt động) xuất phát đến trạng thái (hoặc hoạt động) kết thúc Hãy giải thích khái niệm hoạt động (activity), trạng thái (state) chuyển tiếp (transition) ký hiệu biễu diễn chúng 31 Bạn viết kịch cho thao tác "đăng ký làm thẻ thư viện", sau vẽ biểu đồ trạng thái biểu diễn thao tác 32 Hãy giải thích ý nghĩa hình sau: (ví dụ chuyển đổi từ trạng thái sang hoạt động hay kiểu khác, chuyển đổi có biến cố hay khơng, sao?) u cầu trả tiền Chờ trả tiền Chờ trả tiền Tiền đến Quá trình trả tiền 33 Điểm định (decision point) biểu đồ hoạt động gì? Cho ví dụ minh họa 34 Có loại biểu đồ tương tác (interaction diagram) nào? Ý nghĩa chúng cách sử dụng 67 PTTK HTTT với UML - Câu hỏi tập 35 Biểu đồ sau loại biểu đồ gì?, mơ tả hoạt động q trình thực nào? :WordProcessor file:=open(nam e) :PrinterFile write(documen t) close() 36 Hãy so sánh hai biểu đồ sau đưa lập luận chứng tỏ hai mơ hình mơ tả dòng cơng việc Tên gọi loại biểu đồ gì? : : :Printer Print(file Compute PrinterServer ) r Print(file [Printer ) :Queue free] Print(file) [Printer busy] Store(file) : Compute r Print(file) : PrinterServer :Printer [Printer free] 1.1:Print(file) [Printer busy] 1.2: Store(file) :Queue Chương Pha phân tích hướng đối tượng Pha phân tích hướng đối tượng (object-oriented analysis, OOA) bao gồm ba bước: xây dựng mơ hình use-case, xây dựng mơ hình lớp xây dựng mơ hình động Bạn giải thích rõ cơng việc cần thực bước Hãy áp dụng kiến thức học để thực pha phân tích hướng đối tượng cho phần mềm quản lý thư viện (hoặc toán khác bạn lựa chọn) Chương Pha thiết kế Thiết kế phần mềm gồm hai công việc: thiết kế tổng thể, thiết kế chi tiết Hãy nêu tên gọi khác công việc giải thích cụ thể cơng việc phải làm gì? Thiết kế chi tiết thường độc lập với ngơn ngữ lập trình Tuy nhiên người quản lý 68 PTTK HTTT víi UML - C©u hái vµ bµi tËp định ngơn ngữ lập trình trước thực thiết kế chi tiết người ta thường dùng ngơn ngữ mơ tả chương trình (a program description language, PDL), hay gọi mã giả (pseudocode) để biểu diễn thiết kế chi tiết PDL thực chất lời dẫn nối với từ khóa ngơn ngữ lựa chọn Bạn nêu ví dụ sử dụng PDL Thiết kế hướng đối tượng bao gồm bước sau đây: thiết kế sở liệu, xây dựng biểu đồ tương tác cho scenario, xây dựng biểu đồ lớp chi tiết, thiết kế giao diện, tiến hành thiết kế chi tiết Bạn giải thích cơng việc làm bước Hãy áp dụng kiến thức học để thực pha phân tích thiết kế hướng đối tượng cho phần mềm quản lý sinh viên (hoặc toán khác bạn lựa chọn) Bài tập thực hành Nội dung thực hành thực pha: xác định yêu cầu, phân tích thiết kế hướng đối tượng phần mềm Cách làm việc: Theo nhóm cá nhân Trình bày sản phẩm: Các nhóm trình bày bước thực sản phẩm máy chiếu bảng Điểm cho theo chất lượng sản phẩm mức độ tham gia thành viên Đề tài tùy chọn, vấn đề sau: Quản lý sinh viên khoa CNTT Quản lý bán hàng cửa hàng siêu thị Quản lý thư viện Quản lý công văn quan nhỏ Quản lý đoàn khách du lịch Quản lý khách sạn Quản lý dịch vụ tư vấn nhà đất Quản lý dịch vụ phân phối báo chí Quản lý nhân sự, quản lý lương quan 10 Dịch vụ tiết kiệm 11 Dịch vụ rút tiền tự động ATM 12 Trang Web vấn đề đó, ví dụ trang web xem điểm, xem thời khóa biểu Ghi Khuyến khích cài đặt thành chương trình Bạn có sản phẩm phần mềm cộng điểm tùy theo chất lượng 69