Giáo trình Cơ sở Công nghệ Phần mềm: Thiết kế chương trình và Lập trình cấu trúc

Khám phá giáo trình cơ sở công nghệ phần mềm phần 2, cung cấp kiến thức chuyên sâu và ứng dụng thực tiễn trong lĩnh vực công nghệ phần mềm.

Người đăng

Ẩn danh
141
2
0

Phí lưu trữ

35 Point

Tóm tắt

I. Hướng dẫn toàn diện giáo trình cơ sở công nghệ phần mềm 2

Giáo trình cơ sở công nghệ phần mềm phần 2 tập trung vào các giai đoạn then chốt sau khi hoàn tất phân tích yêu cầu, bao gồm thiết kế, kiểm thử và bảo trì. Đây là phần kiến thức cốt lõi, chuyển đổi từ bản thiết kế lý thuyết sang một sản phẩm phần mềm hoàn chỉnh, hoạt động ổn định và có khả năng phát triển trong tương lai. Nội dung của phần này đi sâu vào các kỹ thuật và phương pháp luận hiện đại, giúp sinh viên và các kỹ sư phần mềm nắm vững quy trình tạo ra các sản phẩm chất lượng cao. Trọng tâm của học phần này là trang bị kỹ năng thực hành, từ việc mô hình hóa UML để trực quan hóa hệ thống, đến việc áp dụng các design patterns kinh điển để giải quyết các vấn đề thiết kế phổ biến. Không chỉ dừng lại ở việc tạo ra sản phẩm, giáo trình còn nhấn mạnh tầm quan trọng của việc đảm bảo chất lượng phần mềm (SQA) thông qua các chiến lược kiểm thử bài bản. Các khái niệm như kiểm thử hộp đen, kiểm thử hộp trắng được diễn giải chi tiết, giúp người học hiểu rõ cách xác minh và xác thực phần mềm một cách hiệu quả. Cuối cùng, giai đoạn bảo trì được xem xét như một phần không thể thiếu trong vòng đời phát triển phần mềm, bao gồm các hoạt động sửa lỗi, nâng cấp và thích ứng với môi trường thay đổi. Việc hiểu rõ các chủ đề này là nền tảng vững chắc để xây dựng các hệ thống phần mềm phức tạp, dễ bảo trì và mở rộng, đáp ứng yêu cầu ngày càng khắt khe của ngành công nghiệp.

1.1. Phạm vi cốt lõi của môn học công nghệ phần mềm

Phạm vi chính của môn học cơ sở công nghệ phần mềm phần 2 bao quát ba lĩnh vực trọng yếu: thiết kế, kiểm thử và bảo trì. Giai đoạn thiết kế tập trung vào việc xây dựng thiết kế kiến trúc tổng thể và thiết kế chi tiết cho từng module. Nội dung này giới thiệu các phương pháp thiết kế có cấu trúc và đặc biệt là thiết kế hướng đối tượng, sử dụng UML làm công cụ mô hình hóa chủ đạo. Giai đoạn kiểm thử trang bị các kỹ thuật để xác minh phần mềm có đáp ứng đúng đặc tả và yêu cầu hay không, bao gồm các phương pháp từ kiểm thử đơn vị đến kiểm thử hệ thống. Giai đoạn bảo trì phần mềm giải quyết các vấn đề sau khi sản phẩm đã được triển khai, đảm bảo phần mềm có thể hoạt động bền vững và thích ứng với các thay đổi. Đây là những kiến thức nền tảng trong đề cương chi tiết môn học.

1.2. Tầm quan trọng trong vòng đời phát triển phần mềm

Các giai đoạn được trình bày trong giáo trình cơ sở công nghệ phần mềm phần 2 đóng vai trò quyết định đến sự thành công của một dự án. Một thiết kế phần mềm tốt giúp giảm chi phí phát triển, dễ dàng mở rộng và bảo trì. Ngược lại, một thiết kế tồi có thể dẫn đến một hệ thống khó hiểu, khó sửa lỗi và tốn kém khi nâng cấp. Kiểm thử phần mềm là khâu then chốt để đảm bảo chất lượng, phát hiện sớm các lỗi tiềm ẩn, tránh gây thiệt hại về tài chính và uy tín khi sản phẩm đến tay người dùng. Cuối cùng, bảo trì phần mềm chiếm một phần lớn chi phí và nỗ lực trong toàn bộ vòng đời của sản phẩm, do đó việc hiểu và áp dụng quy trình bảo trì hiệu quả giúp kéo dài tuổi thọ và tối đa hóa giá trị của phần mềm.

II. Thách thức lớn trong cơ sở công nghệ phần mềm hiện đại

Ngành công nghệ phần mềm đối mặt với nhiều thách thức cố hữu, đặc biệt trong các giai đoạn thiết kế, kiểm thử và bảo trì. Một trong những khó khăn lớn nhất là quản lý sự phức tạp của hệ thống. Khi quy mô dự án tăng lên, việc duy trì một thiết kế kiến trúc rõ ràng và nhất quán trở nên vô cùng khó khăn. Các mối phụ thuộc chằng chịt giữa các module có thể tạo ra "hiệu ứng gợn sóng" (ripple effect), khi một thay đổi nhỏ ở một nơi có thể gây ra lỗi không lường trước ở những nơi khác. Một thách thức khác là việc ước lượng chi phí phần mềm và thời gian một cách chính xác. Các yếu tố như yêu cầu thay đổi, công nghệ mới và năng suất đội ngũ không ổn định khiến việc lập kế hoạch trở thành một bài toán khó. Trong giai đoạn kiểm thử, việc đảm bảo độ bao phủ toàn diện là gần như không thể. Theo tài liệu, "khó đảm bảo tính đầy đủ của kiểm thử" vì số lượng các trường hợp cần kiểm tra có thể là vô hạn. Điều này đòi hỏi người kiểm thử phải có kỹ năng và kinh nghiệm để ưu tiên các kịch bản quan trọng nhất. Giai đoạn bảo trì phần mềm cũng tiềm ẩn nhiều rủi ro, đặc biệt với các hệ thống cũ thiếu tài liệu. Việc hiểu mã nguồn của người khác, theo tài liệu gốc, là "đặc biệt khó", làm cho việc sửa lỗi và thêm tính năng mới trở nên tốn thời gian và dễ phát sinh lỗi mới.

2.1. Khó khăn trong quản lý dự án phần mềm phức tạp

Việc quản lý dự án phần mềm phức tạp đòi hỏi sự cân bằng giữa ba yếu tố: chi phí, thời gian và chất lượng. Sự thay đổi liên tục từ phía khách hàng là một trong những nguyên nhân chính gây phá vỡ kế hoạch. Bên cạnh đó, việc quản lý cấu hình phần mềm—theo dõi các phiên bản của mã nguồn, tài liệu và các thành phần khác—trở nên quan trọng để tránh xung đột và đảm bảo tính nhất quán. Các dự án lớn thường yêu cầu sự phối hợp của nhiều đội nhóm, làm tăng chi phí giao tiếp và rủi ro hiểu sai yêu cầu. Việc lựa chọn sai mô hình phát triển hoặc công cụ quản lý cũng có thể dẫn đến thất bại của dự án.

2.2. Vấn đề nan giải của việc đảm bảo chất lượng phần mềm

Việc đảm bảo chất lượng phần mềm (SQA) không chỉ đơn thuần là tìm lỗi. Nó là một quy trình bao trùm toàn bộ vòng đời phát triển phần mềm. Một thách thức lớn là yếu tố con người, khi người phát triển và người kiểm thử có thể có những định kiến tâm lý. Tài liệu gốc nhấn mạnh: "Người kiểm thử và người phát triển nên khác nhau". Hơn nữa, chất lượng phần mềm được quyết định chủ yếu ở khâu thiết kế, không phải kiểm thử. Một chương trình có cấu trúc tồi sẽ rất khó để kiểm thử một cách hiệu quả. Việc cân bằng giữa thời gian kiểm thử và áp lực ra mắt sản phẩm cũng là một bài toán khó, đòi hỏi phải có chiến lược quản lý rủi ro thông minh.

III. Top phương pháp thiết kế phần mềm hiệu quả nhất hiện nay

Thiết kế là giai đoạn kiến tạo nên xương sống của hệ thống phần mềm. Một thiết kế phần mềm tốt phải đảm bảo các tiêu chí về tính đúng đắn, hiệu quả, dễ hiểu và dễ bảo trì. Giáo trình cơ sở công nghệ phần mềm phần 2 giới thiệu hai hướng tiếp cận chính: thiết kế có cấu trúc và thiết kế hướng đối tượng. Thiết kế có cấu trúc, dựa trên nguyên tắc chia để trị, phân rã hệ thống thành các module nhỏ hơn, dễ quản lý. Nó tập trung vào luồng điều khiển và sử dụng các cấu trúc cơ bản như tuần tự, rẽ nhánh và lặp. Lý thuyết đã chứng minh rằng "mọi chương trình đều có thể xây dựng được chỉ dựa vào 3 cấu trúc cơ bản trên", giúp loại bỏ các lệnh nhảy GOTO phức tạp và tạo ra mã nguồn dễ theo dõi. Tuy nhiên, xu hướng hiện đại nghiêng về thiết kế hướng đối tượng (OOD). Phương pháp này mô hình hóa hệ thống dựa trên các đối tượng trong thế giới thực, mỗi đối tượng bao gồm cả dữ liệu (thuộc tính) và hành vi (phương thức). OOD tận dụng các khái niệm mạnh mẽ như đóng gói, kế thừa và đa hình để xây dựng các hệ thống linh hoạt, dễ tái sử dụng. Công cụ mô hình hóa UML đóng vai trò trung tâm trong OOD, cung cấp một ngôn ngữ trực quan để biểu diễn các khía cạnh khác nhau của hệ thống, từ các trường hợp sử dụng (Use Case) đến sơ đồ lớp (Class Diagram).

3.1. Thiết kế kiến trúc và mô hình hóa UML trong OOD

Trong thiết kế hướng đối tượng, thiết kế kiến trúc hệ thống là bước đầu tiên và quan trọng nhất. Nó xác định các thành phần chính, các hệ thống con và cách chúng tương tác với nhau. Mô hình hóa UML là công cụ không thể thiếu để thực hiện nhiệm vụ này. Các sơ đồ UML như Sơ đồ Lớp (Class Diagram) giúp định nghĩa cấu trúc tĩnh của hệ thống, trong khi Sơ đồ Tuần tự (Sequence Diagram) và Sơ đồ Hoạt động (Activity Diagram) mô tả hành vi động. Việc sử dụng UML giúp các bên liên quan có một cái nhìn chung, thống nhất về hệ thống, giảm thiểu hiểu lầm và tạo ra một bản thiết kế vững chắc trước khi bắt đầu lập trình.

3.2. Ứng dụng các mẫu thiết kế Design Patterns phổ biến

Các Design Patterns là những giải pháp đã được kiểm chứng cho các vấn đề thiết kế phổ biến trong phát triển phần mềm. Chúng không phải là một đoạn mã cụ thể mà là một khuôn mẫu, một mô tả về cách giải quyết một vấn đề có thể được sử dụng trong nhiều tình huống khác nhau. Ví dụ, mẫu Singleton đảm bảo một lớp chỉ có một thể hiện duy nhất, mẫu Factory giúp tạo đối tượng mà không cần chỉ định lớp cụ thể, hay mẫu Observer cho phép các đối tượng đăng ký nhận thông báo về sự thay đổi trạng thái của đối tượng khác. Việc áp dụng các design patterns giúp tạo ra các thiết kế linh hoạt, dễ tái sử dụng và tuân thủ các nguyên tắc thiết kế tốt nhất, là một kỹ năng quan trọng được đề cập trong các tài liệu ôn tập cơ sở công nghệ phần mềm.

IV. Bí quyết kiểm thử phần mềm Tối ưu chất lượng sản phẩm

Kiểm thử là một nghệ thuật nhằm phát hiện lỗi, và theo trích dẫn từ Sue A. Conger trong tài liệu, "Kiểm thử thành công là phát hiện ra lỗi". Đây là khâu then chốt trong quy trình đảm bảo chất lượng phần mềm (SQA). Giáo trình cơ sở công nghệ phần mềm phần 2 phân biệt rõ hai phương pháp chính: kiểm thử tĩnh (trên bàn) và kiểm thử động (trên máy). Kiểm thử tĩnh bao gồm các hoạt động như thanh tra (inspection) và rà soát (walkthrough) mã nguồn và tài liệu thiết kế để tìm lỗi logic mà không cần thực thi chương trình. Kiểm thử động là quá trình chạy chương trình với các bộ dữ liệu thử (test case) được thiết kế sẵn để kiểm tra hành vi thực tế. Để thiết kế các trường hợp thử hiệu quả, hai kỹ thuật phổ biến nhất được sử dụng là kiểm thử hộp đenkiểm thử hộp trắng. Mỗi kỹ thuật có một mục đích và cách tiếp cận riêng, bổ trợ cho nhau để tăng độ bao phủ và khả năng phát hiện lỗi. Mục tiêu cuối cùng của kiểm thử phần mềm không phải là chứng minh chương trình không có lỗi, mà là tìm ra càng nhiều lỗi càng tốt trong một khoảng thời gian và nguồn lực giới hạn, từ đó nâng cao sự tin cậy và chất lượng của sản phẩm trước khi đến tay người dùng.

4.1. Kỹ thuật kiểm thử hộp đen Phân đoạn và giá trị biên

Kiểm thử hộp đen (Black Box Testing) tập trung vào chức năng của phần mềm mà không cần quan tâm đến cấu trúc mã nguồn bên trong. Người kiểm thử chỉ cần biết đầu vào và kết quả mong đợi dựa trên bản đặc tả yêu cầu. Hai kỹ thuật con quan trọng là Phân đoạn tương đương (Equivalence Partitioning) và Phân tích giá trị biên (Boundary Value Analysis). Phân đoạn tương đương chia tập dữ liệu đầu vào thành các lớp mà hệ thống xử lý tương tự nhau, từ đó giảm đáng kể số lượng test case cần thực hiện. Phân tích giá trị biên tập trung kiểm thử tại các điểm cận trên và cận dưới của các miền dữ liệu, nơi thường xảy ra lỗi nhất.

4.2. Kỹ thuật kiểm thử hộp trắng Lộ trình và độ phức tạp

Trái ngược với hộp đen, kiểm thử hộp trắng (White Box Testing) dựa trên kiến thức về cấu trúc bên trong của chương trình, bao gồm luồng điều khiển và cấu trúc dữ liệu. Mục tiêu là đảm bảo mọi dòng lệnh, mọi nhánh quyết định và mọi vòng lặp đều được thực thi ít nhất một lần. Kỹ thuật tiêu biểu là Kiểm thử theo lộ trình (Basis Path Testing) của McCabe, sử dụng đồ thị luồng chương trình để xác định số lộ trình độc lập. Số đo Độ phức tạp lặp (Cyclomatic Complexity) được dùng để định lượng độ phức tạp logic và xác định số lượng test case tối thiểu cần thiết để bao phủ tất cả các lộ trình cơ bản.

V. Quy trình bảo trì phần mềm chuyên nghiệp từ A đến Z

Bảo trì phần mềm là tất cả các hoạt động sửa đổi một sản phẩm sau khi đã bàn giao. Theo định nghĩa của IEEE (1993), bảo trì phần mềm nhằm "chỉnh lại các lỗi phát sinh, cải thiện hiệu năng... hoặc làm cho phần mềm thích ứng trong một môi trường đã bị thay đổi". Đây là giai đoạn kéo dài và tốn kém nhất trong vòng đời phát triển phần mềm. Giáo trình cơ sở công nghệ phần mềm phần 2 phân loại bảo trì thành bốn hình thái chính. Bảo trì sửa lỗi (Corrective) là việc khắc phục các khiếm khuyết được phát hiện trong quá trình sử dụng. Bảo trì thích ứng (Adaptive) là điều chỉnh phần mềm để tương thích với sự thay đổi của môi trường, như hệ điều hành mới hoặc phần cứng mới. Bảo trì hoàn thiện (Perfective) là nâng cấp, mở rộng chức năng theo yêu cầu mới của người dùng. Cuối cùng, bảo trì phòng ngừa (Preventive) là tái cấu trúc mã nguồn và tài liệu để cải thiện khả năng bảo trì trong tương lai. Quy trình bảo trì thường bắt đầu bằng việc hiểu rõ hệ thống hiện tại thông qua tài liệu và mã nguồn, sau đó tiến hành sửa đổi, kiểm thử hồi quy để đảm bảo các thay đổi không gây ra lỗi mới, và cuối cùng là cập nhật tài liệu và quản lý phiên bản.

5.1. Các loại hình và hoạt động trong bảo trì phần mềm

Mỗi loại hình bảo trì phần mềm đòi hỏi một quy trình và kỹ thuật riêng. Bảo trì sửa lỗi thường yêu cầu kỹ năng gỡ lỗi nhanh chóng. Bảo trì thích ứng đòi hỏi sự hiểu biết về công nghệ mới. Bảo trì hoàn thiện tương tự như một chu trình phát triển nhỏ, bao gồm phân tích yêu cầu, thiết kế, lập trình và kiểm thử. Bảo trì phòng ngừa sử dụng các kỹ thuật như tái kỹ nghệ (re-engineering) để cải thiện chất lượng thiết kế và mã nguồn, giúp giảm chi phí cho các hoạt động bảo trì sau này. Việc ghi chép và quản lý cấu hình phần mềm là cực kỳ quan trọng trong tất cả các hoạt động này.

5.2. Công cụ và slide bài giảng CNPM 2 hỗ trợ bảo trì

Để quy trình bảo trì hiệu quả, việc sử dụng các công cụ hỗ trợ là rất cần thiết. Các công cụ quản lý phiên bản (như Git), công cụ theo dõi lỗi (như Jira), và các môi trường phát triển tích hợp (IDE) giúp tự động hóa nhiều tác vụ và cải thiện sự hợp tác. Các slide bài giảng CNPM 2 thường cung cấp các ví dụ thực tế và giới thiệu các mô hình như Mô hình thuần thục bảo trì (SM³), giúp các tổ chức đánh giá và cải thiện năng lực bảo trì của mình. Việc xây dựng một cơ sở tri thức về các sự cố và cách giải quyết cũng là một phương pháp hiệu quả để giảm thời gian xử lý các yêu cầu bảo trì trong tương lai.

16/07/2025
Giáo trình cơ sở công nghệ phần mềm phần 2

Trích đoạn nội dung tài liệu

THIET KE CHUONG TRINH Nội dung 8.1 Thiết kế chương trình là gì? 8.2 Các phương pháp thiết kế chương trình 8.3 Thiết kế hướng đối tượng 8.4 Một số điểm lưu ý khi mã hoá chương trình 101 8.1 Thiết kế chương trình là gì ? | " Là thiết kế chỉ tiết cầu trúc bên trong của phần mềm: thiết kế tính năng từng môđun và giao diện tương ứng. Thực tế bao gồm 2 nhiệm vụ cơ bản: ~. Thiết kế giải thuật nhằm thực hiện chức nang ma médun dam - nin Thiét ké cầu trúc dữ liệu: các dữ liệu dùng cho môđun, đáp ứng yêu câu xử lý, s. Đầu vào là các đặc tả của giai đoạn phân tích và thiết kế hệ thống.

ø - Đầu ra là các mô tả giải thuật. Thường người ta hay dùng. ký pháp do hoa. Tuy nhién khong bắt buộc có thể dùng ngôn ngữ diễn tả giải thuật: giả mã, sơ đồ khói hay PDL (ngôn ngữ mô tả chương trình).2 Các phương pháp thiết kế chương trình Có nhiều kỹ thuật thiết kế chương trình; —._ Hướng tiên trình (process) : Kỹ thuật thiết ké cầu trúc điêu khiên.

Hướng cấu trúc dữ liệu (data): Kỹ thuật thiết ké cầu trúc dữ liệu. Hướng sự vật/ đôi tượng (object): Kỹ thuật thiết kế hướng đôi tượng. oO đây chúng ta tập trung vào phương pháp thiết kế cấu trúc hoá và sử dụng kỹ thuật thiết kế hướng tiền trình- dựa vào các cầu trúc điều khiển.1 Thiết kế cấu trúc hỏa Nguyên tắc thiết kế cầu trúc hoá có nguồn gốc từ kỹ thuật lập trình cấu trúc mà bản chất là dựa vào các cầu trúc điều khiển cơ bản: tuần tự, re nhánh và lặp. Lý thuyết đã chứng minh rằng mọi chương trình đều có thể xây dựng được chỉ dựa vào 3 cầu trúc cơ bản trên.

Thiết kế cầu trúc hoá tỏ rõ những ưu diễm: — Tinh d6c lap của môdun: chỉ quan tâm vào-ra. — Làm cho chương trình dễ hiểu. Dễ theo dõi chương trình thực hiện. ; ~ Hé phitc tap sé dé hiéu nho tiếp cận phân cấp.

102 Một vẫn dé quan trọng trong thiết kế cầu trúc là không được sử dụng cầu trúc nào khác ngoài 3 cầu trúc trên. Thí dụ, một số người có thói quen sử dung GOTO. Vay GOTO 1a gi va loai b6 GOTO ra sao? Ngudi ta cho ra GOTO ding để chuyên điều khiển (nhày) đến một nhân nhất định. GOTO phá vỡ tính cầu trúc của lập trình cấu trúc hóa và không thể quản lý được.

GOTO có thể loại bỏ được. Tuy nhiên, để tạo điều kiện cho người lập trình không bị quá gò bó vào tính có câu trúc, người ta vẫn cho phép dùng GOTO song rất hạn chế. Thí dụ dưới đây minh hoạ 1 chương trình Spagetti và chương trình sau khi loại bỏ GOTO. Start: Get (Time-on, Time -off, Time, Setting, Temp , Switch) if Switch = o ff goto off if Switch = on goto on goto Cn tnd off: if Heating-status = on goto Sw-off goto loop on: if Heating-status = off goto Sw-on goto loop Cntrid: if Time = Time-ong oto on if Time = T ime-off goto off if Time < Time-ong oto Start if Time > T ime-off goto Start if Temp > Setting then g otooff if Temp < Setting thengotoon Sw-off: Heating -status := off goto Switch Sw-on: Heating -status := on Switch; Switch-heating loop: goto Start Chuong trinh duge cầu trúc hoá 103 loop — The Get statement finds values for the given variables from the system's — environment.

-Get (Time-on, Time-off, Time, Setting, Temp, Switch) ; case Switch of when On => if Heating-status = offthen Switch-heating ; Heating-status := on ; end if ; when Off => if Heating-status =on then Swich-heating ; Heating-status := off ; end if; when Controlled => if Time >= Time-on and Time <= Time-off then if Temp > Setting and Heating-status = on then Swich-heating; Heating-status = off; elsif Temp < Setting and Heating-status = off then Switch-heating; Heating-status := on ; end if; end if ; end case ; end loop ; 8.2 Sơ đồ cấu Irúc hóa Nassi. „_ Lưu đồ Nassi do hãng IBM đề xuất đề mô tả giải thuật theo hướng thiết kê cầu trúc. Lưu đồ này dùng 4 ký pháp cơ bản: tuân tự (nôi), rẽ nhánh (if.elsse), ré nhieu nhanh và lặp. Lưu đồ PAD do hãng Hitachi đề xuất.

Nó cũng sử dụng 4 thành phần tương tự như trong lưu đô Nassi, song có thêm 1 trục chính theo chiều thăng đứng. Các lưu đồ này được minh hoạ trong trang bên dưới. 104 a- Concatenation (Nối) b- selectfon (chọn) Xử lí Cond Y N z E Xử lí Xửtlí Xử lí c- case (Rẽ nhiều nhánh) đ- repetition (lặp) TH Cond Cond TT2 TT3 Treatment Treat- Treat 3 Treatment} = ment1 Treat Ment 2 Luu dé PAD ciia Hitachi a- concatemtion b- selection Mai | Treatment Treatment axis [4 Cond Treatment Treatinent c- case d- repetition Ề TTT7 Treatt ö ¢ M mee Treat2 WHILE UNTIL 1 \ Cond Treatment |] Cond al Treatment ụ TT3 } Treat3 { i haa 8.3 Phương pháp Giắcsơn (Jackson) Phương pháp Giắcsơn được sử dụng để miêu tả các câu trúc phân cập và được sử dụng trong, nhiều lĩnh vực khác nhau. Phương pháp cũng sử dụng các câu trúc điều khiển cơ bản như các phương pháp trên.

105 A* Bo Ký pháp rẽ nhánh Ký pháp lặp Thí dụ 8.4 Phương pháp Wany (Warnier) Hệ thống quản lý nhàn sự Đăng nhập Xử lí Dang xuất Thêm Thay đồi Hiện thông tin Xoá nhân viên thông tin nhân viên 4§D biểu diễn các chức năng của l HT nhân sự' 8.3 Thiết kế hướng đối tượng Thiết kế hướng đôi tượng là 1 xu hướng phát triển gần đây. Nó dựa trên khái niệm căn bản là đôi tượng (ObjeL ) và lớp( Class) cùng các tính chất cơ bản của chúng. Việc phát triên theo hướng đối tượng thường gan liền với một mô hình hướng đổi tượng và ngôn ngữ cài đặt hướng đối tượng. Ngày nay UML cing vai Rational Rose là một công cụ hỗ trợ cho phát triển hướng đối tượng.

Các ngôn ngữ cài đặt có thê là C++ hay ngôn ngữ hướng đối tượng, khác. Khái niệm hướng đối tượng * Doi tượng là những thực thẻ trong hệ thông phân mềm. biểu diễn các thẻ hiện trong thể giới thực "hay là các thực thẻ của hệ thông. *- Lớp các thực thể là các mẫu của đối tượng và dùng đề tạo các đối tượng.

* Lớp đối tượng có thể thừa kế các tính chất và các dịch vụ (services) từ các lớp khác. #* Một đối tượng là một thực thể có một trạng thái và xác lập một tập tác thao tác trên trạng thái đó. Trạng thái được biểu diễn như một tập các thuộc tính. Các thao tác liên kết với đối tượng và cung cấp các dịch vụ cho.

các đôi tượng khác cái sẽ yêu cầu các dịch vụ đề thực hiện các tính toán khi được yêu câu. Doi tượng được tạo ra phù hợp với định nghĩa cúa lớp. Việc định nghĩa lớp đổi tượng phục vụ cho việc tạo ra các đối tượng của lớp đó. Nó bao gòm việc khai báo các thuộc tính và các dịch vụ của lớp đó.

Employee name: string address: string dateOfBirth: Date em ployeeNo: integer socialSecurilyNo: string department: Dept manager: Employee salary: integer status: (current, left, retired} taxC ode: integer join () leave () retire () changeDetails () Truyền thông giữa các đối tượng + Nhìn chung, các đối tượng giao tiếp với nhau theo cơ chế truyền thông điệp. + Thông điệp gồm: —_ Tên của dịch vụ được yêu cầu bởi doi tượng gọi. — Bản sao các thông tin được yêu cầu đề thực hiện dịch vụ và tên của đối tượng chứa kết quả của dịch vụ. 107 — Trong thực tế, thông điệp được cài đặt theo cơ chế gọi thủ tục.

— Name = tên thủ tục. — Information = danh sách tham sô. Thí dụ Call a method associated with a buffer // object that returns the next value // inthe buffer v=circularBuffer.Get () ; // Call the method associated with a // thermostat object that sets the // temperature to be maintained thermostat.sefTemp (20) ; Interacting objects o1: C1 o4: C4 state 01 siate o4 ops1() ƒ ops4 () ẤN | o5:C5 state 05 ops5() Khái quát hóa và kế thừa ` » Các đôi tượng là các thành viên của lớp định nghĩa cho kiểu các thuộc tính và các phép toán. Các lớp có thẻ sắp xếp theo kiến trúc phân cấp, có 1 lớp cao nhất là super-class.

Đó là lớp khái quát nhất của 1 hay nhiều các lớp con khác (sub-elasses) 108 *_ Một lớp con kế thừa các thuộc tính và các thao tác của lớp cha và có thể có thêm các thuộc tính và các phương thức mới riêng của mình. * Su khái quát hóa trong UML được cải đặt như kế thừa trong các ,"gôn ngữ lập trình hướng đối tượng. Một cấu trúc phân cấp Employee — Manager Program mer budgetsC ontrolled Bugle ca dateAppointed 0< 410006501 Project Dept. Strategic Manager Manager Manager Projects dept responsibilities 2.

Sự thay đôi bên trong đối tượng không ảnh hưởng ‹ đến người dùng. ~ Mọi tác động đến đối tượng đêu thông qua cơ chế truyền thông điệp. Cải đặt Ấn trong lập trình hướng đối tượng- OOP (Object ~ Oriented programning) * Hai nhiém vu trong lap trình: —_ Người tạo các lớp đôi tượng. — Người lập trình khách.

s Hai nguyên nhân thực hién an trong OOP: —. Cho phép khách truy nhập và sử dụng các mục tương ứng. Một số lớp bị ân và không nhất thiết khách phải biết va truy nhập tới. Cho phép nhà thiết kế thay đổi.

định nghĩa lại mà không ảnh hưởng đến ứng dụng Employee name: string address: string dateOfBirth: Date employeeNo: integer socialSecurityNo: string department: Dept manager: Employee salary: integer Status: {current, left, retired} taxC ode: integer join () leave () retire () changeDetails () Chú ý: —. Các ngôn ngữ lập trình khác nhau có cách cài đặt khác nhau. — Một số phương thức chỉ dành cho 1 số người như bạn bè (friend), một số khác dùng chung (public) và một số khác dùng riêng (private, static, public, protected). 3 Kế thừa (Inheritance) Tai sir dung trong OOP Đề mã hóa các lớp thi chi phí là khá lớn.

Việc tái sử dụng các lớp sẽ giảm chỉ phí và đó là một đặc trưng quan trọng trong, OOP. Cách tốt nhất đề tái sử dụng một lớp: tái sử dụng trực tiếp như là các trường hợp riêng (boundary) nhằm giải quyết van đề. Thứ hai là dùng các biến đối tượng lớp. dé xây dựng các lớp mới (đối tượng trong các lớp mới).

Nguyên tắc cầu thành cũng gọi là tụ hep (aggregation). Nguyên tắc này thể hiện quan hé “has-a relationship”. 110 *_ Thứ ba là thể hiện nguyên tắc kế thừa. + Các lớp cơ sở => các lớp kê thừa.

Đa hình trong OOP + Khi xây dựng các lớp kế thừa trong OOP, có thể là: các lớp kế thừa định nghĩa cùng 1 hành vi (function) như lớp cơ sở và do vậy trình biên dịch không thẻ xác định được sử dụng hành vi của lớp nào.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ