620 likes | 967 Views
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML. GV: Phan Bá Trí Email: trip182@gmail.com Website: www.phanbatri.wordpess.com. Huế, 2/2012. Chương 1: Mở đầu. Nội dung : - Các hệ thống thông tin và vấn đề phát triển hệ thống thông tin - C ác giai đoạn xây dựng hệ thống thông tin
E N D
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML GV: Phan Bá Trí Email: trip182@gmail.com Website: www.phanbatri.wordpess.com Huế, 2/2012
Chương 1: Mở đầu Nội dung: - Các hệ thống thông tin và vấn đề phát triển hệ thống thông tin - Các giai đoạn xây dựnghệ thống thông tin - Các cách tiếp cận phân tích và thiết kế hệ thống - Các khái niệm cơ bản của hướng đối tượng - Các bước phân tích thiết kế hướng đối tượng
1.1 CÁC HỆ THỐNG THÔNG TIN - Tuỳ theo quan điểm mà có thể phân loại các hệ thống thông tintheo các tiêu chí khác nhau. - Xét về mặt ứng dụng, hệ thống thông tin có thể đượcphân chia thành một số dạng như sau: + Hệ xử lý dữ liệu (Data Processing System) + Hệ thông tin quản lý (Management Information System) + Hệ hỗ trợ quyết định (Decision Support System) + Hệ chuyên gia (Expert System)
1.1.1 Hệ xử lý dữ liệu - Chức năng: +Xử lý các giao dịch và ghi lại những dữ liệu cho từng chức năng đặc thù. + Dữ liệu đưa vào được thường xuyên cập nhật. Dữ liệu đầu ra định kỳ bao gồm các tài liệu hoạt động và báo cáo.
1.1.2 Hệ thông tin quản lý - Chức năng: +Hỗ trợ các chức năng xử lý dữ liệu trong giao dịch và lưu trữ. + Dùng một cơ sở dữ liệu hợp nhất và hỗ trợ cho nhiều chức năng. + Cung cấp cho các nhà quản lý các thông tin theo thời gian của hệ thống. + Có cơ chế bảo mật thông tin theo từng cấp độ có thẩm quyền sử dụng.
1.1.3 Hệ hỗ trợ quyết định - Chức năng: + Cung cấp, sắp xếp các phương án theo tiêu chuẩn của người làm quyết định. + Cung cấp và phân tích dữ liệu, biễu diễn dữ liệu bằng đồ thị một cách tự động. + Chọn lựa một phương án tối ưu trên cơ sở các thông tin đưa vào.
1.1.4 Hệ chuyên gia - Chức năng: + Giúp các nhà quản lý giải quyết và thực hiện vấn đề ở mức cao hơn hệ hỗ trợ quyết định. + Hệ này liên quan đến lĩnh vực trí tuệ nhân tạo.
Lưu ý: - Ngoài một số hệ thống thông tin trên còn có rất nhiều hệ thống thông tin khác: Hệ thống thông tin thương mại điện tử, hệ thống điều khiển, … - Mỗi hệ thống thông tin có những đặc trưng riêng và cũng đặt ra những yêu cầu riêng cho việc phân tích và phát triển hệ thống. Do đó, không có phương pháp luận chung cho tất cả các dạng hệ thống thông tin.
1.2 CÁC GIAI ĐOẠN XÂY DỰNG HTTT Tiến trình phần mềm là phương pháp sản xuất ra phần mềm với các thànhphần chủ yếu bao gồm: mô hình vòng đời phát triển phần mềm, các công cụ hỗtrợ cho phát triển phần mềm và những người trong nhóm phát triển phần mềm. Như vậy, tiến trình phát triển phần mềm nói chung là sự kết hợp cả hai khíacạnh kỹ thuật (vòng đời phát triển, phương pháp phát triển, các công cụ và ngôn ngữ sử dụng, …) và khía cạnh quản lý (quản lý dự án phần mềm).
1.2 CÁC GIAI ĐOẠN XÂY DỰNG HTTT Mọi phương pháp phân tích thiết kế hệ thống thông tin phải trải qua các giai đoạn sau: - Lập kế hoạch - Phân tích - Thiết kế - Thực hiện - Chuyển giao - Bảo trì
1.2.1 Lập kế hoạch Mục đích cần làm sáng tỏ các vấn đề sau: - Cần thiết xây dựng HTTT mới hoặc nâng cấp HTTT. - Thời gian bắt đầu, thời gian kết thúc - Ước tính chi phí thực hiện - Nhân lực, vật lực phục vụ cho hệ thống tương lai - Có những lợi ích và cản trở gì - Trách nhiệm mỗi bên cùng tham gia vào hệ thống này.
1.2.2 Phân tích a) Phân tích hiện trạng b) Phân tích tính khả thi và phân chia nhiệm vụ c) Xây dựng mô hình hệ thống chức năng
a) Phân tích hiện trạng Cần thực hiện các công việc sau: - Tìm hiểu hiện trạng - Tìm hiểu hoạt động hiện tại của tổ chức - Xác định các thành phần tham gia trong tổ chức - Các nhiệm vụ của các tổ chức thành viên và các tổ chức bên ngoài có liên quan - Các mối quan hệ thông tin giữa các thành viên trong tổ chức
b) Phân tích tính khả thi Tính khả thi của một dự án luôn đóng vai trò tiên quyết trong quá trình phát triển hệ thống thông tin. Phân tích tính khả thi dựa trên 3 yếu tố sau: - Phân tích khả thi về kỹ thuật - Phân tích khả thi về kinh tế - Phân tích khả thi hoạt động * Lưu ý: Lập hồ sơ nhiệm vụ là một thỏa thuận không chính thức giữa ba phía: Người phân tích, chủ đầu tư và người sử dụng.
c) Xây dựng mô hình hệ thống chức năng - Xây dựng mô hình nghiệp vụ hệ thống dựa vào kết quả phân tích. - Hoàn tất quá trình xây dựng mô hình hệ thống nếu không còn phản hồi nào từ phía chủ đầu tư.
1.2.3 Thiết kế Trong giai đoạn thiết kế, người phân tích xác định chi tiết một số vấn đề sau: - Các thông tin - Các quy tắc phát sinh,tiếp nhận,xử lý thông tin - Các kiểu khai thác - Các phương tiện khác.
Thiết kế Tóm lại, thiết kế bao gồm các công việc sau: - Thiết kế dữ liệu: đối tượng, tập thực thể,… - Thiết kế chức năng: xây dựng các module - Thiết kế giao diện - Thiết kế an toàn hệ thống - Thiết kế phần cứng - Dự kiến nhân sự tại vị trí công tác của hệ thống
1.2.4 Giai đoạn thực hiện - Thực chất đây là quá trình mã hóa (coding) - Làm tài liệu hướng dẫn sử dụng cho người sử dụng và người phát triển hệ thống sau này (nếu có).
1.2.5 Chuyển giao hệ thống - Thực chất đây là quá trình mã hóa (coding) - Làm tài liệu hướng dẫn sử dụng cho người sử dụng và người phát triển hệ thống sau này (nếu có).
1.2.6 Bảo trì LẬP KẾ HOẠCH PHÂN TÍCH THIẾT KẾ THỰC HIỆN CHUYỂN GIAO BẢO TRÌ Hình 1:Mô hình thác nước (Water-Fall Model)
1.3 CÁC CÁCH TIẾP CẬN PTTKHT Trong những năm 70 - 80, phương pháp hướng cấu trúc được coi là phươngpháp chuẩn để phát triển phần mềm. Phương pháp này tỏ ra không phùhợp trong phát triển các hệ phần mềm lớn và đặc biệt là kém hiệu quả trong sửdụng lại. Thập niên 90chứng kiến sự nở rộ trong nghiên cứu và xây dựng phương pháp luận phát triểnphần mềm hướng đối tượng và nhanh chóng trở thành phổ biến trong công nghiệp phần mềm ngày nay.
1.3 CÁC CÁCH TIẾP CẬN PTTKHT Phân chia hai hướng tiếp cận trong PTTKHT: + Phương pháp hướng cấu trúc + Phương pháp hướng đối tượng
1.3.1 Phương pháp hướng cấu trúc Đặc trưng: phân chia chương trình chính thànhnhiều chương trình con, mỗi chương trình con nhằm đến thực hiện một công việcxác định. Trong phương pháp hướng cấu trúc, phần mềm được thiết kế dựa trên mộttrong hai hướng : hướng dữ liệu và hướng hành động.
1.3.1 Phương pháp hướng cấu trúc • Hướng dữ liệu: • Xây dựng phần mềm dựa trên việc phân rã phần mềm theo các chức năng cần đáp ứng và dữ liệu cho các chức năngđó. • Cách tiếp cận hướng dữ liệu sẽ giúp cho những người phát triển hệthống dễ dàng xây dựng ngân hàng dữ liệu
1.3.1 Phương pháp hướng cấu trúc • Hướng hành động: • Cách tiếp cận hướng hành động lại tập trung phân tích hệ phần mềm dựatrên các hoạt động thực thi các chức năng của phần mềm đó.
1.3.1 Phương pháp hướng cấu trúc • Cách thực hiện của phương pháp hướng cấu trúc: • Phương pháp thiết kế từ trên xuống (top-down). • Phương pháp này tiến hành phân rã bài toán thành các bàitoán nhỏ hơn, rồi tiếp tục phân rã các bài toán con cho đến khi nhận được các bàitoán có thể cài đặt được ngay sử dụng các hàm của ngôn ngữ lập trình hướng cấutrúc.
1.3.1 Phương pháp hướng cấu trúc Ưu điểm: • Tư duy phân tích thiết kế rõ ràng. • Chương trình sáng sủa,dễ hiểu. Nhược điểm: + Không hỗ trợ tái sử dụng lại + Không đáp ứng cho việc phát triển các phần mềm lớn
1.3.2 Phương pháp hướng đối tượng Khác với phương pháp hướng cấu trúc chỉ tập trung hoặc vào dữ liệu hoặc vàohành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của hệthống là dữ liệu và hành động. Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thànhphần trong bài toán vào các đối tượng ngoài đời thực. Mộthệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗiđối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó.
1.3.2 Phương pháp hướng đối tượng Các đối tượng trong một hệ thống tương đối độc lập với nhau. Phần mềm sẽđược xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mốiquan hệ và tương tác giữa chúng.
1.3.2 Phương pháp hướng đối tượng Các nguyên tắc cơ bản của phương pháp hướng đối tượng: + Tính trừu tượng hóa (abtraction) + Tính đóng gói (encapsulation) và ẩn giấu thông tin + Tính modul hóa (modularity) + Tính phân cấp (hierarchy)
1.3.2 Phương pháp hướng đối tượng Tính trừu tượng hóa (abtraction) • Trong phương pháp hướng đối tượng, các thựcthể phần mềm được mô hình hóa dưới dạng các đối tượng. • Các đối tượng nàyđược trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tảđối tượng để tạo thành các lớp. • Các lớp cũng sẽ được trừu tượng hóa ở mứccao hơn nữa để tạo thành một sơ đồ các lớp được kế thừa lẫn nhau. • Trongphương pháp hướng đối tượng có thể tồn tại những lớp không có đối tượngtương ứng, gọi là lớp trừu tượng.
1.3.2 Phương pháp hướng đối tượng Tính đóng gói (encapsulation) và ẩn giấu thông tin: • Các đối tượng có thể cónhững phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng kháckhông thể sử dụng được. • Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt củacác đối tượng sẽ hoàn toàn độc lập với các đối tượng khác. • Các lớp độc lập vớinhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sửdụng.
1.3.2 Phương pháp hướng đối tượng Tính modul hóa (modularity) • Các bài toán sẽ được phân chia thành nhữngvấn đề nhỏ hơn, đơn giản và quản lý được.
1.3.2 Phương pháp hướng đối tượng Tính phân cấp (hierarchy): • Cấu trúc chung của một hệ thống hướng đối tượnglà dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp.
1.3.2 Phương pháp hướng đối tượng Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được các vấnđề nảy sinh với phương pháp hướng cấu trúc: - Hỗ trợ sử dụng lại mã nguồn - Phù hợp với các hệ thống lớn
1.3.2 Phương pháp hướng đối tượng Hỗ trợ sử dụng lại mã nguồn: • Chương trình lập trình theo phương pháp hướngđối tượng thường được chia thành các gói là các nhóm của các lớp đối tượngkhác nhau. • Các gói này hoạt động tương đối độc lập và hoàn toàn có thể sửdụng lại trong các hệ thống thông tin tương tự.
1.3.2 Phương pháp hướng đối tượng Phù hợp với các hệ thống lớn: • Phương pháp hướng đối tượng không chia bàitoán thành các bài toán nhỏ. • Tập trung vào việc xác định các đối tượng, dữliệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. • Cácđối tượng hoạt động độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ các đối tượng khác.
1.4CÁC KHÁI NIỆM CƠ BẢN - Đối tượng (object) - Lớp (Class) - Thành phần (component) - Gói (package) - Kế thừa - Phân tích hướng đối tượng - Thiết kế hướng đối tượng - Lập trình và tích hợp
1.4.1 Đối tượng (Oject) - Một đối tượng biểu diễn một thực thể vật lý, một thực thể khái niệm hoặc một thực thể phần mềm. - Có thể định nghĩa một đối tượng làmột khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩavới một ứng dụng cụ thể.
1.4.2 Lớp (Class) - Mô tả của một nhóm đối tượng có chung các thuộc tính, hànhvi và các mối quan hệ. -Như vậy, một đối tượng là thể hiện của một lớp và mộtlớp là một định nghĩa trừu tượng của đối tượng.
1.4.3 Thành phần (Component) - Là một phần của hệ thống hoạt động độc lập và giữmột chức năng nhất định trong hệ thống.
1.4.4 Gói (Package) - Là một cách tổ chức các thành phần, phần tử trong hệ thống thành các nhóm. -Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống con (subsystem).
1.4.5 Kế thừa - Trong phương pháp hướng đối tượng, một lớp có thể có sử dụng lạicác thuộc tính và phương thức của một hoặc nhiều lớp khác. - Kiểu quan hệ nàygọi là quan hệ kế thừa, được xây dựng dựa trên mối quan hệ kế thừa trong bàitoán thực tế.
1.4.6 Phân tích hướng đối tượng - Xây dựng một mô hình chính xác để mô tả hệ thống cần xây dựng là gì. - Thành phần của mô hình này là các đối tượng gắnvới hệ thống thực.
1.4.7 Thiết kế hướng đối tượng - Là giai đoạn tổ chức chương trình thành các tậphợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp. - Kếtquả của pha thiết kế cho biết hệ thống sẽ được xây dựng như thế nào qua cácbản thiết kế kiến trúc và thiết kế chi tiết.
1.4.8 Lập trình và tích hợp Thực hiện bản thiết kế hướng đối tượng bằng cách sửdụng các ngôn ngữ lập trình hướng đối tượng (C++, Java, C#…).
1.5 CÁC BƯỚC PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - Các bước phân tích thiết kế hướng đối tượng được xây dựng dựa trên biểu đồ cácký hiệu UML. - Đó là ngôn ngữ mô hình hoá thống nhất được xây dựng để mô hìnhhoá quá trình phát triển hệ thống phần mềm hướng đối tượng.
1.5 CÁC BƯỚC PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Hình 2: Các bước phát triển hệ thống hướng đối tượng
1.5.1 Pha phân tích a. Xây dựng Biểu đồ use case: - Xác định các tác nhân - Xác định các use case và các quan hệ giữa các usecase để mô tả lại các chức năng của hệ thống. - Một thành phần quan trọng trong biểu đồ usecase là các kịch bản (scenario)mô tả hoạt động của hệ thống trong mỗi use case cụ thể.
1.5.1 Pha phân tích b. Xây dựng Biểu đồ lớp: - Xác định tên các lớp, các thuộc tính của lớp, một sốphương thức và mối quan hệ cơ bản trong sơ đồ lớp.