Giáo trình: Ngôn ngữ mô hình hoá thống nhất UML pot

175 949 5
Giáo trình: Ngôn ngữ mô hình hoá thống nhất UML pot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Ngơn ngữ mơ hình hố thống UML -1- LỜI NĨI ĐẦU Nhiệm vụ cơng nghệ thơng tin nói chung, cơng nghệ phần mềm nói riêng nghiên cứu mơ hình, phương pháp cơng cụ để tạo hệ thống phần mềm chất lượng cao nhằm đáp ứng nhu cầu thường xuyên thay đổi, ngày phức tạp thực tế Nhiều hệ thống phần mềm xây dựng theo cách tiếp cận truyền thống tỏ lạc hậu, không đáp ứng yêu cầu người sử dụng Cách tiếp cận hướng đối tượng giúp có công cụ, phương pháp mới, phù hợp để giải vấn đề nêu Cách tiếp cận phù hợp với cách quan sát quan niệm giới xung quanh tạo công cụ mới, hữu hiệu để phát triển hệ thống có tính mở, dễ thay đổi theo yêu cầu người sử dụng, đáp ứng tiêu chuẩn phần mềm chất lượng cao theo yêu cầu công nghệ thông tin đại Giáo trình trình bày cách sử dụng ngơn ngữ mơ hình hố thống UML (Unified Modeling Language) để phân tích thiết kế hệ thống theo cách tiếp cận hướng đối tượng Cách tiếp cận hướng đối tượng đặt trọng tâm vào việc xây dựng lý thuyết cho hệ thống tổng qt mơ hình khái niệm sở Hệ thống xem tập thực thể tác động qua lại trao đổi với thông điệp để thực nhiệm vụ đặt Các khái niệm mơ hình hệ thống hướng đối tượng bước thực phân tích, thiết kế hướng đối tượng mơ tả, hướng dẫn thực thông qua ngôn ngữ chuẩn UML phần mềm cơng cụ hỗ trợ mơ hình hố Rational Rose Giáo trình biên soạn theo yêu cầu giảng dạy, học tập mơn học “Phân tích, thiết kế hệ thống” ngành Công nghệ thông tin dựa vào kinh nghiệm giảng dạy môn học qua nhiều năm tác giả khoá đào tạo cao học, đại học Đại học Khoa học Huế, Đại học Quốc gia Hà Nội, Đại học Bách khoa Hà Nội, Đại học Đà Nẵng, Đại học Thái Nguyên, v.v Giáo trình trình bày tám chương Chương mở đầu giới thiệu khái niệm sở mơ hình hố hệ thống hai cách tiếp cận để phát triển hệ thống phần mềm hướng thủ tục (chức năng) hướng đối tượng Chương II giới thiệu ngơn ngữ mơ hình hố thống UML vai trị q trình phát triển phần mềm Vấn đề phân tích yêu cầu hệ thống cách xây dựng biểu đồ ca sử dụng nêu chương III Chương IV trình bày khái niệm lớp đối tượng mối quan hệ chúng khơng gian tốn Biểu đồ lớp cho phép biểu diễn tất khái niệm cách trực quan thơng qua mơ hình khái niệm biểu đồ lớp, hiểu rõ hệ thống cần phát triển Những biểu đồ tương tác thể hành vi ứng xử hệ thống giới thiệu chương V Dựa vào kết phân tích chương trước, hai chương nêu cách thực để thiết kế biểu đồ cộng tác cho nhiệm vụ, ca sử dụng hệ thống từ có thiết kế lớp, biểu đồ lớp chi tiết thực -2- xác nhiệm vụ giao Vấn đề quan trọng lựa chọn kiến trúc cho hệ thống khả ánh xạ kết thiết kế sang mã chương trình ngơn ngữ lập trình hướng đối tượng C++ đề cập chương VII Chương cuối trình bày số vấn đề cần lưu ý thiết kế CSDL HĐT, chủ yếu giới thiệu việc ứng dụng ObjectStore cài đặt ứng dụng CSDL Bài toán “Hệ thống quản lý bán hàng” chọn làm ví dụ minh hoạ để phân tích, thiết kế hệ thống phần mềm theo cách tiếp cận hướng đối tượng xuyên suốt giáo trình Tác giả xin chân thành cám ơn bạn đồng nghiệp Viện CNTT, bạn Khoa CNTT, Đại học Hue, bạn Khoa Công nghệ, Đại học Quốc gia Hà Nội đóng góp q báu, hỗ trợ thiết thực động viên chân thành để hồn thành giáo trình Mặc dù cố gắng giáo trình khơng tránh khỏi sai sót Chúng tơi mong nhận ý kiến góp ý thầy cô, nhận xét sinh viên bạn đọc để hiệu chỉnh thành sách hoàn thiện Hà Nội 2004 Các tác giả -3- CHƯƠNG I PHẦN MỀM VÀ MƠ HÌNH HỐ HỆ THỐNG Chương I trình bày vấn đề sở về:  Các khái niệm đặc trưng hệ thống phần mềm,  Vai trị mơ hình hố hệ thống,  Các phương pháp phân tích thiết kế hệ thống 1.1 Giới thiệu hệ thống phần mềm Hệ thống phần mềm hay gọi tắt hệ thống, tổ hợp phần cứng, phần mềm có quan hệ qua lại với nhau, hoạt động hướng tới mục tiêu chung thông qua việc nhận liệu đầu vào (Input) sản sinh kết đầu (Output) thường dạng thông tin khác nhờ q trình xử lý, biến đổi có tổ chức Một cách hình thức định nghĩa phần mềm [3] bao gồm thành phần sau: Hệ thống lệnh (chương trình) thực tạo hoạt động cho kết theo yêu cầu, Các cấu trúc liệu làm cho chương trình thực thao tác, xử lý cho thông tin cần thiết, Các tài liệu mô tả thao tác cách sử dụng chương trình Có nhiều định nghĩa khác hệ thống thông tin ([3], [4], [6]) Để hiểu chất hệ thống tốt phải xem xét đặc trưng chúng Hệ thống thông tin giống hệ thống khác có đặc trưng sau: Tính thể hố thể thơng qua:  Phạm vi qui mô hệ thống xác định thể thống không thay đổi điều kiện định  Tạo đặc tính chung để thực nhiệm vụ hay nhằm đạt mục tiêu chung mà phận riêng lẻ khơng thể thực Tính tổ chức có thứ bậc:  Mọi hệ thống ln hệ thống hệ thống lớn mơi trường lại bao gồm hệ thống (các thành phần) nhỏ -4-  Giữa thành phần hệ thống có xếp theo quan hệ thứ bậc hay trình tự định  Tính có cấu trúc: Chính cấu trúc hệ thống định chế vận hành hệ thống mục tiêu mà cần đạt Cấu trúc hệ thống thể bởi:  Các phần tử xếp theo trật tự cấu thành hệ thống  Mối quan hệ thành phần liên quan chủ yếu đến loại hình, số lượng, chiều, cường độ, v.v Những hệ thống có cấu trúc chặt thường gọi hệ thống có cấu trúc Cấu trúc hệ thống quan trọng, định tính chất hệ thống Ví dụ: Kim cương than đá cấu tạo từ phân tử các-bon, khác cấu trúc nên: kim cương vô rắn chắc, cịn tham đá khơng có tính chất Sự thay đổi cấu trúc tạo đặc tính (sức trồi mới, hay cịn gọi đột biến) hệ thống vượt ngưỡng dẫn tới việc phá vỡ hệ thống cũ Ví dụ: cơng nghệ biến đổi gen chủ yếu làm thay đổi cấu trúc tế bào sinh học Tính biến đổi theo thời gian không gian  Các hệ thống phải thay đổi cho phù hợp với điều kiện thực tế theo thời gian không gian, nghĩa muốn tồn phát triển phải biến đổi cho phù hợp với môi trường xung quanh theo qui luật tiến hoá tự nhiên (Darwin) Sự khác chủ yếu tốc độ khả nhận biết thay đổi  Mọi thay đổi ln có mối liên hệ ngược (feedback) hệ thống chịu tác động qui luật “nhân - quả” Hệ thống đánh giá theo nhiều tiêu chí khác ([3], [6], [12]) chưa có hệ thống tiêu chí chuẩn để đánh giá cho sản phẩm phần mềm Ở quan tâm đến số tính chất quan trọng sản phẩm phần mềm Một sản phẩm cơng nghệ phần mềm nay, ngồi tính chất chung hệ thống nêu phải có tính chất sau:  Tính tiện dụng: sản phẩm phải dễ sử dụng tiện lợi cho người dùng, hỗ trợ để thực công việc tốt Muốn đạt mục đích phần mềm phải có giao diện thân thiện, phù hợp với người sử dụng có đầy đủ tài liệu mơ tả, có hỗ trợ kịp thời  Khả bảo hành trì hoạt động: Hệ thống phải có khả cập nhật, dễ thay đổi, có khả mở rộng để thực yêu cầu thay đổi khách hàng  Tính tin cậy: Tính tin cậy phần mềm khả thực nhiệm thiết kế khả đảm bảo an toàn, an ninh liệu Hệ thống phải thực bình thường có kiện bất thường xảy -5-  Tính hiệu quả: Phần mềm khơng gây lãng phí tài nguyên nhớ, xử lý, thiết bị ngoại vi, v.v Hệ thống phân loại theo nhiều quan điểm khác  Theo nguyên nhân xuất hiện: hệ thống tự nhiên, sẵn có tự nhiên hệ thống nhân tạo, người tạo  Theo quan hệ với mơi trường: hệ đóng, trao đổi với mơi trường xung quanh hệ mở, có trao đổi thích ứng với kiện xung quanh  Theo qui mơ: lớn, trung bình nhỏ  Theo thay đổi trạng thái không gian, thời gian: hệ động hệ tĩnh, v.v Người ta phân loại hệ thống phần mềm theo đặc tính chung chúng Hệ thống thơng tin: hệ thống lưu trữ, tìm kiếm, biến đổi biểu diễn thông tin cho người sử dụng Khi khối lượng liệu lớn, phức tạp hệ thống thường tổ chức thành hệ CSDL theo mơ hình quan hệ hay hướng đối tượng Các hệ thống kỹ thuật: hệ thống xử lý điều khiển thiết bị kỹ thuật hệ viễn thông, hệ thống qn sự, q trình cơng nghiệp, v.v Đó thường hệ thống thời gian thực Các hệ thống nhúng thời gian thực: thực thiết bị cứng đơn giản nhúng vào thiết bị khác như: mobile phone, hệ thống hướng dẫn lái xe ô tô, hệ thống điều khiển dụng cụ dân dụng, v.v Các hệ thống phân tán: hệ thống phân tán nhiều máy liệu chuyển dễ dàng từ máy sang máy khác Phần mềm hệ thống: Tạo sở (kiến trúc) cho phần mềm khác sử dụng như: hệ điều hành, CSDL, giao diện phần mềm ứng dụng API (Application Programming Interface), v.v Các hệ thống nghiệp vụ: Mơ tả mục đích, tài ngun, luật, chiến lược, sách lược hoạt động, kinh doanh công việc thời nghiệp vụ Khi xây dựng hệ thống cần xác định xem thuộc loại hệ thống mục tiêu nghiên cứu hệ thống để:  Hiểu rõ chúng, hệ thống lớn, phức tạp, để mơ hình chúng từ xây dựng hệ thống phần mềm tốt  Có thể tác động lên hệ thống cách có hiệu  Hồn thiện hay phát triển hệ thống tốt nhằm đáp ứng yêu cầu khác hàng Để xem xét phát triển hệ thống tin học, có hai khía cạnh cần đề cập:  Các phương pháp để nhận thức diễn tả hệ thống, cịn gọi mơ hình  Các bước nối tiếp thời kỳ phát triển hệ thống, gọi chu kỳ phát triển hệ thống -6- 1.2 Mơ hình hố hệ thống Các bước phát triển hệ thống tìm hiểu nhu cầu, phân tích thiết kế hệ thống có khác nhiệm vụ, mục tiêu, song chúng có chung đặc điểm chung: phải đối đầu với phức tạp trình nhận thức, diễn tả phức tạp thơng qua mơ hình Nói cách khác, để điều khiển hệ thống hay phát triển hệ thống đáp ứng u cầu, mục đích đặt phải thực mơ hình hố hệ thống Thơng qua mơ hình giới hạn vấn đề nghiên cứu cách tập trung vào khía cạnh phạm vi khơng gian thời gian định Đó ngun lý chia để trị: cơng vào vấn đề khó cách chia thành dãy vấn đề nhỏ mà ta giải Như Pascal khẳng: “Khơng thể hiểu tồn mà không hiểu phận hiểu phận mà khơng hiểu tổng thể” Mơ hình dạng trừu tượng hoá hệ thống thực toán mà xét, diễn đạt cách hình thức dễ hiểu văn bản, biểu đồ, đồ thị, cơng thức hay phương trình tốn học, v.v Mục đích mơ hình hố: Mơ hình giúp ta hiểu thực trừu tượng, tổng quát hoá khái niệm sở để giảm thiểu độ phức tạp hệ thống Qua mơ hình biết hệ thống gồm gì? chúng hoạt động nào? Jean Piaget [5] nói: “Hiểu tức mơ hình hố” Do vậy, q trình phát triển phần mềm chẳng qua trình nhận thức mơ tả lại tả hệ thống Đó q trình thiết lập, sử dụng biến đổi mơ hình Vậy, có mơ hình giúp ta làm sáng tỏ vấn đề phức tạp cho ta nhìn thấu đáo vấn đề cần giải Mơ hình giúp quan sát hệ thống vốn có thực tế phải có ta mong muốn Muốn hiểu phát triển hệ thống phần mềm theo yêu cầu thực tế ta phải quan sát theo nhiều góc nhìn khác nhau: theo chức sử dụng, theo thành phần logic, theo phương diện triển khai, v.v Mơ hình cho phép ta đặc tả cấu trúc hành vi hệ thống: + Đảm bảo hệ thống đạt mục đích xác định trước Mọi mơ hình đơn giản hoá giới thực, phải đảm bảo đơn giản khơng loại bỏ những yếu tố quan trọng + Kiểm tra qui định cú pháp, ngữ nghĩa tính chặt chẽ đầy đủ mơ hình, khẳng định tính đắn thiết kế, phù hợp với yêu cầu khách hàng Nghĩa là, mơ hình hố q trình hồn thiện tiến hố liên tục Mơ hình hố nhằm tạo khuôn mẫu (template) hướng dẫn cách xây dựng hệ thống; cho phép thử nghiệm, mô thực hiện, hồn thiện theo mơ hình Mơ hình sở để trao đổi, ghi lại định thực nhóm tham gia dự án phát triển phần mềm Mọi quan sát, hiểu biết -7- (kết phân tích) phải ghi lại chi tiết để phục vụ cho trình phát triển hệ thống Để tìm hiểu giới vô phức tạp, khoa học thực nghiệm phải vận dụng nguyên lý bản, trừu tượng hố (Absstraction) Trừu tượng hố nguyên lý nhận thức, đòi hỏi phải bỏ qua sắc thái (của chủ điểm) không liên quan tới chủ định thời, để tập trung hoàn tồn vào sắc thái liên quan tới chủ định (từ điểm Oxford) Nhìn chung khơng có mơ hình đầy đủ Mỗi hệ thống thực tế tiếp cận thơng qua hay số mơ hình khác Q trình mơ hình hố hệ thống phần mềm thường thực theo hai cấp: + Mơ hình logic: mơ tả thành phần mối quan hệ chúng để tổ chức thực hiện, biện pháp cài đặt Mơ hình logic trả lời câu hỏi “Là gì?” bỏ qua câu hỏi “như nào?”, + Mơ hình vật lý: xác định kiến trúc thành phần tổng thể hệ thống Trả lời câu hỏi “Như nào?”, quan tâm tới biện pháp, cơng cụ, kế hoạch thực Tóm lại, mơ hình hố hệ thống phải thực theo bốn hướng: Kiến trúc (các thành phần) vật lý Các chức năng, nhiệm vụ trình xử lý nhiệm vụ hệ thống Cấu trúc tĩnh (dữ liệu, thông tin lưu trữ, xử lý yếu tố tạo nên hệ thống) Cách ứng xử (hành vi) Các phản ứng tức thời, tiến hoá thời gian dài Hình 1-1 Các hướng mơ hình hố Hướng điểm xuất phát kéo theo phương pháp cần lựa chọn để phát triển phần mềm Nếu ta bên trái, nghĩa tập trung vào chức để phân tích thực phát triển phần mềm theo cách tiếp cận hướng chức Ngược lại, bên phải, nghĩa dựa vào liệu sử dụng phương pháp hướng đối tượng Có bốn yếu tố quan trọng ảnh hưởng tới hiệu dự án phát triển phần mềm: Nhân tố ảnh hưởng Sản phẩm phần mềm (bài tốn ứng dụng) Máy tính (cơng nghệ) Con người Thuộc tính Mức độ tin cậy, xác phần mềm yêu cầu Cỡ CSDL, số lượng liệu Độ phức tạp sản phẩm phần mềm Những ràng buộc thời gian thực Những ràng buộc nhớ Tần xuất thay đổi hệ điều hành và/hoặc phần cứng Môi trường phát triển chương trình Khả nhà phân tích, thiết kế Kinh nghiệm làm việc với hệ tương tự Khả lập trình viên Kinh nghiệm làm việc với hệ điều hành và/hoặc phần cứng Mức độ thơng thạo ngơn ngữ lập trình lựa chọn -8- Qui trình Sử dụng phương pháp để phát triển phần mềm Sử dụng công cụ phát triển phần mềm Lịch biểu phát triển phần mềm Vấn đề quan trọng công nghệ phần mềm cần phải có cơng cụ hỗ trợ để thực mơ hình hố trực quan theo chuẩn dễ hiểu giúp cho việc trao đổi người phát triển phần mềm hiệu dễ dàng Các nhà tin học cố gắng để phát triển cơng cụ thực mơ hình hố trực quan Từ khái niệm, ký pháp quen thuộc Booch, Ericsson, OOSE/Objectory (Jacobson), OMT (Rumbaugh) người ta xây dựng ngơn ngữ mơ hình thống UML nhiều người chấp nhận sử dụng ngôn ngữ chuẩn phân tích thiết kế hệ thống phần mềm Hầu hết hãng sản xuất phần mềm lớn như: Microsoft, IBM, HP, Oracle, v.v… sử dụng UML chuẩn công nghiệp Trong tài liệu sử dụng UML để phân tích, thiết kế hệ thống Chi tiết UML cách sử dụng để phân tích thiết kế hệ thống trình bày chi tiết phần sau 1.3 Các cách tiếp cận phát triển phần mềm Để thực dự án phát triển phần mềm vấn đề quan trọng phải chọn cho cách thực thích hợp dựa yếu tố nêu Có hai cách tiếp cận để phát triển phần mềm: cách tiếp hướng chức cách tiếp cận hướng đối tượng 1.3.1 Cách tiếp cận hướng chức Phần lớn chương trình viết ngơn ngữ lập trình C, hay Pascal từ trước đến thực theo cách tiếp cận hướng chức hay gọi cách tiếp cận hướng thủ tục Cách tiếp cận có đặc trưng sau: Dựa vào chức năng, nhiệm vụ Khi khảo sát, phân tích hệ thống thường tập trung vào nhiệm vụ mà cần thực Chúng ta tập trung trước hết nghiên cứu yêu cầu tốn để xác định chức hệ thống Ví dụ cần xây dựng “hệ thống quản lý thư viện” trước hết thường nghiên cứu, khảo sát trao đổi vấn xem người thủ thư, bạn đọc cần phải thực cơng việc để phục vụ bạn đọc quản lý tốt tài liệu Qua nghiên cứu “hệ thống quản lý thư viện”, xác định nhiệm vụ hệ thống như: quản lý bạn đọc, cho mượn sách, nhận trả sách, thông báo nhắc trả sách, v.v Như vậy, nghiên cứu để hiểu rõ toán xác định yêu cầu hệ thống chức năng, nhiệm vụ hệ thống gần khơng thay đổi suốt q trình phát triển ngoại trừ cần phải khảo sát lại tốn Dựa vào chức (thuật tốn) liệu phụ biến đổi theo chức Do đó, hệ thống phần mềm xem tập chức năng, nhiệm vụ cần tổ chức thực thi Phân rã chức làm mịn dần theo cách từ xuống (Top/Down) Khả người có giới hạn khảo sát, nghiên cứu để hiểu thực thi -9- mà hệ thống thực tế đòi hỏi Để thống trị (quản lý được) độ phức tạp vấn đề phức tạp thực tế thường phải sử dụng nguyên lý chia để trị, nghĩa phân tách nhỏ chức thành chức đơn giản theo cách từ xuống Quá trình lặp lại thu đơn thể chức tương đối đơn giản, hiểu thực cài đặt chúng mà không làm tăng thêm độ phức tạp để liên kết chúng hệ thống Độ phức tạp liên kết thành phần chức hệ thống thường tỉ lệ nghịch với độ phức tạp đơn thể Vì vấn đề đặt có cách để biết trình phân tách đơn thể chức hay cịn gọi q trình làm mịn dần kết thúc Thơng thường q trình thực phân rã chức hệ thống phụ thuộc nhiều vào độ phức hợp toán ứng dụng vào trình độ người tham gia phát triển phần mềm Một hệ thống phân tích dựa chức trình chia thành hệ thống tạo cấu trúc phân cấp chức Ví dụ, hệ thống quản lý thư viện phân chia từ xuống sau: Hệ thống quản lý thư viện Quản lý bạn đọc Cho mượn tài liệu Nhận trả tài liệu Nhắc trả tài liệu Hình 1-2 Sơ đồ chức Hệ thống quản lý thư viện Chúng ta khẳng định chức nhiều hệ thống thơng tin quản lý tổ chức thành sơ đồ chức theo cấu trúc phân cấp có thứ bậc Các đơn thể chức trao đổi với cách truyền tham số hay sử dụng liệu chung Một hệ thống phần mềm phải xem thể thống nhất, đơn thể chức phải có quan hệ trao đổi thống tin, liệu với Trong chương trình gồm nhiều hàm (thực nhiều chức khác nhau) muốn trao đổi liệu với thiết phải sử dụng liệu liệu chung liên kết với cách truyền tham biến Mỗi đơn thể chức thao tác, xử lý biến liệu cục mà cịn phải sử dụng biến chung, thường biến toàn cục Dữ liệu chung Dữ liệu chung Chức Chức Dữ liệu riêng Dữ liệu riêng Hình 1-3 Mối quan hệ chức hệ thống - 10 - 8.3 Thiết kế CSDL HĐT Trong phần nghiên cứu phương pháp thiết kế sơ đồ CSDL HĐT Đây xem hướng dẫn để thiết kế sơ đồ CSDL ứng dụng Quá trình thiết kế CSDL thực theo ba bước: Thiết kế mơ hình (sơ đồ) khái niệm, Thiết kế sơ đồ chuẩn, Cài đặt CSDL ứng dụng Thiết kế sơ đồ khái niệm UML Chuẩn hoá sơ đồ ODL Cài đặt ứng dụng OODBMS Hình 8-1 Quá trình thiết kế sơ đồ CSDL HĐT Một đặc tính quan trọng CSDL HĐT đối tượng lưu lại sau chương trình kết thúc Những đối tượng tự động lưu vào CSDL gọi đối tượng bền vững, đối tượng không lưu lại gọi đối tượng tạm thời Đối tượng A CSDL HĐT Đối tượng B Đối tượng C Hình 8-2 Lưu trữ đối tượng bền vững vào CSDL Ở hình trên, đối tượng A, C bền vững B tạm thời Việc đọc liệu CSDL HĐT thực sau Các đối tượng CSDL HĐT lưu trữ có mối quan hệ với thơng qua định danh ID Một đối tượng tham chiếu tới nhiều ID đối tượng, nghĩa mối quan hệ đối tượng có dạng tổng quát n:m Mối quan hệ tham chiếu đối tượng hệ QT CSDL HĐT thiết lập Sau xét trình thiết kế CSDL cho hệ thống bán hàng - 161 - 8.3.1 Thiết kế sơ đồ khái niệm Mơ hình khái niệm biểu đồ lớp cho hệ thống HBH thiết kế chương VII (hình 8-3) 8.3.2 Thiết kế sơ đồ chuẩn – sơ đồ CSDL Bước thực việc chuyển đổi từ mơ hình khái niệm (biểu đồ lớp UML) sang sơ đồ quản lý liệu đối tượng Như khẳng định, sơ đồ CSDL lưu trữ đối tượng bền vững CuaHang 1 diaChi: Address tenGoi: String Chứa Sử-dụng addSale() maSanPham: UPC giaBan: Number moTa: Text DanhMucMatHang Sử-dụng Có Được-mơ-tả-bởi specification() loadProdSpecs() MoTaMatHang * DongBanHang soLuong: Int PhienBanHang HBH hangTruong: String Ghi-Nhận enterItems() endSale() makePayment() Quản-lý * subtotal() ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() * gồm có * 1 Được-trả-bởi ThanhToan tongsoTien: Number ThanhToanTM ThanhToanThe Trả-bằng * TheCredit ThanhToanCheck Trả-bằng 1 TheCheck Hình 8-3 Mơ hình khái niệm - biểu đồ lớp hệ thống bán hàng - 162 - Chuyển đổi kiểu đối tượng Mỗi lớp bền vững UML phải chuyển đổi sang lớp ODL (Object Definition Language) thể hành vi trừu tượng lẫn trạng thái trừu tượng, hình 8-3 Chúng ta xét lớp điển hình, lớp CuaHang để chuyển thuộc tính lớp thiết kế tương ứng sang thuộc tính lớp ODL Class CuaHang { attribute String(30) tenGoi; attribute struct diaChi{ CuaHang char(3) soPho, char(20) tenPho, diaChi: Address tenGoi: String char(15) tinhThanh}; void Nguoi(); // Constructor void ~Nguoi(); addSale() // Destructor void addSale(){…} }; Hình 8-3 Định nghĩa lớp ODL Những thuộc tính phức hợp diaChi chuyển thành kiểu struct Lưu ý: CSDL có ràng buộc tương với ràng buộc UML, như: UNIQUE, NOT NULL, CHECK, ASSERTION, TRIGGER SQL Chuyển đổi quan hệ kết hợp Quan hệ kết hợp nhị nguyên chuyển sang mối quan hệ liên kết relationship ODL Chúng ta xét mối quan hệ kết hợp lớp hình 8-4 HBH hangTruong: String enterItems() endSale() makePayment() PhienBanHang banHang * ghiNhan ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() Class HBH { attribute String(25) hangTruong; attribute String(15) tenTruong; relationship PhienBanHang ghiNhan inverse banHang::PhienBanHang; void HBH(); - 163 - void ~HBH(); void enterItems(){…} void endSale(){…} }; Class PhienBanHang { attribute Date ngayBan; attribute Time gioBan; relationship Set banHang inverse ghiNhan::HBH; void PhienBanHang(); void ~PhienBanHang(); Boolean becomeComplete(){…} void makeLineItem() makePayment(){…} Number total(){…} }; Hình 8-4 Chuyển đổi quan hệ kết hợp Lưu ý: đối tượng kết hợp với nhiều đối tượng lớp khác mối quan hệ được cài đặt kiểu tuyển tập: Set List, Bag, Array, v.v Trong biểu đồ lớp hình 8-4, HBH có quan hệ kết hợp * (nhiều) với PhienBanHang , cài đặt thành Set ODL Ngồi ra, tên vai trị đầu quan hệ tên xác định nút đường duyệt mối quan hệ lớp ODMG hỗ trợ để định nghĩa mối quan hệ kết hợp hai chiều, song quan hệ chiều hiệu Trong hệ QTCSDL, mối quan hệ cài đặt trỏ Nếu quan hệ kết hợp có thuộc tính có hai khả năng: Nếu bội số quan hệ nhiều-nhiều, chuyển quan hệ kết hợp thành lớp mới, định nghĩa thuộc tính hai quan hệ hai lớp Nếu bội số quan hệ một- nhiều, định nghĩa thuộc tính bên lớp kết hợp đầu Ví dụ, lớp MonHoc tự kết hợp với định nghĩa ODL sau: môn CN * MonHoc tenMH gioLT gioTH có mơn CN Class MonHoc { attribute String(20) tenMH; attribute short gioLT; attribute short gioTH; relationship Set coMonCN inverse laMonCN::MonHoc; relationship MonHoc laMonCN inverse coMonCN::MonHoc; void MonHoc(); void ~MonHoc();}; - 164 - Hình 8-5 Định nghĩa quan hệ tự kết hợp ODL Quan hệ tổng quát hoá cụ thể hoá UML hỗ trợ tất quan hệ tổng quát hoá: rời / giao (disjoint/overlapping), đầy đủ / không đầy đủ (complete/incomplete) Mơ hình đối tượng ODMG khơng hỗ trợ tổng qt hố mà có giao Nói chung hỗ trợ quan hệ kế thừa rời không đầy đủ hình 2-6 Class ThanhToanTM extends ThanhToan (extent ThanhToanTM Key number) { … }; ThanhToan {disjoint, complete} ThanhToanTM Class ThanhToanThe extends ThanhToan (extent ThanhToanThe) { … }; ThanhToanThe Hình 8-6 Định nghĩa quan hệ kế thừa ODL Quan hệ kết tập UML hỗ trợ hai loại quan hệ kết tập: Kết tập tuyển tập thành viên (member-collection aggregation) loại đặc biệt quan hệ kết hợp (association) Quan hệ biểu diễn tuyển tập đối tượng Cây kết tập (aggregation tree) mối quan hệ kết tập phận tổng thể (part-whole aggregation) Quan hệ thể lớp cấu trúc gồm hai lớp khác ODL khơng cung cấp tốn tử tạo lập để hỗ trợ trực tiếp việc định nghĩa kết tập, hai loại quan hệ định nghĩa thơng qua thuộc tính Kết tập tuyển tập chuyển kiểu tuyển tập, phần tử chuyển thành List, Array, Sequence, ngược lại sử dụng Set, Bag Kết tập phận / tổng thể định nghĩa thành lớp thành phần thuộc tính lớp cấu thành - 165 - Ví dụ: PhienBanHang ngayBan: Date gioBan: Time becomeComplete() makeLineItem() makePayment() total() gomCo * DongBanHang soLuong: Int subtotal() Class PhienBanHang { attribute Date ngayBan; attribute Time gioBan; attribute List gomCo; Boolean becomeComplete(){…} void makeLineItem() void makePayment(){…} Number total(){…} PhienBanHang(); ~PhienBanHang(); }; Class DongBanHang { attribute Integer soLuong; Number subtotal(){…} }; Hình 8-7 Định nghĩa kết tập tuyển tập ODL Các kiểu cấu trúc tuyển tập Như thảo luận, kiểu liệu có cấu trúc tuyển tập khái niệm cần xây dựng thiết kế CSDL HĐT Chúng cho phép định nghĩa thuộc tính đa trị, lực lượng quan hệ kết hợp, kết tập, v.v ODMG hỗ trợ loại tuyển tập khác nhau: + Kiểu Bag, cho phép lặp, không thứ tự số phần tử không giới hạn + Kiểu Set, không lặp, không thứ tự, không bị giới hạn số lượng + Kiểu List, thứ tự, không bị giới hạn số lượng, lặp khơng lặp + Kiểu Dictionary, cặp phần tử (Key-value) không bị chặn số lượng với điều kiện Key không bị lặp + Kiểu Array Sequence, giới hạn số lượng phần tử + Kiểu cấu trúc (Struct), sử dụng bạn muốn biểu diễn cho đối tượng phức hợp, phần tử có nhiều kiểu khác Mặc dù việc cài đặt chúng giống nhau, song giá trị kiểu khác Một đối tượng CSDL thể kết tính tốn đối tượng giới thực Các giá trị tự chúng không tồn độc lập, chúng cho phép định nghĩa đối tượng hệ thống Tương tự trên, thực chuyển đổi tất lớp mối quan hệ chúng ODL - 166 - Bài tập câu hỏi 8.1 Những mệnh đề sau mô tả Java ngôn ngữ lập trình hướng đối tượng, chọn cụm từ để điền vào chỗ [(…)] cho thích hợp "CSDL HĐT [(1)] [(2)] Trong CSDL QH lưu trữ liệu [(3)] [(4)] CSDL HĐT lưu giữ [(5)] Một phần mềm cho phép tạo lập, quản lý, xử lý, huỷ bỏ đối tượng gọi [(6)] Tập mục liệu tập hợp lại hệ QT CSDL HĐT gọi [(2)]" Chọn câu trả lời: a CSDL HĐT (cơ sở liệu hướng đối tượng) b đối tượng c hệ d ký tự e giá trị số f hệ QT CSDL HĐT (quản trị sở liệu hướng đối tượng) 8.2 Những mệnh đề sau mô tả chế đọc/ghi CSDL hướng đối tượng, chọn cụm từ để điền vào chỗ [(…)] cho thích hợp "Trong [(1)], đối tượng sau xử lý lưu trữ vào CSDL hệ QT CSDL HĐT sau [(2)] kết thúc Những đối tượng lưu trữ vào CSDL gọi [(3)], cịn đối tượng khơng lưu vào CSDL gọi [(4)]" Chọn câu trả lời: a chương trình b đối tượng tạm thời c CSDL HĐT d đối tượng bền vững 8.3 Hãy chọn từ thích hợp để điền vào chỗ [(…)] cho với đặc tính CSDL HĐT + CSDL HĐT cho phép xử lý [(1)] có nhiều [(2)] xáo trộn vào CSDL + CSDL HĐT lưu trữ [(3)] mà CSDL truyền thống (CSDL QH) không lưu trữ quản lý + Trong CSDL HĐT, liệu [(4)] [(5)], liệu nhận từ [(4)] + Trong CSDL HĐT, NSD không cần [(6)] việc đọc/ghi liệu - 167 - 8.4 Sử dụng ObjecStore C++ để cài đặt tất lớp hình 8-3 (chi tiết tham khảo http: www.odi.com TÀI LIỆU THAM KHẢO [1] Booch G., Rumbaugh J and Jacobson I., The Unified Software Development Process, Addision – Wesley, 1998 [2] Booch G., Rumbaugh J and Jacobson I., The Unified Modeling Language User Guide, Addision – Wesley, 1999 [3] Sommerville I., Software Engineering, th Edition, Addition Wesley, 1994 [4] Larman C., Applying UML and Patterrns: An Instruction to Object-Oriented Analysis and Design, Prentice Hall, 1997 [ 5] Michael B., William P., Object – Oriented Modeling and Design for Database Applications, Prentice Hall, New Jersey 1998 [6] Oestereich B., Developing Software with UML, Object-Oriented Analysis and Design in Prctice, Addision – Wesley, 2000 [7] OMG, “The OMG Unified Modeling Language Specification”, http:// www.omg.org/uml , 1999 [8] Quatrani T., Visual Modeling With Rational Rose and UML, Addison-Wesley, http:// www.rational.com, 2000 [9] Liang Y., From use cases to classes: a way of building object model with UML, Information and Software Technology, 45 (2003) 83-93, www.elservier.com/locate/infsof [10] Zhiming L., Object-Oriented Software Development Using UML, UNU /IIST, Macau 2001 [11] Đặng Văn Đức, Phân tích thiết kế hướng đối tượng UML (Thực hành với Rational Rose), NXB Khoa học Kỹ thuật, Hà Nội 2002 [12] Đồn Văn Ban, Phân tích, thiết kế lập trình hướng đối tượng, NXB Thống Kê 1997 [13] Đoàn Văn Ban, Hoàng Quang, Chuyển đổi biểu thức đại số quan hệ thành câu truy vấn mơ hình liệu hướng đối tượng, Tạp chí Khoa học Công nghệ, Tập 40-Số ĐB, 2002 (120-129) [14] Đoàn Văn Ban, Cơ sở liệu hướng đối tượng, giáo trình Khoa CNTT, HN 2003 - 168 - Danh sách thuật ngữ từ viết tắt Từ viết tắt tiếng Anh UML OOA OOD API CASE OMT OOSE OCL GRASP ODMG USPD RUP UP Unified Modeling Language Object Oriented Analysis Object Oriented Design Application Programming Interface Computer Aided Software Engineering Object Modeling Technique Object-Oriented Software Engineering Object Constraints Language General Responsibility Assignment Software Patterrn Object Data Management Group Unified Software Development Process Rational Unified Process Unified Process Từ viết tắt tiếng Việt CNTT Công nghệ thông tin CSDL Cơ sở liệu NSD Người sử dụng CNPM Công nghệ phần mềm HBH Hệ thống bán hàng CSDLQH Cơ sở liệu quan hệ CSDLHĐT Cơ sở liệu hướng đối tượng QTCSDL Hệ quản trị sở liệu Các thuật ngữ Việt - Anh Hệ thống phần mềm Software System Tính tiện dụng usability Khả trì hoạt động Maintainability Tính tin cậy Dependability Tính hiệu Efficiency Hệ thống thơng tin Information System Các hệ thống kỹ thuật Technical Systems Các hệ thống nhúng thời gian thực Embedded Real_time Systems Các hệ thống nghiệp vụ Business Systems Cách tiếp hướng chức Functional-Oriented Approach Cách tiếp cận hướng đối tượng Object-Oriented Approach Hướng thủ tục Procedure-Oriented Chia để trị Devide and conquer Cố kết Cohension Thông điệp Message Lớp Class - 169 - Thuộc tính Dữ liệu thành phần Phương thức Thao tác Hàm thành phần Bao gói Che giấu thơng tin Mơ hình thác nước Mơ hình xốn ốc Cơng nghệ hệ thứ tư 4GT Nguyên mẫu Vật phẩm Được hướng dẫn ca sử dụng Tập trung vào kiến trúc Quan sát theo ca sử dụng Quan sát logic Quan sát thành phần Quan sát tương tranh Quan sát triển khai Biểu đồ ca sử dụng Biểu đồ lớp Biểu đồ Biểu đồ trình tự Biểu đồ cộng tác Biểu đồ thành phần Biểu đồ triển khai Biểu đồ hành động Biểu đồ trạng thái Gói Luồng Tác nhân Định danh Đa xạ, đa hình Nạp chồng Liên kết Sự kết hợp Sự kết tập, gộp lại Quan hệ hợp thành Quan hệ kết hợp Quan hệ kết tập Quan hệ phụ thuộc Tổng quát hóa Kế thừa Kế thừa đơn Attribute Data member Method Operation Member function Encapsulation Information hidding Waterfall model Spiral model Fourth Generation Technology Prototype Artifact Use-case-driven Architecture-centric Use case view Logic view Component view Concurrency view Deployement view Use case diagram Class diagram Object diagram Sequence diagram Collaboration diagram Component diagram Deployment diagram Activity diagram State diagram, State chart diagram Package Thread Actor Identifier (ID) Polymorphic Overloading Link Association Aggregation Composition Aggregation Association relationship Aggregation relationship Depedency relationship Generalization Inheritance Single inheritance - 170 - Kế thừa bội Bội số, số Tên vai trò Qui tắc ràng buộc Qui tắc suy dẫn Lớp mẫu Lớp thực Lớp tiện ích Mẫu rập khuôn Lớp biên Lớp thực thể Lớp điều khiển Từ điển thuật ngữ Tuyển tập Chỉ số Siêu liệu Multiple inheritance Multiplicity Role name Constraint rule Derivation rule Template class Instantiated class Class utility Stereotype Boundary class Entity class Control class Glossary Collection Index Meta data - 171 - MỤC LỤC LỜI NÓI ĐẦU .2 CHƯƠNG I: PHẦN MỀM VÀ MƠ HÌNH HỐ HỆ THỐNG 1.1 Giới thiệu hệ thống phần mềm .4 1.2 Mô hình hố hệ thống .7 1.3 Các cách tiếp cận phát triển phần mềm 1.3.1 Cách tiếp cận hướng chức 1.3.2 Cách tiếp cận hướng đối tượng 11 1.3.3 Ưu điểm phương pháp hướng đối tượng 13 1.4 Các mơ hình phát triển phần mềm 14 Câu hỏi tập 16 CHƯƠNG II: UML VÀ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM 18 2.1 Tổng quát UML 18 2.1.1 Mục đích UML 18 2.1.2 Giới thiệu tổng quát UML 20 2.1.3 Các phần tử UML 21 2.2 Các khái niệm phương pháp hướng đối tượng UML 23 2.2.1 Các đối tượng 23 2.2.2 Lớp đối tượng 24 2.2.3 Các giá trị thuộc tính đối tượng 25 2.2.4 Các thao tác phương thức 26 2.3 Các mối quan hệ lớp 26 2.3.1 Sự liên kết kết hợp đối tượng 27 2.3.2 Bội số 28 2.3.3 Các vai trò quan hệ 29 2.3.4 Quan hệ kết tập 30 2.3.5 Quan hệ tổng quát hoá 31 2.3.6 Kế thừa bội 33 2.3.7 Quan hệ phụ thuộc 34 2.4 Các gói .35 2.5 Các qui tắc ràng buộc suy diễn 36 - 172 - 2.6 Quá trình phát triển phần mềm 37 2.6.1 Xác định yêu cầu phân tích hệ thống 39 2.6.2 Phân tích hệ thống hướng đối tượng 41 2.6.3 Thiết kế hệ thống hướng đối tượng 41 2.6.4 Lập trình kiểm tra chương trình 42 2.6.5 Vận hành bảo trì hệ thống 43 2.7 Rational Rose trình phát triển phần mềm thống .44 Bài tập câu hỏi 45 CHƯƠNG III: BIỂU ĐỒ CA SỬ DỤNG: PHÂN TÍCH CÁC YÊU CẦU CỦA HỆ THỐNG .46 3.1 Định nghĩa toán 46 3.2 Phân tích đặc tả yêu cầu hệ thống 49 3.2.1 Ca sử dụng 49 3.2.2 Tác nhân 50 3.2.3 Xác định ca sử dụng tác nhân 51 3.2.3 Đặc tả ca sử dụng 53 3.3 Biểu đồ ca sử dụng 57 3.4 Tạo lập biểu đồ ca sử dụng Rational Rose 60 Bài tập câu hỏi 60 CHƯƠNG IV: PHÂN TÍCH HỆ THỐNG – MƠ HÌNH KHÁI NIỆM VÀ BIỂU ĐỒ LỚP 61 4.1 Mơ hình khái niệm – mơ hình đối tượng 61 4.2 Xác định lớp đối tượng .62 4.3 Mối quan hệ lớp đối tượng 70 4.3.1 Đặt tên cho quan hệ kết hợp 71 4.3.2 Các phương pháp xác định mối quan hệ kết hợp 72 4.4 Biểu đồ lớp .73 4.4.1 Các loại lớp biểu đồ 73 4.4.2 Mẫu rập khuôn (stereotype) lớp 74 4.4.3 Biểu đồ lớp Hệ HBH 75 4.5 Thuộc tính lớp 76 4.5.1 Tìm kiếm thuộc tính 77 4.5.2 Các thuộc tính lớp HBH 80 - 173 - 4.6 Ghi nhận từ điển thuật ngữ 81 4.7 Thực hành Rational Rose .82 Câu hỏi tập 83 CHƯƠNG V: MƠ HÌNH ĐỘNG THÁI: CÁC BIỂU ĐỒ TƯƠNG TÁC VÀ HÀNH ĐỘNG TRONG HỆ THỐNG 85 5.1 Mơ hình hố hành vi hệ thống 85 5.1.1 Các kiện hành động hệ thống 86 5.1.2 Sự trao đổi thông điệp đối tượng 88 5.2 Biểu đồ trình tự 89 5.2.1 Các thành phần biểu đồ trình tự 89 5.2.2 Xây dựng biểu đồ trình tự 90 5.2.3 Các biểu đồ trình tự mơ hình hành động hệ 90 5.2.4 Ghi nhận hoạt động lớp đối tượng 92 5.2.5 Các hợp đồng hoạt động hệ thống 93 5.3 Biểu đồ trạng thái .96 5.3.1 Trạng thái biến đổi trạng thái 97 5.3.2 Xác định trạng thái kiện 98 5.3.3 Xây dựng biểu đồ trạng thái 99 5.4 Biểu đồ hoạt động 101 5.5 Sử dụng Rational Rose để tạo lập biểu đồ trình tự 103 5.6 Sử dụng Rational Rose để tạo lập biểu đồ trạng thái .104 Bài tập câu hỏi .105 CHƯƠNG VI: THIẾT KẾ CÁC BIỂU ĐỒ CỘNG TÁC VÀ BIỂU ĐỒ THÀNH PHẦN CỦA HỆ THỐNG 106 6.1 Các biểu đồ cộng tác .106 6.2 Thiết kế biểu đồ cộng tác lớp đối tượng .111 6.2.1 Ca sử dụng thực tế 111 6.2.2 Mẫu gán trách nhiệm 113 6.2.3 Mẫu gán trách nhiệm 114 6.3 Thiết kế hệ thống HBH 120 6.4 Thiết kế chi tiết biểu đồ lớp 126 6.5 Thiết kế biểu đồ cộng tác hoàn thiện thiết kế biểu đồ lớp Rose 134 6.5.1 Xây dựng biểu đồ cộng tác 134 - 174 - 6.5.2 Hoàn thiện thiết kế biểu đồ lớp 134 Bài tập câu hỏi .135 CHƯƠNG VII: KIẾN TRÚC HỆ THỐNG VÀ PHÁT SINH MÃ TRÌNH .136 7.1 Kiến trúc Hệ thống 136 7.2 Biểu đồ thành phần .139 7.3 Biểu đồ triển khai 141 7.4 Ánh xạ thiết kế sang mã chương trình .142 7.4.1 Tạo lập định nghĩa lớp từ thiết kế biểu đồ lớp 142 7.4.2 Định nghĩa hàm từ biểu đồ cộng tác 145 7.5 Danh sách số lớp định nghĩa C++ 147 7.6 Thực hành Rose 150 7.6.1 Xây dựng biểu đồ thành phần 150 7.6.2 Xây dựng biểu đồ triển khai 150 7.6.3 Phát sinh mã trình Rose 150 Bài tập câu hỏi .151 CHƯƠNG VIII: CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 153 8.1 Cơ sở liệu quan hệ hướng đối tượng 153 8.1.1 Cơ sở liệu quan hệ 153 8.1.2 Cơ sở liệu hướng đối tượng [14] 154 8.2 Các hệ quản trị CSDL hướng đối tượng 155 8.2.1 Các đặc trưng hệ quản trị CSDL HĐT 155 8.2.2 Giới thiệu hệ ObjectStore 157 8.3 Thiết kế CSDL HĐT 161 8.3.1 Thiết kế sơ đồ khái niệm 162 8.3.2 Thiết kế sơ đồ chuẩn – sơ đồ CSDL 162 Bài tập câu hỏi .167 TÀI LIỆU THAM KHẢO 168 - 175 - ... sách thuật ngữ thích hợp để điền vào chỗ [(…)] đoạn văn mô tả ngôn ngữ mô hình hố UML UML ngơn ngữ mơ hình hố, trước hết mơ tả [(1)], ngữ nghĩa định nghĩa trực quan tất thành phần [(2)] UML sử dụng... hệ thống phức tạp nhạy cảm như: hệ thống động, hệ thống thời gian thực, hệ thống nhúng thời gian thực, v.v Tạo ngôn ngữ mơ hình hố sử dụng cho người lẫn máy tính Tóm lại, UML ngơn ngữ mơ hình. .. hình hố, ngơn ngữ đặc tả ngơn ngữ xây dựng mơ hình q trình phát triển phần mềm, đặc biệt phân tích thiết kế hệ thống hướng đối tượng UML ngơn ngữ hình thức, thống chuẩn hố mơ hình hệ thống cách

Ngày đăng: 22/03/2014, 16:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan