Theo dịng phát triển của cơng nghệ cơng tin, phương pháp lập trình đã tiến hố từ lập trình khơng có cấu trúc lên lập trình có cấu trúc và tới nay là lập trình hướng đối tượng. Phương pháp phân tích, thiết kế phần mềm cũng đi theo các bước tiến hố này. Trước đây, người ta phân tích, thiết kế phần mềm theo kiểu hướng thủ tục (procedure-oriented) hoặc hướng dữ liệu (data-
oriented). Theo phương pháp này, phần mềm cần xây dựng được chia thành giải thuật và cấu trúc dữ liệu. Trong q trình phân tích, giải thuật được phân chia thành các giải thuật con đơn giản hơn, cấu trúc dữ liệu lớn được chia thành những cấu trúc nhỏ hơn. Quá trình tương tự cũng được tiến hành trong quá trình thiết kế.
Phương pháp phân tích, thiết kế hướng thủ tục hoặc hướng dữ liệu có ưu điểm đơn giản, nhanh chóng tạo ra kết quả (do tiến hành theo kiểu từ trên xuống) nhưng kết quả tạo ra không phản ánh bản chất của thể giới thực dẫn
© 2005, Hồng Minh Sơn đến cứng nhắc, khó thay đổi khi yêu cầu đặt ra thay đổi, khó mở rộng khi hệ thống phát triển.
Phương pháp phân tích, thiết kế phần mềm tiên tiến hiện nay là hướng đối tượng (object-oriented), trong đó khối cơ bản để xây dựng nên phần mềm là ₫ối
tượng hay lớp. Nói một cách đơn giản, đối tượng là sự phản ánh thế giới tự nhiên xung quanh. Ví dụ nếu trong hệ thống điều khiển có các thiết bị vào/ra số/tương tự như AI, AO, DI, DO thì trong phần mềm cũng có các lớp AI, AO, DI, DO ; trong hệ thống điều khiển có khâu điều khiển PID thì trong phần mềm cũng có lớp PID,...
Trong các hệ thống điều khiển, các đối tượng có thể đại diện các thành phần hệ thống như:
• Các thuật tốn điều khiển • Xử lý sự kiện và báo động • Xử lý mệnh lệnh
• Quan sát và chẩn đốn • Cấu hình vào/ra
• Mơ phỏng
• Thơng tin thiết kế
Việc trừu tượng hố thế giới tự nhiên thành các lớp đối tượng như vậy được gọi là mơ hình hố hướng đối tượng. Dựa trên mơ hình đối tượng thu được, phương pháp phân tích, thiết kế phần mềm hướng đối tượng sẽ bổ sung thêm các liên kết và lớp đối tượng mới, tinh chỉnh lại,... để tạo ra một mơ hình đối tượng chi tiết của phần mềm. Cuối cùng, người lập trình sử dụng một ngơn ngữ lập trình nào đó (khơng nhất thiết phải là ngôn ngữ hướng đối tượng) thể hiện mơ hình đối tượng chi tiết thành mã nguồn. Ưu điểm lớn nhất của phân tích, thiết kế phần mềm hướng đối tượng không phải nằm ở chỗ tạo ra chương trình nhanh tốn ít cơng sức, mà nằm ở chỗ nó gần với thực tế và do đó thúc đẩy việc tái sử dụng lại những thành quả đã xây dựng được như mã lệnh hay bản thiết kế.