Phát triển phần mềm (Software Development) ngày càng trở nên phức tạp. Một số lý do thường được kể đến: Những người phát triển phần mềm rất khó hiểu đúng những gì người dùng cần, khó nhận thức thấu đáo các mối quan hệ tiềm ẩn và phức tạp cần được thể hiện chính xác trong các ứng dụng lớn. Yêu cầu thường được miêu tả bằng văn bản, dài dòng, khó hiểu, nhiều khi thậm chí mâu thuẫn, khó định lượng chính xác hiệu suất của thành phẩm và thỏa mãn chính xác yêu cầu của người dùng. Yêu cầu của người dùng thường thay đổi trong thời gian phát triển. Chọn lựa phần cứng và phần mềm thích hợp cho giải pháp là một trong những thách thức lớn đối với người thiết kế Phần mềm ngoài ra cần có khả năng thích ứng và mở rộng. Phần mềm được thiết kế tốt là phần mềm đứng vững trước những biến đổi trong môi trường, dù từ phía người dùng hay từ phía công nghệ. Ví dụ phần mềm đã được phát triển cho một ngân hàng cần có khả năng tái sử dụng cho một ngân hàng khác với rất ít sửa đổi hoặc hoàn toàn không cần sửa đổi. Phần mềm thỏa mãn các yêu cầu đó được coi là phần mềm có khả năng thích ứng. Một phần mềm có khả năng mở rộng là phần mềm được thiết kế sao cho dễ phát triển theo yêu cầu của người dùng mà không cần sửa chữa nhiều.https://drive.google.com/drive/folders/1yLBzZ1rSQoNjmWeJTZ3WGQHg04L1 Link download: http://ebook.moet.gov.vn/resources/...O TRINH THIET KE PHAN MEM HUONG DOI TUONG.chm eBook có trong tuyển tập DVD Tin Học