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 ch
Trang 1TRƯỜ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 ĐỀ
Trang 2MỤC LỤC
Trang 33.31 Nguyên lý đẵng thế 30
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
Trang 4MỞ ĐẦ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 53.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 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 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 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)
Á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 93.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 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)
Trang 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
Trang 12Nhậ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
có phương pháp phòng ngừa từ trước
Trang 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 14bộ để 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ữ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 153.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 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 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à <90%
Màu đỏ: các điểm mà số cử tri đi bầu <50%
Màu xanh lam: các điểm mà số cử tri đi bầu >90%
Dựa vào các màu sắc này mà các lãnh đạo có thể nắm được số liệu và có những chỉ đạo kịp thời
Trang 183.13 Nguyên lý sử dụng trung gian
Á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)
Trang 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
Á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 203.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
- 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 21- Xây dựng các hệ thống dự đoán và cảnh báo, máy tính có thể nhận biết và tự động thi hành một số công việc Ví dụ như hệ thống cảnh báo sóng thần, hệ thống phòng thủ tên lửa…
- 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 Trong 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)
3.18 Nguyên lý tự phục vụ
Nội dung:
- Đố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
- Sử dụng phế liệu, chất thải, năng lượng dư
Áp dụng trong tin học:
- Các vệ tinh khi bay ngoài trái đất có thể được lập trình để tự động thu nhận ánh sáng mặt trời làm năng lượng
- Các tên lửa hành trình khi tìm kiếm mục tiêu có thể tự động thay đổi hành trình
- Các máy bay không người lái khi bị sự cố có thể tự động phá hủy
- Trong một số các trò chơi trên máy tính, phần mềm có thể tự động phát sinh ngẫu nhiên 1 số tọa độ để hiển thị các đối tượng
- Trong quá trình kiểm thử phần mềm, có thể phát sinh tự động 1 số mẫu để test
3.19 Nguyên lý 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ó
Trang 22Áp dụng trong tin học:
- Trong kỹ thuật lập trình window, khi nhấn vào các button như: Save, delete… ta thường phản hồi lại các thông báo như: “bạn chưa nhập đầy đủ các thông tin !” hay
“bạn có thật sự muốn xóa thông tin này hay không?”
- Một số website khi ta tạo xong tài khoản thì nhận được 1 yêu cầu kích hoạt tài khoản qua email
- Khi ta gởi 1 email thì nhận được 1 email phản hồi là đã nhận được mail
- Dịch vụ internet baking, mobile banking khi ta gởi 1 yêu cầu tra cứu số dư thì nhận được phản hồi số dư tài khoản
- Xây dựng các cớ chế trả lời tự động cho 1 số tổng đài
3.20 Nguyên lý chuyển bại thành thắng
Nội dung:
- Sử dụng các tác nhân có hại (ví 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 với tác nhân có hại khác
- Tăng cường tác nhân có hại đến khi nó không còn có hại nữa
Áp dụng trong tin học:
- Trong quá trình kiểm thử phần mềm ta thường xây dựng 1 số test case đăt biệt để test(dùng số lớn, nhập nhiều ký tự, nhập các ký tự đặt biệt…), sau khi test xong phần mềm sẽ đảm bảo được chất lượng
- Virus tin học được tạo ra để test các phần mềm diệt virus
- Ngày nay các quốc gia trên thế giới thườ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…
3.21 Nguyên lý 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
Nhận xét:
- Từ “thay đổi” cần hiểu theo nghĩa rộng