Do khả năng hỗ trợ thiết thực của hệ thống thời gian thực đối với việc nghiên cứu khoa học trong đời sống thường nhật nên các hệ thống thời gian thực đã được ứng dụng và phát triển từ rấ
Trang 1MỤC LỤC
MỤC LỤC i
LỜI CAM ĐOAN iii
LỜI CẢM ƠN vi
LỜI MỞ ĐẦU vii
1 Đặt vấn đề vii
2 Mục đích và nội dung nghiên cứu viii
3 Phương pháp đối tượng, phạm vi nghiên cứu viii
3.1 Phương pháp nghiên cứu .viii
3.2 Đối tượng và phạm vi nghiên cứu viii
4 Kết cấu chung của đề tài ix
Chương 1.TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC 1
1.1 Các khái niệm cơ sở của hệ thống thời gian thực 1
1.2 Yêu cầu của các hệ thống thời gian thực 4
1.2.1 Xử lý thời gian thực 4
1.2.2 Yêu cầu thời gian trong hệ thống thời gian thực 5
1.2.3 Đặc tính của hệ thống thời gian thực 10
1.3 Thời gian trong hệ thống thời gian thực 11
1.3.1 Quan niệm thời gian trong hệ thống thời gian thực 11
1.3.2 Các hệ thống thời gian thực 13
2.1 Giới thiệu UML 15
2.1.1 Mục đích của UML 17
2.1.2 Các thành phần của UML 18
2.1.3 Kiến trúc của hệ thống 26
2.2 Các giai đoạn phát triển phần mềm với UML 27
2.2.1 Xác lập yêu cầu (Dự kiến kế hoạch) 28
2.2.2 Giai đoạn phân tích 28
2.2.3 Giai đoạn thiết kế 28
2.2.4 Giai đoạn triển khai 29
2.3 Ứng dụng UML để phân tích và thiết kế hệ thống thời gian thực 29
2.3.1 Mô hình đối tượng của UML 30
2.3.2 Mô hình động của UML 31
Trang 22.3.3 Những thuận lợi của UML đối với hệ thống thời gian thực 36
Chương 3 XÂY DỰNG ỨNG DỤNG 39
3.1 Phân tích và thiết kế ứng dụng thời gian thực 39
3.1.1 Mô tả bài toán 39
3.1.2 Tác Nhân và Use Case 40
3.1.3 Biểu đồ UC 42
3.1.4 Biểu đồ trình tự 44
3.1.5 Biểu đồ cộng tác 50
3.1.6 Thiết kế chi tiết 52
3.1.7 Biểu đồ lớp 55
3.1.8 Biểu đồ thành phần 57
3.2 Ngôn ngữ lập trình cho hệ thống thời gian thực 57
3.3 Triển khai ứng dụng .58
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
Trang 3DANH MỤC HÌNH ẢNH
HÌNH 1.1 SƠ Đồ TUầN Tự CủA CÁC Sự KIệN RÀNG BUộC Về THứ Tự 1
HÌNH 1.2 SƠ Đồ TUầN Tự CủA CÁC Sự KIệN QUAN Hệ RÀNG BUộC Về THờI GIAN 1
HÌNH 1.3 SƠ Đồ TUầN Tự CủA CÁC Sự KIệN RÀNG BUộC THờI GIAN CHÍNH XÁC 1
HÌNH 1.4 SƠ Đồ TUầN Tự 1
HÌNH 1.5 SƠ Đồ TUầN Tự 1
HÌNH 2.1 XÂY DựNG HợP NHấT CÁC KÍ HIệU VÀO TRONG MÔ HÌNH UML 1
HÌNH 2.2 SƠ Đồ TUầN Tự MÔ Tả CA Sử DụNG “GọI ĐIệN THOạI” 1
HÌNH 2.3 BIểU Đồ CộNG TÁC MÔ Tả HOạT ĐộNG “GọI ĐIệN THOạI” 1
HÌNH 2.4 SƠ Đồ TRạNG THÁI CủA LớP “HETHONG” 1
HÌNH 2.5 KIếN TRÚC CủA Hệ THốNG2.1.3.1 KIểU XEM UC 26
HÌNH 2.6 BIểU Đồ LớP 1
HÌNH 2.7 SƠ Đồ CA Sử DụNG DIễN Tả THIếT Bị GIÁM SÁT THờI GIAN 1
HÌNH 2.8 BIểU Đồ TUầN Tự CHO GIÁM SÁT THờI GIAN HÀNH VI ĐÚNG 1
HÌNH 2.9 BIểU Đồ TUầN Tự CHO GIÁM SÁT THờI GIAN HÀNH VI LỗI 1
HÌNH 2.10 SƠ Đồ TRạNG THÁI PROCESSOR 1
HÌNH 2.11 SƠ Đồ TRạNG THÁI WATCHDOG 1
HÌNH 2.12 SƠ Đồ TUầN Tự ĐÁNH DấU THờI GIAN BắT ĐầU THI HÀNH 1
HÌNH 3.1 ĐÈN GIAO THÔNG TạI NGÃ TƯ ĐƯờNG 1
HÌNH 3.2 SƠ Đồ CA Sử DụNG CủA Hệ THốNG ĐÈN GIAO THÔNG 42
HÌNH 3.3 SƠ Đồ TUầN Tự CA Sử DụNG “DIEU KHIEN DEN GT TU DONG” 46
HINH 3.4 SƠ Đồ TUầN Tự HOạT Vụ “DIEU KHIEN CHUYEN DOI DEN GT” 48
HÌNH 3.5 SƠ Đồ TUầN Tự HOạT Vụ “NHAN TIN HIEU QUA TAI” 49
HÌNH 3.6 BIểU Đồ CộNG TÁC HOạT Vụ “DIEU KHIEN DEN GT TU DONG” 50
HÌNH 3.7 BIểU Đồ CộNG TÁC CủA HOạT Vụ “DIEU KHIEN CHUYEN DOI DEN GT” 1
HÌNH 3.8 SƠ Đồ CộNG TÁC HOạT Vụ “NHAN TIN HIEU QUA TAI” 1
HÌNH 3.9 SƠ Đồ BIểU Đồ TRạNG THÁI DENGIAOTHONG 1
HÌNH 3.10 SƠ Đồ BIểU Đồ TRạNG THÁI CHU Kỳ SốNG DENBAC-DENNAM 52
Trang 4HÌNH 3.11 SƠ Đồ BIểU Đồ TRạNG THÁI CHU Kỳ SốNG DENDONG-DENTAY 1
HÌNH 3.12 SƠ Đồ TRạNG THÁI MộT CHU Kỳ CủA DENGIAOTHONG 1
HÌNH 3.13 SƠ Đồ BIểU Đồ TRạNG THÁI HOạT ĐộNG ĐốI TƯợNG DIEUKHIEN 1
HÌNH 3.14 SƠ Đồ BIểU Đồ TRạNG THÁI CHUKYDK 1
HÌNH 3.15 BIểU Đồ HOạT ĐộNG KHởI TạO VÀ TÍNH GIÁ TRị PHADEN 1
HÌNH 3.16 BIểU Đồ HOạT ĐộNG XÁC ĐịNH GIÁ TRị DẫN XUấT DO,XANH,VANG 1
HÌNH 3.17 SƠ Đồ LớP CủA Hệ THốNG GIAO THÔNG 1
HÌNH 3.18 BIểU Đồ THÀNH PHầN CủA Hệ THốNG ĐÈN GIAO THÔNG 1
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong đồ án tốt nghiệp này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy giáo ThS Hà Mạnh Hùng
2 Mọi tham khảo dùng trong đồ án tốt nghiệp này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá tôi xin chịu hoàn toàn trách nhiệm
Trang 6LỜI CẢM ƠN
Qua quá trình học tập, nghiên cứu và rèn luyện tại Trường Đại Học Công nghệ thông tin và truyền thông, đến nay em đã kết thúc khóa học và hoàn thành đồ án tốt nghiệp của mình
Để có được kết quả như ngày hôm nay, em xin chân thành cảm ơn: Các thầy
cô giáo công tác tại Trường Đại học Công Nghệ Thông Tin và Truyền Thông – Đại Học Thái Nguyên nói chung, cũng như các thầy cô giáo trong Khoa Công Nghệ Thông Tin nói riêng đã truyền đạt kiến thức và tạo điều kiện tốt nhất cho em được học tập, nghiên cứu, rèn luyện trong suốt thời gian theo học tại trường
Em xin cảm ơn thầy giáo ThS Hà Mạnh Hùng, người đã trực tiếp giảng dạy và hướng dẫn em rất tận tình, cho em những định hướng và ý kiến quý báu trong quá trình học tập và đặc biệt là trong suốt thời gian hoàn thành đồ án
Cuối cùng, cho em được gửi lời cảm ơn tới gia đình và bạn bè, những người luôn tạo cho em niềm tin và là nền tảng vững chắc để em có thể hoàn thành đề tài
Thái Nguyên, tháng 06 năm 2016
Sinh viên thực hiện:
Nguyễn Thị Hồng
Trang 7LỜI MỞ ĐẦU
1 Đặt vấn đề
Ngày nay, trên thế giới hệ thống thời gian thực được phát triển mạnh mẽ Do khả năng hỗ trợ thiết thực của hệ thống thời gian thực đối với việc nghiên cứu khoa học trong đời sống thường nhật nên các hệ thống thời gian thực đã được ứng dụng
và phát triển từ rất lâu và đang được ứng dụng và phát triển trong nhiều nghành công nghiệp trong các hệ thống điều khiển Trong vô số các ứng dụng đa phần các
hệ thống thời gian thực đều mang tính chất chuyên dụng Nghĩa là chúng được phát triển cho riêng một mục đích nào đó, cho riêng một hệ thống thiết bị, việc phát triển được thực hiện không sử dụng đến một hệ điều hành đã có hay một ngôn ngữ cấp cao Tuy nhiên, hiện nay các hệ thống thời gian thực được phát triển nhanh và hiệu quả nhờ các công cụ trung gian, các hệ thống thời gian thực, các hệ điều hành thời gian thực, các ngôn ngữ lập trình thời gian thực
Tại Việt Nam, các ứng dụng hệ thống thời gian thực được sử dụng trong các
hệ thống điều khiển máy bay, các hệ thống điều khiển Rada quân sự, hệ thống mổ nội soi trong y tế, đa số các hệ thống thời gian thực cứng này đều được nhập từ nước ngoài mà chúng ta chưa có đơn vị nào xây dựng và phát triển chúng Tuy nhiên trong những năm gần đây, chúng ta đã từng bước tìm hiểu, nghiên cứu và xây dựng được các hệ thống thời gian thực mang tính chất mô phỏng các hệ thống thời gian thực cứng, từng bước chuẩn bị xây dựng và làm chủ được công nghệ đối với các hệ thống thời gian thực cứng ví dụ như hệ thống giả lập Radar, hay hệ thống điều khiển giám sát hệ thống tín hiệu nhà ga, hệ thống đường ngang liên hoàn… Với một nền kinh tế còn thấp, thu nhập của người dân chưa cao các phương tiện giao thông với giá thành thấp được sử dụng phổ biến, ý thức chấp hành luật an toàn giao thông kém của người tham gia giao thông tạo ra dòng xe lưu thông trên tuyến là dòng hỗn tạp gây nhiều khó khăn cho việc tổ chức điều khiển giao thông Trong thời gian gần đây ở một số thành phố lớn của nước ta đẵ ứng dụng tiến bộ của khoa học kĩ thuật trong điều khiển giao thông bằng tín hiệu đèn Chính hệ thống điều khiển bằng tín hiệu này đẵ góp phần giải quyết nạn ùn tắc giao thông trên các tuyến trên đô thị Tuy nhiên chủ yếu trên các nút điều khiển đèn giao thông đều sử dụng hệ thống đèn ”không thông minh” với thời gian lưu thông định sẵn Khi xe gặp đèn đỏ trong một chu kì đèn dài 60s thì lượng tiêu hao nhiên liệu cho 1000 xe là
Trang 8: xe con 3,06 lit/1000xe; xe tải 4,75 lit/1000xe; xe buýt 6,0 lit/1000xe, đã gây ra ùn tắc giao thông, gia tăng mức độ ô nhiễm khói do khí thải của động cơ khi chờ đèn xanh và tiếng ồn cũng như tạo tâm lý căng thẳng, khó chịu dưới thời tiết không tốt cho người lái xe Tình trạng này càng phức tạp hơn khi trong tương lai lưu lượng xe tăng nhanh và nhiều
Xuất phát từ những hiểu biết trên và để có thể hiểu sâu hơn về lĩnh vực ứng dụng hệ thống thời gian thực, dùng công nghệ mới để phân tích, thiết kế ứng dụng
hệ thống thời gian thực Đề tài “Phân tích thiết kế hệ thống điều khiển đèn giao
thông thông minh thời gian thực tại ngã tư ” được hình thành
2 Mục đích và nội dung nghiên cứu
Mục đích của đồ án là lựa chọn công cụ thích hợp để phân tích thiết kế mô phỏng hệ thời gian thực cho một nút đèn giao thông nhằm hạn chế tắc nghẽn và thời gian chờ của người tham gia giao thông
* Nội dung nghiên cứu của đồ án:
Tìm hiểu tổng quan về hệ thống thời gian thực
Nghiên cứu về phần mềm hướng đối tượng UML trong việc mô hình hóa hệ thời gian thực và ứng dụng.Vận dụng quá trình phân tích thiết kế mô phỏng hệ thời gian thực để xây dựng chương trình mô phỏng cho một nút đèn giao thông tại ngã tư
3 Phương pháp đối tượng, phạm vi nghiên cứu
3.1 Phương pháp nghiên cứu
Với mục đích nêu trên phương pháp nghiên cứu của đề tài là :
+ Nghiên cứu lý thuyết hệ thời gian thực cho việc phân tích thiết kế bằng ngôn ngữ mô hình hóa UML
+ Xây dựng mô phỏng điều khiển đèn giao thông sử dụng ngông ngữ C#.Net trên winForm
3.2 Đối tượng và phạm vi nghiên cứu
Với mục đích của đề tài là nghiên cứu về hệ thời gian thực và sử dụng UML
để phân tích thiết kế hệ thống điều khiển đèn giao thông nên đối tượng nghiên cứu
là một nút đèn giao thông có điều khiển bằng tín hiệu đèn
* Phạm vi nghiên cứu của đồ án:
+Tổng quan về hệ thống thời gian thực
+Ứng dụng UML trong phân tích thiết kế phần mềm thời gian thực
Trang 9+ Nút đèn giao thông tại ngã tư đường có điều khiển bằng tín hiệu đèn +Thời gian cho mỗi chu kì đèn thay đổi theo thời gian quá tải
+ Tỉ lệ lưu lượng xe tham gia là như nhau trên các trục giao thông
4 Kết cấu chung của đề tài
Với mục đích và nội dung nghiên cứu trên, kết cấu của đề tài gồm 3 chương:
Chương 1: Tổng quan về hệ thống thời gian thực
Chương 2: Ứng dụng UML để phân tích và thiết kế hệ thống thời gian thực Chương 3: Xây dựng ứng dụng
Trang 10
Chương 1
TỔNG QUAN VỀ HỆ THỐNG THỜI GIAN THỰC
Chương này giới thiệu các khái niệm cơ bản của hệ thống thời gian thực (RTS – Real Time System), các yêu cầu và ràng buộc về thời gian khi thiết kế phần mềm thời gian thực tương tác với môi trường bên ngoài Hệ điều hành thời gian thực cũng được trình bày, và với các ví dụ được giới thiệu cho ta thấy hệ thống thời gian thực được ứng dụng rộng rãi và những yêu cầu đối với hệ thống đó cũng rất khắt khe, nhằm để đáp ứng kích thích từ môi trường bên ngoài tác động
Một vấn đề nảy sinh khi nghiên cứu về hệ thống thời gian thực đó là các hệ điều hành đang được sử dụng phổ biến ở Việt Nam có phải là hệ điều hành thời gian thực không? Chúng có thể được sử dụng để xây dựng phát triển các hệ thống thời gian thực không?
1.1 Các khái niệm cơ sở của hệ thống thời gian thực
Hệ thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn
Ví dụ: Hệ thống thông tin điều khiển màn hình hiển thị giờ chính xác của các tàu điện ngầm sẽ đến và đi tại một ga nhất định
Theo từ điển Oxford về máy tính cung cấp định nghĩa: Một hệ thống tại một
thời điểm cung cấp tín hiệu đầu ra quan trọng Điều này là dĩ nhiên vì tín hiệu đầu vào tương ứng đã được đưa vào trong không gian thiết bị và tín hiệu đầu ra có liên quan đến sự di chuyển tương ứng đó Thời gian trễ (delay) được bắt đầu từ thời điểm tín hiệu đầu vào được đưa vào đến thời điểm nhận được tín hiệu đầu ra phải đủ nhỏ để có
thể chấp nhận được kịp thời
Đây là một định nghĩa khác trên “Journal of Systems and Control Engineering”
(Chuyên đề Ứng dụng thiết kế hệ thống và điều khiển): RTS là hệ thống cung cấp các
phản ứng trả lời chính xác trong một giới hạn thời gian rõ ràng Do đó việc tính toán các phản ứng trả lời vượt quá ranh giới thời gian cho phép khi đó hiệu quả thực thi bị biến đổi và gây ra kết quả sai lệch
Hệ thống thời gian thực khác với các hệ thống khác ở chỗ gò bó về mặt thời gian
Trang 11Hệ thống không chỉ đưa ra kết quả một cách chính xác mà còn phải thực hiện
xử lý trong khoảng thời gian cho phép Tính thời gian thực ở đây là khả năng đáp ứng kịp thời và chính xác
Hệ thống thời gian thực được thiết kế nhằm cho phép phản hồi (response) lại các yếu tố kích hoạt phát sinh từ các thiết bị phần cứng theo một ràng buộc thời gian xác định.Trong những RTS chỉ có một số công việc được gọi là công việc thời gian thực, các công việc này có một mức độ khẩn cấp riêng cần phải hoàn tất, ví dụ
một tiến trình đang cố gắng điều khiển hoặc giám sát một sự kiện đang xảy ra trong thế giới thực Bởi vì các sự kiện xuất hiện trong thế giới thực nên tiến trình giám sát
sự kiện này phải xử lý theo kịp với những thay đổi của sự kiện Sự thay đổi của sự kiện trong thế giới thực xảy ra thường rất nhanh, mỗi tiến trình giám sát sự kiện phải thực hiện việc xử lý trong một khoảng thời gian ràng buộc gọi là deadline, khoảng thời gian ràng buộc được xác định bởi thời gian bắt đầu và thời gian hoàn tất công việc Trong thực tế, các yếu tố kích thích xảy ra trong thời gian rất ngắn vào khoảng vài mili giây, thời gian mà hệ thống trả lời lại yếu tố kích thích đó tốt nhất vào khoảng dưới một giây, thường vào khoảng vài chục mili giây, khoảng thời gian này bao gồm thời gian tiếp nhận kích thích, xử lý thông tin và trả lời lại kích thích Một yếu tố khác cần quan tâm trong RTS là những công việc thời gian thực này có tuần hoàn hay không? Công việc thời gian tuần hoàn thì ràng buộc thời gian
ấn định theo từng chu kỳ xác định Công việc không tuần hoàn xảy ra với ràng buộc thời gian vào lúc bắt đầu và lúc kết thúc công việc, giới hạn thời gian ràng buộc chỉ được xác định vào lúc bắt đầu công việc Các biến cố kích hoạt công việc không tuần hoàn thường dựa trên kỹ thuật xử lý ngắt của hệ thống phần cứng
Một trong những tiêu chuẩn cho hành động chính xác của RTS đó là tính chính xác lôgic , cũng được gọi là sự chính xác đầu vào/đầu ra, chính xác thiết thực
và sự chính xác biến đổi Mặc khác, RTS thực yêu cầu cả tính chính xác lôgic lẫn tính chính xác thời gian Tính chính xác lôgic thường thể hiện trong giới hạn đúng đắn đầu ra và đầu vào Tiêu chuẩn về tính chính xác thời gian cũng được gọi là sự chính xác tác động trở lại, có thể nhìn thấy như là sự mở rộng của tính chính xác lôgic bao gồm sự định hướng mới, tên thời gian thực Phần mềm thời gian thực là một kiểu thiết kế như là một tập hợp những qui trình trao đổi thông điệp hiện tại Trong nhiều trường hợp, có những qui trình thực thi ở trạng thái không đồng bộ để
Trang 12cung cấp sự kiểm tra các thành phần và sự tác động trở lại của các thành phần với các tốc độ khác nhau Qui trình truyền đạt thông điệp còn được dùng để chuyển đổi
dữ liệu hoặc điều khiển thông tin
Về mặt cấu tạo, RTS thường được cấu thành từ các thành tố chính sau :
+ Đồng hồ thời gian thực: Cung cấp thông tin thời gian thực
+ Bộ điều khiển ngắt: Quản lý các biến cố không theo chu kỳ
+ Bộ định biểu: Quản lý các quá trình thực hiện
+ Bộ quản lý tài nguyên: Cung cấp các tài nguyên máy tính
+ Bộ điều khiển thực hiện: Khởi động các tiến trình
Đặc điểm tiêu biểu của một hệ thống thời gian thực:
* Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm
thường không biết trước Ví dụ, sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển
* Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể
đưa ra kết quả phản ứng một cách kịp thời Tuy tính nhanh nhạy là một đặc điểm tiêu biểu, nhưng một hệ thống có tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu, tác động bên ngoài
* Tính đồng thời: Hệ thống phải có khả năng phản ứng và xử lý đồng thời nhiều sự
kiện diễn ra Có thể, cùng một lúc một bộ điều khiển được yêu cầu thực hiện nhiều vòng điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ
* Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu biểu, thời gian phản ứng
chậm nhất cũng như trình tự đưa ra các phản ứng Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ, ta phải tham gia quyết định được về trình tự thực hiện các công việc và đánh giá được thời gian xử lý mỗi công việc Như vậy người sử dụng mới
có cơ sở để đánh giá về khả năng đáp ứng tính thời gian thực của hệ thống
Các thành tố trên có thể được phân định là thành phần cứng hay mềm tùy thuộc vào hệ thống và ý nghĩa sử dụng Thông thường, các RTS được kết hợp vào phần cứng có khả năng tốt hơn so với hệ thống phần mềm có chức năng tương ứng
và tránh được chi phí quá đắt cho việc tối ưu hóa phần mềm Ngày nay, chi phí phần cứng ngày càng rẻ, chọn lựa ưu tiên phần cứng là một xu hướng chung
Trang 13 Hệ điều hành thời gian thực:
Hệ điều hành thời gian thực (RTOS-Realtime operating system) là hệ điều hành (HĐH) có sự chú trọng giải quyết vấn đề đòi hỏi khắt khe về thời gian cho các thao tác xử lý hoặc dòng dữ liệu Đây là HĐH hiện đại, tinh vi, thời gian xử lý nhanh, phải cho kết quả chính xác trong thời gian bị thúc ép nhanh nhất RTOS thường sử dụng một đồng hồ hệ thống có cho kỳ ngắt nhỏ vào khoảng vài micro giây để thực hiện điều phối các tiến trình
Hệ điều hành thời gian thực thực hiện đa nhiệm cũng với nguyên lý trên nhưng các đối tượng của nó thì rất khác so với các đối tượng của hệ không phải thời gian thực Sự khác biệt này được phản ánh bởi cơ chế lập lịch trình Hệ thời gian thực/hệ nhúng được thiết kế sao cho các dáp ứng về mặt thời gian là thực đối với các sự kiện xả ra trên thế giới thật Các sự kiện này xảy ra trên thế giới thực có thể
có thời điểm kết thúc trước ngay cả hệ nhúng/hệ thời gian thực phải đáp ứng và cơ chế lập lịch của hệ RTOS phải xác định được thời điểm kết thúc mà nó phải gặp Mỗi hệ thống điều khiển là một hệ thời gian thực Có thể nói, tất các các hệ thống điều khiển là hệ thời gian thực Ngược lại, một số lớn các hệ thống thời gian thực là các hệ thống điều khiển Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian, bất kể là hệ thống điều khiển nhiệt độ, điều khiển áp suất, điều khiển lưu lượng hay điều khiển chuyển động Một bộ điều khiển phải đưa ra được tín hiệu điều khiển kịp thời sau một thời gian nhận được tín hiệu đo để đưa quá trình kỹ thuật về trạng thái mong muốn Một mạng truyền thông trong một hệ thống điều khiển có tính năng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối với các yêu cầu của các bộ điều khiển, các thiết bị vào/ra, các thiết bị đo và thiết bị chấp hành Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụ thuộc vào tính năng thời gian thực của từng thành phần trong hệ thống, mà còn phụ thuộc vào
sự phối hợp hoạt động giữa các thành phần đó
1.2 Yêu cầu của các hệ thống thời gian thực
1.2.1 Xử lý thời gian thực
Xử lý thời gian thực là hình thức xử lý thông tin trong một hệ thống để đảm bảo tính năng thời gian thực của nó Như vậy, xử lý thời gian thực cũng có các đặc điểm tiêu biểu nêu trên như tính bị động, tính nhanh nhạy, tính đồng thời và tính
Trang 14tiền định Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống
xử lý thời gian thực sử dụng các quá trình tính toán đồng thời
Quá trình tính toán là một tiến trình thực hiện một hoặc một phần chương trình tuần tự do hệ điều hành quản lý trên một máy tính, có thể tồn tại đồng thời với các quá trình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thực hiện
Các hình thức tổ chức các quá trình tính toán đồng thời:
* Xử lý cạnh tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin của
một bộ xử lý
* Xử lý song song: Các quá trình tính toán được phân chia thực hiện song song trên
nhiều bộ xử lý của một máy tính
* Xử lý phân tán: Mỗi quá trình tính toán được thực hiện riêng trên một máy tính
Trong các hình thức trên đây thì hình thức xử lý cạnh tranh có vai trò chủ chốt Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm có thể là một hệ
đa vi xử lý, số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn số lượng vi xử lý Trong khi một vi xử lý không thể thực hiện song song nhiều lệnh, nó phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự tùy theo mức ưu tiên và phương pháp lập lịch
Trong các hệ thống điều khiển, khái niệm tác vụ (task) cũng hay được sử
dụng bên cạnh quá trình tính toán Có thể nói, tác vụ là một nhiệm vụ xử lý thông tin trong hệ thống, có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo
sự kiện (event task) Các dạng tác vụ qui định trong chuẩn IEC 61131-3
(Programmable Controllers – Part3: Programming Languages) Ví dụ, một tác vụ
thực hiện nhiệm vụ điều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau Hoặc, một tác vụ có thể thực hiện nhiệm vụ điều khiển logic, điều khiển trình tự theo các sự kiện xảy ra Tác vụ có thể thực hiện dưới dạng một quá trình tính toán duy nhất, hoặc một dãy các quá trình tính toán khác nhau
1.2.2 Yêu cầu thời gian trong hệ thống thời gian thực
Nét đặc trưng cơ bản quan trọng nhất của hệ thống thời gian thực là sự đòi hỏi để theo kịp môi trường tự trị với sự phản ứng của thuộc tính và thời gian để sự kiện xuất hiện trong môi trường đồng bộ từ thao tác của hệ thống Bởi vậy, sự tương tác trong môi trường hệ thống, sự phản ứng lại của hệ thống với tác nhân kích thích
Trang 15từ môi trường bên ngoài truyền vào sẽ tăng lên để trả lời lại tác nhân của máy móc,
là chủ thể yêu cầu Trong nội dung được đề cập, sự kiện giới hạn sẽ sử dụng cho
việc truyền đạt các thực thể không có hiệu lực thời gian (ví dụ: sự chuyển đến của
thông điệp) Những hành động giới hạn đã sử dụng cho thực thể với một số khoảng
thời gian, có thể khởi tạo bởi sự kiện đưa ra sự thay đổi trong trạng thái của hệ thống Những yêu cầu thời gian có thể phân loại như sau:
Thời gian tuần tự
Thời gian tuần tự mối quan hệ thứ tự của các sự kiện theo trình tự thời gian Ví
dụ: trong phạm vi cấu trúc thời gian tuần tự chúng ta có thể nói rằng sự kiện A1
trước sự kiện A2 Kết hợp với thứ tự lôgic hoặc lôgic thời gian chúng ta có thể biểu
diễn sự phụ thuộc và các mối quan hệ giữa 2 sự kiện khác nhau Trình tự thời gian là khái niệm định tính của thời gian thực, bởi vì trạng thái về độ dài thời gian giữa các
sự kiện không thể có trong phạm vi cấu trúc này
Thời gian quan hệ
Thời gian quan hệ là khái niệm ngầm của thời gian thực xuyên suốt các sự kiện, là quan hệ giữa những sự kiện trong suốt quãng thời gian các hoạt động Mối quan hệ giữa các sự kiện được mô tả trong thuật ngữ của các mối quan hệ ưu tiên và
độ dài khoảng thời gian giữa các sự kiện, tính thứ tự có thể được mô tả trên giây Cho nên sự kiện được mô tả không tham chiếu cố định đến một điểm trong thời gian đã được đưa ra trong các mối quan hệ giữa chúng Thời gian quan hệ là khái niệm định tính của thời gian thực
Event
Event A1
A2
Hình 1.1 Sơ đồ tuần tự của các sự kiện ràng buộc về thứ tự
Trang 16Ví dụ: sự kiện re_A1 phản ứng trả lời, đáp ứng sự kiện A1 trong khoảng thời
gian nhỏ hơn hoặc bằng 4s, sự kiện A2 xuất hiện sau sự kiện A1 chậm nhất là 5s và
sự kiện A2 sau re_A1
Thời gian chính xác
Mẫu thời gian này là khái niệm rõ ràng của thời gian thực mà hành vi hệ thống
có thể chỉ rõ từng điểm trong thời gian, với độ chính xác để chọn lựa trọng tâm Vì thế trong thời gian chính xác tất cả các sự kiện hiện tại đều được kiểm tra điểm tham chiếu cố định và do đó đây là khái niệm định tính của thời gian thực
Ví dụ: sự kiện A n+1 xuất hiện đều đặn sau sự kiện A n 4s
Event A1
A2
ResPonse
Event Re_A1
Hình 1.2 Sơ đồ tuần tự của các sự kiện quan hệ ràng buộc về thời gian
Ai+1
Hình 1.3 Sơ đồ tuần tự của các sự kiện ràng buộc thời gian chính xác
{A i+1 -A i =4s}
Trang 17 Thời gian trả lời: đây là quan hệ thời gian xuất hiện của các sự kiện và phản ứng
trả lời của nó Các trường hợp thường sử dụng nhất đó là:
- Khoảng thời gian nhanh nhất giữa sự kiện và phản ứng trả lời của nó
Ví dụ 1: sự kiện a tiếp đến là phản ứng trả lời b trong khoảng thời gian 3 giây
(yêu cầu đặc trưng sẵn sàng hành động)
- Khoảng thời gian chậm nhất giữa sự kiện và phản ứng trả lời của nó
Ví dụ 2: sự kiện a tiếp đến là phản ứng trả lời b, khoảng thời gian nhỏ nhất là
8 giây giữa a và b
- Khoảng thời gian chính xác (Exact) giữa sự kiện và phản ứng trả lời của nó
Ví dụ 3: sự kiện a tiếp đến là phản ứng trả lời b trong khoảng thời gian chính xác 7
giây (như với sự cài đặt thời gian bấm giờ và thời gian không tính của nó)
Tính thường xuyên: đây là quan hệ xuất hiện của các sự kiện tương tự Các
trường hợp thường sử dụng nhất:
- Khoảng thời gian nhanh nhất giữa các sự kiện xuất hiện
Ví dụ 4: xuất hiện liên tục sự kiện a x và a x+1 cách nhau khoảng thời gian lớn nhất là 4 giây
- Khoảng thời gian chậm nhất giữa các sự kiện xuất hiện
Ví dụ 5: xuất hiện liên tục sự kiện a x và a x+1 cách nhau khoảng thời gian nhỏ nhất là 5 giây (kiểu giả định tỉ lệ tác nhân từ môi trường)
- Khoảng thời gian chính xác (Exact) giữa các sự kiện xuất hiện, đây cũng được gọi
B
Hình 1.4 Sơ đồ tuần tự, ví dụ 1-3
Trang 18Ví dụ 6: sự kiện a xuất hiện đều đặn cách nhau khoảng thời gian 2 giây (như
với sự lấy mẫu)
Phát triển hệ thống thời gian thực yêu cầu cần xem xét về khái niệm thời gian
áp dụng cho yêu cầu thi hành trên hệ thống Một vấn đề cần làm rõ ràng, ngôn ngữ
mô hình là nền tảng sẽ hỗ trợ cho qui trình phát triển và nó cũng hỗ trợ khái niệm thời gian do vậy các yêu cầu về thời gian cũng được mô tả Trong các ứng dụng đồ họa tổng quát hoặc ngôn ngữ mô hình thời gian thực nguyên mẫu nó có thể được mô tả bởi các mối quan hệ sự kiện-phản ứng trả lời và mối quan hệ xuất hiện của các sự kiện trong giới hạn thời gian thực Khi một sự kiện muốn mô tả yêu cầu thời gian chính xác, thời gian thực cần kiểm tra khả năng xuất hiện của các sự kiện và phản ứng trả lời để xác định điểm tham chiếu
Đến nay các yêu cầu về thời gian chỉ dành cho các sự kiện riêng, phản ứng trả lời trực tiếp của chúng và các sự kiện xuất hiện có quan hệ với nhau Có một số kiểu yêu cầu dành cho hệ thống với một tình huống, mà tình huống đó xuất hiện chính xác tại một thời điểm và nó không cần thiết trong suốt chu kỳ sống của hệ
thống Ví dụ: sự kiện A xảy ra, sau đó đến phản ứng trả lời B, khoảng thời gian
giữa A và B là 5 giây Yêu cầu khoảng thời gian 5 giây chỉ áp dụng khi sự kiện A có
xảy ra Trong suốt chu kỳ sống của hệ thống sự kiện A chỉ xảy ra tại một thời điểm xác định nào đó Những kiểu yêu cầu này được gọi là: yêu cầu ngữ cảnh Yêu cầu ngữ cảnh luôn tùy thuộc vào sự xuất hiện của các sự kiện trước đó
Ngoài ra còn có những yêu cầu không phụ thuộc vào ngoại lệ sự kiện nhưng
nó tồn tại trong hệ thống trong suốt chu kỳ sống cho đến khi hoàn thành, được gọi
An+1
Hình 1.5 Sơ đồ tuần tự, ví dụ 4-6
Trang 19là: những yêu cầu chung Một ví dụ về yêu cầu chung tại hệ thống trạm điều khiển
hạt nhân: lò phản ứng sẽ không nổ Đây là một yêu cầu mà cần phải thỏa mãn trong
toàn bộ chu kỳ hoạt động tồn tại của hệ thống trạm điều khiển hạt nhân và không tùy thuộc vào thứ tự trước sau của sự kiện (tình huống) nào, mặt khác có thể có một tai nạn tai họa xuất hiện Như vậy khoảng thời gian trong ngôn ngữ mô hình tổng quát có thể hỗ trợ cho các qui trình phát triển, nó dùng để mô tả các yêu cầu ngữ cảnh cũng như các yêu cầu tổng quát
1.2.3 Đặc tính của hệ thống thời gian thực
Các RTS có một số đặc điểm đặc trưng, tuy nhiên không phải tất cả các RTS đều quan tâm đến các điểm đó Thường thì ngôn ngữ lập trình và HĐH cho RTS đã
có rất nhiều cung cấp một số điểm đặc trưng hoặc tạo môi trường thuận lợi cho việc thực hiện các đặc điểm đó
Hệ thống lớn và phức tạp
Lượng thông tin đầu vào của các hệ thống thời gian thực thường lớn Tốc
độ của các thông tin này không ổn định, thất thường, trong khi đó hệ thống lại đòi hỏi chúng được xử lý trong một khoảng thời gian xác định trước Và bởi thông tin đầu vào đa dạng với mục đích mô phỏng các thực thể của thế giới thực Vì vậy, cấu trúc của hệ thống thời gian thực thường phức tạp để đáp ứng được các yêu cầu của thế giới thực
Đây là vấn đề chung cho lĩnh vực phần mềm, yếu tố phức tạp và quy mô của
hệ thống thường tỉ lệ thuận với nhau Đặc biệt khi mà RTS phải phân chia thời gian hợp lý, sử dụng nhiều thuật toán phức tạp, phải thực hiện lập lịch, đồng bộ nên độ phức tạp là rất lớn, cả từ các giai đoạn đặt vấn đề, phân tích, thiết kế, tiến hành, kiểm tra, bảo trì,
Xử lý trên số thực
RTS luôn làm việc trên các thông số trạng thái thực của thiết bị vật lý Việc tính toán trên số thực tốn rất nhiều thời gian xử lý Ngày nay, tốc độ xử lý của máy tính đã rất nhanh, việc xử lý số thực được hỗ trợ ngay từ phần cứng, HĐH và ngôn ngữ lập trình nhưng sử dụng một phương pháp tính toán phù hợp, ít tốn thời gian nhất vẫn là một yêu cầu thực tế
Thực sự an toàn và đáng tin cậy
Các ứng dụng thời gian thực là các ứng dụng liên quan mật thiết đến thế
Trang 20giới thực, đến hoạt động của con người Kết quả tính toán của chúng ảnh hưởng lớn đến quyết định của người sử dụng, thao tác hệ thống Vì vậy, tính toán của hệ thống phải đảm bảo độ chính xác cả về kết quả và thời gian đáp ứng
Giao tiếp trực tiếp với thiết bị phần cứng
Các thiết bị vật lý giao tiếp trực tiếp thường là các bộ phận cảm biến, các loại đồng hồ trạng thái, nhiệt kế, các thiết bị điện, điện tử, bán dẫn Các thiết bị này có khả năng phát sinh hoặc tiếp nhận các tín hiệu, phát sinh các ngắt được nhận biết bởi máy tính Thông qua các tín hiệu, các ngắt mà máy tính có thể kiểm soát các trạng thái hoặc điều khiển sự hoạt động của thiết bị
Thực hiện trên môi trường và ngôn ngữ lập trình hiệu quả
Khác với các hệ thống khác, RTS có yêu cầu thực thi nhanh và hiệu quả Vì vậy việc sử dụng một môi trường không hợp lý hay một ngôn ngữ lập trình bình
thường thì khó mà có thể đạt được yêu cầu, ví dụ : Hệ thống xử lý thời gian có độ
chia cho đến micro giây thì không thể thực hiện trên ngôn ngữ lập trình chỉ hỗ trợ đến mili giây
Người sử dụng điều khiển
Trong các hệ thống kinh điển, thường thì người sử dụng ra yêu cầu và chờ nhận kết quả Trong những RTS còn yêu cầu người sử dụng phải nắm vững về hệ thống nền (HĐH) Để kết quả công việc thành công tốt, người sử dụng có thể can thiệp trực tiếp đến từng tiến trình, từng tiểu trình, cho phép, cấp quyền ưu tiên đến từng công việc nhằm tạo sự thông suốt trong hệ thống, tránh sự tắt nghẽn
1.3 Thời gian trong hệ thống thời gian thực
1.3.1 Quan niệm thời gian trong hệ thống thời gian thực
Đồng hồ hệ thống
Đơn giản nhất là hệ thống chỉ có một đồng hồ chủ (sever lock), yêu cầu độ chính xác và tin cậy rất cao Loại đồng hồ chủ giá thành rất đắt Một loại khác gồm một đồng hồ chính (master clock) đồng bộ với nhiều đồng hồ phụ (slave clock) theo kiểu “polling” (kiểm soát vòng), tất cả các đồng hồ có cùng độ chính xác, nếu đồng
hồ chính bị hỏng thì một trong những đồng hồ phụ sẽ thay thế
Đối với hệ thống phân tán, đồng hồ hệ thống bao gồm tất cả các đồng hồ phân tán và được đồng bộ với nhau theo cùng một thuật toán
Trang 21 Quan niệm về rời rạc thời gian
Trong quan niệm của RTS, thời gian được xem như là một yếu tố rời rạc Đây là một khía cạnh rất phức tạp và lý thú
(1) Trong các HĐH kinh điển, có một đồng hồ quản lý thời gian đồng bộ giữa các tiến trình Đồng hồ này phát sinh ra ngắt báo hiệu cho hệ thống theo chu
kỳ Chu kỳ này có thể được điều chỉnh nhưng không quá nhanh hay quá chậm làm ảnh hưởng đến thời gian thực thi các tiến trình và thường là vào khoảng vài chục mili giây Chính chu kỳ này đã chia thời gian ra thành các mảnh đủ nhỏ
(2) Còn trong các hệ thống điều khiển thời gian thực, hệ thống sử dụng một đồng hồ có khả năng lập trình điều phối ngắt theo một chu kỳ đủ nhỏ, hợp lý, chu
kỳ ở hệ thống này vào khoảng vài micro giây
Trong thực tế thì các hệ thống thời gian thực thường dựa trên cách tiếp cận kết hợp giữa hai quan niệm trên, thường thì quan điểm (1) là nền tảng có sự hỗ trợ của quan điểm (2)
Ràng buộc về thời gian
Với mỗi yếu tố kích thích, hệ thống tiếp nhận vào một thời điểm t0, hệ thống tiến hành cấp phát tài nguyên, thực hiện các xử lý tính toán và hoàn tất việc trả lời vào thời điểm tk khác sau đó
Một ràng buộc tối thiểu có thể được định nghĩa qua bộ ba sau:
Trong đó:
Tbegin(condition1) : Thời gian bắt đầu tiến trình
Tend(condition2) : Thời gian tiến trình hoàn tất xử lý
Đây là một ràng buộc đơn giản đối với tiến trình trong hệ thống thời gian thực, ràng buộc trên không có tiền điều kiện và xác định được khoảng thời gian mà
tiến trình phải thi hành (Tend-Tbegin)
Một ràng buộc khác, khắc khe hơn, phụ thuộc vào hệ thống và thời gian xác định tài nguyên cần cấp phát, cũng như quá trình giải phóng tài nguyên sau khi tiến trình sử dụng được xác định như sau:
(ID, Tbegin(condition1), Tend(condition2)
(ID, Tbegin(condition1),CID,FID, Tend(condition2))dC(t)dt t i
Trang 22Trong đó:
Tbegin(condition1) : Thời gian bắt đầu tiến trình
Tend(condition2) : Thời gian tiến trình hoàn tất xử lý
CID : Thời gian ước tính của tiến trình (số mẫu thời gian)
Mỗi chỉ thị cơ sở có một thời gian thực thi cố định phụ thuộc vào phần cứng Như vậy, mỗi tiểu trình thực hiện một công việc được viết bằng một nhóm các chỉ thị (hàm) sẽ có thời gian thực hiện là cố định, them vào đó còn có thời gian dung để khởi tạo tiểu trình, kết thúc tiểu trình dẫn đến thời gian thực hiện công việc đó sẽ lớn hơn thời gian thực thụ thực hiện tiểu trình Câu hỏi đặt ra là làm thế nào những công việc có thể thực thi một cách hoàn chỉnh trong thời gian bị hạn chế Câu trả lời
đó là cơ chế điều phối quá trình được xem xét ở phần sau
1.3.2 Các hệ thống thời gian thực
Các RTS thường được phân thành hai loại chính tùy thuộc vào ràng buộc thời gian: Hệ thống thời gian thực mềm và Hệ thống thời gian thực cứng
Hệ thống thời gian thực mềm: đó là hệ thống mà thời gian trả lời cho các yếu
tố kích thích là quan trọng, tuy nhiên trong trường hợp ràng buộc bị vi phạm, tức là thời gian trả lời của hệ thống vượt quá giới hạn trễ cho phép (deadlines) hoặc nói cách khác đó là giới hạn thời gian không thỏa mãn tính đúng đắn của chương trình, trong trường hợp đó hệ thống vẫn cho phép tiếp tục hoạt động bình thường, không quan tâm đến các tác hại do sự vi phạm gây ra (thường thì ảnh hưởng của các tác hại không đáng kể)
Đối với hệ thống thời gian thực cứng: người ta quan tâm khắc khe đến các hậu quả do sự vi phạm giới hạn thời gian gây ra, vì những hậu quả này có thể là rất tồi tệ, ảnh hưởng hết sức nghiêm trọng lên hoạt động chung, gây thiệt hại về vật chất hoặc có những ảnh hưởng xấu đến đời sống con người
Ràng buộc thời gian thực cứng được mô tả chặc chẽ hơn trong thực thi của
hệ thống so với thời gian thực mềm, do đó các hệ thống cũng khó khăn hơn khi đưa
ra để phát triển phần cứng và phần mềm Hầu hết các RTS bao gồm tổng hợp các hoạt động đó là khóa cơ bản hoặc sự tương tác cơ bản của cả ràng buộc thời gian cứng và thời gian mềm
Trang 23Trong các hệ thống thời gian thực, các thao tác phải được xác định biên bằng các thời điểm tác động của các ngắt thời gian, nghĩa là có thể đoán trước được trường hợp xấu nhất trong việc đáp ứng thực tế có thể có, thực tế thì có nhiều RTS bao gồm cả hai loại mềm (Soft) và cứng (Hard) Trong cả hai loại trên, máy tính thường can thiệp trực tiếp hoặc gián tiếp đến các thiết bị vật lý để kiểm soát cũng như điều khiển sự hoạt động của thiết bị Đứng trên góc độ phân tích, người ta thường chia các RTS ra làm hai loại sau:
Hệ thống nhúng: Bộ vi xử lý điều khiển là một phần trong toàn bộ thiết bị,
nó được sản xuất trọn gói từ yếu tố cứng đến yếu tố mềm từ nhà máy, người sử dụng không biết về chi tiết của nó và chỉ sử dụng thông qua các nút điều khiển, các bảng số Với chủng loại hệ thống này, ta sẽ không thấy được những thiết bị như trong máy tính bình thường như bàn phím, màn hình mà thay vào đó là các nút điều khiển, các bảng số, đèn tín hiệu hay các màn hình chuyên dụng đặc trưng cho
từng hệ thống Máy giặt là một ví dụ, người sử dụng chỉ việc bấm nút chọn chương
trình giặt, xem kết quả qua hệ thống đèn hiệu, Bộ vi xử lý trong hệ thống nhúng
đã được lập trình trước và gắn chặt vào ngay từ khi sản xuất và không thể lập trình lại Những chương trình như vậy chạy độc lập, không có sự giao tiếp với hệ điều hành cũng như không cho phép người sử dụng can thiệp vào
Loại thứ hai là bao gồm những hệ thống có sự can thiệp của máy tính thông thường Thông qua máy tính ta hoàn toàn có thể kiểm soát cũng như điều khiển mọi hoạt động của thiết bị phần cứng của hệ thống Những chương trình điều khiển kiểu dạng trên có rất nhiều loại, phục vụ cho nhiều mục đích khác nhau và có thể được viết lại cho phù hợp với yêu cầu thực tế Hiển nhiên loại hệ thống như vậy hoạt động được phải cần một HĐH điều khiển máy tính, HĐH phải có khả năng nhận biết được thiết bị phần cứng, có khả năng hoàn tất công việc trong giới hạn thời gian nghiêm ngặt và phải là HĐH hỗ trợ xử lý thời gian thực
Trang 242.1 Giới thiệu UML
Những năm đầu của thập kỷ 90 có rất nhiều phương pháp phân tích, thiết kế hệ thống hướng đối tượng và cùng với chúng là các ký hiệu riêng cho từng phương pháp
Số lượng các phương pháp trong khoảng từ 10 đã lên đến gần 50 trong những năm từ
1989 đến 1994 Ba phương pháp phổ biến nhất là OMT [James Rumbaugh], Booch91 [Grady Booch] và OOSE [Ivar Jacobson] Mỗi phương pháp đều có những điểm mạnh
và yếu Như OMT mạnh trong phân tích và yếu ở khâu thiết kế, Booch91 thì mạnh ở thiết kế và yếu ở phân tích OOSE mạnh ở phân tích các ứng xử, đáp ứng của hệ thống
mà yếu trong các khâu khác
Do các phương pháp chưa hoàn thiện nên người dùng rất phân vân trong việc chọn ra một phương pháp phù hợp nhất để giải quyết bài toán của họ Hơn nữa, việc các ký hiệu khác nhau của các phương pháp đã gây ra những sự mập mờ, nhầm lẫn khi mà một ký hiệu có thể mang những ý nghĩa khác nhau trong mỗi phương pháp
Ví dụ như một hình tròn được tô đen biểu hiện một bội số (multiplicity) trong OMT, lại là một kết hợp (aggregation) trong Booch Thời kỳ này còn được biết đến với tên gọi là cuộc chiến giữa các phương pháp Khoảng đầu năm 94, Booch đã cải tiến phương pháp của mình trong đó có ứng dụng những ưu điểm của các phương
Trang 25pháp của Rumbaugh và Jacobson Tương tự Rumbaugh cũng cho đăng một loạt các bài báo được biết đến với tên gọi phương pháp OMT-2 cũng sử dụng nhiều ưu điểm của phương pháp của Booch Các phương pháp đã bắt đầu hợp nhất, nhưng các kí hiệu sử dụng ở các phương pháp vẫn còn nhiều điểm khác biệt
Cuộc chiến này chỉ kết thúc khi có sự ra đời của UML Đó là do có sự hợp nhất các cách kí hiệu của Booch, OMT và Objectory cũng như các ý tưởng tốt nhất của một số phương pháp khác như hình vẽ sau:
Bằng cách hợp nhất các kí hiệu sử dụng trong khi phân tích, thiết kế của các phương pháp đó, UML cung cấp một nền tảng chuẩn trong việc phân tích thiết kế
Có nghĩa là các nhà phát triển vẫn có thể tiến hành theo phương pháp mà họ đang
sử dụng hoặc là có thể tiến hành theo một phương pháp tổng hợp hơn (do thêm vào những bước ưu điểm của từng phương pháp) Nhưng điều quan trọng là các ký hiệu giờ đây đã thống nhất và mỗi ký hiệu chuẩn của tổ chức OMG vào tháng 7-1997 UML là một ngôn ngữ đặc tả, trực quan, cấu trúc và sưu liệu để tạo ra các hệ thống phần mềm, cũng như các mô hình doanh nghiệp và các hệ thống phần mềm khác UML mô tả một tập hợp thực hành thiết kế tốt nhất đã được chứng minh thành công trong các mô hình hệ thống lớn và phức tạp
UML cung cấp cho các nhà phân tích thiết kế các hệ thống hướng đối tượng cách hình dung ra những hệ thống phần mềm, mô hình hóa các tổ chức nghiệp vụ sử
Hình 2.1 Xây dựng hợp nhất các kí hiệu vào trong mô hình UML
Trang 26dụng các hệ thống phần mềm UML là hệ ký hiệu lập mô hình chuẩn công nghiệp cho các hệ thống hướng đối tượng và là nền tảng hàng đầu để nhanh chóng phát triển ứng dụng UML được sử dụng để hiển thị, đặc tả, tổ chức, xây dựng và làm tài liệu các vật phẩm của quá trình phát triển phần mềm hướng đối tượng, đặc biệt là phân tích, thiết kế dưới dạng các báo cáo, biểu đồ, bản mẫu hay các trang Web, v.v
2.1.1 Mục đích của UML
Chúng ta xây dựng mô hình của những hệ thống phức tạp bởi vì chúng ta không thể lĩnh hội một lúc toàn bộ hệ thống đó Hệ thống càng phức tạp thì việc xây dựng mô hình càng quan trọng Xây dựng mô hình cho phép người thiết kế thấy được bức tranh tổng quan của hệ thống, thấy được các thành phần của hệ thống tương tác với nhau như thế nào hơn là việc sa lầy vào chi tiết bên trong của các thành phần đó Việc lập mô hình không chỉ dành cho các hệ thống lớn Khi xây dựng mô hình trong UML chúng ta sẽ đạt được các mục đích sau:
Mô hình được các hệ thống (không chỉ hệ thống phần mềm) và sử dụng được tất cả các khái niệm hướng đối tượng một cách thống nhất
Cho phép đặc tả, hỗ trợ để đặc tả tường minh (trực quan) mối quan hệ giữa các khái niệm cơ bản trong hệ thống, đồng thời mô tả được mọi trạng thái hoạt động của hệ thống đối tượng Nghĩa là cho phép mô tả được cả mô hình tĩnh lẫn mô hình động một cách đầy đủ và trực quan
Tận dụng được những khả năng sử dụng lại và kế thừa ở phạm vi diện rộng để xây dựng được những hệ thống phức tạp và nhạy cảm như: các hệ thống động, các hệ thống thời gian thực,
Tạo ra những ngôn ngữ mô hình hóa sử dụng được cho cả người lẫn máy tính Ngoài ra còn có những mục đích sau:
Đưa ra cho người sử dụng một công cụ sẵn sàng để dùng, một ngôn ngữ mô hình trực quan diễn cảm để phát triển và thay đổi những mô hình đầy ý nghĩa
Cung cấp những đặc tính kỹ thuật mở rộng và chuyên môn hóa để mở rộng những khái niệm cốt lõi
Hỗ trợ những đặc tả độc lập với các ngôn ngữ lập trình riêng và qui trình phát triển
Cung cấp nội dung cơ bản để hiểu được ngôn ngữ mô hình
Khuyến khích sự phát triển thị trường những công cụ đối tượng
Trang 27 Hỗ trợ những khái niệm phát triển mức cao hơn như: công nghệ thành phần, xử
lý phân tán, cơ cấu và khả năng thực thi, các mối cộng tác và những kiểu mô hình
Kết hợp thực hành tốt nhất
Thông qua việc mô hình hóa, chúng ta thu hẹp bài toán mà chúng ta đang nghiên cứu bằng cách chỉ tập trung vào một khía cạnh tại một thời điểm Điều này cũng giống như phương pháp “chia để trị” mà Edsger Dijkstra đã đưa ra: “Giải quyết một vấn đề khó bằng cách chia nó thành những bài toán nhỏ hơn mà bạn có thể giải quyết được”
Mô hình hóa là việc đơn giản hóa thực tế, loại bỏ những điểm thứ yếu, tuy nhiên ta phải chắc chắn rằng không bỏ sót một chi tiết quan trọng nào
Tùy thuộc vào đặc điểm tự nhiên của hệ thống, mỗi mô hình có thể tập trung vào những mặt khác nhau của hệ thống Như hệ thống tập trung vào dữ liệu thì các
mô hình về phần thiết kế tĩnh của hệ thống sẽ được chú ý hơn Trong hệ thống giao diện người dùng thì phần tĩnh và động của UC sẽ là quan trọng Trong hệ thống thời gian thực, các tiến trình động là quan trọng Cuối cùng, trong hệ thống phân tán dựa trên cở sở Web thì các mô hình về thực thi và triển khai là quan trọng nhất
2.1.2 Các thành phần của UML
2.1.2.1 Mô hình cấu trúc trong UML
Mô hình cấu trúc là một cách thức mô tả dữ liệu của hệ thống đã được sử
dụng và tạo ra, ví dụ: con người, nơi ở, hoặc những thông tin gì đó thu được và
chúng có quan hệ với nhau Mô hình cấu trúc được đưa vào sử dụng ở qui trình lặp
lại trong những mô hình phát triển nhiều chi tiết Mục đích chính của mô hình cấu trúc là khởi tạo từ vựng mà đã được dùng ở nhà phân tích và người sử dụng Mô hình cấu trúc mô tả những sự vật, quan niệm hoặc khái niệm mà các đối tượng đó thuộc trong phạm vi bài toán ứng dụng
UML sẽ cho ta biết cách tạo ra và đọc hiểu được một mô hình được cấu trúc tốt, nhưng nó không cho ta biết những mô hình nào nên tạo ra và khi nào tạo ra chúng Đó là nhiệm vụ của quy trình phát triển phần mềm
(a) Lớp (Class)
(i) Lớp, thuộc tính và phương thức
Là một tập hợp các đối tượng có cùng một tập thuộc tính, các hành vi, các mối quan hệ với những đối tượng khác Lớp chính là cơ chế được sử dụng để phân loại các
Trang 28đối tượng của một hệ thống Dưới đây là ký hiệu và biểu tượng biểu diễn lớp trong UML
Ví dụ: ký hiệu và biểu tượng lớp Nhanvien trên UML
(ii) Các mối quan hệ giữa các lớp
Quan hệ là sự kết nối ngữ nghĩa giữa các lớp đối tượng, trong đó thể hiện mối liên quan về các thuộc tính, các hành vi của chúng với nhau trong hệ thống Để một đối tượng gởi thông điệp đến một đối tượng khác, thì chúng phải liên quan với nhau theo một vài quan hệ/cách thức nào đó Giữa các lớp có năm quan hệ cơ bản:
Quan hệ kết hợp
Các mối quan hệ kết hợp là một mô tả về một nhóm các liên kết có chung cấu trúc và ngữ nghĩa Bao gồm hai loại quan hệ kết hợp: loại quan hệ kết hợp có hướng và quan hệ kết hợp không điều hướng
Quan hệ kết tập
Mối quan hệ kết tập là một dạng của quan hệ kết hợp, nhưng là dạng mạnh hơn, có quan hệ kết tập có hướng và không hướng, nó thể hiện quan hệ giữa cái tổng thể và cái bộ phận Kết tập thường biểu diễn cho quan hệ “có một”, “là bộ phận của”, hoặc “bao gồm”, thể hiện mối quan hệ một lớp tổng thể có, gồm, chứa hay liên kết với một hoặc nhiều lớp thành phần
Quan hệ tổng quát hóa, kế thừa
+employer
+employee
Trang 29Tổng quát hóa và chuyên biệt hóa là hai cách nhìn dưới lên và trên xuống về
sự phân cấp các lớp, mô tả khả năng quản lý cấp độ phức tạp của hệ thống bằng cách trừu tượng hóa các lớp
Tổng quát hóa đi từ các lớp dưới lên sau đó hình thành lớp tổng quát (lớp trên, lớp cha), tức là cây cấu trúc các lớp từ lá đến gốc
Chuyên biệt hóa là quá trình ngược lại của tổng quát hóa, nó cho phép tạo ra các lớp dưới (lớp con) khác nhau của lớp cha
Quan hệ phụ thuộc
Quan hệ phụ thuộc là một mối quan hệ liên kết giữa hai phần tử trong mô hình, trong đó thể hiện sự thay đổi trong một phần tử sẽ kéo theo sự thay đổi của phần tử kia Quan hệ phụ thuộc thường là quan hệ một chiều, thể hiện một lớp phụ thuộc vào lớp khác
Hiện thực hóa
Quan hệ hiện thực hóa thể hiện sự kết nối giữa các lớp và giao diện Quan hệ này thường được sử dụng với các giao diện và những lớp làm nhiệm vụ cài đặt các dịch vụ (phương thức) đã được khai báo trong các giao diện
(iii) Các phần tử của biểu đồ lớp
Biểu đồ lớp là mô tình tĩnh thể hiện các lớp và mối quan hệ giữa các lớp trong hệ thống với nhau Biểu đồ lớp mô tả các lớp bao gồm cả hành vi và trạng thái của chúng với những mối quan hệ giữa các lớp Biểu đồ lớp giúp người phát triển phần mềm quan sát và lập kế hoạch cấu trúc hệ thống trước khi lập trình Nó đảm bảo rằng hệ thống được thiết kế tốt ngay từ đầu
Biểu đồ lớp có chứa nhiều loại lớp khác nhau với những chức năng khác nhau:
Lớp thông thường
Lớp tham số hóa là lớp được sử dụng để tạo ra một họ các lớp khác, nó thể hiện quyết định thiết kế về các giao thức trao đổi giữa các lớp Lớp tham số hóa chủ yếu được sử dụng trong mô hình cài đặt
Lớp hiện thực là loại lớp tham số hóa mà đối số của nó là một kiểu trị cụ thể, như vậy các lớp tham số hóa là khuôn để tạo ra các lớp hiện thực
Trang 30 Lớp tiện ích là tập hợp các thao tác được sử dụng nhiều nơi trong hệ thống, chúng được tổ chức thành một lớp để các lớp khác cùng sử dụng
Giao diện là tập những thao tác quan sát được từ bên ngoài của một lớp và/hoặc một thành phần và không có nội dung cài đặt của riêng lớp đó
Siêu lớp là lớp để tạo ra các lớp khác, nghĩa là thể hiện của nó là lớp chứ không phải là đối tượng
Trang 312.1.2.2 Mô hình hành vi
(a) Biểu đồ tương tác
Trong UML có hai loại biểu đồ được xếp vào loại biểu đồ tương tác là biểu
đồ tuần tự và biểu đồ cộng tác Biểu đồ lớp dùng để mô hình cấu trúc tĩnh của hệ thống; còn biểu đồ tương tác dùng để mô hình các khía cạnh động của hệ thống Biểu đồ tương tác biểu diễn cách tương tác giữa các đối tượng để thực hiện một số chức năng ở mức cao mà một đối tượng độc lập không thể thực hiện được Biểu đồ cộng tác biểu diễn sự tương tác trong ngữ cảnh của các vai trò lớp tham gia vào tương tác và biểu diễn mối quan hệ cấu trúc giữa các lớp bằng cách dùng các vai trò kết hợp Biểu đồ tuần tự được dùng để biểu diễn sự tương tác giống như biểu đồ cộng tác, nhưng nhấn mạnh tính thứ tự của thông điệp theo thời gian
Biểu đồ tuần tự
Biểu đồ tuần tự là một trong hai kiểu biểu đồ tương tác, minh họa các đối tượng tham gia trong các UC và sự gởi nhận thông điệp giữa chúng trong một UC Biểu đồ tuần tự là mô hình động thể hiện rõ ràng sự tuần tự của thông điệp, nó nhấn mạnh tính thời gian của hành động giữa các tập đối tượng, vì vậy nó hỗ trợ hiểu biết chính xác đặc tả thời gian thực và các UC phức tạp
Biểu đồ còn là phương tiện biểu diễn tương tác dưới dạng hình ảnh, biểu đồ tuần tự
có hai đặc điểm chính: Mô tả mối quan hệ cấu trúc giữa các vai trò lớp hoặc giữa các đối tượng dưới dạng vai trò kết hợp hoặc liên kết nhằm phản ánh cấu trúc của biểu đồ lớp và mô tả thứ tự của tương tác bằng cách đánh số thứ tự các thông điệp Các biểu đồ tuần tự biểu diễn một số thông tin tương tự, nhưng không phải tất cả Chúng biểu diễn các thể hiện đóng vai trò được định nghĩa trong cộng tác; chúng không biểu diễn các quan hệ cấu trúc giữa các đối tượng mà biểu diễn thứ tự của tương tác một cách trực quan bằng cách dùng trục đứng của biểu đồ để biểu diễn thời gian
Các thành phần của biểu đồ tuần tự
Biểu đồ trình tự mô tả sự trao đổi thông điệp giữa các đối tượng trình tự theo thời gian, thông điệp được gửi và nhận bởi các đối tượng đang hoạt động trong hệ thống Biểu đồ trình tự được thể hiện theo hai trục:
- Trục dọc trên xuống chỉ thời gian xảy ra các sự kiện, hay sự truyền thông
điệp, được biểu diễn bằng các đường gạch - gạch thẳng đứng bắt đầu từ đỉnh đến
Trang 32đáy của biểu đồ, đó là sự tồn tại của đối tượng trong chuỗi tương tác Trong khoảng thời gian này, đối tượng được thực thể hóa, sẵn sàng để gửi và nhận thông điệp -Trục ngang từ trái qua phải là dãy các đối tượng tham gia vào tham gia vào việc
trao đổi các thông điệp với nhau theo chiều ngang, có thể có cả các tác nhân
Đối tượng được biểu diễn bằng hình chữ nhật trong đó có tên đối tượng cụ thể và/hoặc tên lớp cùng được gạch dưới (hoặc tên lớp được gạch dưới biểu diễn cho một đối tượng bất kỳ của lớp đó)
đối tượng trong biểu đồ phải được sắp xếp sao cho đơn giản nhất có thể để dễ quan sát Thời gian thực hiện một thông điệp của một đối tượng được biểu diễn bằng
hình chữ nhật hẹp dọc theo trục thẳng đứng của đối tượng đó
Mỗi thông điệp đều có tên gọi thể hiện được ý nghĩa của thông tin cần gửi và các tham số về dữ liệu liên quan, được ghi kèm với mũi tên ký hiệu tương ứng cho kiểu thông điệp (loại đơn, được đồng bộ hoá hay dị bộ)
Quan sát biểu đồ tuần tự mô tả UC “Gọi điện thoại” Hình 2.2
Hai tác nhân là Nguoigoi (Người gọi) và Nguoinghe (người nghe) Hệ thống nhận được các sự kiện vào được ký hiệu là các lời gọi hàm: nhac tai nghe (nhấc tai nghe), quay so (quay số), tra loi dien thoai (trả lời điện thoại) và dat tai nghe xuong
(đặt tai nghe xuống)
Trình tự của các sự kiện có thể giải thích như sau: Nguoigoi nhấc tai nghe, quay số và đợi tín hiệu trả lời, Nguoinghe nhận tín hiệu và trả lời; Nguoigoi và
Nguoinghe trao đổi thông tin cho nhau, UC “Gọi điện thoại” sẽ kết thúc khi Nguoi goi
hoặc Nguoinghe đặt tai nghe xuống
Trang 33 Biểu đồ cộng tác
Biểu đồ cộng tác tương tự như biểu đồ tuần tự, về cơ bản nó cũng cung cấp hướng nhìn động của hệ thống hướng đối tượng Một biểu đồ cộng tác cũng là một biểu đồ đối tượng thể hiện những mối quan hệ chuyển nhận thông điệp, nó được sử dụng để diễn tả mô hình qui trình như là một phần hoạt động trọng tâm của các lớp cộng tác
Các biểu đồ cộng tác cũng nêu những thông tin tương tự như các biểu đồ tuần tự, nhưng nó nhấn mạnh đến các luồng thông điệp từ tập hợp của đối tượng trong khi đó trọng tâm của các biểu đồ tuần tự là thứ tự các thông điệp gởi nhận, bởi vậy để nắm được khái quát sự tương tác giữa các đối tượng chúng ta nên sử dụng biểu đồ cộng tác; để nắm được thời gian chuyển nhận thông điệp nên sử dụng biểu
đồ tuần tự Trong một vài trường hợp, sẽ cần sử dụng cả hai loại biểu đồ để nắm bắt
chính xác khía cạnh động của hệ thống Hình 2.3 Biểu đồ cộng tác UC “Gọi điện
thoại”, biểu đồ đưa ra thông tin tương tự biểu đồ Hình 2.2
1: Nhac Tai Nge
4:Dat Tai Nghe 5:Dat Tai Nge
Hình 2.2 Sơ đồ tuần tự mô tả ca sử dụng “Gọi điện thoại”
Trang 34(b) Biểu đồ trạng thái
Một công cụ tương đối mạnh mẽ trong lĩnh vực thiết kế RTS là dùng biểu đồ trạng thái Biểu đồ trạng thái mô tả các trạng thái cũng như quá trình biến đổi giữa các trạng thái đó trong một hệ thống cùng với các sự kiện được kích hoạt, các điều kiện ràng buộc
Biểu đồ trạng thái cho phép nhìn hệ thống dưới những mức độ chi tiết khác nhau Biểu đồ trạng thái có thể được phân rã xuống mức trạng thái thấp hơn hoặc là liên kết với mức trạng thái cao hơn, sự kết hợp này cho phép nhìn thấy giao tiếp giữa các lớp trạng thái khác nhau trong hệ thống
Biểu đồ trạng thái giống như bản thiết kế chi tiết những hành vi động có thể xảy ra trong hệ thống, do vậy nó giúp đọc hiểu và nhanh chóng nắm bắt được quá trình hoạt động của từng đối tượng trong UC, phát huy tính nhất quán trong làm việc nhóm cũng như tái sử dụng hệ thống có sẵn
Biểu đồ trạng thái thể hiện chu kỳ hoạt động của đối tượng, các hệ thống con và của
cả hệ thống Biểu đồ trạng thái mô tả:
Các trạng thái: mà các đối tượng có thể có
Các sự kiện: các thông điệp nhận được, các lỗi có thể xuất hiện, điều kiện nào đó
có thể trở thành đúng (true), khoảng thời gian đã qua, v.v tác động lên trạng thái để
làm biến đổi trạng thái
Biểu đồ này là giải pháp tốt để mô hình hoá hành vi động của các lớp đối tượng Trong một dự án, không nhất thiết phải tạo ra các biểu đồ trạng thái cho tất
cả các lớp Tuy nhiên, đối với những lớp có nhiều hành vi động, có nhiều trạng thái
Hê Thông 1:
Trang 35hoạt động khác nhau thì biểu đồ trạng thái là hữu ích, giúp chúng ta hiểu rõ hệ thống hơn
Hình 2.4 Minh họa các trạng thái trong lớp “Hethong”
2.1.3 Kiến trúc của hệ thống
Khi xem xét một hệ thống, chúng ta cần xây dựng các mô hình từ những hướng nhìn (View - khía cạnh) khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống, với các vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau
UML xét hệ thống trên 5 khía cạnh:
Hình 2.5 Kiến trúc của hệ thống
tro chuyen
nhan so goi entry/ nhanso
[ nguoi nghe nhac may ]
[ nhan so khong dung, nguoi nghe khong nhac may ]
ket thuc exit/ dat tai nghe xuong
Hình 2.4 Sơ đồ trạng thái của lớp
Trang 362.1.3.1 Kiểu xem UC
Bao gồm các UC mô tả ứng xử của hệ thống theo cách nhìn nhận của người dùng, người phân tích hệ thống Nó không đưa ra cách cấu trúc của hệ thống phần mềm, nó chỉ dùng để nhìn nhận một cách tổng quát những gì mà hệ thống sẽ cung cấp, thông qua đó người dùng có thể kiểm tra xem các yêu cầu của mình đã được đáp ứng đầy đủ hay chưa hoặc có chức năng nào của hệ thống là không cần thiết Biểu đồ dùng đến là biểu đồ UC
2.1.3.2 Kiểu xem Lôgic
Kiểu xem lôgic được dùng để xem xét các phần tử bên trong hệ thống và mối quan hệ, sự tương tác giữa chúng để thực hiện các chức năng mong đợi của hệ thống
2.1.3.3 Kiểu xem tiến trình
Kiểu xem tiến trình chia hệ thống thành các tiến trình (process) và luồng (thread), mô tả việc đồng bộ hóa và các xử lý đồng thời Kiểu xem này dùng cho người phát triển và tích hợp hệ thống, bao gồm các biểu đồ tuần tự, biểu đồ cộng tác, biểu đồ hoạt động và biểu đồ trạng thái
2.2 Các giai đoạn phát triển phần mềm với UML
Các giai đoạn phát triển hệ thống hay còn được gọi là vòng đời phát triển hệ thống (SDLC) bao gồm bốn giai đoạn cơ bản: Dự kiến kế hoạch, Phân tích, Thiết
kế, và Triển khai Các dự án khác nhau có thể nhấn mạnh các phần khác nhau của SDLC hoặc tiếp cận SDLC theo các cách khác nhau, nhưng tất cả các dự án đều có đầy đủ bốn giai đoạn trên Mỗi một giai đoạn là việc phân tích chính bản thân giai đoạn đó thành một chuỗi các bước, dựa vào các kỹ thuật mà đưa ra khả năng thực hiện (xác định rõ ràng tài liệu và tập tin để giúp nắm bắt nội dung dự án) Có hai điểm quan trọng phải hiểu về SDLC Thứ nhất, phải xác định được ý nghĩa từng giai đoạn và từng bước trong dự án hệ thống thông tin và những công nghệ để thực hiện Thứ hai, phải hiểu rằng SDLC là một qui trình cải tiến từng bước Để thực hiện được thì trong giai đoạn phân tích phải cung cấp được các ý kiến tổng quát về một hệ thống mới Phải đưa được thông tin đầu vào trong giai đoạn thiết kế, sau đó cải tiến những thông tin đó để mô tả chính xác chi tiết đối với hệ thống sẽ được xây dựng Để thực hiện được giai đoạn triển khai phải đưa ra một hệ thống thực tế Mỗi giai đoạn là một sự cải tiến và thêm chi tiết vào những giai đoạn đã hoàn thành trước đó
Trang 372.2.1 Xác lập yêu cầu (Dự kiến kế hoạch)
Đây là một qui trình cơ bản để hiểu tại sao một hệ thống thông tin nên được xây dựng và xác định bằng cách nào mà một đội dự án có thể xây dựng được nó Dùng phương pháp phân tích UC để nắm bắt các yêu cầu của khách hàng, phân tích khả năng đáp ứng và tính khả thi của hệ thống Đây là một bước quan trọng và sự thành công của bước này sẽ quyết định sự thành công của dự án Bởi vì một hệ thống dù có xây dựng tốt đến đâu nhưng không đáp ứng được những nhu cầu của khách hàng hệ thống sẽ thất bại Giai đoạn này gồm 2 bước: Khởi tạo dự án và Quản lý dự án
2.2.2 Giai đoạn phân tích
Giai đoạn phân tích trả lời những câu hỏi “Ai sẽ sử dụng hệ thống?”, “Hệ thống sẽ làm gì?” “Ở đâu và khi nào hệ thống sẽ được sử dụng?” Bước đầu tiên trong giai đoạn này là phân tích hệ thống, đội dự án nghiên cứu tỉ mỉ hệ thống hiện tại (nếu có), xác định cơ hội triển khai và phát thảo ý niệm chung cho hệ thống mới Sau khi đã biết được người dùng muốn gì, chúng ta tập trung mô tả lại hệ thống, các khái niệm chính trong lĩnh vực của hệ thống cần xây dựng, trong hướng đối tượng gọi là các lớp lĩnh vực (domain class), mối quan hệ và sự tương tác giữa các đối tượng đó Mục đích chính là hiểu hệ thống hoạt động như thế nào? Bước kế tiếp là tổng hợp các thông tin hoặc tổng hợp các yêu cầu cho hệ thống, thiết kế mô hình UC: xác định các hoạt động của hệ thống để nhóm lại trong những UC chung; tiếp đến xây dựng các mô hình cấu trúc gồm các lớp, biểu đồ lớp; bước cuối cùng là xây dựng mô hình hành vi có thể có trong từng UC, từng lớp đối tượng
2.2.3 Giai đoạn thiết kế
Giai đoạn này mô tả làm cách nào để hệ thống sẽ hoạt động, về mặt phần cứng, phần mềm, và các thiết bị mạng; giao diện người sử dụng, chương trình cụ thể,
cơ sở dữ liệu và những gì cần thiết Mặc dù quyết định chiến lược về hệ thống để phát triển nằm trong giai đoạn phân tích, nhưng các bước trong giai đoạn thiết kế xác định chính xác cách thức hệ thống sẽ hoạt động Ở bước này sử dụng kết quả thu được ở các bước trước để mở rộng thành một giải pháp kỹ thuật Tập trung mô tả cấu trúc bên trong của hệ thống, sự tương tác của tập hợp các đối tượng để đạt được những chức năng mà hệ thống cần có
Bước đầu tiên của giai đoạn thiết kế là triển khai chiến lược thiết kế đó là: Công ty có phát triển hệ thống hay không? Công ty sẽ mua những gói phần mềm có