Tải bản đầy đủ (.docx) (34 trang)

CÁC NGUYÊN LÝ SÁNG TẠO TRIZ TRONG CÔNG NGHỆ PHẦN MỀM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (775.86 KB, 34 trang )

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
Bộ môn:
PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC
PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC
VÀ TƯ DUY SÁNG TẠO
VÀ TƯ DUY SÁNG TẠO
Đề tài:
CÁC NGUYÊN LÝ SÁNG TẠO TRIZ
CÁC NGUYÊN LÝ SÁNG TẠO TRIZ
TRONG CÔNG NGHỆ PHẦN MỀM
TRONG CÔNG NGHỆ PHẦN MỀM
Giảng viên: GS.TSKH. Hoàng Kiếm
Học viên: Võ Bình Nguyên
Mã HV: CH1201052
Lớp: CH7
Tp.HCM, 04/2013
Các nguyên lý sáng tạo trong Công nghệ phần mềm
MỤC LỤC
GV: GS.TSKH. Hoàng Kiếm Trang 2
Các nguyên lý sáng tạo trong Công nghệ phần mềm
LỜI NÓI ĐẦU
Lý thuyết về giải quyết các vấn đề sáng tạo TRIZ ngày càng trở thành một khuynh
hướng sáng tạo phổ biến trên toàn cầu. Genrich Altshuller là người khởi đầu ý
tưởng về TRIZ trong suốt những năm 1940 và đã sử dụng nó cùng với các đồng
nghiệp của mình suốt 50 sau đó. Altshuller đã quan sát rất nhiều bằng sáng chế, hơn
400 nghìn dự án khác nhau và phát hiện ra rằng các cải tiến, thay đổi về mặt công
nghệ và một hệ thống các phát minh, sáng chế liên quan trong mỗi dự án đều nằm
trong một quy trình: phát sinh, phát triển, trưởng thành và phai nhạt dần theo một
quy luật có thể theo dõi được. Nếu chúng ta nắm bắt các quy luật này, ta có thể thiết


kế và dự đoán được các xu hướng phát triển của các sản phẩm trong tương lai.
TRIZ đã trở thành một công cụ đầy sức mạnh để giải quyết các vấn đề và đưa ra các
giải pháp sáng tạo. Nhìn sơ qua, TRIZ dường như chủ yếu được áp dụng cho các bài
toán cơ học và không nhiều cho các vấn đề về điện tử và phần mềm. Tuy nhiên, phần
mềm là một phần phát triển của sản phẩm và đang trở thành nguồn gốc của mọi
vấn đề. Nếu TRIZ cũng được áp dụng đúng đắn vào phần mềm, khả năng ứng dụng
của TRIZ sẽ đươc mở rộng và các rắc rối liên quan tới phần mềm có thể được giải
quyết.
Trong tiểu luận này, chúng ta sẽ xem xét nội dung của các nguyên tắc sáng tạo TRIZ
và vận dụng chúng trong lĩnh vực phát triển phần mềm. Vì mục đích này nên chúng
ta sẽ tiếp cận lần lượt từng chủ đề trong kỹ thuật phần mềm và xem xét nó ở khía
cạnh tổng thể của TRIZ, bao gồm:
• Các nguyên tắc sáng tạo
• Các tiểu chuẩn sáng tạo
• Các khuynh hướng phát triển
Em xin chân thành cảm ơn thầy Hoàng Kiếm, người đã bước đầu giúp em tìm hiểu
và tiếp cận một bộ môn khoa học mới đầy thú vị và thử thách, cũng như đã khơi gợi
GV: GS.TSKH. Hoàng Kiếm Trang 3
Các nguyên lý sáng tạo trong Công nghệ phần mềm
tinh thần và cảm hứng sáng tạo để em có thể khởi đầu tìm tòi và áp dụng các
nguyên tắc sáng tạo trong công tác nghiên cứu khoa học cũng như trong thực tiễn
cuộc sống.
GV: GS.TSKH. Hoàng Kiếm Trang 4
Các nguyên lý sáng tạo trong Công nghệ phần mềm
PHẦN THỨ NHẤT: CÁC NGUYÊN LÝ SÁNG TẠO
TRIZ
CHƯƠNG I: TỔNG QUAN CÁC NGUYÊN LÝ SÁNG TẠO TRIZ
Hnh 1: TRIZ đánh thức bộ não của bạn
TRIZ là một bộ công cụ giải quyết các vấn đề kỹ thuật một cách sáng tạo. TRIZ
tổng kết các giải pháp và các thành công đã được biết đến để đúc kết nên các

cách thức giúp chúng ta giải quyết các vấn đề một cách có hệ thống. TRIZ khởi
nguồn từ nước Nga, do kỹ sư và nhà phát minh Genrich Altshuller sáng tạo nên.
TRIZ là một bộ công cụ mạnh mẽ mà trong đó, mỗi công cụ sử dụng rất đơn giản
và đề cập đến tất cả các mặt của việc nắm bắt và giải quyết vấn đề. Thử thách
duy nhất đối với TRIZ đó là học cách sử dụng công cụ nào và khi nào thì sử dụng
nó. Điều này đòi hỏi những trải nghiệm thực tế và mức độ quen thuộc. TRIZ giúp
chúng ta hiểu và giải quyết các vấn đề bằng cách dựa trên một kho tàng rộng
lớn các kiến thức khoa học và kỹ thuật đã được tích lũy trong quá khứ và tìm ra
câu trả lời có liên quan cho các vấn đề thực tế.
GV: GS.TSKH. Hoàng Kiếm Trang 5
Các nguyên lý sáng tạo trong Công nghệ phần mềm
Bộ công cụ TRIZ khá đơn giản và mặc dù rất chặt chẽ và mạnh mẽ nhưng nó khá
dễ dàng cho chúng ta học và áp dụng nhanh chóng vào thực tế. Các công cụ
chính bao gồm:
 40 nguyên tắc sáng tạo: dùng để giải quyết các mâu thuẫn, sử dụng các
nguyên tắc này thông qua Ma Trận Mâu Thuẫn và Các nguyên tắc Tách Rời.
 8 khuynh hướng phát triển: để xây dựng một hệ thống hoàn hảo trong
tương lai.
 Tư duy về thời gian và phạm vi: áp dụng vào một ngữ cảnh của vấn đề
để hiểu rõ và giải quyết nó.
 Ý tưởng, kết quả, giải pháp, hệ thống, tài nguyên lý tưởng: để hiểu
các yêu cầu và hình dung ra các giải pháp.
 Nguồn lực và cắt giảm: giúp tìm ra các giải pháp thông minh với chi phí
thấp
 Các giải pháp tiêu chuẩn: để giải quyết một vấn đề hệ thống bất kỳ. Tạo
và hoàn chỉnh hệ thống, đơn giản hóa, xử lý các tác nhân gây cản trở, phát
triển các chức năng mới và các giải pháp thông minh cho các vấn đề kỹ
thuật.
Trong phạm vi của bài tiểu luận này, chúng ta cùng khảo sát một phần nội dung của
40 nguyên tắc sáng tạo và phân tích ứng dụng của các nguyên tắc này trong lĩnh

vực công nghệ phần mềm để thấy được tiềm năng và hiệu quả to lớn đạt được của
các nguyên tắc sáng tạo trong kỹ thuật và cuộc sống.
GV: GS.TSKH. Hoàng Kiếm Trang 6
Các nguyên lý sáng tạo trong Công nghệ phần mềm
Mỗi chúng ta đều có giải pháp khác nhau
đối với cùng một vấn đề
GV: GS.TSKH. Hoàng Kiếm Trang 7
Các nguyên lý sáng tạo trong Công nghệ phần mềm
CHƯƠNG II: MỘT SỐ NGUYÊN LÝ SÁNG TẠO
I. Nguyên tắc phân nhỏ
1. Chia đối tượng thành nhiều phần độc lập
 Các ống kính máy ảnh có chiều dài
tiêu cự khác nhau
 Các cổng kết nối đa chân
 Nhiều xi-lanh trong động cơ đốt trong
 Máy bay phản lực đa động cơ
2. Làm cho đối tượng dễ tháo lắp
 Các khớp nối ngắt nhanh trong hệ thống
ống nước và thủy lực
 Xích xe đạp và xe máy
3. Tăng mức độ phân đoạn
 Động cơ đốt trong với 16 hoặc 24 van so
với chỉ 8 van
 Dùng kim loại hàn ở dạng bột thay vì dạng que để mối nối tốt hơn


 Hnh 2: Nguyên tắc phân nhỏ

GV: GS.TSKH. Hoàng Kiếm Trang 8
Các nguyên lý sáng tạo trong Công nghệ phần mềm

II. Nguyên tắc tách riêng
1. Tách phần cản trở hoặc thuộc tính gây nhiễu ra khỏi đối tượng
 Khu vực không hút thuốc trong nhà hàng hoặc toa tàu hỏa
 Cục nóng gây ồn ào của máy lạnh được đem ra khỏi phòng
2. Chỉ tách phần hoặc đặc tính cần thiết ra khỏi đối tượng
 Các hạng ghế khác nhau trên máy bay
 Tiếng chó sủa (nhưng không có chó thật sự) để dọa trộm.
 Cửa sổ để thông gió và lấy ánh sáng. Với phòng có máy lạnh thì không cần mở
cửa, chỉ cần lấy ánh sáng.


 Hnh 3: Nguyên tắc tách riêng
III. Nguyên tắc phẩm chất cục bộ
1. Thay đổi cấu trúc của đối tượng từ dạng theo mẫu sang dạng không theo
mẫu
 Các lon đồ uống được tạo hình để dễ
xếp chồng lên nhau
 Phanh tay có các đường gờ trên các
công cụ để dễ bám.
 Xử lý hoặc phủ lên các bề mặt vật liệu
bằng kim loại các hợp chất chống ăn
mòn để bảo vệ.
GV: GS.TSKH. Hoàng Kiếm Trang 9
Các nguyên lý sáng tạo trong Công nghệ phần mềm
2. Thay đổi các tác nhân hoặc môi trường bên ngoài (hay ảnh hưởng bên
ngoài) từ dạng theo mẫu sang dạng không theo mẫu.
 Dẫn một dòng chất lỏng chảy xung quanh một vật để thay đổi đặc tính truyền
nhiệt.
 Sử dụng nhiệt độ, mật độ, áp suất đo bằng gradient thay cho cố định.
 Tính đến các điều kiện thời tiết khắc nghiệt khi thiết kế các hệ thống ngoài trời.



3. Tạo điều kiện cho mỗi chức năng của đối tượng hoạt động ở điều kiện thích
hợp nhất
 Ngăn lạnh trong tủ lạnh
 Hộp cơm với các ngăn riêng biệt để thức ăn nóng, nguội, lỏng.

GV: GS.TSKH. Hoàng Kiếm Trang 10
Các nguyên lý sáng tạo trong Công nghệ phần mềm

 Hnh 4: Nguyên tắc phẩm chất cục bộ

IV.Nguyên tắc kết hợp
1. Mang lại gần nhau (hoặc kết hợp) các đối tượng giống nhau hoặc tương tự
nhau vào cùng một chỗ
 Hộp mực in nhiều màu
 Dao Thụy Sĩ đa năng
 Kính mắt có các thấu kính hai tiêu
cự
 Các bè gỗ, thuyền đôi
2. Làm cho các đối tượng hoặc hành động liền kề nhau hoặc song song, mang
chúng lại với nhau ở cùng một thời điểm.
 Máy gặt đập liên hợp
 Bộ thu gom cỏ trên máy cắt cỏ
 Bộ vi xử lý thực hiện các tính toán khác
nhau một cách đồng thời.
3.
4.
5.
6.

GV: GS.TSKH. Hoàng Kiếm Trang 11
Hnh 5: Nguyên tắc kết hợp
Các nguyên lý sáng tạo trong Công nghệ phần mềm
V. Nguyên tắc vạn năng
1. Làm cho một vật thực hiện được nhiều chức năng, từ đó không cần và loại bỏ
các phần khác.
2.
3. Hnh 6: Nguyên tắc vạn năng
4.
 Ghế an toàn dành cho trẻ em trên xe
hơi có thể chuyển thành ghế đẩy
 Trung tâm giải trí tại gia
 Dao Thụy Sĩ
 Chức năng nướng trong lò viba
5.
VI. Nguyên tắc chứa trong
1. Đặt một vật vào trong một vật khác, rồi lại đặt vào trong một vật khác nữa
 Cửa hàng sách trong cửa hàng cafe
 Lớp vải lót bên trong áo khoác
 Các muỗng đo lường

GV: GS.TSKH. Hoàng Kiếm Trang 12
Các nguyên lý sáng tạo trong Công nghệ phần mềm
2. Đặt nhiều vật vào trong nhiều vật khác
 Kính viễn vọng
 Bộ thu gom cỏ trên máy cắt cỏ
 Phủ nhiều lớp chống ăn mòn
3. Đưa một vật qua lỗ hổng của vật khác
 Ăng-ten thu gọn lại bằng cách lồng vào nhau
 Dây điện có thể co rút lại trong máy hút bụi, nồi cơm điện

 Dây đai an toàn trên xe hơi có thể rút ngắn lại


 Hnh 7: Nguyên tắc chứa trong
VII. Nguyên tắc tác động thừa hoặc một phần
 Nếu một phương pháp không thể đạt được 100% hiệu quả mong muốn thì
hãy dùng “ít đi” hoặc “mạnh lên” chính phương pháp đó, vấn đề sẽ trở nên dễ
giải quyết hơn.
GV: GS.TSKH. Hoàng Kiếm Trang 13
Các nguyên lý sáng tạo trong Công nghệ phần mềm

 Xịt nhiều hơn một chút khi sơn, sau đó xóa phần thừa đi
 Các công đoạn gia công chà nhám rồi chà bóng sản phẩm
 Tô tường bằng thạch cao rồi chà để làm nhẵn mặt tường

 Hnh 8: Nguyên tắc tác động thừa hoặc một phần


GV: GS.TSKH. Hoàng Kiếm Trang 14
Các nguyên lý sáng tạo trong Công nghệ phần mềm
 PHẦN THỨ HAI : ÁP DỤNG CÁC NGUYÊN
LÝ SÁNG TẠO TRONG CÔNG NGHỆ PHẦN
MỀM
CHƯƠNG III: GIỚI THIỆU VỀ TRIZ TRONG CÔNG NGHỆ PHẦN
MỀM

 Từ lâu, người ta đã mong muốn áp dụng các nguyên tắc sáng tạo
TRIZ để giải quyết các vấn đề liên quan đến phát triển phần mềm và các hệ
thống công nghệ dựa trên phần mềm.Do TRIZ ban đầu được phát triển trong các
lĩnh vực hóa học, vật lý hoặc công nghệ dựa trên phần cứng nên người ta chưa

hình dung được làm thế nào áp dụng TRIZ vào công nghệ phần mềm và liệu nó
mang lại hiệu quả như thế nào.
 Trong tiểu luận này, chúng ta cùng xem xét áp dụng các nguyên tắc
sáng tạo TRIZ trong phát triển phần mềm với các vấn đề sau:
• Áp dụng TRIZ cho các vấn đề liên quan tới phát triển phần mềm và mở rộng
lĩnh vực ứng dụng của TRIZ vào công nghệ phần mềm.
• Làm rõ các chủ đề của kỹ thuật phần mềm dưới góc nhìn của TRIZ.
• Xem xét các tác động ngược lại của các nguyên tắc và tri thức của kỹ thuật
phần mềm đối với TRIZ.


CHƯƠNG IV: LẬP TRÌNH CẤU TRÚC TRONG CÔNG NGHỆ
PHẦN MỀM
GV: GS.TSKH. Hoàng Kiếm Trang 15
Các nguyên lý sáng tạo trong Công nghệ phần mềm
 Khoảng cuối những năm 1960, khi quy mô của phát triển phần mềm
ngày càng mở rộng đến mức khó kiểm soát theo hướng đáng tin cậy, một số quy
tắc về kỹ thuật phần mềm bắt đầu được khởi xướng. Các ngôn ngữ lập trình như
COBOL hay FORTRAN được sử dụng chủ yếu cho các ứng dụng khoa học và
nghiệp vụ. Để giúp các chương trình hiệu quả hơn về cả thời gian và không gian
bộ nhớ, thông thường người ta sử dụng câu lệnh Goto để xây dựng các thủ tục
phức tạp mặc dù điều này sẽ khiến cho chương trình hỗn tạp khó kiểm soát. E.
Dijkstra đã từng phát biểu rằng các câu lệnh Goto chỉ khiến cho chương trình
khó hiểu và chủ trương ủng hộ “Lập trình cấu trúc” để loại bỏ các câu lệnh Goto
và sử dụng chỉ ba cấu trúc điều khiển cơ bản, bao gồm: Cấu trúc tuần tự, Cấu
trúc rẽ nhánh và Cấu trúc rẽ nhánh (với tiền điều kiện). Phương pháp lập trình
được ủng hộ là triết lý “Sàng lọc từng bước”, trong đó các lập trình viên được
khuyến khích thiết kế và viết mã chương trình từng bước theo hướng từ trên
xuống dưới.
 Nhiều nhà phát triển chương trình thời đó đã tranh luận với nhau

về đề xuất của Dijkstra. Họ cho rằng viết chương trình chỉ với 3 cấu trúc điều
khiển như vậy là không dễ dàng. Các câu lệnh Goto vẫn cần thiết trong nhiều
tình huống khác. Dijkstra và những người ủng hộ ông ấy đã chỉ ra bằng chứng
rằng bất kỳ chương trình nào cũng có thể được viết lại chỉ với 3 cấu trúc như
trên. Nghĩa là, các câu lệnh nhảy tới có thể được viết lại bằng cách dùng Cấu trúc
rẽ nhánh, còn các câu lệnh nhảy lui sẽ thay bằng Cấu trúc lặp. Để viết lại chương
trình có câu lệnh Goto, có thể áp dụng 2 cách: một là sao chép một đoạn chương
trình và nhân bản nó lên, hai là thêm một biến điều khiển để quy định luồng
chương trình.
 Trong khi đó, trên cơ sở thực tế, một số cấu trúc điều khiển bổ sung
khác đã được giới thiệu, bao gồm: Cấu trúc rẽ đa nhánh, Cấu trúc lặp với điều
kiện ở sau, ngắt và thoát khỏi vòng lặp, và các ngoại lệ. Vì thế đề xuất về “Lập
GV: GS.TSKH. Hoàng Kiếm Trang 16
Tuần tựPhân nhánhLặp
Các nguyên lý sáng tạo trong Công nghệ phần mềm
trình cấu trúc” đã được dàn xếp bằng cách bổ sung thêm các cấu trúc điều khiển
mới này và cuộc tranh cãi dần kết thúc.
 Trong Lập trình cấu trúc, một thủ tục với 1 đầu vào và 1 đầu ra sẽ
được điều chỉnh từng bước bằng cách sử dụng 3 cấu trúc điều khiển cơ bản như
hình sau:


 Các cấu trúc điều khiển bổ sung được thể hiện như sau:
GV: GS.TSKH. Hoàng Kiếm Trang 17
Hnh 9: Biến đổi một "ến trnh bằng 3 cấu trúc điều khiển cơ bản
Ýes
No
No
Ýes
P0

Ngắt khỏi vòng lặp
P1
ExcepBon
No
Ýes
ExcepBon
Các nguyên lý sáng tạo trong Công nghệ phần mềm
GV: GS.TSKH. Hoàng Kiếm Trang 18
Hnh 10: Bốn cấu trúc điều khiển bổ sung
Các nguyên lý sáng tạo trong Công nghệ phần mềm
 Để rõ hơn, ta xem xét các trường hợp đơn giản được minh họa
trong hai hình sau:

 Hnh 11: Một đoạn chương trnh được viết theo 3 cách khác nhau
GV: GS.TSKH. Hoàng Kiếm Trang 19
Các nguyên lý sáng tạo trong Công nghệ phần mềm

 Hnh 12: Một đoạn chương trnh được viết theo 4 cách khác nhau




CHƯƠNG V: LẬP TRÌNH CẤU TRÚC DƯỚI GÓC NHÌN CỦA
TRIZ
 Ở phần này, chúng ta sẽ xem xét Lập trình cấu trúc từ khía cạnh của
các nguyên tắc sáng tạo TRIZ
I Nhu cầu vượt qua độ phức tạp để đạt được độ tin cậy
GV: GS.TSKH. Hoàng Kiếm Trang 20
Các nguyên lý sáng tạo trong Công nghệ phần mềm
 Nhìn từ khía cạnh tiến hóa của các hệ thống kỹ thuật, rõ ràng ta có

thể thấy nhu cầu nảy sinh của kỹ thuật phần mềm và lập trình cấu trúc. Tương
tự các hệ thống kỹ thuật khác, nói chung, các hệ thống phần mềm cũng phát
triển nhanh chóng bằng cách tự mở rộng và nhiều tính năng hơn, đổi lại, nó
ngày càng trở nên phức tạp hơn. Các hệ thống phần mềm khổng lồ và phức tạp
thúc đẩy các nhà khoa học về phần mềm dần nhận ra một “cơn khủng hoảng
phần mềm”. Để các hệ thống phần mềm phát triển xa hơn, nhất thiết phải phát
triển một số phương thức nào đó để làm cho chúng đơn giản hơn và dễ bảo trì
hơn.
VIII. Đơn giản hóa các hệ thống bằng cách dùng cấu trúc phân
cấp:
 Một hệ thống phần mềm có thể xem như là 1 “Hệ thống” theo nghĩa
chung nhất của nó trong TRIZ. Một hệ thống là toàn bộ những thành phần hoạt
động cùng với nhau để thực hiện một chức năng nào đó nhằm tạo ra một số kết
quả bằng cách sử dụng các dữ liệu đầu vào. Khái niệm về cấu trúc phân cấp của
hệ thống là một trong những vấn đề cơ bản trong TRIZ và được phát biểu bằng
Nguyên tắc sáng tạo số 7:

Nguyên tắc số 7: Nguyên tắc chứa trong
 Đặt một đối tượng/hệ thống vào trong một đối tượng/hệ thống khác
 Đặt nhiều đối tượng/hệ thống vào trong nhiều đối tượng/hệ thống
khác
 Mặc dù nguyên tắc số 7 dường như được sử dụng tương đối hạn chế
trong thế giới thực nhưng nó đóng vai trò quan trọng trong thế giới phần mềm,
nơi mà việc tạo các hệ thống phần mềm phân cấp rất dễ dàng và phổ biến. Ở đây,
GV: GS.TSKH. Hoàng Kiếm Trang 21
Các nguyên lý sáng tạo trong Công nghệ phần mềm
TRIZ sẽ đưa ra một số nguyên tắc giúp đơn giản hóa một hệ thống khi nó trở nên
phức tạp. Có 3 phương pháp cần xem xét:

Nguyên tắc số 6: Nguyên tắc vạn năng

 Làm cho một bộ phận/hệ thống có thể thực hiện được nhiều chức năng,
loại bỏ những bộ phận/hệ thống khác đi.
 Ý tưởng của nguyên tắc vạn năng là đơn giản hóa các hệ thống
phức tạp. Tuy nhiên, có một nguyên tắc khác được phát biểu như sau:

Nguyên tắc: Các tiêu chuẩn vạn năng
 Đưa ra những khối chức năng đã được chuẩn hóa và cơ bản, và tái sử
dụng chúng rộng rãi trong nhiều ứng dụng khác.
 Nguyên tắc này được sử dụng rộng rãi trong nhiều lĩnh vực kỹ thuật
và xã hội. Lập trình cấu trúc có thể được xem như đã đưa ra những cấu trúc điều
khiển đã được chuẩn hóa và được thể hiện ở dạng một luồng tuần tự. Ngoài ra,
còn có một nguyên tắc sáng tạo khác:
GV: GS.TSKH. Hoàng Kiếm Trang 22
Các nguyên lý sáng tạo trong Công nghệ phần mềm

Nguyên tắc số 1: Nguyên tắc phân nhỏ
 Chia hệ thống thành nhiều phần riêng biệt và độc lập
 Làm cho hệ thống dễ dàng tháo lắp.
 Nguyên tắc này có thể được áp dụng trong các hệ thống kỹ thuật, xã
hội và phần mềm. Chúng ta có thể liên tưởng đến nguyên tắc này một cách rất tự
nhiên về việc chia nhỏ một hệ thống phức tạp thành các phần nhỏ hơn để dễ
kiểm soát và bảo trì.

IX. Loại bỏ câu lệnh Goto:
 Kỹ thuật cắt bỏ trong TRIZ có thể được áp dụng để đơn giản hóa các
hệ thống phức tạp. Lập trình cấu trúc được xem như loại bỏ các
câu lệnh Goto ở cấp độ cách thức lập trình, thay vì ở cấp độ các
chương trình riêng lẻ. Khi một thành phần của hệ thống gây hại
hoặc không cần thiết, ta có thể xem xét loại bỏ nó bằng cách trả lời
hai câu hỏi sau:

− Thành phần được loại bỏ có thực hiện các chức năng hữu ích khác
trong hệ thống hay không ?
− Nếu có, chức năng đó có thể được một thành phần khác trong hệ thống
thực hiện hay không ?
 Theo các bước này, ta có thể tìm ra các câu lệnh Goto có các vai trò
hữu ích kiểm soát các điểm nhảy của chương trình. Lập trình cấu
trúc ban đầu đề xuất thay thế các lệnh Goto này bằng ba cấu trúc
GV: GS.TSKH. Hoàng Kiếm Trang 23
Các nguyên lý sáng tạo trong Công nghệ phần mềm
điều khiển cơ bản. Nhưng nhiều chuyên gia phần mèm tranh cãi
rằng ba cấu trúc này không đủ mạnh, linh hoạt và tiện lợi để thay
thế Goto. Cuộc tranh luận chỉ chấm dứt sau khi một số cấu trúc
điều khiển mới được thêm vào. Vì vậy, trong ngữ cảnh của phương
thức loại bỏ của TRIZ, rõ ràng rằng câu lệnh Goto đã được bỏ đi ở
cấp độ cách thức lập trình ( hay trong ngôn ngữ lập trình) không
phải bởi 3 cấu trúc cơ bản của Lập trình cấu trúc, mà bởi tập các
cấu trúc bao gồm những cấu trúc mới được thêm vào.
X. Xem xét tranh luận về Goto bằng các khái niệm Mâu Thuẫn
của TRIZ:
 Tranh luận bao gồm 2 ý kiến trái ngược nhau:
− Các câu lệnh Goto nên bị loại bỏ hoàn toàn để làm cho luồng chương
trình dễ hiểu.
− Các câu lệnh Goto là cần thiết để thể hiện các luồng chương trình khác
nhau.
 Để giải quyết các trường hợp mâu thuẫn như thế này, TRIZ đưa ra
nguyên tắc sau:
GV: GS.TSKH. Hoàng Kiếm Trang 24
Các nguyên lý sáng tạo trong Công nghệ phần mềm

Nguyên tắc: Nguyên tắc tách riêng

 Kiểm tra 2 yêu cầu trái ngược nhau xem khi nào, ở đâu, dưới điều kiện
nào các yêu cầu được áp dụng và tìm ra sự khác biệt trong các yêu cầu
này.
 Nếu có khác biệt, thiết lập 2 giải pháp riêng biệt thỏa mãn đầy đủ mỗi
yêu cầu, rồi tìm cách sử dụng cả 2 giải pháp kết hợp với nhau.
 Loại trừ mâu thuẫn chỉ có thể đạt được bằng cách chia sẻ một số
mục tiêu chung nào đó ở cấp độ cao hơn cấp độ mâu thuẫn. Mục tiêu chung
trong tình huống này là: Làm cho phương thức lập trình dễ hiểu và hầu như
không lỗi. Hai phía tranh luận có thể trả lời câu hỏi của Nguyên tắc Tách Riêng
một cách logic hơn như sau:
− Các câu lệnh Goto nên bị loại bỏ bằng cách thay thế chúng bằng các cấu
trúc điều khiển thích hợp đảm bảo các khối chương trình lồng nhau một
cách đúng đắn. Nen tránh các câu lệnh Goto làm cho các khối chương
trình lồng nhau nhưng bị lệch đối xứng.
− Các chức năng của lệnh Goto thể hiện cấu trúc rẽ đa nhánh, cấu trúc lặp
với điều kiện được xét sau, cấu trúc thoát khỏi vòng lặp, sẽ tìm thấy các
cấu trúc đúng đắn theo phương thức lập trình mới.
GV: GS.TSKH. Hoàng Kiếm Trang 25

×