You are on page 1of 4

SYSTEM PROPOSAL PHÂN TÍCH TÍNH KHẢ THI:

Lợi ích hữu hình: có thể đo được bằng tiền/tài nguyên/thời gian tiết kiệm Khả thi Kinh tế: ptich chi phí vs lợi nhuận (lời hay ko, ngắn hạn/dài hạn); thời
được. gian phân tích hệ thống; chi phí nghiên cứu hệ thống, thời gian nghiên cứu hệ
VD: Tăng tốc độ xử lý -> tiếp cận thông tin kịp thời. Sức mạnh tính toán vượt thống; chi phí phần cứng; chi phí đóng gói phần mềm và phát
trội của máy tính -> giảm thời gian lao động cần thiết để hoàn thành nhiệm triển phần mềm; Khả thi Kỹ thuật: thêm vào hệ thống hiện tại để nâng cấp;
vụ cụ thể. Khi hệ thống chạy tự động: Tăng doanh thu, tiết kiệm chi phí tài Công nghệ có đáp ứng được yêu cầu người dùng, Khả thi Vận hành: Hệ thống
nguyên, tiết kiệm chi phí phần cứng (thay phần cứng rẻ hơn nhưng vẫn chạy có vận hành được khi cài đặt không; Hệ thống có thể sử dụng được thực tế
tốt), tiết kiệm chi phí phần mềm, tăng năng suất -> giảm thời gian hoàn không? (đủ nhân sự ko? Ko đủ -> đào tạo? thuê?), ngdùng có thật sự hài lòng
thành cho dự án. Cải thiện năng suất của quá trình và nhân lực. Giảm giá với hệ thống mới?
thành sản phẩm và dịch vụ đã mua, giảm chi phí giấy và bưu chính, giảm ________________________________________________________
hàng tồn kho, giảm thời gian, giảm lỗi chứng khoán. Đặt hàng và thanh toán
tự động -> giảm xử lý thanh toán và chi phí giấy 4 MỨC KIỂM THỬ PHẦN MỀM
Lập trình viên, analyst, operators (người vận hành) và user đều có những vai trò
Lợi ích vô hình: khó đo lường được, nhưng rất quan trọng. khác nhau trong nhiều khía cạnh của testing.
VD: Cải thiện quá trình ra quyết định, tăng cường độ chính xác, tăng khả
năng cạnh tranh trong dịch vụ khách hàng, duy trì một hình ảnh doanh - Program testing with test data
nghiệp tốt, tăng sự hài lòng trong công việc. Đóng góp cho chiến lược của Programmer chịu phần lớn trách nhiệm trong việc kiểm thử ban đầu
công ty: tăng vị trí doanh nghiệp, khẳng định vị thế thông qua SP, dự án. Analyst giám sát và đảm bảo các kỹ thuật testing được dùng đúng (yêu cầu này
Nâng cao UX: tăng hiệu suất, tìm kiếm nhanh, checkout nhanh… Tăng sự hài khá khó ở giai đoạn này)
lòng của khách hàng: tăng tính năng minh bạch và trách nhiệm của tổ chức. Ở giai đoạn này, dev thực hiện kiểm tra vài thứ cơ bản để xác nhận cách hoạt
Truy cập dữ liệu chính xác và nhanh hơn để đưa ra quyết định kịp thời. Có động của hệ thống có đúng như yêu cầu hay không
thể tiếp cận nhiều nhà cung cấp hơn, tạo ra giá thầu cạnh tranh hơn;Cải Tiếp theo, dev tạo ra những bộ data valid và invalid. Data invalid để đảm bảo
thiện phản ứng của khách hàng. Kiểm soát nhiều hơn do đó làm giảm nguy rằng hệ thống có thể kiểm soát được unhappy-cases. Các output từ test data
cơ sử dụng sai tài nguyên; Tạo điều kiện hoạch định chiến lược. Báo cáo phải được kiểm định kỹ lưỡng
thống nhất theo tiêu chuẩn toàn cầu Sau cùng, analyst kiểm tra các output xem có lỗi hay không + chỉ ra những
trường hợp thiếu sót trong testing để chuẩn bị cho các bước kiểm thử sau
Chi phí hữu hình: Chi phí có thể dễ dàng tính toán, phân tích. Ví zụ: Chi phí
thiết bị (máy chủ, máy tính, máy in,…), tài nguyên (nguồn lực, hạ tầng, - Link testing with test data
server, internet, điện,…) , chi phí thời gian phân tích hệ thống, chi phí thời Link testing để kiểm tra xem chương trình có ổn định khi hoạt động cùng với
gian lập trình, lương cho các nhân viên khác… nhau hay không
Đầu tiên, analyst tạo ra các bộ dữ liệu thông thường xem hệ thống có hoạt động
Chi phí vô hình: Chi phí khi hệ thống thất bại. Ví zụ: Mất một lệ thế cạnh hay không (đây là trường hợp chiếm đa số các transaction của hệ thống)
tranh, mất lợi thế tiên phongm suy giảm hình ảnh công ty (nếu thất bại), ra Nếu pass trường hợp trên, tiếp tục dùng những bộ data bất thường để đảm bảo
quyết định không hiệu quả (dự án thất bại, thương hiệu giảm, mất thị hệ thống có thể handle được lỗi
trường -> phân tích không đúng địa điểm và thời gian)
- Full system testing with test data
Lựa chọn phần cứng: Khi đã pass link testing, ta sẽ test toàn bộ hệ thống.
Ưu Nhược
Operator và user cũng sẽ tham gia vào giai đoạn này
Rẻ hơn thuê dài hạn (trong
Chi phí ban đầu lớn Test data sẽ được tạo ra bởi team analysis, thể hiện mục tiêu test cụ thể
gian dài)
Mua Rủi ro phần cứng lỗi thời, mua Những điều cần lưu ý khi thực hiện system testing
Lợi thế thuế khấu hao
sai, chịu toàn bộ trách nhiệm + Kiểm tra xem người vận hành có đủ doc để vận hành đúng hay ko
nhanh, toàn quyền kiểm soát
Ko sở hữu phần cứng + Kiếm tra xem procedure manuals có rõ ràng để có thể chuẩn bị data test hay
CP ban đầu thấp, giá thấp
T. dài hạn
hơn T.ngắn hạn
Bồi thường khi có vđ không
Về lâu dài -> đắc + Xác định xem workflow của hệ thống mới hoặc hệ thống đã sửa đổi có đúng
CP ban đầu thấp là flow hay không
Dễ thay đổi hệ thống Ko sở hữu phần cứng
T. ngắn hạn + Xác định xem output có chính xác hay không và liệu người dùng có hiểu output
Được bao gồm dịch vụ chăm Chi phí cao
sóc, bảo trì
này
Cần chuẩn bị đủ thời gian cho việc testing (việc này thường bị bỏ qua nếu
Lựa chọn phần mềm: timeline của project bị trễ)
Ưu Nhược
Đắc hơn các lựa chọn khác - Full system testing with live data
Đáp ứng nhu cầu chuyên Phải thuê 1 nhóm dev Giống như bước Full system testing with test data nhưng sẽ sử dụng data có
biệt Tốn thời gian thật (tồn tại trong hệ thống, thường là của user)
Tự viết Sở hữu HT, toàn quyền vận Tự chịu trách nhiệm bảo trì HT Chỉ có thể sử dụng một lượng data test nhỏ
hành Yêu cầu kỹ năng mô tả hệ Thường không thực hiện được với 1 hệ thống hoàn toàn mới
Linh hoạt, KN mở rộng cao thống cao -> rủi ro dev ko hiểu
đúng yêu cầu KH
Độ tin cậy cao, đa dạng chức
Chỉ có thể đùng những tính
năng (thường đi kèm các
Gói PM có năng có sẵn, hạn chế tuỳ chỉnh,
phụ trợ bổ sung), CHI PHÍ RẺ,
sẵn -> nhúng tương lai tài chính không chắc
thường đi kèm help &
chắn, không sở hữu bản quyền
training người dùng
Có thể mất kiểm soát với dữ
Các tổ chức không chuyên ko liệu hệ thống. Cần cân nhắc về
PM dịch vụ cần lo về tiến trình, không sự ổn định lâu dài, bảo mật,
(SaaS) tốn nhiều chi phí cho tác vụ quyền riêng tư. Ko được tinh
IT ko quan trọng. chỉnh theo ý thích, kém mở
rộng trong tương lai.

Một số tiêu chí đánh giá hệ thống: Giá; Đủ tính năng; HT ổn định; Dễ sử
dụng; Tạo đặc thù, thế mạnh riêng; Quyền sở hữu SP; Độ linh hoạt, khả năng
mở rộng; Bảo mật, quyền riêng tư; Chi phí vận hành; Chi phí bảo trì; Nhân
sự vận hành; Nhân sự xây dựng, phát triển;
NOSQL DATABASE 5 CÁCH TRIỂN KHAI HỆ THỐNG MỚI:
- Key – value: là kiểu lưu trữ đơn giản nhất trong các loại CSDL NoSQL đồng Trực tiếp (Người dùng không thể tiếp tục dùng hệ thống cũ, Bị trì hoãn lâu nếu
thời nó cũng là kiểu lưu trữ cho tất cả các HQT CSDL NoSQL. Thông thường, xảy ra lỗi, người dùng bực bội khi bắt buộc dùng hệ thống mới đột ngột, không
các HQT CSDL Key-value lưu trữ dữ liệu dưới dạng key (là một chuỗi duy có cách đầy đủ để so sánh kết quả với hệ thống cũ), Song song (Có thể kiểm tra
nhất) liên kết với value có thể ở dạngchuỗi văn bản đơn giản hoặc các tập, dữ liệu mới so với hệ thống cũ, người dùng cảm thấy an toàn. Tốn chi phí chạy
danh sách dữ liệu phức tạp hơn. Quá trình tìm kiếm dữ liệu thường sẽ được 2 hệ thống, gấp đôi công việc cho nhân viên nên nhân viên có thể chọn hệ thống
thực hiện thông qua key, điều này dẫn đến sự hạn chế về độ chính xác. Các cũ), Dần dần (Hệ thống mới sẽ đảm nhận công việc nhiều dần, cho phép người
phần mềm như Redis, MemcacheDB dùng tham gia vào hệ thống dần dần. Tốn thời gian không cần thiết với các hệ
+ Ưu: Đơn giản, linh hoạt; Xử lý nhiều loại DL nhanh chóng (key -> truy xuất thống nhỏ, đơn giản), Theo từng module (Mỗi module được kiểm tra kĩ trước
thẳng tới giá trị tìm kiếm ko cần qua “indexing”); Linh động, chuyển key- khi đưa vào sử dụng, người dùng làm quen dần với từng module dễ dàng hơn.
value từ HT này sang HT khác mà ko cần code lại Thông thường khó tách hệ thống thành từng module, cần chú ý đến giao diện.),
+ Nhược: Nếu chỉ hỗ trợ tìm kiếm qua key -> độ chính xác ko cao (nếu ko Phân tán (Chuyển đổi từng site riêng biệt bằng 1 trong 4 cách trên, các vấn đề
biết key thì ko tìm được); Ko thể truy vấn phức tạp; có thể được phát hiện trên từng site. Mặc dù chuyển đổi thành công nhưng mỗi
+ TH nên dùng: DL phi cấu trúc (review SP, cmt), DL truy xuất thường xuyên site có thể có đặc thù riêng cần xử lý riêng)
nhưng ko thường xuyên cập nhật
+ Resdis, DynamoDB, MemcacheDB, Riak DECISION TABLE
(xem thêm bảng trang cuối)
- Document: là các cơ sở dữ liệu hướng tài liệu, một thiết kế riêng biệt cho Ví dụ: Xây dựng bảng quyết định để quyết định gửi danh mục nào cho khách
việc lưu trữ tài liệu dạng văn kiện JSON, BSON hoặc XML. Vì là cấu trúc dữ hàng chỉ đặt hàng từ danh mục đã chọn
liệu không ràng buộc khác với SQL, các CSDL này không đòi hỏi người dùng
tự tạo bảng nhập liệu trước khi nhập dữ liệu vào. Các tài liệu có thể chứa
bất kì dữ liệu nào. CSDL dạng này có các cặp khoá – giá trị nhưng cũng có
đính kèm các trị số siêu dữ liệu (metadata) giúp việc truy vấn (query) dễ
dàng hơn.
+ Ưu: Xử lý DL bán/phi cấu trúc rất tốt, ngdùng ko cần quan tâm định dạng
DL; Tuỳ chỉnh CSDL downtime = 0 (high availability), thời gian ghi DL nhanh;
Mở rộng theo chiều ngang, dễ chia sẽ dữ liệu thao tác dễ dàng hơn
+ Nhược: Hy sinh các yếu tố ACID, bất đồng bộ
+ TH nên dùng: DL bán cấu trúc, phi cấu trúc, QL nội dung, Ptich DL chuyên
sâu, tạo mẫu nhanh
+ MongoDB, CouchDB, Amazon documentdb, CosmosDB

- Column:
Mô hình wide – column là một dạng CSDL phi quan hệ lưu trữ theo dạng cột.
Mô hình này có vài điểm tương đồng với mô hình key – value nhưng cũng
có vài tính chất của dạng CSDL quan hệ.
Mô hình wide – column dựa trên khái niệm “keyspace” thay vì “schema”.
Một keyspace bao gồm nhiều cụm column (cluster of columns/ column
Condition: là các điều kiện trong xử lý, VD: giá dưới $50, trả bằng tiền mặt,…
family, tương tự như table nhưng linh hoạt hơn về cấu trúc), mỗi cụm bao
Alternative condition: should be Yes No
gồm nhiều hàng và nhiều cột riêng biệt. Mỗi hàng không cần phải có cùng
Rule: là lệnh if (condition AND/OR condition) THEN DO action
số lượng hoặc loại cột. Một timestamp quyết định phiên bản gần nhất của
data.
+ Ưu: có cả lợi ích của CSDL quan hệ và phi quan hệ, có thể xử lí dữ liệu cấu DECISION TREE
trúc và phi cấu trúc, đồng thời cũng dễ dàng nâng cấp. CSDL dạng cột có khả Node (tròn): decision point
năng nén tốt hơn CSDL dạng hàng. Đồng thời, dataset lớn có thể dễ dàng Branch (đường nối): possible outcome
duyệt hơn. Mô hình wide – column có khả năng xử lí tốt các yêu cầu truy Action
xuất tập trung (aggregation)
+ Nhược: upload và update số liệu cá nhân rất khó, mô hình wide – column
chậm hơn so với CSDL quan hệ khi xử lí các giao dịch.
+ TH dùng: Xử lí DL lớn (big data), khi tốc độ là cần thiết; Lưu trữ dữ liệu big
data; Project có quy mô lớn
+ Cassandra, HBase, ScyllaDB, Amazon Keyspace

- Graph: NoSQL DB sử dụng cấu trúc đồ thị để lưu trữ, quản lý dữ liệu. Trong
đó có 3 khái niệm chính là nốt (node), cạnh (edge), thuộc tính (property) để
biểu diễn và lưu trữ dữ liệu. Các cạnh thể hiện mối quan hệ giữa các nốt.
Mô hình và cách thức biểu diễn này giúp cho việc truy vấn dữ liệu nhanh
chóng và dễ dàng hơn đối với những mô hình dữ liệu mà ở đó trọng tâm là Ưu điểm của Decision Tree
các mối quan hệ, liên kết giữa các đối tượng dữ liệu. - Thứ tự kiểm tra các điều kiện và thực hiện các hành động ngay lập tức đáng
+ Ưu: cấu trúc DL linh hoạt; biểu diễn, quản lý các MQH giữa các thực thể, chú ý
đối tượng rõ ràng; tốc độ truy vấn phụ thuộc vào số lượgn MQH CSDL chứ - Điều kiện và hành động của cây quyết định được tìm thấy trên một số nhánh
ko phụ thuộc vào lượng dữ liệu; hỗ trợ truy vấn và xuát kết quả theo thời nhưng không tìm thấy trên các nhánh khác
gian thực - So với bảng quyết định, cây quyết định dễ hiểu hơn đối với những người khác
+ Nhược: Khó để mở rộng vì HT thiết kế trên kiến trúc 1 tầng; chưa có ngôn trong tổ chức
ngữ truy vấn chuẩn, phụ thuộ cvaof nền ntanrg mà mình SD; đa số graph
DBMS ko hỗ trợ xử lý, tính toán song song, đồng thời; cộng đồng SD ít -> khó
tham khảo
+ Neo4j, JanúGraph, DGraph
NHẬP MÃ Mnemonic codes: human memory aid: giúp người nhập liệu nhwos cách nhập
Mã hóa: đưa dữ liệu mơ hồ hoặc rườm rà vào các chữ số hoặc chữ cái ngắn, và người dùng nhớ cách sử dụng.
dễ nhập => Mã (code) hỗ trợ phân tích hệ thống hiệu quả, giảm bớt thời
gian nhập liệu, giúp sort và giảm lưu trữ mem+storage. => Chính xác + hiệu
quả + (should have) mục đích hỗ trợ người dùng.
5 cách hỗ trợ:
#track something: kiểm tra trạng thái, truy mã đơn hàng
SIMPLE SEQUENCE CODE: Trong SSC, mã ID được mã hóa theo một chuỗi
đơn giản, thường là một dãy số tăng dần hoặc một chuỗi ký tự duy nhất. Ví
dụ, mã ID 1 có thể được mã hóa thành "A", mã ID 2 thành "B", và tiếp tục
như vậy.
- Ưu: ko bị trùng, đơn giản, dễ hiểu (dùng cho các HT cần tuần tự); ko yêu Dùng cả letter và symbol
cầu lưu trữ bổ sung hoặc tính toán phức tạp #yêu cầu tác vụ phù hợp
- Nhược: Dễ dự đoán và xâm nhập dữ liệu; Không an toàn, dễ bị dò tìm và Function Code
giả mạo
- Ví dụ: Khi một người dùng mới đăng ký, hệ thống sẽ gán một mã ID tăng
dần cho người dùng. Ví dụ, người dùng đầu tiên có mã ID là 1, người dùng
tiếp theo có mã ID là 2, và tiếp tục như vậy

ALPHABETIC DERIVATION CODES (ưu điểm hơn SEQUENCE)


- Ưu: phân vùng (thuận tiện giao hàng), ổn định (do thông tin ít thay đổi ví
dụ như zipcode, ngày sinh, địa chỉ, tên) - lưu khí ko nên bỏ vô ngày-hết-hạn;
phương pháp chính là dùng để xác định số tài khoản.
- Nhược: Phân tích: nêu ra từng phần, tên trước mã đường (ko tốt cho việc
giao hàng); Một số dữ liệu có thể thay đổi - Tên hoặc địa chỉ thay đổi dẫn
đến trường khóa bị thay đổi. Rule: ngắn gọn, súc tích, cô đọng, đầy đủ thông tin (giảm lỗi nhập liệu do dài)
ổn định: không thay đổi các tên viết tắt, không thay đổi code khi chỉ thay đổi
thông tin phụ (reactivate giữ nguyên code)
BLOCK SEQUENCE CODE: Trong BSC, mã ID được chia thành các khối (block)
unique: không trùng lặp
có kích thước cố định và mỗi khối được mã hóa thành một chuỗi mã duy
sortable: để tận dụng dữ liệu tử code, highly recommend sort bằng numeric
nhất. Ví dụ, mã ID 123456 có thể được chia thành các khối 12, 34 và 56, và
tránh nhầm lẫn: tránh (O, 0, o), (I,1,l)
mỗi khối được mã hóa thành chuỗi mã riêng biệt
uniform: đồng bộ format
- Ưu: Ko dễ đoán được chuỗi -> tăng tính bảo mật;
- Nhược: Phức tạp hơn và yêu cầu tính toán để tách và mã hóa các khối; Yêu modification: cho phép update
cầu lưu trữ bổ sung để theo dõi các khối và mã đã được sử dụng meaningful: trừ trường hợp che giấu thông tin, nên đưa ra code có ý nghĩa, dễ
- Ví dụ: Mỗi đơn hàng có một mã ID duy nhất, chẳng hạn như 123456. Hệ làm việc, dễ nhớ. giúp dễ nhập liệu
thống sẽ chia mã ID thành các khối 12, 34 và 56, sau đó mã hóa từng khối sử dụng code: validate, mapping ẩn trong hệ thống
thành các chuỗi mã duy nhất, chẳng hạn như "X1Y2", "Z3W4" và "P5Q6"

Cipher code
#che giấu

#tiết lộ:
usecase: mã err, thông tin phòng ban, sản phẩm, màu sắc
pro: người bán locate nhanh hơn, input có ý nghĩa với người dùng hơn

Significant-digit subset code: mỗi bit đều có ý nghĩa


DATA FLOW DIAGRAM
External Entities (thực thể)
- Ô vuông + tên
- Đại diện cho một bộ phận khác, một doanh nghiệp, một người hoặc một
cỗ máy
- Nguồn hoặc đích của dữ liệu, bên ngoài ranh giới của hệ thống
- Nên được đặt tên với một danh từ
Data Flow
- Mũi tên + tên ở trên
- Hiển thị chuyển động của dữ liệu từ điểm này sang điểm khác
- Được miêu tả bằng danh từ
- Đầu mũi tên chỉ hướng dòng chảy
- Đại diện cho dữ liệu về một người, địa điểm hoặc sự vật
Process:
KIẾN TRÚC HỆ THỐNG
- Ô vuông bo góc, có số + tên
- Biểu thị sự thay đổi hoặc chuyển đổi dữ liệu
- Thể hiện công việc đang được thực hiện trong hệ thống
- Đặt tên:
+ Gán tên toàn hệ thống khi đặt cho high-level process
+ Tên hệ thống con chính: Subsystem+Tên
+ Quy trình chi tiết: Động từ - tính từ - danh từ
Data store:
- Kho lưu trữ dữ liệu cho phép kiểm tra, bổ sung và truy xuất dữ liệu
- Được đặt tên với một danh từ, mô tả dữ liệu
- Các kho lưu trữ dữ liệu thường được cấp một số tham chiếu duy nhất,
chẳng hạn như D1, D2, D3
- Đại diện cho một: tủ hồ sơ, CSDL, tập tin máy tính

DIAGRAM 0

Thần tri thức độ bạn qua môn

You might also like