Ứng dụng của 40 nguyên lý sáng tạo trong công nghệ phần mềm
MỤC LỤC
I. GIỚI THIỆU . 3
II. 40 NGUYÊN LÝ SÁNG TẠO VÀ CÔNG NGHỆ PHẦN MỀM . 4
1. Phân nhỏ (Segmentation) . 4
2. Tách khỏi (Extraction) . 4
3. Phẩm chất cục bộ (Local Quality). 5
4. Bất đối xứng (Asymmetry) . 6
5. Kết hợp (Consolidation). 7
6. Vạn năng (Universality) . 8
7. Chứa trong (Nesting) . 8
8. Phản trọng lượng (Counterweight) . 9
9. Gây ứng suất sơ bộ (Prior counteraction) . 10
10. Thực hiện trước sơ bộ (Prior action) . 10
11. Đề phòng (Cushion in advance) . 11
12. Đẳng thế (Equipotentiality) . 12
13. Đảo ngược (Do it in reverse) . 12
14. Cầu tròn hóa (Spheroidality) . 13
15. Linh động (Dynamicity) . 14
16. Tác động thiếu hoặc thừa (Partial or excessive action) . 15
17. Chuyển sang chiều khác (Transition into new dimension) . 16
18. Dao động cơ học (Mechanical Vibration) . 16
19. Tác động theo chu kỳ (Periodic Action) . 17
20. Liên tục tác động có ích (Continuity of useful action) . 18
21. Vượt nhanh (Rushing through) . 19
22. Biến hại thành lợi (Convert harm into benefit) . 19
23. Phản hồi (Feedback) . 20
24. Sử dụng trung gian (Mediator). 20
25. Tự phục vụ (Self-service) . 21
26. Sao chép (Copying). 22
27. Rẻ thay cho đắt (Inexpensive short-lived objects) . 22
2
28. Thay thế hệ cơ học (Replacement of Mechanical System) . 23
29. Sử dụng kết cấu thủy hoặc khí (Pneumatic or hydraulic construction) ** . 23
30. Sử dụng vỏ dẻo hoặc màng mỏng (Flexile films or thin membranes) . 24
31. Sử dụng vật liệu nhiều lỗ (Porous materials) ** . 24
32. Đổi màu (Changing the color) . 25
33. Đồng nhất (Homogeneity) . 26
34. Loại bỏ và tái sinh từng phần (Rejecting and regenerating parts) . 26
35. Thay đổi thông số hóa lý của đối tượng (Transformation properties) . 26
36. Chuyển pha (Phase transition) ** . 27
37. Sử dụng sự nở nhiệt (Thermal expansion) ** . 27
38. Sử dụng các chất oxy hóa (Accelerated oxidation) ** . 28
39. Sử dụng môi trường trơ (Inert Environment) ** . 29
40. Sử dụng vật liệu tổng hợp (Composite materials) . 30
III. KẾT LUẬN . 31
IV. TÀI LIỆU THAM KHẢO . 32
của đối tượng, nhưng nó cũng có thể tăng hiệu suất ở mức độ nào đó. Ví dụ, ta có thể lưu các giá trị trong đối tượng mà không cần phải qua công đoạn kiểm tra tính hợp lệ của những giá trị này. 32. Đổi màu (Changing the color) a. Đổi màu của đối tượng hoặc môi trường bên ngoài của nó. b. Đổi độ trong suốt của đối tượng hoặc môi trường bên ngoài của nó. Liên hệ CNPM: Như trên. Ví dụ CNPM: Đồng hồ có độ trong suốt 90% trên desktop trở nên rõ hơn khi gần đến thời điểm báo giờ hẹn. Một chương trình giám sát hiển thị trong suốt trên GUI của máy tính trở nên rõ hơn khi cần có sự chú ý. Có ứng dụng cho các nhà thiên văn có thể thay đổi màu sắc của giao diện người dùng sang đen và đỏ thay vì đủ màu. Điều này cần thiết khi sử dụng khi trời tối do mắt người cần thời gian để quen với bóng tối để nhìn thấy các ngôi sao. GUI màu đỏ không ảnh hưởng đến độ nhạy của mắt. Có thể dùng để tiết kiệm pin cho laptop, khi làm việc trong bóng tối mà không sử dụng back-light chỉ dùng ký tự màu đỏ. 26 33. Đồng nhất (Homogeneity) a. Làm cho đối tượng tương tác với một đối tượng cùng vật liệu hoặc vật liệu có tính chất tương đồng. Liên hệ CNPM: Tạo các lớp không nằm riêng lẻ mà thuộc hệ phân cấp lớp, do điều này sẽ giúp các lớp khác nhau trông giống nhau trong cùng cấp. Ở cấp đó chúng sẽ có cùng một số tính chất. Ví dụ CNPM: Viết các giải thuật nhận các đối tượng nền làm tham số truyền vào để tất cả những lớp dẫn xuất cũng có thể được xử lý. 34. Loại bỏ và tái sinh từng phần (Rejecting and regenerating parts) a. Loại bỏ những thành phần của đối tượng đã hoàn thành chức năng của mình hoặc sửa đổi chúng ngay trong quá trình hoạt động. b. Ngược lại, phục hồi những phần tiêu thụ được của đối tượng ngay trong quá trình hoạt động. Liên hệ CNPM: Giải phóng bộ nhớ không dùng của ứng dụng. Ví dụ CNPM: Giữ một vùng chứa các đối tượng (phức hợp) không dùng đến nhưng thường xuyên được tạo ra, sử dụng rồi xóa. Bằng cách giữ chúng quá trình tạo mới sẽ nhanh hơn nhiều do các đối tượng được lấy từ vùng chứa. Nó cũng giúp giảm bớt công việc cho bộ thu dọn rác. 35. Thay đổi thông số hóa lý của đối tượng (Transformation properties) a. Thay đổi trạng thái vật lý của đối tượng. b. Thay đổi mật độ hoặc độ đặc. 27 c. Thay đổi độ linh động. d. Thay đổi nhiệt độ. Liên hệ CNPM: Như trên. Ví dụ CNPM: Trộn các ứng dụng phần mềm có cơ sở dữ liệu gần như giống nhau để giảm dư thừa. Bằng cách làm việc với các template một trình soạn thảo có thể có nhiều chức năng, chẳng hạn như ta có thể nạp một template để highlight cú pháp giúp cho trình soạn thảo phù hợp với ngôn ngữ lập trình khác. 36. Chuyển pha (Phase transition) ** a. Sử dụng các hiện tượng xảy ra trong quá trình chuyển pha. Liên hệ CNPM: Sử dụng các kết quả và đối tượng trung gian có sẵn trong quá trình chuyển trạng thái của đối tượng. Ví dụ CNPM: Việc chuyển trạng thái của một đối tượng có thể cần nhiều tính toán phức tạp hoặc có chi phí tìm kiếm cao trong cơ sở dữ liệu. Bằng cách gán kết quả trung gian cho các biến (caching), các đối tượng khác có thể truy xuất kết quả trung gian này, nhờ đó cải thiện hiệu suất. Ví dụ, một danh sách liên kết có thể giữ một con trỏ đến phần tử cuối cùng được thêm vào. Khi cần tìm kiếm trên danh sách ta có thể kiểm tra con trỏ này để xem nên bắt đầu từ node này hay phải bắt đầu lại từ đầu danh sách. Điều này giúp tăng tốc tìm kiếm (tuyến tính) với hệ số 2, tính trên trung bình. 37. Sử dụng sự nở nhiệt (Thermal expansion) ** a. Sử dụng sự nở (hoặc co) do nhiệt của vật liệu. 28 b. Nếu sự nở nhiệt đang được dùng thì sử dụng nhiều vật liệu với hệ số nở nhiệt khác nhau. Liên hệ CNPM: Nén (hoặc giải nén) dữ liệu để giảm (hoặc tăng) kích thước dữ liệu. Cũng có thể được xem như thay đổi độ chính xác. Ví dụ CNPM: Không gian bộ nhớ máy tính là sự kết hợp giữa bộ nhớ hoạt động (trong CPU) và bộ nhớ phân trang (nằm ở phương tiện lưu trữ gần đó như bộ nhớ cache hay bộ nhớ ảo). Việc co giãn tài nguyên này để phục vụ các quá trình cần dùng đến bộ nhớ nhiều hơn hay ít hơn có thể được mô hình hóa theo nhiệt động học bằng cách gắn vào một hệ đo tương đồng với “nhiệt độ” mà sẽ thể hiện hiệu suất máy tính vào từng thời điểm. Khi dữ liệu được nén lại (co nhiệt) nó có thể được gửi qua mạng nhanh hơn, hoặc tốn ít không gian lưu trữ hơn. Ta phải đốt nóng nó lên (giải nén) để biến nó hữu ích trở lại. Khi phải tính toán bằng dollar, hoặc đơn vị tiền tệ khác thì công việc này thường là tính toán trên số dấu phẩy động. Bằng cách nhân tất cả số với 100 (đốt nóng với hệ số 100) ta có thể tính toán trên miền số nguyên mà sẽ nhanh hơn và không có (hoặc ít) lỗi làm tròn số. 38. Sử dụng các chất oxy hóa (Accelerated oxidation) ** a. Thay thế không khí thường bằng không khí giàu oxy. b. Thay thế không khí giàu oxy bằng môi trường thuần oxy. c. Cho bức xạ ion hóa không khí hoặc oxy. d. Sử dụng oxy đã ion hóa. e. Thay thế oxy đã ozon hóa hoặc ion hóa bằng khí ozon. Liên hệ CNPM: 29 Sử dụng cách biểu diễn tối ưu để xử lý nhanh hơn. Ví dụ CNPM: Hiển nhiên, phần mềm không có liên quan gì đến oxy hóa, nhưng ta có thể trừu tượng hóa nguyên lý này để chỉ chung hành động trộn lẫn thứ này với thứ khác để cho ra kết quả ngẫu nhiên. Ta có sự tương đồng với giải thuật mã hóa “pha muối”. Một giải thuật mã hóa không có thành phần ngẫu nhiên, “muối”, chạy trên văn bản rõ ràng (chẳng hạn như mật khẩu người dùng) sẽ luôn cho ra cùng kết quả mã hóa. Cùng một mật khẩu sẽ luôn được mã hóa bằng cùng một chuỗi trên mọi máy tính chạy giải thuật mã hóa “không pha muối”. Nếu bạn phá được mật khẩu một lần, bạn có thể qua mặt an ninh trên mọi máy tính cài đặt giải thuật đó. Tuy nhiên, nếu giải thuật mã hóa thêm vào một hệ số ngẫu nhiên, gọi là “muối”, vào các tính toán của nó, văn bản mã hóa sẽ chỉ hợp lệ đối với một máy duy nhất, do về lý thuyết tất cả các máy khác sẽ pha muối các tính toán của chúng khác nhau. Thay thế một giải thuật viết dưới dạng ngôn ngữ lập trình cấp cao bằng một thường trình (routine) hợp ngữ đã được điều chỉnh, tối ưu bằng tay và phù hợp với bộ xử lý. Hoặc thậm chí dùng phần cứng nào thực hiện cùng chức năng, chẳng hạn như nén video. Dùng định dạng nhị phân để tăng hiệu quả xử lý, lưu trữ và lưu lượng thông tin trên mạng. 39. Sử dụng môi trường trơ (Inert Environment) ** a. Thay thế môi trường thông thường bằng môi trường trơ. b. Thêm vào đối tượng các thành phần trung tính hoặc các chất trơ. Liên hệ CNPM: Thay thế môi trường tính toán thông thường bằng môi trường hạn chế hơn. Ví dụ CNPM: 30 Một môi trường trơ là môi trường không có phản ứng với các đối tượng trong môi trường đó. Nghĩa suy rộng hợp lý sẽ là một môi trường trơ là môi trường ôn hòa. Với cách diễn dịch này, ta có sự tương đồng trong quy trình kiểm nghiệm phần mềm. Trong phát triển phần mềm, đôi khi cần phải kiểm nghiệm phần mềm đang phát triển trong một môi trường giả lập với một số (không phải tất cả) động thái của môi trường thực sự mà phần mềm sẽ hoạt động. Một ví dụ khác là quy trình kiểm chuẩn (benchmark test), thường được dùng để đo lường hiệu suất phần cứng và phần mềm. Môi trường chạy kiểm chuẩn được kiểm soát cẩn thận để cách ly hệ thống khỏi các ảnh hưởng không kiểm soát được trong khi vẫn giữ các đặc tính quan trọng và do đó cũng là một môi trường trơ. Cài đặt một máy tính bù nhìn (dummy) không được bảo vệ trên Internet để sớm phát hiện sự bùng nổ virus hay sâu máy tính. Hạn chế tính năng của các thành phần thực thi được trong trình duyệt web. Chạy ứng dụng trong chế độ debug (không hoàn toàn trơ nhưng được kiểm soát tốt). 40. Sử dụng vật liệu tổng hợp (Composite materials) a. Thay vật liệu đồng nhất bằng vật liệu tổng hợp. Liên hệ CNPM: Đổi từ mức trừu tượng phần mềm đồng nhất sang mức trừu tượng tổng hợp. Ví dụ CNPM: Các phương pháp thiết kế tổng hợp chính là sự trừu tượng hóa nền tảng đằng sau các framework thành công thường gặp. Phương pháp thiết kế tổng hợp có thể được mô tả tốt nhất như một tập các phương pháp mà khi tích hợp chúng lại thì hiệu ứng hiệp lực của nó khiến cho việc tổng hợp có ý nghĩa cao hơn là chỉ cộng các thành phần lại. 31 III. KẾT LUẬN Trong lịch sử sáng tạo và đổi mới, hay gần gũi hơn là trong cuộc sống thường nhật, ta đã thấy được rằng các nguyên lý sáng tạo của Altshuller khá là đầy đủ để có thể lý giải cho hầu hết mọi phát minh sáng chế trên thế giới này. Các lợi ích của “40 nguyên tắc sáng tạo cơ bản” đối với chúng ta có thể kể đến như: Giúp giải phóng tính ì tâm lý. Phát triển các ý tưởng cải tiến sản phẩm (giúp tăng năng suất, tiết kiệm năng lượng, tiền bạc và thời gian...) Phát triển các ý tưởng giải quyết vấn đề. Định hướng sử dụng kiến thức hiệu quả hơn. Cho đến nay, vẫn còn nhiều nỗ lực để cố gắng đưa ra các định nghĩa chuẩn của 40 nguyên lý sáng tạo cho công nghệ phần mềm. Do khoa học máy tính là một lĩnh vực rất rộng lớn nên các ví dụ trong bài viết này được rút ra từ các giai đoạn khác nhau trong vòng đời của một sản phẩm phần mềm, đôi khi ở mức thiết kế, đôi khi ở mức hiện thực ứng dụng. Mặc dù chỉ giới hạn trong phạm vi công nghệ phần mềm, nhưng với việc hệ thống đầy đủ 40 nguyên lý sáng tạo như trên, ta có thể tự tin nói rằng những nguyên lý sáng tạo này cũng có thể được nhận ra ở bất cứ đâu và trong bất cứ lĩnh vực nào, dù là khoa học chính thống hay phi chính thống. Điều đó thúc đẩy chúng ta thực hành sáng tạo và mạnh dạn đưa ra ý tưởng thường xuyên hơn. Và đó cũng là cách mà thế giới thay đổi mỗi ngày. 32 IV. TÀI LIỆU THAM KHẢO [1] https://sites.google.com/site/sangtaotretho/the-gioi-sang-tao/40-thu-thuat-sang-che [2] Rea, K.C., TRIZ and Software 40 Principles Analogies, Part 1. The TRIZ Journal. Sep, 2001. Internet: [3] Rea, K.C., TRIZ and Software 40 Principles Analogies, Part 2. The TRIZ Journal. Nov, 2001. Internet:
File đính kèm:
- Ứng dụng của 40 nguyên lý sáng tạo trong công nghệ phần mềm.pdf