-64-
HỆ THỐNG SÁT HẠCH LÁI XE TỰ ĐỘNG
Trần Ngọc Sơn
0320263
Ngô Thanh Thế
0320297
Giáo viên hướng dẫn
PGS.TS Nguyễn Văn Vỵ
Bộ môn CNPM
I. Giới thiệu
Khóa luận nghiên cứu phân tích và
thiết kế hệ thống thi sát hạch lái xe ô tô tự
động phần thi thực hành sử dụng các
phương pháp công nghệ hiện đại như công
nghệ cảm biến từ, quang và công nghệ
truyền thông…. Dựa trên sự tìm hiểu về
tiến trình phát triển phần mềm hướng đối
tượng với kí pháp UML, tìm hiểu về các
hệ thống thời gian thực, các hệ thống
nhúng, khóa luận không tập trung chi ti
ết
về phần cứng mà tập trung chủ yếu vào
cấu thành phần mềm, phân tích thiết kế
các quá trình thi sát hạch, các bài thi cụ thể
theo chuẩn của Bộ Giao Thông Vận Tải
dựa trên các mô phỏng phần cứng. Khóa
luận được xây dựng dựa trên khảo sát hiện
trạng thi bằng lái xe ô tô theo tiến trình thủ
công truyền thống và một số địa điểm đã
triển khai hệ thống thi bằng lái xe t
ự động
ở thành phố Hà Nội.
II. Phát triển phầm mềm
hướng đối tượng
Vòng đời phát triển một phần mềm
thường gồm các giai đoạn sau: xác định
yêu cầu hệ thống, phân tích, thiết kế, triển
khai, vận hành và bảo trì hệ thống. Tiến
trình phát triển phần mềm hướng đối
tượng dựa trên công nghệ đối tượng, cụ
thể là dựa trên các thành phần, tức là hệ
thống phần mềm sẽ được xây dựng dựa
trên các thành ph
ần phần mềm kết nối với
nhau qua các giao diện đã được xác định.
Vòng đời phát triển phần mềm
được chia thành bốn pha: sơ bộ, soạn thảo,
xây dựng và chuyển đổi. Trong mỗi pha lại
chia thành nhiều bước lặp nhỏ. Mỗi
bước lặp đều gồm một số công việc
thực hiện trọn vẹn một sản phẩm phần
m
ềm có thể vận hành được: lập mô hình
nghiệp vụ ,xác định yêu cầu, phân tích,
thiết kế, triển khai và kiểm thử. Tuy
nhiên, bước lặp trong mỗi pha khác với
bước lặp ở các pha khác về nội dung
cũng như khối lượng mỗi loại công việc
cần thực hiện.
Các vấn đề đặt ra khi phát triển
phần mềm hướng đối tượng: Làm thế
nào để nhậ
n biết các lớp của đối tượng
từ hệ thống thực, phân công trách nhiệm
giữa các lớp sao cho hợp lý, việc phân
nhỏ các lớp đến đâu thì vừa phải
III. Hệ thống phần mềm
thời gian thực
Hệ thống thời gian thực khác với
những hệ thống phần mềm khác. Chức
năng chính của chúng phụ thuộc vào sự
đáp ứng của hệ thống với các sự kiện
trong một khoảng thời gian ( thường là
ngắn).
Phần mềm điều phối/phân
tích/kiểm soát các sự kiện thế giới thực
ngay khi chúng xuất hiện được gọi là
phần mềm th
ời gian thực.
Các yếu tố: Một thành phần thu
thập dữ liệu bên ngoài, thành phần phân
tích dữ liệu, thành phần kiểm soát, thành
phần điều phối
Một cách để nhìn nhận các hệ
thời gian thực là một hệ kích thích/đáp
-65-
ứng. Nhận một kích thích nào đó thì hệ
phải xuất ra một đáp ứng thích hợp. Dáng
điệu của một hệ thời gian thực có thể được
xác định bởi lập danh sách các kích thích
(định kỳ hay không định kỳ) , các đáp ứng
thích hợp và thời gian các đáp ứng phải
xuất ra.
Trong các hệ phần mềm thời gian
thực, hệ thống nhúng chiếm một tỷ lệ r
ất
lớn (90%). Một hệ thống nhúng gần với
mọi hệ thống tính toán khác với máy tính
để bàn, máy xách tay, hay hệ thống máy
tính lớn. Các đặc tính của chúng là: Tính
năng được đơn giản, tính ràng buộc cao và
tính tương tác thời gian thực.
Phần mềm nhúng: Là một chương
trình được viết, biên dịch trên máy tính và
nạp vào một hệ thống khác.
Trong hệ thống thời gian thực ta
chú ý đến: Các bộ điều phối thờ
i gian
thực, các hệ giám sát và khống chế, các hệ
thu nhận dữ liệu.
Các hệ thời gian thực phải đáp ứng
với các sự kiện xuất hiện một cách không
định kỳ. Các sự kiện này (các kích thích)
thường là nguyên nhân làm cho hệ thống
chuyển tới trạng thái khác. Vì lý do đó nên
việc mô hình hóa máy trạng thái được sử
dụng rộng rãi như một cách biểu thị một
thiết kế hệ thờ
i gian thực ngoài ra còn có
thể sử dụng bảng chuyển trạng thái.
IV. Bài toán sát hạch lái xe
tự động
Thực trạng:
Thành lập các trung tâm mới tổ
chức thi bằng lái xe cho người điều khiển
phương tiện giao thông là một nhu cầu tất
yếu và gia tăng của xã hội. Sự quá tải của
các trung tâm sát hạch lái xe, quá trình
cũng như tính minh bạch của hệ thống thi
bằng lái xe thủ công là một vấn đề lớn.
Mô tả bài toán:
Theo chuẩn của Bộ giao thông vận
tải, bài thi sát hạch lái xe ô tô bao gồm 10
bài thi l
ần lượt là: Bài 1 - Xuất phát; Bài 2
- Dừng đường cho người đi bộ; Bài 3 -
Dừng và khởi hành ngang dốc; Bài 4 –
Qua vệt bánh xe, đường hẹp vuông góc;
Bài 5 – Qua ngã tư có đèn tín hiệu giao
thông; Bài 6 - Đường vòng quanh co;
Bài 7 – Ghép xe vào nơi đỗ; Bài 8 -
Dừng cho đường sắt chạy qua; Bài 9 –
Tăng tốc trên đường thẳng; Bài 10 - Kết
thúc. Ngoài ra còn có tình huống khẩn
cấp ở trên đường thi và các lỗi toàn quá
trình thi. Ở mỗi tình huống của bài thi
khi thực hiện thí sinh có thể bị trừ đ
iểm
hoặc bị đánh trượt tùy vào mức độ vi
phạm. Số điểm trừ tối đa là 10 và tối
thiểu là 5 cho mỗi lần vi phạm, trong
một bài thi nếu thí sinh bị đánh trượt thì
sẽ không được tham gia các bài thi còn
lại. Theo phương pháp thi thông thường
thì mỗi thí sinh dự thi sẽ kèm theo một
giám thị để giám sát quá trình thí sinh
thực hiện các bài thi. Điều này dẫn đến
tốn kém về mặt thời gian và công s
ức để
sát hạch một thí sinh. Do đó yêu cầu đặt
ra là hệ thống phải giám sát được trạng
thái của xe trên các bài thi và tiến hành
chấm điểm đánh giá thí sinh.
V. Phân tích thiết kế hệ
thống
Hoạt động nghiệp vụ của hệ
thống đó là giúp bộ phận sát hạch giám
sát được trạng thái của xe đang thực hiện
bài thi. Phải nắm bắt được từng bài thi
xem thí sinh sẽ bị trừ bao nhiêu điểm
của bài đó. Theo dõi xem thí sinh có
hoàn thành được bài thi hay không để
tiến hành các thông báo, các thao tác xử
lý cần thiết khác. Cuối cùng tổng hợp
đưa ra kết quả của quá trình thi. Thí sinh
đạt tức là có số đi
ểm >= 80.
Thiết lập mô hình ca sử dụng
Qua mô tả hoạt động nghiệp vụ ở
trên ta có thể xác định ngay được tác
nhân duy nhất của hệ thống là người
giám sát – Controller. Người giám sát
tham gia hệ thống với công việc là cập
nhật thông tin về thí sinh, giám sát và
điều hành quá trình thi của các thí sinh.
-66-
Đồng thời cũng xác định được các ca sử
dụng: Ca sử dụng khởi động; Ca sử dụng
dừng đường cho người đi bộ; Ca sử dụng
dừng và khởi hành ngang dốc; Ca sử dụng
vào đường hẹp vuông góc; Ca sử dụng qua
ngã tư có tín hiệu đèn giao thông; Ca sử
dụng vào đường quanh co; Ca sử dụng lái
xe vào nơi đỗ; Ca sử dụng thay đổi sổ trên
đường thẳng; Ca sử d
ụng kết thúc.
Xây dựng biểu đồ trạng thái
Hệ thống của chúng ta là một hệ
giám sát đơn giản, không phải hệ thống
tương tác do vậy ta không đi sâu vào các
ca sử dụng. Chúng ta sử dụng biểu đồ máy
trạng thái để mô hình hóa ứng xử của hệ
thống trong quá trình phân tích. Điều quan
trọng nhất trong các biểu đồ máy trạng
thái này là ta phải xác định được các trạng
thái tương ứng vớ
i quá trình xe thực hiện
bài thi, xác định các dịch chuyển và các
hành động tương ứng từ đó xây dựng được
một bộ các tham số, chính là các dữ liệu
được lấy từ các bộ cảm ứng đặt trên xe và
các mô đun phần cứng. Từ đó xây dựng
lên lớp các đối tượng. Như vậy mỗi bài thi
tương ứng với 1 biểu đồ máy trạng thái và
một lớp phân tích được lấy tên lầ
n lượt là:
DriverTest1, DriverTest2, DriverTest3,...
DriverTest10. Trong đó mỗi trạng thái
tương ứng với một đối tượng. Trong quá
trình phân tích ta có thể sơ giản các lớp
như sử dụng kế thừa, hoặc giảm thiểu
lớp nếu chúng có các thuộc tính và
phương thức giống nhau .
Thiết kế cơ sở dữ liệu
Từ các biểu đồ máy trạng thái và các lớp
tìm được, ta xây dựng được cơ sở dữ
liệu cho bài toán. Ứng với mỗi lớp là
một bảng trong cơ sở dữ liệu, các trường
trong bảng tương ứng với các thuộc tính
của lớp thiết kế. Trong bài toán ta sử
dụng hệ cơ sở dữ liệu SQL 2000.
VI. Triển khai hệ thống
Do đây là một hệ thống đặc biệt,
là sự kết hợp giữa các hệ nhúng và hệ
giám sát và truyền thông nên điều kiện
triển khai thực tế đòi hỏi hệ thống phần
cứng khá phức tạp và tốn kém. Cho nên
khoá luận chỉ tập trung thiết kế phần
mềm dựa trên sự mô phỏng của hệ thống
phần cứng với các bộ dữ liệ
u được tạo ra
từ trước. Với một bộ dữ liệu mô phỏng
cho bài thi thứ nhất “Xuất phát” thì kết
quả xử lý được biểu diễn dưới bảng sau.
Tham
số
Trạng thái
Time S kđ rung Xl At Sen
sor1
Sen
sor2
Lỗi thực
tế
Hệ thống
phản hồi
Nghỉ 0 0 0 100 0 0 0 0 Không nghỉ
Chưa khởi
động
20 0 0 100 0 0 0 0 Kđ
muộn
Còn 95đ
Khởi động 3 0 1 200 0 1 0 0 Không Còn 100đ
Khởi động
sau 20s
20 0 1 200 0 1 0 0 Dừng
lâu
Còn 90đ
Qua vạch
xuất phát
20,5 0,06
(m)
1 300 0 1 1 1 Kô bật
xinhan
Còn 85đ
Đi được
5m
26 5(m) 1 300 0 1 0 0 Không Còn 85đ
Chưa kđ
sau 30s
30 0 0 100 0 0 0 0 Dừng
hơn 30s
Trượt
Tuy nhiên trên thực tế chúng ta có thể
đưa ra một chuỗi các trạng thái chuyển,
như trong mô phỏng này thì chỉ có các
chuỗi trạng thái đó là: Nghỉ - Chưa khởi
-67-
động - Khởi động sau 20s – Qua vạch
xuất phát – Đi được 5m (Số điểm tối đa
bị trừ trong chuỗi này là 30 điểm); Nghỉ -
Khởi động – Qua vạch xuất phát – Đi
được 5m (Số điểm tối đa bị trừ trong
chuỗi này là 25 điểm); Nghỉ - Chưa khởi
động (sau 20s)– Chưa khởi động sau 30s
và kết quả là trượt. Do mỗi trạng thái có
nhiề
u bộ giá trị cho các tham số khác
nhau nên trong khoá luận sẽ chỉ nêu ra
một vài bộ dữ liệu và chuỗi các trạng thái
để mô phỏng.
VII. Kết luận
Hệ thống sát hạch lái xe tự động
trong thời điểm hiện tại là đặc biệt quan
trọng và cần thiết trong nhu cầu thi bằng
lái xe ô tô của mọi tỉnh, thành phố trong
cả nước. Việc phát triển hệ thống đòi hỏi
phải có sự đầu tư lớn và phân tích kĩ
lưỡng.
Sau quá trình tìm hiểu và thực
hiện đề tài chúng em đã đạt được những
kết qu
ả:
- Nghiên cứu, tìm hiểu được về phần
mềm hướng đối tượng, hệ thống thời gian
thực và ứng dụng
- Vận dụng quá trình phân tích trên vào
bài toán cụ thể: Xây dựng hệ thống sát
hạch lái xe tự động
- Thiết kế hệ cơ sở dữ liệu cho bài toán,
tiến hành lập trình demo
Hướng phát triển
- Tiếp tục hoàn thiện chương trình
- Tiến tới xây dựng các mô đ
un phần
cứng trong chương trình như các hệ
truyền thông, các cảm biến…
- Xây dựng hệ thống sát hạch tự động
dành cho xe mô tô
Tài liệu tham khảo
[1] Nguyễn Văn Ba. “Phát triển hệ thống
hướng đối tượng với UML 2.0 và C++”.
NXB Đại Học Quốc Gia Hà Nội, 2005.
[2] Nguyễn Văn Vỵ. “Phân tích thiết kế
các hệ thống thông tin hiện đại hướng cấu
trúc và hướng đối tượng”. NXB Thống
Kê, 2002
[3] Đào Kiến Quốc. Slides bài giảng
UML, Đại học Công Nghệ, ĐHQGHN
[4] Ian Sommerville. “Software
Engineering – Sixth Edition. ”
[5] Frank Vahid and Tony Givargis
“Embedded System Design:A Unified
Hardware/Software Approach”
Department of Computer Science and
Engineering University of California,
1999.