1/27/2022

Phân tích và thiết kế hệ thống | Tài liệu, cơ sở ngành CNTT


Nếu các bạn học môn công nghệ phần mềm trước thì có lẽ các bạn đã được giới thiệu và làm quen trước về một số các biểu đồ như biểu đồ use-case, biểu đồ luồng, biểu đồ hoạt động, biểu đồ lớp,... Với môn phân tích và thiết kế hệ thống thì chính xác là các bạn được học lại nhưng mà đi một cách kĩ càng hơn khi phân tích và vẽ các biểu đồ trên.

Ở OOP thì các bạn được làm quen với 2 biểu đồ là biểu đồ use-case và biểu đồ lớp, sang tới công nghệ phần mềm các bạn được giới thiệu và làm quen với nhiều các loại biểu đồ hơn và tới phân tích thiết kế hệ thống các bạn sẽ được làm quen với gần như tất cả các loại biểu đồ đó là: 

  • Biểu đồ lớp 
  • Biểu đồ đối tượng
  • Biểu đồ triển khai 
  • Biểu đồ gói 
  • Biểu đồ thành phần 
  • Biểu đồ cấu trúc đa hợp
  • Biểu đồ ca sử dụng (use-case)
  • Biểu đồ hoạt động 
  • Biểu đồ trình tự 
  • Biểu đồ giao tiếp 
  • Biểu đồ máy trạng thái
  • Biểu đồ thời gian
  • Biểu đồ tổng quan tương tác

Mỗi biểu đồ sẽ đặc trưng cho một giai đoạn, góc nhìn trong quy trình phát triển phần mềm của bạn. Theo mình được biết thì việc vẽ những biểu đồ này sẽ nằm trong phần công việc của một BA (Business Analyst), dĩ nhiên là một lập trình viên ít nhất cũng phải nhìn được hiểu các biểu đồ này.

Môn học này là môn đi học chỉ học biểu đồ và làm bài tập lớn hay đi thi thì cũng chỉ thi vẽ biểu đồ thôi. Nhìn chung thì bước phân tích và thiết kế là một bước rất quan trọng trong quy trình phát triển phần mềm, tuy nhiên đôi khi đi làm ở công ty hay là các bài tập lớn ở trường thì chúng ta thường bỏ qua bước này mà bước ngay vào bước viết mã nguồn cho phần mềm sau đó dùng các công cụ để gen lại các biểu đồ dí vào báo cáo cho có, nhưng đấy là các môn khác thôi với môn này các bạn làm bài tập lớn sẽ không cần code và chỉ phải phân tích và thiết kế. 

Môn này có một số thầy dạy, tuy nhiên mình thấy thầy dạy hay nhất là thầy Nguyễn Nhật Quang, thầy dạy rất tỉ mỉ, giải thích rõ từng phần một, điểm thì thầy cho cũng khá thoải mái, các bạn có thể xem qua website cá nhân của thầy Quang TẠI ĐÂY.

Một số tài liệu dành cho môn học: 

- Slide bài giảng - thầy Nguyễn Nhật Quang: TẢI VỀ SLIDE BÀI GIẢNG

- Một số đề thi cuối kì môn phân tích và thiết kế hệ thống: TẢI VỀ ĐỀ THI THAM KHẢO

Một số tài liệu tham khảo thêm: 

- Thực hành về xây dựng biểu đồ use-case: TẢI VỀ TÀI LIỆU

- Thực hành về xây dựng biểu đồ lớp, biểu đồ trạng thái: TẢI VỀ TÀI LIỆU

- Tham khảo biểu đồ use-case chi tiết: TẢI VỀ TÀI LIỆU

Tài liệu khác: 

- Tài liệu phân tích thiết kế hệ thống thông tin - PTIT: TẢI VỀ GIÁO TRÌNH

1/24/2022

Tổng hợp các câu hỏi về Apache Spark | Ôn tập cuối kì môn Lưu trữ và xử lý dữ liệu lớn


Xem phần trước: Tổng hợp các câu hỏi về Apache Hadoop | Ôn tập cuối kì môn Lưu trữ và xử lý dữ liệu lớn


Số thứ tự Câu hỏi Đáp án Câu Trả Lời
1 Spark được phát triển bằng ngôn ngữ nào A. Java
B. Scala
C. Python
D. R
B
2 Trong Spark Streaming dữ liệu có thể lấy từ những nguồn nào? A. Kafka
B. Flume
C. Kinesis
D. Tất cả
D
3 Apache Spark có API cho các ngôn ngữ: A. Java
B. Scala
C. Python
D. Tất cả
D
4 Đâu không phải là một thành phần trong hệ sinh thái Spark? A. Sqoop
B. GraphX
C. MLlib
D. BlinkDB
A
5 Cấu trúc dữ liệu cơ bản của Spark Streaming là gì? A. DStream
B. RDD
C. Shared Variable
D. Không có trong số đáp án trên
A
6 Thuật toán nào sau đây không có trong Spark MLlib A. Streaming Linear Regression
B. Streaming KMeans
C. Tanimoto distance
D. Không có trong các phương án trên
C
7 DStream là gì? A. Chuỗi các RDD liên tục
B. Chuỗi Dataframe liên tục
C. Chuỗi Dataset liên tục
D. Không có trong các phương án trên
A
8 Đâu không phải là một đặc điểm của Spark A. Hỗ trợ xử lý tính toán trên RAM
B. Tính chịu lỗi
C. Tiết kiệm chi phí
D. Tương thích với hệ thống lưu trữ tệp khác
C
9 Đâu không phải là một ouput operation của DStream A. SaveAsTextFiles
B. ForeachRDD
C. SaveAsHadoopFiles
D. ReduceByKeyAndWindow
D
10 Apache Spark có khả năng xử lý hàng loạt khi chạy trên RAM nhanh hơn bao nhiêu lần so với MapReduce A. 10
B. 20
C. 100
D. 200
C
11 Đâu là lý do khiến Spark nhanh hơn MapReduce A. Công cụ thực thi DAG và tính toán trên RAM
B. Hỗ trợ cho việc sử dụng nhiều ngôn ngữ khác nhau như Scala; Java; Python; R
C. RDD là bất biến và có khả năng chịu lỗi cao
D. Không có trong các phương án trên
A
12 Điều nào sau đây là đúng khi nói về RDD A. RDD là một mô hình lập trình
B. RDD là một tập hợp đối tượng bất biến
C. Là database
D. Không có trong các phương án trên
B
13 Khả năng chịu lỗi của RDD thể hiện qua đâu? A. Tính bất biến của RDD
B. DAG (Directed Acyclic Graph)
C. Lazy-evaluation
D. Không có trong các phương án trên
14 Đầu vào dữ liệu cho chương trình Spark có thể là: A. Local files
B. HDFS; NFS
C. Amazon S3; Elasticsearch
D. Cả 3 phương án trên
D
15 Đâu là lệnh lưu dữ liệu ra ngoài chương trình Spark? A. input.saveAsTextFile('file:///usr/zeppelin/notebook/dataset/new.txt')
B. input.saveAsTextFile('/usr/zeppelin/notebook/dataset/new.txt')
C. input.saveAs('file:///usr/zeppelin/notebook/dataset/new.txt')
D. input.saveAsTextFile:'file:///usr/zeppelin/notebook/dataset/new.txt'
A
16 Đâu là cách submit đúng một job lên Spark cluster hoặc chế độ local A. ./spark-submit wordcount.py README.md
B. ./spark-submit README.md wordcount.py
C. spark-submit wordcount.py README.md
D. Phương án A và C
A
17 Câu lệnh MapReduce trong Spark dưới đây chia mỗi dòng thành từ dựa vào delimiter nào: input.flatMap(lambda x: x.split('\t')).map(lambda x: (x;1)).reduceByKey(add) A. Tab
B. Dấu cách
C. Dấu hai chấm
D. Dấu phẩy
A

Tham khảo: https://data-flair.training/