1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 603 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 516,25 KB

Nội dung

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 lý này, đồng thời bổ sung các ví dụ cụ thể cho những ngu

Trang 1

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 LÝ 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

Trang 2

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

Trang 3

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

Trang 4

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 lý 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 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 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 lý bị bỏ sót trong bài viết của Rea sẽ được đánh dấu **

Trang 5

II 40 NGUYÊN LÝ SÁNG TẠO VÀ CÔ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

Trang 6

Ví dụ CNPM:

Trong xử lý 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ử lý đượ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

Trang 7

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ó

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ân có trọ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 đó

Trang 8

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ử lý 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

Trang 9

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

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

Trang 10

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

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

Trang 11

9 Gây ứng suất sơ bộ (Prior counteraction)

a Nếu cần thiết phải thực hiện một hành động với tác động có hại lẫn có ích, hành động này nên được thay thế bằng hành động ngược lại để kiểm soát tác động có hại

b Tạo một áp lực ban đầu lên đối tượng để phản lại áp lực không mong muốn khi hoạt động

Cứ thử tưởng tượng những chương trình install (hoặc uninstall) báo rằng bạn chỉ phải chờ 2 giây, nhưng 2 giây đó đôi khi có thể mất 2 phút hoặc hơn

Khi một ứng dụng khởi động cần đọc từ cơ sở dữ liệu ta có thể load những bảng hoặc chỉ mục quan trọng nhất trước

10 Thực hiện trước sơ bộ (Prior action)

a Thực hiện trước thay đổi cần thiết trên đối tượng (toàn bộ hoặc một phần)

b Sắp xếp trước các đối tượng để chúng có thể đi vào hoạt động từ vị trí thuận tiện nhất và không mất thời gian chờ

Liên hệ CNPM: Như trên

Ví dụ CNPM:

Bộ nhớ cache đọc trước 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

Trang 12

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

Ví dụ CNPM:

Một hệ điều hành tạo backup cho các tập tin thiết yếu trước khi nó được sử dụng Điều này giúp ngăn ngừa việc cài lại khi có gì đó bị trục trặc

Đặt timeout cho tác vụ có thể làm đứng hệ thống, chẳng hạn như một truy vấn đến

cơ sở dữ liệu hoặc kết nối đến dịch vụ mạng

Việc sử dụng các transaction trong cơ sở dữ liệu có thể được roll-back cũng là một dạng đề phòng

Một bộ xử lý đầu vào giúp nhận biết và sàng lọc hoặc bỏ qua dữ liệu đầu vào có định dạng xấu

Một bộ lập lộ trình tính toán các lộ trình thay thế trong khi chạy xe Dựa vào history nó biết rằng vài chỗ trên lộ trình thường bị kẹt xe Theo cách này các lộ trình thay thế sẽ có ngay khi cần

Một trình xử lý văn bản tạo các bản chụp (snapshot) khi gõ tài liệu để ngăn mất mát dữ liệu trong trường hợp hệ điều hành gặp sự cố Công việc này cũng bao gồm tạo bản sao tài liệu trước khi chỉnh sửa

Recycle bin trên hầu hết máy tính hiện nay

Trang 13

12 Đẳng thế (Equipotentiality)

a Trong trường thế năng, hạn chế thay đổi vị trí; thay đổi điều kiện hoạt động để loại

bỏ việc nâng lên hay hạ xuống trong điều kiện trọng lực

Nói chung nguyên lý này có thể được dùng khi ứng dụng sử dụng dữ liệu theo cách bất định Cố gắng giữ những phần tử có nhiều khả năng được dùng lại

Trong giải thuật di truyền ta thường làm việc với tập đáp án khả thi dưới dạng nhiễm sắc thể Giải thuật di truyền giữ lại những đáp án khả thi nhất để “nhân giống” Các đáp án ít tiềm năng hơn sẽ bị loại bỏ

Thiết lập trật tự lại cho cơ sở dữ liệu hoặc tập tin chỉ khi thực sự cần Thông thường dữ liệu được đánh dấu là đã xóa bằng cách bật cờ lên Các record trong cơ

sở dữ liệu không bị dời đi mặc dù có vẻ như chúng nằm ở vị trí mới trong cơ sở dữ liệu

13 Đảo ngược (Do it in reverse)

a Đảo ngược hành động dùng để giải quyết vấn đề

b Cho các thành phần (hoặc môi trường bên ngoài) di chuyển được thành cố định, và các thành phần cố định thành di chuyển được

Trang 14

c Lật ngược đối tượng (hoặc quá trình)

; ta có thể chọn lựa giữa các công thức này tùy thuộc vào giá trị tương đối của biến , và

Với những bài thơ ta đảo ngược các chuỗi trong từ điển Điều này sẽ giúp cho việc tìm những từ kết thúc giống nhau dễ hơn

14 Cầu tròn hóa (Spheroidality)

a Thay vì dùng các thành phần, bề mặt hay hình dạng phẳng thì sử dụng dạng cong; chuyển từ bề mặt phẳng sang cầu; từ thành phần có dạng khối lập phương (hình hộp) sang các cấu trúc dạng tròn

b Sử dụng con lăn, vật dạng bóng tròn, xoắn ốc, dạng vòm

c Đi từ chuyển động thẳng sang chuyển động xoay, sử dụng lực ly tâm

Liên hệ CNPM:

Thay thế các kiểu dữ liệu thẳng bằng những kiểu dữ liệu trừu tượng dạng vòng Ngoài

ra cũng nên xét các kiểu dữ liệu dạng cây hoặc dạng đồ thị Nguyên lý này cũng áp

Trang 15

dụng được với các giải thuật: thay thế các giải thuật tuyến tính bằng những giải thuật phi tuyến

Nói chung thay thế giải pháp đơn giản nhất bằng giải pháp phức tạp hơn mà có thể có thêm nhiều lợi ích

Ví dụ CNPM:

Thay thế tìm kiếm tuyến tính bằng phương pháp tìm kiếm phức tạp hơn như tìm kiếm nhị phân

Thay thế tìm kiếm nhị phân bằng tìm kiếm nhị phân có trọng số

Đổi hệ tọa độ từ Descartes sang hệ tọa độ cực để dễ dàng tính toán

Thay thế quá trình in từ máy tính đến thẳng máy in bằng cách thông qua server giúp kiểm soát tốt hơn luồng in ấn Không đi theo đường ngắn nhất lại có lợi hơn

15 Linh động (Dynamicity)

a Cho phép (hoặc thiết kế) các đặc tính của đối tượng, môi trường bên ngoài hay quá trình có thể chuyển sang chế độ tối ưu hoặc tìm ra điều kiện hoạt động tối ưu

b Chia đối tượng thành các thành phần có thể chuyển động tương đối với nhau

c Nếu một đối tượng (hoặc quá trình) cố định hay thiếu linh động thì làm cho nó di chuyển hoặc tự thích nghi được

Liên hệ CNPM: Như trên

Trang 16

Khi xử lý ảnh, ta có thể thay đổi ngưỡng cục bộ một cách linh động giúp đạt được

độ tương phản tối ưu để nhận dạng ký tự

Một trình biên dịch sắp xếp lại cây phân tích cú pháp để tối ưu mã sinh ra

Thay đổi khung nhìn trong ứng dụng như PowerPoint Chỉnh sửa văn bản trong chế độ phác thảo (outline) dễ hơn và cho cái nhìn tổng thể tốt hơn chế độ trình bày (presentation)

Một số chương trình đồ họa cho phép hình ảnh tự điều chỉnh tỉ lệ

16 Tác động thiếu hoặc thừa (Partial or excessive action)

a Nếu 100 phần trăm của đối tượng khó đạt được bằng phương pháp đã biết, vấn đề

có thể dễ giải quyết hơn đáng kể nếu thêm hoặc bớt một chút với cùng phương pháp đó

Để sắp xếp các mảng lớn thông thường quicksort sẽ được dùng do giải thuật này thực thi khá tốt Tuy nhiên khi các mảng con cần sắp xếp trở nên nhỏ hơn, giả sử ít hơn 10 phần tử, các giải thuật sắp xếp khác sẽ được dùng do chúng thực thi tốt hơn

Để tăng độ tin cậy của tàu vũ trụ nhiều bộ xử lý sẽ tính toán cùng một giá trị với các thuật toán khác nhau Nếu các kết quả là như nhau thì nhiều khả năng kết quả

đó đúng

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

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w