Trong lĩnh vực Công Nghệ Thông Tin nói riêng, yêu cầu quan trọng nhất của người học đó chính là thực hành. Có thực hành thì người học mới có thể tự mình lĩnh hội và hiểu biết sâu sắc với lý thuyết. Với ngành mạng máy tính, nhu cầu thực hành được đặt lên hàng đầu. Tuy nhiên, trong điều kiện còn thiếu thốn về trang bị như hiện nay, người học đặc biệt là sinh viên ít có điều kiện thực hành. Đặc biệt là với các thiết bị đắt tiền như Router, Switch chuyên dụng
TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG MÔN PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG VỚI UML Prepared by: Phạm Văn Sơn 4/11/2014 Chương Đại cương về PTTK HDT Giới thiệu Vị trí của môn học: - Là môn học chuyên ngành giữ vai trò quan trọng chương trình đào tạo cử nhân ngành CNTT - Được học vào năm thứ ba, sau các môn: sở dữ liệu, cấu trúc dữ liệu và gt, kỹ thuật lập trình,… Đối tượng nghiên cứu: - Là những khái niệm, nguyên tắc, công cụ, phương tiện và tập các ký hiệu ngôn ngữ mô hình hóa hướng đối tượng UML 4/11/2014 Chương Đại cương về PTTK HDT Giới thiệu Phương pháp nghiên cứu: - Trước tiên phải hiểu được các khái niệm bản - Thứ hai, phải nắm vững được các nguyên tắc hướng đối tượng - Thứ ba, phải nhớ được tập các ký hiệu và ý nghĩa các ký hiệu ngôn ngữ mô hình hóa hướng đối tương UML (unified modeling language) - Thứ tư, tìm hiểu các kiểu mô hình uml và các kỹ thuật xây dưng mô hình - Cuối cùng là vận dung làm bài tập và đồ án 4/11/2014 Chương Đại cương về PTTK HDT Mục tiêu của môn học Kiến thức: - Trang bị cho sinh viên những khái niệm, nguyên tắc hướng đối tượng bản và giúp cho sinh viên hiểu được ý nghĩa của các ký hiệu ngôn ngữ mô hình hóa hướng đối tượng UML Kỹ năng: - Biết cách nhận diện bài toán (problem) - Hình thành được kỹ phân tích và thiết kế - Có khả xây dựng các dạng biểu đồ uml 4/11/2014 Chương Đại cương về PTTK HDT Đặt vấn đề ? Theo các bạn thì phân tích và thiết kế hệ thống, chúng ta phải làm những công việc gì ? Điều gì sẽ xảy nếu chúng ta viết một chương trình (phần mềm) hay xây dựng một hệ thống mới mà không có thiết kế trước ? Tại chúng ta phải PTTK hệ thống ? 4/11/2014 Chương Đại cương về PTTK HDT Chương 1: ĐẠI CƯƠNG VỀ PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG VỚI UML 4/11/2014 Chương Đại cương về PTTK HDT NỘI DỤNG CHÍNH 1.1 Lý thuyết chung về hệ thống 1.2 Khái quát vòng đời phát triển của hệ thống 1.3 Hai phương pháp tiếp cận hệ thống 1.4 Một số khái niệm bản của hướng đối tượng 1.5 Các bước phân tích thiết kế hướng đối tượng 4/11/2014 Chương Đại cương về PTTK HDT 1.1 Lý thuyết chung về hệ thống Khái niệm về hệ thống (system): - là tập hợp gồm nhiều phần tử, có các mối quan hệ ràng buộc lẫn và cùng hoạt động vì một mục tiêu chung Môi trường Hệ thống Phần tử Quan hệ Phần tử Đầu vào Đầu Phần tử 4/11/2014 Phần tử Chương Đại cương về PTTK HDT 1.1 Lý thuyết chung về hệ thống Các phần tử của hệ thống: - Là các thành phần hợp thành hệ thống - Ví dụ: khoa tin, khoa toán, khoa lý, khoa hóa…,hợp thành hệ thống đào tao của một trường Kiểu quan hệ giữa các phần tử: - Quan hệ ổn định, tồn tại lâu dài: ví dụ: anh A là cấp của anh B - Quan hệ tạm thời, bất thường: ví dụ: anh A và anh B vừa được cử công tác cùng Lưu ý: xem xét tính tổ chức của một hệ thống, chúng ta phải xét đến các quan hệ ổn định, lâu dài 4/11/2014 Chương Đại cương về PTTK HDT 1.1 Lý thuyết chung về hệ thống Sự hoạt động và mục đích của hệ thống: - Sự tiến triển: các thành phần của hệ thống(phần tử, quan hệ) có thể: phát sinh, tăng trưởng, suy thoái hay mất - Sự hoạt động: các phần tử của hệ thống cùng cộng tác với để thực hiện mục đích chung của hệ thống 4/11/2014 Chương Đại cương về PTTK HDT 10 1.3 Hai phương pháp tiếp cận hệ thống Nhược điểm: - Không hỗ trợ việc sử dụng lại - Không phù hợp cho việc phát triển các phần mềm lớn 4/11/2014 Chương Đại cương về PTTK HDT 27 1.3 Hai phương pháp tiếp cận hệ thống Phương pháp hướng đối tượng 2: - Cách tiếp cận hướng đối tượng là lối tư “ánh xạ các thành phần của bài toán vào đối tượng” ngoài đời thực ví dụ: hệ thống cầu thang máy Cửa Mở Phòng thang máy Lên tầng Đèn 4/11/2014 Bật đèn Công tắc Chương Đại cương về PTTK HDT 28 1.3 Hai phương pháp tiếp cận hệ thống Đặc điểm của pp này: - Một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là đối tượng (object), mỗi đối tượng bào gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó - Các đối tượng một hệ thống tương đối độc lập với và 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 thông qua các mối quan hệ và tương tác giữa chúng Ưu điểm: - Ưu điểm của pp hướng đối tượng là đã giải quyết được các vần đề nảy sinh với pp hướng cấu trúc 4/11/2014 Chương Đại cương về PTTK HDT 29 Nguyên tắc bản của hướng đối tượng 4/11/2014 Chương Đại cương về PTTK HDT Tính phân cấp Tính modulhóa Tính đóng gói Trừu tượng hóa Hướng đối tượng 30 Nguyên tắc bản cuả hướng đối tượng Trừu tượng hóa (abstration) - Các thực thể 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 lại được trừu tượng hóa ở mức cao dựa 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 trừu tượng hóa ở mức cao để tạo thành một sơ đồ các lớp kế thừa 4/11/2014 Chương Đại cương về PTTK HDT 31 Nguyên tắc bản cuả hướng đối tượng Tính đóng gói (encapsulation) và che dấ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 (private) mà các đối tượng khác không thể sử dụng được - Dựa các nguyên tắc che dấu thông tin của cá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ới và cao nữa là cài đặt của hệ thống là hoàn toàn độc lập với người sử dụng cũng các hệ thống khác sử dụng kết quả của nó Tính modul hóa (modularity): - Các bài toán sẽ được phân chia thành các những vấn đề nhỏ hơn, đơn giản và quản lí được 4/11/2014 Chương Đại cương về PTTK HDT 32 Nguyên tắc bản cuả hướng đối tượng Tính phân cấp (hierarchy): - Cấu trúc của một hệ thống tương hướng đối tượng là dạng phân cấp theo các mức độ trừu tượng hóa khác 4/11/2014 Chương Đại cương về PTTK HDT 33 1.4 Khái niệm bản của hướng đối tượng Đối tượng (object) - 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 Ví dụ: xe tải, thí nghiệm hóa học hoặc modul, một form,… Lớp (class) - Là mô tả của một nhóm đối tương cóchung các thuộc tính, hành vi và mối quan hệ Ví dụ : lớp sinh viên, lớp môn học, lớp người,… Thành phần (component): - Là một phần của hệ thống hoạt động độc lập và giữ chức nhất định hệ thống Ví dụ: tập tin *.exe, *.dll… 4/11/2014 Chương Đại cương về PTTK HDT 34 1.4 Khái niệm bản của hướng đối tượng Gói (package) - Là một tổ chức các thành phần, phần tử hệ thống thành các nhóm Nhiều gói có thể kết hợp với để thành hệ thống con.(subsystem) Kế thừa (inherity) - Trong phân tích hướng đối tượng, một lớp có thể sử dụng lại cá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ày gọi là kế thừa, được xây dựng dựa mối quan hệ kế thừa bài toán thực tế 4/11/2014 Chương Đại cương về PTTK HDT 35 1.4 Khái niệm bản của hướng đối tượng 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 các hệ thống này là các đối tượng gắn với hệ thống thực Thiết kế hướng đối tượng - Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trọng đó là thực thể của một lớp Lập trính và tích hợp - Thực hiện bản thiết kế đối tượng bằng cách sử dụng các ngôn ngữ lập trình hướng đối tượng như: C++, Java,… 4/11/2014 Chương Đại cương về PTTK HDT 36 1.5 Các bước PTTK hướng đối tượng Biểu đồ user case Biểu đồ lớp Biểu đồ trạng thái Biểu đồ trình tự Pha phân tích Biểu đồ cộng tác Biểu đồ hoạt động Biểu đồ thành phần Pha thiết kế Biểu đồ triển khai HT 4/11/2014 Chương Đại cương về PTTK HDT 37 1.5 Các bước PTTK hướng đối tượng Pha phân tích - Xây dựng biểu đồ user case: dựa tập yêu cầu ban đầu, người phân tích tiến hành xác định các tác nhân, user case và quan hệ giữa các user case để mô tả lại các chức của hệ thống - 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ệ bản sơ đồ lớp - Xây dựng biểu đồ trạng thái: mô tả trạng thái và chuyển tiếp trạng thái hoạt động của một đối tượng thuộc một lớp nào đó 4/11/2014 Chương Đại cương về PTTK HDT 38 1.5 Các bước PTTK hướng đối tượng Pha thiết kế - Xây dựng các biểu đồ tương tác: mô tả chi tiết hoạt động của các user case dựa các scenario đã có và các lớp đã xác định pha phân tích - Xây dựng biểu đồ lớp chi tiết: tiếp tục hoàn thiện biểu đồ lớp bao gồm bổ sung các lớp còn thiếu, dựa biểu đồ trạng thái để bổ sung các thuộc tính, dựa biểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các lớp 4/11/2014 Chương Đại cương về PTTK HDT 39 1.5 Các bước PTTK hướng đối tượng Pha thiết kế - xây dựng biểu đồ hoạt động: mô tả hoạt động của các phương thức phức tạp mỗi lớp hoặc các hoạt động hệ thống có sự liên quan của nhiều lớp Biểu đồ hoạt động là sở để cài đặt các phương thức các lớp - Xây dựng biểu đồ thành phần: xác định các thành phần và các thiết bị cần thiết để triển khai hệ thống, các giao thức và dịch vụ hỗ trợ 4/11/2014 Chương Đại cương về PTTK HDT 40 Câu hỏi và bài tập chương 1 Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thông tin quản lí, hệ thống website thương mại điện tử, hệ thống điều khiển,… Vì nói tiến trình phát triển phần mềm là sự kết hợp khía cạnh kỹ thuật và khía cạnh vật lí So sánh, ưu nhược điểm của phương pháp phát triển phần mềm hướng đối tượng và hướng cấu trúc Trình bày các khái niệm hướng đối tượng: lớp, đối tượng, gói, thành phần, kế thừa Cho ví dụ minh họa 4/11/2014 Chương Đại cương về PTTK HDT 41