Để đạt được những tiến bộ vượt bậc đó là sự áp dụng các nguyên tắc sáng tạo khoa học trong khoa học kỹ thuật từ việc hình thành ý tưởng cho đến hiện thực hóa sản phẩm.. Phần 2: Sự sáng
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Khoa học máy tính
Khóa 22
PHƯƠNG PHÁP
NGHIÊN CỨU KHOA HỌC
Đề tài: Phương pháp sáng tạo trong sản phẩm công nghệ của Apple
GVHD: GS.TSKH Hoàng Kiếm
Học viên: 12 11 030 – Đỗ Nguyên Kha
Trang 2Lờ i nó i đầ u
Chúng ta đang sống trong một kỷ nguyên mà những tiến bộ khoa học kỹ thuật phát triển bùng nổ một cách nhanh chóng Các quốc gia đẩy mạnh tối đa đầu tư cho sự phát triển để tạo ra những sản phẩm công nghệ có chất lượng ngày càng tốt hơn, mang lại trải nghiệm tốt hơn cho người sử dụng Để đạt được những tiến bộ vượt bậc đó là sự áp dụng các nguyên tắc sáng tạo khoa học trong khoa học kỹ thuật từ việc hình thành ý tưởng cho đến hiện thực hóa sản phẩm
Do đó, các nguyên tắc sáng tạo được xem như cốt lõi của sự thành công trong việc tạo ra các sản phẩm công nghệ Việc học hỏi và áp dụng các nguyên tắc sáng tạo vào thực tiễn góp phần quan trọng trong nghiên cứu khoa học
Bài thu hoạch được trình bày gồm hai phần:
Phần 1: Một số ứng dụng của các nguyên tắc sáng tạo trong lĩnh
vực phần mềm
Trình bày sơ lược về một số nguyên tắc sáng tạo và ứng dụng trong lĩnh vực phần mềm
Phần 2: Sự sáng tạo của Apple qua các sản phẩm công nghệ
Điểm lại quá trình phát triển của các sản phẩm công nghệ của Apple
và một số nguyên tắc sáng tạo đã được áp dụng
Trang 3MỤC LỤC
I MỘT SỐ ỨNG DỤNG CỦA CÁC NGUYÊN TẮC SÁNG TẠO TRONG LĨNH
VỰC PHẦN MỀM 3
1 Nguyên tắc phân nhỏ 3
2 Nguyên tắc tách khỏi 3
3 Nguyên tắc phẩm chất cục bộ 4
4 Nguyên tắc phản đối xứng 4
5 Nguyên tắc kết hợp 4
6 Nguyên tắc vạn năng 5
7 Nguyên tắc “chứa trong” 5
8 Nguyên tắc phản trọng lượng 5
9 Nguyên tắc gây ứng suất sơ bộ 6
10 Nguyên tắc thực hiện sơ bộ 6
11 Nguyên tắc dự phòng 6
12 Nguyên tắc đẳng thế 7
13 Nguyên tắc đảo ngược 7
14 Nguyên tắc làm tròn hóa 7
15 Nguyên tắc linh động 7
16 Nguyên tắc giải thiếu hoặc thừa 8
17 Nguyên tắc chuyển sang chiều khác 8
18 Sử dụng các dao động cơ học 8
19 Nguyên tắc tác động theo chu kỳ 9
20 Nguyên tắc liên tục tác động có ích 9
21 Nguyên tắc biến hại thành lợi 9
II SỰ SÁNG TẠO CỦA APPLE QUA CÁC SẢN PHẨM CÔNG NGHỆ 11
1 iPhone (2007) 12
2 iPhone 3G và 3GS (2008-2009) 13
3 iPhone 4 và 4S (2010-2011) 14
4 iPhone 5 (2012) 16
III KẾT LUẬN 18
TÀI LIỆU THAM KHẢO 19
Trang 4I MỘT SỐ ỨNG DỤNG CỦA CÁC NGUYÊN TẮC SÁNG TẠO TRONG LĨNH VỰC PHẦN MỀM
1 Nguyên tắc phân nhỏ
a Chia một đối tượng thành nhiều phần khác nhau
Ý nghĩa trong kỹ thuật phần mềm: Chia một hệ thống lớn thành các
thành phần nhỏ hơn có khả năng kết nối và phối hợp hoạt động
Áp dụng: Phân chia hệ thống xử lý thành các thành phần xử lý độc lập,
chia nhỏ, tính toán và tổng hợp kết quả từ các thành phần xử lý con (Map-Reduce của Google)
b Mô-đun hóa các đối tượng
Ý nghĩa trong kỹ thuật phần mềm: Chia nhỏ những hàm xử lý và
thuộc tính tương tự nhau thành các thành phần tự hoạt động (mô-đun)
Áp dụng: Template của C++ cung cấp khả năng đóng gói mã của thành
phần thực thi
2 Nguyên tắc tách khỏi
a Tách những thành phần kỹ thuật khỏi các phần cần thiết
Ý nghĩa trong kỹ thuật phần mềm: Chi một ngôn ngữ, định nghĩa sự
thể hiện cho ngữ pháp của nó cùng với một trình thông dịch sử dụng sự trình thể hiện đó để phân tách/thông dịch các câu trong ngôn ngữ
Áp dụng 1: Tách văn bản trong hình ảnh Các kỹ thuật phân đoạn hình
văn bản hữu ích trong việc định vị và tách những khối văn bản trong hình ảnh Thuật toán này làm việc mà không cần biết đến chiều, kích thước và loại chữ được sử dụng Nó được thiết kế để loại bỏ ảnh nền khỏi thông tin và highlight hay nhận dạng những vùng của hình ảnh có chứa văn bản
Trang 5Áp dụng 2: Bộ phân tích (Parser) Tách dữ liệu là quá trình dữ liệu lập
trình đầu vào (mã nguồn) được phân tích thành những phần nhỏ hơn, những phần nhỏ thông tin này có thể dể dàng được thông dịch và xử lý
3 Nguyên tắc phẩm chất cục bộ
a Hay đổi cấu trúc của hệ từ đồng nhất thành bất đồng nhất; thay đổi môi trường bên ngoài từ đồng nhất thành bất đồng nhất
Ý nghĩa trong kỹ thuật phần mềm: Thay đổi phân loại đối tượng của
hệ thống từ phân cấp đồng nhất sang phân cấp không đồng nhất
Áp dụng 1: Một phương pháp lấy mẫy không đồng nhất cho việc nhận
dạng ký tự Phương pháp xác định việc trích xuất đặc trung như việc lấy mẫu một chiều trong một hướng vuông góc với một đường cho trước Việc lấy mẫu được thực hiện với chu kỳ không đồng nhất để tránh việc nhận dạng nhầm hay đường gần nhau thành một đường duy nhất
b Làm cho những hành phần khác nhau của hệ thống có những chức năng
và tác dụng khác nhau
4 Nguyên tắc phản đối xứng
a Thay đổi hình dạng của từ đối xứng sang bất đối xứng
Ý nghĩa trong kỹ thuật phần mềm: thay đổi sự đối xứng của một hệ
thống kỹ thuật để tạo ra hiệu ứng bất đồng nhất trong tính toán
Áp dụng: Giả sử có những quả bóng và những cái giỏ xử lý liên quan
đến việc cân bằng tải ngẫu nhiên, phân hoạch động tài nguyên hệ thống hay băm Giả sử có có n trái bóng cần được để vào n cái giỏ, trong khi
đó mỗi trái bóng phải được được đặt mà không cần biết đến sự phân bổ của các quả bóng trước đó Mục đích của thuật toán là để đặt được một
sự phân hoạch như thế cho do có những giỏ có nhiều bóng hơn mức trung bình
5 Nguyên tắc kết hợp
Trang 6a Làm cho quá trình xử lý song song hoặc đồng thời
Ý nghĩa trong kỹ thuật phần mềm: Làm cho những tiến trình thực thi
song song
Áp dụng: Đồng bộ hóa các tiểu trình trong quá trình thực thi Sắp lịch
các tiểu trình nắm quyền điều khiển
6 Nguyên tắc vạn năng
a Làm một đối tượng có nhiều chức năng, giảm sự cần thiết của những đối tượng khác
Ý nghĩa trong kỹ thuật phần mềm: Làm cho hệ thống hỗ trợ nhiều và
động sự phân lớp dựa trên ngữ cảnh
Áp dụng: Dựa vào sở thích đăng nhập của người dùng một ngữ cảnh là
kết quả của nhu cầu thực hiện một hành động cụ thể Tùy thuộc vào ngữ cảnh, hệ thống hiển hiên những đặc trưng của ngữ cảnh
7 Nguyên tắc “chứa trong”
a Đặt một đối tượng trong một đối tượng khác; lần lượt đặt mỗi đối tượng vào đối tượng khác
Ý nghĩa trong kỹ thuật phần mềm: Kế thừa những chức năng của
nhưng đối đượng khác bằng cách chưa những thể thể hiện của chúng tro
ng lớp cơ sở
Áp dụng: Lồng những đối tượng trong lập trình hướng đối tượng Các
đối đượng được đặt trong những đối tượng khác để tăng cừng chức năng của chúng
8 Nguyên tắc phản trọng lượng
a Kết hợp đối tượng với những đối tượng khác để nâng đỡ chúng chống lại trọng lượng
Trang 7Ý nghĩa trong kỹ thuật phần mềm: Sử dụng chia sẽ để hỗ trợ các đối
tượng hạt một cách hiệu quả để cân bằng tải động trong hệ thống
Áp dụng: Đối tượng chia sẽ có thể được sử dụng trong nhiều ngữ cảnh
một cách đồng thời; nó đóng vai trò như một đối tượng độc lập trong mỗi ngữ cảnh – nó không thể phân biệt được với các thực thể không
được chia sẻ khác
9 Nguyên tắc gây ứng suất sơ bộ
a Gây ứng suất sơ bộ lên đối tượng để tránh những căng thẳng quá mức
Ý nghĩa trong kỹ thuật phần mềm: Gây ứng suất sơ bộ lên hệ thống
để cải thiện hiệu năng tính toán sau đó
Áp dụng: Đảo ngược các dòng văn bản trước khi so khớp ngắt dòng để
tăng hiệu quả so khớp mẫu
10 Nguyên tắc thực hiện sơ bộ
a Thực hiện những thay đổi trước khi cần thiết, một phần hay toàn bộ đối tượng
Áp dụng: Máy ảo Java (JVM) chuyển những mã nguồn dạng văn bảng
thành dạng trung gian trước khi thực thi và/hoặc biên dịch chúng thành
mã máy nhị phân cụ thể
11 Nguyên tắc dự phòng
a Chuẩn bị cho tình huống khẩn cấp trước để bổ sung độ tin cậy cho các đối tượng
Ý nghĩa trong kỹ thuật phần mềm: Sử dụng thuật toán có thể xử lý
những tình huống xấu nhất có hại và bảo toàn và bảo toàn sự bất biến toàn thể
Áp dụng: Cân bằng xếp lịch trong những hệ thống mạng không dây
Trang 812 Nguyên tắc đẳng thế
a Trong một môi trường tiềm năng, hạn chế sự thay đổi vị trí
Ý nghĩa trong kỹ thuật phần mềm: Thay đổi điều kiện xử lý của một
thuật toán để kiếm soát dòng dữ liệu vào và ra của tiến trình
Áp dụng: Sử dụng một hệ thống lưu trữ lâu dài các đối tượng (nguồn
điện là năng lượng tiềm năng, dữ liệu là thông tin tiềm năng)
13 Nguyên tắc đảo ngược
a Đảo ngược hành động để giải quyết vấn đề
Ý nghĩa trong kỹ thuật phần mềm: Lưu trữ những giao tác để đảo
ngược chúng khi cần thiết
Áp dụng: Phục hồi và lần ngược (backtracking) trong các hệ quản trị cơ
sở dữ liệu
14 Nguyên tắc làm tròn hóa
a Thay thế các thành phần tuyến tính bằng các thành phần tròn, mặt phẳng bởi các mặt cầu, khối lập phương bởi hình cầu
Ý nghĩa trong kỹ thuật phần mềm: Thay đổi các kiểu dữ liệu tuyến
tính bởi các đối tượng trừu tượng vòng (circular)
Áp dụng: Bộ đệm liên kết (bound buffer) cung cấp một cơ chế lưu trữ
vô hạn cho các thông tin số như các biến
15 Nguyên tắc linh động
a Cho phép hoặc thiết kế đặc tính của đối tượng, môi trường ngoài hoặc
xử lý có thể thay đổi để tối ưu hoặc tìm một điều kiện hoạt động tối ưu
Áp dụng: Thư viện liên kết động (DLL) của hệ điều hành Microsoft
Windows
Trang 916 Nguyên tắc giải thiếu hoặc thừa
a Nếu như khó nhận được 100% hiệu quả cần thiết, nên nhận ít hơn hoặc nhiều hơn “một chút” Lúc đó bài toán có thể trở nên đơn giản hơn và
dễ giải hơn
Ý nghĩa trong kỹ thuật phần mềm: Tăng hiệu năng của việc đo lường
và xác định bằng cách phân tích nhiễu loạn
Áp dụng: Khi thực hiện đo lường các thao tác được tạo ra bởi chưng
trình, hành vi thực tế có thể bị xáo trộn Vì vậy bằng cách sử dụng phân tích nhiễu loạn, chung ta có thể làm hơi thiếu hoặc thừa ảnh hưởng để số lượng tính toán thực tế
17 Nguyên tắc chuyển sang chiều khác
a Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường (một chiều) sẽ được khắc phục nếu cho đối tượng khả năng di chuyển trên mặt phẳng (hai chiều) Tương tự, những bài toán liên quan đến chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽ được đơn giản hoá khi chuyển sang không gian (ba chiều)
Ý nghĩa trong kỹ thuật phần mềm: Dùng tổ hợp của nhiều lớp đối
tượng thay vì một lớp duy nhất
Áp dụng: Kết hợp các đối tượng kết thừa để hướng tới một sức sắp xếp
mới của chức năng
18 Sử dụng các dao động cơ học
a Sử dụng các dao động cơ học
Ý nghĩa trong kỹ thuật phần mềm: Thay đổi tần suất của sự thực thi
thực toán theo thời gian cho đến khi đạt được kết quả mong muốn
Trang 10Áp dụng: Sử dụng hình ảnh định kỳ theo sự thay đổi tỷ lệ quả thuật
toán trên một đối tượng thay đổi lần lượt cho đến khi đạt được trạng thái
lý tưởng
19 Nguyên tắc tác động theo chu kỳ
a Chuyển tác động liên tục thành tác động theo chu kỳ
Ý nghĩa trong kỹ thuật phần mềm: Thay vì thực thi những tác vụ liên
tục, xác định khoảng thời giản để thực thi tác vụ đó theo chu kỳ
Áp dụng: Các thuật toán xếp lịch: cron-jobs, lịch sao lưu/nhân bản dữ
liệu
20 Nguyên tắc liên tục tác động có ích
a Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần luôn luôn làm việc ở chế độ đủ tải)
Ý nghĩa trong kỹ thuật phần mềm: Phát triển một giải pháp hạt tốt để
tối ưu bộ xử lý khi ở tải tối đa
Áp dụng: Dịch vụ truyền hình theo sát yêu cầu xếp lịch chiếu những bộ
phim khác nhau dựa vào sự phổ biến để tối ưu hóa thông lượng
b Tiết giảm vận hành không tải
Ý nghĩa trong kỹ thuật phần mềm: Phát triển giải pháp xử lý đồng
thời để giảm thiểu sự khóa thực thi của các tiến trình hoặc tiểu trình
Áp dụng: Đồng bộ các giải pháp đọc ghi trong các giao tác của cơ sở dữ
liệu
21 Nguyên tắc biến hại thành lợi
a Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại khác
Trang 11Ý nghĩa trong kỹ thuật phần mềm: Đảo được vai trò của các tiến trình
có hại và chuyển hướng chúng quay ngược lại
Áp dụng: Tấn công từ chối dịch vụ phân tán (DDoS) làm bão hòa
đường truyền mạng Nó chỉ đơn giản là gây quá tải cho máy chủ với một
số lượng lớn truy cập, ngăn cản những người sử dụng bình thường truy cập các máy chủ Khác với các loại tấn công khác, các cuộc tấn công từ chối dịch vụ hoạt động dựa trên sự tập hợp của các máy tính zombie vô thức tham gia làm quá tải máy chủ Thiệt hại gây ra rất lớn vì bản chất phan tán của cuộc tấn công Kẻ tấn công có thể khai thái các kênh không
an toàn và dễ dàng truy cập Internet để tổng hợp một lượng lớn lưu lượng truy cập Do đó, có thể chuyển đổi yếu tố có hải (quá tải) thành yếu tố có ích (giảm hiệu quả của zombie) bằng cách tạo ra quá trình thắt
cổ chai trên các máy tính zombie, hạn chế khả năng tấn công Việc này
có thể được thực hiện bằng cách yêu cầu các máy tính tấn công giải quyết những câu đố trước khi kết nối được thiết lập Việc giải những câu
đố sẽ tiêu tốn hiệu năng tính toán, giới hạn lại số lượng kết được thiết lập một lúc
Trang 12II SỰ SÁNG TẠO CỦA APPLE QUA CÁC SẢN PHẨM CÔNG NGHỆ
Apple là tập đoàn công nghệ hàng đầu thế giới có trụ sở tại Mỹ Trong hơn 5 năm trở lại đây chúng ta đã quá quen thuộc với cái tên Apple hay được người Việt Nam gọi với cái tên thân mật hơn là “trái táo cắn dở” Những sản phẩm của Apple như iPod, iPhone, iPad, Macbook được biết đến như những sản phẩm với doanh số hàng đầu cũng như tích hợp những công nghệ mới nhất nhằm đem lại trải nghiệm tốt nhất cho người sử dụng
Để có được thành công như ngày hôm nay Apple không chỉ dựa vào việc áp dụng các công nghệ mới và sản phẩm mà chính là sự không ngừng sáng tạo của đội ngũ thiết kế cũng như của “kiến trúc sư trưởng” Steve Jobs Apple không phải là công
ty đầu tiên tạo ra chiếc điện thoại thông minh (smartphone) sử dụng màn hình cảm ứng, cũng nhưng không phải công ty đầu tiên sáng tạo ra cái mà chúng ta vẫn gọi là máy tính bảng (tablet) nhưng lại là công ty thành công nhất trong việc đưa các sản phẩm này đến người tiêu dùng Cầm trên tay một sản phẩm của Apple bạn sẽ không cảm nhận được mình đang sử dụng một chiếc máy tính nhàm chán với một dải các phím bấm chức năng được sắp xếp dàn trải mà là tương tác thực sự với chúng Từ thiết kế bên ngoài cho đến giao diện và các chức năng kèm theo đều gần như hoàn hảo Chính vì lý do này iPhone – chiếc điện thoại đầu tiên của Apple đã đạt được thành công rực rỡ trước các đối thủ, biến Apple từ một công ty sản xuất máy tính trong phút chốc trở thành công ty sản xuất điện thoại hàng đầu thế giới Chính Apple
đã mở ra một thời đại mới cho chiếc điện thoại, khiến các hãng điện thoại hàng đầu như Nokia phải lúng túng và xoay xở tìm hướng đi mới, đẩy Nokia từ một công ty sản xuất điện thoại hàng đầu thế giới đến bờ vực phá sản