tiểu luận ứng dụng của 40 nguyên lý sáng tạo trong công nghệ phần mềm

33 593 0
tiểu luận ứng dụng của 40 nguyên lý sáng tạo trong công nghệ phần mềm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ––––––––––––––– BÀI THU HOẠCH ỨNG DỤNG CỦA 40 NGUYÊN SÁNG TẠO TRONG CÔNG NGHỆ PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN: GS. TS. HOÀNG VĂN KIẾM SINH VIÊN THỰC HIỆN: MAI HỮU THIỆN 12 11 072 TP.HỒ CHÍ MINH – 2012 1 MỤC LỤC I. GIỚI THIỆU 3 II. 40 NGUYÊN SÁNG TẠOCÔ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 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 3 I. GIỚI THIỆU 40 nguyên tắc sáng tạo cơ bản đã được Altshuller tìm ra bằng cách phân tích một lượng lớn các bằng sáng chế nhằm mục đích xây dựng các công cụ giải quyết những mâu thuẫn kỹ thuật, thường nảy sinh trong quá trình thực hiện sáng tạo và đổi mới. Đây có thể được xem như sự tổng hợp kiến thức của nhân loại. Vào năm 2001, Kevin C. Rea đã cho đăng bài viết của mình gồm 2 phần, mang tên “TRIZ and Software – 40 Principle Analogies, Part I and II” để trình bày những sự tương đồng trong lĩnh vực công nghệ phần mềm (CNPM) với 40 nguyên sáng tạo của Altshuller. Tuy nhiên, Rea đã không liệt kê ra sự tương đồng cũng như ví dụ cụ thể đối với một số nguyên lý. Cụ thể là các nguyên lý: 29 (sử dụng kết cấu thủy hoặc khí), 31 (sử dụng vật liệu nhiều lỗ), 36 (chuyển pha), 37 (sử dụng sự nở nhiệt), 38 (sử dụng các chất oxy hóa) và 39 (sử dụng môi trường trơ). Bài viết này cố gắng hoàn thiện danh sách của Rea thông qua việc đưa ra sự tương đồng trong công nghệ phần mềm đối với sáu nguyên này, đồng thời bổ sung các ví dụ cụ thể cho những nguyên khác. Do bố cục của Rea trong bài viết của ông khá là hữu ích, nên tôi sẽ sử dụng lại bố cục này, như vậy các ví dụ mới và sự tương đồng có thể được so sánh cũng như kết hợp lại dễ dàng hơn. Những nguyên bị bỏ sót trong bài viết của Rea sẽ được đánh dấu **. 4 II. 40 NGUYÊN SÁNG TẠOCÔNG NGHỆ PHẦN MỀM 1. Phân nhỏ (Segmentation) a. Chia một đối tượng thành nhiều phần độc lập. b. Làm cho một đối tượng dễ dàng tháo rời. c. Tăng mức độ chia nhỏ. Liên hệ CNPM: Phân chia một hệ thống, thiết kế, một đối tượng hoặc luồng dữ liệu thành các phần độc lập. Chẳng hạn như trong phương pháp thiết kế module hoặc hướng đối tượng. Tăng độ chi tiết cho đến khi tìm được giải pháp. Các bit có thể được xem như nguyên tử trong ngữ cảnh mã hóa. Ví dụ CNPM: Ví dụ thấy rõ nhất là hướng tiếp cận thiết kế ứng dụng từ trên xuống (top down). Khi thiết kế ta sẽ chia hệ thống thành từng khúc nhỏ, nhờ đó giúp chia hệ thống phức tạp ra thành các module nhỏ hơn và đỡ phức tạp hơn. Quá trình này có thể được lặp lại với mỗi module đến khi khối chức năng không còn phức tạp nữa. Người ta có thể xây dựng ứng dụng dựa trên các dịch vụ độc lập có sẵn trong tổ chức hoặc thông qua Internet như các Web-service. Ta cũng có thể xây dựng ứng dụng bằng các component thương mại có sẵn. 2. Tách khỏi (Extraction) a. Tách thành phần (đặc tính) gây cản trở khỏi đối tượng, hoặc chỉ lấy thành phần (đặc tính) cần thiết của đối tượng. Liên hệ CNPM: Cho một ngôn ngữ, định nghĩa biểu diễn văn phạm của nó cùng với trình thông dịch sẽ sử dụng cách biểu diễn này để rút ra các câu trong ngôn ngữ. Loại bỏ những phần vô giá trị trong luồng thông tin. 5 Ví dụ CNPM: Trong xử tín hiệu có nhiều cách để giảm nhiễu. Ví dụ ta có thể tính toán hoặc đo độ nhiễu trong phông nền của ảnh, khử nó khỏi ảnh để tăng độ tương phản của tín hiệu thực. Phương pháp nén âm thanh MP3 loại bỏ những phần tín hiệu âm thanh mà hầu hết mọi người không thể nghe được do các đặc điểm thính giác ở người. Phương pháp nén ảnh mất thông tin, chẳng hạn như JPEG, loại bỏ thông tin để có tỉ lệ nén tốt hơn mà không làm biến dạng ảnh quá mức. Bộ tạo token trong parser thay thế mọi từ khóa bằng mã gọn hơn để chuyển mã người đọc được thành mã xử được bởi máy. Bộ tạo token đơn giản nhất là các parser đối số dòng lệnh (command line argument) sẽ đổi một đối số dòng lệnh (một chuỗi) thành kiểu dữ liệu cơ sở hơn như integer hay boolean. 3. Phẩm chất cục bộ (Local Quality) a. Đổi cấu trúc của đối tượng từ đồng nhất sang không đồng nhất, đổi môi trường bên ngoài (hoặc tác động bên ngoài) từ đồng nhất sang không đồng nhất. b. Đặt mỗi thành phần của đối tượng dưới điều kiện hoạt động tối ưu. c. Cho mỗi thành phần của đối tượng thực hiện một chức năng hữu ích khác nhau. Liên hệ CNPM: Đổi phân loại của đối tượng trong hệ thống kỹ thuật từ hệ phân cấp đồng nhất thành không đồng nhất. Ví dụ CNPM: Trong ứng dụng trí thông minh nhân tạo sử dụng mô hình bảng đen (blackboard), nhiều người cùng cố gắng giải quyết vấn đề hoặc một phần của vấn đề theo nhiều cách, chẳng hạn như một số người sẽ theo hướng tiếp cận từ trên xuống (top down), số khác theo hướng từ dưới lên (bottom up). 6 Thay thế danh sách liên kết các đối tượng “Sư tử” bằng danh sách liên kết các đối tượng “Động vật”. Mức trừu tượng cao hơn cho phép các đối tượng không đồng nhất được lưu trong cùng một lớp container hoặc ngược lại. 4. Bất đối xứng (Asymmetry) a. Đổi hình dạng của đối tượng từ đối xứng sang bất đối xứng. b. Nếu một đối tượng đã bất đối xứng, tăng mức độ bất đối xứng của nó. Liên hệ CNPM: Đưa sự bất đối xứng vào trong ứng dụng. Thay đổi tính bất đối xứng của hệ thống kỹ thuật để tác động không đều lên kết quả tính toán mong muốn. Ví dụ CNPM: Cho chương trình có bộ lọc để xử các định dạng đầu vào khác nhau mà không phải tăng số lượng định dạng đầu ra hoặc là một định dạng đầu vào, nhiều định dạng đầu ra. Giả sử cần tính trung bình của một danh sách dài. Thông thường ta phải đếm tất cả giá trị và chia tổng cho kích thước danh sách. Nếu như đáp án không cần phải chính xác ta có thể làm như vậy với một tập nhỏ hơn được chọn ngẫu nhiên. Cách xấp xỉ này thường đủ tốt và nhanh hơn. Giải thuật quicksort kinh điển lấy phần tử chính giữa làm điểm chốt (pivot). Bằng cách sử dụng trung vị ba (median of three) ta thường đạt được hiệu suất tốt hơn. Thay thế tìm kiếm nhị phân kiểm tra phần tử chính giữa của mảng con thành tìm kiếm nhị phântrọng số bằng cách sử dụng tri thức thống kê về độ phân bố của các phần tử. Ví dụ như tận dụng đặc điểm phân bố của các ký tự trong bảng chữ cái khi tìm kiếm trên một loại từ điển nào đó. 7 5. Kết hợp (Consolidation) a. Đặt các đối tượng tương đồng hoặc tương tự lại gần nhau (hoặc kết hợp chúng); lắp ghép các thành phần tương đồng hoặc tương tự để thực hiện các tác vụ song song. b. Cho các tác vụ nối tiếp hoặc song song với nhau; đặt chúng gần nhau về mặt thời gian. Liên hệ CNPM: Cho các quá trình chạy song song. Ví dụ CNPM: Các hệ điều hành đa nhiệm, các ứng dụng đa luồng, đa bộ xử lý. Seti@home là một dự án điện toán song song khổng lồ phân phối trên hàng triệu máy tính trên thế giới. Các máy tính này sẽ yêu cầu một phần dữ liệu để phân tích và gửi kết quả của mình về cho server. Dự án boinc.org là một sản phẩm phụ của Seti@home nhằm cung cấp framework cho dạng xử song song này. Một mạng chuyển gói (packet switching network) cho phép nhiều luồng dữ liệu chạy song hành trên một dây. Trên thực tế chúng không thực sự song song mà là xen kẽ nhau. Một dây cáp quang có thể thực sự truyền tin song song khi nhiều sóng tần số khác nhau được gửi qua sợi quang đồng thời. Một trang web có thể được xây dựng từ nhiều frame. Mỗi frame có thể đến từ một server khác nhau. Đẩy dữ liệu cho trang web loại này nhanh hơn khi nhiều kết nối có thể được sử dụng song song. In nhiều bản sao của một tài liệu có thể được thực hiện nhanh hơn khi in nó song song trên nhiều máy. Hệ thống đĩa cứng raid-5 chia tập tin ra nhiều đĩa có thể truy xuất và lưu tập tin nhanh hơn do nó được truy xuất/lưu trữ song song. 8 Một số ứng dụng chia sẻ tập tin peer-to-peer thấy rằng tập tin cần lấy có trên nhiều máy tính truy cập từ xa. Những khúc khác nhau của tập tin có thể được tải về từ nhiều máy tính khác nhau và ghép chúng lại tại chỗ. Kết quả là lưu lượng cao hơn. 6. Vạn năng (Universality) a. Cho một thành phần hoặc một đối tượng thực hiện nhiều chức năng; loại bỏ các thành phần khác. Liên hệ CNPM: Làm cho hệ thống kỹ thuật hỗ trợ nhiều phân loại và phân loại động dựa trên ngữ cảnh. Ví dụ CNPM: Trình Norton commander nhúng nhiều chức năng khác nhau trong một ứng dụng duy nhất. Một hàm tìm kiếm giá trị lớn nhất cũng có thể được dễ dàng mở rộng để tìm giá trị nhỏ nhất. Đặc biệt khi có nhiều I/O trong việc đọc dữ liệu từ tập tin. 7. Chứa trong (Nesting) a. Đặt một đối tượng vào trong đối tượng khác; đặt mỗi đối tượng lần lượt vào trong nhau. b. Cho một thành phần đi qua khoảng trống của thành phần khác. Liên hệ CNPM: Kế thừa tính năng của các đối tượng khác bằng cách lồng lớp tương ứng vào trong một lớp nền. Sử dụng nhiều mức trừu tượng. Sử dụng các cấu trúc dữ liệu và giải thuật đệ quy. Ví dụ CNPM: Các kiến trúc phần mềm phân tầng như mô hình OSI cho giao tiếp mạng. 9 Hướng tiếp cận phân tích và thiết kế từ trên xuống (top down): thiết kế các component ở cấp cao trước, sau đó mỗi component trở thành một dự án độc lập với interface đã được định nghĩa. Ma trận là một mảng các mảng. Ta có thể định nghĩa mảng nhiều chiều. Các cấu trúc dữ liệu đệ quy: cây, danh sách liên kết, kể cả cấu trúc thư mục quen thuộc với nhiều thư mục con. Các giải thuật đệ quy: quicksort, giải thuật duyệt cây, quay lui. 8. Phản trọng lượng (Counterweight) a. Để bù đắp trọng lượng của đối tượng, kết hợp nó với các đối tượng khác cung cấp lực nâng. b. Để bù đắp trọng lượng của đối tượng, cho nó tương tác với môi trường sử dụng khí động lực, thủy động lực và các lực khác. Liên hệ CNPM: Chia sẻ để hỗ trợ hiệu quả các đối tượng được phân hạt tốt với số lượng lớn nhằm giảm tải động trên hệ thống kỹ thuật. Sử dụng hàm băm để phân bố đều tải trọng. Ví dụ CNPM: Để cải thiện hiệu suất của web server ta có thể chia một trang ra nhiều frame và lưu các frame trên nhiều đĩa cứng hoặc thậm chí nhiều server. Ta có thể phân bố các ảnh hoặc các data-blob (lớn) ra nhiều đĩa thay vì đặt chúng vào một đĩa. Hiệu suất sẽ tăng lên. Với hàm băm ta có thể phân bố đối tượng ra nhiều bucket trong khi vẫn giữ số lượng đối tượng ở mỗi bucket gần như bằng nhau. [...]... 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 sáng tạo như trên, ta có thể tự tin nói rằng những nguyên 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... 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 30 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 sáng tạo của Altshuller khá là đầy đủ để có thể 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... có thể cho kiểm tra ngữ pháp và chính tả đồng thời Tự động chèn từ trong khi gõ, gợi ý các tham số cho công thức trong bảng tính Liên tục biên dịch code trong phần mềm soạn thảo cho người lập trình Liên tục kiểm tra các URL trong bookmarks của trình duyệt xem còn hợp lệ không Kiểm tra tính hợp lệ của địa chỉ email trong ứng dụng email Trong máy scan phẳng, thanh đèn quét di chuyển qua ảnh hai lần Dùng... tính ì tâm 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 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... tượng trong môi trường đó Nghĩa suy rộng hợp 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... lớp dẫn xuất cũng có thể được xử 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... bên trong Mặc dù điều này có thể ảnh hưởng đến tính toàn vẹn 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. .. action) a Cho công việc diễn ra liên tục, tất cả thành phần của đối tượng luôn hoạt động hết công suất b Loại bỏ tất cả hành động, công việc ứng yên hoặc đứt đoạn Liên hệ CNPM: Phát triển một giải pháp được phân chi tiết tốt để tận dụng bộ xử tối đa Ví dụ CNPM: Hệ điều hành đa nhiệm Mọi loại quá trình đều có thể chạy nền, như truy vấn, in ấn, chống phân mảnh đĩa cứng, quét virus… Trong khi chỉnh... thống mà theo thời gian đến hoặc đi của dữ liệu trong GUI Việc sử dụng thay phiên các giải thuật MIN-MAX trong trò chơi và trong trí thông minh nhân tạo cũng là một dạng dao động Một hiệu ứng thay phiên khác là giải thuật xử đọc thay phiên từ nhiều hàng đợi, chẳng hạn như theo phương pháp vòng tròn round-robin Để giảm thiểu thời gian tìm kiếm trung bình trên đĩa cứng ta cho đầu đọc dao động qua lại... trong ổ đĩa cứng Trình duyệt web có thể lấy tất cả tham chiếu đến các trang web khác xuất hiện trên trang hiện tại trong khi người dùng đọc trang hiện tại 10 Thử tưởng tượng một ứng dụng cơ sở dữ liệu chuẩn bị sẵn dữ liệu trước khi được truy vấn khi nó nhận ra khuôn mẫu trong quá trình sử dụng ứng dụng Driver máy in kiểm tra có máy in hay không trước khi người dùng hoàn tất các thiết lập của mình 11 . GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ––––––––––––––– BÀI THU HOẠCH ỨNG DỤNG CỦA 40 NGUYÊN LÝ SÁNG TẠO TRONG CÔNG NGHỆ PHẦN MỀM GIẢNG. tên “TRIZ and Software – 40 Principle Analogies, Part I and II” để trình bày những sự tương đồng trong lĩnh vực công nghệ phần mềm (CNPM) với 40 nguyên lý sáng tạo của Altshuller. Tuy nhiên,. danh sách của Rea thông qua việc đưa ra sự tương đồng trong công nghệ phần mềm đối với sáu nguyên lý này, đồng thời bổ sung các ví dụ cụ thể cho những nguyên lý khác. Do bố cục của Rea trong bài

Ngày đăng: 05/04/2014, 10:52

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan