Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
242,5 KB
Nội dung
CHƯƠNG PHẦN MỀM XỬ LÝ ẢNH 4.1 GIỚI THIỆU Những phần khác sách nhằm vào thuật giải sử dụng xử lý ảnh số thành phần phần cứng để thực công nghệ Trong chương này, nói tổ chức chương trình máy tính thực phép toán Đặc biệt, xem xét phần mềm thiết kế, phát triển đưa cho người sử dụng Kiến thức trình có ích nhà phát triển người sử dụng Đối với nhà phát triển, tránh cố gắng uổng phí thực chán ngắt Đối với người sử dụng, trợ giúp định giá phần mềm thực dự án Chương cung cấp nhìn khái quát chủ đề quan trọng nêu Chúng lưu ý quan trọng vấn đề có liên quan đặc biệt đến biểu diễn số nhiều tài liệu quan trọng chủ đề Trong dạng đầy đủ nó, với sản phẩm phần mềm thương mại, trình phát triển phần mềm bao gồm nhiều giai đoạn Pha thiết kế nhận thức thiết lập đặc tính hoạt động hàm bản, sau thuật giải nghiên cứu .hạn chế công nghệ thực Tiếp theo, pha mã hoá tạo phần mềm Trong pha chạy thử duyệt lại, thiếu sót kỹ thuật sửa chữa ý tưởng hợp vào chương trình Sự cung cấp tài liệu người sử dụng miêu tả cách thức điều khiển hệ thống cung cấp tài liệu công nghệ giải thích cấu trúc vật lý logic Cuối cùng, phần mềm phát hành hỗ trợ thị trường Hoạt động sau bao gồm hướng dẫn khách hàng, hỗ trợ công nghệ tiếp tục bảo trì phần mềm (những dấu photo bị mờ không đọc được) Một dự án ứng dụng khác dự án phát triển chỗ sử dụng phần cứng sử dụng phần mềm để giải toán riêng Điều bắt đầu với lựa chọn phần cứng phần mềm sử dụng Tiếp theo pha thiết kế nhận thức tập hợp ảnh dùng để phát triển kiểm tra Theo sau phát triển thuật giải thực việc thực kiểm tra sau đưa công nghệ vào sử dụng Điều phải bao gồm việc chứng minh công bố công nghệ, hướng dẫn học tập nghiên cứu khoảng thời gian hạn chế, cài đặt hệ thống vài hoạt động hướng vào sản xuất (production-oriented) 4.2 CÁC HỆ THỐNG XỬ LÝ ẢNH Các hệ thống máy tính sử dụng phổ biến cho xử lý ảnh chia thành bốn hạng: (1) Apple Macintosh, với phần mềm hệ điều hành sẵn có giao diện người sử dụng; (2) máy tính tương thích IBM-phần cứng, sử dụng hệ điều hành đĩa (DOS, PS/2, ) Microsoft WindowsTM thường xuyên IBM OS/2TM; (3) trạm làm việc đồ hoạ, điển hình sử dụng hệ điều hành UNIX môi trường XWINDOWS; (4) hệ thống máy tính lớn (mainframe), với tài nguyên rộng lớn dùng chung (share) cho nhiều người sử dụng (multiple users) định vị trạm làm việc từ xa Các nhóm hệ thống gần thường dùng chung tài nguyên liệu thông qua mạng cục (Local Area Network-LAN) Chúng thường xuyên truy cập đến mạng diện rộng (WAN) 47 4.2.1 Khuôn dạng file liệu ảnh Với tư cách phạm vi hoạt động, nói chung xử lý ảnh số tạo lượng lớn file liệu lớn có liên quan chứa ảnh số Những file phải lưu trữ chúng cần trao đổi người sử dụng hệ thống khác Bắt buộc phải có vài khuôn dạng tiêu chuẩn cho việc lưu trữ truyền file ảnh số Nhiều dạng file ảnh số định nghĩa sử dụng Một vài dạng sử dụng rộng rãi trở thành tiêu chuẩn phổ biến (de facto) không nhiều (Xem ví dụ bảng 4-1) Hầu hết chương trình xử lý ảnh thương mại có sẵn đọc ghi vài khuôn dạng file ảnh phổ biến Các chương trình khác có hoàn toàn đọc hiển thị ảnh lưu trữ nhiều dạng file khác chuyển đổi chúng từ dạng sang dạng khác Các chương trình tự động hiểu dạng file đầu vào định, từ phần mở rộng tên file từ thông tin định danh thân file Khi lưu lại ảnh hiển thị vào file, người sử dụng rõ khuôn dạng file mong muốn BẢNG 4-1 KHUÔN DẠNG FILE DỮ LIỆU ẢNH Tên Kiểu Cách sử dụng Tagged image format DOS, UNIX and Macintosh images *.TIF Encapsulated PostScript Publishing industry format *.EPS Graphical interchange format *.GIF CompuServe graphics format *.BMP Microsoft Windows format Bit-mapped format *.BMP IBM OS/2 Bit-mapped format Presentation manager *.PICT Apple Macintosh images Macintosh Đa số khuôn dạng file ảnh lưu trữ nhãn thích thêm vào liệu ảnh Chú thích liệu tạo khuôn dạng ảnh, thích người sử dụng Thông thường, thiết bị hiển thị đơn sắc dùng mạch chuyển đổi số-tương tự (DAC) bit để tạo tín hiệu video điều khiển độ sáng điểm ảnh hiển thị hình Thiết bị có khả cung cấp 256 trạng thái xám Các thiết bị hiển thị màu sử dụng chuyển đổi số-tương tự (DAC) bit tạo bao tín hiệu video điều khiển thành phần độ sáng đỏ (red), lục (green), lam (blue) ảnh hiển thị Vì thế, chúng có khả hiển thị 224, tức 16 triệu màu khác Do thiếu hoàn chỉnh thông thường ống hiển thị hạn chế mắt người nên số lượng màu nhận thấy rõ cách đáng kể Ảnh số xuất khuôn dạng đơn sắc màu, mà mức độ khác độ phân giải đo sáng (photometric resolution) (số màu trạng thái xám) Với ảnh đơn sắc, số lượng trạng thái xám thang xám (gray scale) phổ biến 2, 16 256 ứng với 1, bit/điểm ảnh Những độ phân giải riêng biêt dễ dàng đóng gói thành byte bit nhớ file đĩa Những độ phân giải khác sử dụng ứng dụng Bảng màu (palette) bảng tra cứu (look-up) liên kết giá trị điểm ảnh ảnh với màu hiển thị tương ứng Một ảnh màu bit sử dụng 16 màu cụ thể chọn bảng 16 triệu màu để hiển thị Đối với ảnh màu, số lượng màu quy định biểu thị giá trị điểm ảnh khác Một ảnh màu bit 16 màu phân biệt thiết bị hiển thị Một bảng màu định nghĩa phép ánh xạ từ 16 giá trị điểm ảnh tồn sang số lượng màu hiển thị lớn Sự lựa chọn 16 màu cụ thể ý muốn người lập trình thường bị người sử dụng bỏ qua Ảnh màu bit hiển thị với 256 màu riêng biệt ảnh màu 24 bit có phạm vi thể 16 triệu màu Bảng màu rõ phép 48 ánh xạ ảnh màu cụ thể thông thường bao hàm file liệu ảnh điều khiển thiết bị hiển thị ảnh hiển thị hay in 4.3 GIAO DIỆN NGƯỜI SỬ DỤNG Thời kỳ đầu máy tính, giao diện chủ yếu người sử dụng với hệ thống phần mềm hệ điều hành nhà sản xuất Mặc dù có tính mềm dẻo, sản phẩm rõ ràng cồng kềnh sử dụng hàng ngày Gần hơn, xu hướng ngày tiến tới việc sản xuất giao diện phần mềm thân thiện với người sử dụng Điều tạo cho thao tác viên (operator) môi trường tiện lợi thoải mái để phát triển sử dụng phần mềm xử lý ảnh số Một giao diện người sử dụng đòi hỏi công cụ thuận tiện có sẵn, với chi phí tối thiểu Các phần mềm xử lý ảnh số đại đặt khả xử lý tính mềm dẻo vào tay người sử dụng cách nhanh dễ dàng Thiết kế chúng phục vụ cho trực giác người sử dụng điều làm cho chúng dễ dàng để học sử dụng 4.3.1 Bộ thông dịch dòng lệnh (Command-Line Interpreter) Kiểu giao diện người sử dụng cũ đơn giản thông dịch dòng lệnh (Hình 4-1) Sử dụng ngôn ngữ nguyên văn (textual language) dành riêng, yêu cầu người sử dụng phải biết tuỳ chọn có sẵn, từ nhớ hay tài liệu mở bàn Nó đưa trước mắt người sử dụng dấu nhắc (prompting character) hình báo hiệu sẵn sàng xuất phát, không cung cấp hỗ trợ vấn đề mà thực Điều yêu cầu độ tin cậy cao vào tài liệu viết, đặc biệt giai đoạn học (learning phase) Tình hình cải thiện đáng kể cách sử dụng file batch hay script, định rõ loạt bước xử lý gọi lệnh đơn Tập file script phong phú làm cho thông dịch dòng lệnh giải dễ dàng HÌNH 4-1 Hình 4-1 Giao diện thông dịch dòng lệnh 4.3.2 Giao diện điều khiển trình đơn (Menu-Driven Interface) Thế hệ thứ hai, giao diện điều khiển trình đơn, đưa danh sách chọn lựa hình, lựa chọn hoàn thành hai phím bấm (Hình 4-2) Điều giảm bớt việc phải ghi nhớ phụ thuộc thao tác viên vào tài liệu viết nhiều, đòi hỏi cố gắng để đưa trình chi tiết vào hoạt động Trong diện tiến mình, giao diện người sử dụng điều khiển trình đơn hoạt động đáp ứng lại thiết bị trỏ đồ hoạ (graphic pointer device) (mouse, trackball, ) Đây giao diện trỏ kích (point-and-click), người sử dụng 49 di chuyển trỏ đến khu vực gán nhãn thích hợp nhấn nút thiết bị Người sử dụng kéo xuống (pull down) nhiều trình đơn (menu) từ trình đơn đỉnh hình hiển thị cần thiết, theo cách làm giảm bớt lộn xộn hình, sau người sử dụng kích vào chọn lựa tuỳ ý trình đơn xuất Các trình đơn hữu theo cấu trúc phân cấp Việc chọn mục trình đơn làm xuất trình đơn nhiều lựa chọn cụ thể Mỗi trình đơn hay mục trình đơn kết hợp với thông báo trợ giúp (help message) giải thích tuỳ chọn cách sử dụng Điều xuất nơi mà thao tác viên yêu cầu hình HÌNH 4-2 Hình 4-2 Giao diện điều khiển trình đơn môi trường cửa sổ 4.3.3 Giao diện đồ hoạ (Graphical User Interface) Thế hệ thứ ba giao diện người sử dụng đồ hoạ (GUI- phát âm “gooey”) Thao tác viên điều khiển phần hệ thống theo ngôn ngữ trực quan (visual language) thay ngôn ngữ nguyên văn đơn với thông dịch dòng lệnh GUI biểu diễn tuỳ chọn cho sẵn văn bản, trình đơn, mà biểu tượng đồ hoạ hiển thị hình Những biểu tượng (icon) biểu thị trình, mà biểu diễn liệu (ví dụ ảnh số) thiết bị phần cứng (ổ đĩa, máy in, ) Với thực GUI đầy đủ, ta khởi đầu công việc - ví dụ, in ảnh lưu trữ - kỹ thuật kéo thả (drag and drop) Sử dụng thiết bị trỏ, thao tác viên chọn biểu tượng biểu diễn ảnh, di chuyển sang biểu tượng khác biểu diễn máy in nhả ra, trình in bắt đầu Điều không nhanh việc gõ dòng lệnh mà thú vị 4.3.4 Giao diện luồng liệu (Data Flow Interface) Một kiểu GUI khác sử dụng mạng (network), biểu đồ luồng liệu (data-flow diagram) đồ hoạ, diễn đạt hình tượng (symbology) (Hình 4-3) Ở đây, ngôn ngữ trực quan sử dụng riêng biệt Ta lại có trình đơn biểu tượng (các nét chạm-glyphs) biểu diễn thiết bị, liệu trình sẵn sàng để sử dụng Tuy nhiên, trường hợp này, cách dùng trỏ kéo biểu tượng, ta tạo lưu đồ (flowchart) miêu tả dãy bước xử lý định hình Mỗi biểu tượng có nhiều đường (pad) vào và/hoặc (các điểm kết nối) dành riêng Người sử dụng định rõ luồng xử lý cách liên kết đường với dòng kẻ sử dụng thiết bị trỏ 50 HÌNH 4-2 Hình 4-3 Ví dụ biểu đồ luồng liệu GUI Mỗi biểu tượng có đường điều khiển, chọn trỏ, mà bắt đầu thực trình khiến trình đơn xuất bất kỳ, cho phép người sử dụng định nghĩa chi tiết trình Mỗi biểu tượng biểu thị báo (indicator) trạng thái cho biết (1) định nghĩa đầy đủ hay không, (2) sẵn sàng hoạt động hay không, (3) thực hoàn thành hoạt động chưa 4.3.5 Cửa sổ Trong ngày đầu xử lý ảnh, người sử dụng có sở để nhận nhiều hình hiển thị tăng khả sử dụng hệ thống lên nhiều Ví dụ, thích hợp để sử dụng cách hiển thị khác giao diện người sử dụng hiển thị ảnh Một lựa chọn (và rẻ hơn) sử dụng thiết bị hiển thị khuôn dạng đơn lớn cho hàm khác lúc Môi trường hướng cửa sổ (Window-oriented environment) phần mềm sử dụng hình hiển thị có hiệu để trình bày đối tượng độc lập khác lúc Người sử dụng mở (chẳng hạn, thiết lập hay định nghĩa) nhiều cửa sổ hiển thị khác sử dụng cửa sổ cho mục đích hiển thị khác nhau, ta sử dụng nhiều àn hình hiển thị Mỗi cửa sổ định vị định kích thước lại hình, điển hình dùng thiết bị trỏ kéo đường biên Ở cửa sổ chồng lên nhsu, cửa sổ (cửa sổ hoạt động) che khuất phần hay toàn cửa sổ cửa sổ “ở dưới” nó, chồng đè lên ảnh hình Xu hướng thiết kế giao diện người sử dụng ý nhiều vào ngôn ngữ trực quan, trả giá ngôn ngữ nguyên văn Cảm giác với giao diện trực quan dễ dàng cho người bắt đầu học nhanh cho chuyên gia sử dụng so với việc đánh máy văn từ bàn phím Đầu vào tiếng nói vấn đề thêm vào hữu ích với chuột bàn phím Tiếng nói tổng hợp cho phép hệ thống trả lời thao tác viên Giao diện lời đặc biệt hữu dụng thao tác viên phân chia ý cho nhiều công việc khác Trong vài trường hợp, chuỗi tín hiệu video số hoá cung cấp trợ giúp trực tuyến (on-line) có giá trị cần thiết 4.4 QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM Trong ngày đầu lập trình máy tính nói chung xử lý ảnh số nói riêng, trình phát triển phần mềm, theo cách nói bây giờ, cấu trúc (unstructured) Những người lập trình máy tính không hiếm, giống kiểu người tiên phong khác, mà có tính chất chủ nghĩa cá nhân Có lẽ với khái niệm mơ hồ công việc mà phần mềm yêu cầu làm, người lập trình bắt tay vào viết mã lệnh, tổng hợp vấn đề phức tạp từ phần đơn giản hơh trình Sau đó, toàn thiết kế dược phát triển song song với việc thực Những giải thiết kế chủ yếu thực theo cách từ đầu đến đuôi Thông thường mô đun (module) phát triển từ lên, với chương trình (routine) viết 51 chương trình mức cao dựa vào chương trình trước đó, người lập trình ban đầu khai thác cách sáng tạo phong phú ngôn ngữ lập trình cấp cao đương thời để viết mã lệnh nhanh, cô đọng chất giải mã Khoảng năm 1970, nhiều vấn đề với cách tiếp cận trở thành hiên nhiên Đầu tiên, phức tạp dự án phần mềm tiến đến mức mà người lập trình khó lòng giữ tất khía cạnh chương trình lúc đầu Nghiên cứu tâm lý học đưa giả thiết người thật khó chịu cố gắng giữ dấu vết nhiều năm đến chín mẩu thông tin lúc Hạn chế lấy phần lớn giá ngân sách dự án phát triển phần mềm lớn lặp lặp lại nhiều lần Thứ hai, với dự án bao gồm nhóm nhà lập trình, phối hợp kết cố gắng thành vấn đề trọng đại Các mô đun viết cá nhân khác không thành công việc làm cho khớp vào với cách trôi chảy Thứ ba, có thay đổi nhân viên, trở nên tốn phí người lập trình để giải mã (decipher) mã nguồn tình trạng thiếu vài cấu trúc agreed-upon phổ biến, đặc biệt thiếu tài liệu kèm Ví dụ, theo bố trí trường đại học, sinh viên hay cán lập trình làm cho tất phần mềm mà hay cô ta phát triển làm việc dự án nghiên cứu không sử dụng Các dự án phát triển phần mềm thương mại đòi hỏi tác động qua lại lẫn đáng kể nhiều nhân để chắn sản phẩm cuối thoả mãn tất yêu cầu (thường cạnh tranh) Hình 4-4 ví dụ môt lưu đò sử dụng môt dự án phát triển phần mềm thương mại Các bước quan trọng vòng phát triển phần mềm liệt kê bảng 4-2 Những bước thực cách tuần tự, cách gối chồng lên nhau, hay lặp Theo định nghĩa, phân tích trình nghiên cứu vấn đề đặc tính hoạt động giải Kết cho ta đặc tả hàm (functional specification) phần mềm Thiết kế thực đặc tả thêm chi tiết yêu cầu cho việc thực phần cứng riêng biệt Lập trình, dĩ nhiên viết, kiểm tra, gỡ rối cung cấp tài liệu chương trình máy tính BẢNG 4-2 QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM Phân tích yêu cầu - Requirements analysis Thiết kế sơ - Preliminary design Mẫu - Prototyping (if required) Thiết kế chi tiết - Detailed design Thực - Implementation (coding) Kiểm tra - Testing Bảo trì - Maintenance HÌNH 4-4 52 Hình 4-4 Ví dụ lưu đồ phát triển phần mềm Mặc dù cách tiếp cận nảy sinh phức tạp mức cần thiết, kinh nghiệm cho thấy việc thực công việc lần rẻ sử dụng thêm thời gian cho việc thay đổi gỡ rối chương trình thực tồi tệ từ đầu 4.4.1 Quá trình hoạt động chương trình Một chương trình ứng dụng hoạt động ba chế độ, tuỳ thuộc vào vai trò mà thực trình tính toán Trong chế độ lô (batch mode), chương trình đặt vào hàng đợi (queue) thi hành lúc máy tính giải xong công việc trước Mặc dù câu lệnh phải thực tuần tự, khác thực lệnh dù diễn hàng nano giây hay hàng phút Vài chương trình xử lý ảnh thuộc vào loại Một chương trình điều khiển theo kiện (event-driven program) tham gia vòng lặp kiện, chờ đợi kiện xảy Bình thường, thao tác viên gây hoạt động (nhấn phím, kích chuột, ) tạo thành kiện Chương trình liên tục thăm dò (poll) thiết bị đầu vào, kiểm tra nhận diện kiện xảy Sau thực chương trình thích hợp trở vòng lặp kiện Bình thường chương trình xử lý ảnh ảnh hưởng lẫn thuộc loại Chương trình thời gian thực (real-time) điều khiển trình xảy ra, ví dụ hoạt động sản xuất Bản thân thời gian đóng vai trò quan trọng trình tính toán Thường thường, chương trình điều khiển đầu trình điều chỉnh tham số điều khiển trình Điều bao hàm xử lý ảnh 4.4.2 Thiết kế từ xuống (Top-Down) Vào đầu năm 1970, khái niệm lập trình có cấu trúc (structured progamming) thiết kế xuống (top-down design) xuất để giải toán lập trình cấu trúc tạo Thiết kế xuống cần phải viết gỡ rối phần mềm mức cao (giao diện người sử dụng) sau thêm dần chương trình mức thấp hơn, chương trình điều khiển phần cứng thường viết sau Kiểu thiết kế tương phản với thiết kế lên (bottom-up), người ta viết chương trình đơn giản xây dựng dần lên từ chúng, nhận chương trình mức thấp bỏ sót hàm cần thiết Thiết kế xuống có hai lợi quan trọng Một lợi có liên quan đến giao diện mô đun Mức đỉnh thiết kế trực tiếp từ đặc tả chức hệ thống Mỗi giao diện mô đun thực gốc (stub) Lợi thứ hai giải thích phần hệ thống trình phát triển Giao diện người sử dụng đưa ước lượng từ lúc đầu, đem lại cho người sử dụng khả xem trước việc Những gốc (stub) đại diện cho chương trình mức thấp chưa viết Dần dần thay gốc chương trình con, từ xuống, dự án trình bày 4.4.3 Hướng phát triển có cấu trúc Cách tiếp cận có cấu trúc phát triển phần mềm trở nên bật vào năm 1970 Đó cố gắng để làm cho trình hiệu cách thức hoá (formalizing) nó, tác động lên sử dụng công cụ thiết kế phục vụ cho việc giải trước vấn đề rắc rối khác trình Phát triển có cấu trúc chủ yếu phân tích vấn đề theo giai đoạn chức năng, phù hợp cho chương trình chế độ lô (batch mode) 53 4.4.3.1 Phân tích có cấu trúc Phép phân tích có cấu trúc phân tích vấn đề mà giải theo giai đoạn chức Đưa đến kết đặc tả có cấu trúc (structured specification), bao gồm (1) biểu đồ luồng liệu (data flow diagrams-DFDs) trình bày phân tích toàn chức vào trình, luồng liệu giao diện trình; (2) từ điển liệu (data dictionary) cung cấp tài liệu liệu giao diện DFD; (3) diễn tả biến đổi (transform description) cung cấp tài liệu chức mõi trình DFD Đặc tả có cấu trúc đưa thành phần cấu trúc hệ thống khác thông tin trao đổi biến đổi cách nào, thành phần 4.4.3.2 Thiết kế có cấu trúc Mục đích thiết kế có cấu trúc phương pháp luận có tổ chức cho phân biệt thiết kế tốt xấu, đến giải pháp tối ưu Đó tập hợp chiến lược kỹ thuật, đáp ứng mục tiêu ràng buộc kỹ thuật phổ biến cho môi trường khoa học thương mại Thiết kế có cấu trúc phát triển phác thảo bao gồm thành phần hộp đen (black-box) mà chức xác định rõ, công việc bên không Nó chia sẻ nhiều nguyên tắc công nghệ sử dụng để phát triển biểu đồ tổ chức với công ty 4.4.3.3 Lập trình có cấu trúc Lập trình có cấu trúc thiết lập kỹ thuật mã hoá tiêu chuẩn hoá xoá bỏ số lệnh thói quen lập trình đơn giản khỏi ngôn ngữ lập trình Những chương trình có cấu trúc tuân theo lưu đồ xây dựng từ tập giới hạn hàm lối vào đơn, lối đơn Công việc lập trình trở thành cố gắng rèn luyện nhiều hơn, vận dụng tiêu chuẩn cách khôn ngoan sáng tạo Mã kết dễ đọc, kiểm tra, thay đổi, cung cấp tài liệu gỡ rối Ngôn ngữ lập trình có cấu trúc, ví dụ Pascal, Ada C, đời để cạnh tranh với ngôn ngữ cấu trúc FORTRAN BASIC Ngôn ngữ có cấu trúc cung cấp khả khuyến khích hỗ trợ rèn luyện trí óc cho lập trình có cấu trúc tránh xa thói quen lập trình tầm thường Hiện nay, phiên gần ngôn ngữ đời kết hợp chặt chẽ vài khái niệm cấu trúc Trong ngôn ngữ cấu trúc, chuỗi điều khiển (thread of control) tự nhảy lung tung khắp nơi chương trình Một ví dụ lệnh tính toán GOTO FORTRAN Điều khiển chuyển đến nhiều vị trí mã nguồn khác nhau, tuỳ thuộc vào giá trị biến xác định thời điểm thực lệnh Việc đọc hiểu danh sách chương trình chứa cấu trúc khó khăn chí tác giả chương trình - mã nguồn viết trước 60 ngày Trong ngôn ngữ có cấu trúc, luồng điều khiển bị cấu trúc đơn luồng (singlethread) hạn chế, mã liệu dễ dàng chia thành ngăn Các chương trình sử dụng biến cục (tạm thời) tác động đến phần khác chương trình 4.4.4 Phát triển hướng đối tượng (Object-Oriented Development) Sự phát triển phần mềm theo cách tiếp cận hướng đối tượng phân tích vấn đề theo giai đoạn quan hệ liệu Một cách khái niệm, chương trình phân tích thành đối tượng (object), đối tượng kết hợp liệu có liên quan tới khía cạnh riêng biệt vấn đề mã tương ứng sử dụng liệu để thực tập chức hoàn toàn xác định Dữ liệu mã chương trình 54 đóng gói (encapsulate) thành khép kín (seamless package), công việc bên che đậy không cho giới bên biết Cách tiếp cận phù hợp với ứng dụng điều khiển theo kiện Mỗi đối tượng hoạt động giống hộp đen (black box), thực chức định nghĩa theo yêu cầu, có bộc lộ chút bề công việc bên Nó nhận thông báo để hành động, hoàn thành trả lời lại thông báo Mỗi đối tượng độc lập quản lý chương trình điều khiển luồng liệu lúc, hoạt động Điều làm cho chương trình có nhiều mô đun tránh tình trạng thay đổi bên chương trình tạo kết không ngờ cho phần chương trình khác 4.4.4.1 Phân tích hướng đối tượng Phân tích hướng đối tượng vấn đề cho ta danh sách đối tượng giải vấn đề Danh sách bao gồm đặc tả liệu (các thuộc tính) chức (các dịch vụ) đối tượng Phân tích hướng đối tượng thực mà không quan tâm đến phần cứng, hệ điều hành, hay công cụ phần mềm sử dụng để thực 4.4.4.2 Thiết kế hướng đối tượng Giai đoạn thiết kế hướng đối tượng vạch cách mà thiết kế logic thực từ phân tích-đó kết hợp phần cứng, hệ điều hành công cụ phát triển phần mềm (chẳng hạn biên dịch, ) Thường thường, thay đổi đáng kể thiết kế ban đầu đòi hỏi phải có xác thực 4.4.4.3 Lập trình hướng đối tượng Trong lập trình hướng đối tượng, người lập trình thường bắt đầu với sườn ứng dụng (application framework) Đây chương trình có nhiều chức chung, phổ biến cho đa số chương trình Nó giống khung để xây dựng đơn vị trọn vẹn Bình thường, sườn ứng dụng điều khiển vòng lặp kiện phát kiện Sau người lập trình phải thêm đối tượng yêu cầu vào ứng dụng đến Mỗi đối tượng viết liệu điều khiển chương trình đóng gói thành đơn vị độc lập, bọc kín nhiều hay Những đối tượng không cần thiết kế viết từ đầu; chúng kế thừa (inherit) đối tượng tồn trước Vì vậy, ví dụ kiểu cửa sổ hiển thị tồn tại, cần thay đổi để tạo thành kiểu cửa sổ hiển thị khác 4.4.5 Các công cụ CASE Trong thực tiễn, lượng thời gian đáng kể người lập trình tiêu tốn cho việc thực công việc không sáng tạo (noncreative)-những công việc mà nói máy móc không yêu cầu kinh nghiệm đầu vào sáng tạo Các công cụ phần mềm xuất để làm thay đổi phạm vi hoạt động phần phát triển Chúng thường gọi với tên công cụ công nghệ phần mềm máy tính trợ giúp (computer-aided software engineering-CASE) Chúng kế tục nhiều chức cung cấp tài liệu kiểm tra lỗi Tất nhiên, điều cần thiết cho người lập trình hay người thiết kế phần mềm đóng góp thông tin quan hệ thiết kế (design-related) vào hệ thống bắt đầu, chương trình biên dịch định dạng thông tin theo cách đặc biệt khiến người tránh nỗ lực to lớn không cần thiết Việc sử dụng công cụ CASE có hiệu phụ thuộc vào cố gắng áp dụng qui tắc lập trình thiết kế phần mềm, ví dụ kêt miêu tả chỗ đầu (header) chuẩn hoá, nơi bắt đầu mô đun mã 55 Một ví dụ công cụ CASE chương trình kết hợp thông tin đầu từ tất mô đun mã nguồn để tạo thành tài liệu phần mềm Những chương trình khác đọc file mã nguồn, biên dịch ánh xạ liên kết phần phụ thuộc truyền tin mô đun Trong khứ, thiết kế nhận thức hoàn thành bắt đầu dự án, với nhiều chi tiết thiết kế điền vào cách phát triển mã hoá Xu hướng tiến tới tập trung vào toàn sức lực thiết kế bắt đầu dự án Điều có nghĩa việc lập trình thực tế trình máy móc quy mô lớn, hoạt động với tài liệu thiết kế hoàn toàn đặc biệt Sự phân nhánh xu hướng gồm hai phần Thứ nhất, đội phát triển phần mềm có khuynh hướng chia nhỏ thành người thiết kế người lập trình Thứ hai, sinh mã thực tế công cụ CASE thực Một người thiết kế phần mềm ngồi trạm làm việc, phát triển đặc tả đầy đủ phần mềm Sau công cụ CASE sử dụng đặc tả để tạo mã nguồn (không có lỗi mã hoá) lẫn tài liệu kỹ thuật (dù tài liệu người sử dụng) 4.4.6 Sự độc lập phần cứng (Platform Indepedence) Sự phát triển phần mềm xử lý ảnh công việc tốn nhiều thời gian tiền bạc Có nhiều hệ thống máy tính khác dùng để xử lý ảnh số Các phần cứng khác có mối quan hệ thuận lợi bất lợi việc thực giá Sự tiến phần cứng xảy nhanh chóng lỗi thời khoảng cách Vì thế, câng tránh phần hay toàn việc viết lại phần mềm cho thiết bị ngoại vi nềm phần cứng Xu hướng phương pháp phát triển phần mềm nay, phần chủ yếu, độc lập với phần cứng mà chúng chạy Bộ công cụ cầm tay (portability tool kit) giao diện phần mềm nằm chương trình ứng dụng độc lập với phần cứng hệ thống địa phương (hệ thống chạy ứng dụng đó-native system) (Hình 4-5) Chương trình ứng dụng viết theo quy tắc tiêu chuẩn giống công cụ viết phần cứng Bộ công cụ cung cấp giao diện chương trình ứng dụng hệ điều hành hệ thống địa phương, GUI tài nguyên nhớ Nó biên dịch truyền thông tin ứng dụng hệ thống mà ứng dụng chạy HÌNH 4-5 Hình 4-5 Cơ cấu phần mềm độc lập với phần cứng Mỗi hệ thống cục khác (chẳng hạn, trạm làm việc UNIX, Macintosh, ) có phiên công cụ cầm tay khác nhau, phiên quan tâm đến chương trình ứng dụng Theo cách đó, chương trình ứng dụng phát triển hệ thống cục hoạt động (theo lý thuyết) mà 56 thay đổi hệ thống cục khác Trong đa số trường hợp, có hạn chế mặt chức yêu cầu sau chuyển chương trình ứng dụng sang hệ thống cục khác Bộ công cụ cầm tay thiết kế tốt giúp người lập trình truy cập trực tiếp đến hầu hết, không muốn nói tất cả, đặc điểm tài nguyên hệ thống cục Những đặc điểm không tồn hệ thống cục bộ, tồn hệ thống cục khác thiết bị hỗ trợ, công cụ mô phần mềm Một công cụ cầm tay tốt, bản, cho phép người lập trình truy cập vào đặc điểm sẵn có tất hệ thống cục hỗ trợ đặc điểm thêm vào Khi chương trình độc lập với phần cứng chuyển sang hệ thống cục khác, chức không thay đổi Tuy nhiên, “mắt tay” thuộc “chủ mới” (hệ thống cục mới) Chạy máy Macintosh, trông giống viết cho máy phần cứng khác Lập trình độc lập với phần cứng khiến cho người lập trình di chuyển dễ dàng Họ tìm hiểu tập đặc tính tài nguyên thay đổi, với điều kiện phải sử dụng công cụ cầm tay tương tự 4.4.7 Cung cấp tài liệu phần mềm Tài liệu kèm theo phát triển sử dụng phần mềm xử lý ảnh chia thành năm loại Đầu tiên tài liệu thiết kế, định rõ phần mềm dùng để làm tài liệu mã phần mềm, bao gồm thuật giải chi tiết cấu trúc mô đun Thứ ba tài liệu dẫn cho thao tác viên, bao gồm tập tự học cho người bắt đầu sử dụng Thứ tư tài liệu tham khảo, tổ chức thông tin đặc biệt, súc tích, sử dụng thao tác viên có kinh nghiệm Thứ năm trợ giúp trực tuyến, người sử dụng gọi hình (thường cửa sổ trợ giúp độc lập) chương trình chạy Thỉnh thoảng, hấp tấp mà cố gắng cung cấp tài liệu trở nên tồi tệ trước hoàn thành phát hành phần mềm Cái giá phải trả, thời gian tiền bạc, cho tài liệu không tương xứng thường cao Việc cố gắng giải mã trình hoạt động phần mềm cung cấp tài liệu tồi gây bực dọc đến mức người sử dụng bỏ dở chừng trước trở nên thông thạo Việc hoàn thiện mã mà tài liệu cung cấp tồi gây tốn nhiều thời gian giống tiền bạc Bộ phần mềm lý tưởng phần mềm với giao diện người sử dụng rõ ràng, cần sử dụng đến tài liệu hoàn chỉnh đầy đủ Sau lời giới thiệu chương trình vắn tắt, người sử dụng yêu cầu hỗ trợ không thường xuyên từ trợ giúp trực tuyến tài liệu tham khảo 4.5 TỔNG KẾT NHỮNG ĐIỂM QUAN TRỌNG Một phần mềm thừa nhận phải phần mềm có giao diện người sử dụng tiện lợi, tài liệu tốt cung cấp cho người sử dụng, tính đầy đủ chức xác quan trọng Với đa số người sử dụng, giao diện người sử dụng đồ hoạ điều khiển trình đơn dễ dàng để học thao tác giao diện văn Chiều hướng phát triển giao diện người sử dụng từ giao diện văn đến giao diện lời nói trực quan Một chương trình chạy chế độ lô (batch mode), điều khiển kiện, hay hoạt động thời gian thực Phát triển phần mềm có cấu trúc phân tích vấn đề theo giới hạn chức làm bật giao diện luồng liệu thành phần 57 Những chương trình có cấu trúc xây dựng từ hàm đơn đầu vào, đơn đầu tránh cấu trúc làm cho việc điều khiển chương trình trở nên khó khăn Phát triển hướng đối tượng đóng gói liệu chức liên quan với thành phần hệ thống thành đối tượng giao tiếp qua thông báo Lập trình độc lập với phần cứng cho phép phần mềm phát triển kiểu hệ thống di chuyển đến hệ thống kiểu khác cách dễ dàng BÀI TẬP Phát triển cấu trúc trình đơn hai mức cho chương trình thiết kế để nhập vào, xử lý xuất ảnh thu từ tàu vũ trụ Chương trình phải có khả nhập vào ảnh từ vệ tinh truyền xuống, Internet, modem đĩa quang (laser), xuất ảnh Internet, modem, đĩa quang máy in Đối với trình xử lý, chọn sáu trình phần sách Giải thích số mức trình đơn tối ưu tiện lợi cho người sử dụng mà bạn chọn Trình bày lưu đồ phát triển chương trình phần mềm xử lý ảnh mang tính thương mại cho kỹ nghệ kiểm tra chip tổ hợp Chương trình tăng cường ảnh hiển vi số hoá chip hiển thị ảnh chip tốt lưu trữ để so sánh DỰ ÁN Thiết kế giao diện người sử dụng dùng đồ hoạ (GUI) cho kiểu xử lý ảnh đặc biệt (ví dụ ảnh thiên văn, y học, đồ) đầy đủ với trình đơn (menu), biểu tượng (icon), Thực mẫu (không phải hàm) giao diện người sử dụng đồ hoạ cho kiểu xử lý ảnh đặc biệt nhờ người có lực duyệt lại Sử dụng chương trình đồ hoạ, tạo bảng 16 màu thích hợp, dùng để tô màu dòng kẻ số hoá Cung cấp bảng màu, giữ nguyên màu sắc, độ bão hoà cường độ màu sử dụng ảnh Chuẩn bị phác thảo tài liệu kỹ thuật chi tiết cho phần mềm có sẵn Chuẩn bị phác thảo tài liệu người sử dụng chi tiết cho phần mềm có sẵn Viết chương trình đọc ảnh lưu dạng file, hiển thị lưu chúng sang dạng file khác 58 [...]... tài nguyên mới mỗi khi thay đổi, với điều kiện là phải sử dụng bộ công cụ cầm tay tương tự 4. 4.7 Cung cấp tài liệu phần mềm Tài liệu kèm theo sự phát triển và sử dụng bộ phần mềm xử lý ảnh chia thành năm loại Đầu tiên là tài liệu thiết kế, nó định rõ bộ phần mềm dùng để làm gì tiếp theo là tài liệu về mã phần mềm, bao gồm các thuật giải và các chi tiết cấu trúc mô đun Thứ ba là tài liệu chỉ dẫn cho... cũng giống như tiền bạc Bộ phần mềm lý tưởng là bộ phần mềm với giao diện người sử dụng rõ ràng, đến nỗi ít khi cần sử dụng đến bộ tài liệu hoàn chỉnh và đầy đủ Sau lời giới thiệu chương trình vắn tắt, người sử dụng chỉ yêu cầu sự hỗ trợ không thường xuyên từ trợ giúp trực tuyến và tài liệu tham khảo 4. 5 TỔNG KẾT NHỮNG ĐIỂM QUAN TRỌNG 1 Một phần mềm được thừa nhận phải là phần mềm có một giao diện người... vào, xử lý và xuất ra những ảnh thu được từ tàu vũ trụ Chương trình phải có khả năng nhập vào những ảnh từ vệ tinh truyền xuống, Internet, modem và đĩa quang (laser), và xuất ảnh ra Internet, modem, đĩa quang và máy in Đối với quá trình xử lý, chọn sáu quá trình ở phần 1 của sách Giải thích số mức trình đơn tối ưu tiện lợi cho người sử dụng mà bạn chọn 2 Trình bày một lưu đồ phát triển chương trình phần. .. bạn chọn 2 Trình bày một lưu đồ phát triển chương trình phần mềm xử lý ảnh mang tính thương mại cho kỹ nghệ kiểm tra chip tổ hợp Chương trình sẽ tăng cường các ảnh hiển vi số hoá của chip và hiển thị các ảnh chip tốt đã lưu trữ để so sánh DỰ ÁN 1 Thiết kế một giao diện người sử dụng dùng đồ hoạ (GUI) cho kiểu xử lý ảnh đặc biệt (ví dụ như ảnh thiên văn, y học, bản đồ) đầy đủ với trình đơn (menu), biểu... diện người sử dụng đồ hoạ cho một kiểu xử lý ảnh đặc biệt và nhờ những người có năng lực duyệt lại 3 Sử dụng một chương trình đồ hoạ, tạo bảng 16 màu thích hợp, dùng nó để tô màu một dòng kẻ số hoá Cung cấp bảng màu, giữ nguyên màu sắc, độ bão hoà và cường độ của mỗi màu sử dụng trong ảnh 4 Chuẩn bị bản phác thảo bộ tài liệu kỹ thuật chi tiết cho một bộ phần mềm có sẵn 5 Chuẩn bị bản phác thảo bộ tài... điều khiển chương trình trở nên khó khăn 7 Phát triển hướng đối tượng đóng gói dữ liệu và các chức năng liên quan với mỗi thành phần hệ thống thành các đối tượng giao tiếp qua thông báo 8 Lập trình độc lập với nền phần cứng cho phép phần mềm đã phát triển trên một kiểu hệ thống có thể di chuyển đến hệ thống kiểu khác một cách dễ dàng BÀI TẬP 1 Phát triển một cấu trúc trình đơn hai mức cho chương trình... từ giao diện văn bản đến giao diện bằng lời nói và trực quan 4 Một chương trình có thể chạy chế độ lô (batch mode), được điều khiển bằng sự kiện, hay hoạt động trong thời gian thực 5 Phát triển phần mềm có cấu trúc là phân tích một vấn đề theo các giới hạn chức năng và làm nổi bật các giao diện và luồng dữ liệu giữa các thành phần 57 6 Những chương trình có cấu trúc được xây dựng từ các hàm con đơn đầu... hình (thường trong một cửa sổ trợ giúp độc lập) trong khi chương trình vẫn đang chạy Thỉnh thoảng, do hấp tấp mà sự cố gắng cung cấp tài liệu trở nên tồi tệ hơn trước khi hoàn thành và phát hành phần mềm Cái giá phải trả, về thời gian và tiền bạc, cho tài liệu không tương xứng thường khá cao Việc cố gắng giải mã quá trình hoạt động của phần mềm được cung cấp tài liệu tồi có thể gây bực dọc đến mức... những đặc điểm thêm vào Khi một chương trình độc lập với nền phần cứng chuyển sang hệ thống cục bộ khác, thì chức năng của nó vẫn không thay đổi Tuy nhiên, “mắt và tay” của nó sẽ thuộc về “chủ mới” (hệ thống cục bộ mới) của nó Chạy trên máy Macintosh, trông nó sẽ giống như là được viết cho máy này và cũng như vậy đối với các nền phần cứng khác Lập trình độc lập với nền phần cứng khiến cho những người... mỗi màu sử dụng trong ảnh 4 Chuẩn bị bản phác thảo bộ tài liệu kỹ thuật chi tiết cho một bộ phần mềm có sẵn 5 Chuẩn bị bản phác thảo bộ tài liệu người sử dụng chi tiết cho một bộ phần mềm có sẵn 6 Viết một chương trình đọc ảnh đã lưu trong một dạng file, hiển thị và lưu chúng sang dạng file khác 58 ... phát triển sử dụng phần mềm xử lý ảnh số Một giao diện người sử dụng đòi hỏi công cụ thuận tiện có sẵn, với chi phí tối thiểu Các phần mềm xử lý ảnh số đại đặt khả xử lý tính mềm dẻo vào tay người... tự 4. 4.7 Cung cấp tài liệu phần mềm Tài liệu kèm theo phát triển sử dụng phần mềm xử lý ảnh chia thành năm loại Đầu tiên tài liệu thiết kế, định rõ phần mềm dùng để làm tài liệu mã phần mềm, ... triển phần mềm xử lý ảnh công việc tốn nhiều thời gian tiền bạc Có nhiều hệ thống máy tính khác dùng để xử lý ảnh số Các phần cứng khác có mối quan hệ thuận lợi bất lợi việc thực giá Sự tiến phần