Xem mẫu

  1. ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ------------------------------------------------------ BÀI THU HOẠCH MÔN PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC TÌM HIỂU VÀ ÁP DỤNG CÁC NGUYÊN LÝ GIẢI QUYẾT VẤN ĐỀ TRONG CÁC ỨNG DỤNG TIN HỌC GIẢNG VIÊN HƯỚNG DẪN GS.TSKH HOÀNG KIẾM HỌC VIÊN THỰC HIỆN NGUYỄN SỬ VIỆT MSSV: CH1101156 TPHCM 04-2012
  2. MỤC LỤC 1. Đặt vấn đề 3 2. Mục đích của bài thu hoạch 3 3. Nội dung của bài thu hoạch 3 3.1. Nguyên lý phân nhỏ 4 3.2. Nguyên lý tách khỏi 5 3.3. Nguyên lý phẩm chất cục bộ 6 3.4. Nguyên lý phản đối xứng 7 3.5. Nguyên lý kết hợp 8 3.6. Nguyên lý vạn năng 9 3.7. Nguyên lý chứa trong 10 3.8. Nguyên lý dự phòng 11 3.9. Nguyên lý đảo ngược 13 3.10. Nguyên lý vượt nhanh 14 3.11. Nguyên lý rẻ thay cho đắt 14 3.12. Nguyên lý đổi màu 15 3.13. Nguyên lý sử dụng trung gian 17 3.14. Nguyên lý sao chép(copy) 17 3.15. Nguyên lý loại bỏ và tái sinh từng phần 18 3.16. Nguyên lý đồng nhất 19 3.17. Nguyên lý thay thế sơ đồ cơ học 19 3.18. Nguyên lý tự phục vụ 20 3.19. Nguyên lý quan hệ phản hồi 20 3.20. Nguyên lý chuyển bại thành thắng 21 3.21. Nguyên lý thực hiện sơ bộ 21 3.22. Nguyên lý năng động 22 3.23. Nguyên lý tác động theo chu kỳ 24 3.24. Nguyên lý gây ứng suất sơ bộ 25 3.25. Nguyên lý chuyển sang chiều khác 25 3.26. Nguyên lý tác động bộ phận và dư thừa 26 3.27. Nguyên lý đổi các thông số hóa lý của đối tượng 27 3.28. Nguyên lý phản trọng lượng 28 3.29. Nguyên lý sử dụng các kết cấu thủy và khí 29 3.30. Nguyên lý tác động liên tục hữu hiệu 30 Trang 1
  3. 3.31. Nguyên lý đẵng thế 30 3.32. Nguyên lý sử dụng vỏ dẻo và màng mỏng 31 3.33. Nguyên lý sử dụng vật liệu nhiều lỗ 32 3.34. Nguyên lý sử dụng nở nhiệt 34 3.35. Nguyên lý sự dao động cơ học 35 3.36. Nguyên lý sử dụng chuyển pha 36 3.37. Nguyên lý cầu(tròn) hóa 39 3.38. Nguyên lý sử dụng các chất oxy hóa 39 3.39. Nguyên lý sử dụng môi trường trơ 40 3.40. Nguyên lý sử dụng vật liệu tổng hợp(composit) 40 3.41. Ứng dụng các nguyên lý vào việc tin học quản lý hành chính nhà nước 41 4. Tài liệu tham khảo 43 5. Lời kết 43 Trang 2
  4. MỞ ĐẦU 1. Đặt vấn đề Như chúng ta đã biết mỗi một ngành khoa học điều tồn tại những đối tương, vấn đề và mục đích nghiên cứu khác nhau, vì vậy mà mỗi ngành khoa học điều có những phương pháp tiếp cận và giải quyết vấn đề của chuyên ngành. Tuy nhiên các phương pháp tiếp cận đặt thù của chuyên ngành ấy bao giờ cũng được xây dựng và dựa trên một số nguyên lý giải quyết vấn đề cơ bản như: nguyên lý phân nhỏ, nguyên lý tách khỏi, nguyên lý kết hợp… Hiện nay các nguyên lý giải quyết vấn đề này đã được nghiên cứu và áp dụng rộng rãi vào trong tất cả các lĩnh vực khoa học và đời sống hàng ngày. Tuy nhiên đối với lĩnh vực tin học hiện nay thì các nguyên lý này sẽ được áp dụng như thế nào? Và áp dụng cụ thể vào trong những trường hợp nào? Chúng ta hãy cùng tìm hiểu và giải quyết vấn đề đặt ra. 2. Mục đích của bài thu hoạch Hệ thống lại kiến thức của môn học, giúp cho chúng ta hiểu và vận dụng được các nguyên lý trong việc giải quyết các bài toán tin học, làm cơ sở và nền tảng cho việc nghiên cứu và ứng dụng vào một số lĩnh vực như: công nghệ tri thức, công nghệ phần mềm, hệ thống thông tin…, đồng thời cũng giúp cho chúng ta có được những nguyên lý khoa học cơ bản, khi tiếp cận và tìm kiếm các phương pháp mới hơn nhằm giải quyết các vấn đề tin học mà bấy lâu con người vẫn chưa giải quyết được. 3. Nội dung của bài thu hoạch Bài thu hoạch chủ yếu tập trung vào việc tìm hiểu và áp dụng các nguyên lý giải quyết vấn đề vào trong tin học, nêu rõ một số trường hợp áp dụng vào các lĩnh vực như: hệ thống thông tin, thương mại điện tử, chính phủ điện tử…Toàn bộ nội dung bài thu hoạch bao gồm 40 nguyên lý như sau: Trang 3
  5. 3.1. Nguyên lý phân nhỏ Nội dung(nguồn internet): - Chia các đối tượng thành các thành phần độc lập. - Làm cho đối tượng trở nên tháo ráp được. - Tăng mức độ phân nhỏ của đối tượng. Nhận xét: - Từ "đối tượng" trong 40 nguyên tắc, cần hiểu theo nghĩa rộng. Đó có thể bất kỳ cái gì có khả năng phân nhỏ được, không nhất thiết phải là đối tượng kỹ thuật. - Thủ thuật này thường dùng trong những trường hợp khó làm "trọn gói", "nguyên khối", "một lần". Nói cách khác, phân nhỏ ra cho vừa sức, cho dễ thực hiện, cho phù hợp với những phương tiện hiện có.... - Phân nhỏ đặc biệt hay dùng trong những trường hợp cần có bề mặt tiếp xúc lớn như trong các phản ứng hoá học, tạo sự cháy nổ, trao đổi nhiệt. - Tháo lắp làm cho đối tượng trở nên nhỏ gọn, thuận tiện cho việc chuyên chở, xếp đặt và khả năng thay thế từng bộ phận đối tượng, kể cả việc mở rộng chức năng của từng bộ phận đó. - Cần tưởng tượng: nhờ phân nhỏ mà đối tượng, ban đầu ở thể rắn, chuyển dần sang dẻo, lỏng khí, plasma....., nói chung, có thể phân nhỏ đến vi mô. - Sự thay đổi về lượng dẫn đến sự thay đổi về chất, cho nên, phân nhỏ có thể làm đối tương có thêm những tính chất mới, thậm chí, ngược với tính chất đã có. Áp dụng vào trong tin học: Nguyên lý phân nhỏ được áp dụng rất nhiều trong lĩnh vực tin học, khi ta giải quyết một bài toán lớn thì có thể phân rã bài toán lớn thành nhiều bài toán nhỏ hơn, phân rã thành các hàm, thủ tục, phân hệ, chức năng, gói... Việc phân rã này giúp ta kiểm tra được tính đúng đắn của từng lời giải và điều quan trọng là ta có thể dùng lại các hàm và thủ tục sau khi phân rã. - Để viết một hàm tìm số lớn nhất trong 3 số nguyên x,y,z ta có thể phân rã thành các hàm như sau: o Hàm tìm Max giữa hai số bất kỳ a và b: int Max(int a, int b). o Sau đó để tìm Max giữa 3 số nguyên x, y, z ta có thể gọi hàm như sau: Max(Max(a,b),Max(b,c). Trang 4
  6. - Để xây dựng một phần mềm quản lý nhân sự ta có thể chia phần mềm thành các phân hệ: tuyển dụng, nhân sự, đào tạo, đánh giá, chấm công, tiền lương, bảo hiểm… - Để thiết kế cơ sở dữ liệu cho một hệ thống thông tin ta có thể thiết kế riêng từng packet tương ứng với các nhóm chức năng(use case). - Để gởi 1 tập tin có kích thước lớn từ máy tính A sang máy tính B ta có thể chia nhỏ tập tin thành các byte, kilobyte, … - Để đảm bảo được tính nhất quán của các đơn vị dữ liệu, khi thêm, xóa hay sửa một đơn vị dữ liệu ta thường phân rã các giao tác(transaction) thành các thao tác riêng biệt. - Lĩnh vực điện toán đám mây(cloud computing), khi xây dựng một hệ thống phần mềm, các nhà phát triển đã phân tách ra thành nhiều thành phần module hoặc service khác nhau, cùng chia sẻ tài nguyên. Với công nghệ ảo hóa, thì mỗi thành phần có thể được phát triển trên các máy ảo khác nhau, khi cần thì kết nối và chia sẻ tài nguyên. Một ví dụ là về xây dựng một ứng dụng web: cơ sở dữ liệu được đặt trong một máy ảo, server web đặt trong một máy ảo, việc phát triển lại được thực hiện trong một máy ảo riêng(nguồn từ internet). 3.2. Nguyên lý tách khỏi Nội dụng: - Tách thành phần gây phiền phức ra khỏi đối tượng hoặc ngược lại, tách lấy phần phân biệt. Áp dụng vào trong tin học: - Áp dụng vào việc xây dựng các phần mềm nhận dạng tiếng nói, hình ảnh… trước khi đưa âm thanh hay hình ảnh vào nhận dạng ta thường phải thực hiện một số thao tác như: loại bỏ nhiễu, các tạp âm,… - Áp dụng vào các bài toán duyệt danh sách, ví dụ ta có thể tách 1 mảng các số nguyên thành 2 mảng âm và dương, ta có thể tìm và xóa 1 nhân viên ra khỏi hệ thống… - Để tiết kiệm thời gian và chi phí ta có thể xây dựng các website đào tạo trực tuyến, học sinh, sinh viên không phải đến trường mà vẫn nghe được bài giảng, lời nói của giáo viên. Trang 5
  7. - Để khai thác được các tri thức tìm ẩn bên trong các kho dữ liệu lớn, người ta có thể dùng 1 số thuật toán để rút trích được các thông tin có ích, áp dụng vào việc xây dựng các phần mềm chẩn đoán bệnh, hỗ trợ các hệ thống ra quyết định… - 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 không còn phải trực tiếp cài đặt phần mềm hay lưu trữ dữ liệu trên thiết bị cá nhân vì tất cả đã được xử lý trên máy chủ và người dùng chỉ cần thông qua Internet để truy cập và xử lý. Nhờ đó các máy tính cá nhân hay smartphone, PDA không cần phải có cấu hình quá mạnh hay có khả năng lưu trữ nhiều mà chủ yếu chỉ cần có thể kết nối Intenet, truy cập dữ liệu thông qua trình duyệt.Trong công nghệ ảo hóa, để giảm thời gian khởi động hoặc tắt máy cũng như tăng hiệu suất thực thi một dịch vụ nào đó, ta có thể tách những dịch vụ không cần thiết phải chạy song song sang một máy ảo, và khi cần thì chỉ cần chạy máy ảo đó để kết nối đến. Một ví dụ cơ bản là khi lập trình phần mềm có truy cập cơ sở dữ liệu, ta có thể cài đặt cơ sở dữ liệu trong một hệ điều hành ảo, như vậy khi máy thật khởi động hay đang chạy sẽ nhanh hơn vì không tốn tài nguyên cho dịch vụ của cơ sở dữ liệu mà khi nào cần sử dụng, chỉ cần chạy máy ảo và kết nối đến(nguồn internet). 3.3. Nguyên lý 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 thành 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 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 của công việc Áp dụng vào trong tin học: - Khi phân tích và thiết kế một thuật toán, ta phải xác định những chổ nào ảnh hưởng đến thời gian thực hiện hay độ phức tạp của thuật toán. - Trong quá trình quản trị một dự án phần mềm ta phải xác định được giai đoạn nào cần nhiều nguồn lực và thời gian nhất?, xác định được đâu là rũi ro của dự án. - Trong quá trình triển khai một phần mềm, nếu như phần mềm không áp dụng được thì ta phải xác định được nguyên nhân: các chức năng của phần mềm không đáp ứng, phần mềm có nhiều lỗi, con người không biết sử dụng… Trang 6
  8. - Khi phân tích và thiết kế một hệ thống thông tin ta thường áp dụng phương pháp “vết dầu loang”, có nghĩa là ta xác định được vấn đề trong tâm của hệ thống, rồi từ đó có thể loang sang các vấn đề khác. - Lĩnh vực điện toán đám mây, trong công nghệ ảo hóa, nguyên lý này được thực thi một cách rất rõ ràng: hệ thống phần mềm hay lưu trữ được phân tách ra làm nhiều module, và một module được phát triển trên một nền tảng hệ điều hành riêng biệt để tối ưu hóa khả năng thực thi của chương trình(nguồn internet). 3.4. Nguyên lý phản đối xứng Nội dung: - Chuyển đối tượng có hình dạng, tính chất đôí xứng thành phản đối xứng. Nhận xét: - Từ "hình dạng", phát biểu trong thủ thuật này cần hiểu rộng, không chỉ thuần tuý theo nghĩa hình học. - Giảm bậc đối xứng, ví dụ chuyển từ hình tròn thành hình ôvan, hình vuông sang hình chữ nhật,... - Thủ thuật này rất có tác dụng trong việc khắc phục tính ì tâm lý, cho rằng các đối tượng phải có hình dạng đối xứng. - Khi đối tượng chuyển sang dạng ít đối xứng hơn, có thể làm xuất hiện những tính chất mới lợi hơn. Ví dụ tận dụng được những nguồn dự trữ về không gian (nói chung là các khả năng tìm ẩn), làm đối tượng ổn định hơn, bền vững hơn,... Áp dụng vào tin học - Áp dụng nguyên lý phản đối xứng để kiểm tra 1 quan hệ có phải là quan hệ thứ tự hay không?. - Áp dụng nguyên lý phản đối xứng vào việc xây dựng các thuật toán mã hóa. - Áp dụng nguyên lý phản đối xứng vào việc kiểm tra các ma trận lưu trữ trọng số trong các bài toàn tìm đường đi. - Áp dụng nguyên lý phản đối xứng trong việc xây dựng các thuật toán đồ họa máy tính. Trang 7
  9. 3.5. Nguyên lý kết hợp Nội dung: - Kết hợp các đối tượng(có thể hiểu là các bộ phận, dụng cụ, nhu cầu…) hay kết hợp về mặt thời gian các hoạt động nhằm mang lại tính năng vượt trội cho sản phẩm hay giải pháp đó. Nguyên tắc này được vận dụng rất phổ biến trong hầu hết mọi lĩnh vực của cuộc sống. Trong thực tế, các quá trình, sự kiện, yếu tố thường đan xen và có những mối quan hệ hữu cơ với nhau, do đó luôn tồn tại khả năng kết hợp để nâng cao hiệu quả. Áp dụng vào tin học: - Kết hợp nhiều máy tính nối mạng với nhau để truyền nhận dữ liệu. - Xây dựng các thuật toán xử lý song song trên các server khác nhau, sau đó tổng hợp kết quả để có lời giải cuối cùng. - Xây dựng các phần mềm có thể kết hợp(giao tiếp) được với các dịch vụ phần mềm khác như: window service, webservice, .. - Xây dựng các website có thể sử dụng được nhiều loại trình duyệt như internet explorer, Firefox… bằng cách kết hợp nhiều source code javascipt tương ứng. - Xây dựng các data provider có thể kết nối được với nhiều hệ quản trị cơ sở dữ liệu: Access, SQL server, My SQL, DB2, Oracle… - Trong quá trình phân tích và thiết kế các hệ thống thông tin ta thường sử dụng mô hình thực thể kết hợp(ER) để thể hiện mối quan hệ giữa các đối tượng với nhau. - Trong ngôn ngữ truy vấn cơ sở dữ liệu SQL server ta thường sử dụng các phép kết để rút trích thông tin giữa các table. - Trong kỹ thuật lập trỉnh để làm 1 bài toán khó ta thường phân rã bài toán đó ra thành nhiều bài toán nhỏ hơn bằng phương pháp “chia để trị”, sau đó tiến hành cài đặt từng hàm, thủ tục, và cuối cùng là phối hợp tất cả các hàm lại với nhau để cho ra lời giải cuối cùng. - Ứng dụng vào 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. Trang 8
  10. - Ứng vào trong lĩnh vực thương mại điện tử(thanh toán trực tuyến), xây dựng các website mua bán trực tuyến trên internet, cho phép kết hợp với các hệ thống ngân hàng để có thể thanh toán qua mạng. - Kết hợp tin học với các ngành khác như: toán học, vật lý, sinh học,y học…nhằm xây dựng một số công cụ, máy móc có thể giúp con người giải quyết được một số vấn đề như: chẩn đoán bệnh, chụp X quang, CT, siêu âm… - Kết hợp nhiều màu sắc để xây dựng một số phần mềm mô tả thế giới thực. - Kết hợp nhiều bộ thư viện(DLL, module…) thuộc các hãng(microsoft, oracle, ibm…) khác nhau để cho ra các sản phẩm mới. - Xây dựng các phần mềm cho phép chia sẽ, dùng chung, nhằm kết hợp nhiều người với nhau để lập trình, ví dụ như phần mềm source safe, quản lý các file theo cơ chế check in, check out, cho phép nhiều người cùng lập trình. - Lĩnh vực điện toán đám mây, trong công nghệ ảo hóa, một máy chủ thật sẽ được cài đặt nhiều máy chủ ảo để thực thi những công việc khác nhau và có thể dễ dàng kết nối, chia sẻ tài nguyên. Trong điện toán đám mây, người ta đã kết hợp được sức mạnh của công nghệ ảo hóa, Internet băng thông rộng và sự phát triển của viễn thông với các công nghệ kết nối như Wifi, 3G,… để ngày càng cho ra đời những dịch vụ, phần mềm trực tuyến mạnh mẽ mà người dùng có thể ở bất cứ đâu, vào bất cứ thời điểm nào, dùng bất cứ thiết bị gì có thể kết nối Internet đều có thể truy cập và sử dụng(nguồn internet). 3.6. Nguyên lý 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 đối tượng khác. - Nguyên tắc vạn năng là trường hợp riêng của nguyên tắc kết hợp: kết hợp về mặt chức năng trên cùng một đối tượng. - Nguyên tắc vạn năng, trước tiên và hay được dùng trong các lĩnh vực, tại đó có những sự hạn chế việc phát triển theo “chiều rộng” như khó có thể tăng thêm về trọng lượng, thể tích, diện tích… Các lĩnh vực đó là quân sự, hàng không, vũ trụ, thám hiểm, du lịch, các trang thiết bị dùng tại những nơi chật chội… Trang 9
  11. - Nguyên tắc vạn năng đóng vai trò quan trọng trong thiết kế, chế tạo, dự báo…, vì nó phản ánh khuynh hướng phát triển, tăng số chức năng mà đối tượng có thể thực hiện được. Áp dụng trong tin học: - Trong kỹ thuật lập trình ta có thể xây dựng một hàm hay một thủ tục thực hiện nhiều yêu cầu khác nhau dựa vào các tham số đầu vào. Ví dụ ta có thể thiết kế 1 hàm đồ họa có thể vẽ hình tròn hay hình elip dựa vào các tham số truyền vào. - Trong một số ngôn ngữ lập trình cấp cao như c#, visual basic.net ta có thể viết nhiều hàm, thủ tục có tên giống nhau, mỗi hàm và thủ tục thực hiện các yêu cầu khác nhau. - Xây dựng các phần mềm có thể chạy trên nhiều hệ điều hành khác nhau, ví dụ như ngôn ngữ lập trình java, hệ quản trị cở sở dữ liệu MySQL, Oracle, DB2… có thể chạy trên hệ điều hành windows và linux. - Xây dựng một hệ điều hành đa nhiệm có thể xử lý cùng lúc nhiều tiến trình, ví dụ như hệ điều hành window, ta có thể vừa nghe nhạc vừa soạn thảo văn bản. - Lĩnh vực điện toán đám mây, nguyên lý này được thể hiện rõ nét trong công nghệ ảo hóa. Trên một máy tính vật lý, người ta có thể tạo nhiều máy ảo chạy những hệ điều hành khác nhau từ thông thường đến server để thực hiện nhiều tác vụ cùng một lúc. Một ví dụ như sau: một máy tính thật cài hệ điều hành Windows 7, một máy ảo Linux Server để làm máy chủ web, một máy ảo Windows Server 2003 để cài đặt cơ sở dữ liệu, một máy ảo Windows XP để thử nghiệm và giải trí,… điều này đặc biệt thuận lợi cho người dùng hoặc những công ty vừa và nhỏ muốn có một hệ thống mạng để xử lý công việc và lưu trữ dữ liệu. Nhờ vậy chúng ta không còn phải bận tâm quá nhiều đến việc mua bổ sung thêm những máy tính vật lý, đồng thời làm tăng hiệu suất hoạt động của máy lên nhiều lần(nguồn internet). 3.7. Nguyên lý 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. Trang 10
  12. Nhận xét: - "Chứa trong" cần hiểu theo nghiã rộng, không chỉ đơn thuần theo nghĩa không gian. Ví dụ, khái niệm này nằm trong khái niệm khác, lý thuyết này nằm trong lý thuyết khác, chung hơn... - "Chứa trong" chỉ ra hướng tận dụng những nguồn dự trữ có sẵn trong đối tượng, cụ thể là phần thể tích bên trong đối tượng. Nếu để ý quan sát ta sẽ thấy rất nhiều đối tượng vẫn còn chưa được khai thác "tiềm năng" này. - "Chứa trong" làm cho đối tượng có thêm những tính chất mới mà trước đây chưa có như : gọn hơn, tăng độ an toàn, bền vững, tiết kiệm năng lượng, linh động hơn... Áp dụng trong tin học: - Dữ liệu đường truyền dẫn bên trong các sợi dây cáp. - Bên trong một hàm hay một thủ tục có thể gọi một hàm hay một thủ tục khác. - Các tập tin được chứa bên trong các thư mục. - Sau khi đăng nhập thành công vào phần mềm, web site ta mới được phép truy cập vào các chức năng bên trong. - Bên trong các file ảnh là các điểm ảnh rời rạc. - Khi thiết kế các màn hình ứng dụng web ta thường áp dụng chuẩn view\edit, nghĩa là từ màn hình danh sách ta có thể đi vào màn hình edit bên trong. - Lĩnh vực điện toán đám mây, nguyên lý này được thể hiện rất rõ trong công nghệ ảo hóa: bên trong một máy chủ vật lý sẽ được cài đặt nhiều máy chủ ảo để có thể lưu trữ và xử lý những tác vụ chuyên biệt. 3.8. Nguyên lý 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ị các phương tiện báo động, ứng cứu, an toàn Nhận xét: - Ít có cộng việc nào có thể thực hiện với độ tin cậy tuyệt đối. Đấy là chưa kể điều kiện, mội trường, hoàn cảnh với thời gian cũng thay đổi. Do vậy cần phải tiên liệu trước những mạo hiểm, rủi ro, tai nạn, ốm đau, bệnh tật, thiên tai có thể xảy ra mà có phương pháp phòng ngừa từ trước. Trang 11
  13. - Có thể nói, chi phí dự phòng là chi phí thêm, không mong muốn, khuynh hướng phát triển là tăng độ tin cậy của đối tượng, công việc. Để làm điều đó cần sử dụng các vật liệu mới, các hiệu ứng mới, cách tổ chức mới … - Tinh thần chung của nguyên tắc này là cảnh giác và chuẩn bị biện pháp đối phó từ trước. Áp dụng vào tin học: - Để đảm bảo độ an toàn cho các hệ thống phần mềm, tránh trường hợp xảy ra các sự cố như: thiên tai, hỏa hoạn, ỗ cứng, server bị hư, tin tặc tấn công,.. ta có thể xây dựng các chức năng backup dữ liệu tự động định kỳ. Ví dụ như các hệ thống dữ liệu về ngân hàng, chứng khoán… - Khi lập kế hoạch dự án triển khai phần mềm, để đảm bảo cho dự án triển khai thành công ta cần phải lưu ý đến việc backup nhân sự, dự phòng cho trường hợp nhân viên thôi việc, đau bệnh… - Sau khi chỉnh sửa các lỗi phần mềm hay bổ sung thêm các yêu cầu mới, trước khi update phiên bản mới ta cần backup phiên bản cũ. Nếu phiên bản mới không hoạt động được thì ta phải khôi phục lại phiên bản cũ, tránh trường hợp bị dán đoạn công việc của khách hàng. - Khi kiểm thử các phần mềm, ta cần phải thử trên nhiều môi trường, đơn vị dữ liệu khác nhau, tránh trường hợp khi đem triển khai thực tế thì bị lỗi, Ví dụ khi test phần mềm ta phải test tên nhiều hệ điều hành khác nhau. - Lĩnh vực điện toán đám mây(cloud computing), thất thoát dữ liệu là một trong những vấn đề nóng bỏng nhất trong thế giới công nghệ hiện nay. Những nhà cung cấp dịch vụ điện toán đám mây tin rằng với việc người dùng không lưu trữ bất kỳ dữ liệu nào trên máy cá nhân, mà tất cả được tập trung và xử lý trên máy chủ của nhà cung cấp sẽ làm hạn chế tổn thất về dữ liệu vì nhà cung cấp sẽ có nhiệm vụ và tập trung hơn trong việc đảm bảo an toàn.Thêm nữa, việc sử dụng các phần mềm nền web sẽ giảm thiểu khả năng xung đột giữa các phần mềm trong máy vì người dùng không cần phải cài đặt mà chỉ cần thông qua trình duyệt để xử dụng các dịch vụ online.Trong công nghệ ảo hóa, người dùng dễ dàng tạo ra những máy chủ lưu trữ và backup thông tin. Ví dụ chúng ta có thể tạo ra 3 máy ảo khác nhau, một máy dùng để truy cập Internet, một máy không truy cập Internet mà chỉ nối mạng nội Trang 12
  14. bộ để xử lý công việc, một máy không truy cập Internet mà chỉ nối mạng nội bộ để thực hiện việc backup dữ liệu. Điều này có thể dễ dàng thực hiện mà không cần tốn thêm tiền để mua các máy vật lý cùng các thiết bị kết nối mạng(nguồn internet). 3.9. Nguyên lý đảo ngược Nội dung: - Thay vì hành động theo nhu cầu của 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. - Lật ngược đối tượng Nhận xét: - Việc xét khả năng lật ngược vấn đề, trên thật tế là xem xét “nữa kia” của hiện thực khách nhằm mục đích tăng tính bao quát, toàn diện, đầy đủ và khắc phục tính ì tâm lý. - Về mặt suy nghĩ, khi giải bài toán cho trước (bài toán thuận), người giải nên xem xét giải quyết bài toán ngược và khả năng đem lại lợi ích của việc giải ngược trong những điều kiện, hoàn cảnh cụ thể nào, để tận dụng nó. Áp dụng vào trong tin học: - Một bài toán tin học về logic mệnh đề, khi cần chứng minh một đề là đúng ta thường dùng phương pháp phản chứng, giả sử rằng mệnh đề đó là sai, và ta đi tìm cái mẫu thuẫn, và cuối cùng kết luận mệnh đề đó là đúng. - 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”. - Ngôn ngữ lập trình java cho phép ta tự xây dựng 1 framework đảo ngược điều khiển(Inversion of Control) bằng cách dùng Java Reflection để khởi tạo đối tượng động. - Áp dụng vào một số thuật toán mã hóa va hàm băm thông tin Trang 13
  15. 3.10. Nguyên lý vượt nhanh Nội dung: - Vượt qua những 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 Nhận xét: - Nếu tác động là có hại thì có thể làm cho nó không còn có hại nữa bằng cách giảm thời gian tác động đến tối thiểu, hay nói cách khác phải vượt qua nó càng nhanh càng tốt để có được độ an toàn cao. - Trong nhiều trường hợp, đối tượng phải làm việc với những quá trình xảy ra nhanh. Để có sự phù hợp, để có được những kết quả cần thiết, bản thân đối tượng phải chuyển sang trạng thái "vượt nhanh". Áp dụng vào tin học: - Để nâng cao hiệu quả của việc xử lý và tính toán, ta thiết kế các cpu có thể thực hiện vài tỷ phép tính trên 1 giây. - Đễ hỗ trợ cho việc kinh doanh, dự đoán, dự báo… ta có thể xây dựng các hệ hỗ trợ ra quyết định thay vì phải làm bài toán thống kê truyền thống. - Để cho thuật toán chạy nhanh hơn, ta có thể tối ưu các thuận toán với độ phức tạp thấp nhất. - Trong các ngôn ngữ lập trình(c, pascal, visual basic, T-SQL…) ta có thể sử dụng các lệnh như: go to, break, exit… để thời gian thực thi nhanh hơn. - Khi xây dựng các hàm, thủ tục ta cần phải tối ưu thuật toán bằng cách đánh giá độ phức tạp của thuật toán. 3.11. Nguyên lý rẻ thay cho đắt Nội dung: - 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. Nhận xét: - Có nhiều nguyên nhân để ta phải thay thế đối tượng đắt tiền bởi đối tượng rẻ tiền, ví dụ: dùng một lần để khỏi mất thời gian bảo hành, sửa chữa… Đáp ứng được nhu cầu nhiều người sử dụng (vừa túi tiền)… Trang 14
  16. Áp dụng trong tin học: - Thay vì sử dụng các phần mềm có bản quyền, chúng ta có thể sử dung các phần mềm open source. - Thay vì mua các phần mềm nước ngoài ta có thể mua các phần mềm trong nước. - Thay vì dùng con người để làm các công việc nguy hiểm, ta có thể lập trình cho các robot thực hiện thay công việc. - Thay vì dùng hàng tấn giấy để lưu trữ dữ liệu, ta có thể dùng 1 ỗ cứng vài trăm GB - Thay vì dùng bác sỹ để khám bệnh ta có thể dùng 1 số phần mềm để chẩn đoán bệnh dựa vào các triệu chứng. - Dịch vụ điện toán đám mây có thể giúp cho các doanh nghiệp tiết kiệm được rất nhiều chi phí, doanh nghiệp không cần phải đầu tư nhiều vào hạ tầng phần cứng và phần mềm, các dịch vụ này có thể thuê từ các công ty cung cấp dịch vụ. Trong điện toán đám mây, các dịch vụ được cung cấp theo nhiều phiên bản khác nhau. Với người dùng thông thường có thể dùng phiên bản miễn phí hoặc giá rẻ tuy phải chịu một số phiền phức như dung lượng lưu trữ, quảng cáo. Người dùng cao cấp hơn hoặc công ty có thể sử dụng theo thuê bao hàng tháng hoặc hàng năm với chất lượng tốt hơn. Tuy vậy, với sự phát triển như vũ bão hiện nay của công nghệ, thì sự cạnh tranh giữa những nhà cung cấp dịch vụ càng lớn, vì thế rất nhiều website cung cấp dịch vụ miễn phí mà chất lượng rất cao ra đời, đáp ứng nhu cầu của đại đa số người dùng. Với công nghệ ảo hóa, người dùng thông thường hoặc công ty vừa và nhỏ có thể giảm thiểu chi phí phải trả cho việc thiết lập hệ thống mạng hoặc máy chủ, thay vào đó chỉ cần đầu tư một máy chủ vật lý tốt, và trên đó có thể cài đặt nhiều hệ thống máy chủ khác, đáp ứng tốt nhu cầu công việc.(nguồn internet) 3.12. Nguyên lý đổi màu 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 Trang 15
  17. Áp dụng vào tin học: - Một số ứng dụng phần mềm có tính chất mô phỏng, để tăng tính tính trực quan ta thường dùng các màu sắc khác nhau để minh họa. - Áp dụng thuật toán tô màu bản đồ thế giới với số màu ít nhất. - Trong các ứng dụng phần mềm, các câu thông báo có tính chất nhắc nhở, thông báo lỗi… ta thường dùng màu đỏ để hiển thị. - Trong một số phần mềm ứng dụng ta thường dùng màu sắc đi kèm với các con số, ví dụ như: o Dùng các màu sắc khác nhau để thống kê số lượng các hóa đơn “còn hạn” và hóa đơn “chờ thanh lý” o Phần mềm quản lý lịch công tác tuần, ta thường dùng các màu sắc khác nhau để phân biệt lịch nào đã họp xong, lịch chờ duyệt, lịch dự kiến… o Phần mềm quản lý bầu cử quốc hội năm 2011, mục tiêu là xây dựng 1 phần mềm nhằm giúp sở nội vụ TPHCM thực hiện các giai đoạn: chuẩn bị bầu cử, tiến hành và báo cáo kết quả bầu cử. Để giúp cho các lãnh đạo Thành phố theo dõi được tiến độ, số lượng cư tri đi bầu, tình hình kiểm phiếu ở các điểm bầu cử, ta thường áp dụng các màu sắc như sau:  Màu xanh lục: các điểm mà số cử tri đi bầu >50% và
  18. 3.13. Nguyên lý sử dụng trung gian Nội dung: - Sử dụng đối tượng trung gian, chuyển tiếp. Nhận xét: - Mới thoạt nhìn, ta cảm thấy không thuận lắm, vì trung gian chuyển tiếp thường gây phiền phức, tốn thêm chi phí … - Mặt khác, có những trường hợp trung gian là sự đòi hỏi khách quan mà nếu thiếu đối tượng trung gian thì hoạt động của hệ thống sẽ kém hiệu quả. Ví dụ: Tiền là hàng hoá trung gian, nếu không có tiền thì sẽ chẳng có sự lưu thông kinh tế nào cả Áp dụng vào tin học: - Trong kỹ thuật lập trình ta thường sử dụng các biến trung gian để lưu trữ dữ liệu, ví dụ như bài toán hoán đổi 2 số nguyên x,y, ta có thể khai báo như sau: int x, y , tmp, tmp=x, x=y, y=tmp biến tmp là biến trung gian dùng để lưu trữ giá trị x. - Xây dựng hệ thổng quản lý văn bản và hồ sơ công việc cho UBND TPHCM, hệ thống được mô tả như sau: Các đơn vị Sở ban ngành và Quận huyện sẽ gởi và nhận các văn bản đi thông qua 1 hệ thống mạng metronet, các văn bản đi này sẽ được truyền đến một server trung gian(Gate way) trước khi nó được gởi đến các đơn vị khác. - Trong lập trình SQL server thay vì phải đọc trực tiếp dữ liệu trên các table, ta có thể đưa dữ liệu của 1 table vào một table tạm, sau đó có thể dùng lại table tạm này nhiều lần, điều này có thể làm cho việc xử lý tính toán nhanh hơn. - Một số ứng dụng phần mềm như ngân hàng, chứng khoán, thươ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. 3.14. Nguyên lý sao chép(copy) Nội dung: - Thay vì sử dụng cái không được phép, phức tạp đắt tiền, không tiện lợi dễ vỡ, sử dụng bản sao. - Thay thế đối tượng hay hệ các đối tượng bằng các bản sao quang học (ảnh, hình vẽ) với các tỉ lệ cần thiết. Trang 17
  19. - 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 bản sao hồng ngoại hoặc tử ngoại. Áp dụng vào trong tin học: - Có thể nói nguyên lý sao chép là nguyên lý chủ đạo nhất trong tin học, các ngành nghề khác để sản xuất được 1 sản phẩm thứ 2 thì yêu cầu ta phải tiêu hao nguyên vật liệu, con người và thời gian, tuy nhiên đối với phần mềm thì không, ta có thể sao chép ra rất nhiều phiên bản giống nhau. - Các chức năng copy, paste tập tin hay thư mục có sẵn trong các hệ điều hành window, linux… - Phần mềm soạn thảo Microsoft office word có các chức năng copy, paste cho phép ta có thể sao chép nhiều đoạn văn bản và hình ảnh. - Phần mềm một cửa điện tử, để tin học hóa các quy trình giải quyết hồ sơ, từ lúc tiếp nhận cho đến lúc trả kết quả, ta thường phải định nghĩa và lưu trữ tất cả các bước xử lý của 1 quy trình. Tuy nhiên việc định nghĩa này rất mất thời gian, vì vậy khi phát sinh 1 quy trình mới ta thường copy 1 quy trình đã có, rồi sau đó hiệu chỉnh lại. 3.15. Nguyên lý loại bỏ và tái sinh từng 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…). - 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. Áp dụng vào trong tin học: - Các ngôn ngữ lập trình như C, visual basic, SQL server… sau khi sử dụng xong một số đôí tương như con trỏ, dataset… ta thường phải khôi phục lại bộ nhớ bằng cách hủy các đối tượng này. - Một số hệ điều hành như window, linux… cho phép ta hủy một số tiến trình nhằm tiết kiệm bộ nhớ trong của máy tính. - Trong kỹ thuật lập trình khi ta gọi các hàm hay thủ tục, sau khi thực thi xong thì các biến được khai báo cục bộ bên trong các hàm sẽ tự động hủy. Trang 18
  20. 3.16. Nguyên lý đồng nhất Nội dung: - Những đối tượng, tương tác với các đối tượng cho trước, phải được làm từ cùng vật liệu (hoặc từ vật liệu gần về các tính chất) với các vật liệu để tạo đối tượng cho trước. Áp dụng vào trong tin học: - Khi thiết kế cơ sở dữ liệu quan hệ, để đảm bảo thông tin được lưu trữ đồng nhất với nhau thì các table phải liên kết với nhau thông qua các khóa ngoại, tránh trường hợp thông tin của một đối tượng mà lưu trữ ở nhiều table. - Khi thiết kế các website, các đối tương như textbox, button, lable, grid… phải đồng nhất với nhau về css. - Trong kỹ thuật khai thác dữ liệu thường người ta áp dụng các phương pháp phân nhóm và gom cụm các đối tượng đồng nhất với nhau. - Ngôn ngữ lập trình T-SQL cho phép ta group by các đối tượng đồng nhất lại với nhau. 3.17. Nguyên lý 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 đối 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úc nhất định. Áp dụng trong tin học: - Ứng dụng trí tuệ nhân tạo để lập trình điểu khiển các robot làm những công việc nguy hiểm thay cho con người. - Dùng phần mềm để làm 1 số bài toán thống kê, báo cáo thay vì con người phải làm thủ công, tốn nhiều thời gian. - Công nghệ internet 3G thay cho ADSL - Các máy tính bản không cần phải dùng bàn phím và chuộc để nhập liệu Trang 19
nguon tai.lieu . vn