intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phân tích & thiết kế hệ thống hướng đối tượng - Trường Đại học Hàng Hải Việt Nam

Chia sẻ: Thảo Lê91 | Ngày: | Loại File: PDF | Số trang:52

114
lượt xem
14
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của bài giảng Phân tích & thiết kế hệ thống hướng đối tượng nhằm cung cấp các kiến thức cơ bản về phân tích, thiết kế hệ thống thông tin tin học hoá theo mô hình hướng đối tượng sử dụng UML. Tài liệu phục vụ cho các bạn ngành công nghệ thông tin và những ngành có liên quan.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phân tích & thiết kế hệ thống hướng đối tượng - Trường Đại học Hàng Hải Việt Nam

  1. 1 TRƢỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- BÀI GIẢNG PHÂN TÍCH & THIẾT KẾ HỆ THỐNG HƢỚNG ĐỐI TƢỢNG TÊN HỌC PHẦN : PHÂN TÍCH & THIẾT KẾ HỆ THỐNG HƢỚNG ĐỐI TƢỢNG MÃ HỌC PHẦN : 17407 TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2011
  2. 2 MỤC LỤC Nội dung Trang Chƣơng 1. Mô hình đối tƣợng 5 1.1. Sự phát triển của mô hình đối tượng 5 1.2. Nền tảng của mô hình đối tượng 8 1.3. Phần tử cơ bản trong mô hình đối tượng 9 Chƣơng 2. Lớp và đối tƣợng 12 2.1. Cơ bản về đối tượng 12 2.2. Mối quan hệ giữa các đối tượng 12 2.3. Cơ bản về lớp 13 2.4. Mối quan hệ giữa các lớp 15 2.5. Sự tương tác lẫn nhau của lớp và đối tượng 15 Chƣơng 3. Sự phân loại (Classification). 16 3.1. Tầm quan trọng của sự phân loại 16 3.2. Xác định các lớp và đối tượng 16 Chƣơng 4. Phân tích thiết kế hệ thống hƣớng đối tƣợng sử dụng UML (Unified 18 Model Language) 4.1. Ngôn ngữ mô hình thống nhất (UML) 18 4.2. Các biểu đồ (Diagrams) 23 Chƣơng 5. Quy trình phân tích và thiết kế 37 5.1. Nền tảng 37 5.2. Quy trình vĩ mô: Vòng đời của triển khai phần mềm 37 5.3. Quy trình vi mô: Quá trình phân tích và thiết kế 40 Chƣơng 6. Một số bài toán cụ thể 44 6.1. Hệ thống điều khiển: Quản lý hệ thống giao thông 44 6.2. Ứng dụng mạng lưới: Hệ thống theo dõi kỳ nghỉ 46
  3. 3 Tên học phần: Phân tích & Thiết kế hệ thống hướng đối tượng Loại học phần: 2 Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT. Mã học phần: 17407 Tổng số TC: 2 TS tiết Lý thuyết Thực hành/ Xemina Tự học Bài tập lớn Đồ án môn học 45 30 15 0 0 0 Học phần học trƣớc: Phân tích và Thiết kế hệ thống Học phần tiên quyết: Không yêu cầu. Học phần song song: Không yêu cầu. Mục tiêu của học phần: Cung cấp các kiến thức cơ bản về phân tích, thiết kế hệ thống thông tin tin học hoá theo mô hình hướng đối tượng sử dụng UML. Nội dung chủ yếu: Phương pháp luận phân tích thiết kế hệ thống hướng đối tượng; Nguyên tắc và công cụ mô hình hoá hệ thống; Thiết kế và cài đặt hệ thống hướng đối tượng; Các ví dụ minh hoạ. Nội dung chi tiết: PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS LT TH BT KT Chƣơng 1. Mô hình đối tƣợng 2 2 1.1. Sự phát triển của mô hình đối tượng 1.2. Nền tảng của mô hình đối tượng 1.3. Phần tử cơ bản trong mô hình đối tượng Chƣơng 2. Lớp và đối tƣợng 2 2 2.1. Cơ bản về đối tượng 2.2. Mối quan hệ giữa các đối tượng 2.3. Cơ bản về lớp 2.4. Mối quan hệ giữa các lớp 2.5. Sự tương tác lẫn nhau của lớp và đối tượng Chƣơng 3. Sự phân loại (Classification). 2 3.1. Tầm quan trọng của sự phân loại 3.2. Xác định các lớp và đối tượng Chƣơng 4. Phân tích thiết kế hệ thống hƣớng đối 18 16 2 tƣợng sử dụng UML (Unified Model Language) 4.1. Ngôn ngữ mô hình thống nhất (UML) 4.2. Các biểu đồ (Diagrams) Chƣơng 5. Quy trình phân tích và thiết kế 2 2 5.1. Nền tảng 5.2. Quy trình vĩ mô: Vòng đời của triển khai phần mềm 5.3. Quy trình vi mô: Quá trình phân tích và thiết kế Chƣơng 6. Một số bài toán cụ thể 4 3 1 6.1. Hệ thống điều khiển: Quản lý hệ thống giao thông 6.2. Ứng dụng mạng lưới: Hệ thống theo dõi kỳ nghỉ Nhiệm vụ của sinh viên: Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa học phần và bài thi kết thúc học phần theo đúng quy định. Tài liệu học tập: 1. Grady Booch, Robert A.Maksimchuk, Michael W.Engle, Bobbi J.Young, Ph.D, Jim Conallen, Kelli A.Houston, Object-Oriented Analysis And Design with Application, Third Edition. 2. Robert V. Stumpf, Lavette C. Teague, Object-Oriented Systems Analysis and Design with UML, Pearson Prentice Hall 3. Đoàn Văn Ban, Phân tích và thiết kế hệ thống hướng đối tượng, Nhà xuất bản ĐHQG Hà Nội, 2006.
  4. 4 4. Nguyễn Văn Vỵ, Phân tích và thiết kế các hệ thống thông tin hiện đại, Nhà xuất bản Thống Kê, Hà Nội, 2002. Hình thức và tiêu chuẩn đánh giá sinh viên: - Hình thức thi: thi viết. - Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa học phần và bài thi kết thúc học phần. Thang điểm: Thang điểm chữ A, B, C, D, F. Điểm đánh giá học phần: Z = 0,3X + 0,7Y. Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên. Ngày phê duyệt: / / Trƣởng Bộ môn
  5. 5 CHƢƠNG I: MÔ HÌNH ĐỐI TƢỢNG 1.1. Sự phát triển của mô hình đối tượng Trong mục này chúng ta khảo sát sự phát triển của các công cụ để giúp chúng ta hiểu sự thành lập và các nét nổi bật của kỹ thuật hướng đối tượng. Trong quá trình phát triển công nghệ phần mềm chúng ta có thể để ý và nghiên cứu theo 2 hướng sau: - Phát triển các chương trình nhỏ tới các chương trình lớn - Sự phát triển của các ngôn ngữ lập trình bậc cao hơn. Hầu hết tất cả các chương trình phần mềm ngày càng đòi hỏi cao vào phức tạp hơn. Chính điều này đã thúc đẩy việc nghiên cứu trong lĩnh vực công nghệ phần mềm, mà đặc biệt quan tâm tới sự phân tích, trừu tượng và tổ chức cho hệ thống. Đi đôi với điều này, việc phát triển các ngôn ngữ lập trình cũng đã đáp ứng được phần nào về giải quyết yêu cầu phức tạp của hệ thống. Wenger đã phân loại ra một số ngôn ngữ lập trình bậc cao phổ biến và sắp xếp theo thứ tự tùy thuộc và một số đặc tính của từng loại ngôn ngữ: - Thế hệ ngôn ngữ thứ nhất (1954 -195) FORTRAN I Biểu thức toán học ALGOL 58 Biểu thức toán học Flowmatic Biểu thức toán học IPL V Biểu thức toán học - Thế hệ ngôn ngữ thứ hai (1959 – 1961) FORTRAN II Các thủ tục con, tách riêng rẽ các mô hình phức tạp ALGOL 60 Cấu trúc khối, kiểu dữ liệu COBOL Mô tả dữ liệu Lisp Con trỏ, - Thế hệ ngôn ngữ thứ ba (1962 – 1970) PL/1 FORTRAN + ALGOL + COBOL ALGOL 68 Kế thừa nghiêm ngặt từ ALGOL 60 Pascal Kế thừa đơn giản từ ALGOL 60 Simula Lớp, trừu tượng dữ liệu - Giai đoạn (1970 -1980): Trong giai đoạn này có rất nhiều ngôn ngữ khác nhau đuợc phát minh ra. Tuy nhiên có một số ngôn ngữ sau đã được sử dụng rộng rãi: C Hiệu quả, có thể thực thi đuợc FORTRAN 77 Theo chuẩn ANSI
  6. 6 Pascal Kế thừa đơn giản từ ALGOL 60 Simula Lớp, trừu tượng dữ liệu - Giai đoạn hướng đối tượng (1980 – 1990) Smalltalk Ngôn ngữ hướng đối tượng C++ Phát triển từ C và Simula Ada83 Mạnh hơn Pascal Eiffel Phát triển từ Ada và Simula - Giai đoạn Framework (1990 – ngày nay): Nhiều ngôn ngữ mới đuợc phát triển và yêu cầu cần phải tuân theo một tiêu chuẩn nào đó. Do đó dẫn đến việc lập trình theo các Framework.. Visual Basic Dễ dàng phát triển các giao diện đồ họa cho các ứng dụng Windows Java Kế thừa từ Oak Python Ngôn ngữ kịch bản hướng đối tượng J2EE Dựa trên các Framework cơ bản của Java .NET Dựa trên các đối tượng Framework cơ bản của Microsoft Visual C# Visual Basic .NET Visual Basic cho Framework của Microsoft .NET Bây giờ chúng ta xem xét cấu trúc của mỗi thế hệ ngôn ngữ lập trình. Trong hình 1-1, chúng ta có thể thấy kiến trúc của các ngôn ngữ lập trình ở thế hệ thứ nhất và đầu thời kì thứ 2. Về kiến trúc, chúng được xây dựng bởi các khối cơ bản và các phần được liên kết với nhau như thế nào. Trong hình này, chúng ta có thể thấy rằng các khối cơ bản để xây dựng lên các ứng dụng là các chương trình con.
  7. 7 Các ứng dụng được viết bởi những ngôn ngữ này thông thường được thiết kế với các chương trình con và dữ liệu toàn cục. Các mũi tên trên hình vẽ nói rằng các chương trình phụ thuộc vào các kiểu dữ liệu khác nhau. Trong suốt quá trình thiết kế dữ liệu của một chương trình con có thể tách biệt với dữ liệu của các chương trình con khác. Một lỗi trong một phần của chương trình có thể ảnh hưởng tới toàn bộ hệ thống bởi vì cấu trúc dữ liệu toàn cục được sử dụng cho tất các các chương trình con. Khi chúng ta cần chỉnh sửa một hệ thống lớn, khó có thể duy trì tính toàn vẹn của thiết kế gốc. Kiến trúc của ngôn ngữ lập trình ở cuối giai đoạn 2 và đầu giai đoạn 3 Giữa năm 1960, cuối cùng thì các chương trình cũng được công nhận là trung gian giữa “vấn đề” và máy tính. “ Chương trình đầu tiên, giờ được gọi là thủ tục.” các chương trình con được đề xuất trong giai đoạn 1950 nhưng nó vẫn chưa được coi như là một abstraction ở thời điểm đó. Subprograms được đánh giá như là một hướng tiếp cận để tách các chức năng của chương trình. Các subprogram có thể phục vụ như là một kĩ thuật tóm tắt có 3 hê quả quan trọng. Thứ nhất, các ngôn ngữ lập trình được hỗ trợ với nhiều các truyền tham số khác nhau. Thứ hai, nền tảng của lập trình cấu trúc là sắp xếp, bố trí rõ ràng thông qua các chương trình con. Thứ ba, phương pháp cấu trúc thể hiện được ưu điểm, cung cấp các định hướng để các nhà thiết kế cố gắng xây dựng một hệ thống phức tạp thông qua các chương trình nhỏ hơn được coi là các khối chương trình cơ bản. Kiến trúc lập trình trong giai đoạn này chỉ ra một vài điều không phù hợp của các ngôn ngữ trước đó.
  8. 8 Kiến trúc ngôn ngữ lập trình ở cuối giai đoạn 2 đầu giai đoạn 3 Kiến trúc của ngôn ngữ lập trình ở cuối giai đoạn thứ 3 Trong giai đoạn này, việc phân tích thiết kế các chương trình mang tính quy mô lớn ngày càng nhiều và đòi hỏi nhiều đội, nhiều nhóm phai tham gia cùng một lúc, do vậy rất cần thiết phải chia chương trình ra thành các phần khác nhau. Do đó, hình thành việc chia các chương trình ra thành các module nhỏ như được hiển thị ở hình dưới đây: Kiến trúc ngôn ngữ lập trình của cuối giai đoạn 3 Kiến trúc của đối tƣợng cơ bản và ngôn ngữ lập trình hƣơng đối tƣợng Trừu tượng hóa dữ liệu là quan trọng để kiểm soát sự phức tạp của dữ liệu. 1.2. Nền tảng của mô hình hướng đối tượng Thiết kế hệ thống theo hướng cấu trúc giúp những nhà lập trình viên xây dựng các hệ thống phức tạp sử dụng thuật toán như là các khối cơ bản. Tương tự, thiết kế hệ thống theo hướng đối tượng giúp người lập trình viên khai thác được những điểm mạnh của đối tượng cơ bản và ngôn ngữ lập trình hướng đối tượng, sử dụng lớp và đối tượng như là các khối xây dựng cơ bản.
  9. 9 Trên thực tế, mô hình đối tượng đã bị chi phối bổi một số tác nhân, không chỉ là ngôn ngữ lập trình hướng đối tượng. Thực vậy, như đã thảo luận ở phần trước, nền tảng mô hình hướng đối tượng, mô hình đối tượng đã chứng mình là một khái niệm thống nhất trong khoa học máy tính, không chỉ thích hợp với ngôn ngữ lập trình mà còn thích hợp với thiết kế giao diện người dùng, cơ sở dữ liệu, và ngay cả với kiến trúc của máy tính. Nguyên nhân của việc được ưa chuộng phổ biến đó là hướng đối tượng giúp chúng ta đối phó với các kế thừa phức tạp trong nhiều loại hệ thống khác nhau. Phân tích và thiết kế hướng đối tượng theo đó đưa ra sự phát triển tiên tiến hơn. Nó không phá vỡ các cấu trúc của chương trình đã được thiết kế trước đó. Tuy nhiên, hầu hết các lập trình viên không được huấn luyện khắt khe kỹ năng phân tích và thiết kế hướng đối tượng. 1.3. Các phần tử của mô hình đối tượng Hầu hết các lập trình viên làm việc trên một ngôn ngữ và sử dụng chỉ một phong cách lập trình. Họ lập trình theo mô hình mẫu của ngôn ngữ mà họ sử dụng. Phong cách lập trình được xem như là một cách tổ chức chương trình dựa trên một số các mô hình của lập trình và ngôn ngữ đã viết ra chương trình một cách rõ ràng. Theo thống kê thì có một số kiểu lập trình sau đây: + Hướng thủ tục Các thuật toán + Hướng đối tượng Các lớp và đối tượng + Hướng Logic Các mục đích + Hướng luật Các luật If…then + Hướng ràng buộc Các quan hệ bất biế, không đổi. Không có một kiểu lập trình nào mà tốt nhất đối với tất các các loại ứng dụng. Ví dụ: Lập trình theo hướng thủ tục thì tốt đối với việc thiết kế các chương trình liên quan tới việc tính toán… Từ trước tới nay đã và đang tồn tại nhiều phương pháp được áp dụng để phân tích thiết kế một hệ thống thông tin. Một trong những phương pháp đó là hướng thủ tục, được sử dụng trong việc giải quyết các vấn đề của hệ thống hiện tại hoặc cho việc xây dựng một hệ thống mới. Có nhiều phương pháp được sử dụng cho việc thiết kế và phát triển hệ thống thông tin bao gồm: Systems Development Life Cycle (SDLC), Rapid Application Development (RAD), Object-Oriented Analysis and Design. Phương pháp SDLC được sử dụng phổ biến nhất đó là Structured System Analysis and Design. Phương pháp cấu trúc cho phép nhà phân tích chia nhỏ hệ thống phức tạp ra thành các hệ thống nhỏ hơn, rõ ràng hơn, và quản lý cũng dễ dàng hơn. Phương pháp OOAD chủ yếu là phân tích theo hướng đối tượng hơn là hướng thủ tục như là phương pháp SSAD. Một đối tượng là một người, địa điểm hay một sự vật được mô tả hay tồn tại trong hệ thống mà có 3 điều cần quan tâm: - Cái gì để phân biệt, nhận biết nó (Định danh của nó và toàn bộ các thuộc tính).
  10. 10 - Quan hệ với cai gì (Quan hệ của nó với các đối tượng khác). - Nó làm những cái gì (Các phương thức của nó thực hiện với CSDL). Phân tích hướng đối tượng là quá trình phát triển một mô hình hướng đối tượng mà trong mô hình này các đối tượng ban đầu biểu diễn các thực thể và các phương thức liên quan tới vấn đề cần giải quyết. Thiết kế hướng đối tượng là quá trình phát triển một mô hình hướng đối tượng, trong giai đoạn này phải xác định được các yêu cầu. Nói tóm lại trong OOAD chúng ta đề cập tới thuật ngữ đối tượng nhiều hơn là chức năng. Phân tích và thiết kế hệ thống theo hƣớng truyền thống System development life Cycle (SDLC) hoặc Structured Systems Analysis and Design (SSAD) là nền tảng cho mọi hoạt động và nhiệm vụ cần thiết để hoàn thành việc phát triển một hệ thống thông tin. Phương pháp này như đã đề cập ở phần trước được gọi là mô hình thác nước. Các vấn đề cơ bản trong SSAD có thể được tóm tắt như sau: - Điều đầu tiên trong SSAD đó là sự phân tích theo hướng từ trên xuống dưới. Ở đây, hệ thống được coi một tổng thể ban đầu. Chủ yếu việc phân tích ở giai đoạn này để hiểu được những đặc tính của hệ thống, bỏ qua những phần nhỏ và chỉ tiết. Những phần này sẽ được phân tích sau. - Tiếp theo, phạm vi của hệ thống được định nghĩa là nơi hệ thống được triển khai. Nhà phân tích tập trung vào 2 mục đích chính: Hệ thống mới cần phải làm những gì và Hệ thống mới làm nó như thế nào? - Phương pháp này yêu cầu người dùng theo sát từ đầu tới khi dự án hoàn thành. Nhà phân tích sẽ gặp gỡ với người dùng và giải quyết vấn để, xác nhật những vấn đề mà người dùng cần. - Hai vấn đề chính trong việc phát triển hệ thống thông tin đó là các quy trình và dữ liệu được xây dựng độc lập với phương pháp này. Các quy trình được xây dựng bởi các lược đồ luồng dữ liệu, lược đồ này mô phỏng luồng dữ liệu giữa quy trình và dữ liệu lưu trữ và nó được thay đổi như thế nào. Mô hình dữ liệu được định nghĩa bằng việc quan hệ giữa các thực thể (ERD), ERD mô tả dữ liệu (thực thể) và sự phối kết hợp giữa chúng. Phân tích thiết kế hệ thống hƣớng đối tƣợng Phương pháp tiếp cận theo hướng đối tượng để phát triển một hệ thống xem hệ thống như là một tập các đối tượng tương tác với nhau, làm việc cùng nhau để hoàn thành nhiệm vụ. Không có sự tách biệt giữa quy trình và chương trình. Không có sự tách biệt giữa thực thể dữ liệu và tệp tin. Một đối tượng là một vấn đề trong hệ thống máy tính. Phương pháp OOAD có thể chia ra làm 2 lĩnh vực chính:
  11. 11 - Phân tích hướng đối tượng: Điều này liên quan tới phát triển mô hình hướng đối tượng của ứng dụng. Điều này xác định đối tượng biểu diễn các thực thể và quan hệ giữa các đối tượng và phương pháp cần thiết để giải quyết vấn đề. - Thiết kế hướng đối tượng: Điều này liên quan tới phát triển mô hình hướng đối tượng của hệ thống cần thiết để thực hiện các yêu cầu. Các nhà phân tích và lập trình phải nghĩ thuật ngữ đối tượng nhiều hơn là chức năng. Mô hình đối tượng dựa trên các yêu tố cơ bản bao gồm: abstraction, encapsulation, modularity, hierarchy…Mục tiêu tập trung ủa mô hình đối tượng là phân tích đối tượng. Một hệ thống hướng đối tượng sẽ có một số đối tượng, mỗi đối tượng này sẽ kết hợp với các đối tượng khác để hoàn thành một nhiệm vụ. Bài tập 1) Trình bày sự phát triển của các mô hình lập trình? 2) Trình bày nền tảng của mô hình đối tượng? 3) Các thành phần của mô hình đối tượng?
  12. 12 CHƢƠNG II: LỚP VÀ ĐỐI TƢỢNG 2.1. Cơ bản về đối tượng Trong khóa học này, nhưng chúng ta đã đề cập từ chương trước, đối với sử dụng OOAD thì người phân tích và lập trình sử dụng thuật ngữ đối tượng rất rất nhiều. Vậy ta tự hỏi, đối tượng là gì? Đối tượng là một trường hợp của một sự việc có kiểu cụ thể. Chúng ta lấy một ví dụ về đối tượng là An, một sinh viên trường Đại học Hàng hải. An là một trường hợp trong tất cả các sinh viên của trường Đại học Hàng hải. Chúng ta cũng có thể nói đối tượng là cái gì đó mà chúng ta muốn lấy thông tin về chúng. Ví dụ, tôi muốn quản lý các khóa học khác nhau tại trường Đại học Hàng hải. Theo đó tôi phải tạo các đối tượng mà có thể lưu trữ thông tin về các khóa học này, để chúng ta có thể theo dõi hay lấy thông tin về các khóa học khác nhau. Như vậy, một đối tượng có thể là tồn tại ở dạng vật chất, như là một sinh viên, một khóa học, hay một quyển sách hoặc tồn tại ở dạng trìu tượng như là cảm xúc… Trong UML chúng ta xây dựng đối tượng bằng việc sử dụng một hình chữ nhật với 2 phần. Phần trên chứa tên của đối tượng và tên của lớp mà đối tượng thuộc vào lớp đó. Cú pháp chuẩn là: tên đối tượng: tên lớp. Phần dưới liệt kê các thuộc tính của đối tượng đó. 2.2. Mối quan hệ giữa các đối tượng Toàn bộ hệ thống được xây dựng từ rất nhiều lớp và đối tượng. Hoạt động của hệ thống thu được thông qua sự phối hợp của các đối tượng trong hệ thống. Các mối quan hệ cung cấp các đường dẫn để các đối tượng tương tác với nhau. Có hai loại quan hệ giữa các đối tượng là : - liên kết(link) - kết tập (aggregation) Mối quan hệ liên kết (link)
  13. 13 Mối quan hệ liên kết là sự kết nối vật lý hoặc logic giữa các đối tượng. Một đối tượng phối hợp với các đối tượng khác thông qua các liên kết của nó với các đối tượng này. Nói một cách khác, một liên kết biểu diễn một liên hợp (association) xác định, trong đó một đối tượng(client) sử dụng những dịch vụ của đối tượng khác (supplier). Thông thường, thông điệp được truyền giữa hai đối tượng là một chiều, đôi khi có thể là cả hai chiều. Các thông điệp được khởi tạo ở phía client, sau đó được đưa tới supplier, còn dữ liệu có thể dịch chuyển theo cả hai chiều trên liên kết. Với mỗi liên kết, một đối tượng có thể có một trong ba vai trò:  Actor: Một đối tượng có thể hoạt động trên các đối tượng khác chứ không bị thao tác bởi các đối tượng khác.  Server: Một đối tượng không bao giờ hoạt động trên các đối tượng khác; nó chỉ có thể bị thao tác bởi các đối tượng khác.  Agent: Là đối tượng vừa có thể hoạt động trên các đối tượng khác, lại vừa có thể bị các đối tượng khác thao tác. Mối quan hệ kết tập (aggregation) Mối quan hệ kết tập chỉ là một dạng đặc biệt của mối quan hệ liên hợp trong đó một đối tượng là sự tổng hợp của các đối tượng thành phần. Ví dụ: Một chiếc xe ô tô có 4 bánh, một cần lái, một hộp số, một động cơ ... 2.3. Cơ bản về lớp Lớp là một sự trìu tượng trong mô hình hướng đối tượng và trong ngôn ngữ hướng đối tương. Một lớp bao gồm cấu trúc và hành vi. Các lớp có thể định nghĩa thông qua các lớp khác bằng việc sử dụng tính chất kế thừa. Một lớp là mô tả cho một tập đối tượng có thuộc tính và hoạt động giống nhau. Nó phục vụ như là một mẫu khi mà tạo một đối tượng mới. Mục đích của nó là định nghĩa một tập các thuộc tính và thao tác mà mô tả đầy đủ cấu trúc và hành vi của các đối tượng. Trong cách nói khác thì đối tượng là một trường hợp cụ thể của lớp. Nó luôn luôn bắt nguồn từ lớp. Nó có cấu trúc và hành vi tùy theo sự mô tả trong lớp. Trong UML một lớp được biểu diễn như là một hình chữ nhật với 3 phần riêng biệt được phân tách bởi dòng kẻ ngang. Phần trên cùng thể hiên tên lớp, phần giữa định nghĩa tất cả các thuộc tính của lớp, phần cuối cùng chứa các định nghĩa thao tác.
  14. 14 Lớp là một loại đối tượng đặc biệt. Nó là một tập hợp các đối tượng đã được tạo. Nó được dùng để tạo và huỷ các đối tượng thuộc về nó. Nó cũng có thể được dùng để lưu dữ liệu và cung cấp cho các dịnh vụ trong cùng nhóm. Một ứng dụng có thể truy cập các dịch vụ của nó thông qua tên lớp. 2.2.1. Các phƣơng pháp đƣợc sử dụng để xác định lớp Trong thực tế có rất nhiều phương pháp có thể xác định được lớp trong một hệ thống. Tuy nhiên ở đây tôi đề cập tới 2 phương pháp hay được dùng nhất: - Xác định các danh từ. - Xác định lớp dựa trên khái niệm về danh sách lớp.
  15. 15 2.4. Mối quan hệ giữa các lớp Quan hệ giữa các lớp có 4 loại:  Liên hệ ( Association)  Khái quát hoá (Generalization)  Phụ thuộc (Dependency)  Nâng cấp (Refinement) Một liên hệ là một số nối kết giữa các lớp, cũng có nghĩa là sự nối kết giữa các đối tượng của các lớp này. Trong UML, 1 liên hệ được định nghĩa là một mối quan hệ mô tả một tập hợp các nối kết trong khi nối kết được định nghĩa là một sự liên quan về ngữ nghĩa giữa một nhóm các đối tượng. Khái quát hoá là mối quan hệ giữa một yếu tố mang tính khái quát cao hơn và một yếu tố chuyên biệt hơn. Có thể chứa chỉ các thông tin bổ sung một thực thể (một đối tượng là một thực thể của một lớp) của yếu tố mang tính chuyên biệt hơn có thể được sử dụng ở bất cứ nơi nào mà đối tượng mang tính khái quát hoá hơn được phép. Sự phụ thuộc là một quan hệ giữa các yếu tố gồm một yếu tố mang tính độc lập và một yếu tố mang tính phụ thuộc một sự thay đổi trong yếu tố độc lập sẽ ảnh hưởng đến yếu tố phụ thuộc. Một sự nâng cấp là một quan hệ giữa hai lời mô tả của cùng một sự vật, nhưng ở những mức độ trừu tượng hoá khác nhau. 2.5. Sự tương tác lẫn nhau của lớp và đối tượng Lớp vàđối tượng, mặc dù có mối liên hệ tươngứng lẫn nhau, nhưng bản chất lại khác nhau:  Lớp là sự trừu tượng hoá của các đối tượng. Trong khi đó, đối tượng là một thể hiện của lớp.  Đối tượng là một thực thể cụ thể, có thực, tồn tại trong hệ thống. Trong khi đó, lớp là một khái niệm trừu tượng, chỉ tồn tại ở dạng khái niệmđể mô tả cácđặc tính chung của một số đối tượng.  Tất cả các đối tượng thuộc về cùng một lớp có cùng các thuộc tính và các phương thức.  Một lớp là một nguyên mẫu của một đối tượng. Nó xác định các hành động khả thi và các thuộc tính cần thiết cho một nhóm các đối tượng cụ thể. Nói chung, lớp là khái niệm tồn tại khi phát triển hệ thống, mang tính khái niệm, trừu tượng. Trong khi đó, đối tượng là một thực thể cụ thể tồn tại khi hệ thống đang hoạt động. Bài tập 1) Đối tượng là gì? Mối quan hệ giữa các đối tượng? 2) Lớp là gì? Mối quan hệ giữa các lớp? 3) Trình bày mối quan hệ giữa Lớp và Đối tượng?
  16. 16 CHƢƠNG III: SỰ PHÂN LOẠI Sự phân loại được thực hiện dựa trên những gì hiểu biết của chúng ta. Trong thiết kế hướng đối tượng, việc phân loại các đối tượng cùng với các tương tác của nó trong hệ thống là vô cùng quan trọng. Nếu như chúng ta phân loại không đúng thì hệ thống chúng ta sẽ cồng kềnh, hoạt động không hiệu quả, khó khăn trong việc triển khai và lập trình. Tuy nhiên nếu chúng ta có cái nhìn tốt và việc phân loại các đối tượng, xây dựng các lớp chính xác sẽ dẫn tới hệ thống chúng ta thiết kế rõ ràng, và triển khai cũng dễ hơn, nhanh hơn, tránh được việc trùng lặp công việc. Không có một quy định chung nào để tìm ra được sự phân loại tốt nhất, tất cả đều phải dựa trên kinh nghiệm và yêu cầu của hệ thống hiện tại. 3.1. Tầm quan trọng của việc phân loại hợp lý Việc xác định các lớp và các đối tượng là một trong những phần đầy thử thách của phân tích và thiết kế hướng đối tượng. Kinh nghiệm cho thấy rằng xác định bao gồm cả phát hiện và sáng tạo. Thông qua phát hiện, chúng ta có thể nhận ra được những lớp trìu tượng và kĩ thuật mà tạo nên vấn đề. Thông qua sáng tạo, chúng ta đưa ra những khái quát trìu tượng cũng như các kĩ thuật mới xác định các đối tượng cộng tác như thế nào. Cuối cùng, phát hiện và sáng tạo là các vấn đề trong phân loại và việc phân loại là đi tìm những vấn đề tương tự nhau. Khi chúng ta phân loại, chúng ta tìm đến những nhóm sự việc mà có chung một cấu trúc hoặc các hành vi chung, phổ biến. Phân loại giúp chúng ta cách xác định những lớp tổng quát, và sự phân cấp giữa các lớp với nhau. Bằng việc nhận ra các tương tác chung giữa các đối tượng, chúng ta đưa ra các kĩ thuật được coi là quyết định trong việc thực hiện. Việc phân loại cũng hướng dẫn chúng ta trong việc đưa ra những quyết định về module hóa. Chúng ta có thể chọn và đặt toàn bộ các lớp và đối tượng trong cùng một module hoặc trong các module khác nhau, tùy thuộc vào sự giống nhau mà chúng ta tìm thấy giữa các lớp và đối tượng đó. Phân loại cũng đóng vai trò trong việc chỉ định các quy trình xử lý. Chúng ta có thể đặt toàn bộ các quy trình cùng với nhau trong một bộ xử lý hoặc ở các bộ xử lý khác nhau, tùy thuộc vào việc đóng gói, chức năng hoặc là độ tin cậy. 3.2. Xác định các lớp và đối tượng Vấn đề phân loại đã được vô số các nhà triết học, ngôn ngữ học, các nhà khoa học và cả các nhà toán học đặc biệt quan tâm. Chúng ta có thể tham khảo những kinh nghiệm của họ ở trong lĩnh vực phân loại này vào việc thiết kế hướng đối tượng nhờ sự phân loại. Phƣơng pháp tiếp cận cổ điển và hiện đại Có 3 hướng tiếp cận phổ biến thường được dùng để phân loại:
  17. 17 - Loại cổ điển. - Nhóm khái niệm. - Lý thuyết nguyên mẫu Loại cổ điển Trong hướng tiếp cận cổ điển để phân loại, ”Tất cả các thực thể mà có một thuộc tính hoặc một tập các thuộc tính giống nhau tạo lên một loại. Như là các thuộc tính cần thiết và đủ để định nghĩa một loại”. Nhóm khái niệm. Với hướng tiếp cận này thì các lớp được tạo ra do việc xây dựng các khái niệm mô tả đầu tiên của lớp này và sau đó phân loại các thực thể theo các mô tả. Lý thuyết mẫu Một lớp của các đối tượng được miêu tả bởi một đối tượng nguyên mẫu, và một đối tượng được coi như là một thành viên của lớp đó nếu và chỉ nếu nó nó tương tự với các mẫu này. Bài tập 1) Sự phân loại là gì? Tầm quan trọng của sự phân loại? 2) Trình bày phương pháp xác định lớp và đối tượng?
  18. 18 CHƢƠNG IV: PHÂN TÍCH VÀ THIẾT KẾ HƢỚNG ĐỐI TƢỢNG SỬ DỤNG UML 4.1. Ngôn ngữ mô hình thống nhất UML UML là ngôn ngữ chuẩn cho việc quy định các tiêu chuẩn, hình dung, xây dựng, và tài liệu của một hệ thống phần mềm. UML là viết tắt của Unified Modeling Language. UML hoàn toàn khác với các ngôn ngữ lập trình hướng đối tượng như C++, java… UML được sử dụng cho việc tạo các bản kế hoạch cho việc phát triển phần mềm. UML không phải là ngôn ngữ lập trình, nhưng các công cụ có thể được dùng để sinh ra mã lệnh trong các ngôn ngữ khác nhau. UML có mối liên quan mật thiết với phân tích và thiết kế hệ thống hướng đối tượng. Vì vậy trong bài giảng này tôi sử dụng UML như là một công cụ chính trong việc thiết kế và giảng dạy. 4.1.1 Các khối cơ bản trong UML UML đóng vai trò quan trọng trong việc tạo nên mô hình khái niệm. Mô hình khái niệm của UML có thể được tạo bởi 3 phần từ chính sau: - Các khối UML - Các luật, nguyên tắc để kết nối giữa các khối - Kỹ thuật chung của UML. Các khối của UML có thể được định nghĩa là: - Things. - Relationships. - Diagrams. 4.1.2. Things Things là các khối quan trọng của UML. Things có thể là: Structural, Behavioral, Grouping và Annotational. Structural things: Structural things định nghĩa phần cố định của mô hình. Chúng thể hiện các phần từ vật lý và khái niệm. Có một số Strutural things sau: - Class: biểu diễn cho một tập các đối tuwngj có cùng trách nhiệm, nhiệm vụ.  Phần trên cùng biễu diễn tên lớp.  Phần thứ 2 biểu diễn các thuộc tính của lớp.  Phần thứ 3 được dùng để mô tả các thao tác có thể được thực hiện.  Phần thứ 4 là phần lựa chọn dùng để hiển thị thêm các thành phần phụ thêm
  19. 19 - Interface: định nghĩa một tập các thao tác mà đặc tả rõ trách nhiệm của hệ thống. Được biểu diễn bằng một hình tròn, bên dưới ghi tên của giao diện. Được dùng để mô tả các chức năng, mô tả cái chung nhất. Trong giao diện chưa có viết mã lệnh để thực thi. - Collaboration: định nghĩa sự tương tác lẫn nhau giữa các phần tử. Collaboration được biểu diễn bằng hình eclips nét đứt. Tên của nó được ghi ở bên trong hình. - Use case: biểu diễn một tập các hoạt động được thực hiện bởi một hệ thống cho một mục đích xác định. Use case được biểu diễn bằng hình eclip liền nét với tên được ghi bên trong hình.
  20. 20 - Actor có thể được định nghĩa như là các thực thể bên trong hoặc bên ngoài tương tác với hệ thống. - Kí hiệu bắt đầu: được dùng để khởi tạo, bắt đầu một quy trình xử lý. - Kí hiệu kết thúc: Được dùng để báo hiệu kết thúc một quá trình xử lý. - Active class: có cấu tạo giống với class nhưng đường viền bên ngoài đậm hơn. Được dùng để miêu tả hành động hiện hành của hệ thống. - Component: Mô tả phần vật lý của hệ thống. Tên của nó được ghi ở bên trong hình và có thể add thêm các phần tử khác nếu cần thiết.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2