6. Thiết kế thuật toán: Các cách thức (ph−ơng pháp xử lý) đ−ợc dùng để cung cấp cho các dịch vụ đ−ợc thiết kế chi tiết và đ−ợc đặc tả.
4.1.2.2. Thiết kế h−ớng đối t−ợng
Hệ thống đ−ợc nhìn nhận nh− một bộ các đối t−ợng (chứ không phải là một tập hợp các chức năng). Hệ thống đ−ợc phân tán, mỗi đối t−ợng có thông tin và trạng thái
của riêng nó. Đối t−ợng là một bộ các thuộc tính xác định trạng thái của đối t−ợng đó và các phép toán thực hiện trên đó. Mỗi đối t−ợng là một khách thể của một lớp mà lớp
đ−ợc xác định bởi thuộc tính và các phép toán của nó. Nó đ−ợc thừa kế từ một vài lớp đối t−ợng cấp cao hơn, sao cho định nghĩa nó chỉ cần nêu đủ các khác nhau giữa nó và các lớp cao hơn nó. Các đối t−ợng liên lạc với nhau chỉ bằng trao đổi các thông báo. Trong thực tế, hầu hết các liên lạc đ−ợc thực hiện giữa các đối t−ợng bằng cách nối đối t−ợng này với một thủ tục, mà thủ tục này kết hợp với một đối t−ợng khác.
Thiết kế h−ớng đối t−ợng dựa trên ý t−ởng che dấu thông tin. Gần đây theo cách thiết kế này, ng−ời ta đã phát triển nhiều hệ thống cấu tạo bởi nhiều thành phần độc lập và có t−ơng tác với nhau.
Sự thật, các hệ phần mềm lớn phức tạp đến mức mà ng−ời ta đã dùng các ph−ơng pháp tiếp cận khác nhau trong việc thiết kế các thành phần khác nhau trong hệ thống. Chẳng có một chiến l−ợc tốt nhất nào cho các dự án lớn. Các cách tiếp cận h−ớng chức năng và h−ớng đối t−ợng là bổ sung hỗ trợ cho nhau chứ không phải là loại bỏ nhau. Kỹ s− phần mềm sẽ chọn ra cách tiếp cận thích hợp nhất trong từng giai đoạn thiết kế. Nhìn ở mức tổng thể thì hệ thống nh− là một bộ các đối t−ợng (chứ không phải là một bộ các chức năng), cho nên ở mức trừu t−ợng cao thì cách tiếp cận h−ớng đối t−ợng là thích hợp hơn. Đến mức chi tiết thì một cách tự nhiên hơn nên xem chúng là các chức năng t−ơng tác giữa các đối t−ợng. Sau đó mỗi đối t−ợng lại đ−ợc phân giải thành các thành phần, tức là có thể xem nó nh− là một hệ con.
Rất nhiều hệ thống, đặc biệt là hệ thống thời gian thực đ−ợc nhúng (vào một hệ thiết bị vật chất có thực) đ−ợc cấu tạo nh− một hệ gồm một bộ các quá trình hoạt động song song và có liên lạc với nhau. Các hệ này th−ờng phải tuân theo các ràng buộc nghiêm ngặt về thời gian, mà các phần cứng th−ờng phản ứng t−ơng đối chậm, chỉ có cách tiếp cận nhiều bộ xử lý hoạt động song song mới có thể hoàn thành đ−ợc yêu cầu về thời gian.
Các ch−ơng trình tuần tự là dễ thiết kế, thực hiện và kiểm tra và thử nghiệm hơn là các hệ thống song song. Sự phụ thuộc về thời gian giữa các quá trình là khó hình thức hoá, khó khống chế và thử nghiệm.
Do đó, quá trình thiết kế nên đ−ợc xem nh− là một hoạt động gồm 2 giai đoạn:
Giai đoạn 1: Minh định cấu trúc thiết kế logic, cụ thể là các thành phần của hệ
thống và các mối quan hệ giữa chúng. Có thể dùng cách nhìn h−ớng chức năng hoặc cách nhìn h−ớng đối t−ợng.
Giai đoạn 2: Thực hiện cấu trúc đó trong dạng có thể thực hịên đ−ợc. Giai đoạn này đôi khi đ−ợc gọi là thiết kế chi tiết và đôi khi là lập trình. Chắc rằng sự quyết định về tính song song nên là ở giai đoạn này chứ không phải là các giai đoạn sớm hơn trong quá trình thiết kế.