Tài liệu Báo cáo cuối kỳ phương pháp nghiên cứu khoa học trong tin học công nghệ thông tin với sự tự do, sáng tạo và chia sẻ

  • Số trang: 45 |
  • Loại file: PDF |
  • Lượt xem: 97 |
  • Lượt tải: 0
tailieuonline

Đã đăng 39907 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN LỚP CAO HỌC KHÓA 6 Báo cáo cuối kỳ PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC Công nghệ thông tin với sự tự do, sáng tạo và chia sẻ HVTH: Phạm Nguyễn Trường An MSHV: CH1101062 GVHD: HOÀNG VĂN KIẾM Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học Mục lục A.KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC........................................................5 I.Khái niệm và phân loại:.........................................................................................5 a.Phân loại theo nguồn gốc hình thành khoa học:................................................5 b.Phân loại theo mục đích ứng dụng khoa học.....................................................6 c.Phân loại theo mức độ khái quát hóa của khoa học...........................................6 d.Phân loại theo kết quả họat động chủ quan của con người................................6 e.Phân loại theo cơ cấu của hệ thống tri thức hoặc chương trình đào tạo.............6 f.Phân loại theo đối tượng nghiên cứu của khoa học............................................7 II.Nghiên cứu khoa học............................................................................................7 a.Đặt vấn đề, mục đích, hoặc câu hỏi nghiên cứu................................................7 b.Những giả định..................................................................................................7 c.Danh mục tài liệu...............................................................................................8 d.Trình tự..............................................................................................................8 e.Tầm quan sát, dữ liệu, kết quả...........................................................................8 f.Kết luận.............................................................................................................. 8 III.Đề tài nghiên cứu khoa học.................................................................................9 a.Khái niệm đề tài.................................................................................................9 b.Đối tượng nghiên cứu và phạm vi nghiên cứu...................................................9 c.Mục đích và mục tiêu nghiên cứu......................................................................9 B.PHƯƠNG PHÁP LUẬN SÁNG TẠO VÀ ĐỔI MỚI TRONG KHOA HỌC..........9 I.Khái niệm, đối tượng, mục đích và ý nghĩa...........................................................9 II.Những nội dung chính.........................................................................................10 a.Vấn đề khoa học..............................................................................................10 b.Các phương pháp phát hiện vấn đề khoa học..................................................10 c.Phương pháp giải quyết vấn đề khoa học về phát minh, sáng chế...................11 d.Các phương pháp giải quyết vấn đề tổng quát ...........................................13 C.ÁP DỤNG CÁC NGUYÊN TẮC SÁNG TẠO VÀO NHỮNG VẤN ĐỀ CỤ THỂ TRONG CÔNG NGHỆ THÔNG TIN.........................................................................14 I.Sự giải phóng của ngành phần mềm và bùng nổ sáng tạo trong công nghệ thông tin............................................................................................................................. 15 GVHD: Hoàng Văn Kiếm Trang 2/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học a.Giai đoạn 1: Phần mềm là gắn liền với phần cứng..........................................15 b.Giai đoạn 2: Định hình nền công nghiệp với sự trỗi dậy của máy tính cá nhân ............................................................................................................................. 16 c.Sự trỗi dậy của phần mềm mã nguồn mở và câu chuyện Tái ông thất mã.......17 II.Áp dụng các nguyên tắc sáng tạo trong xây dựng phần mềm.............................19 a.Nhu cầu thực tế................................................................................................19 b.Phân tích các giải pháp đã có và tìm ra vấn đề:...............................................20 c.Xác định lại vấn đề..........................................................................................21 III.Sáng tạo, phát triển từ những công cụ đã có:.....................................................23 a.Giao thức bittorrent..........................................................................................23 b.SHA-1 Hash và file checksum.........................................................................25 c.Giao diện người dùng......................................................................................27 IV.Chi tiết thiết kế, mô tả hoạt động.......................................................................29 a.Kết cấu chương trình.......................................................................................29 V.Giao diện chính................................................................................................... 31 a.Bộ thư viện lõi.................................................................................................35 b.Cơ chế send file...............................................................................................37 VI.Một số mẹo dùng trong lúc cài đặt chương trình...............................................38 a.Background......................................................................................................38 b.Synchronous socket programming..................................................................39 c.Thread synchronization...................................................................................40 Cách lấy external IP............................................................................................ 42 d.Lấy Icon của file – task...................................................................................43 e.Cách dừng một thread......................................................................................44 f.Cách ngăn không cho hệ thống vẽ lại chương trình.........................................44 D.TÀI LIỆU THAM KHẢO:.....................................................................................46 GVHD: Hoàng Văn Kiếm Trang 3/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học A.KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC I. Khái niệm và phân loại: Khoa học là quá trình nghiên cứu nhằm khám phá ra những kiến thức mới, học thuyết mới… về tự nhiên và xã hội. Những kiến thức hay học thuyết mới nầy, tốt hơn, có thể thay thế dần những cái cũ, không còn phù hợp. Khoa học bao gồm một hệ thống tri thức về qui luật của vật chất và sự vận động của vật chất, những qui luật của tự nhiên, xã hội, và tư duy. Hệ thống tri thức này hình thành trong lịch sử và không ngừng phát triển trên cơ sở thực tiễn xã hội. Phân biệt ra 2 hệ thống tri thức: tri thức kinh nghiệm và tri thức khoa học. Có nhiều hướng phân loại khoa học: theo nguồn gốc (lý thuyết, thực nghiệm, thực chứng…), theo mục đích ứng dụng (mô tả, phân tích, tổng hợp, sáng tạo…), theo mức độ khái quát (cụ thể, trừu tượng, tổng quát…), theo tính tương liên (liên ngành, đa ngành…), theo cơ cấu hệ thống tri thức (cơ sở, cơ bản, chuyên ngành…), theo đối tượng nghiên cứu (tự nhiên, kỹ thuật, xã hội nhân văn, công nghệ, nông nghiệp, y học…). a. Phân loại theo nguồn gốc hình thành khoa học: Khoa học lý thuyết (sciences théorique) Khoa học thuần túy (scieces pures, sciences de pure érudition) Khoa học thực nghiệm (sciences empiricales,sciences expérimentales) Khoa học thực chứng (sciences positives) Khoa học quy nạp (sciences inductives) Khoa học diễn dịch (sciences déductives) GVHD: Hoàng Văn Kiếm Trang 4/45 Phạm Nguyễn Trường An b. Phương pháp nghiên cứu khoa học trong tin học Phân loại theo mục đích ứng dụng khoa học Khoa học mô tả (sciences descriptives) Khoa học phân tích (sciences analytiques) Khoa học tổng hợp (sciences synthétiques) Khoa học ứng dụng (sciences appliquées) Khoa học hành động (sciences de l’action) Khoa học sáng tạo (sciences créatrices) c. Phân loại theo mức độ khái quát hóa của khoa học Khoa học cụ thể (sciences concrètes) Khoa học trừu tượng (sciences abstraites) Khoa học tổng quát (sciences générales) Khoa học đặc thù (sciences particulières) 4. Phân loại theo tính tương liên giữa các khoa học Khoa học liên bộ môn(sciences inter-disciplinaires) Khoa học đa bộ môn (sciences multi-disciplinaires) d. Phân loại theo kết quả họat động chủ quan của con người Khoa học ký ức (sciences de la mémoire) Khoa học tư duy (sciences de la pensée) Khoa học suy luận (sciences de la raison) Khoa học tưởng tượng (sciences de l’imagination) e. Phân loại theo cơ cấu của hệ thống tri thức hoặc chương trình đào tạo Khoa học cơ bản (sciences de base) Khoa học cơ sở (sciences fondamentales) Khoa học chuyên môn (sciences de spécialisation) GVHD: Hoàng Văn Kiếm Trang 5/45 Phạm Nguyễn Trường An f. Phương pháp nghiên cứu khoa học trong tin học Phân loại theo đối tượng nghiên cứu của khoa học Khoa học tự nhiên (sciences naturelles, sciences de la nature) Khoa học kỹ thuật (sciences techniques) Khoa học công nghệ (sciences technologiques, sciences d’engineering) Khoa học xã hội (sciences sociales) Khoa học nhân văn (sciences humaines) Khoa học nông nghiệp (sciences agricoles) Khoa học cơ bản (sciences de la santée) II. Nghiên cứu khoa học Nghiên cứu khoa học là một hoạt động tìm kiếm, xem xét, điều tra, hoặc thử nghiệm. Dựa trên những số liệu, tài liệu, kiến thức,… đạt được từ các thí nghiệm nghiên cứu khoa học để phát hiện ra những cái mới về bản chất sự vật, về thế giới tự nhiên và xã hội, và để sáng tạo phương pháp và phương tiện kỹ thuật mới cao hơn, giá trị hơn. Phương pháp nghiên cứu khoa học nói chung gồm sáu bước cơ bản sau: a. Đặt vấn đề, mục đích, hoặc câu hỏi nghiên cứu Đặt vấn đề hay câu hỏi nghiên cứu là phần quan trọng nhất của phương pháp nghiên cứu khoa học. Mỗi một phần dự án được thực hiện để trả lời câu hỏi này. Các câu hỏi nghiên cứu đôi khi được hình thành như là một tuyên bố và được gọi là “vấn đề” hoặc "báo cáo vấn đề." Mục tiêu hay những ý tưởng kiểm chứng là gì? Câu hỏi khoa học đang trả lời là gì? b. Những giả định Giả định là một dạng dự báo, được hình thành như một tuyên bố để dẫn tới câu trả lời cho câu hỏi nghiên cứu. Giải thích một cách thuyết phục các dự án sử dụng để chứng minh cho mục đích nghiên cứu. Nên cố gắng trình bày kỹ về các kết luận có được thông qua đo lường. Không phải lúc nào kết luận cũng phù hợp với giả thuyết. GVHD: Hoàng Văn Kiếm Trang 6/45 Phạm Nguyễn Trường An c. Phương pháp nghiên cứu khoa học trong tin học Danh mục tài liệu Danh sách tất cả các vật tư, thiết bị, tài liệu được sử dụng trong nghiên cứu hoặc thử nghiệm. Danh sách các tài liệu phải bao gồm các trình tự của tất cả thao tác. d. Trình tự Là mô tả chi tiết, từng bước về cách thực hiện thử nghiệm. Mô tả rõ ràng cách khống chế các biến số cũng như từng bước làm thế nào lấy được kết quả cuối cùng thông qua đo lường để chứng minh hay bác bỏ giả thuyết. Các tiến trình thực hiện nên được đúc kết theo một phương pháp mà theo đó người khác dễ dàng thực hiện lại. Hình ảnh mô tả các thao tác được hiện rõ trên bảng hiển thị. e. Tầm quan sát, dữ liệu, kết quả Các kết quả thường là dưới hình thức một tuyên bố để giải thích hoặc diễn giải dữ liệu. Kết quả thu được ở dạng dữ liệu thô, đồ thị, kết luận rút ra từ những dữ liệu có trước. Hình ảnh cũng có thể được sử dụng ở đây. f. Kết luận Kết luận là một bản tóm tắt các nghiên cứu và các kết quả của thử nghiệm. Đây là nơi trả lời các vấn đề hay câu hỏi nghiên cứu. Cần đưa ra một tuyên bố cho dù dữ liệu có hỗ trợ giả thuyết hay không. Cần phải có đủ dữ liệu để chứng minh một phần hoặc phản bác toàn bộ giả thuyết. Trong trường hợp này, có thể giải thích tại sao có các kết quả khác nhau. Các phương pháp khoa học không phải là đúc bằng bê tông mà nó là một hệ thống, minh bạch và khá dễ để học hỏi và sử dụng mà không nhà khoa học nào có thể sử dụng nó cho lợi ích riêng của họ. Phương pháp khoa học không phải là một điều gì rất cụ thể mà nó mang tính hệ thống, trực tiếp và khá dễ để sử dụng và học hỏi thậm chí đối với những người không phải là các nhà khoa học với các mối quan tâm khác nhau. GVHD: Hoàng Văn Kiếm Trang 7/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học III. Đề tài nghiên cứu khoa học a. Khái niệm đề tài Đề tài là một hình thức tổ chức NCKH do một người hoặc một nhóm người thực hiện. Một số hình thức tổ chức nghiên cứu khác không hoàn toàn mang tính chất nghiên cứu khoa hoc, chẳng hạn như: chương trình, dự án, đề án. b. Đối tượng nghiên cứu và phạm vi nghiên cứu Đối tượng nghiên cứu: là bản chất của sự vật hay hiện tượng cần xem xét và làm rõ trong nhiệm vụ nghiên cứu. Phạm vi nghiên cứu: đối tượng nghiên cứu được khảo sát trong trong phạm vi nhất định về mặt thời gian, không gian và lĩnh vực nghiên cứu. c. Mục đích và mục tiêu nghiên cứu Khi viết đề cương nghiên cứu, một điều rất quan trọng là làm sao thể hiện được mục tiêu và mục đích nghiên cứu mà không có sự trùng lấp lẫn nhau. Vì vậy, cần thiết để phân biệt sự khác nhau giữa mục đích và mục tiêu. Mục đích: là hướng đến một điều gì hay một công việc nào đó trong nghiên cứu mà người nghiên cứu mong muốn để hoàn thành, nhưng thường thì mục đích khó có thể đo lường hay định lượng. Mục tiêu: là thực hiện hoạt động nào đó cụ thể, rõ ràng mà người nghiên cứu sẽ hoàn thành theo kế hoạch đã đặt ra trong nghiên cứu. Mục tiêu có thể đo lường hay định lượng được. GVHD: Hoàng Văn Kiếm Trang 8/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học B. PHƯƠNG PHÁP LUẬN SÁNG TẠO VÀ ĐỔI MỚI TRONG KHOA HỌC I. Khái niệm, đối tượng, mục đích và ý nghĩa Phương pháp luận sáng tạo và đổi mới là phần ứng dụng của Khoa học về sáng tạo, bao gồm hệ thống các phương pháp và các kĩ năng cụ thể giúp nâng cao năng suất và hiệu quả, về lâu dài tiến tới điều khiển tư duy sáng tạo của người sử dụng. Đối tượng mà môn học nghiên cứu và hoàn thiện là tư duy sáng tạo – quá trình suy nghĩ giải quyết vến đề và ra quyết định của mỗi người. Mục đích của môn học là trang bị cho những người học hệ thống các phương pháp và các kĩ năng cụ thể, giúp họ nâng cao năng suất, hiệu quá, về lâu dài, tiến tới điều khiển tư duy sáng tạo (quá trình suy nghĩ giải quyết vấn đề và ra quyết định) của họ. Các ích lợi: cuộc đời của mỗi người là chuỗi các vấn đề cần giải quyết, chuỗi các quyết định cần phải đưa ra. Nếu như giải quyết vấn đề không tốt, đưa ra các quyết định sai, sẽ phải trả giá về thời gian, sức khỏe, phương tiện vật chất, tiền bạc, địa vị, danh tiếng… Ý nghĩa nhân đạo và phát triển con người: phương pháp luận sáng tạo và đổi mới trong khoa học nhắm tới hoàn thiện tư duy sáng tạo cũng là nhắm tới hoàn thiện con ngừoi trong các mối quan hẹ con ngừoi với con người, con người với xã hội, con ngừoi với công cụ lao động (hiểu theo nghĩa rộng) và con người với tự nhiên. II. Những nội dung chính a. Vấn đề khoa học Vấn đề khoa học (scientific problem) còn gọi là vấn đề nghiên cứu (research problem) là câu hỏi đặt ra khi người nghiên cứu đứng trước mâu thuẫn giữa tính hạn chế của tri thức khoa học hiện có với yêu cầu phát triển tri thức đó ở trình độ cao hơn. Nghiên cứu khoa học luôn tồn tại 2 vấn đề: Vấn đề về bản chất sự vật đang tìm kiếm. GVHD: Hoàng Văn Kiếm Trang 9/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học Vấn đề về phương pháp nghiên cứu để làm sáng tỏ về lý thuyết và thực tiễn những vấn đề thuộc lớp thứ nhất b. Các phương pháp phát hiện vấn đề khoa học Có 6 phương pháp: 1) Tìm những kẻ hở, phát hiện những vấn đề mới 2) Tìm những bất đồng 3) Nghĩ ngược lại quan niệm thông thường 4) Quan sát những vướng mắt trong thực tiễn 5) Lắng nghe lời kêu ca phàn nàn 6) Cảm hứng: những câu hỏi bất chợt xuất hiện khi quan sát sự kiện nào đó. c. Phương pháp giải quyết vấn đề khoa học về phát minh, sáng chế Có 5 phương pháp: • Dựng Vepol đầy đủ • Chuyển sang Fepol • Phá vở Vepol • Xích Vepol • Liên trường Có 40 thủ thuật (nguyên tắc) sáng tạo cơ bản: 1. Nguyên tắc phân nhỏ 2. Nguyên tắc “tách khỏi” 3. Nguyên tắc phẩm chất cục bộ 4. Nguyên tắc phản đối xứng 5. Nguyên tắc kết hợp 6. Nguyên tắc vạn năng 7. Nguyên tắc “chứa trong” GVHD: Hoàng Văn Kiếm Trang 10/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học 8. Nguyên tắc phản trọng lượng 9. Nguyên tắc gây ứng suất sơ bộ 10.Nguyên tắc thực hiện sơ bộ 11. Nguyên tắc dự phòng 12.Nguyên tắc đẳng thế 13.Nguyên tắc đảo ngược 14.Nguyên tắc cầu (tròn) hoá 15.Nguyên tắc linh động 16.Nguyên tắc giải “thiếu” hoặc “thừa” 17.Nguyên tắc chuyển sang chiều khác 18.Nguyên tắc sử dụng các dao động cơ học 19.Nguyên tắc tác động theo chu kỳ 20.Nguyên tắc liên tục tác động có ích 21.Nguyên tắc “vượt nhanh” 22.Nguyên tắc biến hại thành lợi 23.Nguyên tắc quan hệ phản hồi 24.Nguyên tắc sử dụng trung gian 25.Nguyên tắc tự phục vụ 26.Nguyên tắc sao chép (copy) 27.Nguyên tắc “rẻ” thay cho “đắt” 28.Thay thế sơ đồ cơ học 29.Sử dụng các kết cấu khí và lỏng 30.Sử dụng vỏ dẻo và màng mỏng 31.Sử dụng các vật liệu nhiều lỗ 32.Nguyên tắc thay đổi màu sắc 33.Nguyên tắc đồng nhất GVHD: Hoàng Văn Kiếm Trang 11/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học 34.Nguyên tắc phân hủy hoặc tái sinh các phần 35.Thay đổi các thông số hoá lý của đối tượng 36.Sử dụng chuyển pha 37.Sử dụng sự nở nhiệt 38.Sử dụng các chất oxy hoá mạnh 39.Thay đổi độ trợ 40.Sử dụng các vật liệu hợp thành (composite) d. Các phương pháp giải quyết vấn đề tổng quát 1) Các phương pháp phân tích vấn đề Phân chia vấn đề Phân loại vấn đề Phân công vấn đề Phân cấp bài toán Phân tích 2) Các phương pháp tổng hợp vấn đề Tổ hợp Đối hợp Tích hợp Kết hợp Tổng hợp theo không gian và thời gian 6. Các phương pháp giải quyết vấn đề trong tin học Phương pháp trực tiếp Phương pháp gián tiếp Phương pháp Thử Sai Phương pháp Heuristic GVHD: Hoàng Văn Kiếm Trang 12/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học Phương pháp Trí Tuệ Nhân Tạo C. ÁP DỤNG CÁC NGUYÊN TẮC SÁNG TẠO VÀO NHỮNG VẤN ĐỀ CỤ THỂ TRONG CÔNG NGHỆ THÔNG TIN Kể từ khi máy tính cá nhân (Personal Computer - PC) bùng nổ, đem đến sự tiếp cận đại chúng với ngành công nghệ thông tin thì lĩnh vực phần mềm luôn phát triển sôi động hơn phần cứng về mặt phát minh sáng tạo. Không như phần cứng phải tốn chi phí đầu tư trang thiết bị để thử nghiệm, dây chuyền sản xuất và hệ thống phân phối phức tạp, phần mềm có thể được sản xuất chỉ với một máy tính cá nhân (PC) và được sao chép ra hàng trăm bản để phân phối với đến người dùng cuối thông qua mạng toàn cầu internet. Chi phí đầu tư gần như không đáng kể cho phép bất cứ một ai cũng có thể thoả chí đam mê phát minh sáng chế với lĩnh vực phần mềm và thực tế rất nhiều sản phẩm phần mềm hiện nay thu về hàng triệu đô lại được thực hiện bởi những sinh viên chưa tốt nghiệp hay thậm chí chỉ là một học sinh trung học. Sự ra đời của công ty facebook và sự nổi tiếng của trò chơi Angry bird cho ta những ví dụ trước mắt về một ngành công nghiệp nơi sự sáng tạo có thể tạo ra những sự đột phá to lớn vượt qua mọi rào cản về vốn, về kinh nghiệm. Thậm chí ngành công nghiệp phần mềm có mức độ vận động sáng tạo và chuyển hóa nhanh đến nỗi những nền tảng pháp lý về sở hữu trí tuệ vốn trước nay được xem là để bảo vệ quyền lợi của nhà phát minh sáng chế lại trở thành rào cản cho sự tự do sáng tạo. Phần này sẽ điểm qua lịch sử của ngành công nghệ phần mềm và các xu hướng phát triển phần mềm hiện tại, các tranh cãi vẫn đang tiếp diễn liên quan đến sở hữu trí tuệ đối với phần mềm. Từ đó chúng ta có thể nhìn thấy một bức tranh muôn màu về việc áp dụng các nguyên lý sáng tạo vào ngành công nghiệp phần mềm cũng như làm sao thúc đẩy sự sáng tạo trong công nghệ thông tin. GVHD: Hoàng Văn Kiếm Trang 13/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học Mục cuối cùng của phần này sẽ mô tả lại quá trình xây dựng một phần mềm sơ khai, chỉ tận dụng các nguyên tắc sáng tạo mà không theo một lối mòn cho trước nào. I. Sự giải phóng của ngành phần mềm và bùng nổ sáng tạo trong công nghệ thông tin Từ thời kỳ của những cỗ máy tính siêu lớn những năm 50, đến giai đoạn bùng nổ máy tính cá nhân, và cho đến thời kỳ chớm nở của điện toán đám mây và máy tính bảng. Mục này điểm qua sơ lược lịch sử ngành công nghệ phần mềm với những sáng tạo và phát kiến đã ghi dấu vào lịch sử. a. Giai đoạn 1: Phần mềm là gắn liền với phần cứng Thập niên 60 của thế kỷ XX đánh dấu một bước thay đổi to lớn đối với ngành công nghiệp phần mềm. Trước thập niên 60 không ai nghĩ đến một ngành công nghiệp phần mềm, người ta xem phần mềm như là một phần gắn liền với phần cứng máy tính. Những cổ máy tính khổng lồ to bằng cả toà nhà được lập trình trước một số chức năng nhất định và thường được cho thuể sử dụng theo giờ. Do thời gian làm việc với máy hạn chế, rất ít kỹ sư có khả năng cũng như điều kiện nghiên cứu phát triển phần mềm trên máy, nhà sản xuất chỉ sản xuất những phần mềm cần thiết để máy hoạt động và không thu phí phần mềm cũng như không đầu tư phát triển phần mềm cho máy tính. Tuy nhiên sự thay đổi đột phá đầu tiên đến từ một tên tuổi không mấy xa lạ: công ty IBM. Năm 1964, như một ví dụ điển hình cho “nguyên tắc linh động” trong 40 nguyên tắc sáng tạo khoa học/kỹ thuật, IBM công bố sản phẩm System/360. Thay vì các sản phẩm máy tính trước đây chỉ được thiết kế tối ưu cho một số công việc nhất định, IBM tung ra một họ các máy tính với một thiết kế tương tự nhau, sử dụng chung phần mềm nhưng có nhiều kích thước và tốc độ xử lý tính toán khác nhau. Các công ty vừa và nhỏ có thể dễ dàng trang bị một máy tính cỡ nhỏ của hệ thống System/360 cùng các phần mềm cần thiết và khi công ty phát triển họ có thể chuyển sang sử dụng một máy tính lớn hơn mà vẫn đảm bảo tương thích. Sự linh động này đánh dấu một bước đột phá trong ngành công nghiệp máy tính. Giờ đây máy tính từ những cổ máy khổng lồ chỉ có thể cho thuê chứ ít ai mua nổi nay đã trở nên dễ dàng tiếp cận hơn. Sự thành công mày System/360 mang lại cho IBM lớn đến nỗi GVHD: Hoàng Văn Kiếm Trang 14/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học chính hãng đã thừa nhận đây là sản phẩm quan trọng nhất trong lịch sử công ty từ trước đến nay[9]. Đồng thời, System/360 cũng mở ra một kỷ nguyên mới cho ngành công nghiệp phần mềm khi giờ đây phần mềm có thể chạy trên nhiều máy tính khác nhau. Không chỉ sáng tạo đôt phá về mặt kỹ thuật, năm 1969, IBM tiếp tục đề xuất một đột phá mới trong mô hình kinh doanh áp dụng “nguyên tắc phân nhỏ” khi chia sản phẩm máy tính thành 3 phần riêng biệt bao gồm: Phần cứng, phần mềm và dịch vụ. Theo đó IBM sẽ tính phí riêng cho việc cung cấp phần cứng, phát triển phần mềm theo yêu cầu, tổ chức các khóa đào tạo sử dụng máy tính, dịch vụ hỗ trợ khách hàng khi có sự cố, v.v... Mô hình kinh doanh đột phá này chính thức khai sinh ngành công nghiệp phần mềm và dịch vụ, mở đường cho sự bùng nổ sáng tạo không ngừng của công nghệ thông tin. b. Giai đoạn 2: Định hình nền công nghiệp với sự trỗi dậy của máy tính cá nhân Khi mới khai sinh ngành công nghiệp phần mềm phát triển khá chậm chạp. Các hệ thống phần cứng máy tính bấy giờ vẫn còn có giá khá cao và phần mềm chỉ tương thích với một số phần cứng nhất định. Điều này dẫn đến việc thị trường phần mềm khá manh múng với lượng khách hàng tương đối ít và vẫn còn lệ thuộc khá nhiều vào phần cứng. Các công ty lớn vẫn xem phần mềm là một loại hình dịch vụ giá trị gia tăng cho phần cứng và chưa đầu tư đúng mức cho lĩnh vực này. Giai đoạn đầu của thập niên 70 cũng đánh dấu sự ra đời của hai nhân tố quan trọng là mạng Internet và đĩa mềm (floppy disk). Hai công cụ này cho phép phần mềm được chia sẻ và trao đổi cực kỳ dễ dàng giữa những người dùng máy tính tạo ra một kênh phân phối phần mềm độc lập không cần thông qua các công ty sản xuất phần cứng. Và đặc biệt hơn internet cho phép trao đổi giữa những người đam mê máy tính (hobbyist) - những lập trình viên, những kỹ sư phần mềm tương lai. Họ có thể tự mình phát triển phần mềm, chia sẻ phần mềm đó với cộng đồng người dùng trên internet và nhận được các phản hồi góp ý để cùng nhau tiến bộ. Đây chính là hạt giống ban đầu cho phong trào mã nguồn mở và các công ty sản xuất phần cứng hết sức vui vẻ chào đón các cộng đồng những người đam mê máy tính này. Trước hết vì họ là những khách hàng tiềm năng và luôn sẵn sàng đó nhận sản phẩm mới, hơn nữa sự phong phú về phần mềm do những lập trình viên ban sơ này GVHD: Hoàng Văn Kiếm Trang 15/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học viết ra sẽ thúc đẩy doanh số phần cứng. Tuy nhiên môi trường phát triển và chia sẻ phần mềm dựa theo đam mê này lại gây ảnh hưởng đến doanh thu của những công ty chỉ chuyên phát triển phần mềm. Công ty Microsoft thành lập năm 1975 với sản phẩm đầu tay là phần mềm Altair BASIC cho máy MITS. Tuy nhiên trong khi máy MITS được bán ra hành nghìn chiếc mỗi tháng thì trong suốt cả năm ròng phần mềm Altair BASIC chỉ bán được vài trăm phiên bản. Tháng 2 năm 1976, Bill Gate, viết một bức thư ngỏ cho tất cả người đam mê máy tính (Open letter to Hobbyist) được xuất bản trên nhiều tạp chí. Trong đó ông than phiền về việc có quá ít người dùng Altair BASIC thật sự trả tiền mua phần mềm này. Cho rằng việc sao chép phần mềm sẽ làm nản lòng những nhà lập trình viên muốn tham gia ngành công nghiệp phần mềm vừa chớm nở, ông lên án hành vi sao chép phần mềm là bất công và trộm cắp. Bức thư của Bill Gate nhận được nhiều sự phản ứng dữ dội nhưng cũng có nhiều người tán đồng quan điểm của Bill Gate. Trong những phát biểu và hướng đi tiếp theo của mình, ông đã áp dụng triệt để “nguyên tắc chuyển sang chiều khác”, thay vì xem phần mềm là một sản phẩm phụ trợ được bán theo phần cứng, ông xem phần mềm là một tác phẩm của lao động sáng tạo, được bảo hộ bởi quyền tác giả và tác giả phần mềm có quyền thu hoa hồng trên mỗi phiên bản copy phần mềm được phát hành. Cách tiếp cận này nhanh chóng thu hút được sự chú ý của nhiều công ty phần mềm khác và xu hướng phần mềm mã nguồn đóng dần được hình thành. Theo đó phần mềm sẽ được phân phối dưới dạng mã nhị phân, độc lập với phần cứng và người dùng sẽ mua một license trong đó thường quy định rõ họ không được phép xem lén mã nguồn, không được phân phát phần mềm cho người khác và chỉ được dùng trên một số lượng máy tính nhất định. Phương thức kinh doanh phần mềm này nhận được một sự thúc đẩy vượt bậc hơn nữa khi máy tính cá nhân của IBM ra đời. Một dòng máy tính đủ rẻ để cá nhân và gia đình có thể mua được mở ra một thì trường vô cùng to lớn cho các nhà phát triển phần mềm. Microsoft nhanh chóng nhảy vào thị trường cung cấp phần mềm cho máy tính cá nhân với hệ điều hành DOS và nhanh chóng xác lập được vị trí thống trị của mình trong ngành công nghiệp phần mềm còn non trẻ này. GVHD: Hoàng Văn Kiếm Trang 16/45 Phạm Nguyễn Trường An c. Phương pháp nghiên cứu khoa học trong tin học Sự trỗi dậy của phần mềm mã nguồn mở và câu chuyện Tái ông thất mã Cuối thập niên 70, thị trường phần mềm chuyển hướng sang mô hình kinh doanh mã nguồn đóng do Bill Gate khởi sướng tuy mang lại một luồng sinh khí mới cho công nghệ thông tin nhưng cũng để lại một số mặt trái: Những người đam mê tin học, những nhà tiên phong trong lĩnh vực công nghệ phần mềm cảm thấy họ bị đặt vào một tình thế bị phản bội. Họ đã góp phần thúc đẩy sự phát triển của ngành công nghiệp máy tính nhưng bây giờ họ bị cấm không được xem mã nguồn phần mềm. Những phần mềm trước đây họ phát tham gia phát triển bị các công ty lớn đem về chỉnh sửa cho hoàn thiện và bán với giá không thể mua được. Thậm chí một số công ty đăng ký bảo hộ phần mềm bằng hình thức “bằng sáng chế” patent có thể yêu cầu cấm việc phát triển và sử dụng những phần mềm cùng tính năng. Bức bối trước tình trạng lợi dụng luật sở hữu trí tuệ để bóp chẹt sáng tạo hòng độc quyền kinh doanh, Richard Stallman - cha đẻ của tổ chức Phần mềm tự do đã tương kế tựu kế - sử dụng nguyên tắc “Biến hại thành lợi”, dùng chính luật sở hữu trí tuệ để xây dựng một hành lang pháp lý cho trào lưu phần mềm nguồn mở. Giấy phép công cộng phổ quát (General Public License – GPL) ra đời với phương châm của phần mềm tự do. Theo đó bất kỳ người nào có một bảng copy của phần mềm cũng sẽ sở hữu ngay quyền được tự do sửa đổi, sao chép, phân phối lai phần mềm đó với duy nhất một điều kiện: Mọi sản phẩm được phát triển tiếp theo dựa trên phần mềm đó cũng sẽ phải mang giấp phép GPL. Hành lang pháp lý vững chắc của GPL cho phép hoạt động chia sẻ phần mềm từ một hành vi bị lên án nhầm là trộm cắp nay trở thành một hoạt động tự do dưới sự bảo vệ của luật pháp. Dưới sự bảo trợ này Stallman và tổ chức phần mềm tự do bắt tay vào việc xây dựng một loạt phần mềm tự do mang giấy phép GPL để thay thế cho các phần mềm thương mại hiện có đang chuyển dần sang mã nguồn đóng, từ hoạt động này mà hệ điều hành linux ra đời và dần dần phát triển thành một sản phẩm duy nhất khả dĩ cạnh tranh được với Microsoft windows về thị phần hệ điều hành cho máy tính cá nhân. Phong trào phần mềm tự do hay mã nguồn mở tiếp tục phát triển lên một tầm mức mới với sự kiện có liên quan đến sự ra đời của world wide web. Đầu thập niên 90, Microsoft phát hành trình duyệt Internet Explorer để cạnh tranh với trình duyệt Netscape Navigator của công ty Netscape Communication. Tuy là một trong những GVHD: Hoàng Văn Kiếm Trang 17/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học công ty tiên phong với sự ra đời của world wide web và chiếm đến 95% thị phần trình duyệt web, Netscape nhanh chóng bị Microsoft đẩy lùi bằng con át chủ bài: Windows. Sau khi Microsoft quyết định phát hành miễn phí Internet Explorer như một phần Windows vào năm 1995, thị phần của Internet Explorer nhanh chóng tăng lên 50% và dần dần đẩy Netscape Navigator vào chỗ nguy khốn. Đến năm 1997 sau khi Microsoft tăng cường việc tích hợp một số chuẩn lạ vào Internet Explorer khiến cho các trang web duyệt tốt trên Internet Explorer có thể không chạy được trên trình duyệt Netscape, 90% thị trường trình duyệt web đã rơi vào tay Internet Explorer,. Trước tình thế đó, công ty Netscape communication đã có một quyết định cực kỳ táo bạo: “Phát hành mã nguồn Netscpae Navigator dưới giấy phép mã nguồn mở”. Quyết định này về sau được giải thích nhằm tránh thế độc quyền về trình duyệt web của Microsoft, một khi Microsoft nắm độc quyền trình duyệt web, họ sẽ có khả năng thao túng quá trình phát triển của giao thức HTTP và chuẩn world wide web, từ đó làm bàn đạp xâm chiếm thị trường máy chủ web và độc quyền gần như toàn bộ internet. Việc mã nguồn mở Netscape Navigator cho phép các chuyên gia về tin học có thể tiếp tục tham gia phát triển trình duyệt này dưới sự bảo trợ của giấy phép GPL và không bị Microsoft lợi dụng. Sự kiện này mở ra một hướng đi mới cho mã nguồn mở, từ chỗ là kẻ thù của doanh nghiệp thì nay mã nguồn mở trở thành một lợi thế trong kinh doanh. Thay vì thu phí phần mềm thật cao doanh nghiệp sẽ tận dụng sự trợ giúp của các cộng đồng người sử dụng có đam mê và kinh nghiệm để phát triển phần mềm. Phần mềm đó được mã nguồn mở để tránh sự lợi dụng đánh cắp mã nguồn từ đối thủ. Với việc giảm được gánh nặng trong phát triển phần mềm, công ty có thể tập trung vào thu lợi từ cách dịch vụ kèm theo. II. Áp dụng các nguyên tắc sáng tạo trong xây dựng phần mềm a. Nhu cầu thực tế. Chia sẻ dữ liệu giữa các máy là một nhu cầu khá phổ biến trong thực tế làm việc với máy tính. Nếu như trong môi trường mạng cục bộ (LAN) việc chia sẻ dữ liệu diễn ra khá dễ dàng, thì trong môi trường internet, mọi việc lại không được suôn sẻ như thế. Về cơ bản, việc chia sẻ file giữa các máy đang kết nối chung trong một mạng là không khó. Tuy nhiên, do đặt cao tính bảo mật nên khả năng chia sẻ file tích hợp GVHD: Hoàng Văn Kiếm Trang 18/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học trong hệ thống thường bị chặn trong mội trường internet. Để chia sẻ file người dùng thường có một số lựa chọn: 1. Chép file vào thiết bị lưu trữ ngoài rồi chạy đến chỗ máy cần nhận file. Dễ thấy phương án này không khả thi nếu hai máy cách nhau quá xa về địa lý... 2. Biến máy mình thành một server chia sẻ file trên máy (vd FTP server) Phương án này đòi hỏi nhiều kiến thức chuyên môn về công nghệ thông tin. 3. Sử dụng tính năng send file có sẵn trong các chương trình chat (instant message). Phương án này phải lệ thuộc vào nhà cung cấp dịch vụ tin nhắn tức thời, khi dịch vụ có sự cố, tính năng send file cũng tiêu tùng theo. 4. Upload file cần chia sẻ lên một server chuyên lưu trữ file. Phương án này tốn thời gian do đòi hỏi file phải được tải lên hoàn chỉnh trước khi người nhận có thể tải về 5. Sử dụng chương trình chia sẻ file qua mạng ngang hàng. Đây là phương án rất khả thi, tuy nhiên các trình chia sẻ file qua mạng ngang hàng hiện nay tương đối khó sử dụng với người dùng cuối. b. Phân tích các giải pháp đã có và tìm ra vấn đề: Với nhu cầu không ngừng gia tăng mỗi ngày của con người thì các phương án đã nêu ở mục trước không trán khỏi những hạn chế nhất định. Áp dụng các phương pháp phát hiện vấn đề đã được học, ta có thể thấy còn rất nhiều vướng mắc cần giải quyết. Áp dụng nguyên tắc thứ 4, từ thực tiễn quan sát và sử dụng các phương án đã nêu nhiều năm nay, ta nhận thấy còn một số vướng mắc: 1. Có nhiều phương án bị lệ thuộc vào một nhà cung cấp dịch vụ thứ 3. Khi tập tin được tải lên một dịch vụ chia sẻ file hay truyền qua một ứng dụng chat nào đó thì cả bên truyền và bên nhận đều phải tiếp cận được dịch vụ này. Bất kỳ sự cố nào khi kết nối với nhà cung cấp dịch vụ cũng khiến việc truyền tải tập tin không thực hiện được, mặc dù người gửi và nhận vẫn có thể kết nối trực tiếp với nhau. 2. Có nhiều phương án quá chuyên sâu về kỹ thuật. Việc thiết lập một mạng ngang hàng hoặc một máy chủ là một mảng khá chuyên biệt trong GVHD: Hoàng Văn Kiếm Trang 19/45 Phạm Nguyễn Trường An Phương pháp nghiên cứu khoa học trong tin học công nghệ thông tin. Và các công cụ để thực hiện việc này không được thiết kế dành cho người dùng ít kinh nghiệm. Áp dụng nguyên tắc thứ 5, lắng nghe những phàn nàn từ người dùng chúng ta có thể thấy còn những điểm sau: 1. Nhiều phương án không chú trọng tính năng tạm dừng truyền tải file và tiếp tục truyền tải khi thuận tiện. A truyền cho B một file khá lớn, giữa chừng A có việc phải đi không thể tiếp tục truyền file, khi A quay lại việc truyền file phải bắt đầu lại từ đầu. Hoặc A và B đang truyền file thì mạng có sự cố, khi sự cố được khắc phục việc truyền file phải bắt đầu lại từ đầu. Người dùng rất khó chịu khi truyền những file lớn bằng các phương án bất ổn như vậy. 2. Nhiều phương án không chú trọng đến việc kiểm tra file đã truyền đi có nguyên vẹn hay không: A send cho B một file video khá lớn, B mở ra xem và thấy có vẻ bình thường. Tuy nhiên, khi xem đến gần cuối video thì phát hiện file bị lỗi và video không hiển thị được phần cuối. Lúc này A đã đi đâu đó và không thể truyền lại tập tin. Mặc dù kết nối internet ngày nay dùng giao thức TCP/IP có khả năng kiểm tra lỗi. Tuy nhiên, với những sự cố phát sinh không phải trong lúc truyền mà trong lúc lưu dữ liệu trên máy hay lúc ngắt rồi tiếp tục quá trình truyền thì giao thức TCP/IP không can thiệp được. 3. Có thể phương án kiểm tra được file truyền đi có lỗi hay không nhưng không có cách sửa lỗi: A truyền cho B một file nén, các chuẩn nén file hiện nay có tích hợp chức năng kiểm tra tính toàn vẹn, nếu file bị lỗi sẽ không giải nén được. Tuy nhiên dù file chỉ bị lỗi nhỏ nhưng B không có cách nào khác ngoài việc báo A truyền lại toàn bộ file. c. Xác định lại vấn đề. Để giải quyết các vướng mắc trên, em quyết định cố gắng tạo ra một chương trình nhỏ gọn, có khả năng send file qua mạng, nhưng hội tụ đầy đủ tính năng cần thiết. Các yêu cầu mà em đặt ra cho chương trình của mình là: 1. Gọn nhẹ, đơn giản, dễ sử dụng. Chương trình sẽ có dung lượng cỡ 1 MB, để thuận lợi trong việc chia sẻ vì trước khi chia sẻ file, người dùng phải GVHD: Hoàng Văn Kiếm Trang 20/45
- Xem thêm -