1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THI CUỐI KÌ MÔN HỌC PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN

56 56 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 1,25 MB

Cấu trúc

  • PART 1: QUESTION

    • I. Q1: Styles of software architecture

    • II. Q2: Steps for analysis

    • III. Q3: Steps for design (cohesion, coupling….give example, Relationship, code…)

    • IV. Q4: 3 Layer architecture style & MVC

    • V. Q5: DAO? Why? class diagram & code for DAO. Review Appendix B1 & Explain diagram

    • VI. Q6: Database design

    • VII. Q7: Interface design (principles…)

Nội dung

10.Interpreter patternMẫu này được sử dụng để thiết kế các thành phần mà thông dịch các chương trình được viết trong một ngôn ngữ chuyên dụng.. Phân tích hệ thống được thực hiện với mục

QUESTION

Q1: Styles of software architecture

Mô hình kiến trúc là giải pháp chung và có thể tái sử dụng cho các vấn đề phổ biến trong kiến trúc phần mềm, được áp dụng trong những ngữ cảnh nhất định Các mẫu kiến trúc không chỉ tương tự như mẫu thiết kế phần mềm mà còn có phạm vi ứng dụng rộng hơn.

Trong đây em sẽ giới thiệu ngắn gọn 10 mẫu kiến trúc phổ biến hiện nay

Mẫu kiến trúc này phù hợp cho các chương trình cấu trúc có thể chia thành các nhóm công việc nhỏ, với mỗi nhóm ở mức độ trừu tượng hóa khác nhau Mỗi tầng trong kiến trúc cung cấp dịch vụ cho các tầng cao hơn, tạo nên sự liên kết và hỗ trợ lẫn nhau trong quá trình hoạt động.

Phổ biến nhất là hệ thống thông tin chung gồm 4 tầng như sau:

- Tầng trình diễn – Presentation layer (còn được gọi là UI layer)

- Tầng ứng dụng – Application layer (còn được gọi là service layer)

- Tầng xử lý logic nghiệp vụ – Business logic layer (còn được gọi là domain layer)

- Tầng truy suất dữ liệu – Data access layer (còn được gọi là persistence layer)

- Các ứng dụng desktop nói chung.

- Các ứng dụng web thương mại điện tử.

Mô hình này bao gồm hai thành phần chính: một server và nhiều clients Server cung cấp dịch vụ cho các clients, trong khi đó các clients gửi yêu cầu đến server để nhận dịch vụ tương ứng Đồng thời, server luôn lắng nghe và xử lý các yêu cầu từ các clients.

Các ứng dụng online như email, chia sẻ document và banking.

Mẫu này bao gồm hai phần chính: master và slave Phần master có nhiệm vụ phân phối công việc đồng đều giữa các thành phần slave và tính toán kết quả cuối cùng dựa trên các kết quả mà các slave trả về.

Trong quá trình mở rộng cơ sở dữ liệu, cơ sở dữ liệu master đóng vai trò là nguồn dữ liệu đáng tin cậy, trong khi các cơ sở dữ liệu slave sẽ được đồng bộ hóa với nó để đảm bảo tính nhất quán và ổn định.

- Các thiết bị ngoại vi kết nối tới đường truyền bus của hệ thống máy tính (master and slave drives).

Mẫu này áp dụng cho các hệ thống cấu trúc với quy trình xử lý luồng dữ liệu Mỗi bước xử lý được bao bọc trong một thành phần lọc (filter), trong khi dữ liệu cần xử lý được truyền qua các đường ống (pipes) Các đường ống này không chỉ hỗ trợ việc lưu trữ tạm thời mà còn phục vụ cho mục đích đồng bộ hóa.

- Các trình biên dịch Các bộ lọc liên tục thực hiện phân tích từ vựng, parsing, phân tích ngữ nghĩa, và tiến trình tạo mã.

- Quy trình làm việc trong tin học sinh học.

Mẫu này được áp dụng trong các hệ thống phân tán với các thành phần tách rời, cho phép chúng tương tác qua các lời gọi dịch vụ từ xa Thành phần broker đóng vai trò quan trọng trong việc phối hợp giao tiếp giữa các thành phần này.

Các server công bố các khả năng của mình, bao gồm dịch vụ và thuộc tính, cho broker Khi client yêu cầu một dịch vụ, broker sẽ hướng dẫn client đến dịch vụ phù hợp trong danh sách đăng ký của mình.

- Phần mềm Message broker như Apache ActiveMQ, Apache Kafka,

Trong mô hình này, các thành phần riêng lẻ được gọi là các peer, có khả năng hoạt động như client để yêu cầu dịch vụ từ các peer khác, đồng thời cũng có thể đóng vai trò như server để cung cấp dịch vụ Mỗi peer có thể linh hoạt thay đổi vai trò giữa client và server tùy theo nhu cầu tại thời điểm cụ thể.

- Các mạng chia sẻ file như Gnutella và G2

- Các giao thức Multimedia như P2PTV và PDTP.

This model is ideal for events and consists of four main components: event source, event listener, channel, and event bus The sources release messages on specific channels through the event bus Listeners register to listen on these specific channels and are notified when a new message is published on the channels to which they have subscribed.

Mẫu này còn được gọi là mẫu MVC, chia ứng dụng tương tác thành 3 phần, gồm

- model - là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng.

- view - đây là phần giao diện (theme) dành cho người sử dụng.

- controller - bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view Từ đó, C đưa ra dữ liệu phù hợp với người dùng.

Mẫu này tách biệt các tầng trình diễn thông tin nội bộ khỏi thông tin được người dùng chấp nhận, giúp phân chia sự phụ thuộc giữa các thành phần Điều này không chỉ nâng cao khả năng tái sử dụng mã nguồn mà còn cải thiện hiệu quả trong việc phát triển ứng dụng.

- Kiến trúc cho các ứng dụng World Wide Web trong hầu hết các ngôn ngữ lập trình chính.

Mẫu này phù hợp cho các vấn đề mà không có chiến lược giải pháp xác định đã biết mẫu blackboard gồm 3 thành phần chính

- blackboard - một bộ nhớ toàn cục có cấu trúc chứa các đối tượng từ không gian giải pháp.

- knowledge source - các modules đặc biệt với biểu diễn riêng của nó

- control component - lựa chọn, cấu hình và thực thi các module

Tất cả các thành phần đều có quyền truy cập vào blackboard, cho phép họ tạo ra các đối tượng dữ liệu mới và thêm vào hệ thống Các thành phần này cũng có khả năng tìm kiếm các loại dữ liệu cụ thể trên blackboard, sử dụng các mẫu phù hợp với nguồn kiến thức hiện có.

- Nhận dạng và tracking phương tiện giao thông.

- Nhận dạng cấu trúc Protein.

- Giải nghĩa tín hiệu Sonar.

Mẫu này được áp dụng để thiết kế các thành phần cho việc thông dịch chương trình viết bằng ngôn ngữ chuyên dụng Mục tiêu chính là xác định cách đánh giá các dòng chương trình, được gọi là câu hoặc công thức trong ngôn ngữ cụ thể Ý tưởng cốt lõi là tạo ra một lớp cho từng ký hiệu ngôn ngữ.

- Ngôn ngữ truy vấn CSDL như SQL.

- Các ngôn ngữ được sử dụng để mô tả các giao thức truyền thông.

Q2: Steps for analysis

Phân tích hệ thống là quá trình quan trọng trong việc thu thập và diễn giải dữ liệu, nhằm xác định các vấn đề tồn tại Quá trình này cũng bao gồm việc phân rã hệ thống thành các thành phần cấu thành của nó, giúp hiểu rõ hơn về cấu trúc và chức năng của hệ thống.

Phân tích hệ thống là quá trình nghiên cứu một hệ thống hoặc các bộ phận của nó nhằm xác định các mục tiêu cụ thể Kỹ thuật này giúp giải quyết vấn đề, cải thiện hiệu suất của hệ thống và đảm bảo rằng tất cả các thành phần hoạt động hiệu quả để đạt được mục đích đã đề ra.

Phân tích xác định những gì hệ thống phải làm.

- Xác định yêu cầu nghiệp vụ

+ Xác định và mô tả các tác nhân

+ Xây dựng bảng thuật ngữ

+ Xác định và mô tả các ca sử dụng nghiệp vụ

+ Mô tả chi tiết ca sử dụng

+ Xây dựng biểu đồ giao tiếp

+ Xây dựng biểu đồ hoạt động

- Xác định yêu cầu hệ thống o Yêu cầu chức năng

+ Xác định và mô tả các tác nhân

+ Xác định và mô tả các ca sử dụng

+ Xây dựng biểu đồ ca sử dụng

+ Xếp ưu tiên các ca sử dụng o Yêu cầu phi chức năng

+ Thao tác, hiệu năng, bảo mật, văn hóa, chính trị,…

+ Phác họa giao diện người dùng

+ Xác định quan hệ giữa các lớp

+ Xây dựng biểu đồ lớp

+ Xác định thuộc tính lớp

+ Xây dựng biểu đồ giao tiếp

+ Gán phương thức cho các lớp

- Viết tài liệu đặc tả yêu cầu phần mềm

 Phân tích có cấu trúc (Structured analysis) là gì?

Phân tích có cấu trúc là phương pháp giúp người phân tích hiểu rõ hệ thống và hoạt động của nó một cách hợp lý Phương pháp này sử dụng cách tiếp cận hệ thống và các công cụ đồ họa để phân tích, tinh chỉnh mục tiêu của hệ thống hiện tại, đồng thời phát triển một đặc tả hệ thống mới dễ hiểu cho người dùng.

Nó có các đặc điểm sau:

 Nó là đồ họa chỉ định cách trình bày của ứng dụng

 Nó phân chia các quá trình để đưa ra một bức tranh rõ ràng về luồng hệ thống

 Nó mang tính logic hơn là tính vật lý, tức là các phần tử của hệ thống không phụ thuộc vào nhà cung cấp hoặc phần cứng

 Đây là một cách tiếp cận hoạt động từ tổng quan cấp cao đến chi tiết cấp thấp hơn.

 Công cụ phân tích có cấu trúc (Structured analysis tool)

Trong quá trình Phân tích có cấu trúc, nhiều công cụ và kỹ thuật khác nhau được sử dụng để phát triển hệ thống:

 Sơ đồ luồng dữ liệu (Data Flow Diagrams –DFD)

 Từ điển dữ liệu (Data Dictionary)

 Cây quyết định (Decision Trees)

 Bảng Quyết định (Decision Tables)

 Tiếng Anh có cấu trúc (Structured English)

 Sơ đồ luồng dữ liệu (Data Flow Diagrams –DFD) hoặc Biểu đồ bong bóng (Burble Chart)

Nó là một kỹ thuật được phát triển bởi Larry Constantine để thể hiện các yêu cầu của hệ thống dưới dạng đồ họa

 Nó cho thấy luồng dữ liệu giữa các chức năng khác nhau của hệ thống và chỉ định cách hệ thống hiện tại được thực hiện

 Đây là giai đoạn ban đầu của giai đoạn thiết kế phân chia theo chức năng các đặc tả yêu cầu xuống mức chi tiết thấp nhất.

Đồ họa của nó đóng vai trò quan trọng trong việc tạo ra sự giao tiếp hiệu quả giữa người dùng và nhà phân tích, cũng như giữa nhà phân tích và nhà thiết kế hệ thống.

Bài viết cung cấp cái nhìn tổng quan về dữ liệu trong hệ thống xử lý, bao gồm các chuyển đổi thực hiện, dữ liệu được lưu trữ, kết quả tạo ra và lộ trình lưu chuyển của chúng Các yếu tố cơ bản của biểu đồ luồng dữ liệu (DFD) sẽ được trình bày rõ ràng.

DFD là công cụ hữu ích cho việc thiết kế khi yêu cầu không rõ ràng và người dùng cần một ngôn ngữ ký hiệu để giao tiếp Tuy nhiên, để đạt được giải pháp chính xác và đầy đủ, quá trình này cần nhiều lần lặp.

Bảng sau đây cho thấy các ký hiệu được sử dụng trong thiết kế DFD và ý nghĩa của chúng

Tên kí tự Kí tự Ý Nghĩa

Hình vuông Nguồn hoặc đích đến của dữ liệu

Múi tên Luồng dữ liệu

Hình tròn Quá trình chuyển đổi dữ liệu

Hình chữ nhật mở Kho dữ liệu b, Các loại DFD

DFD logic (Logic DFD) DFD vật lí (Physical DFD)

Nó phụ thuộc vào việc cài đặt Nó cho thấy những chức năng nào được thực hiện.

Nó là độc lập với việc cài đặt Nó chỉ tập trung vào luồng dữ liệu giữa các quy trình.

Nó cung cấp thông tin chi tiết về phần cứng, phần mềm, tệp và con người ở mức độ thấp.

Nó giải thích các sự kiện của hệ thống và dữ liệu theo yêu cầu của mỗi sự kiện.

Nó mô tả cách hệ thống hiện tại hoạt động và cách một hệ thống sẽ được cài đặt.

Nó chỉ ra cách thức hoạt động của nghiệp vụ; không phải làm thế nào hệ thống có thể được cài đặt.

 Sơ đồ ngữ cảnh (Context Diagram)

Sơ đồ ngữ cảnh là công cụ hữu ích giúp bạn nắm bắt tổng thể hệ thống thông qua DFD, cung cấp cái nhìn tổng quan về các quy trình chính Bắt đầu từ những thông tin cơ bản, sơ đồ này dần dần đi sâu vào chi tiết các quy trình, áp dụng phương pháp tiếp cận từ trên xuống để dễ dàng hiểu và phân tích.

Sơ đồ ngữ cảnh của quản lý nhà ăn (mess management) được hiển thị bên dưới.

 Từ điển dữ liệu (Data Dictionary)

Từ điển dữ liệu là một kho lưu trữ có cấu trúc các phần tử dữ liệu trong hệ thống

Nó cung cấp mô tả chi tiết về tất cả các phần tử trong biểu đồ luồng dữ liệu (DFD), bao gồm định nghĩa về luồng dữ liệu, kho dữ liệu, dữ liệu được lưu trữ trong kho, và các quy trình liên quan.

Từ điển dữ liệu là công cụ quan trọng giúp cải thiện giao tiếp giữa nhà phân tích và người dùng, đồng thời đóng vai trò thiết yếu trong việc xây dựng cơ sở dữ liệu Hầu hết các hệ quản trị cơ sở dữ liệu (DBMS) đều tích hợp từ điển dữ liệu như một tính năng tiêu chuẩn.

Sr.No Tên dữ liệu Mô tả Số kí tự

 Cây quyết định (Decision Trees)

Cây quyết định là một công cụ hữu ích để xác định các mối quan hệ phức tạp thông qua việc mô tả các quyết định và giải quyết vấn đề giao tiếp Nó được thể hiện dưới dạng sơ đồ, minh họa các hành động và điều kiện thay thế trong cấu trúc cây ngang.

Do đó, nó mô tả các điều kiện cần xem xét đầu tiên, thứ hai, v.v.

Cây quyết định thể hiện mối quan hệ giữa các điều kiện và hành động tương ứng Nút hình vuông đại diện cho hành động, trong khi nút tròn biểu thị điều kiện Điều này yêu cầu các nhà phân tích phải xem xét thứ tự quyết định và xác định các quyết định cần thiết.

Hạn chế lớn nhất của cây quyết định là nó không cung cấp đủ thông tin để mô tả các kết hợp điều kiện khác có thể được kiểm tra Nó chỉ thể hiện một cách duy nhất các mối quan hệ giữa các điều kiện và hành động.

Ví dụ, hãy tham khảo cây quyết định sau:

 Bảng Quyết định (Decision Tables)

Bảng quyết định là một phương pháp mô tả mối quan hệ logic phức tạp một cách chính xác và dễ hiểu

 Nó hữu ích trong các tình huống mà các hành động phụ thuộc vào sự xuất hiện của một hoặc một số kết hợp các điều kiện độc lập

 Nó là một ma trận chứa hàng hoặc cột để xác định một vấn đề và các hành động.

Các thành phần của Bảng Quyết định

Stub điều kiện (Condition Stub) - Nó nằm ở góc phần tư phía trên bên trái, liệt kê tất cả các điều kiện cần được kiểm tra

Stub hành động (Action Stub) nằm ở góc phần tư phía dưới bên trái, liệt kê tất cả các hành động cần thực hiện để đáp ứng các điều kiện cụ thể.

Mục nhập điều kiện nằm ở góc phần tư phía trên bên phải, cung cấp câu trả lời cho các câu hỏi trong góc phần tư Stub điều kiện Trong khi đó, mục nhập hành động nằm ở góc phần tư phía dưới bên phải, chỉ ra hành động thích hợp dựa trên các câu trả lời cho các điều kiện trong mục nhập điều kiện.

Các mục trong bảng quyết định, được quy định bởi Quy tắc quyết định, xác định mối quan hệ giữa các tổ hợp điều kiện và các quá trình hành động.

Y cho thấy sự tồn tại của một điều kiện

N đại diện cho điều kiện không được thỏa mãn.

Một khoảng trống (A blank) - hành động sẽ được bỏ qua

X - hành động sẽ được thực hiện. Điều kiện Quy tắc 1 Quy tắc 2 Quy tắc 3 Quy tắc 4

 Tiếng Anh có cấu trúc (Structured English)

Q3: Steps for design (cohesion, coupling….give example, Relationship, code…)

Thiết kế hệ thống là bước quan trọng trong việc thu hẹp khoảng cách giữa miền vấn đề và hệ thống hiện có, nhằm tạo ra một giải pháp khả thi Giai đoạn này chủ yếu tập trung vào việc xác định cách thức cài đặt, tức là "làm thế nào để thực hiện?" Tại đây, tài liệu yêu cầu phần mềm (SRS) được chuyển đổi thành định dạng có thể thực hiện, đồng thời quyết định cách thức hoạt động của hệ thống.

Trong giai đoạn này, quá trình phát triển hệ thống được phân chia thành nhiều hoạt động phụ nhỏ, mỗi hoạt động phối hợp nhịp nhàng để hướng tới mục tiêu chính của việc phát triển hệ thống.

- Lựa chọn công nghệ mạng cho hệ thống

- Thiết kế tương tranh và an toàn bảo mật

- Phân rã hệ thống thành các hệ thống con

- Xây dụng biểu đồ gói

- Xây dựng mô hình lớp thiết kế

- Xây dựng lược đồ cơ sở dữ liệu

- Thiết kế giao diện người dùng

 Mô hình mối quan hệ thực thể (Entity Relationship Model)

Mô hình E-R là một kỹ thuật thiết kế cơ sở dữ liệu quan trọng, giúp mô tả mối quan hệ giữa các thực thể trong tổ chức Các thuật ngữ trong mô hình này đóng vai trò then chốt trong việc hiểu và xây dựng cấu trúc dữ liệu hiệu quả.

Thực thể (ENTITY) - Nó chỉ định các đối tượng thực riêng biệt trong một ứng dụng Ví dụ: nhà cung cấp, mặt hàng, sinh viên, khóa học, giáo viên, v.v

Quan hệ (RELATIONSHIP) đề cập đến những mối quan hệ phụ thuộc có ý nghĩa giữa các thực thể Chẳng hạn, mối quan hệ giữa nhà cung cấp và các mặt hàng mà họ cung cấp, hay giữa giáo viên và các khóa học mà họ giảng dạy, đều thể hiện rõ ràng sự kết nối và tương tác trong các lĩnh vực này.

Thuộc tính (ATTRIBUTES) chỉ định các đặc điểm của các mối quan hệ trong mô hình E-R, chẳng hạn như mã nhà cung cấp và tên sinh viên Các ký hiệu được sử dụng trong mô hình này có ý nghĩa quan trọng, giúp xác định rõ ràng các thuộc tính liên quan đến các thực thể và mối quan hệ trong cơ sở dữ liệu.

Thực thểThực thể yếu

Thuộc tính có nhiều giá trị

Thuộc tính đa hợp (Ex: name)

E2 tham gia đầy đủ trong R

Ba loại mối quan hệ có thể tồn tại giữa hai tập dữ liệu: một-một, một-nhiều và nhiều-nhiều.

Kết nối giữa các thành phần trong hệ thống là chỉ số quan trọng để đo lường tính độc lập của chúng Mức độ phụ thuộc của từng mô-đun vào các mô-đun khác ảnh hưởng trực tiếp đến khả năng triển khai và duy trì hệ thống Do đó, sự kết hợp mạnh mẽ giữa các mô-đun sẽ làm cho việc quản lý và bảo trì hệ thống trở nên khó khăn hơn.

Mỗi mô-đun cần có giao diện đơn giản và gọn gàng, đồng thời phải đảm bảo sự tương tác hiệu quả với các mô-đun khác Số lượng phần tử dữ liệu tối thiểu được chia sẻ giữa các mô-đun cũng là yêu cầu quan trọng.

Các hệ thống này được kết nối chặt chẽ với nhau, với các đơn vị chương trình phụ thuộc lẫn nhau Sự thay đổi trong một hệ thống con có thể gây ra tác động lớn đến các hệ thống con khác.

Hệ thống này bao gồm các thành phần độc lập hoặc gần như độc lập, cho phép sự thay đổi trong một hệ thống con không ảnh hưởng đến các hệ thống con khác.

Sự gắn kết ngẫu nhiên được tìm thấy trong một thành phần mà các phần của nó không liên quan đến phần khác.

+ Logical Cohesion − Nó là nơi một số chức năng hoặc phần tử dữ liệu liên quan đến logic được đặt trong cùng một thành phần.

Temporal Cohesion là khái niệm đề cập đến việc sử dụng một thành phần để khởi tạo hệ thống hoặc nhóm các biến thực hiện chức năng theo trình tự, trong đó các chức năng này có mối liên hệ với nhau theo thời gian.

+ Procedurally Cohesion − Đó là khi các chức năng được nhóm lại với nhau trong một thành phần chỉ để đảm bảo thứ tự này.

+ Sequential Cohesion − Là khi đầu ra từ một phần của một thành phần là đầu vào cho phần tiếp theo của nó.

Sự gắn kết là chỉ số quan trọng phản ánh mức độ liên kết giữa các thành phần trong một hệ thống Nó thể hiện sự phụ thuộc lẫn nhau giữa các phần của mô-đun, do đó, nhà thiết kế hệ thống cần phải đảm bảo rằng các thành phần hoạt động một cách hài hòa và hiệu quả.

- Họ không chia các quy trình thiết yếu thành các mô-đun phân mảnh.

- Chúng không tập hợp các quá trình không liên quan với nhau được biểu diễn dưới dạng các quá trình trên DFD thành các mô-đun vô nghĩa.

Các mô-đun tốt nhất có sự gắn kết chức năng chặt chẽ, trong khi các mô-đun tồi tệ nhất lại có sự gắn kết ngẫu nhiên Mức độ gắn kết thấp nhất thường dẫn đến hiệu suất kém và khó khăn trong việc bảo trì.

Sự gắn kết ngẫu nhiên được tìm thấy trong một thành phần mà các phần của nó không liên quan đến phần khác.

+ Logical Cohesion - Nó là nơi một số chức năng hoặc phần tử dữ liệu liên quan đến logic được đặt trong cùng một thành phần.

Tính liên kết tạm thời (Temporal Cohesion) đề cập đến việc sử dụng một thành phần để khởi tạo hệ thống hoặc nhóm các biến thực hiện các chức năng theo trình tự, trong đó các chức năng này có mối liên hệ với nhau về mặt thời gian.

+ Procedurally Cohesion - Đó là khi các chức năng được nhóm lại với nhau trong một thành phần chỉ để đảm bảo thứ tự này.

+ Sequential Cohesion - Là khi đầu ra từ một phần của một thành phần là đầu vào cho phần tiếp theo của nó.

Q4: 3 Layer architecture style & MVC

 Mô hình 3-layer gồm có 3 phần chính :

Lớp Giao Diện Người Dùng (GUI) đóng vai trò quan trọng trong việc tương tác với người dùng, bao gồm các thành phần giao diện như win form và web form Lớp này thực hiện các chức năng như nhập liệu, hiển thị dữ liệu và kiểm tra tính chính xác của dữ liệu trước khi chuyển giao cho Lớp Logic Kinh Doanh (BLL).

- Business Logic Layer (BLL) : Layer này phân ra 2 thành nhiệm vụ :

Đây là nơi thực hiện các yêu cầu thao tác dữ liệu từ lớp GUI, xử lý nguồn dữ liệu chính từ lớp Presentation trước khi chuyển tiếp xuống lớp Data Access và lưu trữ trong hệ quản trị cơ sở dữ liệu.

Đây là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ của dữ liệu, đồng thời thực hiện các tính toán và xử lý yêu cầu nghiệp vụ trước khi trả kết quả.

Lớp Truy cập Dữ liệu (Data Access Layer - DAL) đóng vai trò quan trọng trong việc giao tiếp với hệ quản trị cơ sở dữ liệu (CSDL), thực hiện các tác vụ liên quan đến lưu trữ và truy vấn dữ liệu, bao gồm tìm kiếm, thêm, xóa và sửa đổi thông tin.

Việc phân chia code thành từng lớp giúp tăng tính tường minh và giảm sự kết dính Mỗi lớp đảm nhận các chức năng riêng biệt như giao diện, xử lý và truy vấn, thay vì gom tất cả vào một chỗ Điều này không chỉ cải thiện khả năng quản lý mã nguồn mà còn nâng cao hiệu suất làm việc.

Việc phân chia hệ thống giúp tăng cường khả năng bảo trì, cho phép thay đổi một thành phần mà không làm ảnh hưởng đến toàn bộ chương trình Sự thay đổi này có thể được cô lập trong một lớp hoặc chỉ tác động đến lớp gần nhất, từ đó nâng cao tính linh hoạt và hiệu quả trong quá trình quản lý và phát triển phần mềm.

Việc phát triển và tái sử dụng phần mềm trở nên dễ dàng hơn khi áp dụng mô hình lập trình chuẩn Khi cần thêm chức năng mới, chúng ta có thể tuân theo các quy tắc đã định sẵn, giúp quá trình lập trình trở nên thuận lợi hơn Đặc biệt, khi chuyển đổi giữa các môi trường khác nhau, chẳng hạn như từ Winform sang Webform, chỉ cần điều chỉnh lớp GUI mà không cần viết lại toàn bộ mã nguồn.

Việc bàn giao công việc trở nên dễ dàng hơn khi mọi người tuân thủ một quy chuẩn đã được thiết lập Điều này không chỉ giúp tăng cường sự tương tác giữa các thành viên mà còn tiết kiệm thời gian đáng kể trong quá trình làm việc.

Mô hình 3 lớp cho phép phân phối khối lượng công việc một cách hiệu quả, khi mỗi nhóm và bộ phận được giao nhiệm vụ cụ thể Sự phân chia này giúp lập trình viên dễ dàng kiểm soát và quản lý công việc của mình.

MVC, viết tắt từ Model-View-Controller, là một mẫu thiết kế giúp phân tách các thành phần trong ứng dụng thành ba phần riêng biệt Mô hình này tách biệt logic và xử lý nghiệp vụ (Model) khỏi giao diện người dùng (View), từ đó làm cho việc quản lý và mở rộng mã nguồn trở nên dễ dàng hơn.

Model là thành phần chủ yếu chịu trách nhiệm xử lý logic kinh doanh của ứng dụng, thường được coi là nơi lưu trữ và xử lý dữ liệu trong mô hình MVC Các thành phần đảm nhiệm vai trò model bao gồm nhiều yếu tố quan trọng trong việc quản lý và tổ chức dữ liệu.

- Controller Đây là phần sẽ tiếp nhận và xử lý các yêu cầu (request) đến từ phía người dùng

Các yêu cầu sẽ được chuyển đến các địa điểm tương ứng để xử lý và nhận kết quả phù hợp, sau đó dữ liệu sẽ được chuyển sang View để hiển thị cho người dùng.

Controller đóng vai trò như một cầu nối giữa Model và View, giúp xử lý các yêu cầu từ người dùng một cách hiệu quả.

Là một thành phần quan trọng trong việc hiển thị dữ liệu, nó chủ yếu bao gồm các form nhập liệu, đoạn HTML và bảng để trình bày thông tin mà không chứa bất kỳ xử lý logic nào.

- Được sử dụng truyền thống cho các giao diện người dùng đồ họa (GUI) Phổ biến trong các ứng dụng web.

- Các trách nhiệm MVC được phân chia giữa máy khách và máy chủ, tương thích với kiến trúc ứng dụng web.

- Separation of Concerns (SoC): Chức năng này cho phép bạn phân tách rõ ràng các phần như model, view, controller.

- Loosely Coupled: Kết nối ít phụ thuộc Loại bỏ các phụ thuộc không cần thiết giữa các lớp.

- Có thể tái sử dụng code mà không cần sửa đổi MVC làm cho các lớp model

- Dễ dàng thao tác và chỉnh sửa.

- Mỗi phần có thể được kiểm thử độc lập (Model, view, controller).

Q5: DAO? Why? class diagram & code for DAO Review Appendix B1 & Explain diagram 28 VI Q6: Database design

Mẫu thiết kế Data Access Object (DAO) là một trong những cấu trúc quan trọng trong lập trình, giúp tách biệt logic lưu trữ dữ liệu thành một lớp riêng biệt Bằng cách này, các dịch vụ có thể ẩn giấu cách thức thực hiện các hoạt động cấp thấp để truy cập cơ sở dữ liệu, từ đó tuân thủ nguyên tắc Tách logic (Separation of Logic).

Ý tưởng chính là thay vì để ứng dụng giao tiếp trực tiếp với cơ sở dữ liệu, hệ thống file, dịch vụ web hay bất kỳ cơ chế lưu trữ nào, chúng ta sẽ tạo một lớp trung gian DAO Lớp DAO này sẽ đảm nhận việc giao tiếp với hệ thống lưu trữ và quản trị cơ sở dữ liệu, thực hiện các chức năng liên quan đến lưu trữ và truy vấn dữ liệu như tìm kiếm, thêm, xóa và sửa đổi.

- DAO Pattern dựa trên các nguyên tắc thiết kế abstraction và encapsulation

Nó bảo vệ ứng dụng khỏi các thay đổi trong lớp lưu trữ, chẳng hạn như chuyển đổi cơ sở dữ liệu từ Oracle sang MySQL hoặc thay đổi công nghệ lưu trữ từ file sang cơ sở dữ liệu.

In Java, Data Access Object (DAO) can be implemented through various methods, including the Java Persistence API, Enterprise Java Beans (EJB), and Object-Relational Mapping (ORM) frameworks, with specific implementations such as Hibernate, iBATIS, and Spring JPA.

Các thành phần tham gia mẫu Data Access Object (DAO) Pattern:

- BusinessObject : đại diện cho Client, yêu cầu truy cập vào nguồn dữ liệu để lấy và lưu trữ dữ liệu.

DataAccessObject (DAO) là một interface quan trọng, định nghĩa các phương thức trừu tượng để triển khai truy cập dữ liệu cơ bản cho BusinessObject DAO cho phép kết nối và truy cập hiệu quả vào nguồn dữ liệu (DataSource).

- DataAccessObjectConcrete : cài đặt các phương thức được định nghĩa trong DAO, lớp này sẽ thao tác trực tiếp với nguồn dữ liệu (DataSource).

- DataSource : là nơi chứa dữ liệu, nó có thể là database, xml, json, text file, webservice, …

TransferObject là một đối tượng POJO (Plain Old Java Object) với các phương thức get/set, được sử dụng để lưu trữ dữ liệu và hỗ trợ trong lớp DAO.

- Giảm sự kết nối (loose coupling) giữa logic nghiệp vụ (Business) và logic

- Mẫu DAO cho phép đóng gói code để thực hiện thao tác CRUD, ngăn chặn việc implement riêng lẻ trong từng phần khác nhau của ứng dụng.

DAO giúp dễ dàng mở rộng và bảo trì ứng dụng bằng cách ẩn tất cả các chi tiết lưu trữ khỏi phần còn lại của hệ thống Điều này cho phép thực hiện các thay đổi chỉ bằng cách sửa đổi một implement của DAO mà không ảnh hưởng đến các phần khác của ứng dụng DAO đóng vai trò trung gian giữa ứng dụng và cơ sở dữ liệu, tạo điều kiện cho việc quản lý dữ liệu hiệu quả hơn.

- Dễ hiểu: mọi người đều theo một quy chuẩn đã được định sẵn, nên dễ hiểu hơn, tiết kiệm được nhiều thời gian hơn.

Trong một dự án quy mô lớn, các nhóm khác nhau đảm nhận các phần riêng biệt của ứng dụng Mẫu DAO (Data Access Object) giúp phân chia rõ ràng các thành phần này, tạo điều kiện thuận lợi cho việc quản lý và phát triển.

- Khi muốn thay đổi nguồn dữ liệu sau này, như chuyển từ cơ dữ liệu MySQL sang Oracle, SQL Server, …

- Khi muốn phân tách rõ ràng các thành phần của ứng dụng.

Giao diện PersonDao, lớp thực thi PersonDaoImpl và đối tượng giá trị (VO) hay đối tượng thực thể (EO) và đối tượng truyền dữ liệu (DTO) đều liên quan đến việc quản lý dữ liệu của đối tượng Person trong hệ thống.

 Quy trình thiết kế cơ sở dữ liệu

- Phân tích yêu cầu, xác định mục đích của cơ sở dữ liệu.

- Tổ chức dữ liệu thành bảng, chỉ định khóa chính.

- Tạo các mối quan hệ giữa các bảng.

- Chuẩn hóa cơ sở dữ liệu.

1 Phân tích yêu cầu, xác định mục đích của cơ sở dữ liệu Đầu tiên là thu thập thông tin trước khi tạo cơ sở dữ liệu: phỏng vấn người dùng, phân tích mô hình nghiệp vụ, kết hợp cùng bất kì dữ liệu nào hiện có trên hệ thống Bắt đầu bằng cách thu thập bất kì dữ liệu nào hiện có đưa vào cơ sở dữ liệu Sau đó, liệt kê các loại dữ liệu bạn muốn lưu trữ ví dụ các thực thể: người, sự vật, vị trí, sự kiện mà dữ liệu đó mô tả như sau:

Thông tin này sẽ trở thành một phần của từ điển dữ liệu, phác thảo các bảng và trường trong cơ sở dữ liệu Cần chia nhỏ thông tin thành các phần hữu ích nhất và tránh lặp lại cùng một điểm dữ liệu trong nhiều bảng để giảm thiểu độ phức tạp không cần thiết.

Khi bạn đã xác định được loại dữ liệu sẽ có trong cơ sở dữ liệu, nguồn gốc của dữ liệu và cách thức sử dụng nó, bạn có thể bắt đầu lập kế hoạch cho cơ sở dữ liệu thực tế.

2 Tổ chức dữ liệu thành bảng, chỉ định khóa chính

Để trình bày trực quan cơ sở dữ liệu, bạn cần nắm rõ cấu trúc của cơ sở dữ liệu quan hệ Dữ liệu liên quan được tổ chức thành các bảng, với mỗi bảng bao gồm các hàng (bộ dữ liệu) và cột, tương tự như một bảng tính Để chuyển đổi danh sách dữ liệu thành bảng, hãy tạo bảng cho từng loại thực thể như sản phẩm, bán hàng, khách hàng và đơn đặt hàng.

Mỗi hàng trong bảng được gọi là một bản ghi, chứa thông tin về một đối tượng hoặc cá nhân cụ thể, như khách hàng Các cột, hay còn gọi là trường hoặc thuộc tính, thể hiện loại thông tin duy nhất cho mỗi bản ghi, ví dụ như địa chỉ của khách hàng Để đảm bảo tính nhất quán của dữ liệu giữa các bản ghi, cần gán kiểu dữ liệu phù hợp cho từng cột, với nhiều loại kiểu dữ liệu phổ biến.

+ CHAR - độ dài cụ thể của văn bản

+ VARCHAR - văn bản có độ dài thay đổi

+ TEXT - lượng lớn văn bản

+ INT - số nguyên dương hoặc âm

+ FLOAT, DOUBLE - cũng có thể lưu trữ số dấu phẩy động

Một số hệ thống quản lý cơ sở dữ liệu cũng cung cấp kiểu dữ liệu Autonumber, tự động tạo một số duy nhất trong mỗi hàng.

Để tạo tổng quan trực quan về cơ sở dữ liệu, sơ đồ mối quan hệ thực thể sẽ không bao gồm các bảng thực tế, mà thay vào đó, mỗi bảng sẽ được thể hiện dưới dạng một hộp trong sơ đồ Tiêu đề của mỗi hộp cần phản ánh nội dung dữ liệu mà bảng đó mô tả, trong khi các thuộc tính liên quan sẽ được liệt kê bên dưới.

Q7: Interface design (principles…)

Giao diện người dùng là phần mềm mà người dùng tương tác để điều khiển cả phần mềm lẫn phần cứng Hiện nay, giao diện người dùng xuất hiện rộng rãi trong mọi thiết bị công nghệ kỹ thuật số, từ máy tính, điện thoại di động, ô tô, đến máy nghe nhạc, máy bay và tàu thủy.

Giao diện người dùng là một thành phần quan trọng của phần mềm, được thiết kế nhằm mang lại cái nhìn sâu sắc cho người dùng về chức năng của nó Nó tạo ra nền tảng cơ bản cho sự tương tác hiệu quả giữa con người và máy tính.

Giao diện người dùng có thể được thiết kế dưới nhiều hình thức khác nhau, bao gồm đồ họa, văn bản, hoặc âm thanh-video, tùy thuộc vào sự kết hợp giữa phần cứng và phần mềm Nó có thể tồn tại dưới dạng phần cứng, phần mềm, hoặc là sự kết hợp của cả hai.

 Phần mềm trở nên phổ biến hơn nếu giao diện người dùng của nó là:

- Đơn giản để sử dụng

- Đáp ứng trong thời gian ngắn

- Nhất quán trên tất cả các màn hình giao diện

 Giao diện người dùng được chia thành hai loại:

- Giao diện đồ họa người dùng

1 Giao diện dòng lệnh (CLI)

CLI, hay Giao diện Dòng Lệnh, đã từ lâu trở thành công cụ tương tác hiệu quả với máy tính, đặc biệt trước sự xuất hiện của màn hình hiển thị video Nó vẫn là sự lựa chọn ưa thích của nhiều người dùng kỹ thuật và lập trình viên nhờ vào tính năng tối giản mà nó cung cấp CLI cung cấp một giao diện cơ bản, cho phép người dùng tương tác trực tiếp với phần mềm một cách nhanh chóng và hiệu quả.

CLI cung cấp một giao diện dòng lệnh cho phép người dùng nhập lệnh và dữ liệu vào hệ thống Người dùng cần nắm rõ cú pháp và cách sử dụng lệnh Trước đây, CLI không được tối ưu để xử lý các lỗi do người dùng gây ra một cách hiệu quả.

Một lệnh là tham chiếu văn bản cho tập hợp các lệnh mà hệ thống dự kiến thực thi Người dùng có thể dễ dàng thao tác thông qua các phương thức như macro và script.

CLI sử dụng ít tài nguyên máy tính hơn so với GUI.

Command Prompt là một công cụ giao diện dòng lệnh dựa trên văn bản, giúp người dùng tương tác với hệ thống thông qua các lệnh Nó cung cấp ngữ cảnh rõ ràng về công việc mà người dùng đang thực hiện và được phát triển bởi hệ thống phần mềm.

Con trỏ là một đường ngang nhỏ hoặc thanh dọc có chiều cao của dòng, cho thấy vị trí của ký tự khi nhập liệu Thông thường, con trỏ xuất hiện ở trạng thái nhấp nháy và di chuyển theo hành động viết hoặc xóa nội dung của người dùng.

Lệnh là một chỉ thị thực thi có thể bao gồm một hoặc nhiều tham số Khi lệnh được thực hiện, đầu ra sẽ hiển thị trực tiếp trên màn hình, và sau khi hoàn tất, dấu nhắc lệnh sẽ xuất hiện trên dòng tiếp theo.

2 Giao diện đồ họa người dùng (GUI)

GUI cung cấp một tập hợp các thành phần để tương tác với phần mềm hoặc phần cứng.

Mọi thành phần đồ họa cung cấp một cách làm việc với hệ thống Hệ thống GUI có các yếu tố sau như:

Cửa sổ là khu vực hiển thị nội dung của ứng dụng, cho phép người dùng dễ dàng điều hướng trong hệ thống tệp thông qua các biểu tượng hoặc danh sách Người dùng có thể thu nhỏ, thay đổi kích thước hoặc tối đa hóa cửa sổ, đồng thời di chuyển chúng đến bất kỳ vị trí nào trên màn hình Đặc biệt, một cửa sổ có thể chứa cửa sổ con của cùng một ứng dụng, tạo ra sự linh hoạt trong việc quản lý nội dung.

Giao diện tài liệu theo tab cho phép người dùng mở nhiều tài liệu trong cùng một cửa sổ, giúp quản lý và xem bảng tùy chọn trong ứng dụng dễ dàng hơn Tính năng này đã trở thành tiêu chuẩn trong tất cả các trình duyệt web hiện đại và cho phép thực thi nhiều phiên bản của ứng dụng dưới dạng các cửa sổ riêng biệt.

Menu là một tập hợp các lệnh tiêu chuẩn được tổ chức và hiển thị rõ ràng, thường nằm ở vị trí trên cùng của cửa sổ ứng dụng Menu có khả năng được lập trình để hiện ra hoặc ẩn đi khi người dùng nhấp chuột.

Biểu tượng là hình ảnh nhỏ đại diện cho ứng dụng và chương trình được cài đặt trên hệ thống Khi nhấp hoặc nhấp đúp vào biểu tượng, cửa sổ ứng dụng sẽ được mở ra, giúp người dùng truy cập nhanh chóng vào các ứng dụng liên kết.

Con trỏ là thiết bị tương tác trong giao diện người dùng đồ họa (GUI), bao gồm chuột, bàn di chuột và bút kỹ thuật số Nó hoạt động theo các hướng dẫn từ phần cứng trong thời gian gần như thực, cho phép người dùng chọn menu, cửa sổ và các tính năng khác của ứng dụng Con trỏ, thường được gọi là con trỏ trong hệ thống GUI, đóng vai trò quan trọng trong việc tương tác với các thành phần trên màn hình.

3 Quy trình thiết kế giao diện người dùng

Thiết kế giao diện người dùng (GUI) bao gồm nhiều hoạt động và quy trình tương tự như vòng đời phát triển phần mềm (SDLC) Các mô hình như Mô hình Thác nước, Mô hình lặp lại có thể được áp dụng để triển khai GUI một cách hiệu quả.

Một mô hình được sử dụng để thiết kế và phát triển GUI phải đáp ứng các bước cụ thể của GUI.

Ngày đăng: 06/02/2022, 05:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w