40 Nguyên tắc sáng tạo và ứng dụng trong tin họcNội dung: - Chia đối tượng thành các phần độc lập.. Nguyên tắc dự phòng: Nội dung: - Bù đắp độ tin cậy không lớn của đối tượng bằng cách
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC PHƯƠNG PHÁP LUẬN SÁNG TẠO
TRONG KHOA HỌC
ĐỀ TÀI:
Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình
Giảng viên hướng dẫn: GS.TSKH Hoàng Văn Kiếm Học viên thực hiện: Nguyễn Tấn Thành
Mã số học viên: CH1301055 Lớp: Cao học khóa 8
Trang 2TP HỒ CHÍ MINH, THÁNG 05/2014
LỜI MỞ ĐẦU 4
I. 40 Nguyên tắc sáng tạo và ứng dụng trong tin học 5
1 Nguyên tắc phân nhỏ: 5
2 Nguyên tắc “tách khỏi”: 5
3 Nguyên tắc phẩm chất cục bộ: 5
4 Nguyên tắc phản đối xứng: 6
5 Nguyên tắc kết hợp: 7
6 Nguyên tắc vạn năng: 7
7 Nguyên tắc “chứa trong”: 8
8 Nguyên tắc phản trọng lượng: 8
9 Nguyên tắc gây ứng suất sơ bộ: 8
10 Nguyên tắc thực hiện sơ bộ: 9
11 Nguyên tắc dự phòng: 9
12 Nguyên tắc đẳng thế: 10
13 Nguyên tắc đảo ngược: 10
14 Nguyên tắc cầu (tròn) hoá: 10
15 Nguyên tắc linh động: 11
16 Nguyên tắc giải “thiếu” hoặc “thừa”: 11
17 Nguyên tắc chuyển sang chiều khác: 12
18 Nguyên tắc sử dụng các dao động cơ học: 12
19 Nguyên tắc tác động theo chu kỳ: 13
20 Nguyên tắc liên tục tác động có ích 13
21 Nguyên tắc “vượt nhanh”: 13
Trang 322 Nguyên tắc biến hại thành lợi: 14
23 Nguyên tắc quan hệ phản hồi: 14
24 Nguyên tắc sử dụng trung gian: 14
25 Nguyên tắc tự phục vụ: 15
26 Nguyên tắc sao chép (copy): 15
27 Nguyên tắc “rẻ” thay cho “đắt”: 16
28 Thay thế sơ đồ cơ học: 16
29 Sử dụng các kết cấu khí và lỏng: 17
30 Sử dụng vỏ dẻo và màng mỏng: 17
31 Sử dụng các vật liệu nhiều lỗ: 17
32 Nguyên tắc thay đổi màu sắc: 18
33 Nguyên tắc đồng nhất: 18
34 Nguyên tắc phân hủy hoặc tái sinh các phần: 19
35 Thay đổi các thông số hoá lý của đối tượng: 19
36 Sử dụng chuyển pha: 19
37 Sử dụng sự nở nhiệt: 20
38 Sử dụng các chất oxy hoá mạnh: 20
39 Thay đổi độ trơ: 21
40 Sử dụng các vật liệu hợp thành (composite): 21
II. Lịch sử phát triển ngôn ngữ lập trình 22
1 Zuse’s Plankalkül: 23
2 Các ngôn ngữ mã giả: 23
3 IBM và Fortran 24
4 Lập trình hàm 27
5 Bước đầu tiên tiến tới sự tinh xảo 29
6 Khởi đầu của ngôn ngữ cho doanh nghiệp 30
Trang 47 Bắt đầu khái niệm chia sẻ thời gian 31
8 Ngôn ngữ cho cả khoa học và doanh nghiệp : PL/I 32
9 Hai ngôn ngữ động đầu tiên : APL và SNOBOL 33
10 Bắt đầu trừu tượng hóa dữ liệu : SIMULA 67 33
11 Thiết kế trực giao : ALGOL 68 34
12 Lập trình dựa trên Logic : Prolog 35
13 Ngôn ngữ được thiết kế công phu nhất : Ada 35
14 Lập trình hướng đối tượng : Smalltalk 36
15 Kết hợp giữa lập trình mệnh lệnh và lập trình hướng đối tượng: C++ 37
16 Một ngôn ngữ hướng đối tượng dựa trên mệnh lệnh : Java 37
17 Các ngôn ngữ kịch bản cho Web 38
18 Xu hướng hiện nay và tương lai 39
III. Kết luận 40
TÀI LIỆU THAM KHẢO 41
Trang 5Lời mở đầu
Khi con người sinh ra bản năng đã ham muốn tìm tòi học hỏi khám phánhững điều mới mẻ Nhờ có khả năng tư duy sáng tạo thiên tài mà nhữngnhà phát minh như Leonardo Da Vinci, Archimedes hay Thomas Edison, …
đã làm thay đổi cuộc sống của nhân loại này Vậy đối với những người bìnhthường như chúng ta thì sao, làm thế nào để có thể có những phát minh,sáng kiến cải tiến đóng góp cho xã hội?
Genrikh Saulovich Atchuller đã hiểu được điều đó và năm 1946, ông đãnung nấu ý định đầu tiên xây dựng một lý thuyết giúp bất kỳ một ngườibình thường nào cũng có thể thực hiện được các sáng chế mà sau này ôngđặt tên là “Lý thuyết giải các bài toán sáng chế” (TRIZ) Với 40 nguyên tắcsáng tạo cơ bản này, có thể nói nó đã tổng quát được hầu như hàng triệuphát minh cải tiến trong cuộc sống con người trong thời gian qua Côngnghệ thông tin là một trong những lĩnh vực điển hình áp dụng các nguyêntắc sáng tạo trên
Bài tiểu luận này sẽ trình bày 40 nguyên tắc sáng tạo và những ví dụminh họa trong công nghệ thông tin đã ứng dụng các nguyên tắc đó Đồngthời phân tích những nguyên lý sáng tạo được vận dụng trong quá trình pháttriển của các ngôn ngữ lập trình
Em chân thành tri ơn thầy – GS.TSKH Hoàng Văn Kiếm, người đã tậntình truyền đạt cho chúng em những kiến thức bổ ích về môn “Phương phápluận sáng tạo trong khoa học” Từ đó giúp em tiếp cận phương pháp tư duysáng tạo trong công việc và trong lĩnh vực nghiên cứu khoa học của mình.Xin gửi lời cảm ơn đến các bạn trong lớp đã nhiệt tình chia sẽ tài liệu,những thông tin cần thiết trong quá trình học
Trang 6I 40 Nguyên tắc sáng tạo và ứng dụng trong tin học
Nội dung:
- Chia đối tượng thành các phần độc lập
- Làm đối tượng trở nên tháo lắp được.
- Tăng mức độ phân nhỏ đối tượng.
Ví dụ:
- Để giải quyết bài toán phức tạp trên máy tính, ta thường chọn
phương pháp tiếp cận top-down trong thiết kế chương trình, chia hệthống thành nhiều phần nhỏ hơn Bằng cách đó, phân rã hệ thốngphức tạp thành nhiều mô-đun ít phức tạp hơn Quá trình này có thểđược thực hiện lại cho từng mô-đun cho đến khi các mô-đun khôngcòn bất cứ sự phức tạp nào
- Chương trình con trong ngôn ngữ lập trình hướng thủ tục, hàm.
2 Nguyên tắc “tách khỏi”:
Nội dung:
- Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại
tách phần duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đốitượng
Ví dụ:
- Trong kỹ thuật nén ảnh như JPEG, ta tách bỏ thông tin để đạt được tỉ
lệ nén ảnh cao hơn của một ảnh mà không biến dạng ảnh quá nhiều.Tương tự trong cơ chế nén âm thanh MP3 ta tách bỏ đi các phần tínhiệu của âm thanh mà đa số mọi người không thể nghe được nhờ cácđặc điểm chức năng nghe của con người
- Kiến trúc mô hình 3 lớp (Presentation Layer, Business Layer, Data
Access Layer ) trong thiết kế ứng dụng phần mềm
Trang 73 Nguyên tắc phẩm chất cục bộ:
Nội dung:
- Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có
cấu trúc đồng nhất thành không đồng nhất
- Các phần khác nhau của đối tượng phải có các chức năng khác nhau.
- Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất
đối với công việc
Ví dụ:
- Mô hình: Blackboard Được sử dụng cho các vấn đề không xác định
được chiến lược giải pháp Ý tưởng là một tập hợp các chương trìnhđộc lập mà cùng làm việc cộng tác trên một cấu trúc dữ liệu chung.Mỗi chương trình giải quyết một phần của tổng thế công việc, và tất
cả chương trình làm việc với nhau về giải pháp Các chương trìnhchuyên biệt này độc lập lẫn nhau Chúng không gọi lẫn nhau, không
có một sự tuần tự nào định trước về hoạt động của chúng Thay vào
đó, chúng được điều khiển bởi hệ thống chủ yếu dựa vào trạng tháihiện tại của tiến độ Một thành phần điều khiển trung tâm sẽ đánh giátrạng thái hiện tại của việc xử lý và điều phối các chương trình Cáchthức điều khiển hướng dữ liệu này làm thử nghiệm với các thuật toánkhác nhau có thể, và cho phép việc suy ra qua các thử nghiệm
“heuristic” để điều khiển việc xử lý
- Sửa một danh sách liên kết của các đối tượng xe máy thành một danh
sách liên kết của các đối tượng xe Việc trừu tượng hóa cao hơn này
sẽ cho phép các đối tượng không đồng bộ (xe đạp, xe hơi, …) đượclưu trữ trong cùng lớp bộ chứa và ngược lại
4 Nguyên tắc phản đối xứng:
Nội dung:
- Chuyển đối tượng có hình dạng đối xứng thành không đối xứng (nói
chung giảm bật đối xứng)
Ví dụ:
Trang 8- Chuẩn của sắp xếp nhanh thường lấy phần tử giữa làm phần tử chốt.
Bằng cách sử dụng phần tử trung vị trong ba phần tử đứng đầu, đứnggiữa và đứng cuối làm phần tử chốt thường sẽ đạt được hiệu suất tốthơn
- Trong thanh công cụ tìm kiếm bài hát, thay vì chỉ nhập vào tên bài
hát Ta có thể nhập vào tên ca sĩ, tên nhạc sĩ, một đoạn bài hát, … đểgiúp người dùng thuận lợi hơn trong việc tìm kiếm bài hát
- Nhiều công cụ lập trình đã tích hợp trình biên dịch, Web server,
database, thiết bị giả lập… để hổ trợ công việc cho lập trình viên
- Một trang web có thể được xây dựng từ nhiều khung (frame) Mỗi
frame có thể được tải từ một server khác nhau Điều này làm tăng tốc
độ tải trang do nhiều kết nối được sử dụng đồng thời
6 Nguyên tắc vạn năng:
Nội dung:
- Đối tượng thực hiện một số chức năng khác nhau, do đó không cần
sự tham gia của các đối tượng khác
Ví dụ:
- Các phần mềm tăng tốc hệ thống như “tuneup utilities” có chức năng
1-click có thể dọn các registry, loại bỏ các shortcut bị phá hủy, xóacác tập tin tạm, phân mảnh ổ đĩa, …
- Các trình duyệt web như IE, Firefox hay Google Chrome thì trong
phần khung mà để ta nhập địa chỉ web vào thì ta cũng có thể nhậpcác từ khóa tìm kiếm vào đó để tìm kiếm thay vì truy cập các trang
Trang 97 Nguyên tắc “chứa trong”:
Nội dung:
- Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại
chứa đối tượng thứ ba
- Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác.
Ví dụ:
- Kiến trúc bảy tầng OSI trong network.
- Cấu trúc dữ liệu như danh sách liên kết, cây Các thuật toán đệ quy
như: sắp xếp nhanh, backtracking, …
8 Nguyên tắc phản trọng lượng:
Nội dung:
- Bù trừ trọng lượng của đối tượng bằng cách gắn nó với các đối tượng
khác có lực nâng
- Bù trừ trọng lượng của đối tượng bằng tương tác với môi trường như
sử dụng các lực thủy động, khí động
Ví dụ:
- Để tăng hiệu xuất của các web server, ta có thể chia một trang thành
nhiều frame và lưu trữ các frame trong các ổ đĩa khác nhau hay trêncác server khác nhau Người ta có thể phân bổ các ảnh lớn hay từngmảnh dữ liệu qua các ổ đĩa khác nhau thay vì đặt chúng chung mộtđĩa Hiệu xuất sẽ tăng lên
- Trong các hàm băm, ta phân bổ các đối tượng vào một tập các bộ
chứa trong khi giữ số lượng của các đối tượng trong một bộ chứa xấp
xỉ bằng nhau
9 Nguyên tắc gây ứng suất sơ bộ:
Nội dung:
- Gây ứng suất trước với đối tượng để chống lại ứng suất không cho
phép hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứngsuất trước để khi làm việc sẽ dùng ứng suất ngược lại)
Trang 10Ví dụ:
- Giả sử rằng một người sử dụng phải chờ đợi trong một khoảng thời
gian cho một hành động thực thi nào đó (tìm kiếm, sao chép, cài đặtchương trình, ) Nếu ta thông báo cho người sử dụng rằng sẽ mấtkhoảng 5 phút, nhưng nếu thời gian thực thi kéo dài hơn thì người sửdụng sẽ không thích Nếu ta thông báo mất 10 phút và thời gian thựcthi ít hơn thì người sử dụng sẽ vui hơn
- Khi một ứng dụng bắt đầu đọc từ một cơ sở dữ liệu, ta có thể tải
(load) các bảng quan trọng hay các chỉ mục trước
10 Nguyên tắc thực hiện sơ bộ:
Nội dung:
- Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối
với đối tượng
- Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí
thuận lợi nhất, không mất thời gian dịch chuyển
Ví dụ:
- Đọc cache ổ đĩa trước chuẩn bị cho việc đọc đĩa thực sự.
- Driver máy in kiểm thử tính sẵn sàng của máy in trước khi người sử
dụng hoàn tất các thiết lập của họ
11 Nguyên tắc dự phòng:
Nội dung:
- Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước
các phương tiện báo động, ứng cứu, an toàn
Ví dụ:
- Hệ điều hành sao lưu dữ liệu các tập tin quan trọng của nó trước khi
được sử dụng Nếu xảy ra lỗi có thể khôi phục lại mà không phải càilại
- Thiết lập thời gian timeout cho các thao tác như truy vấn cơ sở dữ
liệu, kết nối tới một dịch vụ mạng, …
Trang 11- Sắp xếp lại một cơ sở dữ liệu hay tập tin chỉ khi nào thực sự cần
thiết Thường thì dữ liệu bị xóa bằng một cái cờ đánh dấu nó bị xóa.Các bản ghi trong cơ sở dữ liệu không phải di chuyển mặc dù chúngdường như có vị trí mới trong cơ sở dữ liệu
13 Nguyên tắc đảo ngược:
Nội dung:
- Thay vì hành động như yêu cầu bài toán, hành động ngược lại (ví dụ,
không làm nóng mà làm lạnh đối tượng)
- Làm phần chuyển động của đối tượng (hay môi trường bên ngoài)
thành đứng yên và ngược lại, phần đứng yên thành chuyển động
Ví dụ:
- Vài phép tính toán có thể gây ra tràn bộ nhớ Bằng cách thay đổi thứ
tự tính toán có thể ngăn chặn việc này Công thức p = x * y / z; cóthể được viết bằng p = (x / z) * y hay p = y / z * x; Ta có thể chọnmột trong các công thức phụ thuộc vào mối quan hệ giá trị giữa x, y,z
- Kỷ thuật ảo hóa trong điện toán đám mây.
14 Nguyên tắc cầu (tròn) hoá:
Nội dung:
- Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng
thành mặt cầu, kết cấu hình hộp thành kết cấu hình cầu
- Sử dụng các con lăn, viên bi, vòng xoắn.
Trang 12- Chuyển sang chuyển động quay, sử dung lực ly tâm.
- Cần thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài
sao cho chúng tối ưu trong từng giai đoạn làm việc
- Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với
nhau
Ví dụ:
- Thay đổi chế độ nhìn trong một ứng dụng như PowerPoint Chỉnh
sửa văn bản trong chế độ outline thì sẽ dàng và nhìn tổng quan hơntrong chế độ trình bày
- Các gói dữ liệu thông minh định tuyến bản thân chúng trên network.
16 Nguyên tắc giải “thiếu” hoặc “thừa”:
Nội dung:
- Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn
hoặc nhiều hơn “một chút” Lúc đó bài toán có thể trở nên đơn giảnhơn và dễ giải hơn
Ví dụ:
- Để sắp xếp một mảng lớn thì thì thuật toán sắp xếp nhanh thường
được sử dụng Tuy nhiên khi các mảng con để sắp xếp trở nên nhỏ, íthơn 10 phần tử, các thuật toán khác được sử dụng thực thi tốt hơn
- Để nâng cao độ tin cậy của tàu vũ trụ, nhiều bộ xử lý khác nhau tính
toán cùng đầu vào với nhiều thuật toán khác nhau Nếu kết quả nàogiống nhau nhiều nhất thì đó là kết quả đúng
Trang 1317 Nguyên tắc chuyển sang chiều khác:
Nội dung:
- Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo
đường (một chiều) sẽ được khắc phục nếu cho đối tượng khả năng dichuyển trên mặt phẳng (hai chiều) Tương tự, những bài toán liênquan đến chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽđược đơn giản hoá khi chuyển sang không gian (ba chiều)
- Chuyển các đối tượng có kết cấu một tầng thành nhiều tầng.
- Đặt đối tượng nằm nghiêng.
- Sử dụng mặt sau của diện tích cho trước.
- Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau
của diện tích cho trước
Ví dụ:
- Một hàng đợi mà khi lớn dần và không còn chỗ để cho một phần tử
mới vào thì có thể đặt phần tử đó vào ổ đĩa cho đến khi còn chỗ trốngtrong bộ nhớ chính
- Sử dụng ký hiệu thập lục phân cho các giá trị có thể làm cho các thao
tác với bit trở nên dễ hiểu hơn
18 Nguyên tắc sử dụng các dao động cơ học:
Nội dung:
- Làm đối tượng dao động Nếu đã có dao động, tăng tầng số dao động
( đến tầng số siêu âm)
- Sử dụng tầng số cộng hưởng.
- Thay vì dùng các bộ rung cơ học, dùng các bộ rung áp điện.
- Sử dụng siêu âm kết hợp với trường điện từ.
Ví dụ:
- Sử dụng thuật toán MIN-MAX luân phiên nhau trong trò chơi và
trong trí tuệ nhân tạo
- Thuật toán round robin đọc luân phiên từ các hàng đợi.
Trang 1419 Nguyên tắc tác động theo chu kỳ:
Nội dung:
- Chuyển tác động liên tục thành tác động theo chu kỳ (xung).
- Nếu đã có tác động theo chu kỳ, hãy thay đổi chu kỳ.
- Sử dụng các khoảng thời gian giữa các xung để thực hiện tác động
khác
Ví dụ:
- Bộ thu gom rác chỉ thực hiện khi rác trên một ngưỡng nhất định.
- Trong vài trường hợp ta nên cập nhật một bảng nào đó của cơ sở dữ
liệu chỉ một lần trên một ngày và tính toán lại việc sắp xếp chỉ mụcmột lần một ngày thay vì mỗi lần cập nhật đơn lẻ Tương tự loại bỏcác mục được đánh dấu xóa chỉ một lần một ngày
20 Nguyên tắc liên tục tác động có ích
Nội dung:
- Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng
cần luôn luôn làm việc ở chế độ đủ tải)
- Khắc phục vận hành không tải và trung gian.
- Chuyển chuyển động tịnh tiến qua lại thành chuyển động qua.
Ví dụ:
- Trong hệ điều hành đa nhiệm, các tác vụ có thể chạy nền như quét
vi-rút, in ấn, …
- Tự động hoàn thành các từ trong lúc gõ văn bản hay trong lập trình
21 Nguyên tắc “vượt nhanh”:
Nội dung:
- Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn.
- Vượt nhanh để có được hiệu ứng cần thiết.
Ví dụ:
Trang 15- Tắt kết nối tới cơ sở dữ liệu trong khi sao lưu Sao lưu có thể thực
hiện nhanh hơn và sau khi sao lưu mọi người có thể sử dụng cơ sở
dữ liệu
- Khi phát hiện cúp điện, ta nên thực hiện thao tác dump bộ nhớ để ổ
đĩa lưu các dữ liệu lại
22 Nguyên tắc biến hại thành lợi:
Nội dung:
- Sử dụng những tác nhân có hại (thí dụ tác động có hại của môi
trường) để thu được hiệu ứng có lợi
- Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại
khác
- Tăng cường tác nhân có hại đến mức nó không còn có hại nữa.
Ví dụ:
- Nếu một chương trình mà có tác vụ tính toán hay truy vấn mất một
thời gian dài thì hiển thị một thông báo để người sử dụng có thể phamột tách cafe hay làm các bài thể dục thư giãn khác Điều này có thểtốn thời gian hơn nhưng người sử dụng không phải ở trong tình trạngchờ đợi thực sự
- Đọc bất kỳ một cuốn sách nào về các anti-pattern.
23 Nguyên tắc quan hệ phản hồi:
Nội dung:
- Thiết lập quan hệ phản hồi.
- Nếu đã có quan hệ phản hồi, hãy thay đổi nó.
Ví dụ:
- Có một thành phần giám sát trong bất kỳ phần mềm nào để mà giám
sát sự thực hiện, hiệu suất bộ nhớ và có hành động khắc phục
- Bộ xử lý ngoại lệ (exception handling)
24 Nguyên tắc sử dụng trung gian:
Nội dung:
Trang 16- Sử dụng đối tượng trung gian, chuyển tiếp.
Ví dụ:
- Sử dụng một máy chủ cho các máy in để giữ các công việc tạm thời
khi các máy in đang offline
- Các thiết kế pattern thay vì biết trạng thái của vài đối tượng và giữ
chúng cập nhật khi trạng thái của mình thay đổi, ta chỉ cần báo phầntrung gian hay yêu cầu phần trung gian Điều này làm giảm giao tiếpgiữa các đối tượng và giảm độ phức tạp Như tạo một đối tượng xử
lý tất cả các vấn đề cấu hình hay observer pattern
- Một trình duyệt web có thể chuyển hướng request của bạn tới một
website khác nếu server không tồn tại Chẳng hạn Google bị offlinethì có chuyển tới Bing, Yahoo, …
- Các packet tự quản lý bản thân mình, chúng tìm con đường tốt nhất
của chúng khi định tuyến
26 Nguyên tắc sao chép (copy):
Nội dung:
- Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền,
không tiện lợi hoặc dễ vỡ, sử dụng bản sao
- Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học
(ảnh, hình vẽ) với các tỷ lệ cần thiết
- Nếu không thể sử dụng bản sao quang học ở vùng biẻu kiến (vùng
ánh sáng nhìn thấy được bằng mắt thường), chuyển sang sử dụng cácbản sao hồng ngoại hoặc tử ngoại
Trang 17- Thay thế đối tượng đắt tiền bằng bộ các đối tượng rẻ có chất lượng
kém hơn (thí dụ như về tuổi thọ)
Ví dụ:
- Tính toán với số nguyên thay vì dùng số kiểu dấu chấm động nếu
vẫn chính xác với ứng dụng của bạn, thời gian thực hiện sẽ nhanhhơn
- Xây dựng một siêu máy tính từ những máy tính cũ.
28 Thay thế sơ đồ cơ học:
Nội dung:
- Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị.
- Sử dụng điện trường, từ trường và điện từ trường trong tương tác với
đối tượng
- Chuyển các trường đứng yên sang chuyển động, các trường cố định
sang thay đổi theo thời gian, các trường đồng nhất sang có cấu trúcnhất định
- Sử dụng các trường kết hợp với các hạt sắt từ.
Ví dụ:
- Dụng cụ ống nghe khám bệnh của một bác sĩ có thể bằng thế bằng
một microphone và một headphone Ưu điểm là một đoạn ghi âmđược thực hiện, xử lý các tín hiệu phức tạp như phân tích tần số, nhịptim, …
- Chuyển đổi văn bản thành giọng nói (text-to-speech) hay giọng nói
thành văn bản (speech-to-text)
Trang 1829 Sử dụng các kết cấu khí và lỏng:
Nội dung:
- Thay cho các phần của đối tượng ở thể rắn, sử dụng các chất khí và
lỏng: nạp khí, nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phảnlực
Ví dụ:
- Sử dụng biến thay vì hằng số được code cứng Khi hằng số thay đổi
chỉ cần thay đổi ở một nơi
- Aero Glass GUI của Win7 hay Aqua GUI của Apple, …
30 Sử dụng vỏ dẻo và màng mỏng:
Nội dung:
- Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối.
- Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẻo và
màng mỏng
Ví dụ:
- Các lớp được định nghĩa với các interface có thể thay đổi nội dung
các interface bên trong lớp
- Sử dụng các trường trong header của TCP/IP mà không được sử
dụng để truyển tải dữ liệu (được sử dụng bởi những người viết virusđể làm botnet)
- Pattern Inversion of Control (IoC), các phụ thuộc sẽ được tiêm vào
ứng dụng tại nơi xác định trước bởi bộ chứa thay vì phải code cứng
Trang 19- Các phần mềm thông qua việc định nghĩa các interface trước có thể
được cắm vào bởi nhiều nhà phát triển bên thứ ba
32 Nguyên tắc thay đổi màu sắc:
Nội dung:
- Thay đổi màu sắc của đối tượng hay môi trường bên ngoài.
- Thay đổi độ trong suốt của của đối tượng hay môi trường bên ngoài.
- Để có thể quan sát được những đối tượng hoặc những quá trình, sử
dụng các chất phụ gia màu, hùynh quang
- Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh
dấu
- Sử dụng các hình vẽ, ký hiệu thích hợp.
Ví dụ:
- Một đồng hồ gần như trong suốt trong desktop trở nên ít trong suốt
hơn khi gần đến thời gian một cuộc hẹn
- Các ứng dụng cho nhà thiên văn học có thể thay đổi màu sắc của
giao diện người sử dụng đến màu đỏ hay đen thay vì đầy đủ màu sắc.Điều này cần thiết khi sử dụng trong bóng tối, mắt người cần thờigian để làm quen với bóng tối để xem các ngôi sao Một giao diệnmàu đỏ hay đen không ảnh hưởng tới sự nhạy cảm của mắt
33 Nguyên tắc đồng nhất:
Nội dung:
- Những đối tượng, tương tác với đối tượng cho trước, phải được làm
từ cùng một vật liệu (hoặc từ vật liệu gần về các tính chất) với vậtliệu chế tạo đối tượng cho trước
Ví dụ:
- Sử dụng trình biên dịch để biên dịch chính nó.
- Một hàm mà nhận các đối số là các lớp cơ sở để mà các lớp con cũng
được xử lý như vậy
Trang 2034 Nguyên tắc phân hủy hoặc tái sinh các phần:
Nội dung:
- Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không càn thiết
phải tự phân hủy (hoà tan, bay hơi ) hoặc phải biến dạng
- Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong
quá trình làm việc
Ví dụ:
- Giải phóng bộ nhớ không cần sử dụng nữa bởi bộ thu gom rác như
trong Java
- Giữ một vùng chứa của các đối tượng phức tạp mà thường xuyên
được tạo ra, sử dụng và xóa đi Bằng cách giữ chúng trong vùngchứa, quá trình tạo ra nhanh hơn nhiều khi các đối tượng được lấy từvùng chứa Nó cũng giảm tải cho bộ thu gom rác cho các đối tượng
bị xóa
35 Thay đổi các thông số hoá lý của đối tượng:
Nội dung:
- Thay đổi trạng thái đối tượng.
- Thay đổi nồng độ hay độ đậm đặc.
- Thay đổi độ dẻo.
- Thay đổi nhiệt độ, thể tích.
Ví dụ:
- Bằng cách làm việc với template, một trình biên tập trở nên đa năng
hơn, chẳng hạn tải một template highlight cú pháp khác làm chotrình biên tập phù hợp với một ngôn ngữ lập trình khác
- Chạy một chương trình với nhiều điều kiện tải khác nhau, chẳng hạn
chạy trong hệ điều hành Windows hay Linux, màn hình 10’ hay 15’,
…
36 Sử dụng chuyển pha:
Nội dung:
Trang 21- Sử dụng các hiện tượng nảy sinh trong quá trình chuyển pha như:
thay đổi thể tích, toả hay hấp thu nhiệt lượng
Ví dụ:
- Một danh sách liên kết có thể giữ một con trỏ ở phần tử cuối cùng
được chèn vào Khi ta cần tìm kiếm qua danh sách liên kết này, ta cóthể kiểm tra con trỏ này để suy xét nên bắt đầu từ nút này trong danhsách hay bắt đầu từ đầu danh sách Điều này tăng tốc tìm kiếm tuyếntính trung bình gấp 2 lần
- Khi chuyển đổi từ một loại thiết bị/OS/chương trình sang một cái
khác, giám sát chặt chẽ những gì xảy ra chẳng hạn như cách chuyểnđổi như thế nào có thể có ích trong tương lai
37 Sử dụng sự nở nhiệt:
Nội dung:
- Sử dụng sự nở (hay co) nhiệt của các vật liệu.
- Nếu đã dùng sự nở nhiệt, sử dụng với vật liệu có các hệ số nở nhiệt
khác nhau
Ví dụ:
- Khi dữ liệu được nén nó có thể được gửi nhanh hơn qua mạng, hoặc
tốn ít không gian lưu trữ hơn Người ta phải giải nén để có thể sửdụng nó
- Khi tính toán với đô-la hay các tiền tệ khác thì thường là một tính
toán dấu chấm động Bằng cách nhân các số với 100, ta có thể tínhtoán trong miền số nguyên, nhanh hơn và ít lỗi làm tròn số hơn
38 Sử dụng các chất oxy hoá mạnh:
Nội dung:
- Thay không khí thường bằng không khí giàu oxy.
- Thay không khí giàu oxy bằng chính oxy.
- Dùng các bức xạ ion hoá tác động lên không khí hoặc oxy.
- Thay oxy giàu ozon (hoặc oxy bị ion hoá) bằng chính ozon.
Ví dụ: