Bài giảng môn học Công nghệ phần mềm: Phần 1 - Nguyễn Chánh Thành

61 11 0
Bài giảng môn học Công nghệ phần mềm: Phần 1 - Nguyễn Chánh Thành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phần mềm và công nghệ phần mềm; phân tích và đặc tả yêu cầu; thiết kế phần mềm là những nội dung chính mà Bài giảng môn học Công nghệ phần mềm: Phần 1 của tác giả Nguyễn Chánh Thành hướng đến trình bày. Mời các bạn cùng tham khảo nội dung thông tin tài liệu.

ðẠI HỌC KỸ THUẬT CƠNG NGHỆ Khoa Cơng nghệ Thơng tin BÀI GIẢNG MÔN HỌC CÔNG NGHỆ PHẦN MỀM Biên soạn: Nguyễn Chánh Thành THÁNG 08 NĂM 2008 MỤC LỤC MỤC LỤC I CHƯƠNG PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM 1.1 Tổng quan khái niệm Phần mềm (software) 1.2 ðặc ñiểm phần mềm 1.3 Phân loại phần mềm .2 1.3.1 Theo phương thức hoạt ñộng 1.3.2 Theo khả ứng dụng 1.4 Tầm quan trọng tiến hóa phần mềm 1.4.1 Tiến hóa phần mềm .3 1.4.2 Sự ứng dụng phần mềm 1.5 Sơ lược trình tạo phần mềm .6 1.5.1 Về mặt thiết kế .6 1.5.2 Sản xuất phát triển 1.6 Khó khăn, thách thức ñối với phát triển phần mềm 1.6.1 Phần mềm phần mềm tốt 1.6.2 ðặc trưng phát triển vận hành phần mềm 1.6.3 Nhu cầu ñộ phức tạp 1.7 Công nghệ phần mềm 10 1.7.1 ðịnh nghĩa 10 1.8 Các mơ hình phát triển sản phẩm phần mềm 11 1.8.1 Mơ hình vịng đời cổ điển 11 1.8.2 Mơ hình làm mẫu 13 1.8.3 Mơ hình xoắn ốc 15 1.8.4 Kỹ thuật hệ thứ tư 16 1.8.5 Mơ hình lập trình linh hoạt 17 1.8.6 Tổ hợp mơ hình 19 1.8.7 Tính khả thị q trình cơng nghệ 19 1.8.8 Vấn đề giảm kích cỡ phần mềm 20 1.9 Cái nhìn chung cơng nghệ phần mềm 21 1.10 Hướng tương lai công nghệ phần mềm 22 1.11 Tổng kết 23 CHƯƠNG PHÂN TÍCH VÀ ðẶC TẢ YÊU CẦU 24 2.1 ðại cương phân tích ñặc tả 24 2.2 Nghiên cứu khả thi 25 i 2.2.1 2.2.2 2.2.3 2.2.4 Khả thi kinh tế 26 Khả thi kỹ thuật 26 Khả thi pháp lý 27 Tính khả thi hoạt ñộng 27 2.3 Nền tảng phân tích yêu cầu 27 2.3.1 Các nguyên lý phân tích 27 2.3.2 Mơ hình hóa 28 2.3.3 Người phân tích 31 2.4 Xác ñịnh ñặc tả yêu cầu 31 2.4.1 Xác ñịnh yêu cầu 31 2.4.2 ðặc tả yêu cầu 32 2.4.3 Thẩm ñịnh yêu cầu 33 2.5 Làm mẫu q trình phân tích 34 2.5.1 Các bước làm mẫu 34 2.6 ðịnh dạng ñặc tả yêu cầu 36 2.7 Tổng kết 38 CHƯƠNG THIẾT KẾ PHẦN MỀM 39 3.1 Khái niệm thiết kế phần mềm 39 3.1.1 Khái niệm 39 3.1.2 Tầm quan trọng 39 3.1.3 Quá trình thiết kế 40 3.1.4 Cơ sở thiết kế 41 3.1.5 Mô tả thiết kế 42 3.1.6 Chất lượng thiết kế 44 3.2 Thiết kế hướng chức 46 3.2.1 Cách tiếp cận hướng chức 46 3.2.2 Biểu ñồ luồng liệu 47 3.2.3 Lược ñồ cấu trúc 47 3.2.4 Các từ ñiển liệu 47 3.3 Thiết kế hướng ñối tượng 48 3.3.1 Cách tiếp cận hướng ñối tượng 48 3.3.2 Ba ñặc trưng thiết kế hướng ñối tượng 48 3.3.3 Cơ sở thiết kế hướng ñối tượng 48 3.3.4 Các bước thiết kế 49 3.3.5 Ưu nhược ñiểm thiết kế hướng ñối tượng 50 3.3.6 Quan hệ thiết kế lập trình hướng đối tượng 50 3.3.7 Quan hệ thiết kế hướng ñối tượng hướng chức 51 3.4 Thiết kế giao diện người sử dụng 51 3.4.1 Một số vấn ñề thiết kế 53 3.4.2 Một số hướng dẫn thiết kế 54 3.5 Tổng kết 54 CHƯƠNG LẬP TRÌNH 56 ii 4.1 Ngơn ngữ lập trình 56 4.1.1 ðặc trưng ngơn ngữ lập trình 56 4.1.2 Lựa chọn ngơn ngữ lập trình 57 4.1.3 Ngơn ngữ lập trình và ảnh hưởng tới công nghệ phần mềm 58 4.2 Phong cách lập trình 59 4.2.1 Tài liệu chương trình 59 4.2.2 Khai báo liệu 59 4.2.3 Xây dựng câu lệnh 60 4.2.4 Nhập/xuất 60 4.3 Lập trình tránh lỗi 61 4.3.1 Lập trình thứ lỗi 62 4.3.2 Lập trình phịng thủ 62 4.4 Lập trình hướng hiệu thực 63 4.4.1 Tính hiệu chương trình 63 4.4.2 Hiệu nhớ 64 4.4.3 Hiệu nhập/xuất 64 4.5 Tổng kết 65 4.6 Mẫu thực tế (Case Study) Error! Bookmark not defined CHƯƠNG 5.1 XÁC MINH VÀ THẨM ðỊNH 66 Giới thiệu 66 5.2 Khái niệm phép thử 67 5.2.1 Thử nghiệm chức thử nghiệm cấu trúc 67 5.2.2 Thử nghiệm chức 67 5.2.3 Thử nghiệm cấu trúc 68 5.3 Quá trình thử nghiệm 69 5.3.1 Thử nghiệm gây áp lực 70 5.4 Chiến lược thử nghiệm 70 5.4.1 Thử nghiệm lên 70 5.4.2 Thử ngiệm xuống 71 5.5 Bảo trì phần mềm 71 CHƯƠNG QUẢN LÝ DỰ ÁN PHÁT TRIỂN PHẦN MỀM 73 6.1 Khái niệm dự án 73 6.2 Các vấn ñề thường xảy ñối với dự án phần mềm 73 6.3 ðại cương quản lý dự án 73 6.4 Các hoạt ñộng quản lý dự án 75 6.4.1 Xác ñịnh dự án phần mềm cần thực 75 6.4.2 Lập kế hoạch thực dự án 76 6.4.3 Tổ chức thực dự án 77 iii 6.4.4 6.4.5 Quản lý trình thực dự án 77 Kết thúc dự án 77 6.5 ðộ ño phần mềm 77 6.5.1 ðo kích cỡ phần mềm 77 6.5.2 ðộ ño dựa thống kê 78 6.6 Các tác vụ cần thiết 78 6.6.1 Ước lượng 78 6.6.2 Quản lý nhân 79 6.6.3 Quản lý cấu hình 80 6.6.4 Quản lý rủi ro 81 CHƯƠNG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM 83 7.1 Giới thiệu 83 7.2 Qui trình gì? 83 7.3 Một số quy trình mẫu SEP, ISO, CMM/CMMI 84 CHƯƠNG CASE STUDY BÀI TOÁN ðĂNG KÝ HỌC PHẦN 87 8.1 Phát biểu toán (Vision) 87 8.1.1 Bảng giải 88 8.1.1.1 Giới thiệu 88 8.1.1.2 Các ñịnh nghĩa 88 8.2 Business Vision 89 8.2.1 Introduction 89 8.2.2 Positioning 89 8.2.3 Stakeholder and User Descriptions 90 8.2.4 Product Overview 94 8.2.5 Constraints 96 8.2.6 Quality Ranges 97 8.2.7 Precedence and Priority 97 8.2.8 Other Product Requirements 97 8.2.9 Documentation Requirements 98 8.3 Business Glossary 99 8.3.1 Introduction 99 8.3.2 Definitions 99 8.4 ðặc tả bổ sung (Supplementary Specification) 100 8.4.1 Mục tiêu 100 8.4.2 Phạm vi 101 8.4.3 Tài liệu tham khảo 101 8.4.4 Chức 101 8.4.5 Tính khả dụng 101 8.4.6 Tính ổn định 101 8.4.7 Hiệu suất 101 8.4.8 Sự hỗ trợ 101 8.4.9 Tính bảo mật 101 8.4.10 Các ràng buộc thiết kế 102 iv 8.5 Sơ ñồ chức (Use Case Diagram) 103 8.6 ðặc tả chức (Use Case Description) 104 8.6.1 Close Registration (Kết thúc ñăng ký) 104 8.6.2 Login (ðăng nhập) 105 8.6.3 Maintain Professor Information (Quản lý thông tin giáo sư) 106 8.6.4 Maintain Student Information (Quản lý thông tin sinh viên) 108 8.6.5 Register for Courses (ðăng ký học phần) 109 8.6.6 Select Courses to Teach (ðăng ký dạy) 112 8.6.7 Submit Grades (Nộp ñiểm) 113 8.6.8 View Report Card (Xem phiếu ñiểm) 114 8.7 Phân tích yêu cầu 115 8.8 Thiết kế hệ thống 115 TÀI LIỆU THAM KHẢO 116 v CHƯƠNG PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM Công nghệ phần mềm hay kỹ nghệ phần mềm (tiếng Anh: software engineering) áp dụng cách tiếp cận có hệ thống, có kỷ luật, định lượng ñược cho việc phát triển, hoạt ñộng bảo trì phần mềm Ngành học Cơng nghệ phần mềm bao trùm kiến thức, công cụ, phương pháp cho việc ñịnh nghĩa yêu cầu phần mềm, thực tác vụ thiết kế phần mềm, xây dựng phần mềm, kiểm thử phần mềm (software testing), bảo trì phần mềm Cơng nghệ phần mềm cịn sử dụng kiến thức lĩnh vực kỹ thuật máy tính, khoa học máy tính, quản lý, tốn học, quản lý dự án, quản lý chất lượng, công thái học phần mềm (software ergonomics), kỹ nghệ hệ thống (systems engineering) Trích dẫn câu nói Edsger Dijkstra cơng nghệ phần mềm: Khi máy tính chưa xuất hiện, việc lập trình chưa có khó khăn Khi xuất vài máy tính chức việc lập trình bắt đầu gặp vài khó khăn nho nhỏ Giờ có máy tính khổng lồ khó khăn trở nên vô lớn Như ngành cơng nghiệp điện tử khơng giải khó khăn mà họ tạo thêm khó khăn Khó khăn mà họ tạo nên việc sử dụng sản phẩm họ 1.1 Tổng quan khái niệm Phần mềm (software) Phần mềm (Hán Việt gọi nhu liệu; tiếng Anh: software) tập hợp câu lệnh ñược viết nhiều ngơn ngữ lập trình theo trật tự xác định nhằm tự ñộng thực số chức giải tốn 1.2 ðặc điểm phần mềm Trước đây, để tạo chương trình máy tính người ta phải làm việc trực tiếp với số 1, hay gọi ngơn ngữ máy Cơng việc vơ khó khăn, chiếm nhiều thời gian, cơng sức đặc biệt dễ gây lỗi ðể khắc phục nhược ñiểm này, người ta đề xuất hợp ngữ, ngơn ngữ cho phép thay dãy từ gợi nhớ tiếng Anh Tuy nhiên, cải tiến cịn chưa thật thích hợp với đa số người dùng máy tính, người ln mong muốn lệnh ý nghĩa thao tác mà mơ tả Vì vậy, từ năm 1950, người ta xây dựng ngơn ngữ lập trình mà câu lệnh gần với ngơn ngữ tự nhiên Các ngơn ngữ gọi ngơn ngữ lập trình bậc cao Chương trình máy tính thường tạo người, người ñược gọi lập trình viên, nhiên tồn chương trình sinh chương trình khác 1.3 1.3.1 Phân loại phần mềm Theo phương thức hoạt ñộng Phần mềm hệ thống dùng ñể vận hành máy tính phần cứng máy tính, ví dụ hệ điều hành máy tính Windows XP, Linux, Unix, thư viện động (cịn gọi thư viện liên kết ñộng; tiếng Anh: dynamic linked library - DLL) hệ điều hành, trình điều khiển (driver), phần sụn(firmware) BIOS ðây loại phần mềm mà hệ ñiều hành liên lạc với chúng ñể ñiều khiển quản lý thiết bị phần cứng Phần mềm ứng dụng để người sử dụng hồn thành hay nhiều cơng việc đó, ví dụ phần mềm văn phòng (Microsoft Offices, Lotus 1-2-3, FoxPro), phần mềm doanh nghiệp, phần mềm quản lý nguồn nhân lực XETA, phần mềm giáo dục, sở liệu, phần mềm trị chơi, chương trình tiện ích, hay loại phần mềm ác tính Các phần mềm chuyển dịch mã bao gồm trình biên dịch trình thơng dịch: loại chương trình đọc câu lệnh từ mã nguồn viết lập trình viên ngơn ngữ lập trình dịch sang dạng ngơn ngữ máy mà máy tính hiểu ñưọc, hay dịch sang dạng khác tập tin ñối tượng (object file) tập tin thư viện (library file) mà phần mềm khác (như hệ điều hành chẳng hạn) hiểu để vận hành máy tính thực thi lệnh 1.3.2 Theo khả ứng dụng Những phần mềm khơng phụ thuộc, bán cho khách hàng thị trường tự Ví dụ: phần mềm sở liệu Oracle, ñồ họa Photoshop, Corel Draw, soạn thảo xử lý văn bản, bảng tính Ưu điểm: Thơng thường phần mềm có khả ứng dụng rộng rãi cho nhiều nhóm người sử dụng Khuyết điểm: Thiếu tính uyển chuyển, tùy biến Những phần mềm ñược viết theo ñơn ñặt hàng hay hợp ñồng khách hàng cụ thể (một cơng ty, bệnh viện, trường học ) Ví dụ: phần mềm điều khiển, phần mềm hỗ trợ bán hàng Ưu điểm: Có tính uyển chuyển, tùy biến cao ñể ñáp ứng ñược nhu cầu nhóm người sử dụng Khuyết điểm: Thơng thường ñây phần mềm ứng dụng chuyên ngành hẹp 1.4 Tầm quan trọng tiến hóa phần mềm Máy tính khác với máy móc thơng thường điểm thực nhiệm vụ khác cách sử dụng phần mềm khác Tức phần mềm tạo khác biệt máy tính định lực máy tính Cho đến năm 1990, xu hướng ngành cơng nghiệp máy tính phát triển phần cứng nhằm giảm giá thành hệ thống tăng lực xử lý lưu trữ liệu Do nhu cầu phần mềm tăng lên nhanh chóng, thách thức hay mục tiêu ngành công nghiệp máy tính cải thiện chất lượng giảm giá thành phần mềm Có thể nói khả phần cứng biểu thị cho tiềm hệ thống phần mềm chế giúp khai thác tiềm Chúng ta xem xét tầm quan trọng phần mềm khía cạnh tiến hóa phạm vi ứng dụng chúng 1.4.1 Tiến hóa phần mềm Sự tiến hóa phần mềm gắn liền với tiến hóa phần cứng chia làm giai đoạn: a Những năm ñầu (từ 1950 ñến 1960): - Giai ñoạn phần cứng thay ñổi liên tục, số lượng máy tính phần lớn máy ñược ñặt hàng chuyên dụng cho ứng dụng ñặc biệt - Phương thức xử lý theo lơ (batch), tức “gói” chương trình có sử dụng kết lại thành khối dể tăng tốc độ thực - Thời kỳ lập trình máy tính coi nghệ thuật “theo năng”, chưa có phương pháp hệ thống Việc phát triển phần mềm chưa quản lý - Mơi trường lập trình có tính chất cá nhân; thiết kế, tiến trình phần mềm khơng tường minh, thường khơng có tài liệu Sản xuất có tính đơn chiếc, theo đơn đặt hàng Người lập trình thường người sử dụng kiêm việc bảo trì sửa lỗi b Thời kỳ trải rộng từ năm 1960 ñến năm 1970: - Các hệ thống ña nhiệm, ña người sử dụng (ví dụ: Multics, Unix, ) xuất dẫn đến khái niệm tương tác người máy Kỹ thuật mở giới cho ứng dụng ñòi hỏi mức ñộ tinh vi cho phần mềm phần cứng - Nhiều hệ thống thời gian thực với đặc trưng thu thập, phân tích biến ñổi liệu từ nhiều nguồn khác phản ứng (xử lý, tạo output) khoảng thời gian ñịnh xuất - Tiến lưu trữ trực tuyến làm xuất hệ ñầu tiên hệ quản trị CSDL - Số lượng hệ thống dựa máy tính phát triển, nhu cầu phân phối mở rộng, thư viện phần mềm phát triển, quy mô phần mềm ngày lớn làm nẩy sinh nhu cầu sửa chữa gặp lỗi, cần sửa ñổi người dùng có u cầu hay phải thích nghi với thay đổi mơi trường phần mềm (phần cứng, hệ điều hành, chương trình dịch mới) Cơng việc bảo trì phần mềm tiêu tốn nhiều cơng sức tài nguyên ñến mức báo ñộng c Thời kỳ từ năm 1970 ñến ñầu năm 1990: - Hệ thống phân tán (bao gồm nhiều máy tính, máy thực chức liên lạc với máy khác) xuất làm tăng quy mô ñộ phức tạp phần mềm ứng dụng chúng - Mạng toàn cục cục bộ, liên lạc số giải thông cao phát triển mạnh làm tăng nhu cầu thâm nhập liệu trực tuyến, nảy sinh yêu cầu lớn phát triển phần mềm quản lý liệu - Công nghệ chế tạo vi xử lý tiến nhanh khiến cho máy tính cá nhân, máy trạm ñể bàn, thiết bị nhúng (dùng cho ñiều khiển robot, ô tô, thiết bị y tế, ñồ ñiện gia dụng, ) phát triển mạnh khiến cho nhu cầu phần mềm tăng nhanh - Thị trường phần cứng vào ổn định, chi phí cho phần mềm tăng nhanh có khuynh hướng vượt chi phí mua phần cứng d Thời kỳ sau 1990: - Công nghệ hướng ñối tượng cách tiếp cận ñang nhanh chóng thay nhiều cách tiếp cận phát triển phần mềm truyền thống lĩnh vực ứng dụng - Sự phát triển Internet làm cho người dùng máy tính tăng lên nhanh chóng, nhu cầu phần mềm ngày lớn, quy mơ độ phức tạp hệ thống phần mềm tăng ñáng kể - Phần mềm trí tuệ nhân tạo ứng dụng thuật toán phi số hệ chuyên gia, mạng nơ ron nhân tạo chuyển từ phịng thí nghiệm ứng dụng thực tế mở khả xử lý thông tin nhận dạng kiểu người 1.4.2 Sự ứng dụng phần mềm Chúng ta chia phần mềm theo miền ứng dụng thành loại sau: a Phần mềm hệ thống - Là tập hợp chương trình viết để phục vụ cho chương trình khác - Xử lý cấu trúc thơng tin phức tạp xác định (trình biên dịch, trình soạn thảo, tiện ích quản lý tệp) Kết hoạt ñộng thiết kế ñặc tả thiết kế ðặc tả ñặc tả trừu tượng, hình thức ñược tạo ñể làm rõ yêu cầu, đặc tả phần hệ thống phải ñược thực Khi trình thiết kế tiến triển chi tiết ñược bổ sung vào ñặc tả ñó Các kết cuối đặc tả thuật tốn cấu trúc liệu ñược dùng làm sở cho việc thực hệ thống Các hoạt ñộng thiết kế hệ thống phần mềm lớn: Các nội dung thiết kế là: - Thiết kế kiến trúc: Xác ñịnh hệ tổng thể phần mềm bao gồm hệ quan hệ chúng ghi thành tài liệu - ðặc tả trừu tượng: ñặc tả trừu tượng cho hệ dịch vụ mà cung cấp ràng buộc chúng phải tuân thủ - Thiết kế giao diện: giao diện hệ với hệ khác ñược thiết kế ghi thành tài liệu; đặc tả giao diện khơng mơ hồ cho phép sử dụng hệ mà khơng cần biết thiết kế nội - Thiết kế thành phần: dịch vụ mà hệ cung cấp ñược phân chia cho thành phần hợp thành - Thiết kế cấu trúc liệu: thiết kế chi tiết ñặc tả cấu trúc liệu (các mơ hình giới thực cần xử lý) ñược dùng việc thực hệ thống - Thiết kế thuật tốn: thuật tốn dùng cho dịch vụ ñược thiết kế chi tiết đặc tả Q trình lặp lại cho ñến thành phần hợp thành hệ xác định ánh xạ trực tiếp vào thành phần ngơn ngữ lập trình, chẳng hạn gói, thủ tục hàm 3.1.4 Cơ sở thiết kế Phần mềm ñược chia thành thành phần có tên riêng biệt xác định địa chỉ, gọi mơ đun, ñược tích hợp ñể thỏa mãn yêu cầu vấn đề Người ta nói rằng: tính mơđun thuộc tính riêng phần mềm cho phép chương trình trở nên quản lý theo cách thơng minh Người đọc hiểu thấu phần mềm nguyên khối (như chương trình lớn gồm mơđun) ðiều dẫn ñến kết luận “chia ñể trị” dễ giải vấn đề phức tạp chia thành phần quản lý ñược Với tập hợp u cầu, nhiều mơđun có nghĩa kích cỡ mơđun nhỏ; độ phức tạp giảm chi phí cho phát triển mơđun giảm Nhưng số mơ đun tăng lên nỗ lực liên kết chúng việc làm giao diện cho mơđun tăng lên ðặc trưng dẫn ñến ñường cong tổng chi phí (nỗ lực) hình 3.2 41 Chi phí Chúng ta nên mơ đun hóa cần phải trì chi phí vùng lân cận chi phí tối thiểu Mơđun hóa cịn chưa đủ hay q mức nên tránh Một gợi ý cho kích cỡ mơđun sở mơđun đảm nhận chức Tăng chi phí Số mơ đun Hình 3.2 Tính mơđun chi phí phần mềm 3.1.5 Mô tả thiết kế Một thiết kế phần mềm mơ hình mơ tả đối tượng giới thực có nhiều thành phần mối quan hệ chúng với Việc mô tả thiết kế cần ñảm bảo thực ñược yêu cầu: - Làm sở cho việc triển khai chương trình - Làm phương tiện giao tiếp nhóm thiết kế hệ - Cung cấp đủ thơng tin cho người bảo trì hệ thống Thiết kế thường mơ tả hai mức: thiết kế mức cao (high level design) thiết kế chi tiết (low level design) Thiết kế mức cao hay thiết kế kiến trúc ra: - Mơ hình tổng thể hệ thống - Cách thức hệ thống ñược phân rã thành mơđun - Mối quan hệ (gọi nhau) mơđun - Cách thức trao đổi thơng tin mơđun (giao diện, liệu dùng chung, thơng tin trạng thái) 42 Tuy nhiên thiết kế mức cao khơng thứ tự thực hiện, số lần thực mơđun, trạng thái hoạt động bên mơđun Nội dung mơđun thể mức thiết kế chi tiết Các cấu trúc sở thiết kế chi tiết hay cịn gọi thiết kế thuật tốn là: - Cấu trúc - Cấu trúc rẽ nhánh - Cấu trúc lặp Mọi thuật tốn mơ tả dựa cấu trúc Có ba loại hình mơ tả thường sử dụng thiết kế: - Dạng văn phi hình thức: Mơ tả ngôn ngữ tự nhiên thông tin hình thức hóa thơng tin phi chức Bên cạnh cách mô tả khác, mô tả văn thường ñược bổ sung ñể làm cho thiết kế ñược ñầy ñủ dễ hiểu - Các biểu ñồ: Các biểu ñồ ñược dùng ñể thể mối quan hệ thành phần lập lên hệ thống mơ hình mơ tả giới thực Việc mơ tả đồ thị thiết kế có lợi tính trực quan cho tranh tổng thể hệ thống Trong thời gian gần ñây, người ta ñã xây dựng ñược ngơn ngữ đồ thị dành riêng cho thiết kế phần mềm với tên gọi: ngơn ngữ mơ hình hóa thống (Unified Modeling Model - UML) Tại mức thiết kế chi tiết, có số dạng biểu đồ hay ñược sử dụng flow chart, JSP, NassiưShneiderman diagrams - Giả mã (pseudo code): Hiện nay, giả mã cơng cụ ưa chuộng để mơ tả thiết kế mức chi tiết Các ngôn ngữ thuận tiện cho việc mơ tả xác thiết kế, nhiên lại thiếu tính trực quan Dưới ví dụ sử dụng giả mã: Procedure Write Name if sex = male write "Mr." else write "Ms." endif write name end Procedure Nói chung ba loại biểu diễn ñây ñều ñược sử dụng thiết kế hệ thống Thiết kế kiến trúc thường mơ tả ñồ thị (structure chart)và ñược bổ sung văn phi hình thức, thiết kế liệu lơgic thường mơ tả bảng, thiết kế giao diện, thiết kế cấu trúc liệu chi tiết, thiết kế thuật tốn thường mơ tả pseudo code 43 3.1.6 Chất lượng thiết kế Khơng có cách hay để xác ñịnh ñược thiết kế tốt Tiêu chuẩn dễ bảo trì tiêu chuẩn tốt cho người dùng Một thiết kế dễ bảo trì thích nghi với việc cải biên chức việc thêm chức Một thiết kế phải dễ hiểu việc sửa đổi có hiệu ứng cục Các thành phần thiết kế phải kết dính (cohesive) theo nghĩa tất phận thành phần phải có quan hệ logic chặt chẽ, thành phần ghép nối (coupling) với lỏng lẻo Ghép nối lỏng lẻo dễ thích nghi, nghĩa dễ sửa đổi để phù hợp với hoàn cảnh ðể xem thiết kế có tốt hay khơng, người ta tiến hành thiết lập số ñộ ño chất lượng thiết kế: - Sự kết dính (Cohesion) :Sự kết dính mơđun độ đo tính khớp lại với phần mơđun Nếu mơđun thực chức logic thực thể logic, tức tất phận mơđun tham gia vào việc thực cơng việc độ kết dính cao Nếu nhiều phận không tham gia trực tiếp vào việc chức logic mức độ kết dính thấp Thiết kế tốt độ kết dính cao Khi dễ dàng hiểu mơđun việc sửa chữa mơđun khơng (ít) ảnh hưởng tới mơđun khác Constantine Yourdon định mức kết dính theo thứ tự tăng dần sau đây: o Kết dính gom góp: công việc không liên quan với nhau, song lại bị bó vào mơđun o Kết dính logic: thành phần thực chức tương tự logic chẳng hạn vào/ra, xử lý lỗi, đặt vào mơ đun o Kết dính thời điểm: tất thành phần hoạt hóa lúc, chẳng hạn thao tác khởi tạo bó lại với o Kết dính thủ tục: phần tử mơđun ghép lại dãy điều khiển o Kết dính truyền thơng: tất phần tử mơđun thao tác liệu vào ñưa liệu o Kết dính tuần tự: mơđun, đầu phần tử ñầu vào phần tử khác o Kết dính chức năng: Mỗi phần mơđun cần thiết để thi hành chức Các lớp kết dính khơng ñược ñịnh nghĩa chặt chẽ ln xác định Một đối tượng kết dính thể thực thể đơn: tất phép tốn thực thể nằm thực thể Vậy xác định lớp kết dính là: 44 o Kết dính đối tượng: phép tốn liên quan đến thay đổi, kiểm tra sử dụng thuộc tính đối tượng, sở cung cấp dịch vụ ñối tượng - Sự ghép nối (Coupling):Ghép nối ñộ ño nối ghép với đơn vị (mơđun) hệ thống Hệ thống có nối ghép cao mơđun phụ thuộc lẫn lớn Hệ thống nối ghép lỏng lẻo mơđun độc lập tương ñối ñộc lập với dễ bảo trì Các mơ đun ghép nối chặt chẽ chúng dùng biến chung chúng trao đổi thơng tin điều khiển (ghép nối chung ghép nối ñiều khiển) Ghép nối lỏng lẻo đạt bảo đảm thơng tin cục che dấu mơđun mơđun trao đổi thơng tin thơng qua danh sách tham số (giao diện) xác định Có thể chia ghép nối thành mức từ chặt chẽ ñến lỏng lẻo sau: o Ghép nối nội dung: hai hay nhiều mơđun dùng lẫn liệu nhau, mức xấu nhất, thường xẩy ngơn ngữ mức thấp dùng liệu toàn cục hay lạm dụng lệnh GOTO o Ghép nối chung: số mơđun dùng biến chung, xẩy lỗi thao tác liệu, khó xác định lỗi mơđun gây o Ghép nối điều khiển: mơđun truyền thơng tin điều khiển để điều khiển hoạt động mơđun khác o Ghép nối dư thừa: mơđun nhận thơng tin thừa khơng liên quan trực tiếp đến chức nó, điều làm giảm khả thích nghi mơđun o Ghép nối liệu: Các mơđun trao đổi thơng tin thơng qua tham số giá trị trả lại o Ghép nối khơng có trao đổi thơng tin: mơđun thực chức độc lập hồn tồn khơng nhận tham số khơng có giá trị trả lại Ưu việt thiết kế hướng ñối tượng chất che dấu thơng tin đối tượng dẫn tới việc tạo hệ ghép nối lỏng lẻo Việc thừa kế hệ thống hướng ñối tượng lại dẫn tới dạng khác ghép nối, ghép nối ñối tượng mức cao ñối tượng kế thừa - Sự hiểu ñược (Understandability): Sự hiểu ñược thiết kế liên quan tới số ñặc trưng sau ñây: o Tính kết dính: hiểu thành phần mà khơng cần tham khảo tới thành phần khác hay không? o ðặt tên: phải tên dùng thành phần có nghĩa? Tên có nghĩa tên phản ánh tên thực thể giới thực mơ hình thành phần 45 o Soạn tư liệu: Thành phần có soạn thảo tư liệu cho ánh xạ thực thể giới thực thành phần rõ ràng o ðộ phức tạp: ñộ phức tạp thuật toán ñược dùng ñể thực thành phần nào? ðộ phức tạp cao ám nhiều quan hệ thành phần khác thành phần thiết kế cấu trúc logic phức tạp mà dính líu ñến ñộ sâu lồng cấu trúc ifưthenưelsse Các thành phần phức tạp khó hiểu, người thiết kế nên làm cho thiết kế thành phần ñơn giản tốt ða số công việc ño chất lượng thiết kế ñược tập trung vào cố gắng ño ñộ phức tạp thành phần từ ñó thu ñược vài ñộ ño dễ hiểu thành phần ðộ phức tạp phản ánh ñộ dễ hiểu, có số nhân tố khác ảnh hưởng ñến ñộ dễ hiểu, chẳng hạn tổ chức liệu kiểu cách mô tả thiết kế Các số đo độ phức tạp cung cấp số cho ñộ dễ hiểu thành phần - Sự thích nghi (Adaptability): Một thiết kế dễ bảo trì phải sẵn sàng thích nghi ñược, nghĩa thành phần chúng nên ñược ghép nối lỏng lẻo Một thành phần ghép nối lỏng lẻo theo nghĩa hợp tác với thành phần khác thông qua việc truyền thơng báo Sự thích nghi cịn có nghĩa thiết kế phải ñược soạn thảo tư liệu tốt, dễ hiểu qn o ðể có độ thích nghi hệ thống cịn cần phải phải tự chứa Muốn tự chứa cách hồn tồn hệ thống khơng nên dùng thành phần khác xác ñịnh ngoại lai Tuy nhiên, ñiều ñó lại mâu thuẫn với kinh nghiệm nói thành phần có nên dùng lại Vậy cần có cân tính ưu việt dùng lại thành phần mát tính thích nghi ñược hệ thống Một ưu việt kế thừa thiết kế hướng ñối tượng thành phần sẵn sàng thích nghi Cơ cấu thích nghi khơng dựa việc cải biên thành phần có mà dựa việc tạo thành phần thừa kế thuộc tính chức thành phần Chúng ta cần thêm thuộc tính chức cần thiết cho thành phần Các thành phần khác dựa thành phần khơng bị ảnh hưởng 3.2 3.2.1 Thiết kế hướng chức Cách tiếp cận hướng chức Thiết kế hướng chức cách tiếp cận thiết kế phần mềm thiết kế phân giải thành ñơn thể tác ñộng lẫn nhau, mà đơn thể có chức xác định rõ ràng Các chức có trạng thái cục chúng chia sẻ với trạng thái hệ thống, trạng thái tập trung chức truy cập Nhiều tổ chức ñã phát triển chuẩn phương pháp dựa phân giải chức Nhiều phương pháp thiết kế kết hợp với cơng cụ CASE 46 hướng chức Vơ khối hệ thống phát triển cách sử dụng phương pháp tiếp cận hướng chức Các hệ thống bảo trì cho tương lai xa xơi Bởi thiết kế hướng chức cịn tiếp tục sử dụng rộng rãi Trong thiết kế hướng chức năng, người ta dùng biểu đồ luồng liệu (mơ tả việc xử lý liệu), lược ñồ cấu trúc (nó cấu trúc phần mềm), mô tả thiết kế chi tiết Thiết kế hướng chức gắn với chi tiết thuật tốn chức thơng tin trạng thái hệ thống không bị che dấu Việc thay ñổi chức cách sử dụng trạng thái hệ thống gây tương tác bất ngờ ñối với chức khác Cách tiếp cận chức ñể thiết kế tốt mà khối lượng thông tin trạng thái hệ thống ñược làm nhỏ thông tin dùng chung rõ ràng 3.2.2 Biểu ñồ luồng liệu Biểu ñồ luồng liệu cách thức biến ñổi liệu vào thành liệu thông qua dãy phép biến ñổi Bước thứ thiết kế hướng chức phát triển biểu ñồ luồng liệu hệ thống Biểu đồ khơng thiết bao gồm thơng tin điều khiển nên lập tư liệu phép biến ñổi liệu Biểu ñồ luồng liệu phần hợp số phương pháp thiết kế công cụ CASE thường trợ giúp cho việc tạo biểu ñồ luồng liệu 3.2.3 Lược ñồ cấu trúc Lược ñồ cấu trúc cấu trúc thành phần theo thứ bậc hệ thống Nó phần tử biểu ñồ luồng liệu thực với tư cách thứ bậc ñơn vị chương trình Lược đồ cấu trúc dùng mơ tả chương trình nhìn thấy với thơng tin xác định lựa chọn vịng lặp Lược đồ cấu trúc dùng để trình bày tổ chức tĩnh thiết kế 3.2.4 Các từ ñiển liệu Từ ñiển liệu vừa có ích cho việc bảo trì hệ thống vừa có ích trình thiết kế Với khái niệm thiết kế, cần có từ khóa mơ tả ứng với từ khóa (entry) từ điển liệu cung cấp thơng tin khái niệm (kiểu, chức liệu ) ðôi người ta gọi mô tả ngắn chức thành phần Các từ ñiển liệu dùng ñể nối mơ tả thiết kế kiểu biểu đồ mơ tả thiết kế kiểu văn Một vài công cụ CASE cung cấp phép nối tự ñộng biểu ñồ luồng liệu từ ñiển liệu 47 3.3 3.3.1 Thiết kế hướng ñối tượng Cách tiếp cận hướng ñối tượng Thiết kế hướng ñối tượng dựa chiến lược che dấu thông tin cấu trúc vào bên thành phần Cái ngầm hiểu việc kết hợp ñiều khiển logic cấu trúc liệu ñược thực thiết kế chậm tốt Liên lạc thông qua thông tin trạng thái dùng chung (các biến tổng thể) nhất, nhờ khả hiểu ñược nâng lên Thiết kế tương ñối dễ thay ñổi thay ñổi cấu trúc thành phần khơng cần quan tâm tới hiệu ứng phụ thành phần khác Việc che dấu thơng tin thiết kế hướng đối tượng dựa nhìn hệ phần mềm ñối tượng tương tác với chức cách tiếp cận chức Các đối tượng có trạng thái riêng che dấu phép tốn trạng thái Thiết kế biểu thị dịch vụ yêu cầu với hỗ trợ mà ñối tượng có tương tác với cung cấp 3.3.2 Ba ñặc trưng thiết kế hướng ñối tượng Thiết kế hướng đối tượng bao gồm đặc trưng sau: - Khơng có vùng liệu dùng chung Các đối tượng liên lạc với cách trao đổi thơng báo - Các ñối tượng thực thể ñộc lập, dễ thay đổi tất trạng thái thông tin biểu diễn ảnh hưởng phạm vi đối tượng thơi Các thay đổi biểu diễn thơng tin thực khơng cần tham khảo tới đối tượng khác - Các đối tượng phân tán hoạt động song song ðây lý khiến cho thiết kế hướng ñối tượng ñược sử dụng rộng rãi hệ thống nhúng 3.3.3 Cơ sở thiết kế hướng ñối tượng Cơ sở thiết kế hướng ñối tượng lớp Lớp trừu tượng mô tả cho nhóm vật ðối tượng lớp thực thể (cụ thể hóa) lớp Thiết kế lớp bao gồm: - Cấu trúc liệu (thuộc tính) - Hàm, thủ tục (chức năng) - Giao diện (cung cấp khả trao ñổi liệu ñối với lớp khác, chất chức ñối tượng) 48 Việc cài ñặt giao diện yếu tố quan trọng ñể ñảm bao che dấu cấu trúc liệu Tức thiết kế nội ñối tượng ñộc lập với giao diện sửa đổi thiết kế mà khơng sợ ảnh hưởng tới đối tượng khác Các ñối tượng trao ñổi với cách truyền thơng báo Tức đối tượng yêu cầu ñối tượng khác thực chức Thơng báo bao gồm: tên đối tượng, tên phương thức, tham số Vịng đời ñối tượng hệ thống hoạt ñộng sau: - Khởi tạo: hệ thống tạo ñối tượng cách xác lập vùng liệu ñồng thời tự ñộng thực chức liên quan ñến khởi tạo ñối tượng - Hoạt ñộng: ñối tượng nhận thông báo thực chức ñược yêu cầu - Phá hủy: hệ thống giải phóng vùng nhớ ñược cấp phát sau thực tự ñộng thao tác cần thiết để hủy đối tượng Nhờ có chức khởi tạo phá hủy ñược gọi tự ñộng tự ñộng hóa ñược số cơng việc tránh nhiều sai sót lập trình quên khởi tạo liệu, quên cấp phát hay qn giải phóng vùng nhớ động - Sự kế thừa Kế thừa khái niệm quan trọng thiết kế hướng đối tượng Một lớp ñược ñịnh nghĩa dựa kế thừa nhiều lớp ñã ñược ñịnh nghĩa Kế thừa ñây bao gồm o Kế thừa cấu trúc liệu o Kế thừa chức Khả kế thừa giúp cho rút gọn chương trình nâng cao tính tái sử dụng Một chiến lược chung trước tiên tạo lớp trừu tượng (để dùng chung) tốn cụ thể tạo lớp kế thừa cách thêm thông tin ñặc thù 3.3.4 Các bước thiết kế Thiết kế hướng ñối tượng bao gồm bước sau: - Xác ñịnh lớp ñối tượng - Xác ñịnh thuộc tính cho lớp: biến lớp - Xác ñịnh hành vi (chức năng): hàm - Xác ñịnh tương tác lớp đối tượng: giao diện (thơng báo) - Áp dụng tính kế thừa: xây dựng lớp trừu tượng có thuộc tính chung, khâu đặc trưng thiết kế hướng đối tượng 49 Ví dụ, giả sử cần xây dựng lớp hình trịn, elíp đa giác Có thể thấy elip hình trịn có số thuộc tính chung tọa độ tâm, xây dựng lớp hình nón chứa thuộc tính chung Giữa hình nón đa giác lại tìm thuộc tính chung mầu nền, mầu biên , xây dựng lớp trừu tượng hình hình học chứa thuộc tính Phương pháp xác định đối tượng Xác ñịnh ñối tượng công ñoạn thiết kế quan trọng, phụ thuộc nhiều vào kinh nghiệm tốn cụ thể Có số phương pháp ñề xuất, phương pháp phân tích từ vựng “câu yêu cầu” Cụ thể danh từ câu yêu cầu ñược coi ñối tượng ñộng từ ñược coi chức Ví dụ: Với yêu cầu Phần mềm Email cung cấp cho user khả gửi thư, ñọc thư soạn thảo thư điện tử., sơ tạo ñối tượng phần mềm, user, email chức gửi, nhận, soạn thảo 3.3.5 Ưu nhược ñiểm thiết kế hướng ñối tượng Thiết kế hướng đối tượng có ưu điểm sau: - Dễ bảo trì đối tượng độc lập Các đối tượng hiểu cải biên thực thể ñộc lập Thay ñổi thực ñối tượng thêm dịch vụ khơng làm ảnh hưởng tới đối tượng hệ thống khác - Các ñối tượng thành phần dùng lại thích hợp tính độc lập chúng khả kế thừa cao - Có vài lớp hệ thống thể phản ánh quan hệ rõ ràng thực thể có thực (chẳng hạn thành phần phần cứng) với ñối tượng ñiều khiển hệ thống ðiều đạt tính dễ hiểu thiết kế Nhược điểm thiết kế hướng đối tượng khó nhận ñối tượng hệ thống Cách nhìn tự nhiên ñối với nhiều hệ thống cách nhìn chức 3.3.6 Quan hệ thiết kế lập trình hướng ñối tượng Thiết kế hướng ñối tượng chiến lược thiết kế, không phụ thuộc vào ngôn ngữ thực cụ thể Các ngơn ngữ lập trình hướng ñối tượng có khả bao gói ñối tượng, kế thừa làm cho việc thực thiết kế hướng đối tượng an tồn đơn giản Một thiết kế hướng đối tượng thực ngôn ngữ thủ tục kiểu PASCAL C (khơng có đặc điểm bao gói vậy) Ada khơng phải ngơn ngữ lập trình hướng đối tượng khơng trợ giúp thừa kế lớp, 50 lại thực ñối tượng Ada cách sử dụng gói nhiệm vụ (tasks), Ada dùng để mơ tả thiết kế hướng ñối tượng Tuy nhiên, phải nhấn mạnh mơ tả thiết kế hướng đối tượng ngôn ngữ truyền thống kiểm tra ñược tuân thủ tư tưởng hướng ñối tượng ngôn ngữ này, nghĩa người phát triển truy cập đến cấu trúc liệu vật lý đối tượng việc làm vô nghĩa khái niệm che dấu thông tin Việc chấp nhận thiết kế hướng ñối tượng chiến lược hữu hiệu dẫn ñến phát triển rộng rãi phương pháp thiết kế hướng ñối tượng ngơn ngữ lập trình hướng đối tượng 3.3.7 Quan hệ thiết kế hướng ñối tượng hướng chức Có nhiều quan niệm khác quan hệ thiết kế hướng ñối tượng thiết kế hướng chức Có người cho rằng, hai chiến lược thiết kế hỗ trợ lẫn nhau, cụ thể - DFD dưa mơ hình thuộc tính chức - Luồng giao tác ñưa hướng dẫn tương tác đối tượng (thơng báo) - Mơ hình ERD đưa hướng dẫn xây dựng đối tượng Thêm nữa, thiết kế nội lớp ñối tượng có nhiều điểm tương đồng với thiết kế hướng chức Một quan ñiểm khác cho thiết kế hướng ñối tượng thiết kế hướng chức hai cách tiếp cận hoàn toàn khác nhau, khái niệm che dấu thơng tin, kế thừa đặc trưng quan trọng chất thiết kế hướng đối tượng khơng dứt bỏ cách nhìn thiết kế hướng chức khơng thể khai thác hiệu ñặc trưng 3.4 Thiết kế giao diện người sử dụng Thiết kế hệ thống máy tính bao gồm phổ rộng công việc từ thiết kế phần cứng cho ñến thiết kế giao diện người sử dụng Giao diện hệ thống thường tiêu chuẩn so sánh ñể phán xét hệ thống Giao diện ñược thiết kế gây nhầm lẫn cho người sử dụng, khiến cho họ không sử dụng ñược chức cần thiết trường hợp xấu thực thao tác nguy hiểm phá hủy thông tin cần thiết Tầm quan trọng giao diện cịn xem xét hai yếu tố: 51 - Khía cạnh nghiệp vụ: người dùng thơng qua giao diện để tương tác với hệ thống, ñây khâu nghiệp vụ thủ công ñó ñược thiết kế tốt nâng cao tốc ñộ xử lý công việc dẫn tới hiệu kinh tế cao - Khía cạnh thương mại: sản phẩm bán hàng loạt, giao diện ñược thiết kế tốt (dễ sử dụng, ñẹp) gây ấn tượng với khách hàng yếu tố khách hàng chọn mua sản phẩm Ngoài yếu tố hiệu cơng việc, đẹp, dễ học dễ sử dụng, thiết kế giao diện đại nên có tính độc lập cao với khối chương trình xử lý liệu ðối với nhiều hệ thống, giao diện phận có tầm quan trọng chủ chốt có yêu cầu sửa đổi thường xun Do đó, để tiện cho việc sửa đổi, giao diện nên thiết kế có tính mơđun hóa cao nên có độ độc lập tối ña với khối chương trình xử lý liệu ðiều dẫn đến khả xây dựng nhiều giao diện khác cho ñối tượng sử dụng khác hay chạy hệ thống khác Có hai dịng giao diện là: - Giao diện dịng lệnh: loại giao diện đơn giản nhất, thường ñược thiết kế gắn chặt với chương trình có tính di chuyển cao (tương đương với chương trình) Giao diện dịng lệnh phù hợp với ứng dụng túy xử lý liệu, ñối với chương trình mà ñầu ñầu vào chương trình khác Giao diện dịng lệnh gọn nhẹ, dễ xây dựng thường khó học, khó sử dụng phù hợp với người dùng chuyên nghiệp ứng dụng ñặc thù - Giao diện ñồ họa: sử dụng cửa sổ, menu, icon cho phép người dùng truy cập song song đến nhiều thông tin khác nhau; người dùng thường tương tác cách phối hợp bàn phím chuột; giao diện ñồ họa dễ học, dễ sử dụng trở nên thơng dụng có độ chuẩn hóa cao Nhìn khía cạnh độc lập với khối chương trình xử lý, có số cách thức xây dựng giao diện khác nhau: - Giao diện ñồ họa (GUI) truyền thống: giao diện ñồ họa ñược thiết kế có độ liên kết cao với chương trình (được xây dựng ngôn ngữ, công cụ ), hầu hết chương trình máy tính cá nhân sử dụng loại giao diện - X protocol: giao diện ñồ họa sử dụng giao thức X protocol, phổ biến máy Unix/Linux Loại giao diện có ưu diểm hoạt động độc lập với khối chương trình cịn lại, tức ta chạy giao diện máy tính phần xử lý bên lại hoạt ñộng máy khác ðáng tiếc phương thức chưa phổ biến máy tính cá nhân (chạy hệ điều hành MS Windows) 52 - Client/server: cách tiếp cận ñể hướng tới tính ñộc lập khả chuyển giao diện xây dựng giao diện chương trình client, tương tác với khối chương trình xử lý (server) thơng qua giao thức trao đổi thơng tin mạng (TCP/IP) - Web based: cách thức xây dựng giao diện phổ biến dựa web, sử dụng trình duyệt web để trao dổi thơng tin với server Tuy có số nhược điểm an tồn thơng tin tốc độ với tính độc lập hồn tồn với phần xử lý, độ chuẩn hóa cao khả sẵn có hầu hết thiết bị nối mạng, phương thức ñang ñược ứng dụng rộng rãi Thiết kế giao diện khác với thiết kế chức khác phần mềm ñiểm hướng tới người sử dụng, cần người sử dụng đánh giá Các cơng đoạn thiết kế khác thiết kế liệu, thiết kế thuật tốn che dấu hoạt động kỹ thuật chi tiết khỏi khách hàng Ngược lại, khách hàng (người dùng tiềm ẩn) nên tham gia vào trình thiết kế giao diện Kinh nghiệm khả họ cần phải ñược tính ñến thiết kế giao diện 3.4.1 Một số vấn ñề thiết kế Trong thiết kế giao diện, cần ý tới số vấn ñề sau: - Thời gian phản hồi Chúng ta cần quan tâm tới hai loại thời gian o Thời gian ñáp ứng trung bình: thời gian trung bình mà hệ thống phản hồi ñối với yêu cầu người dùng Thời gian ñể sinh “kết thực sự” yêu cầu phụ thuộc vào chất yêu cầu, thuật tốn, tốc độ máy tính, nhiên cần quan tâm khía cạnh tâm lý người dùng đợi q lâu mà khơng nhận thơng tin họ nghĩ có vấn đề tiến hành thao tác ngồi mong ñợi lặp lại thao tác hay dừng hệ thống o ðộ biến thiên thời gian: ñộ biến thiên thời gian ñại lượng cần quan tâm Nếu độ biến thiên lớn, ví dụ thao tác thường đáp ứng giây mà có trường hợp phải giây hồn thành làm cho người dùng đưa thao tác sai - Các tiện ích Một giao diện tốt cần có tiện ích để trợ giúp người sử dụng Có loại tiện ích sau o Tích hợp: tiện ích tích hợp vào giao diện nút Help cung cấp thuyết minh thao tác o Phụ thêm: tiện ích phụ thêm tài liệu trực tuyến o Macro: số chương trình cịn cho phép người dùng tự động hóa số thao tác lệnh kiểu macro - Thơng báo Các thơng báo hệ thống đưa cần 53 o Có nghĩa: thơng báo cần có nghĩa người dùng o Ngắn gọn: thơng báo cần ngắn gọn ñi vào chất vấn ñề, ñặc biệt ñối với kiểu giao diện dòng lệnh o Có tính xây dựng: thơng báo nên có tính xây dựng ñưa nguyên nhân hướng khắc phục 3.4.2 Một số hướng dẫn thiết kế Dưới ñây số yếu tố mà giao diện tốt nên có: - Hướng người dùng: đối tượng người dùng phải rõ ràng, giao diện nên ñược thiết kế có tính đến lực, thói quen loại ñối tượng ñó - Có khả tùy biến cao: giao diện nên có khả tùy biến cao để phục vụ cho cá nhân có cách sử dụng khác nhau, mơi trường hoạt động khác Các phần mềm hệ UNIX với giao diện theo chuẩn X protocol thường thiết kế có độ tùy biến cao - Nhất quán: biểu tượng, thông báo, cách thức nhập liệu phải quán nên tn theo chuẩn thơng thường - An tồn: nên có chế độ xác nhận lại thao tác nguy hiểm (như xóa liệu) nên có khả phục hồi trạng thái cũ (undo) - Dễ học, dễ sử dụng: giao diện ln cần thiết kế hướng tới tính dễ học, dễ sử dụng, tức khơng địi hỏi người dùng phải có lực đặc biệt Ví dụ khơng cần nhớ nhiều thao tác, khơng địi hỏi phải thao tác nhanh, thơng tin hình dễ đọc Một cách tốt ñể xây dựng giao diện dễ học dễ sử dụng tuân theo chuẩn giao diện thông dụng 3.5 Tổng kết Thiết kế lõi công nghệ phần mềm Trong thiết kế người ta phát triển, xét duyệt làm tư liệu cho việc làm mịn dần chi tiết thủ tục, cấu trúc chương trình, cấu trúc liệu Thơng qua thiết kế xét duyệt, thẩm định chất lượng phần mềm Tính mơđun (trong chương trình liệu) khái niệm trừu tượng làm cho người thiết kế có khả đơn giản hóa dùng lại thành phần phần mềm Việc làm mịn ñưa chế ñể biểu diễn tầng chi tiết chức Cấu trúc chương trình liệu đóng góp cho quan ñiểm tổng thể kiến trúc phần mềm, thủ tục lại ñưa chi tiết cần thiết cho việc cài đặt thuật tốn Che dấu thơng tin ñộc lập chức ñưa trực cảm để đạt tới tính mơđun có hiệu Thiết kế phần mềm xem xét theo cách nhìn kỹ thuật theo cách nhìn quản lý dự án Theo quan ñiểm kỹ thuật, thiết kế bao gồm hoạt ñộng: thiết kế 54 liệu, thiết kế kiến trúc, thiết kế thủ tục thiết kế giao diện Theo quan điểm quản lý, thiết kế tiến hóa từ thiết kế sơ sang thiết kế chi tiết Ký pháp thiết kế, ñi kèm với khái niệm lập trình có cấu trúc làm cho người thiết kế biểu diễn ñược chi tiết thủ tục theo cách thức làm thuận tiện cho việc dịch sang mã chương trình Chúng ta sử dụng ký pháp đồ họa, bảng ngơn ngữ mơ tả Cịn nhiều phương pháp thiết kế phần mềm quan trọng thiết kế hướng chức năng, hướng ñối tượng Những phương pháp này, ñược kết hợp với tảng ñã trình bày tạo nên sở cho cách nhìn ñầy ñủ thiết kế phần mềm 55 ... 11 4 8.7 Phân tích yêu cầu 11 5 8.8 Thiết kế hệ thống 11 5 TÀI LIỆU THAM KHẢO 11 6 v CHƯƠNG PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM Công nghệ phần mềm hay kỹ nghệ. .. tiết Mô tả yêu cầu 3 .1 Yêu cầu chức Mô tả chi tiết yêu cầu chức 3 .1. 1 Yêu cầu chức 3 .1. 1 .1 Giới thiệu 3 .1. 1.2 Dữ liệu vào 3 .1. 1.3 Xử lý 3 .1. 1.4 Kết 3 .1. 2 Yêu cầu chức 3 .1. n Yêu cầu chức n 3.2... I CHƯƠNG PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM 1. 1 Tổng quan khái niệm Phần mềm (software) 1. 2 ðặc ñiểm phần mềm 1. 3 Phân loại phần mềm .2 1. 3 .1 Theo phương

Ngày đăng: 08/05/2021, 19:12

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan