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ề
Trang 1HỆ THỐNG SÁT HẠCH LÁI XE TỰ ĐỘNG
Trần Ngọc Sơn
0320263 supersh88@gmail.com
Ngô Thanh Thế
0320297 ngothanhthe250285@gmail.com
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
Trang 2ứ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
Trang 3Đồ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
Chưa khởi
động
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
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
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
Trang 4độ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