Microsoft Word UML doc Chöông 1 GIÔÙI THIEÄU CAÙC CASE STUDY 1 1 Giôùi thieäu Trong quyeån saùch naøy coù söû duïng hai case study CarMatch ñeå minh hoaï vaø laøm ví duï thöïc haønh coøn VolBank daønh[.]
Chương GIỚI THIỆU CÁC CASE STUDY 1.1 Giới thiệu Trong sách có sử dụng hai case study: CarMatch để minh hoạ làm ví dụ thực hành VolBank dành cho ví dụ thực hành tập tự làm 1.2 CarMatch 1.2.1 Tổng quan CarMatch CarMatch công ty hội viên (franchise company) thành lập với chức khuyến khích người dùng chung xe Ở nhiều thành phố, giao thông ùn tắc đe doạ đến chất lượng sống gây ô nhiễm môi trường đáng kể, bao gồm việc thải khí CO2 vào bầu khí Nhiều quốc gia đồng ý thực hiệp ước quốc tế giảm bớt lượng khí thải Carbon nhằm ngăn chặn tình trạng trái đất nóng dần lên, CarMatch giải pháp cho tình trạng Ở số khu vực, phương tiện giao thông công cộng không sử dụng nhiều số lượng xe riêng ngày tăng, sở hạ tầng hệ thống giao thông công cộng không đáp ứng nhu cầu lại người không sử dụng xe riêng Việc lên kế hoạch chia sẻ xe để dùng chung giải pháp tạm thời giúp giảm bớt lượng lưu thông mà không cần phải đầu tư sở hạ tầng cho phương tiện giao thông công cộng CarMatch tìm kiếm giải pháp khuyến khích việc dùng chung xe đưa dịch vụ chia sẻ xe cho người sống làm việc gần Trong nhiều người làm việc chung dùng chung phương tiện, người làm việc gần lại khó tìm người thích hợp để chung xe Trong vài công ty lớn, làm việc nơi người ta Cấu trúc CarMatch gồm ba lớp: lớp hoạt động toàn cầu mang tính phi lợi nhuận, công ty điều hành trung tâm quốc gia lớp hoạt động địa phương hội viên CarMatch trung tâm cung cấp dịch vụ cho quyền tổ chức có nghóa vụ pháp lý làm giảm lượng lưu thông nước bang Nó quảng cáo dịch vụ đến với công chúng Những người tham gia phải trả khoảng lệ phí, gọi phí thành viên, số tiền hoàn lại CarMatch địa phương tìm người có nhu cầu chung với họ cung cấp phương tiện cho họ CarMatch địa phương thảo thoả thuận mẫu người tham gia để đảm bảo số tiền trao tay cho chi phí xăng coi thu nhập chịu thuế khuyên họ mua bảo hiểm đặc trưng cho việc dùng chung xe CarMatch địa phương đóng vai trò đại lý cho công ty bán hợp đồng bảo hiểm Nhân viên CarMatch địa phương học khoá huấn luyện toàn diện công tác tư vấn (vì họ phải giúp đỡ công ty quyền địa phương, tình trạng pháp lý quốc gia hay bang họï), yêu cầu bảo hiểm, cân nhắc an toàn cách điều hành hệ thống CarMatch Ở số quốc gia, ngành bảo hiểm yêu cầu nhân viên CarMatch phải đáp ứng qui định ngành CarMatch dự định thu lợi nhuận từ phí thành viên, phí tư vấn hoa hồng bán bảo hiểm CarMatch trung tâm lấy phần lợi nhuận, CarMatch địa phương giữ phần lại Khi hệ thống tính giá giao thông (road-price) dựa việc liên lạc sóng vô tuyến xe cộ hệ thống tiếp sóng ngày trở nên phổ biến, CarMatch địa phương bán cài đặt thiết bị, làm việc với quan chức thu phí cầu đường hệ thống tính giá giao thông để thương lượng chiết khấu cho thành viên sở cam kết giảm nhu cầu lưu thông 1.2.2 Hỗ trợ khách hàng CarMatch cần có hệ thống máy tính cho CarMatch địa phương, để có dịch vụ có hỗ trợ máy tính từ đầu Mỗi quốc gia phải có web-server Các web-server cung cấp cho CarMatch địa phương thông tin cập nhật thường xuyên dịch vụ môi giới bảo hiểm, cho phép thành viên đăng ký trực tuyến Thông tin thành viên sẽ tải xuống hệ thống CarMatch địa phương khu vực tương ứng Khi CarMatch địa phương thích hợp, CarMatch trung tâm cố gắng đáp ứng nhu cầu cho thành viên 1.2.3 Các yêu cầu CarMatch Các yêu cầu sau yêu cầu hệ thống mà CarMatch địa phương sử dụng (hệ thống trung tâm chủ đề trình phát triển độc lập khác) GIÁO TRÌNH NHẬP MÔN UML Phát triển hệ thống lưu trữ thông tin thành viên CarMatch 1.1 Lưu chi tiết khách hàng tiềm năng, dù họ cung cấp phương tiện tìm phương tiện để chung hai, lưu vị trí địa lý nhà họ địa nơi họ làm việc 1.2 Chuyển thông tin chi tiết khách hàng từ web-server họ đăng ký trực tuyến 1.3 Cung cấp giao diện cho hệ thống giao dịch thẻ tín dụng hệ thống chuyển ngân tự động ABTS (Automated Bank Transfer Sysytem) để xử lý việc trả hoàn phí thành viên Ghép thành viên với thành viên khác để dùng chung xe 2.1 Dựa vào vị trí địa lý thời gian lại để xếp người dùng chung xe 2.2 Lưu chi tiết xếp thành công Ghi lại việc bán bảo hiểm 3.1 Lưu chi tiết hợp đồng bán cho thành viên, xử lý gia hạn 3.2 Ghi nhận hoa hồng thu từ hợp đồng Lưu chi tiết thông tin khách hàng phạm vi hoạt động 4.1 Bảo trì danh sách địa mail khách hàng tiềm 4.2 Lưu chi tiết thông tin khách hàng cần tư vấn 4.3 Lưu lại hẹn gặp nhân viên (và tiếp xúc khác) khách hàng cần tư vấn Hệ thống phải có khả mở rộng để hợp thông tin phí cầu đường, hệ thống tính phí giao thông thiết bị bán cài đặt cho thành viên 1.3 VolBank 1.3.1 Tổng quan VolBank VolBank tổ chức phi lợi nhuận nhằm liên kết tình nguyện viên với cá nhân hay tổ chức cần giúp đỡ Mục tiêu nhằm tăng trách nhiệm công dân cộng đồng thông qua hoạt động tình nguyện địa phương Để thực việc cần phải lưu danh sách thông tin hoạt động tình nguyện có danh sách thông tin tình nguyện viên, để phân công hợp lý Phương châm VolBank làm cách để đưa người có kỹ đến với nhu cầu công việc phù hợp Vì tình nguyện viên cần phải đăng ký kỹ có, người nhận giúp đỡ nêu lên yêu cầu kỹ cần giúp đỡ Chẳng hạn như, Pete Duffield tình nguyện giúp việc quét sơn Chương 1: GIỚI THIỆU CÁC CASE STUDY trang trí Anh ta gửi đến tới khu vực địa phương sau trường học dành cho trẻ mười tuổi cần sơn lại Những đứa trẻ dành thời gian vui đùa nhà dưỡng lão địa phương Một người đó, bà Hernandez, dành thời gian cho muốn luyện tập đàm thoại tiếng Tây Ban Nha Pete Duffield tiếp xúc với bà ta để ôn lại tiếng Tây Ban Nha trước kỳ nghỉ Mexico Tên VolBank mang ý nghóa người ta gởi thời gian mà họ rỗi cho người khác, kỹ mà họ có để giúp đỡ người khác Các thông tin VolBank cung cấp rộng rãi phương tiện đài phát thanh, đài truyền hình, quảng cáo Internet VolBank đồng thời kết hợp với tổ chức tình nguyện địa phương để mở rộng hệ thống mạng lưới công tác tình nguyện tình nguyện viên Các tình nguyện viên đăng ký kỹ với VolBank cách gọi điện thoại đến người tổ chức đó, trực tiếp thông qua tổ chức tình nguyện địa phương điền thông tin chi tiết vào trang web Khi đăng ký họ gởi thời gian theo cách đăng ký Nếu người tình nguyện đăng ký qua tổ chức tình nguyện địa phương thông tin đưa tới người tổ chức để lưu lại tương tự trường hợp liên hệ trực tiếp điện thoại Các tổ chức tình nguyện cá nhân (bao gồm tình nguyện viên) đăng ký nhu cầu cần giúp đỡ cách liên hệ với người thuộc tổ chức tình nguyện Người cố xếp tình nguyện viên phù hợp với nhu cầu Thường xảy hai trường hợp: tình nguyện viên đáp ứng nhiều nhu cầu, nhu cầu có nhiều tình nguyện viên phù hợp Việc xếp thực dựa thông tin vị trí địa lý, sử dụng mã số vùng điện thoại mã bưu điện cách đối sánh kỹ Khi tình nguyện viên giao việc, họ thông báo chi tiết cần, thông tin họ chuyển đến tổ chức tình nguyện hay cá nhân yêu cầu giúp đỡ Có điều rõ ràng tình nguyện viên không tự nhiên chấp nhận Với số công việc, chẳng hạn làm việc với trẻ em, có thủ tục kiểm tra kỹ chí có tham gia cảnh sát tổ chức xã hội Đó trách nhiệm tổ chức đề nghị giúp đỡ 1.3.2 Hỗ trợ khách hàng VolBank cần hệ thống máy tính hỗ trợ việc liên kết tình nguyện viên với nhu cầu Hệ thống kết nối web-server VolBank GIÁO TRÌNH NHẬP MÔN UML Các tổ chức thành viên thông báo liên kết nhu cầu tình nguyện viên hoàn tất Việc thông báo thực email fax Tình nguyện viên thông báo thư 1.3.3 Các yêu cầu VolBank Các yêu cầu dành cho hệ thống quản lý việc đăng ký, thực việc liên kết thông báo cho người tham gia Web-server hệ thống độc lập Phát triển hệ thống quản lý việc đăng ký thành viên quỹ thời gian họ 1.1 Ghi nhận thông tin chi tiết tình nguyện viên, kể kỹ địa người 1.2 Ghi nhận thông tin quỹ thời gian mà tình nguyện viên đăng ký 1.3 Chuyển từ web-server thông tin chi tiết tình nguyện viên thời gian đăng ký họ Quản lý ghi nhu cầu cần tình nguyện giúp đỡ 2.1 Lưu chi tiết thành viên tổ chức tình nguyện 2.2 Lưu nhu cầu cần giúp đỡ tổ chức tình nguyện 2.3 Lưu nhu cầu cần giúp đỡ cá nhân Kết hợp tình nguyên viên với nhu cầu ghi nhận lại kết 3.1 Kết hợp tình nguyện viên với hoạt động tình nguyện thích hợp 3.2 Kết hợp hoạt động tình nguyện với tình nguyện viên thích hợp khu vực 3.3 Lưu kết hợp tình nguyện viên hoạt động tình nguyện 3.4 Thông báo cho tình nguyện viên biết kết hợp 3.5 Thông báo cho tổ chức tình nguyện biết kết hợp 3.6 Ghi nhận thành công kết hợp lập cam kết cho kết hợp đạt Lập báo cáo thống kê số lượng tình nguyện viên nhu cầu, tổng quỹ thời gian mà tình nguyện viên bỏ tổng thời gian cần giúp đỡ Chương CƠ BẢN VỀ UML 2.1 Giới thiệu Ngôn ngữ mô hình hợp UML (Unified Modeling Language) ngôn ngữ trực quan cung cấp cho nhà phân tích thiết kế hệ thống hướng đối tượng cách hình dung hệ thống phần mềm, mô hình hoá tổ chức nghiệp vụ sử dụng hệ thống phần mềm này; xây dựng chúng làm tài liệu chúng Công ty phần mềm Rational OMG (Object Management Group) đưa ba biểu đồ ký hiệu hướng đối tượng có ý nghóa, kết hợp với khía cạnh nhiều ký hiệu khác, tạo ngôn ngữ mô hình chuẩn nhằm biểu diễn cách thực hành tốt ngành công nghiệp phát triển phần mềm UML tiến triển chuẩn, trở thành chuẩn quốc tế tổ chức tiêu chuẩn quốc tế ISO (International Standard Organization) chấp nhận Chương giải thích lịch sử UML, mô tả trạng hướng phát triển tương lai Ngoài ra, chương giải thích cấu trúc UML cách làm tài liệu UML 2.2 Nguồn gốc UML Kỹ thuật phát triển phần mềm hướng đối tượng trải qua giai đoạn: Các ngôn ngữ lập trình hướng đối tượng phát triển bắt đầu sử dụng Các kỹ thuật phân tích thiết kế hướng đối tượng tạo nhằm giúp đỡ công việc mô hình hoá nghiệp vụ, phân tích yêu cầu thiết kế hệ thống phần mềm Những kỹ thuật ngày phát triển rộng rãi UML thiết kế nhằm kết hợp đặc điểm tốt số kỹ thuật ký hiệu phân tích thiết kế để tạo tiêu chuẩn công nghiệp 2.2.1 Các ngôn ngữ lập trình Simula-67 xem ngôn ngữ hướng đối tượng Simula 1, phát triển vào năm đầu thập niên 1960, GIÁO TRÌNH NHẬP MÔN UML ngôn ngữ dùng để mô biến cố rời rạc Một hệ thống mô sử dụng để phân tích tiên đoán hành vi hệ thống vật lý, chẳng hạn hệ thống giao thông, phản ứng hoá học hay dây chuyền lắp ráp Việc mô biến cố rời rạc mô hệ thống thực dạng trạng thái rời rạc nhằm đáp ứng biến cố xảy vào thời điểm cụ thể Đây khác biệt mô rời rạc mô liên tục (trạng thái tiến triển liên tục) Mô hình hoá giao lộ mô biến cố rời rạc: phương tiện giao thông đến đèn giao thông đổi trạng thái vào thời điểm xác định Một phản ứng hoá học thường mô mô liên tục: hoá chất phản ứng với liên tục tốc độ phản ứng phụ thuộc vào thay đổi yếu tố nhiệt độ áp suất Simula-67 Kristen Nygaard Ole-Johan Dahl thuộc đại học Oslo trung tâm máy tính Morwegian phát triển vào năm 1967 Nó xây dựng dựa Simula ngôn ngữ lập trình phổ thông Năm 1986, ngôn ngữ biết đến ngôn ngữ Simula gọi ngày Simula giới thiệu nhiều đặc tính ngôn ngữ lập trình hướng đối tượng, chẳng hạn lớp (class) thừa kế (inheritance) Ngôn ngữ lập trình hướng đối tượng tường minh Smalltalk, phát triển Alan Kay trường đại học Utah sau Adele Goldberg Daniel Ingalls Serox PARC (trung tâm nghiên cứu Palo Alto) vào năm 1970 Bản phát hành Smalltalk80 dùng phổ biến rộng rãi vào thập niên 1980 Smalltalk giới thiệu ý tưởng cách giao tiếp đối tượng qua cách truyền thông điệp thuộc tính đóng gói bên đối tượng Các thuộc tính truy cập từ đối tượng khác cách truyền thông điệp Sau Smalltalk, nhiều ngôn ngữ lập trình hướng đối tượng đời như: Objective C, C++, Eiffel CLOS (Common Lisp Object System) Kể từ phiên năm 1996, Java tạo quan tâm lớn phát triển hướng đối tượng Gần Microsoft đưa ngôn ngữ C# ( C-sharp) xem kết hợp tốt Java C++ Giữa Simula C#, nhiều ngôn ngữ trình hướng đối tượng phát triển phát triển tiếp tục phát triển, nhưng, với phát triển Internet, Java làm cho việc phát triển hướng đối tượng trở nên phổ biến 2.2.2 Phân tích thiết kế Sau Smalltalk xuất vài năm, sách phân tích thiết kế hướng đối tượng bắt đầu xuất Một số sách gắn liền với ngôn ngữ cụ thể (chẳng hạn Objective C C++), số lại có mục đích tổng Chương 2: CƠ BẢN VỀ UML quát Trong số đó, phải kể công trình Shaler & Melllor (1988) Coud & Yourdon (1990 & 1991) Phát triển sau Booch (1991), nhóm Rumbaugh, Blaha, Premerlani, Eddy & Lorencesen (1991), không lâu sau Jacobson, Christerson Jonsson & Overgaard (1992) Còn nhiều sách khác sách tác giả nói biết sử dụng hầu khắp Các tác giả khác dùng ký hiệu khác để biểu diễn lớp, đối tượng mối quan hệ chúng Thường họ lại dùng thành phần ký hiệu giống để biểu diễn cho thứ khác Ví dụ, Coad Yourdon dùng hình tam giác để biểu diễn cho quan hệ kết hợp whole-part (xem phần phụ lục), Rumbaugh cộng lại dùng hình tam giác để biểu diễn thừa kế Họ cung cấp phương pháp phân tích thiết kế, bao gồm các giai đoạn tiến hành, công việc phải làm đặc tả cần thiết Chúng định nghóa rõ ràng, nhiều hay Đầu thập kỷ 1990 đặc trưng phát triển đa dạng ký hiệu phương pháp, số tác giả gọi “chiến tranh phương pháp” (Method War) Từ 1989 đến 1994, ngôn ngữ mô hình từ mức chưa tới 10 ngôn ngữ phát triển 50 ngôn ngữ Khoảng thập niên 1990, tình hình thay đổi Các phương pháp ba tác giả chính, Rumbaugh Booch Jacobson, bật hẳn lên Rumbaugh sửa đổi công trình kỹ thuật mô hình hướng đối tượng OMT (Object Modelling Technique) thành OMT-2 Booch phát hành ấn thứ hai có tên Booch’93, phương pháp Jacobson biết đến tựa đề Công Nghệ Phần Mềm Hướng Đối Tượng OOSE (Object-Oriented Software Engineering) hay Objectory, tên công ty Jacobson 2.2.3 Sự xuất UML Cả ba phương pháp ba người bắt đầu trở nên tương họ kết hợp đặc tính tốt phương pháp khác Vào năm 1994, Rumbaugh Booch kết hợp làm việc chung với công ty phần mềm Rational để thống hai phương pháp họ Tháng 10 năm 1995, họ đưa phác thảo phương pháp hợp (Unified Method) phiên 0.8 Vào mùa thu năm 1995, Jacobson với công ty gia nhập vào Rational, ba bắt đầu phát triển UML qui trình phát triển phần mềm hợp USDP (Unified Software Development Process), phần lớn dựa phương pháp Objectory Vào tháng tháng 10 năm 1996, phiên 0.9 0.91 phát hành nhận phản hồi từ tổ chức quan tâm đến việc phát GIÁO TRÌNH NHẬP MÔN UML triển ngôn ngữ mô hình hướng đối tượng chuẩn Vào thời điểm OMG đưa Yêu Cầu Hợp Nhất RFP (Request for Proposal) cho ngôn ngữ mô hình hướng đối tượng chuẩn Rational nhận thấy có nhu cầu liên đới tiến trình hợp với hình thành mối liên kết thành viên UML với tổ chức IBM, HP, Microsoft Oracle – tổ chức sẵn sàng cung cấp tài nguyên cho phát triển xa UML phản hồi đến OMG Tháng năm 1997 thành viên UML số tổ chức khác đệ trình đề nghị đến OMG Sau họ đưa UML phiên 1.1 Vào tháng 11 năm 1997, UML phiên 1.1 nằm danh sách kỹ thuật chấp nhận OMG, OMG chịu trách nhiệm tương lai UML OMG thành lập Nhóm Xét Duyệt RTF (Revision Task Force) Cris Kobryn MCI Systemhouse phụ trách, RTF chịu trách nhiệm cải tiến UML – xử lý lỗi lập trình, điều chỉnh sai sót, giải mâu thuẫn khái niệm nhập nhằng Tháng năm 1998, RTF đưa phiên sửa đổi (phiên 1.2) tháng năm 1999, đưa phiên hoàn chỉnh (phiên 1.3) 2.3 UML ngày OMG thành lập RTF để phát triển UML Kế hoạch phát triển UML tương lai giải thích mục 2.5 Phiên 1.3 sưu liệu đặc tả UML (UML Specification – Object Management Group, 1999a) Nội dung bao gồm Chương Tóm tắt UML Chương Ngữ nghóa UML Chương Hướng dẫn ký hiệu UML Chương Sơ lược chuẩn UML Chương Định nghóa giao diện UML CORBA Chương Đặc tả UML XMI DTD Chương Đặc tả ngôn ngữ ràng buộc đối tượng Phụ lục A Các thành phần chuẩn UML Phụ lục B Chú thích thuật ngữ mô hình UML Bảng 2.1: Nội dung đặc tả UML Đặc tả UML tài liệu viết cho người dùng bình thường, viết cho đối tượng sau tham khảo: thành viên 10 Chương 2: CƠ BẢN VỀ UML OMG, tổ chức, công ty tạo công cụ CASE, tác giả sách người làm công tác đào tạo – nói chung người muốn tìm hiểu chi tiết UML Đặc biệt, chương chương viết cho người xây dựng cộng cụ CASE Kiến trúc môi giới yêu cầu đối tượng chung CORBA (Common Object Request Broker Architecture) dùng ngôn ngữ định nghóa giao diện IDL (Interface Definition Language) để xác định nội dung kho liệu phù hợp với việc khởi tạo, lưu trữ thao tác mô hình UML Công cụ đặc tả DTD (khai báo kiểu tài liệu – Document Type Declaration) XMI (bộ chuyển đổi siêu liệu XML – XML Metadata Interchange) dùng ngôn ngữ đánh dấu mở rộng XML (eXtensible Markup Language) cung cấp đặc tả cách thức mà liệu mô hình UML chuyển đổi ứng dụng Chương lập tài liệu cho hai phác thảo chuẩn UML (các cách áp dụng UML cho dự án phát triển khác nhau): cho qui trình phát triển phần mềm cho việc mô hình hoá nghiệp vụ 2.4 UML gì? UML ngôn ngữ trực quan dùng qui trình phát triển hệ thống phần mềm Nó ngôn ngữ đặc tả hình thức (formal specification language) Chúng ta cần ý đến thuật ngữ “ngôn ngữ” Ngôn ngữ ngôn ngữ giống với ngôn ngữ tự nhiên người hay ngôn ngữ lập trình Tuy nhiên có tập qui luật xác định cách sử dụng Các ngôn ngữ lập trình có tập phần tử tập qui luật cho phép tổ hợp phần tử lại với để tạo chương trình hợp lệ Các ngôn ngữ đặc tả hình thức giống UML có tập phần tử tập qui luật riêng Với UML, hầu hết phần tử đối tượng đồ hoạ đường thẳng, hình chữ nhật, hình oval, Chúng thường đặt nhãn để cung cấp thêm thông tin Tuy nhiên phần tử đồ hoạ UML biểu diễn phần cần mô hình dạng hình ảnh Ta tạo mô hình UML dạng liệu (giống CORBA XMI DTD làm) Tuy nhiên cách biểu diễn hình ảnh giúp mô hình dễ hiểu trực quan Các qui luật UML mô tả đặc tả UML Có loại qui luật: cú pháp trừu tượng, luật well-formedness (luật hình thức) ngữ nghóa Trong cú pháp trừu tượng biểu diễn biểu đồ ngôn ngữ tự nhiên, luật well-formedness nằm ngôn ngữ ràng buộc đối tượng OCL (Object Constraint Language) Luật biểu diễn biểu đồ 438 sưu liệu, 385 encapsulation, 84 event, 280 extension mechanism, 362 faỗade maóu, 389 flow of events analysis, 205 flow relationship, 195 fork, 261 genaralization, 97 actor, 39 discriminator, 109 hậu duệ, 99 hướng dẫn lập mô hình, 100 kết hợp, 112 ký hiệu, 97 lớp cha, 99 lớp con, 99 lớp trừu tượng, 110 ràng buộc, 106 tiền bối, 99 use case, 38 guard-condition, 193, 228 instance, 58, 361 instance name cú pháp, 185, 219 interaction, 179 interface, 66 thành phần, 327 internal worker, 203 invariant OCL, 302 iteration, 223 iteration-clause, 193 join, 261 keyword, 358 message, 189 cú pháp, 190 không hình thức, 180 metamodel, 11 model, 19 model management, 15 multiobject, 195 multiplicity kết hợp, 72 multipliciy thuộc tính, 67 name, 357 namespace, 62 n-ary association, 131 node, 329 CHỈ MỤC note, 359 object, 58