[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [TỪ ĐIỂN] -- [Game] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Phân tích và thiết kế PM (4) - Tổng quan về thiết kế

Bài trước: Phân tích và thiết kế PM (3) - Yêu cầu
-----

4. Tổng quan về thiết kế

Ở các phần trước, chúng ta đã có kiến thức tổng quan về các công đoạn để có một phần mềm, đã tìm hiểu sơ qua một số mô hình phát triển phần mềm, đã biết được các loại yêu cầu của một phần mềm.

Ngoài ra, bạn cũng đã có thể viết được một Tài liệu đặc tả yêu cầu người dùng (URS).

Bước tiếp theo của quá trình làm ra một phần mềm là chuyển đổi từ URS thành các Bản thiết kế.

Trong phần này chúng ta sẽ cùng tìm hiểu một số nội dung liên quan đến Thiết kế phần mềm.

4.1 Các khái niệm và nguyên tắc cơ bản

Trước khi đi sâu vào chi tiết, bạn cần nắm vững các nguyên tắc nền tảng của thiết kế phần mềm:

- Kiến trúc phần mềm (software architecture): Đây là cấu trúc tổng thể của một hệ thống, bao gồm các thành phần, mối quan hệ giữa chúng và các nguyên tắc thiết kế. Hiểu kiến trúc giúp bạn hình dung được "bản đồ" tổng thể của dự án.

- Nguyên tắc thiết kế (design principles): Tìm hiểu các nguyên tắc như SOLID (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) để viết mã sạch, dễ bảo trì và mở rộng.

- Mô hình thiết kế (design patterns): Đây là các giải pháp đã được kiểm chứng cho những vấn đề thiết kế phổ biến. Học các mô hình như Singleton, Factory, Observer, MVC (Model-View-Controller) giúp bạn giải quyết các vấn đề lặp đi lặp lại một cách hiệu quả.

4.2 Các giai đoạn và tài liệu thiết kế

Thiết kế phần mềm thường được chia thành hai giai đoạn chính, mỗi giai đoạn tạo ra một tài liệu cụ thể.

- Thiết kế kiến trúc cấp cao (High-Level Design - HLD):

  + Mục đích: Mô tả tổng quan về kiến trúc của hệ thống, các thành phần chính và cách chúng tương tác.

  + Nội dung: Biểu đồ khối (block diagrams), mô tả các module và luồng dữ liệu chính.

- Thiết kế chi tiết (Low-Level Design - LLD):

  + Mục đích: Đi sâu vào chi tiết của từng module. Đây là "bản vẽ chi tiết" để lập trình viên có thể viết mã.

  + Nội dung: Biểu đồ lớp (class diagrams), biểu đồ trình tự (sequence diagrams), biểu đồ luồng hoạt động (activity diagrams) và mô tả chi tiết từng chức năng.

4.3 Các loại biểu đồ thiết kế phổ biến

Các biểu đồ là công cụ trực quan hóa giúp bạn thể hiện ý tưởng thiết kế một cách rõ ràng và dễ hiểu.

- Biểu đồ trường hợp sử dụng (use case diagram): Mô tả mối quan hệ giữa người dùng (Actor) và các chức năng (Use Case) của hệ thống. Đây là cầu nối trực tiếp từ URS sang thiết kế.

- Biểu đồ lớp (class diagram): Thể hiện cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính, phương thức và mối quan hệ giữa chúng (kế thừa, kết hợp, phụ thuộc).

- Biểu đồ trình tự (sequence diagram): Minh họa sự tương tác giữa các đối tượng trong một chức năng cụ thể theo trình tự thời gian.

- Biểu đồ hoạt động (activity diagram): Mô tả luồng công việc hoặc các bước xử lý trong một chức năng hoặc một quy trình nghiệp vụ.

4.4 Các khía cạnh quan trọng khác

Để thiết kế một hệ thống hoàn chỉnh, bạn cũng cần chú ý đến các yếu tố này:

- Thiết kế giao diện người dùng (user interface - UI) & Trải nghiệm người dùng (user experience - UX): Dựa trên các yêu cầu chức năng, bạn cần thiết kế giao diện trực quan và dễ sử dụng.

- Thiết kế cơ sở dữ liệu (database design): Đây là việc xây dựng cấu trúc để lưu trữ dữ liệu của hệ thống. Bạn cần tìm hiểu về mô hình quan hệ, các dạng chuẩn hóa (normalization) và cách thiết kế bảng, khóa chính, khóa ngoại.

- Bảo mật trong thiết kế (security by design): Ngay từ giai đoạn thiết kế, bạn cần xây dựng các cơ chế để chống lại các cuộc tấn công và bảo vệ dữ liệu.

Việc học và nắm vững các chủ đề trên sẽ giúp bạn chuyển từ việc hiểu "cần làm gì" (từ URS) sang việc xác định "làm như thế nào" (thiết kế phần mềm), tạo ra nền tảng vững chắc cho quá trình lập trình và phát triển tiếp theo.

-----
Bài sau:

Math_English_Grade6 (2) - Ratios: Mastery test

Previous: Math_English_Grade6 (1) - Ratios
-----

6.2 Ratios - Mastery test

1. Select the correct answer.

Lauren bought 6 yellow roses, 10 orange roses, and 12 pink roses to make a bouquet. What is the ratio of the number of yellow roses to the total number of roses in Lauren’s bouquet?

 A. 6 : 10

 B. 6 : 12

 C. 6 : 2

 D. 6 : 28

2. Select the correct answer.

James has 6 stamps in his stamp collection. Roy has 12 stamps in his stamp collection. James adds 2 stamps to his stamp collection. After James adds these stamps, what is the ratio of the number of stamps in James's collection to the number of stamps in Roy’s collection?

 A. 1 : 2

 B. 2 : 1

 C. 3 : 2

 D. 2 : 3

3. Drag the tiles to the correct boxes to complete the pairs.

Match each ratio with its simplest form.


4. Drag the tiles to the correct boxes to complete the pairs. Not all tiles will be used.

Match the statements to the correct ratios.

5. Select the correct answer.

Which ratios are equal to each other?

 A. 1 : 16 and 2 : 8

 B. 2 : 32 and 4 : 8

 C. 1 : 64 and 4 : 16

 D. 1 : 16 and 4 : 64

6. Type the correct answer in each box.

Elena has 32 hair ties. Melanie has 8 hair ties.

The ratio of Elena’s hair ties to Melanie’s hair ties is  [     ] : 1. If, Melanie gets 4 more hair ties, the new ratio of Elena’s hair ties to Melanie’s hair ties is 8 : [    ]

7. Select the correct answer.

In the diagram, how many circles are there for each square?


 A. 1

 B. 2

 C. 12

 D. 18

8. Select the correct answer.

In the diagram, what is the ratio of patterned circles to plain circles?

-----
Next:

Lập trình Scratch (10) - Phát thông điệp

Bài trước: Lập trình Scratch (9) - Thời gian thực thi lệnh 
-----

10. Phát thông điệp

Bình thường, để khởi chạy một khối lệnh, bạn phải bấm chuột vào lá cờ màu xanh, bấm chuột vào khối lệnh, hoặc bấm một phím nào đó.

Tuy nhiên, có một cách khác để khởi chạy một  (hoặc nhiều) khối lệnh là sử dụng thông điệp (message).

Quá trình được thực hiện như sau:

- Bước 1, bạn sẽ tạo ra một thông điệp.

- Bước 2, phát đi thông điệp.

- Bước 3, thành phần nào nhận được thông điệp sẽ khởi chạy, hoặc thực thi một việc gì đó.

Về lý thuyết, các khối lệnh nhận được thông điệp sẽ ngay lập tức được thực thi. Tuy nhiên, chúng ta vẫn có thể lập trình để có thể kiểm soát được thời điểm thực thi này.

10. Broadcast messages

Sending messages allows you to start arbitrary pieces of code. If there are multiple receivers, they apparently all start at the same time. In reality, however, control is rapidly being switched between the different processes.

10.1 Nhiều bộ nhận thông điệp

Chúng ta cùng tạo một thông điệp và gửi tới 2 bộ nhận thông điệp.

- Bạn tạo một nhân vật (sprite1)

- Thêm khối lệnh broadcast message1 

- Bấm chuột vào message1, chọn New message để tạo thông điệp mới (đặt tên là ThongDiep1).

- Thêm tiếp khối lệnh sau:

- Bấm khối lệnh broadcast ThongDiep1 để thực thi và quan sát kết quả. Nếu chạy được, bạn sẽ thấy chú mèo thông báo là “Đã nhận ThongDiep1”. Vậy là bạn đã tạo và gửi được thông điệp thành công.

- Tạo thêm một nhân vật nữa (thêm một chú mèo, đặt tên là sprite2).

- Thêm đoạn mã sau, cho nhân vật mới thêm


- Bấm khối lệnh broadcast ThongDiep1 để thực thi và quan sát kết quả. Nếu chạy được, cả 2 chú mèo đều thông báo là “Đã nhận: ThongDiep1. Vậy là bạn đã tạo và gửi được thông điệp tới 2 nhân vật thành công.

Bài tập 10a. Bạn hãy tạo 3 nhân vật khác nhau, sau đó tạo một thông điệp để gửi tới 3 nhân vật này. Nhân vật nào nhận được thông điệp thì thông báo là: Tên nhân vật: đã nhận được thông điệp. Ví dụ: Mèo: đã nhận được thông điệp, Sư tử: đã nhận được thông điệp, Voi: đã nhận được thông điệp.

Bài tập 10b. Bài tập Tình huống

Tình huống: Dàn nhạc biểu diễn

Trường bạn đang chuẩn bị cho một buổi biểu diễn văn nghệ. Bạn là nhạc trưởng, và các nhân vật lập trình của bạn là các thành viên trong dàn nhạc.

Dàn nhạc của bạn có 3 thành viên chính:

- Nhân vật 1: Chú Chim Họa Mi (người hát chính).

- Nhân vật 2: Cây Đàn Guitar (người đệm nhạc).

- Nhân vật 3: Hoa Mai (người nhảy múa phụ họa).

Nhiệm vụ của bạn:

Bạn cần lập trình để tất cả 3 thành viên này bắt đầu biểu diễn “đúng lúc” bạn ra hiệu lệnh.

Bước 1: Tạo tín hiệu bắt đầu.

- Tạo một thông điệp mới (message) và đặt tên là "Bắt đầu Biểu diễn".

- Lập trình để khi bạn bấm vào lá cờ màu xanh (hoặc một phím bất kỳ), nhân vật Nhạc trưởng sẽ phát đi thông điệp "Bắt đầu Biểu diễn".

Bước 2: Lập trình cho các thành viên.

- Lập trình cho nhân vật chú Chim Họa Mi: Khi nhận được thông điệp "Bắt đầu Biểu diễn", Chim Họa Mi sẽ nói (hoặc phát ra âm thanh) một câu như: "Chào các bạn, mời các bạn nghe hát!" trong 2 giây.

- Lập trình cho nhân vật Cây Đàn Guitar: Khi nhận được thông điệp "Bắt đầu Biểu diễn", Guitar sẽ chơi một đoạn nhạc ngắn (hoặc chỉ cần thay đổi hình dạng/màu sắc) để đệm.

- Lập trình cho nhân vật Hoa Mai: Khi nhận được thông điệp "Bắt đầu Biểu diễn", Hoa sẽ thực hiện một động tác chuyển động (ví dụ: quay 5 vòng hoặc thay đổi trang phục).

Mục tiêu:

Khi bạn bấm nút Khởi chạy, hãy quan sát xem cả 3 nhân vật (Chim, Đàn, Hoa) có cùng lúc nhận được lệnh và thực hiện nhiệm vụ của mình không.

-----
Bài sau: