Báo cáo thiết kế và phát triển phần mềm - Nhập môn Công nghệ phần mềm | Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Thành phố Hồ Chí Minh

Trong nghiên cứu và dự án này, nhóm đã tìm hiểu phân tích các lý thuyết liên quan đến lập trình ứng dụng, công nghệ phần mềm lý thuyết về toán toán ưu hoá và quy hoạch tuyến tính,… để hình thành nên cơ sở lý luận thực hiện một đề tài về phát triển phần mềm giải quyết bài toán quy hoạch tuyến tính đơn mục tiêu. Tài liệu được sưu tầm giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kì thi sắp tới. Mời bạn đọc đón xem !

lOMoARcPSD|46958826
lOMoARcPSD|46958826
TRƯỜNG ĐẠI HC KHOA HC T NHIÊN
KHOA TOÁN-TIN HC
BÁO CÁO THIT K VÀ PHÁT TRIN PHN MM:
LINEAR PROGRAMMING PYAPP
NHÓM CALL AMBULANCE
STT TÊN MSSV
1 LÊ CHƠN MINH ĐẠT 21280064
2 NGUYN TH BÍCH NGC 21280100
3 NGUYN PHÚC LOAN 21280xxx
Tp. H Chí Minh, Ngày 21 Tháng 5 Năm 2022
lOMoARcPSD|46958826
TRƯỜNG ĐẠI HC KHOA HC T NHIÊN
KHOA TOÁN-TIN HC
BÁO CÁO THIT K VÀ PHÁT TRIN PHN MM:
LINEAR PROGRAMMING PYAPP
NHÓM CALL AMBULANCE
STT TÊN MSSV
1 LÊ CHƠN MINH ĐẠT 21280064
2 NGUYN TH BÍCH NGC 21280100
3 NGUYN PHÚC LOAN 21280XXX
Tp. H Chí Minh, Ngày 21 Tháng 5 Năm 2022

lOMoARcPSD|46958826
PHÂN CÔNG
STT TÊN MSSV Vai trò
Công vic % Đóng
% Hoàn
Góp thành
1 21280064 Main Dev,
UI dev, 33% 100%
CHƠN Analyst
Logical Dev (Backend
MINH External Function, Model Scipy, …),
ĐẠT
Code Review,
Architecture analyst
2 NGUYN 21280100 Dev,
Format, Comment Code 33% 100%
TH Tester,
Functional Test,
BÍCH Debugger
Unit Test,
NGC
Debugger
3 NGUYN 21280XXX Dev,
UI design, 33% 100%
PHÚC Analyst,
Prototype design
LOAN Designer,
Tech stack Analyst,
Viết báo cáo
Xác
nhn:
Tên
Ch
Lê Chơn Minh Đạt
Nguyn Th Bích Ngc
Nguyn Phúc Loan

lOMoARcPSD|46958826
LI CẢM ƠN
Xin chân thành cảm ơn khoa Toán Tin học và Khoa Công nghệ thông tin Trường
ĐHKHTN đã hỗ tr ging dy chuyên môn cho chúng em, đồng thi cung cấp cơ sở
vt cht cho chúng em trong quá trình hc tp. Xin cảm ơn thầy b môn đặc bit
là thy QHTT đã hỗ tr nhóm trong quá trình hc tập cũng như làm bài tập nhóm.

lOMoARcPSD|46958826
TÓM TT
Trong nghiên cu d án này, nhóm đã tìm hiểu phân tích các thuyết liên
quan đến lp trình ng dng, công ngh phn mm thuyết v toán toán ưu hoá
quy hoạch tuyến tính,… để hình thành nên sở lun thc hin một đề tài v phát
trin phn mm gii quyết bài toán quy hoch tuyến tính đơn mục tiêu. Xin chân thành
cảm ơn khoa Toán Tin hc và Khoa Công nghệ thông tin Trường ĐHKHTN đã hỗ tr
ging dy chuyên môn cho chúng em, đồng thi cung cấp sở vt cht cho chúng em
trong quá trình hc tp. Xin cảm ơn thầy b môn đặc bit thầy QHTT đã hỗ
tr nhóm trong quá trình hc tập cũng như làm bài tập nhóm.
Nghiên cứu còn khai, khó tránh khỏi suất li phát sinh trong quá trình
s dng, do hn chế v các yếu t ngun lực cũng như thi gian thc hiện. Tuy nhiên
đó được lưu trữ công khai mã ngun mở trên đường link:
https://github.com/DatMinhLeChon/LNP.pyapp , để các bn, thầy liệu
tham khảo cũng như s dụng như một ngun m rộng để phát trin các d án tốt
hơn trong tương lai.
lOMoARcPSD|46958826

L I C ẢM ƠN .....................................................................................................................iv
TÓM T T ............................................................................................................................v
N I DUNG .......................................................................................................................... 1
   ỆU ĐỀ  
   
  
 CƠ SỞ  ẾT VÀ PHƯƠNG PHÁP LUẬ ......................................................3
 ối ưu hoá 
   ế 
  !! " # # $
$ %&"'%  ' !! " # # (
) *   !+,!-. /
 0123 4 
 %&   ' 
 Sơ đồ !56 ..............................................................................................11
$  *   
$ 7.8,""-59
$ ,:0;
$ 3<5!=0>
$ 7?,""-59
$ @.%=0>
$ 7A%#B70C=;>
$ 0D%5.E

lOMoARcPSD|46958826
)  * Ế SƠ KHỞ  $
)
0D+ ế@ ế ức năng 
$
)
Sơ đồ F5   + ức năng 
$
(  *   (
(
'+"  5" # #
(
(
G-H
(
(
0%".I
J
(
C95-85K.-.
J
J 04L  J
/ *   
M  ẬN XÉT VÀ HƯỚ 04L  
TÀI LI U THAM KH O........................................................................................................
23

lOMoARcPSD|46958826
NI DUNG
1. GII THIỆU ĐỀ TÀI
1.1. Lý do thc hin
Vi s phát triển như bão của các nn tng công ngh thông tin, các gii
pháp công ngh nói chung hin nay. Vic ng dng nó vào thiết kế gii pháp, và công c
để h tr công vic của các chuyên ngành, các lĩnh vực khác hay thm chí các hoạt
động sinh hot hng ngày trong cuc sng ca con người là vô cùng cn thiết.
Lp trình ng dng một lĩnh vực phát trin song song vi s phát trin ca
khoa hc k thut máy tính nói riêng, khoa hc nói chung xu thế tt yếu, lp
trình ng dng nâng cao hiu qu công việc, giúp con người hoàn thành nó vi thi gian
nhanh chóng, thm chí th thay thế con người t động lp lịch để thc thi nhng
tác v vô cùng phc tp với độ chính xác gần như là tuyệt đối.
Quy hoch tuyến tính tối ưu hoá phần quan trng không th yếu, gc r
ca toán tối ưu, đóng vai trò quan trọng trong các hoạt động phân tích, tính toán và ci
tiến nói riêng. Như trong vn tải hàng hoá, điều độ logistics, tối ưu hoá dây chuyền sn
xut, các bài toán lp kế hoạch, …
Do đó trong yêu cu bài tp code ca môn hc Quy hoch tuyến tính, nhóm
đã thc hin phát trin mt phn mm tính toán bài toán Quy hoch tuyến tính vi các
thao tác đơn giản, d s dụng và cài đặt.
1.2. B cc
B cc ni dung bài báo cáo gm 8 phn :
Gii thiu
Cơ sở lý thuyết và Phương pháp luận
Phân tích d án
Thiết kế sơ khởi
Thiết kế chi tiết
Kim th
Đóng gói và sử dng
lOMoARcPSD|46958826
Nhận xét và hướng phát trin
lOMoARcPSD|46958826
2. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP LUẬN
2.1.Tối ưu hoá
Trong toán học, thuật ngữ tối ưu hóa chỉ tới việc nghiên cứu các bài toán có dạng
Cho trước: mt hàm f: A R từ tập hợp A tới tập số thực
Tìm: mt phn t x0 thuc A sao cho f(x0) f(x) vi mi x thuc A ("cc tiu
hóa") hoc sao cho f(x0) ≥ f(x) vi mi x thuc A ("cực đại hóa").
Một phát biểu bài toán như vậy đôi khi được gọi là một quy hoạch toán học
(mathematical program). Nhiều bài toán thực tế thuyết thể được hình
theo cách tổng quát trên.
Miền xác định A của hàm f được gọi không gian tìm kiếm. Thông thường, A
một tập co n của không gian Euclid Rn, thường được xác định bởi một tập các ràng buộc , các
đẳng thức hay bất đẳng thức các thành viên của A phải thỏa mãn. Các phần tử của A
được gọi là các lời giải khả thi. Hàm f được gọi là hàm mục tiêu, hoặc hàm chi phí.
Lời giải khả thi nào cực tiểu hóa (hoặc cực đại hóa, nếu đó mục đích) hàm mục
tiêu được gọi là lời giải tối ưu.
Thông thường, sẽ có một vài cực tiểu địa phương và cực đại địa phương, trong
đó một cực tiểu địa phương x* được định nghĩa là một điểm thỏa mãn điều kiện: Với giá trị δ > 0
nào đó và với mọi giá trị x sao cho || −|| ≤ ; Công thức sau luôn đúng: () ≤ ( )
Nghĩa là, tại vùng xung quanh x
*
, mi giá tr của hàm đều lớn hơn hoặc bng
giá tr tại điểm đó. Cực đại địa phương được định nghĩa tương tự. Thông thường,
vic tìm cc tiểu địa phương dễ dàng cn thêm các thông tin v bài toán (chng
hn, hàm mc tiêu là hàm l i ) để đảm bo rng li giải tìm được là cc tiu toàn cc.
1
2.2. Quy hoch tuyến tính
1 Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Tối_ưu_hóa_(toán_h%E1%BB%8Dc)
lOMoARcPSD|46958826
Trong toán học , quy hoạch tuyến tính (QHTT) (tiếng Anh : linear
programming - LP) là bài toán tối ưu hóa, trong đó hàm mục tiêu(objective
function) và các điều kiện ràng buộc đều là tuyến tính . 2
Trong bài toán này, cho một đa tạp (polytope) (chẳng hạn một đa giác hoặc
một đa diện), và một hàm ( tuyến,, tính,… (affine),= nhận+giá trị+thực⋯+ 123 )
1 2
xác định trên đa tạp đó, mục đích tìm một điểm trên đa tạp tại đó hàm
giá trị nhỏ nhất (hoặc lớn nhất). Các điểm như vậy thể không tồn tại, nhưng nếu
chúng tồn tại phải tìm được ít nhất một điểm.3
Phương pháp giải hệ phương trình truyến tính đã đã được tìm ra vào năm 1827
bởi Fourier. thế tên là phương pháp loại bỏ Fourier-Motzkin. Năm 1939, một
dạng bài toán quy hoạch tuyến nh tương đương với bài toán quy hoạch tuyến tính
tổng quát được đưa ra bởi nhà toán học kinh tế học Leonid Kantorovich, ông
cũng chính người đề xuất phương pháp giải nó. Trong Thế chiến thứ 2, ông được
giao cho nhiệm vụ lập bảng kế hoạch chi tiêu thu hồi nhằm giảm chi phí cho quân
đội và tăng tổn thất cho kẻ thù. Công việc mà Kantorovich làm ban đầu bị lãng quên. 4
Cùng thời với Kantorovich, nhà kinh tế học người Mỹ gốc Lan
T.C.Koopmans đã đưa ra các bài toán kinh tế cổ điển dưới dạng bài toán tuyến tính.
Kantorovich and Kôpmans sau đó cùng nhận giải Nobel kinh tế năm 1975. Năm
1941, Frank Lauren Hitchcook cũng đưa các bài toán vận tải dưới dạng phương
trinh tuyến tính đưa ra một đáp án rất giống với phương pháp simplex sau này.
Hitchcook qua đời năm 1957, và giải Nobel đã không được truy tặng.5
2.3. Công ngh phn mm
2
Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh
3
Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh
4 Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh
5 Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh
$
lOMoARcPSD|46958826
Công ngh phn mm s áp dng mt cách tiếp cn h thng, k lut,
định lượng được cho vic phát trin, s dng và bo trì phn mm.
6
Ngành hc kỹ sư phần
mm bao trùm kiến thc, các công cụ, các phương pháp cho việc định nghĩa yêu cầu
phn mm, và thc hin các tác v thiết kế, xây dng, kim th (software testing), và bo trì
phn mm.
7
K sư phần mm còn s dng kiến thc của các lĩnh vực như k thut máy
tính, khoa hc máy tính, qun lý, toán hc, qun lý d án, qun lý chất lượng, công thái hc
phn mm (software ergonomics), và kỹ sư hệ thng (systems engineering).
8
Trích dn mt câu nói ca Edsger Dijkstra v công ngh phn mm: Khi máy tính chưa
xuất hin, thì vic lập trình chưa có khó khăncả. Khi mi xut hin mt vài chiếc máy tính
chức năng kém thì việc lp trình bắt đầu gp một vài khó khăn nho nhỏ. Gi đây khi chúng
ta nhng chiếc máy tính khng l thì những khó khăn y tr nên cùng ln. Như vậy
ngành công nghiệp điện t không gii quyết khó khăn nào cả mà h ch to thêm ra những khó
khăn mới. Khó khăn mà họ to nên chính là vic s dng sn phm ca h.
Lch s:
Thập niên 1940: Các chương trình cho máy tính được viết bng tay.
Thp niên 1950: Các công c đầu tiên xut hiện như phần mm biên dch
Macro Assembler và phn mm thông dịch đã được to ra và s dng rng rãi
để nâng cao năng suất và chất lượng. Các trình dịch được tối ưu hoá lần
đầu tiên ra đời.
Thp niên 1960: Các công c ca thế h th hai như các trình dịch tối ưu
hoá công vic kim tra mẫu đã được dùng để nâng cao sn phm
chất lượng. Khái nim công ngh phn mềm đã được bàn tho rng rãi.
Thp niên 1970: Các công c phn mm, chng hn trong UNIX các vùng
cha mã, lệnh make, v.v. được kết hp vi nhau. S lượng doanh nghip
nh v phn mm và số lượng máy tính c nhỏ tăng nhanh.
6 IEEE Standard Glossary of Software Engineering Terminology," IEEE std 610.12-1990, 1990.
J Guide to the Software Engineering Body of Knowledge” . 6-2-2004.
/
Guide to the Software Engineering Body of Knowledge” . 6-2-2004.
)
lOMoARcPSD|46958826
Thp niên 1980: các PC và máy trạm ra đời. Cùng lúc có s xut hin ca
mô hình d toán khả năng. Lượng phn mm tiêu thụ tăng mnh.
Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời. Các quá trình
nhanh như lập trình cc hạn được chp nhn rng rãi. Trong thp niên này,
WWW các thiết b máy tính cm tay ph biến rng rãi. Hin nay: Các phn
mm biên dch và qun lý như là .NET, PHP, Java làm cho việc thiết kế, viết
phn mm ng dng tr nên dễ dàng hơn nhiều. Hi ngh quc tế v Công
ngh phn mm lần đầu tiên dược t chc ti M.
2.4. Quy trình phát trin d án công ngh phn mm
Theo quy tắc chung, quy trình SDLC sẽ bao gồm 6 bước:
Bước 1: Analysis (Lp kế hoch và phân tích yêu cu)
Trước khi bắt đầu xây dựng phần mềm, chúng ta cần thu thập xác
định các yêu cầu của người dùng các bên liên quan đối với sản phẩm phần
mềm sắp xây dựng. Chúng ta cần nghiên cứu thị trường để xác định các chức
năng phần mềm nên cung cấp cho người dùng để họ cảm thấy đây phần
mềm hữu ích cho họ. Việc nghiên cứu này cũng giúp ta xác định được khả năng
tồn tại của phần mềm trên thị trường như thế nào?
Sau đó, các thành viên trong nhóm phát triển phần mềm sẽ làm việc cùng
với khách hàng để đưa ra các thông số kỹ thuật yêu cầu chi tiết về sản phẩm
phần mềm dự định làm ra. Tất cả thông tin này sẽ được tổng hợp thành một tài
liệu được gọi tài liệu đặc tả yêu cầu phần mềm (Software Requirement
Specification). Tài liệu sẽ bao gồm các yêu cầu về chức năng, giao diện, hiệu suất,
Ngoài ra, còn cả bản phác thảo về thành phần, nhiệm vụ của từng
developer và các thông số thử nghiệm để tạo nên một sản phẩm chất lượng.
giai đoạn này, người quản các nhà phát triển phần mềm sẽ thống
nhất việc lựa chọn kiểu hình phát triển phần mềm nào (Các kiểu hình
phát triển phần mềm sẽ được cụ thể trong phần tiếp theo)
Bước 2: Design (Thiết kế phn mm)
(
lOMoARcPSD|46958826
Từ các yêu cầu thông số kỹ thuật được đưa ra trong bước 1, các nhà
phát triển phần mềm sẽ vạch ra kiến trúc tổng thể cần thiết để tạo ra phần mềm.
Ngoài ra, các yếu tố như: ngân sách, thời gian, công nghệ áp dụng, mức độ rủi
ro,… cũng được xác định rõ ràng.
Kết quả cuối cùng của giai đoạn này là các đặc điểm kỹ thuật thiết kế. Nó
bao gồm các chỉ định về thiết kế kiến trúc, yêu cầu hệ thống cũng như đại diện
Back-end, Front-end,… cho phép cả nhóm phát triển theo dõi toàn bộ quá trình
phát triển nên phần mềm.
Bước 3: Development (Thc hin)
bước này, các nhà phát triển phần mềm sẽ bắt đầu viết code triển
khai các thông số thiết kế đã đưa ra ở bước 2. Cụ thể, các Front-end developer sẽ
xây dựng phần giao diện của phần mềm. Các Back-end developer sẽ sử dụng các
loại ngôn ngữ lập trình , framework để lập trình trên máy chủ cùng với các
quản trị viên cơ sở dữ liệu xử lý dữ liệu.
Sau khi hoàn tất việc coding, developers sẽ deploy (triển khai) sản phẩm
trong môi trường phát triển. Lập trình viên sẽ tiến hành thử nghiệm sản phẩm
và có sự điều chỉnh cho phù hợp với yêu cầu đã đưa ra.
Giai đoạn này thường chiếm khá nhiều thời gian nhân lực trong toàn
bộ quy trình phát triển phần mềm.
Bước 4: Testing (Kim th phn mm)
Sau khi hoàn tất phần lập trình phần mềm, sản phẩm sẽ tiếp tục chuyển cho
các tester (người kiểm thử phần mềm). Các tester sẽ tạo ra các tình huống kiểm thử
(test case) và tiến hành kiểm thử phần mềm. Mục đích của việc kiểm thử phần mềm
là xác minh và đảm bảo chất lượng của sản phẩm đúng như yêu cầu để ra.
Sau khi kiểm thử, tester sẽ cập nhật các lỗi vào công cụ quản thông báo
các bug (lỗi) cho developers. Bước này, tester sẽ ngồi cùng với developers để xử lý các
J
lOMoARcPSD|46958826
bug hiện cập nhật vào hệ thống quản lỗi. Tùy vào hình phát triển
phần mềm được lựa chọn bước 1 hoạt động của developer tester có thể
tiến hành lần lượt hoặc diễn ra song song.
Bước 5: Deployment stage (Giai đoạn trin khai)
Sau khi hoàn tất kiểm thử, phần mềm không còn lỗi, các nhà phát triển sẽ triển
khai sản phẩm trên Production environment (môi trường chứa ứng dụng thật, chạy với
người dùng thật, dữ liệu thật) và cung cấp sản phẩm hoàn thiện cho khách hàng.
Sau khi đăng ký, thử nghiệm Beta sẽ được tiến hành đ thu thập các phản
hồi của người dùng thực tế để hoàn thiện chất lượng phần mềm khi triển khai ở quy
mô lớn.bước này, developer cũng cần phải lên kế hoạch chuẩn bị cho mọi trường
hợp bất trắc có thể xảy ra để chủ động hơn trong việc giải quyết các sự cố bất ngờ.
Bước 6: Maintenance (Duy trì)
Sau khi phần mềm được đưa vào vận hành chính thức, khách hàng đã bắt
đầu sử dụng phần mềm mức chất lượng cao nhất, bước tiếp theo chúng ta cần
phải bảo trì sản phẩm. Công ty sẽ thành lập một nhóm chuyên về bảo trì và quản
các vấn để người dùng gặp phải trong quá trình sử dụng sản phẩm. Họ sẽ quản
và giải quyết tất cả các vấn để của người dùng gặp phải. Đồng thời, phần mềm cũng
được cập nhật sau khi triển khai để loại bỏ các lỗi và cải thiện hiệu suất.
2.5. K thut h thng và Agile
Từ quan điểm tng th, k thut h thng tp trung vào việc phân tích và khơi gợi
nhu cu của khách hàng cũng như chức năng cần thiết ngay từ đầu trong chu k phát
trin, ghi li các yêu cầu và sau đó tiến hành tng hp thiết kế. và xác thc h thng trong
khi xem xét toàn b vấn đề và vòng đời ca h thống. Điều này bao gm vic hiểu đầy đủ
tt c các bên liên quan (Oliver và cng s) tuyên b rng quy trình k thut h thng có
thể được phân tách thành: Quy trình K thut H thng và Quy trình K thut Qun lý.
k thut h thng.
/
lOMoARcPSD|46958826
Trong mô hình ca Oliver, các mc tiêu ca Quy trình Truy cp Mở là các bước
thiết kế k thut cn thiết trong vòng đời h thng, trong khi Quy trình K thut bao
gm mt số bước để phát trin và xây dng h thng:
Đánh giá thông tin có sẵn,
Xác định các bin pháp hiu
qu, Vi mục đích:
Tạo mô hình hành vi,
Tạo mô hình cu trúc, thc hiện phân tích đánh đổi,
Xây dựng tun t và lp kế hoch th nghim.
Mil STD – 499B định nghĩa kỹ thut h thống như sau: kỹ thut h thng là mt
cách tiếp cận đa ngành được s dụng để phát trin, th nghim mt b tối ưu và tích hợp
các thiết kế sn phẩm và quy trình để tha mãn. nhu cu của người s dng và cung cp
thông tin cho người ra quyết định. Mc dù có nhiều định nghĩa khác về k thut h thng,
nhưng chúng ta vẫn có th nói k thut h thng có những đặc điểm sau:
K thut h thng không tn ti trong s cô lập. Đó là một quá trình đa ngành,
làm vic cùng nhau và tích hp các ngành khác nhau.
K thut h thng chuyển đổi nhu cu của người dùng thành đặc t cu hình
h thng có thể đáp ứng nhu cầu đó.
K thut h thng gn lin vi quá trình phát trin sn phẩm và được áp dng
ở giai đoạn đầu.
Tùy thuc vào ng dng ca chúng, mc dù có mt số mô hình được s dng
trong ngành, nhưng tất cả chúng đều nhm mục đích xác định mi quan h gia các
giai đoạn khác nhau được đề cp trên và kết hp phn hi. Cách tiếp cn k thut
h thng để xây dng mt h thng hoàn chnh bao gồm năm bước sau kết hp vi
bảy bước ca quy trình thiết kế h thng phn mm sẽ được áp dng trong sut d án:
M
lOMoARcPSD|46958826
Bước 1: Xác dnh phm vi d án
Bước 2: Xác định và tính toán nhu cu chức năng
Bước 3: Tính toán ngun lc có sn
Bước 4: Xác định nn tảng và môi trường hot dng ca h thng
Bước 5: Xác định năng lực ca h thng
Bước 6: Thiết kế và xây dng các chức năng con cùng hệ
thng ph trợ, ước tính chi phí.
Bước 7: Xây dng và phát trin mt h thng chi tiết.
Bước 2: Xác định và tính toán nhu cu chức năng
Phân tích nhu cu
Thiết kế ý nim
Thiết kế sơ khởi
Thiết kế chi tiết
Cài đặt và vn hành
N
lOMoARcPSD|46958826
3. PHÂN TÍCH D ÁN
3.1. Quy trình thc hin d án
Bqua quy trình phân tích xác định nhu cu (vi nhu cu phát triển được xác
định sn): D án code nhp các input hàm mc tiêu, hàm ràng buc cho ra kết qu
là tr tối ưu và giá trị các biến trong hàm mc tiêu và ràng buc.
Nhu cầu được xác định:
Chương trình code nhập vào d liu hàm mc tiêu, ràng buc ca bài toán quy
hoch tuyến tính. Xut ra kết qu là giá tr tối ưu Z,
Quy trình tp trung vào phân tích la chn gii pháp công ngh, phân
tích thiết kế da trên gii pháp công nghệ đó.
3.2. Sơ đồ gantt
Sơ đồ Gantt quy trình và thi gian thc hin d án:

lOMoARcPSD|46958826
4. THIT K Ý NIM
Đây là bước phân tích và la chn stech stack cho d án. Mt s công ngh thông
dng có th s dng:
4.1. Web Application
4.1.1. ASP .NET
công ngh lp trình web, da trên nn tn ngôn ng lp trình C# đồng phát
trin bi Microsoft. ASP .NET ni lên mt trong nhng công ngh Backend ni bt
vi các cu trúc cc mnh trong xử lí logic ( điển hình là ASP.NET MVC)
4.1.2. Django (Python)
Là công ngh lp trình web, da trên nn tn ngôn ng lp trình Python vi
cng đồng phát trin open source lớn, tương thích vi nhiu API.
4.2. Window Application
4.2.1. Tkinter (Python)
Là công ngh lp trình giao din app chy trên máy tính, h trợ đa hệ điều hnh
vi mã ngun python.
4.2.2. Winform/WPF (.NET)
Lp trình window app với.NET Framework. Winform đã từ lâu tr thành công
ngh phát trin app nhúng, các phn mm dung trong công nghip, tự động hoá hay
qun lý công sở…
4.3. Phân tích trade off
So sánh các công ngh:
Tiêu chí ASP .NET Django Tkinter Winform
Mã nguồn đa dạng
8 6 8 9
D phát trin
4 4 9 9
D s dng
9 9 8 6
G li
6 7 8 8
Khả năng nâng cấp
8 8 8 5
Tng
35 34 41 37
S dng Tkinter, Python là
tech ca d án.

lOMoARcPSD|46958826

| 1/30

Preview text:

lOMoARcPSD|46958826 lOMoARcPSD|46958826
TRƯỜNG ĐẠI HC KHOA HC T NHIÊN KHOA TOÁN-TIN HC
BÁO CÁO THIT K VÀ PHÁT TRIN PHN MM:
LINEAR PROGRAMMING PYAPP
NHÓM CALL AMBULANCE STT TÊN MSSV 1 LÊ CHƠN MINH ĐẠT 21280064 2
NGUYN TH BÍCH NGC 21280100 3 NGUYN PHÚC LOAN 21280xxx
Tp. H Chí Minh, Ngày 21 Tháng 5 Năm 2022 i lOMoARcPSD|46958826
TRƯỜNG ĐẠI HC KHOA HC T NHIÊN KHOA TOÁN-TIN HC
BÁO CÁO THIT K VÀ PHÁT TRIN PHN MM:
LINEAR PROGRAMMING PYAPP
NHÓM CALL AMBULANCE STT TÊN MSSV 1 LÊ CHƠN MINH ĐẠT 21280064 2
NGUYN TH BÍCH NGC 21280100 3 NGUYN PHÚC LOAN 21280XXX
Tp. H Chí Minh, Ngày 21 Tháng 5 Năm 2022 ii lOMoARcPSD|46958826 PHÂN CÔNG STT TÊN MSSV Vai trò Công việc % Đóng % Hoàn Góp thành 1 LÊ 21280064 Main Dev, UI dev, 33% 100% CHƠN Analyst
Logical Dev (Backend MINH
External Function, Model Scipy, …), ĐẠT Code Review,
Architecture analyst 2 NGUYN 21280100 Dev,
Format, Comment Code 33% 100% TH Tester, Functional Test, BÍCH Debugger Unit Test, NGC Debugger 3 NGUYN 21280XXX Dev, UI design, 33% 100% PHÚC Analyst, Prototype design LOAN Designer, Tech stack Analyst,
Viết báo cáo Xác nhn: Tên Chữ Ký Lê Chơn Minh Đạt
Nguyn Th Bích Ngc Nguyn Phúc Loan iii lOMoARcPSD|46958826 LI CẢM ƠN
Xin chân thành cảm ơn khoa Toán Tin học và Khoa Công nghệ thông tin Trường
ĐHKHTN đã hỗ tr ging dy chuyên môn cho chúng em, đồng thi cung cấp cơ sở
vt cht cho chúng em trong quá trình hc tp. Xin cảm ơn thầy cô bộ môn và đặc bit
là thy QHTT đã hỗ tr nhóm trong quá trình hc tập cũng như làm bài tập nhóm. iv lOMoARcPSD|46958826 TÓM TT
Trong nghiên cu và dự án này, nhóm đã tìm hiểu phân tích các lý thuyết liên
quan đến lp trình ng dng, công ngh phn mm lý thuyết về toán toán ưu hoá và
quy hoạch tuyến tính,… để hình thành nên cơ sở lý lun thc hin một đề tài v phát
trin phn mm gii quyết bài toán quy hoch tuyến tính đơn mục tiêu. Xin chân thành
cảm ơn khoa Toán Tin hc và Khoa Công nghệ thông tin Trường ĐHKHTN đã hỗ tr
ging dy chuyên môn cho chúng em, đồng thi cung cấp cơ sở vt cht cho chúng em
trong quá trình hc tp. Xin cảm ơn thầy cô bộ môn và đặc bit là thầy QHTT đã hỗ
tr nhóm trong quá trình hc tập cũng như làm bài tập nhóm.
Nghiên cứu còn sơ khai, khó tránh khỏi sơ suất và li phát sinh trong quá trình
s dng, do hn chế v các yếu t ngun lực cũng như thi gian thc hiện. Tuy nhiên
đó được lưu trữ công khai mã ngun mở trên đường link: https
://github.com/DatMinhLeChon/LNP.pyapp , để các bn, thầy cô có tư liệu
tham khảo cũng như s dụng như một mã ngun m rộng để phát trin các d án tốt hơn trong tương lai. v lOMoARcPSD|46958826 MC LC L
I C
M ƠN .....................................................................................................................iv T ÓM T
T ............................................................................................................................ v N
I DUNG .......................................................................................................................... 1 1. GI
I THI U ĐỀ TÀI ...................................................................................................1 1.1. L ý do th c hi n
................................................................................................1 1.2. B c
c ..............................................................................................................1 2. C
Ơ SỞ LÝ THUY Ế T VÀ PHƯƠNG PHÁP LUẬ N
......................................................3 2.1. T ối
ưu hoá .......................................................................................................3 2.2. Q uy ho ch tuy ế n
tính ......................................................................................3 2.3. C ông ngh ph n m m
......................................................................................4 2.4. Q
uy trình phát tri n d án công ngh ph n m m
...........................................6 2.5. K thu t h th n
g và Agile ...............................................................................8 3. P HÂN TÍCH D
ÁN ................................................................................................11 3.1. Q uy trình th c hi n d
án .............................................................................11 3.2.
S ơ đồ gantt .............................................................................................. 11 4.
T HI T K Ý NI M
....................................................................................................12 4.1.
Web Application................................................................................................12 4.1.1.
ASP .NET.........................................................................................................12 4.1.2.
Django (Python).............................................................................................12 4.2.
Window Application..........................................................................................12 4.2.1.
Tkinter (Python).............................................................................................12 4.2.2.
Winform/WPF (.NET).....................................................................................12 4.3.
Phân tích trade off.........................................................................................12 vi lOMoARcPSD|46958826
5. T HI T K SƠ KHỞ I .................................................................................................. 14 5.1. P hân tích và thi ế t k ế ch
c năng ..................................................................... 14 5.2.
S ơ đồ quan h th c th và ch
c năng ........................................................... 14
6. T HI T K CHI TI T ................................................................................................... 16 6.1. C ác thành ph n con c a ph n m m
............................................................... 16 6.1.1. V
t lí ................................................................................................................ 16
6.1.2. Prototype: ....................................................................................................... 17 6.2.
Functional baseline ........................................................................................ 17 7. P HÁT TRI N.
........................................................................................................... 17 8. K I M TH
. .............................................................................................................. 21 9. NH N XÉT VÀ HƯỚ NG PHÁT TRI N
...................................................................... 22 T ÀI LI U THAM KH O.
....................................................................................................... 23 vii lOMoARcPSD|46958826 NI DUNG
1. GIỚI THIỆU ĐỀ TÀI
1.1. Lý do thực hiện
Vi s phát triển như vũ bão của các nn tng công ngh thông tin, các gii
pháp công ngh nói chung hin nay. Vic ng dng nó vào thiết kế gii pháp, và công c
để h tr công vic của các chuyên ngành, các lĩnh vực khác hay thm chí là các hoạt
động sinh hot hng ngày trong cuc sng ca con người là vô cùng cn thiết.
Lp trình ng dng là một lĩnh vực phát trin song song vi s phát trin ca
khoa hc và k thut máy tính nói riêng, khoa hc nói chung và là xu thế tt yếu, lp
trình ng dng nâng cao hiu qu công việc, giúp con người hoàn thành nó vi thi gian
nhanh chóng, thm chí nó có th thay thế con người tự động lp lịch để thc thi nhng
tác v vô cùng phc tp với độ chính xác gần như là tuyệt đối.
Quy hoch tuyến tính và tối ưu hoá là phần quan trng không th yếu, là gc r
ca toán tối ưu, đóng vai trò quan trọng trong các hoạt động phân tích, tính toán và ci
tiến nói riêng. Như trong vn tải hàng hoá, điều độ logistics, tối ưu hoá dây chuyền sn
xut, các bài toán lp kế hoạch, …
Do đó trong yêu cầu bài tp code ca môn hc Quy hoạch tuyến tính, nhóm
đã thc hin phát trin mt phn mm tính toán bài toán Quy hoch tuyến tính vi các
thao tác đơn giản, d s dụng và cài đặt. 1.2. Bố cục
B cc ni dung bài báo cáo gm 8 phn :
Gii thiu
− Cơ sở lý thuyết và Phương pháp luận
Phân tích d án
Thiết kế sơ khởi
Thiết kế chi tiết
Kim th
− Đóng gói và sử dng 1 lOMoARcPSD|46958826
Nhận xét và hướng phát trin 2 lOMoARcPSD|46958826
2. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP LUẬN 2.1.Tối ưu hoá
Trong toán học, thuật ngữ tối ưu hóa chỉ tới việc nghiên cứu các bài toán có dạng
Cho trước: mt hà
m f: A →R từ tập hợp A tới tập số thực
Tìm: mt phn t x0 thuc A sao cho f(x0) f(x) vi mi x thuc A ("cc tiu
hóa") hoc sao cho f(x0) ≥ f(x) vi mi x thuc A ("cực đại hóa").
Một phát biểu bài toán như vậy đôi khi được gọi là một quy hoạch toán học
(mathematical program). Nhiều bài toán thực tế và lý thuyết có thể được mô hình
theo cách tổng quát trên. M
iền xác định A của hàm f được gọi là không gian tìm kiếm. Thông thường, Amột tập
co n của không gian Euclid Rn, thường được xác định bởi một tập các r àng buộc , các
đẳng thức hay bất đẳng thức mà các thành viên của A phải thỏa mãn. Các phần tử của A
được gọi là các lời giải khả thi. Hàm f được gọi là hàm mục tiêu, hoặc hàm chi phí.
Lời giải khả thi nào cực tiểu hóa (hoặc cực đại hóa, nếu đó là mục đích) hàm mục
tiêu được gọi là lời giải tối ưu.
Thông thường, sẽ có một vài cực tiểu địa phương và cực đại địa phương, trong
đó một cực tiểu địa phương x* được định nghĩa là một điểm thỏa mãn điều kiện: Với giá trị δ > 0
nào đó và với mọi giá trị x sao cho || − ∗|| ≤ ; Công thức sau luôn đúng: ( ∗) ≤ ( )
Nghĩa là, tại vùng xung quanh x*, mi giá tr của hàm đều lớn hơn hoặc bng
giá tr tại điểm đó. Cực đại địa phương được định nghĩa tương tự. Thông thường,
vic tìm cc tiểu địa phương là dễ dàng cn thêm các thông tin v bài toán (chng
hn, hàm mc tiêu là hà
m l i ) để đảm bo rng li giải tìm được là cc tiu toàn cc.1
2.2. Quy hoạch tuyến tính 1
Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Tối_ưu_hóa_(toán_h%E1%BB%8Dc) 3 lOMoARcPSD|46958826
Trong t oán học , quy hoạch tuyến tính (QHTT) (t iếng Anh : linear
programming - LP) là bài toán tối ưu hóa, trong đó hàm mục tiêu(objective
function) và các điều kiện ràng buộc đều là t uyến tính . 2
Trong bài toán này, cho một đ
a tạp (polytope) (chẳng hạn một đa giác hoặc
một đa diện), và một hàm ( tuyến,, tính,… (affine),= nhận+giá trị+thực⋯+ 123 ) 1 2
xác định trên đa tạp đó, mục đích là tìm một điểm trên đa tạp tại đó hàm có
giá trị nhỏ nhất (hoặc lớn nhất). Các điểm như vậy có thể không tồn tại, nhưng nếu
chúng tồn tại phải tìm được ít nhất một điểm.3
Phương pháp giải hệ phương trình truyến tính đã đã được tìm ra vào năm 1827
bởi Fourier. Vì thế nó có tên là phương pháp loại bỏ Fourier-Motzkin. Năm 1939, một
dạng bài toán quy hoạch tuyến tính tương đương với bài toán quy hoạch tuyến tính
tổng quát được đưa ra bởi nhà toán học và kinh tế học Leonid Kantorovich, và ông
cũng chính là người đề xuất phương pháp giải nó. Trong Thế chiến thứ 2, ông được
giao cho nhiệm vụ lập bảng kế hoạch chi tiêu và thu hồi nhằm giảm chi phí cho quân
đội và tăng tổn thất cho kẻ thù. Công việc mà Kantorovich làm ban đầu bị lãng quên. 4
Cùng thời với Kantorovich, nhà kinh tế học người Mỹ gốc Hà Lan
T.C.Koopmans đã đưa ra các bài toán kinh tế cổ điển dưới dạng bài toán tuyến tính.
Kantorovich and Kôpmans sau đó cùng nhận giải Nobel kinh tế năm 1975. Năm
1941, Frank Lauren Hitchcook cũng đưa các bài toán vận tải dưới dạng phương
trinh tuyến tính và đưa ra một đáp án rất giống với phương pháp simplex sau này.
Hitchcook qua đời năm 1957, và giải Nobel đã không được truy tặng.5
2.3. Công nghệ phần mềm
2Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh
3Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh 4
Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh 5
Wikipedia Tiếng Vit, URL: https://vi.wikipedia.org/wiki/Quy_hoch_tuyến_t%C3%ADnh 4 lOMoARcPSD|46958826
Công ngh phn mm là s áp dng mt cách tiếp cn có h thng, có k lut, và
định lượng được cho vic phát trin, s dng và bo trì phn mm.6 Ngành hc kỹ sư phần
mm bao trùm kiến thc, các công cụ, và các phương pháp cho việc định nghĩa yêu cầu
phn mm, và thc hin các tác v thiết kế, xây dng, kim th (software testing), và bo trì
phn mm.7 Kỹ sư phần mm còn s dng kiến thc của các lĩnh vực như kỹ thut máy
tính, khoa hc máy tính, qun lý, toán hc, qun lý d án, qun lý chất lượng, công thái hc
phn mm (software ergonomics), và kỹ sư hệ thng (systems engineering).8
Trích dn mt câu nói ca Edsger Dijkstra v công ngh phn mm: Khi máy tính chưa
xuất hin, thì vic lập trình chưa có khó khăn gì cả. Khi mi xut hin mt vài chiếc máy tính
chức năng kém thì việc lp trình bắt đầu gp một vài khó khăn nho nhỏ. Giờ đây khi chúng
ta có nhng chiếc máy tính khng l thì những khó khăn ấy tr nên vô cùng ln. Như vậy
ngành công nghiệp điện t không gii quyết khó khăn nào cả mà h ch to thêm ra những khó
khăn mới. Khó khăn mà họ to nên chính là vic s dng sn phm ca h. Lch s:
Thập niên 1940: Các chương trình cho máy tính được viết bng tay.
Thp niên 1950: Các công cụ đầu tiên xut hiện như là phần mm biên dch
Macro Assembler và phn mm thông dịch đã được to ra và s dng rng rãi
để nâng cao năng suất và chất lượng. Các trình dịch được tối ưu hoá lần
đầu tiên ra đời.
Thp niên 1960: Các công c ca thế h thứ hai như các trình dịch tối ưu
hoá và công vic kim tra mẫu đã được dùng để nâng cao sn phm và
chất lượng. Khái nim công ngh phn mềm đã được bàn tho rng rãi.
Thp niên 1970: Các công c phn mm, chng hn trong UNIX các vùng
cha mã, lệnh make, v.v. được kết hp vi nhau. Số lượng doanh nghip
nh v phn mm và số lượng máy tính c nhỏ tăng nhanh. 6
IEEE Standard Glossary of Software Engineering Terminology," IEEE std 610.12-1990, 1990. 7 Guide
to the Software Engineering Body of Knowledge” . 6-2-2004. 8 Guide
to the Software Engineering Body of Knowledge” . 6-2-2004. 5 lOMoARcPSD|46958826
Thp niên 1980: các PC và máy trạm ra đời. Cùng lúc có s xut hin ca
mô hình d toán khả năng. Lượng phn mm tiêu thụ tăng mnh.
Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời. Các quá trình
nhanh như là lập trình cc hạn được chp nhn rng rãi. Trong thp niên này,
WWW và các thiết b máy tính cm tay ph biến rng rãi. Hin nay: Các phn
mm biên dch và qun lý như là .NET, PHP, Java làm cho việc thiết kế, viết
phn mm ng dng tr nên dễ dàng hơn nhiều. Hi ngh quc tế v Công
ngh phn mm lần đầu tiên dược t chc ti M.
2.4. Quy trình phát triển dự án công nghệ phần mềm
Theo quy tắc chung, quy trình SDLC sẽ bao gồm 6 bước:
Bước 1: Analysis (Lập kế hoạch và phân tích yêu cầu)
Trước khi bắt đầu xây dựng phần mềm, chúng ta cần thu thập và xác
định rõ các yêu cầu của người dùng và các bên liên quan đối với sản phẩm phần
mềm sắp xây dựng. Chúng ta cần nghiên cứu thị trường để xác định các chức
năng mà phần mềm nên cung cấp cho người dùng để họ cảm thấy đây là phần
mềm hữu ích cho họ. Việc nghiên cứu này cũng giúp ta xác định được khả năng
tồn tại của phần mềm trên thị trường như thế nào?
Sau đó, các thành viên trong nhóm phát triển phần mềm sẽ làm việc cùng
với khách hàng để đưa ra các thông số kỹ thuật và yêu cầu chi tiết về sản phẩm
phần mềm dự định làm ra. Tất cả thông tin này sẽ được tổng hợp thành một tài
liệu được gọi là tài liệu đặc tả yêu cầu phần mềm (Software Requirement
Specification). Tài liệu sẽ bao gồm các yêu cầu về chức năng, giao diện, hiệu suất,
… Ngoài ra, còn có cả bản phác thảo về thành phần, nhiệm vụ của từng
developer và các thông số thử nghiệm để tạo nên một sản phẩm chất lượng.
giai đoạn này, người quản lý và các nhà phát triển phần mềm sẽ thống
nhất việc lựa chọn kiểu mô hình phát triển phần mềm nào (Các kiểu mô hình
phát triển phần mềm sẽ được cụ thể trong phần tiếp theo)
Bước 2: Design (Thiết kế phần mềm) 6 lOMoARcPSD|46958826
Từ các yêu cầu và thông số kỹ thuật được đưa ra trong bước 1, các nhà
phát triển phần mềm sẽ vạch ra kiến trúc tổng thể cần thiết để tạo ra phần mềm.
Ngoài ra, các yếu tố như: ngân sách, thời gian, công nghệ áp dụng, mức độ rủi
ro,… cũng được xác định rõ ràng.
Kết quả cuối cùng của giai đoạn này là các đặc điểm kỹ thuật thiết kế. Nó
bao gồm các chỉ định về thiết kế kiến trúc, yêu cầu hệ thống cũng như đại diện
Back-end, Front-end,… cho phép cả nhóm phát triển theo dõi toàn bộ quá trình
phát triển nên phần mềm.
Bước 3: Development (Thực hiện)
Ở bước này, các nhà phát triển phần mềm sẽ bắt đầu viết code và triển
khai các thông số thiết kế đã đưa ra ở bước 2. Cụ thể, các Front-end developer sẽ
xây dựng phần giao diện của phần mềm. Các Back-end developer sẽ sử dụng các
loại ngôn ngữ lập t rình , framework để lập trình trên máy chủ và cùng với các
quản trị viên cơ sở dữ liệu xử lý dữ liệu.
Sau khi hoàn tất việc coding, developers sẽ deploy (triển khai) sản phẩm
trong môi trường phát triển. Lập trình viên sẽ tiến hành thử nghiệm sản phẩm
và có sự điều chỉnh cho phù hợp với yêu cầu đã đưa ra.
Giai đoạn này thường chiếm khá nhiều thời gian và nhân lực trong toàn
bộ quy trình phát triển phần mềm.
Bước 4: Testing (Kiểm thử phần mềm)
Sau khi hoàn tất phần lập trình phần mềm, sản phẩm sẽ tiếp tục chuyển cho
các tester (người kiểm thử phần mềm). Các tester sẽ tạo ra các tình huống kiểm thử
(test case) và tiến hành kiểm thử phần mềm. Mục đích của việc kiểm thử phần mềm
là xác minh và đảm bảo chất lượng của sản phẩm đúng như yêu cầu để ra.
Sau khi kiểm thử, tester sẽ cập nhật các lỗi vào công cụ quản lý và thông báo
các bug (lỗi) cho developers. Bước này, tester sẽ ngồi cùng với developers để xử lý các 7 lOMoARcPSD|46958826
bug hiện có và cập nhật vào hệ thống quản lý lỗi. Tùy vào mô hình phát triển
phần mềm được lựa chọn ở bước 1 mà hoạt động của developer và tester có thể
tiến hành lần lượt hoặc diễn ra song song.
Bước 5: Deployment stage (Giai đoạn triển khai)
Sau khi hoàn tất kiểm thử, phần mềm không còn lỗi, các nhà phát triển sẽ triển
khai sản phẩm trên Production environment (môi trường chứa ứng dụng thật, chạy với
người dùng thật, dữ liệu thật) và cung cấp sản phẩm hoàn thiện cho khách hàng.
Sau khi đăng ký, thử nghiệm Beta sẽ được tiến hành để thu thập các phản
hồi của người dùng thực tế để hoàn thiện chất lượng phần mềm khi triển khai ở quy
mô lớn. Ở bước này, developer cũng cần phải lên kế hoạch chuẩn bị cho mọi trường
hợp bất trắc có thể xảy ra để chủ động hơn trong việc giải quyết các sự cố bất ngờ.
Bước 6: Maintenance (Duy trì)
Sau khi phần mềm được đưa vào vận hành chính thức, khách hàng đã bắt
đầu sử dụng phần mềm ở mức chất lượng cao nhất, bước tiếp theo chúng ta cần
phải bảo trì sản phẩm. Công ty sẽ thành lập một nhóm chuyên về bảo trì và quản lý
các vấn để người dùng gặp phải trong quá trình sử dụng sản phẩm. Họ sẽ quản lý
và giải quyết tất cả các vấn để của người dùng gặp phải. Đồng thời, phần mềm cũng
được cập nhật sau khi triển khai để loại bỏ các lỗi và cải thiện hiệu suất.
2.5. Kỹ thuật hệ thống và Agile
Từ quan điểm tng th, k thut h thng tp trung vào việc phân tích và khơi gợi
nhu cu của khách hàng cũng như chức năng cần thiết ngay từ đầu trong chu k phát
trin, ghi li các yêu cầu và sau đó tiến hành tng hp thiết kế. và xác thc h thng trong
khi xem xét toàn b vấn đề và vòng đời ca h thống. Điều này bao gm vic hiểu đầy đủ
tt c các bên liên quan (Oliver và cng s) tuyên b rng quy trình k thut h thng có
thể được phân tách thành: Quy trình K thut H thng và Quy trình K thut Qun lý.
k thut h thng. 8 lOMoARcPSD|46958826
Trong mô hình ca Oliver, các mc tiêu ca Quy trình Truy cp Mở là các bước
thiết kế k thut cn thiết trong vòng đời h thng, trong khi Quy trình K thut bao
gm mt số bước để phát trin và xây dng h thng:
• Đánh giá thông tin có sẵn,
Xác định các bin pháp hiu
qu, Vi mục đích:
• Tạo mô hình hành vi,
• Tạo mô hình cu trúc, thc hiện phân tích đánh đổi,
• Xây dựng tun t và lp kế hoch th nghim.
Mil STD – 499B định nghĩa kỹ thut h thống như sau: kỹ thut h thng là mt
cách tiếp cận đa ngành được s dụng để phát trin, th nghim mt b tối ưu và tích hợp
các thiết kế sn phẩm và quy trình để tha mãn. nhu cu của người s dng và cung cp
thông tin cho người ra quyết định. Mc dù có nhiều định nghĩa khác về k thut h thng,
nhưng chúng ta vẫn có th nói k thut h thng có những đặc điểm sau:
K thut h thng không tn ti trong s cô lập. Đó là một quá trình đa ngành,
làm vic cùng nhau và tích hp các ngành khác nhau.
K thut h thng chuyển đổi nhu cu của người dùng thành đặc t cu hình
h thng có thể đáp ứng nhu cầu đó.
K thut h thng gn lin vi quá trình phát trin sn phẩm và được áp dng
ở giai đoạn đầu.
Tùy thuc vào ng dng ca chúng, mc dù có mt số mô hình được s dng
trong ngành, nhưng tất cả chúng đều nhm mục đích xác định mi quan h gia các
giai đoạn khác nhau được đề cp trên và kết hp phn hi. Cách tiếp cn k thut
h thng để xây dng mt h thng hoàn chnh bao gồm năm bước sau kết hp vi
bảy bước ca quy trình thiết kế h thng phn mm sẽ được áp dng trong sut d án: 9 lOMoARcPSD|46958826
Bước 1: Xác dnh phm vi d án Phân tích nhu cu
Bước 2: Xác định và tính toán nhu cu chức năng
Thiết kế ý nim
Bước 3: Tính toán ngun lc có sn
Bước 4: Xác định nn tảng và môi trường hot dng ca h thng
Bước 5: Xác định năng lực ca h thng
Thiết kế sơ khởi
Bước 6: Thiết kế và xây dng các chức năng con cùng hệ
Thiết kế chi tiết
thng ph trợ, ước tính chi phí.
Bước 7: Xây dng và phát trin mt h thng chi tiết.
Bước 2: Xác định và tính toán nhu cu chức năng
Cài đặt và vn hành 10 lOMoARcPSD|46958826 3. PHÂN TÍCH DỰ ÁN
3.1. Quy trình thực hiện dự án
Bỏ qua quy trình phân tích xác định nhu cu (vi nhu cu phát triển được xác
định sn): D án code nhp các input là hàm mc tiêu, hàm ràng buc và cho ra kết qu
là tr tối ưu và giá trị các biến trong hàm mc tiêu và ràng buc.
Nhu cầu được xác định:
Chương trình code nhập vào d liu hàm mc tiêu, ràng buc ca bài toán quy
hoch tuyến tính. Xut ra kết qu là giá tr tối ưu Z,
Quy trình tp trung vào phân tích lựa chọn giải pháp công nghệ,phân
tích thiết kế dựa trên giải pháp công nghệ đó. 3.2. Sơ đồ gantt
Sơ đồ Gantt quy trình và thi gian thc hin d án: 11 lOMoARcPSD|46958826
4. THIẾT KẾ Ý NIỆM
Đây là bước phân tích và la chn stech stack cho d án. Mt s công ngh thông
dng có th s dng: 4.1. Web Application 4.1.1. ASP .NET
Là công ngh lp trình web, da trên nn tn ngôn ng lp trình C# đồng phát
trin bi Microsoft. ASP .NET ni lên là mt trong nhng công ngh Backend ni bt
vi các cu trúc cc mnh trong xử lí logic ( điển hình là ASP.NET MVC) 4.1.2. Django (Python)
Là công ngh lp trình web, da trên nn tn ngôn ng lp trình Python vi
cng đồng phát trin open source lớn, tương thích vi nhiu API. 4.2. Window Application 4.2.1. Tkinter (Python)
Là công ngh lp trình giao din app chy trên máy tính, h trợ đa hệ điều hnh
vi mã ngun python.
4.2.2. Winform/WPF (.NET)
Lp trình window app với.NET Framework. Winform đã từ lâu tr thành công
ngh phát trin app nhúng, các phn mm dung trong công nghip, tự động hoá hay
qun lý công sở…
4.3. Phân tích trade off
So sánh các công ngh: Tiêu chí ASP .NET Django Tkinter Winform Mã nguồn đa dạng 8 6 8 9
D phát trin 4 4 9 9
D s dng 9 9 8 6 G li 6 7 8 8 Khả năng nâng cấp 8 8 8 5 Tổng 35 34 41 37
S dng Tkinter, Python là tech ca d án. 12 lOMoARcPSD|46958826 13