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

(TIỂU LUẬN) styles of software architecture

57 10 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

Tiêu đề Styles of software architecture
Tác giả Chu Đức Chính
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Phân tích và Thiết kế Hệ thống Thông tin
Thể loại Báo cáo thi cuối kỳ
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 57
Dung lượng 1,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • PART 1: QUESTION (3)
    • I. Q1: Styles of software architecture (3)
    • II. Q2: Steps for analysis (0)
    • III. Q3: Steps for design (cohesion, coupling….give example, Relationship, code…) (0)
    • IV. Q4: 3 Layer architecture style & MVC (27)
    • V. Q5: DAO? Why? class diagram & code for DAO. Review Appendix B1 & Explain diagram 28 VI. Q6: Database design (31)
    • VII. Q7: Interface design (principles…) (50)

Nội dung

Broker pattern Mẫu này được sử dụng trong các hệ thống phân tán cấu trúc với các thành phần được tách rời.. 10.Interpreter patternMẫu này được sử dụng để thiết kế các thành phần mà thông

QUESTION

Q1: Styles of software architecture

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

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 thích hợp cho các chương trình cấu trúc phân chia thành nhiều nhóm công việc nhỏ, giúp quản lý dự án hiệu quả hơn Mỗi tầng trong kiến trúc cung cấp dịch vụ cho các tầng phía trên, tạo thành một hệ thống phân tầng rõ ràng Các tầng đề xuất mức độ trừu tượng hóa khác nhau, giúp dễ dàng phân chia và phối hợp các phần công việc Áp dụng mẫu kiến trúc này mang lại sự linh hoạt và hiệu quả trong quá trình phát triển hệ thống phần mềm.

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ẫu này gồm hai thành phần chính: server và nhiều client, trong đó server cung cấp các dịch vụ cho các client Các client gửi yêu cầu dịch vụ đến server và server phản hồi bằng cách cung cấp các dịch vụ phù hợp Ngoài ra, server liên tục lắng nghe các yêu cầu từ các client để đảm bảo hoạt động liên tục và hiệu quả của hệ thống.

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

Mẫu này gồm hai thành phần chính: master và slaves Thành phần master có nhiệm vụ phân phối công việc đến các thành phần slave giống nhau, sau đó tổng hợp và tính toán ra kết quả cuối cùng dựa trên các kết quả trả về từ các slave Đảm bảo quá trình phối hợp hiệu quả giữa master và slave giúp tối ưu hóa hiệu suất và độ chính xác của hệ thống.

Trong quá trình mở rộng quy mô của hệ thống cơ sở dữ liệu, cơ sở dữ liệu master đóng vai trò là nguồn dữ liệu chính, đảm bảo tính tin cậy và nhất quán Các cơ sở dữ liệu slave sẽ được đồng bộ tự động với cơ sở dữ liệu master, giúp tăng khả năng mở rộng và tối ưu hiệu suất hệ thống Việc nhân rộng database dựa trên cơ sở dữ liệu master đảm bảo tính toàn vẹn dữ liệu và giảm thiểu rủi ro mất mát thông tin.

- 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 thích hợp cho các hệ thống cấu trúc chứa các thủ tục và xử lý một luồng dữ liệu, trong đó mỗi bước xử lý diễn ra trong một thành phần lọc (filter) riêng biệt Dữ liệu cần xử lý được truyền qua các đường ống (pipes), giúp dễ dàng thực hiện việc đệm dữ liệu hoặc đồng bộ hóa giữa các bước xử lý Các đường ống này đóng vai trò quan trọng trong việc đảm bảo luồng dữ liệu diễn ra một cách trôi chảy và hiệu quả trong hệ thống.

- 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 hệ thống phân tán cấu trúc này sử dụng các thành phần tách rời để đảm bảo tính linh hoạt và mở rộng Các thành phần trong hệ thống có thể tương tác hiệu quả thông qua các lời gọi dịch vụ từ xa (remote service invocation), giúp nâng cao tính linh hoạt trong truyền thông Thành phần broker đóng vai trò quan trọng trong việc phối hợp và quản lý giao tiếp giữa các thành phần khác nhau, đảm bảo hệ thống hoạt động trơn tru và hiệu quả.

Các server chia sẻ năng lực của mình, bao gồm các dịch vụ và thuộc tính, cho broker để quản lý Khi client yêu cầu một dịch vụ, broker sẽ định hướng yêu cầu đó tới dịch vụ phù hợp dựa trên thông tin đăng ký của nó Quá trình này đảm bảo việc phân phối dịch vụ một cách hiệu quả và tối ưu.

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

Trong mẫu này, các thành phần riêng lẻ gọi là peers, có khả năng hoạt động như cả client lẫn server Các peer có thể yêu cầu dịch vụ từ các peer khác như một client, đồng thời cung cấp dịch vụ cho các peer khác như một server Một peer có thể đảm nhận vai trò là client, server hoặc cả hai cùng lúc và có thể linh hoạt thay đổi vai trò theo thời điểm.

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

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

This pattern is ideal for events and consists of four main components: event source, event listener, channel, and event bus Event sources publish messages on specific channels within the event bus, while event listeners register to listen on designated channels When a new message is published on a subscribed channel, the associated event listeners are notified accordingly.

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 giúp phân tách các tầng trình diễn thông tin nội bộ khỏi các thông tin dành cho người dùng, nâng cao khả năng quản lý dữ liệu và trải nghiệm người dùng Nó tách biệt rõ ràng các phụ thuộc giữa các thành phần, từ đó thúc đẩy việc tái sử dụng mã nguồn hiệu quả hơn Việc áp dụng mẫu này không những tối ưu hóa cấu trúc phần mềm mà còn cải thiện hiệu suất vận hành của hệ thố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 để thực hiện các tác vụ liên quan Các thành phần này có khả năng tạo ra đối tượng dữ liệu mới và thêm chúng vào blackboard nhằm mở rộng nguồn kiến thức Chúng cũng có chức năng tìm kiếm các loại dữ liệu cụ thể trên blackboard, có thể tìm theo các mẫu phù hợp với các nguồn kiến thức đã tồn tại, hỗ trợ quá trình xử lý thông tin hiệu quả.

- 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 sử dụng để thiết kế các thành phần phiên dịch các chương trình viết bằng ngôn ngữ chuyên dụng Nó giúp xác định cách đánh giá các dòng mã, còn gọi là các câu hoặc công thức trong ngôn ngữ cụ thể Ý tưởng chính là xây dựng một lớp cho từng ký hiệu của ngôn ngữ, từ đó tạo ra một hệ thống phân tích chính xác và hiệu quả.

- 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.

Phân tích hệ thống là quá trình thu thập và diễn giải dữ kiện, nhằm xác định các vấn đề cốt lõi của hệ thống Quá trình này giúp phân rã hệ thống thành các thành phần riêng biệt để dễ dàng phân tích và tối ưu hóa Việc phân tích hệ thống đóng vai trò quan trọng trong việc hiểu rõ cấu trúc và hoạt động của hệ thống, từ đó đề xuất các giải pháp cải thiện hiệu quả và hiệu suất.

Phân tích hệ thống nhằm nghiên cứu và xác định mục tiêu của hệ thống hoặc các bộ phận của nó, giúp cải thiện hiệu suất hoạt động Đây là kỹ thuật giải quyết vấn đề quan trọng trong quản lý hệ thống, đảm bảo tất cả các thành phần hoạt động hiệu quả để đạt được mục đích đề ra Việc phân tích hệ thống giúp tối ưu hóa quy trình làm việc, nâng cao năng suất và đảm bảo sự phối hợp chặt chẽ giữa các bộ phận.

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ì?

Q4: 3 Layer architecture style & MVC

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

Lớp Presentation Layer (GUI) có nhiệm vụ chính trong việc giao tiếp trực tiếp với người dùng Nó bao gồm các thành phần giao diện như WinForm hoặc WebForm và đảm nhận các công việc như nhập liệu, hiển thị dữ liệu, cùng với việc kiểm tra tính hợp lệ của dữ liệu trước khi truyền dữ liệu tới lớp Business Logic Layer (BLL).

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

Nơi xử lý các yêu cầu thao tác dữ liệu của lớp GUI, đảm nhận vai trò chính trong việc xử lý nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu trữ vào hệ quản trị cơ sở dữ liệu.

Đây là nơi kiểm tra các ràng buộc dữ liệu, đảm bảo tính toàn vẹn và hợp lệ trước khi thực hiện các phép tính và xử lý các yêu cầu nghiệp vụ Quá trình này giúp đảm bảo dữ liệu chính xác và đúng quy trình, trước khi gửi kết quả về Presentation Layer.

Data Access Layer (DAL) là lớp chịu trách nhiệm giao tiếp trực tiếp với hệ quản trị cơ sở dữ liệu, đảm nhiệm các công việc liên quan đến lưu trữ và truy vấn dữ liệu như tìm kiếm, thêm mới, xóa và cập nhật thông tin.

Việc phân chia mã nguồn thành các lớp giúp code rõ ràng và dễ hiểu hơn nhờ vào việc tách biệt các chức năng chính như giao diện người dùng, xử lý logic và truy vấn dữ liệu Đây là phương pháp giúp giảm sự phụ thuộc chặt chẽ giữa các phần của hệ thống, từ đó nâng cao khả năng bảo trì và mở rộng phần mềm Chia thành các lớp riêng biệt còn làm gia tăng tính modular, giúp nhóm lập trình dễ dàng quản lý, phát triển và tối ưu hóa từng phần của ứng dụng.

Việc phân chia hệ thống thành các thành phần riêng biệt giúp dễ dàng bảo trì và thay đổi Khi một thành phần được tách biệt, các thay đổi có thể được cô lập trong một lớp nhất định, giảm thiểu ảnh hưởng đến toàn bộ chương trình Điều này đảm bảo rằng các sửa đổi chỉ ảnh hưởng đến lớp gần nhất, tạo ra hệ thống dễ bảo trì và mở rộng hơn.

Phát triển dễ dàng và tái sử dụng là lợi ích lớn của việc lập trình theo mô hình chuẩn, giúp việc thêm chức năng mới trở nên đơn giản hơn Khi muốn chuyển đổi giữa các môi trường, từ Winform sang Webform, chỉ cần thay đổi lớp giao diện người dùng (GUI), nhờ vào việc sử dụng lại mã nguồn đã được xây dựng theo chuẩn.

Việc bàn giao dễ dàng hơn khi mọi người tuân thủ theo một quy chuẩn đã được xác định rõ ràng Điều này giúp công việc chuyển giao diễn ra nhanh chóng và hiệu quả hơn, đồng thời giảm thiểu thời gian và công sức cần thiết Áp dụng các tiêu chuẩn đồng bộ trong quy trình bàn giao tạo điều kiện thuận lợi cho sự phối hợp giữa các bộ phận, nâng cao năng suất làm việc.

Mô hình 3 lớp giúp dễ dàng phân phối khối lượng công việc cho từng nhóm hoặc bộ phận, đảm bảo phân chia nhiệm vụ rõ ràng và hợp lý Nhờ đó, các lập trình viên có thể kiểm soát tốt hơn khối lượng công việc của mình, nâng cao hiệu quả làm việc và giảm thiểu rối loạn trong quá trình phát triển dự án.

MVC, viết tắt của 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 các phần riêng biệt Model xử lý logic và các nghiệp vụ kinh doanh, trong khi View quản lý giao diện người dùng, giúp dễ dàng quản lý và mở rộng mã nguồn hơn.

Trong ứng dụng, thành phần này tập trung vào xử lý business logic, đảm bảo các quy trình nghiệp vụ hoạt động chính xác và hiệu quả Nó còn được xem là nơi lưu trữ và xử lý dữ liệu xuyên suốt trong mô hình phần mềm, giúp duy trì tính nhất quán và toàn vẹn của thông tin.

MVC Các thành phần đảm nhiệm vai trò model có thể kể đến bao gồm:

- 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 bộ phận phù hợp để xử lý và nhận lại kết quả chính xác Sau đó, dữ liệu sẽ được gửi sang giao diện người dùng (View) để hiển thị một cách rõ ràng, thuận tiện cho người dùng truy cập.

Trong hệ thống phần mềm, Controller đóng vai trò như một mắc xích kết 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ả Controller đóng vai trò trung gian, nhận dữ liệu từ View và xử lý các lệnh liên quan đến Model, từ đó cập nhật dữ liệu và hiển thị lại kết quả cho người dùng Việc sử dụng Controller giúp tăng tính linh hoạt và tổ chức tốt hơn trong kiến trúc phần mềm, đảm bảo quy trình vận hành trơn tru và dễ bảo trì.

Thành phần hiển thị dữ liệu chủ yếu chứa các form nhập liệu, các đoạn HTML hoặc bảng để trình bày dữ liệu rõ ràng và trực quan Nó không chứa các xử lý logic phức tạp, tập trung vào việc hiển thị dữ liệu một cách hợp lý Việc sử dụng các thành phần này giúp tối ưu hóa trải nghiệm người dùng và đảm bảo tính dễ đọc của thông tin Đặc biệt, việc phân tách rõ ràng giữa phần hiển thị và xử lý logic giúp dễ bảo trì và nâng cấp hệ thống sau này.

- Đượ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 có thể tái sử dụng mà không cần sửa đổi.

- 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

Data Access Object (DAO) là một mẫu thiết kế thuộc nhóm cấu trúc (Structural Pattern) dùng để tách biệt logic lưu trữ dữ liệu vào một lớp riêng biệt, giúp quản lý dữ liệu hiệu quả hơn Mẫu DAO giúp che giấu cách thức truy cập cơ sở dữ liệu cấp thấp, tạo ra sự tách biệt rõ ràng giữa các service và hoạt động liên quan đến dữ liệu Việc áp dụng DAO cải thiện khả năng bảo trì và mở rộng hệ thống dữ liệu trong các ứng dụng phần mềm.

Nó còn được gọi là nguyên tắc Tách logic (Separation of Logic).

Thay vì xây dựng logic giao tiếp trực tiếp với cơ sở dữ liệu, hệ thống file, dịch vụ web hoặc các cơ chế lưu trữ khác, chúng ta sẽ triển khai lớp trung gian DAO để xử lý Lớp DAO sẽ đảm nhiệm vai trò trung gian, giao tiếp với hệ thống lưu trữ hoặc hệ quản trị cơ sở dữ liệu, thực hiện các nhiệm vụ liên quan đến lưu trữ và truy vấn dữ liệu như tìm kiếm, thêm, xóa, sửa một cách hiệu quả và dễ quản lý.

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

Nó bảo vệ phần còn lại của ứng dụng khỏi các thay đổi trong lớp lưu trữ, giúp đảm bảo tính ổn định và linh hoạt khi thực hiện các chuyển đổi công nghệ, như chuyển đổi từ Oracle sang MySQL hoặc thay đổi phương thức lưu trữ từ file sang database, từ đó giảm thiểu rủi ro và tối ưu hóa hiệu suất hệ thống.

- Trong Java, DAO được triển khai theo nhiều cách khác nhau như Java

Persistence API, Enterprise Java Bean (EJP), Object-relational mapping

(ORM) với các implement cụ thể như Hibernate, iBATIS, 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 định nghĩa các phương thức trừu tượng giúp triển khai việc truy cập dữ liệu cơ bản cho BusinessObject, tạo điều kiện để thao tác và truy xuất dữ liệu từ nguồn dữ liệu (DataSource) một cách hiệu quả và linh hoạt.

- 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), chủ yếu chứa các phương thức getter và setter để lưu trữ dữ liệu một cách hiệu quả Được sử dụng rộng rãi trong các lớp DAO (Data Access Object), TransferObject giúp quản lý dữ liệu một cách rõ ràng và dễ dàng Việc sử dụng TransferObject trong Java giúp tối ưu hóa quá trình truyền dữ liệu giữa các lớp khác nhau, đặc biệt trong các ứng dụng liên quan đến truy xuất dữ liệu từ cơ sở dữ liệu.

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

- 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.

Dễ mở rộng và bảo trì là ưu điểm của hệ thống lưu trữ dữ liệu khi tất cả các chi tiết đều được ẩn khỏi phần còn lại của ứng dụng Nhờ đó, chỉ cần sửa đổi một implement của DAO để thực hiện các thay đổi, trong khi phần còn lại của ứng dụng vẫn hoạt động bình thường DAO đóng vai trò như một trung gian hiệu quả giữa ứng dụng và cơ sở dữ liệu, giúp nâng cao khả năng bảo trì và mở rộng hệ thống một cách dễ dàng.

- 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 các dự án lớn, các nhóm phát triển thường làm việc trên nhiều phần khác nhau của ứng dụng để tối ưu hóa quy trình và nâng cao hiệu quả công việc Mẫu DAO (Data Access Object) đóng vai trò quan trọng trong việc giúp phân tách rõ ràng các thành phần này, từ đó tạo ra kiến trúc phần mềm rõ ràng, dễ bảo trì và mở rộng Áp dụng mẫu DAO không những giúp quản lý truy cập dữ liệu một cách hiệu quả mà còn tăng tính mô đun, giảm thiểu sự phụ thuộc giữa các thành phần của ứng dụng Do đó, việc sử dụng mẫu DAO là giải pháp tối ưu cho các dự án lớn yêu cầu sự phân chia rõ ràng và tổ chức tốt các phần của hệ thống.

- 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 cùng lớp thực thi PersonDaoImpl đóng vai trò quản lý các hoạt động truy cập dữ liệu liên quan đến đối tượng Person Trong quy trình này, các đối tượng giá trị (VO), đối tượng thực thể (EO) hoặc đối tượng truyền dữ liệu (DTO) – cụ thể là Person – được sử dụng để biểu diễn dữ liệu trong một đối tượng duy nhất Việc sử dụng các lớp và đối tượng này giúp mã nguồn rõ ràng, dễ bảo trì và tối ưu hiệu suất xử lý dữ liệu trong các ứng dụng Java.

 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ẽ được sử dụng để xây dựng từ điển dữ liệu, mô tả các bảng và trường trong cơ sở dữ liệu một cách rõ ràng và chính xác Việc chia nhỏ dữ liệu thành các phần nhỏ hơn, hữu ích giúp quản lý và truy xuất thuận tiện hơn Đồng thời, cần tránh trùng lặp dữ liệu trong nhiều bảng để giảm thiểu sự phức tạp và tối ưu hóa hiệu suất của hệ thống cơ sở dữ liệu.

Khi bạn hiểu rõ các loại dữ liệu sẽ có trong cơ sở dữ liệu, nguồn gốc của dữ liệu đó là đâu và cách sử dụng chúng như thế nào, bạn đã chuẩn bị nền tảng vững chắc để bắt đầu lập kế hoạch cho cơ sở dữ liệu thực tế Điều này giúp đảm bảo quá trình thiết kế và triển khai cơ sở dữ liệu hiệu quả, đáp ứng đúng nhu cầu của doanh nghiệp và tối ưu hóa quản lý dữ liệu.

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 của bạn, bạn cần hiểu rõ cấu trúc của cơ sở dữ liệu quan hệ, trong đó dữ liệu được sắp xếp thành các bảng Các bảng này gồm các hàng (bộ dữ liệu) và cột giống như trong bảng tính, giúp dễ dàng quản lý và truy xuất dữ liệu Để chuyển đổi danh sách dữ liệu thành bảng, bắt đầu bằng việc tạo các bảng riêng biệt 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 bảo dữ liệu được tổ chức rõ ràng và logic.

Trong quản lý dữ liệu, mỗi hàng trong bảng gọi là một bản ghi, đại diện cho một đối tượng hoặc một cá nhân, chẳng hạn như một khách hàng cụ thể Hồ sơ chứa tất cả thông tin liên quan đến một đối tượng hoặc cá nhân đó, giúp tổ chức dữ liệu một cách rõ ràng và dễ dàng truy cập.

Các cột trong cơ sở dữ liệu (còn gọi là trường hoặc thuộc tính) chứa một loại thông tin duy nhất xuất hiện trong mỗi bản ghi, ví dụ như địa chỉ của khách hàng trong bảng dữ liệu Để đảm bảo tính nhất quán của dữ liệu giữa các bản ghi, việc gán kiểu dữ liệu phù hợp cho từng cột là điều cần thiết Các kiểu dữ liệu phổ biến thường được sử dụng bao gồm số, văn bản, ngày tháng, giúp tối ưu hóa quản lý và truy xuất dữ liệu trong hệ thống cơ sở dữ liệu.

+ 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.

Sơ đồ mối quan hệ thực thể giúp tạo ra tổng quan trực quan về cơ sở dữ liệu bằng cách sử dụng các hộp đại diện cho từng bảng thay vì các bảng thực tế Mỗi hộp trong sơ đồ cần có tiêu đề rõ ràng mô tả nội dung dữ liệu của bảng đó, giúp người xem dễ dàng hiểu được mục đích của từng phần dữ liệu Các thuộc tính của bảng được liệt kê bên dưới tiêu đề, cung cấp thông tin chi tiết về các trường dữ liệu liên quan trong bảng, góp phần làm rõ cấu trúc và mối quan hệ của cơ sở dữ liệu.

Q7: Interface design (principles…)

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

Giao diện người dùng là thành phần quan trọng của phần mềm, được thiết kế nhằm mang lại trải nghiệm trực quan và dễ sử dụng cho người dùng Nó đóng vai trò nền tảng để người dùng tương tác hiệu quả với phần mềm, giúp cung cấp cái nhìn rõ ràng về chức năng và hoạt động của hệ thống Giao diện người dùng không chỉ nâng cao trải nghiệm người dùng mà còn góp phần vào sự thành công chung của phần mềm.

Giao diện người dùng có thể là đồ họa, dựa trên 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 Đây là phần mềm, phần cứng hoặc sự phối hợp của cả hai, giúp người dùng tương tác hiệu quả với hệ thống.

 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

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

CLI (Command Line Interface) là công cụ tương tác mạnh mẽ, đặc biệt được ưa chuộng bởi các kỹ thuật viên và lập trình viên nhờ tính linh hoạt và khả năng kiểm soát cao Tuy nhiên, với sự xuất hiện của màn hình hiển thị video, trải nghiệm người dùng đã chuyển hướng sang giao diện đồ họa trực quan hơn CLI đại diện cho một giao diện tối thiểu, cung cấp dòng lệnh để điều khiển phần mềm một cách chính xác và hiệu quả, phù hợp với những người dùng yêu thích sự tối giản và kiểm soát chi tiết Tuy nhiên, trong thời đại công nghệ phát triển, nhiều người dùng đã chuyển sang sử dụng giao diện đồ họa để nâng cao trải nghiệm tương tác.

CLI cung cấp một giao diện dòng lệnh nơi người dùng có thể nhập lệnh và cung cấp dữ liệu cho hệ thống Người dùng cần nhớ cú pháp và cách sử dụng chính xác của các lệnh để thao tác hiệu quả Tuy nhiên, các phiên bản CLI truyền thống thường không xử lý lỗi người dùng một cách hiệu quả, điều này có thể gây khó khăn trong quá trình vận hành hệ thống.

Lệnh trong hệ thống là một tham chiếu dựa trên văn bản cho tập hợp các lệnh được mong đợi sẽ thực thi, giúp người dùng dễ dàng thao tác và quản lý quá trình làm việc Các phương thức như macro và script đóng vai trò quan trọng trong việc tự động hóa và tối ưu hóa các thao tác, nâng cao hiệu quả công việc Việc sử dụng lệnh và các phương pháp tự động hóa như macro, script không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu sai sót trong quá trình thao tác.

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

Command Prompt là trình thông báo dựa trên văn bản, hiển thị ngữ cảnh làm việc của người dùng một cách rõ ràng và trực quan Được tạo ra bởi hệ thống phần mềm, Command Prompt giúp người dùng dễ dàng thao tác và kiểm soát các lệnh, góp phần nâng cao hiệu quả làm việc trên máy tính.

Con trỏ là một đường ngang nhỏ hoặc thanh dọc có chiều cao phù hợp với dòng, giúp thể hiện vị trí của ký tự trong khi người dùng nhập liệu Thông thường, con trỏ xuất hiện dưới dạng nháy liên tục, tạo điều kiện dễ dàng để người dùng quan sát và xác định vị trí chỉnh sửa Nó tự động di chuyển theo quá trình viết hoặc xóa nội dung, hỗ trợ quá trình soạn thảo trở nên thuận tiện và chính xác hơn.

Lệnh là lệnh thực thi trong hệ thống, có thể đi kèm một hoặc nhiều tham số để tùy chỉnh hoạt động Khi thực thi, kết quả đầu ra sẽ hiển thị trực tiếp trên màn hình, giúp người dùng dễ dàng quan sát và kiểm tra Sau khi kết quả xuất hiện, dấu nhắc lệnh sẽ xuất hiện trở lại trên dòng tiếp theo, sẵn sàng cho các lệnh 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, có thể dưới dạng biểu tượng hoặc danh sách, đặc biệt khi đại diện cho cấu trúc tệp Người dùng dễ dàng điều hướng hệ thống tệp trong cửa sổ khám phá, nơi các cửa sổ có thể thu nhỏ, mở rộng hoặc tối đa hóa để phù hợp với nhu cầu sử dụng Chức năng kéo và thả giúp di chuyển cửa sổ đến bất cứ vị trí nào trên màn hình, nâng cao trải nghiệm người dùng Ngoài ra, một cửa sổ có thể chứa các cửa sổ con cùng ứng dụng, giúp tổ chức nội dung một cách trực quan và linh hoạt.

Giao diện tab cho phép người dùng mở nhiều phiên bản của một ứng dụng trong cùng một cửa sổ dưới dạng các tab riêng biệt, giúp quản lý dễ dàng hơn Tính năng này không chỉ nâng cao trải nghiệm người dùng bằng cách mở nhiều tài liệu hoặc trang web trong một cửa sổ, mà còn cho phép xem bảng tùy chọn trong ứng dụng một cách thuận tiện Hiện nay, tất cả các trình duyệt web hiện đại đều tích hợp giao diện tab để tối ưu hóa thao tác duyệt web.

Menu là một tập hợp các lệnh tiêu chuẩn được nhóm lại với nhau và đặt ở vị trí dễ nhìn thấy, thường là phía trên cùng của cửa sổ ứng dụng Menu giúp người dùng dễ dàng truy cập các chức năng chính của phần mềm một cách thuận tiện Ngoài ra, menu có thể được lập trình để xuất hiện hoặc ẩn đi khi người dùng nhấp chuột vào các mục tương ứng, tăng tính linh hoạt và tối ưu trải nghiệm người dùng.

Biểu tượng là hình ảnh nhỏ đại diện cho các ứng dụng được liên kết, giúp người dùng dễ dàng nhận biết và truy cập Khi nhấp hoặc nhấp đúp vào biểu tượng, cửa sổ ứng dụng sẽ tự động mở ra, mang lại trải nghiệm nhanh chóng và tiện lợi Các biểu tượng hiển thị các ứng dụng và chương trình đã được cài đặt trên hệ thống dưới dạng hình ảnh nhỏ, góp phần vào việc tổ chức và quản lý giao diện người dùng một cách trực quan.

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

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

Trong quá trình thiết kế giao diện người dùng, có một số hoạt động quan trọng cần thực hiện để đảm bảo tính khả dụng và thẩm mỹ của giao diện Quá trình thiết kế và triển khai GUI (Giao diện Người dùng Đồ họa) thường được thực hiện theo mô hình phát triển phần mềm SDLC (Software Development Life Cycle), giúp quản lý dự án hiệu quả và toàn diện Bất kỳ mô hình phát triển nào cũng có thể áp dụng để đảm bảo quá trình thiết kế giao diện người dùng diễn ra một cách hợp lý và có hệ thống, từ phân tích yêu cầu đến kiểm thử và triển khai.

50 | P a g e được sử dụng để triển khai GUI giữa Mô hình Thác nước, Mô hình lặp lại hoặc

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: 09/12/2022, 10:37

w