Bài giảng Nhập môn Công nghệ phần mềm - Chương 5: Thiết kế kiến trúc phần mềm - Nguyễn Thị Minh Tuyền

pdf 60 trang ngocly 1270
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương 5: Thiết kế kiến trúc phần mềm - Nguyễn Thị Minh Tuyền", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_chuong_5_thiet_ke_kien.pdf

Nội dung text: Bài giảng Nhập môn Công nghệ phần mềm - Chương 5: Thiết kế kiến trúc phần mềm - Nguyễn Thị Minh Tuyền

  1. Thiết kế kiến trúc phần mềm Nguyễn Thị Minh Tuyền Nội dung của slide này dựa vào các slides của Ian Sommerville
  2. Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng Nguyễn Thị Minh Tuyền 2 Nhập môn CNPM
  3. Kiến trúc phần mềm v Thiết kế kiến trúc là việc hiểu một hệ thống được tổ chức như thế nào và thiết kế toàn bộ kiến trúc của hệ thống đó. v Đầu ra của quy trình thiết kế này là một mô tả về kiến trúc phần mềm. Nguyễn Thị Minh Tuyền 3 Nhập môn CNPM
  4. Thiết kế kiến trúc v Là giai đoạn đầu tiên của một quy trình thiết kế hệ thống. v Biểu diễn mối liên kết giữa đặc tả và các quy trình thiết kế. v Thường được tiến hành song song với các hoạt động đặc tả. v Bước này giúp nhận diện các component chính của hệ thống và cách giao tiếp của chúng với nhau. Nguyễn Thị Minh Tuyền 4 Nhập môn CNPM
  5. Các mức trừu tượng của kiến trúc v Kiến trúc phần mềm nhỏ liên quan đến kiến trúc của các chương trình đơn lẻ. Ở mức này, một chương trình được phân thành các component. v Kiến trúc hệ thống lớn liên quan đến kiến trúc của một hệ thống phức tạp gồm nhiều hệ thống khác, chương trình và các components chương trình. Những hệ thống này được phân tán trên nhiều máy tính khác nhau, có thể được sở hữu và quản lý bởi nhiều công ty khác nhau. Nguyễn Thị Minh Tuyền 5 Nhập môn CNPM
  6. Ưu điểm của kiến trúc v Giao tiếp với các stakeholder § Kiến trúc được sử dụng như là một trọng tâm của việc thảo luận với các stakeholder hệ thống. v Phân tích hệ thống § Là cách để phân tích xem liệu hệ thống có đáp ứng được các yêu cầu phi chức năng hay không. v Tái sử dụng § Kiến trúc có thể được tái sử dụng cho nhiều hệ thống khác. Nguyễn Thị Minh Tuyền 6 Nhập môn CNPM
  7. Biểu diễn kiến trúc v Sử dụng các biểu đồ khối đơn giản, không mang tính hình thức để chỉ ra các thực thể và quan hệ giữa chúng là phương pháp thường gặp nhất để viết tài liệu về kiến trúc phần mềm. v Việc sử dụng loại kiến trúc này bị chỉ trích trong một thời gian dài do nó thiếu ngữ nghĩa, không chỉ ra được loại quan hệ giữa các thực thể và không chỉ ra các thuộc tính của thực thể trong kiến trúc. v Phụ thuộc vào việc sử dụng các mô hình kiến trúc. Yêu cầu về ngữ nghĩa của mô hình phụ thuộc vào cách các mô hình đó được sử dụng. Nguyễn Thị Minh Tuyền 7 Nhập môn CNPM
  8. Kiến trúc của một hệ thống điều khiển robot Vision system Object Arm Gripper identification controller controller system Packaging selection system Packing Conveyor system controller Nguyễn Thị Minh Tuyền 8 Nhập môn CNPM
  9. Sử dụng các mô hình kiến trúc v Là phương tiện để thảo luận về thiết kế hệ thống § Thiết kế kiến trúc ở mức cao có ích khi giao tiếp với các stakeholder và lên kế hoạch dự án vì nó không đi sâu vào chi tiết. Các stakeholder có thể hiểu được mô hình trừu tượng của hệ thống. Do đó mà họ có thể thảo luận về toàn bộ hệ thống mà không bị rối bởi việc quá đi sâu vào chi tiết. v Là cách để viết tài liệu về kiến trúc đã được thiết kế § Mục tiêu ở đây là tạo ra một mô hình hệ thống hoàn chỉnh trong đó nó chỉ ra được các component khác nhau trong hệ thống, giao diện và sự kết nối của chúng. Nguyễn Thị Minh Tuyền 9 Nhập môn CNPM
  10. Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng Nguyễn Thị Minh Tuyền 10 Nhập môn CNPM
  11. Quyết định chọn kiến trúc thiết kế v Thiết kế kiến trúc là một quy trình sáng tạo. Các hoạt động trong quy trình phụ thuộc vào loại ứng dụng được phát triển, kinh nghiệm của người thiết kế kiến trúc và các yêu cầu cụ thể của hệ thống. v Thiết kế kiến trúc được như là một chuỗi các quyết định hơn là một chuỗi tuần tự các hoạt động. Nguyễn Thị Minh Tuyền 11 Nhập môn CNPM
  12. Quyết định chọn kiến trúc thiết kế 1. Có thể sử dụng kiến trúc tổng quát nào không? 2. Hệ thống được phân tán như thế nào? 3. Mẫu kiến trúc nào phù hợp? 4. Phương pháp nào được sử dụng để cấu trúc hóa hệ thống? 5. Hệ thống được phân rã thành các module như thế nào? 6. Chiến thuật điều khiển nào được sử dụng? 7. Thiết kế kiến trúc sẽ được đánh giá bằng cách nào? 8. Kiến trúc được viết thành tài liệu như thế nào? Nguyễn Thị Minh Tuyền 12 Nhập môn CNPM
  13. Tái sử dụng kiến trúc v Các hệ thống có cùng lĩnh vực thường có cấu trúc tương tự nhau phản ánh những đặc điểm của lĩnh vực đó. § Các dòng sản phẩm ứng dụng được xây dựng dựa vào một kiến trúc lõi với một số biến thể để thỏa mãn các yêu cầu cụ thể của khách hàng. v Kiến trúc của một hệ thống có thể được thiết kế dựa vào một hoặc nhiều mẫu kiến trúc (architectural pattern). § Mẫu kiến trúc là mô tả về kiến trúc của một hệ thống. § Các mẫu này chứa các đặc điểm chính của một kiến trúc đã được sử dụng qua các hệ thống phần mềm khác nhau. Nguyễn Thị Minh Tuyền 13 Nhập môn CNPM
  14. Kiến trúc và đặc điểm của hệ thống v Hiệu năng (Performance) § Định vị các chức năng quan trọng và giảm thiểu giao tiếp. v Bảo mật (Security) § Sử dụng kiến trúc phân tầng với các phần quan trọng được đặt ở các lớp bên trong. v An toàn (Safety) § Định vị các thao tác liên quan đến an toàn trong một số ít các hệ thống con. v Tính thường trực (Availability) § Thiết kế sẵn các component dư thừa sao cho có thể thay thế hoặc cập nhật các component mà không phải dừng hệ thống, nghĩa là đảm bảo cho hệ thống hoạt động liên tục. v Tính dễ bảo trì (Maintainability) § Sử dụng các component nhỏ, chi tiết, có thể thay thế được. Nguyễn Thị Minh Tuyền 14 Nhập môn CNPM
  15. Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng Nguyễn Thị Minh Tuyền 15 Nhập môn CNPM
  16. Các góc nhìn về mặt kiến trúc v Góc nhìn nào là hữu ích khi thiết kế và viết tài liệu về kiến trúc của một hệ thống? v Các khái niệm nào nên được sử dụng để mô tả về mô hình kiến trúc? v Mỗi mô hình kiến trúc chỉ thể hiện một góc nhìn về hệ thống. § Có thể chỉ ra một hệ thống được phân rã thành các module như thế nào, các tiến trình thời gian thực tương tác như thế nào, các component hệ thống được phân tán trên mạng như thế nào. § Đối với việc thiết kế và viết tài liệu, ta thường cần biểu diễn nhiều góc nhìn khác nhau của hệ thống phần mềm. Nguyễn Thị Minh Tuyền 16 Nhập môn CNPM
  17. Mô hình kiến trúc phần mềm 4 + 1 chỉ ra các biểu diễn trừu tượng chỉ ra cách một phần mềm trong hệ thống dưới dạng các đối được phân rã để phát triển tượng và lớp đối tượng. như thế nào. logical view development view use case process view physical view chỉ ra cách các tương tác thời gian thực xảy ra trong hệ chỉ ra phần cứng của hệ thống. thống và cách các component của hệ thống được phân tán trên các processor như thế nào. Nguyễn Thị Minh Tuyền 17 Nhập môn CNPM
  18. Mô hình kiến trúc phần mềm 4 + 1 v Góc nhìn về logic (logical view) § chỉ ra các biểu diễn trừu tượng trong hệ thống dưới dạng các đối tượng và lớp đối tượng. v Góc nhìn về mặt quy trình (process view) § chỉ ra cách các tương tác thời gian thực xảy ra trong hệ thống. v Góc nhìn về mặt phát triển (development view) § chỉ ra cách một phần mềm được phân rã để phát triển như thế nào. v Góc nhìn về mặt vật lý (physical view) § chỉ ra phần cứng của hệ thống và cách các component của hệ thống được phân tán trên các processor như thế nào. v Liên quan đến việc sử dụng use case hay kịch bản (+1) Nguyễn Thị Minh Tuyền 18 Nhập môn CNPM
  19. Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng Nguyễn Thị Minh Tuyền 19 Nhập môn CNPM
  20. Kiến trúc mẫu (Architectural pattern) v Thiết kế mẫu là một phương tiện để biểu diễn, chia sẻ và tái sử dụng lại các kiến thức. v Các mẫu thường chứa thông tin về khi nào chúng hữu ích và khi nào không, độ mạnh yếu của chúng. v Các mẫu được biểu diễn sử dụng bảng và mô tả đồ họa. Nguyễn Thị Minh Tuyền 20 Nhập môn CNPM
  21. Một số mô hình kiến trúc mẫu v Mô hình Model-View-Controller (MVC) v Mô hình kiến trúc phân tầng v Mô hình Repository v Mô hình client–server v Mô hình pipe and filter Nguyễn Thị Minh Tuyền Nhập môn CNPM
  22. The Model-View-Controller (MVC) pattern Tên Mô hình MVC (Model-View-Controller) Mô tả Tách riêng phần biểu diễn và phần tương tác ra khỏi dữ liệu hệ thống. Hệ thống được cấu trúc hóa thành ba component logic tương tác với nhau. • Model component: quản lý dữ liệu hệ thống và các thao tác trên dữ trên dữ liệu đó. • View component: định nghĩa và quản lý cách dữ liệu được biểu diễn tới người dùng như thế nào. • Controller component: Quản lý tương tác người dùng ( ví dụ như ấn phím, nhấp chuột, ) và chuyển các tương tác này tới View và Model. Sử dụng khi nào Được sử dụng khi có nhiều cách biểu diễn và tương tác với dữ liệu. Cũng được sử dụng khi chưa biết được các yêu cầu tương lai cho tương tác và biểu diễn dữ liệu. Ưu điểm Cho phép dữ liệu thay đổi độc lập với việc biểu diễn của nó và ngược lại. Hỗ trợ biểu diễn theo nhiều cách khác nhau trên cùng một dữ liệu. Nhược điểm Có thể chứa code bổ sung và code sẽ phức tạp hơn khi mô hình dữ liệu và mô hình tương tác đơn giản. Nguyễn Thị Minh Tuyền 22 Nhập môn CNPM
  23. Tổ chức của mô hình Model-View- Controller Controller View View selection Maps user actions Renders model to model updates Requests model updates Selects view Sends user events to User events controller Change notification State State query change Model Encapsulates application state Notifies view of state changes Nguyễn Thị Minh Tuyền 23 Nhập môn CNPM
  24. Ví dụ: Kiến trúc ứng dụng Web sử dụng mô hình MVC Browser Controller View Form to display HTTP request processing Dynamic page Application-specific logic generation Data validation Forms management User events Change notification Update Refresh request request Model Business logic Database Nguyễn Thị Minh Tuyền 24 Nhập môn CNPM
  25. Kiến trúc phân tầng v Được sử dụng để mô hình hóa giao diện của các hệ thống con. v Tổ chức hệ thống thành một tập các tầng, mỗi tầng cung cấp một tập các dịch vụ. v Hỗ trợ việc phát triển dần dần các hệ thống con trên các tầng khác nhau. Khi giao diện của tầng thay đổi, chỉ các tầng lân cận mới bị ảnh hưởng. Nguyễn Thị Minh Tuyền 25 Nhập môn CNPM
  26. Mô hình kiến trúc phân tầng Tên Kiến trúc phân tầng Mô tả Tổ chức hệ thống thành các tầng, mỗi tầng chứa các chức năng liên quan đến nhau. Một tầng cung cấp các dịch vụ cho tầng trên của nó vì vậy các tầng thấp nhất biểu diễn các dịch vụ lõi được sử dụng trong toàn bộ hệ thống. Được sử dụng khi Được sử dụng khi xây dựng các tính năng mới dựa trên những nào hệ thống có sẵn; khi việc phát triển được dàn trải trên nhiều nhóm khác nhau và mỗi nhóm chịu trách nhiệm về chức năng của một tầng; khi có một yêu cầu về bảo mật ở nhiều mức độ. Ưu điểm Cho phép thay thế các phần miễn là interface được duy trì. Các chức năng dư thừa (ví dụ như phân quyền) có thể được cung cấp ở mỗi tầng để tăng độ tin cậy của hệ thống. Nhược điểm Thực tế, cung cấp một sự phân chia rõ rệt giữa các tầng thường rất khó khăn và tầng cao hơn có thể tương tác trực tiếp với tầng thấp hơn hơn là thông qua một tầng bên dưới nó. Hiệu năng cũng có thể là một vấn đề vì nhiều mức diễn giải của một yêu cầu dịch vụ khi nó được thực hiện tại mỗi tầng. Nguyễn Thị Minh Tuyền 26 Nhập môn CNPM
  27. Một kiến trúc phân tầng tổng quát User interface User interface management Authentication and authorization Core business logic/application functionality System utilities System support (OS, database etc.) Nguyễn Thị Minh Tuyền 27 Nhập môn CNPM
  28. Kiến trúc của hệ thống LIBSYS Web browser interface LIBSYS Forms and Print login query manager manager Distributed Document Rights Accounting search retrieval manager Library index DB1 DB2 DB3 DB4 DBn Nguyễn Thị Minh Tuyền 28 Nhập môn CNPM
  29. Tổng kết v Kiến trúc phần mềm là mô tả về cách tổ chức của một hệ thống phần mềm. v Quyết định chọn kiến trúc thiết kế bao gồm các quyết định về loại ứng dụng, việc phân tán của hệ thống, mẫu kiến trúc được sử dụng. v Các kiến trúc có thể được viết thành tài liệu từ một vài góc nhìn chẳng hạn như góc nhìn về mặt khái niệm, góc nhìn về mặt logic, góc nhìn về mặt quy trình, góc nhìn về mặt phát triển. v Các mô hình kiến trúc mẫu là phương tiện đẻ tái sử dụng các kiến thức về kiến trúc hệ thống tổng quát. Chúng mô tả kiến trúc, giải thích khi nào được sử dụng và ưu nhược điểm của nó. Nguyễn Thị Minh Tuyền 29 Nhập môn CNPM
  30. Thiết kế kiến trúc phần mềm phần 2 Lecture 2 30
  31. Kiến trúc repository v Các hệ thống con phải trao đổi dữ liệu với nhau. Có hai khả năng: § Việc chia sẻ dữ liệu được thực hiện ở cơ sở dữ liệu trung tâm hay còn gọi là kho dữ liệu, kho này được truy cập bởi tất cả các hệ thống con; § Mỗi hệ thống con duy trì một cơ sở dữ liệu riêng và chuyển dữ liệu trực tiếp tới các hệ thống con khác. v Khi có một lượng lớn dữ liệu cần chia sẻ, mô hình về chia sẻ là mô hình phổ biến nhất và là cơ chế chia sẻ dữ liệu hiệu quả nhất. Nguyễn Thị Minh Tuyền 31 Nhập môn CNPM
  32. Mô hình Repository Tên Mô hình Repository Mô tả Tất cả các dữ liệu trong hệ thống được quản lý ở một kho trung tâm, kho này được truy cập bởi tất cả các component của hệ thống. Các component không tương tác trực tiếp với nhau, chỉ thông qua kho chung thôi. Khi nào được sử Sử dụng mô hình này khi ta có một hệ thống trong đó một lượng dụng lớn thông tin được sinh ra phải được lưu trữ trong một thời gian dài. Ta cũng có thể sử dụng nó trong các hệ thống hướng dữ liệu trong đó dữ liệu trong kho kích hoạt hành động hay công cụ. Ưu điểm Các component có thể độc lập với nhau – chúng không cần biết sự tồn tại của các component khác. Các thay đổi xảy ra ở một component không ảnh hưởng tới các component khác. Tất cả các dữ liệu có thể được quản lý một cách nhất quán (ví dụ như backup dữ liệu được thực hiện đồng thời) vì tất cả dữ liệu được lưu trữ ở cùng một nơi. Nhược điểm Các vấn đề xảy ra trên kho chung ảnh hưởng đến toàn hệ thống. Có thể không hiệu quả trong việc tổ chức các giao tiếp thông qua kho. Phân tán kho trên nhiều máy tính có thể khó khăn. Nguyễn Thị Minh Tuyền 32 Nhập môn CNPM
  33. Một kiến trúc repository cho một IDE UML Code editors generators Java editor Design Project translator repository Python editor Design Report analyzer generator Nguyễn Thị Minh Tuyền 33 Nhập môn CNPM
  34. Kiến trúc client-server v Các mô hình hệ thống phân tán chỉ ra cách dữ liệu và các xử lý được phân tán trên nhiều component như thế nào. § Có thể được cài đặt trên một máy đơn. v Tập hợp các server độc lập cung cấp các dịch vụ cụ thể ví dụ như in ấn, quản trị dữ liệu, v Tập hợp các khách hàng triệu gọi các dịch vụ này. v Hệ thống mạng cho phép người dung truy cập vào các server. Nguyễn Thị Minh Tuyền 34 Nhập môn CNPM
  35. Mô hình client–server Tên Mô hình client-server Mô tả Trong một kiến trúc client–server, chức năng của hệ thống được tổ chức thành các dịch vụ, mỗi dịch vụ được đặt trên một server riêng lẻ. Khách hàng là người sử dụng các dịch vụ này và truy cập vào các server để sử dụng dịch vụ. Khi nào được sử Được sử dụng khi dữ liệu trong một cơ sở dữ liệu chia sẻ dụng phải truy cập từ nhiều nơi. Vì các server được truy cập từ nhiều nơi khác nhau, có thể được sử dụng khi tải trên hệ thống thay đổi. Ưu điểm Ưu điểm chính là server được phân tán trên mạng. Chức năng chung (dịch vụ in ấn chẳng hạn) có thể có sẵn cho tất cả các khách hàng và không cần thiết phải cài đặt toàn bộ các dịch vụ. Nhược điểm Mỗi dịch vụ là một điểm đơn gây lỗi vì vậy dễ bị tấn công từ chối dịch vụ hoặc lỗi server. Hiệu năng có thể không dự đoán trước được do nó phụ thuộc vào mạng cũng như hệ thống. Có thể có các vấn đề về quản lý nếu server được sở hữu bởi các tổ chức khác nhau. Nguyễn Thị Minh Tuyền 35 Nhập môn CNPM
  36. Kiến trúc client–server cho một thư viện phim ảnh Client 1 Client 2 Client 3 Client 4 Internet Catalog Video Picture Web server server server server Library Film store Photo store Film and catalogue photo info. Nguyễn Thị Minh Tuyền 36 Nhập môn CNPM
  37. Kiến trúc pipe and filter v Các chuyển đổi chức năng xử lý các đầu vào và tạo ra các đầu ra. v Các biến thể của phương pháp này rất phổ biến. Khi các chuyển đổi là tuần tự, đây là mô hình xử lý khối tuần tự mà các hệ thống xử lý dữ liệu sử dụng. v Không thật sự phù hợp với các hệ thống tương tác. Nguyễn Thị Minh Tuyền 37 Nhập môn CNPM
  38. Mô hình pipe and filter Tên Mô hình pipe and filter Mô tả Việc xử lý dữ liệu trong một hệ thống được tổ chức sao cho mỗi component xử lý (filter) là rời rạc và tiến hành một loại xử lý dữ liệu. Dòng dữ liệu (pipe) đi từ một component đến một component khác để xử lý. Khi nào sử Thường sử dụng trong các ứng dụng xử lý dữ liệu ( cả ứng dụng dụng xử lý khối và xử lý giao tác) trong đó các đầu vào được xử lý ở các giai đoạn rời rạc để tạo ra các đầu ra tương ứng. Ưu điểm Dễ hiểu và hỗ trợ việc tái sử dụng chuyển đổi. Kiểu dòng dữ liệu phù hợp với cấu trúc của của nhiều quy trình công việc. Tiến hóa bằng cách thêm vào các chuyển đổi là dễ dàng. Có thể cài đặt theo kiểu hệ thống tuần tự hoặc song song. Nhược điểm Format của dữ liệu truyền đi phải được chấp thuận trong việc giao tiếp giữa các chuyển đổi. Mỗi chuyển đổi phải phân tích cú pháp đầu vào của nó và chuyển nó thành đầu ra ở dạng được chấp nhận. Điều này gây khó khăn trong việc tái sử dụng các chuyển đổi hàm mà cấu trúc dữ liệu không tương thích. Nguyễn Thị Minh Tuyền 38 Nhập môn CNPM
  39. Ví dụ về kiến trúc pipe and filter Issue Receipts receipts Read issued Identify invoices payments Find Issue payments payment Reminders due reminder Invoices Payments Nguyễn Thị Minh Tuyền 39 Nhập môn CNPM
  40. Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng Nguyễn Thị Minh Tuyền 40 Nhập môn CNPM
  41. Các kiến trúc ứng dụng v Các hệ thống ứng dụng được thiết kế để đáp ứng nhu cầu của một tổ chức. v Vì công việc có nhiều điểm chung, các hệ thống ứng dụng cũng có xu hướng có kiến trúc chung phản ánh các yêu cầu ứng dụng. v Kiến trúc ứng dụng tổng quát là một kiến trúc cho một loại hệ thống phần mềm được cấu hình và điều chỉnh để tạo ra một hệ thống đáp ứng các yêu cầu cụ thể. Nguyễn Thị Minh Tuyền 41 Nhập môn CNPM
  42. Sử dụng các kiến trúc ứng dụng v Như là điểm khởi đầu của thiết kế kiến trúc. v Như là một checklist về thiết kế. v Như một cách để tổ chức công việc của nhóm phát triển phần mềm. v Như là một phương tiện để đánh giá việc tái sử dụng các component. v Như là kho từ vựng để bàn về các loại ứng dụng. Nguyễn Thị Minh Tuyền 42 Nhập môn CNPM
  43. Ví dụ về loại ứng dụng v Ứng dụng xử lý dữ liệu § Các ứng dụng hướng dữ liệu trong đó xử lý dữ liệu khối mà không có sự can thiệp của người dùng trong suốt quá trình xử lý. v Ứng dụng xử lý giao tác § Ứng dụng dữ liệu trung tâm trong đó xử lý các yêu cầu người dùng và cập nhật thông tin trong một cơ sở dữ liệu hệ thống. v Hệ thống xử lý sự kiện § Ứng dụng trong đó các hoạt động của hệ thống phụ thuộc vào việc diễn giải các sự kiện từ môi trường hệ thống. v Hệ thống xử lý ngôn ngữ § Ứng dụng trong đó ý định của người dùng được đặc tả trong các ngôn ngữ hình thức và được xử lý, diễn giải bởi hệ thống. Nguyễn Thị Minh Tuyền 43 Nhập môn CNPM
  44. Ví dụ về loại ứng dụng v Tập trung vào hệ thống xử lý giao tác và xử lý ngôn ngữ. v Hệ thống xử lý giao tác § Hệ thống thương mại điện tử; § Hệ thống đặt chỗ. v Hệ thống xử lý ngôn ngữ § Trình biên dịch; § Diễn giải lệnh. Nguyễn Thị Minh Tuyền 44 Nhập môn CNPM
  45. Hệ thống xử lý giao tác v Xử lý các yêu cầu người dùng về thông tin từ một cơ sở dữ liệu hoặc các yêu cầu cập nhật cơ sở dữ liệu. v Từ góc độ của một người sử dụng, một giao tác là: § Một chuỗi liên tục các thao tác để thỏa mãn một mục tiêu; § Ví dụ: tìm thời gian của các chuyến bay từ London tới Paris. v Người dùng thực hiện các yêu cầu không đồng bộ về dịch vụ sau đó được xử lý bởi một bộ quản lý giao tác. Nguyễn Thị Minh Tuyền 45 Nhập môn CNPM
  46. Cấu trúc của ứng dụng xử lý giao tác I/O Application Transaction processing logic manager Database Nguyễn Thị Minh Tuyền 46 Nhập môn CNPM
  47. Kiến trúc phần mềm của hệ thống ATM Input Process Output Get customer Print details account id Query account Validate card Return card Update account Select service Dispense cash ATM Database ATM Nguyễn Thị Minh Tuyền 47 Nhập môn CNPM
  48. Kiến trúc hệ thống thông tin v Các hệ thống thông tin có cấu trúc tổng quát có thể được tổ chức theo kiểu cấu trúc phân tầng. v Đây là những hệ thống dựa vào giao tác vì tương tác với hệ thống này thường là các giao tác cơ sở dữ liệu. v Các tầng bao gồm: § The user interface § User communications § Information retrieval § System database Nguyễn Thị Minh Tuyền 48 Nhập môn CNPM
  49. Kiến trúc phân tầng của hệ thống thông tin User interface User communications Authentication and authorization Information retrieval and modification Transaction management Database Nguyễn Thị Minh Tuyền 49 Nhập môn CNPM
  50. Kiến trúc của hệ thống MHC-PMS Web browser Form and menu Data Login Role checking manager validation Security Patient info. Data import Report management manager and export generation Transaction management Patient database Nguyễn Thị Minh Tuyền 50 Nhập môn CNPM
  51. Các hệ thống thông tin dựa vào web v Hệ thống quản lý tài nguyên và thông tin thường là các hệ thống dựa vào web trong đó giao diện người dùng được cài đặt trên web browser. v Ví dụ, các hệ thống thương mại điện tử là các hệ thống quản trị tài nguyên dựa vào internet mà trong đó các đơn đặt hàng điện tử về hàng hóa hay dịch vụ được chấp nhận, các đơn hàng này sau đó được lên lịch giao cho khách hàng. v Trong hệ thống thương mại điện tử, tầng ứng dụng chứa các tính năng bổ sung hỗ trợ “giỏ hàng” trong đó người dùng có thể đặt nhiều món hàng trên các giao tác khác nhau sau đó tính tiền chung trong một giao tác đơn. Nguyễn Thị Minh Tuyền 51 Nhập môn CNPM
  52. Cài đặt phía server v Những hệ thống này thường được cài đặt theo kiểu kiến trúc đa tầng client- server § Web server chịu trách nhiệm giao tiếp với người dùng, giao diện người dùng được cài đặt sử dụng web browser; § Server ứng dụng chịu trách nhiệm cài đặt các chức năng ứng dụng cụ thể cũng như lưu trữ thông tin và truy vấn yêu cầu; § Server cơ sở dữ liệu chuyển thông tin từ và đến cơ sở dữ liệu và nắm quyền quản lý giao tác. Nguyễn Thị Minh Tuyền 52 Nhập môn CNPM
  53. Hệ thống xử lý ngôn ngữ v Chấp nhận một ngôn ngữ tự nhiên hoặc ngôn ngữ nhân tạo làm đầu vào và tạo ra một biểu diễn khác của ngôn ngữ đó. v Có thể chứa một bộ diễn giải để thực hiện các chỉ dẫn lệnh trong ngôn ngữ được xử lý. v Được dùng trong các tình huống trong đó cách dễ nhất để xử lý vấn đề là mô tả một thuật toán hoặc mô tả dữ liệu hệ thống. Nguyễn Thị Minh Tuyền 53 Nhập môn CNPM
  54. Kiến trúc của một hệ thống xử lý ngôn ngữ Translator Source language Check syntax instructions Check semantics Generate Abstract m/c instructions Interpreter DataFetch Results Execute Nguyễn Thị Minh Tuyền 54 Nhập môn CNPM
  55. Các component của trình biên dịch v Bộ phân tích từ vựng, lấy các token đầu vào, chuyển đổi chúng thành một hình thức trung gian. v Bảng ký hiệu, lưu giữ thông tin về tên thực thể (biến, tên lớp, tên đối tượng, ) được sử dụng trong văn bản cần biên dịch. v Bộ phân tích cú pháp, kiểm tra cú pháp của ngôn ngữ cần biên dịch. v Cây cú pháp là một biểu diễn cấu trúc bên trong mà chương trình được dịch. Nguyễn Thị Minh Tuyền 55 Nhập môn CNPM
  56. Các component của trình biên dịch v Bộ phân tích ngữ nghĩa: sử dụng thông tin từ cây cú pháp và bảng ký hiệu để kiểm tra tính đúng đắn về ngữ nghĩa của văn bản ngôn ngữ đầu vào. v Bộ phát sinh mã : duyệt qua cây cú pháp và sinh ra mã máy trừu tượng. Nguyễn Thị Minh Tuyền 56 Nhập môn CNPM
  57. Kiến trúc pipe and filter của trình biên dịch Symbol table Syntax tree Lexical Syntactic Semantic Code analysis analysis analysis generation Nguyễn Thị Minh Tuyền 57 Nhập môn CNPM
  58. Kiến trúc repository cho hệ thống xử lý ngôn ngữ Lexical Syntax Semantic analyzer analyzer analyzer Pretty- Abstract Grammar Optimizer printer syntax tree definition Symbol Output Code Editor table definition generator Repository Nguyễn Thị Minh Tuyền 58 Nhập môn CNPM
  59. Tổng kết v Các mô hình của kiến trúc hệ thống ứng dụng hỗ trợ việc hiểu và so sánh các ứng dụng, thẩm định thiết kế hệ thống ứng dụng và đánh giá việc tái sử dụng các component. v Các hệ thống xử lý giao tác là các hệ thống tương tác mà nó cho phép thông tin trong một cơ sở dữ liệu được truy cập và cập nhật từ xa bởi một số lượng người dùng. v Hệ thống xử lý ngôn ngữ được dùng để dịch văn bản từ một ngôn ngữ sang một ngôn ngữ khác và thực hiện các chỉ dẫn lệnh cụ thể của ngôn ngữ đầu vào. Các hệ thống này chứa một bộ biên dịch và một máy trừu tượng để chạy ngôn ngữ được sinh ra. Nguyễn Thị Minh Tuyền 59 Nhập môn CNPM