Đề tài Các nguyên lý sáng tạo và phần mềm máy tính

Pattern đượ c hiểu theo nghĩa tái sử dụng ý tưởn g hơn là mã lệnh. Pattern cho phép các nhà t hiết kế có thể cùng ngồi lại với nhau và cùng giải quy ết một vấn đề nào đó mà không phải mất nhiều thời gian tranh cãi. Tron g rất nhiều trường hợp, dự án phần mềm thất bại là do các nhà ph át triển không có được sự hiểu biết chung tro ng các vấn đề về kiến trúc phần mềm. N goài ra, pattern cũng cung cấp nhữn g thuật ngữ và khái niệm chung trong t hiết kế. N ói một cách đơn giản, khi đề cập đến m ột pattern nào đấy, bất kỳ ai biết pattern đó đều có thể nhanh chóng hình dung ra “ bức tranh” của giải pháp. Và cuối cùng, nếu áp dụng pattern hiệu quả thì việc bảo trì phần m ềm cũng được tiến hành thuận lợi hơn, nắm bắt kiến trúc hệ thống nhanh hơn.

pdf24 trang | Chia sẻ: lvcdongnoi | Ngày: 18/06/2014 | Lượt xem: 1491 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề tài Các nguyên lý sáng tạo và phần mềm máy tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 1 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN NGÀNH: KHOA HỌC MÁY TÍNH  BÀI THU HOẠCH MÔN HỌC PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC Đề tài: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẦN MỀM MÁY TÍNH Giảng viên hướng dẫn: GS.TSKH.Hoàng Kiếm Học viên: Nguyễn Khắc Duy Khóa 22 KHMT - Mã số: 12 11 017 TP HCM, năm 2012 TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 2 TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 3 Mở đầu Khoa học và công nghệ đã trở thành yếu tố cốt tử của sự phát triển, ảnh hưởng trực tiếp đến nền kinh tế toàn cầu. Điều này được phản ánh rõ trong việc hoạch định các chính sách và chiến lược phát triển khoa học, công nghệ và k inh tế của nhiều nước trên thế giới. Nghiên cứu khoa học ngày càng được quan tâm hơn cùng với việc đầu tư của các quốc gia. Trong bài thu hoạch này em muốn tóm tắt lại một số kiến thức về phương pháp nghiên cứu khoa học, đồng thời cũng liên hệ với thực tế việc áp dụng “40 nguyên lý sáng tạo” trong phần mềm máy tính. Qua đây, em cũng xin được gửi lời cảm ơn chân thành đến Giáo sư - T iến sỹ Khoa Học Hoàng Kiếm, người không những tận tâm truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học “Phương pháp nhiên cứu khoa học trong tin học” mà còn kích thích tư duy, tăng khả năng nghiên cứu tìm tòi trong mỗi cá nhân. Cũng xin gởi lời cảm ơn đến các bạn bè học viên trong lớp, những người bạn luôn sẵng sàng chia sẻ kiến thức thu nhận được với nhau. Học viên: Nguyễn Khắc Duy TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 4 MỤC LỤC Mở đầu ..................................................................................................................................... 3 I. GIỚI THIỆU: ....................................................................................................................... 5 II. LIÊN HỆ 40 NGUYÊN LÝ SÁNG TẠO VÀ PHẦN MỀM MÁY TÍNH : ............................. 5 1. Nguyên tắc phân nhỏ .................................................................................................... 5 2. Nguyên tắc “tách khỏi”................................................................................................. 6 3. Nguyên tắc phẩm chất cục bộ ....................................................................................... 6 4. Nguyên tắc phản đối xứng ............................................................................................ 8 5. Nguyên tắc kết hợp ....................................................................................................... 8 6. Nguyên tắc vạn năng .................................................................................................... 8 7. Nguyên tắc “chứa trong” .............................................................................................. 9 8. Nguyên tắc phản trọng lượng ....................................................................................... 9 9. Nguyên tắc gây ứng suất sơ bộ ................................................................................... 10 10. Nguyên tắc thực hiện sơ bộ ..................................................................................... 10 11. Nguyên tắc dự ph òng .............................................................................................. 10 12. Nguyên tắc đẳng thế................................................................................................ 11 13. Nguyên tắc đảo ngược............................................................................................. 11 14. Nguyên tắc cầu (tròn) hoá ....................................................................................... 11 15. Nguyên tắc l inh động .............................................................................................. 12 16. Nguyên tắc gi ải “thiếu” hoặc “thừa”....................................................................... 12 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 ............................................................... 13 19. Nguyên tắc tác động theo chu kỳ ............................................................................ 13 20. Nguyên tắc l iên tục tác động có ích ........................................................................ 14 21. Nguyên tắc “vượt nhanh” ........................................................................................ 14 22. Nguyên tắc biến hại thành lợi ................................................................................. 14 23. Nguyên tắc quan hệ phản hồi .................................................................................. 15 24. Nguyên tắc sử dụng trung gian ............................................................................... 15 25. Nguyên tắc tự ph ục vụ ............................................................................................ 15 26. Nguyên tắc sao chép (copy) .................................................................................... 16 27. Nguyên tắc “rẻ” thay cho “đắt”............................................................................... 16 28. Thay thế sơ đồ cơ học ............................................................................................. 16 29. Sử dụng vỏ dẻo và màng mỏng............................................................................... 17 30. Nguyên tắc thay đổi màu sắc .................................................................................. 19 31. Nguyên tắc phân hủy hoặc tái sinh các phần .......................................................... 19 32. Thay đổi các thông số hoá lý của đố i tượng ........................................................... 19 33. Sử dụng các vật liệu hợp thành (composite) ........................................................... 20 Đặc điểm chung: ............................................................................................................... 21 III. KẾT LUẬN: ..................................................................................................................... 23 IV. TÀI LIỆU THAM KHẢO: ................................................................................................. 24 TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 5 I. GIỚI THIỆU: Genrich Altshuller phát triển 40 nguyên tắc cách đây hơn 20 năm. Ông và các cộng sự của mình đánh giá hàng ngàn bằng sáng chế trên toàn thế giới, lựa chọn đặc biệt từ các ngành công nghiệp hàng đầu, đúc kết nên bản chất của những sáng t ạo của giải pháp cho mâu thuẫn kỹ thuật. Đặc biệt, Altshuller đã quan tâm đến việc điều tra các mâu thuẫn đã được giải quyết mà không có sự thỏa hiệp. Altshuller nhận thấy rằng việc sử dụng các nguyên tắc trước đây được sử dụng để giải quyết các vấn đề tương tự trong sáng tạo các giải pháp khác có thể giải quy ết các vấn đề kỹ thuật. Altshuller đã xác định 40 nguyên t ắc từ sự phân tích những phát minh, sáng chế thành công. II. LIÊN HỆ 40 NGUYÊN LÝ SÁNG TẠO VÀ PHẦN MỀM MÁY TÍNH : 1. Nguyên tắc phân nhỏ a) Chia đối tượng thành các phần độc lập. Ví dụ: Intelligent Agents (Các tác tử thông minh) có thể hoạt động độc lập với nhau, đạt được một mục tiêu chung. b) Làm đối tượng trở nên tháo lắp được. Ví dụ: C++ temp lat es: cung cấp một phương tiện chứa mã để tổng quát hóa các trường hợp để xử lý, không cần t hiết phải xử lý các trường hợp có chung đặc điểm (generic programming)  Tối ưu hóa mã nguồn, tránh lặp lại xử lý. c) Tăng mức độ phân nhỏ đối tượng. Ví dụ: TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 6 Tăng mức độ phân nhỏ cho đến khi đạt đến một ngưỡng - atomic threshold (Ngưỡng nguyên tử là đơn vị cấu trúc nhỏ nhất của một đối tượng hoặc một thành phần, ví dụ, các bit có thể được xem như nguy ên tử trong bối cảnh của một chương trình mã hóa). Phần mềm Ví dụ: Fragmentation of Confidential Objects (Tạm gọi là Phân mảnh các đối tượng bí mật). Ý tưởng này, dựa trên sự phân mảnh đối tượng tại thời gian thiết kế, là giảm chế biến trong các đối tượng bí mật, nhiều đối tượng không bảo mật có thể được sản xuất tại thời gian thiết kế, các đối tượng ứng dụng có thể được xử lý trên máy tính dùng chung không đáng tin cậy. 2. Nguyên tắc “tách khỏi” 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 đối tượng. Ví dụ 1: Khai t hác văn bản trong hình ảnh. Kĩ thuật phân tách văn bản rất hữu ích trong việc định vị và giải nén các khối văn bản trong hình ảnh. Thuật toán hoạt động mà không có kiến thức trước khi kích thước văn bản, định hướng hoặc font chữ. Nó được thiết kế để loại bỏ thông tin hình ảnh nền và đánh dấu, hoặc xác định các khu vực của hình ảnh có chứa văn bản. Ví dụ 2: Parser. Dữ liệu phân tích cú pháp đề cập đến quá trình lập trình dữ liệu đầu vào được chia thành từng mảnh nhỏ riêng biệt của thông tin mà có thể được dễ dàng hơn giải thích và hành động. 3. Nguyên tắc phẩm chất cục bộ a) 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. b) Các phần khác nhau của đối tượng phải có các chức năng khác nhau. c) 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. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 7 Ví dụ 1: Một phương pháp lấy mẫu thống nhất không cho nhận dạng ký tự. Phương pháp xác định khai thác tính năng như các t ính năng lấy mẫu một chiều trong một hướng vuông góc với một định hướng dòng nhất định. Nó mẫu tính năng ở các khoảng thời gian không thống nhất như vậy là để tránh misidentifying hai dòng trong gần như là một dòng duy nhất. Ví dụ 2: Non-uniform access algorithms (Các thuật toán truy cập không đồng đều). Trong môi trường không dây, thông tin được phát sóng trên các kênh truyền thông cho các khách hàng bằng cách sử dụng mạnh mẽ, hoạt động bằng pin palmtops. Để bảo tồn năng lượng, thông t in được phát sóng phải được tổ chức để khách hàng có chọn lọc có t hể điều chỉnh ở phần mong muốn phát sóng. Hầu hết các công việc hiện t ại t ập trung vào phát sóng t hống nhất. Tuy nhiên, rất thường xuyên, một lượng nhỏ thông tin thường xuyên hơn truy cập bởi số lượng lớn các khách hàng trong khi phần còn lại là ít hơn nhu cầu. Sử dụng chất lượng chủ yếu của địa phương, không thống nhất thuật t oán có thể được phát triển để dự đoán hành vi truy cập thích hợp cho một hoạt động cụ thể. Ví dụ 3: Thúc đẩy một đối tượng dữ liệu đến level cao hơn trong một single index tree. Xét bối cảnh của dữ liệu không gian (spatial data) trong kĩ thuật xử lý và quản lý dữ liệu. Không thống nhất trong dữ liệu mức độ là một đặc tính chung của dữ liệu không gian. Lập chỉ mục dữ liệu không đồng nhất như vậy bằng cách sử dụng cấu trúc chỉ số thông thường không gian như R-cây là không hiệu quả vì hai lý do: (1) sự thống nhất, làm tăng khả năng chồng chéo các mục chỉ mục, và, (2) phân cụm dữ liệu không đồng nhất có thể không gian chỉ số chết hơn phân nhóm dữ liệu thống nhất. Sử dụng cách TRIZ, chúng ta phải nhìn trong môi trường hiện tại của chúng ta để thực hiện các chức năng hữu ích. Để thực hiện các t ác động của những bất thường "hữu ích", chúng ta phát minh ra một kế hoạch mới t húc đẩy các đối tượng dữ liệu TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 8 cấp độ cao hơn trong các cấu trúc chỉ số dựa trên cây, những đối tượng sau đó thực hiện các chức năng khác nhau dựa vào bối cảnh vị trí trong cây chỉ mục. 4. Nguyên tắc phản đối xứng 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ậc đối xứng). Ví dụ: Trong việc xây dựng các thuật toán đồ họa máy tính. nguyên lý phản đối xứng được áp dụng. 5. Nguyên tắc kết hợp a) Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận. b) Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận. Ví dụ: Các hệ thống giao dịch trực tuyến (internet banking, core banking) của các ngân hàng. Ngày nay đa số các ngân hàng đã liên minh với nhau trong việc xử lý các giao dịch của khách hàng. Vì vậy đòi hỏi ở mỗi ngân hàng phải có các phần mềm xử lý giao dịch cho phép liên thông, kết nối, phối hợp và đồng bộ với các ngân hàng khác. 6. Nguyên tắc vạn năng Đố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ụ: Simulink là phần mềm dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động. Simulink cho phép mô t ả một hệ thống tuyến tính, hệ phi tuyến các phương trình trong thời gian liên tục, gián đoạn hay một hệ kết hợp liên tục và gián đoạn. Hệ thống cũng có thể có nhiều tốc độ khác nhau. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 9 Công cụ mô phỏng Simulink được tích hợp sẵn thư viện mô hình chứa các khối như khối nhận tín hiệu, các nguồn tín hiệu, các phần tử tuyến tính và phi tuy ến ,…mô phỏng trong nhiều lĩnh vực: hàng không, kỹ thuật số, dao động, cơ khí, giao thông, …Việc thiết kế Simulink theo nguyên tắc vạn năng giúp tiết kiệm không gian, không cần thiết phải xây dựng mỗi công cụ cho mỗi chức năng. Đồng thời, người dùng có thể tạo ra những khối chức năng mới, tăng số chức năng của đối tượng. 7. Nguyên tắc “chứa trong” a) 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 b) Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác. Ví dụ: Phần mềm Matlab Tính toán kỹ thuật là một lĩnh vực rộng lớn. Do đó, kho công cụ trong Matlab được quản lí theo nguyên tắc chứa trong. Hộp Toolbox chứa đựng nhiều Toolbox cho nhiều lĩnh vực khác nhau. Bên trong mỗi Toolbox chứa: + Các Tool: các phần mềm có cấu trúc khác nhau, sử dụng t hư viện lệnh của Toolbox + Help: Danh mục các hàm và t ham số của hàm dùng trong Toolbox. + Demos: chức các ví dụ đã thực hiện sẵn và giải thích. + Product Page: trang trao đổi thông tin trực tuyến về Tool. “Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác”, khi khởi động một Tool, các chức năng của Tool cũng đuợc khởi động. Các chức năng hoạt động trong suốt thời gian hoạt động của Tool và cũng kết thúc khi đóng Tool. Như vậy, các chức năng của mỗi Tool là hoàn toàn chứa trong Tool đó. 8. Nguyên tắc phản trọng lượng a) 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) 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... TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 10 Ví dụ: Các phần mềm open source, chất lượng kém, bù trừ cho chi phí bản quy ền phần mềm. 9. Nguyên tắc gây ứng suất sơ bộ 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 ứng suất trước để khi làm việc sẽ dùng ứng suất ngược lại ). Ví dụ: Facebook tạo ra các phương án khắc phúc sự cố quá tải (vô hiệu hóa các chức năng ít quan trọng để t ăng hiệu quả trong những chức năng chính) chứng tỏ Facebook đã ứng dụng nguyên tắc ứng suất sơ bộ. 10.Nguyên tắc thực hiện sơ bộ a) 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. b) 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ụ: Java Virtual Machine chuy ển văn bản mã thành một dạng trung gian trước khi thực hiện nó và / hoặc biên dịch nó thành dạng số nhị phân cụ thể của máy. 11.Nguyên tắc dự phòng 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ụ: Trong phần mềm HTML 5 đã loại bỏ đi nhiều thẻ cũ nhưng t hực chất vẫn có một số thẻ còn sử dụng được trong phiên bản thứ năm này như thẻ , . Nhưng theo ý kiến riêng của em, những thẻ nào không được khuyến TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 11 cáo sử dụng thì đừng nên sử dụng quá nhiều. Vì sau này những thẻ đó có thể thực sự bị loại bỏ hoàn toàn trong các phiên bản tương lai. Một số thẻ cũ đã được đề nghị thay thế bởi các thẻ mới có nhiều tính năng hơn như:  Thẻ được thay bởi thẻ .  Thẻ , , v.v… được thay bởi CSS. 12.Nguyên tắc đẳng thế Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối tượng. Ví dụ: Lập trình ứng dụng web, có một số trường hợp vì giới hạn băng thông của đường truyền, ta không thể load một trang web với dung lượng lớn, vì vậy để giữ nguyên băng thông của đường truyền ta phải tối ưu mã nguồn của website(image, javascript…) 13.Nguyên tắc đảo ngược a) Thay vì hành động n hư 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) b) Làm phần chuyển động của đối tượng (hay môi t rườ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ụ: Trong một số ngôn ngữ lập trình (C, Visual basic…) thay vì đi xét một số biểu thức logic có giá trị “true” thì ta lại xét có giá trị “false”. 14.Nguyên tắc cầu (tr òn) hoá a) 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. b) Sử dụng các con lăn, viên bi, vòng xoắn. c) Chuyển sang chuyển động quay, sử dụ ng lực l y tâm. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 12 Ví dụ: Phần mềm phân tích và xử lý các tín hiệu được thu nhận từ các vệ tinh, sử dụng các mặt cầu để xác định các điểm giao nhau thay vì sử dụng các đường tròn. 15.Nguyên tắc linh động a) Cần thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài s ao cho chúng tối ưu trong từng giai đoạn làm việc. b) 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ụ: Ngôn ngữ lập trình visual basic.net ta có kiểu dữ liệu “object” có thể chứa bất kỳ giá trị nào thuộc kiểu int, string, double… 16.Nguyên tắc giải “thiếu” hoặc “thừa” 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ản hơn và dễ giải hơn. Ví dụ: Một trong những ứng dụng phổ biến nhất trên Facebook là ứng dụng Hình ảnh (Photos), nơi thành viên có thể upload album và hình ảnh. Facebook cho phép người dùng tải lên không giới hạn số hình ảnh, so với các dịch vụ lưu trữ hình ảnh kh́c như Photobucket và Flickr, trong đó ́p dụng giới hạn số lượng các bức ảnh mà người dùng được phép tải lên. Điều này đã đóng góp phần nào đó trong thành công của Facebook ngày nay. 17.Nguyên tắc chuyển sang chiều khác a) 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 di chuyển trên mặt phẳng (hai chiều). Tương tự, những bài toán liên quan đế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). b) Chuyển các đối tượng có kết cấu một tầng thành nhiều tầng. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 13 c) Đặt đối tượng nằm nghi êng. d) Sử dụng mặt sau của diện tích cho trướ c. e) 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ụ: Áp dụng mô hình thác nước trong công nghệ phần mềm, khi chuyển sang giai đoạn coding, t a có thể quay trở lại giai đoạn phân t ích thiết kế 18.Nguyên tắc sử dụng các dao động cơ học a) Làm đối tượng d ao động. Nếu đã có dao động, tă ng t ầng số dao động ( đến tầng số siêu âm). b) Sử dụng tầng số cộng hưởng. c) Thay vì dùng các bộ run g cơ học, dùng các bộ rung áp điện. d) Sử dụng siêu âm kết hợp với trường điện từ. Ví dụ: Lĩnh vực điện toán đám mây (cloud computing), với điện toán đám mây, người dùng thông thường không cần phải quá để t âm đến việc đầu tư phần cứng để lưu trữ dữ liệu và xử lý công việc. Tất cả mọi thứ đã được lưu trữ trên máy chủ của nhà cung cấp dịch vụ web. Bằng cách này, nhiều người có thể truy cập và chia sẻ dữ liệu cùng nhau. T rong tương lai, một viễn cảnh được đưa ra là người dùng chỉ cần một thiết bị cài sẵn trình duyệt, không cần ổ cứng, kết nối Internet và truy cập, xử lý dữ liệu từ bất kỳ đâu. Trong công nghệ ảo hóa, nếu như trước kia, mỗi hệ điều hành cần phải cài trên một máy vật lý riêng biệt, thì giờ đây chỉ cần một máy tính vật lý có thể chạy nhiều hệ điều hành cùng lúc. Trong tương lai, ngay cả điện thoại thông minh cũng có thể khởi động cùng lúc nhiều hệ điều hành(nguồn internet). 19.Nguyên tắc tác động theo chu kỳ a) Chuyển tác động liên tục thành tác động theo chu kỳ (xung). b) Nếu đã có tác động theo chu kỳ, hãy thay đổi chu kỳ. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 14 c) 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ụ: Các phần mềm trên máy tính đa số đều sử dụng nguyên tắc này. Có thể lấy một số phần mềm ứng dụng phổ biến như các chương trình virus đều có thể lập trình cho quá trình update dữ liệu. Hay ngay cả trong window cũng có quá trình updat e theo chu kỳ. 20.Nguyên tắc liên tục tác động có ích a) 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). b) Khắc phục vận hành không tải và trung gian. c) Chuyển chuyển động tịnh tiến qua lại thành chuyển động qua. Ví dụ: Lĩnh vực điện toán đám mây (cloud comput ing), trong công nghệ ảo hóa, các hệ thống trung tâm máy chủ phải chạy liên tục 24/24 vì người dùng ở khắp nơi trên thế giới, không cùng thời điểm đều có thể truy cập dịch vụ web và xử lý thông tin. 21.Nguyên tắc “vượt nhanh” a). Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn. b). Vượt nhanh để có được h iệu ứng cần thiết. Ví dụ: Phần mềm diệt virus BKAV có hai cơ chế Quick Scan hay Full Scan. 22.Nguyên tắc biến hại thành lợi a). 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. b). 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. 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ụ: TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 15 Ngày nay các quốc gia trên thế giới t hường thực hiện phương thức chiến tranh điện tử, các virus được lập trình để phá hoại các hệ thống phòng thủ, máy bay không người lái… 23.Nguyên tắc quan hệ phản hồi a). Thiết lập quan hệ phản hồi b). Nếu đã có quan hệ phản hồi, hãy thay đổi nó. Ví dụ: Hệ điều hành giao tiếp với ngừơi sử dụng nên Windows phải có khả năng phản hồi lại yêu cầu của người dùng thông qua giao diện đồ hoạ thân thiện với người dùng và dể sự dụng. Sau khi phản hồi Windows chở hành động t iếp theo của người dùng và dựa vào đó để thực thi các process tiếp theo. Như vậy quá trình xử lý tiệp tục cho đến khi mọi nhu cầu của người sử dụng được đáp ứng. 24.Nguyên tắc sử dụng trung gian Sử dụng đối tượng trung gian, chuyển tiếp. Ví dụ: Một số ứng dụng phần mềm như ngân hàng, chứng khoán, t hương mại điện tử…có một số giao dịch có tính chất tạm thời, chờ xử lý, chờ xác nhận… thường ta lưu trữ vào trong các table tạm, sau khi hoàn tất các giao dịch ta có thể đưa dữ liệu vào các table chính thức. 25.Nguyên tắc tự phục vụ a). đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa chữa. b). Sử dụng phế liệu, chất thải, năng lượng dư. Ví dụ: Symantec Update, ứng dụng này kiểm tra định kỳ các bản cập nhật, nếu có những thay đổi mới cần phải được cập nhật, một đồ thị phụ thuộc được thực hiện và việc thực hiện đó phục vụ cho các ứng dụng. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 16 26.Nguyên tắc sao chép (copy) a). 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. b). 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. c). Nếu không thể sử dụng bản sao quang học ở vùng biểu k iến (vùng ánh sáng nhìn thấy được bằng mắt thường), chuyển sang sử dụng các bản sao hồng ngoại hoặc tử ngoại. Ví dụ: Tương tự phần mềm: Thay vì tạo ra một đối tượng mới mà mất các nguồn tài nguyên không cần thiết, ta thực hiện một shallow copy. Một shallow copy xây dựng một đối tượng hợp chất mới và sau đó (đến mức có thể) chèn những tham chiếu vào nó để các đối tượng được tìm thấy trong bản gốc. 27.Nguyên tắc “rẻ” thay cho “đắt” 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ụ: Thay vì phát triển một ứng dụng đầy đủ trên một mẫu thử nghiệm gây ra chi phí quá đắt tiền, sử dụng Throwaway (or rapid) prototypes. Throwaway (or rapid) prototypes:  Được xây dựng càng nhanh càng tốt, không có kỹ thuật thích hợp,  Thực hiện yêu cầu duy nhất chưa được hiểu rõ,  Được sử dụng để t ìm hiểu các y êu cầu bị cho là có thật và không thật,  Được “vứt bỏ” sau khi các thông t in mong muốn được học. 28.Thay thế sơ đồ cơ học a. Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 17 b. 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 c. 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úc nhất định . d. Sử dụng các trường kết hợp với các hạt sắt từ. Đây là một ví dụ đơn giản : nhận dạng giọng nói làm giảm bớt các tác động cơ học của việc đánh máy và việc gõ nhầm phím. 29.Sử dụng vỏ dẻo và màng mỏng a). Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối. b). 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ụ: Một wrapper (hay adapter object) phân lập đối tượng với đối tượng từ môi trường bên ngoài bằng cách duy trì một giao diện cố định giữa các đối tượng bên trong và đối tượng bên ngoài (đối tượng wrapper). Wrapper là tên gọi kỹ thuật tách dữ liệu từ một website và chuyển đổi nguồn thông tin này về dạng dễ sử dụng (bao gồm cả end users và developer). Đây là những giải pháp thu thập dữ liệu thương mại trong thời kỳ dotcom bùng nổ.. Wrapper hay gọi chính xác hơn là các Wrapper Generation - Wrapper Generator giống như các robot bán tự động hoặc tự động nhận đầu vào là 1 website, truy vấn và bóc tách phần nội dung có ích rồi trả về cho user. N guồn dữ liệu này thông thường được ghi trực tiếp lên database theo những mô hình mà hệ thống cung cấp trước để phục phụ vào những mục đích khác nhau. Thời kỳ thương mại điện tử phát triển trong khi các hệ TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 18 thống search chưa thực sự mạnh thì nguồn thông tin này đúng là rất có giá cho một doanh nghiệp hoặc một tổ chức nào đó. Wrapper G eneration không có một mô hình kỹ thuật chung mà chỉ là tên gọi cho các giải pháp bóc t ách dữ liệu từ net. Kỹ thuật có t hể dựa vào trực tiếp source code HTML như : các css, t ag name, attributes, . .. để xác định vị trí nội dung cần lấy. Hoặc cách khác, phân tích HTML document ra HTML DOM Tree rồi dựa vào tree này để lấy ra phần dữ liệu cần thiết (dựa vào index của các tree node hay tree path,...). M ột cách khác nữa là cho user làm việc trực tiếp trên renderer của browser, nghĩa là user chỉ ra phần cần lấy rồi hệ thống tự học và ghi lại cấu hình bóc tách, cách thức "học" của hệ thống có thể là căn cứ vào html tag nguồn cộng với nhãn (tên) của phần nội dung.Wrapper cũng có thể dựa trên mô hình mapping, nghĩa là đầu vào cung cấp một cấu trúc tài liệu chuẩn cho trước, sau khi lấy data thô về, nguồn data này được chuyển đổi theo mô hình đó và hệ thống tiến hành bóc tách thông tin. Những hệ thống phức t ạp sau khi định vị dữ liệu trên website nguồn còn bắt buộc user phải map kết quả vào một dạng thức mà họ định ra, chẳng hạn các bảng hay một xml document. HTML Document là nguồn dữ liệu đã được định dạng, hơn nữa , hầu hết các website đều "động", có nghĩa là dữ liệu đã được định sẵn theo một mô hình chung, trước khi gửi về client. Do đó, phân tích cú pháp của một website cụ thể thì có thể tìm ra những quy luật bóc t ách nguồn dữ liệu từ website đó. Tuy nhiên, có được kỹ thuật làm việc với một website không có nghĩa là nó sẽ chạy tốt với website khác. Dạng thức bày bố khác nhau cộng với HTML document thường bị sai cú pháp, ngay cả bản thân html tag cũng có nhiều t ag option (không cần đóng cũng được) đã gây khó khăn cho việc định ra một luật chung để bóc t ách dữ liệu. Mỗi kỹ thuật trình bày ở trên có thể làm việc tốt một nhóm dạng website như nhóm website bán hàng, nhóm website thông tin, nhóm dịch vụ, forum,...X ây dựng các Wrapper thường phục phụ cho việc lấy ra nguồn dữ liệu có ích vào mục đích cụ thể nên các hệ thống này đã đạt được những thành công nhất định. Ngày nay khi mà yêu cầu về chia sẻ nội dung cùng với Semantic Web, đặc t ả dữ liệu được cung cấp dưới dạng chuẩn (RSS, RDF, TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 19 ATOM , META Tag,...) nên có thể căn cứ vào những đặc tả này xây dựng mô hình bóc tách nội dung. Hiện nay có rất nhiều mô hình bóc tách dữ liệu, chỉ cần vào google gõ mấy từ như Data Ext raction, Crawler, Web Clipping , HTML DOM, ... sẽ thu được những nguồn tài liệu đặc tả chi tiết các kỹ thuật bóc tách. 30.Nguyên tắc thay đổi màu sắc a). Thay đổi màu sắc của đối tượng hay môi trường bên ngoài b). Thay đổi độ trong suốt của của đối tượng hay môi trường bên ngoài. c). Để 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. d). Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu. e). Sử dụng các hình vẽ, ký hiệu thích hợp. Ví dụ: Chức năng transparency (làm trong suốt) trong một chương trình chỉnh sửa ảnh hay chương trình vẽ. 31.Nguyên tắc phân hủy hoặc tái sinh các phần a). 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. b). 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ụ: Tiến trình thu gom rác trong ngôn ngữ lập trình Java, định kỳ "dọn dẹp" bộ nhớ bằng cách hủy bỏ các đối tượng đã sống qua phạm vi của chúng. 32.Thay đổi các thông số hoá lý của đối tượng a). Thay đổi trạng thái đối tượng. b). Thay đổi nồng độ hay độ đậm đặc. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 20 c). Thay đổi độ dẻo d). Thay đổi nhiệt độ, thể tích. Ví dụ: Một ứng dụng phần mềm có thể được chuyển đổi để cung cấp một dịch vụ khác dựa trên những thuộc tính thay đổi tự động. Sự linh hoạt này cho phép đa vai trò các đối tượng trong một ứng dụng. 33.Sử dụng các vật liệu hợp thành (composite) Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành (composite). Hay nói chung sử dụng các vật liệu mới. Ví dụ: Software design patterns (các mẫu thiết kế phần mềm) là khái niệm trừu tượng cốt lõi đằng sau thành công các giải pháp vấn đề định kỳ trong thiết kế phần mềm. Tổng hợp các mẫu thiết kế là trừu tượng cốt lõi đằng sau khuôn khổ thành công theo định kỳ. M ột mẫu thiết kế composite tốt nhất mô t ả như là một t ập các mô hình tích hợp trong đó cho thấy một sự kết hợp mà làm cho các thành phần nhiều hơn tổng của các bộ phận của nó. Bài viết này trình bày các ví dụ của các mẫu compos ite, thảo luận về một phân tích và kỹ thuật tổng hợp, và chứng minh rằng các mô hình hỗn hợp mở rộng ý tưởng mô hình từ các giải pháp vấn đề duy nhất khuôn khổ hướng đối tượng. Trong công nghệ phần mềm, một mẫu thiết kế (Design Pattern) là một giải pháp có thể áp dụng lại cho các vấn đề chung thường gặp trong thiết kế phần mềm. Một phần mềm có thể hoàn thành mà không có sự góp mặt của Design Pattern nhưng sự có mặt của Design Pattern sẽ giúp xác định bài toán nhanh hơn và giải quy ết một cách hiệu quả hơn. Một mẫu thiết kế không phải là một thiết kế hoàn thiện để có thể chuyển đổi trực tiếp thành mã. Nó chỉ là các hướng dẫn hay là ví dụ mẫu chỉ ra cách giải quyết một vấn đề mà chúng ta có thể áp dụng vào trong nhiều tình huống khác nhau. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 21 Các giải thuật không được xem là các mẫu thiết kế, vì chúng giải quyết các vấn đề về tính toán hơn là các vấn đề về thiết kế. Các m ẫu thiết kế có thể giúp tăng t ốc quá trình phát triển phần mềm bằng cách cung cấp các mẫu hình (paradigms) phát triển đã được chứng thực và kiểm chứng. Để thiết kế phần mềm hiệu quả đòi hỏi phải xem xét các yếu tố mà chỉ trở nên rõ ràng sau khi hiện thực. Xác định được chúng, thông qua các mẫu thiết kế, chúng ta sẽ thoát khỏi chúng vì chúng có thể dẫn đến những rắc rối lớn và cải tiến khả năng dễ đọc của mã cho người viết mã và các nhà kiến trúc sẽ cảm thấy quen thuộc với các mẫu. Thông thường, mọi người chỉ biết cách áp dụng một số kĩ thuật thiết kế phần mềm nào đó vào một vài vấn đề cụ thể nào đó. Những kĩ thuật này khó áp dụng mở rộng cho các vấn đề khác. Các mẫu thiết kế cung cấp các giải pháp chung, được viết tài liệu dưới một định dạng mà không gắn liền với một vấn đề cụ thể nào cả. Các mẫu cho phép các nhà phát triển giao tiếp với nhau dùng các tên dễ hiểu, được dùng rộng rãi để đặt cho các tương tác của phần mềm. Các mẫu thiết kế chung có thể được cải tiến qua t hời gian, để trở nên ổn định hơn là t hiết kế t heo đặc thù (ad- hoc designs). Các mẫu thiết kế có thể được phân loại dựa vào nhiều tiêu chí, chung nhất là dựa vào vấn đề cơ bản mà chúng giải quyết. Theo tiêu chuẩn này, các mẫu thiết kế có thể được phân loại thành nhiều lớp, một số trong chúng là:  Các mẫu Cơ Sở (Fundamental pattern)  Các mẫu Tạo Lập (Creational pattern)  Các mẫu Cấu Trúc (Structural pattern)  Các mẫu Ứng Xử (Behavioral pattern)  Các mẫu Đồng Thời (Concurrency pattern)  Các mẫu xử lí Sự Kiện (Event handling pattern)  Các mẫu Kiến Trúc (Architect ural pattern) Đặc điểm chung: TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 22  Pattern được hiểu theo nghĩa tái sử dụng ý tưởng hơn là mã lệnh. Pattern cho phép các nhà thiết kế có thể cùng ngồi lại với nhau và cùng giải quy ết một vấn đề nào đó mà không phải mất nhiều thời gian tranh cãi. Trong rất nhiều trường hợp, dự án phần mềm thất bại là do các nhà phát triển không có được sự hiểu biết chung trong các vấn đề về kiến trúc phần mềm. Ngoài ra, pattern cũng cung cấp những thuật ngữ và khái niệm chung trong t hiết kế. Nói một cách đơn giản, khi đề cập đến một pattern nào đấy, bất kỳ ai biết pattern đó đều có thể nhanh chóng hình dung ra “bức tranh” của giải pháp. Và cuối cùng, nếu áp dụng pattern hiệu quả thì việc bảo trì phần mềm cũng được tiến hành thuận lợi hơn, nắm bắt kiến trúc hệ thống nhanh hơn.  Pattern hỗ trợ tái sử dụng kiến trúc và mô hình thiết kế phần mềm theo quy mô lớn. Cần phân biệt design pattern với framework. Framework hỗ trợ tái sử dụng mô hình thiết kế và mã nguồn ở mức chi tiết hơn. Trong khi đó, design pattern được vận dụng ở mức tổng quát hơn, giúp các nhà phát triển hình dung và ghi nhận các cấu trúc tĩnh và động cũng như quan hệ tương tác giữa các giải pháp trong quá trình thiết kế ứng dụng đối với một chuyên khu riêng biệt.  Pattern đa tương thích. Pattern không phụ thuộc vào ngôn ngữ lập trình, công nghệ hoặc các nền tảng lớn như J2EE của Sun hay Microsoft .NET Framework.T iềm năng ứng dụng của pattern là rất lớn. Các thiết kế dựa trên pattern được sử dụng khá nhiều ở các phần mềm mã nguồn mở, trong nền tảng J2EE hoặc .NET… Trong các dạng ứng dụng này, có thể dễ dàng nhận ra một số tên lớp chứa các tiền tố hoặc hậu t ố như Factory, Proxy , Adapter… TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 23 III. KẾT LUẬN: Sự tương quan giữa vấn đề phần mềm và các nguyên tắc sáng tạo mà em tìm hiểu được trên đây chỉ mới là một phần nhỏ trong rất nhiều mối liên kết giữa thực tiễn và phương pháp giải quyết vấn đề t heo khoa học về phát minh, sáng chế. Những nguyên tắc nặng tính vật lý vẫn còn một “khoảng cách” với vấn đề phần mềm, bởi lẽ phần mềm vốn dĩ phải được xem xét một cách rất trừu tượng, t a không thể “ nắm bắt một cách vật lý”. Tuy nhiên, ta có thể tìm thấy sự tương tự ngầm ẩn khi xem xét kĩ lưỡng và áp dụng TRIZ thường xuy ên hơn cho vấn đề phần mềm. TIỂU LUẬN: CÁC NGUYÊN LÝ SÁNG TẠO VÀ PHẨN MỀM MÁY TÍNH NGUYỄN KHẮC DUY – K22 – 12 11 017 24 IV. TÀI LIỆU THAM KHẢO: 1. Slide bài giảng “Phương pháp nghiên cứu khoa học trong T in Học”, GS.TSKH. Hoàng Kiếm 2. 3. Kevin C. Rea, “TRIZ and Software - 40 Principle Analogies”, Part 1, Part 2 4. Dr. Genrich Altshuller, “The Innovation Algorithm”, Technical Innovation Center, Inc. July 2000 5. Phương pháp nghiên cứu khoa học trong tin học của GS.TSKH Hoàng Kiếm 6. Giải một bài toán trên máy tính như thế nào, tập 1,2,3 của GS.TSKH Hoàng Kiếm

Các file đính kèm theo tài liệu này:

  • pdf1211017_nguyenkhacduy_ppnckh_724.pdf