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 465 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

ðẠ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ị 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 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 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ý, toá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ờ ñây 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 toá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 chưa thật thích hợp với ña số người dùng máy tính, người 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ữ ñược gọi ngôn ngữ lập trình bậc cao Chương trình máy tính thường ñược tạo người, người ñược gọi lập trình viên, nhiên tồn chương trình ñược 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 hoà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 ñược 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, ñượ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 ñây 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 ñều ñượ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 ñược 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 ñược 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 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ó yê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 ñi 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 ñược 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 ñược 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 toá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 ñược 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 toán: thuật toán ñược dùng cho dịch vụ ñược thiết kế chi tiết ñược ñặc tả Quá trình ñược lặp lại cho ñến thành phần hợp thành hệ ñược xác ñịnh ñều á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 ñược ñị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ý ñược 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 yê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 chưa ñủ hay mức ñều 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 ñược 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 ñược 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 ñược thể mức thiết kế chi tiết Các cấu trúc sở thiết kế chi tiết hay gọi thiết kế thuật toán là: - Cấu trúc - Cấu trúc rẽ nhánh - Cấu trúc lặp Mọi thuật toán ñều mô tả dựa cấu trúc Có ba loại hình mô tả thường ñược 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 ñược 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ụ ñượ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 ñây 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 ñược 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 ñược 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 toán thường ñược 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 ñó ñều 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 ñược 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, ñược ñặ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 ñược bó lại với o Kết dính thủ tục: phần tử môñun ñược 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 ñều 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ẽ luôn xác ñịnh ñược Một ñối tượng kết dính thể thực thể ñơn: tất phép toán thực thể ñó ñều 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 toán ñều 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 ñược 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 ñược bảo ñảm thông tin cụ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, ñây mức xấu nhất, thường xẩy ñối với 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 ñược 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 trao ñổi thông tin: môñun thực chức ñộc lập hoàn toàn không nhận tham số 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 ñược 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 ñược dùng thành phần ñó ñều có nghĩa? Tên có nghĩa tên phản ánh tên thực thể giới thực ñược mô hình thành phần ñó 45 o Soạn tư liệu: Thành phần có ñượ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 ñược (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 có nghĩa thiết kế phải ñược soạn thảo tư liệu tốt, dễ hiểu quán o ðể có ñộ thích nghi hệ thống cần phải phải tự chứa Muốn tự chứa cách hoàn toàn hệ thống không nên dùng thành phần khác ñượ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 ñược 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ơ cấu thích nghi ñược 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ế ñược phân giải thành ñơn thể tác ñộng lẫn nhau, mà ñơn thể có chức ñượ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 ñều truy cập ñược 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 ñều 46 hướng chức Vô khối hệ thống ñã ñược 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 ñó ñược bảo trì cho tương lai xa xôi Bởi thiết kế hướng chức ñược 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 toá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 ñược thực với tư cách thứ bậc ñơn vị chương trình Lược ñồ cấu trúc ñược dùng mô tả chương trình nhìn thấy ñược với thông tin xác ñịnh lựa chọn vòng lặp Lược ñồ cấu trúc ñượ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 ñược che dấu phép toán trạng thái ñó Thiết kế biểu thị dịch vụ ñược 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 ñó Các thay ñổi biểu diễn thông tin ñược 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 ñược nhiều sai sót lập trình quên khởi tạo liệu, quên cấp phát hay quên 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 ñược 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) ñối với toá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, ñây 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 toán cụ thể Có số phương pháp ñược ñề 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 ñược 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 ñược 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 toàn ñơn giản Một thiết kế hướng ñối tượng ñược thực ngôn ngữ thủ tục kiểu PASCAL C (không có ñặc ñiểm bao gói vậy) Ada 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 ñược 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 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 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: ñối vớ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 xuyên Do ñó, ñể tiện cho việc sửa ñổi, giao diện nên ñược 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 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 toàn thông tin tốc ñộ với tính ñộc lập hoàn toà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 toá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 toá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 lâu mà không nhận ñược thông tin họ nghĩ có vấn ñề tiến hành thao tác 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 ñược ñáp ứng giây mà có trường hợp phải giây hoà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 ñược 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 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 ñối với 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 ñược 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 tuân theo chuẩn thông thường - An toàn: nên có chế ñộ xác nhận lại ñối vớ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 cần ñược 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 ñược 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 toá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 ñược 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 [...]... dạng phần mềm ñặc biệt là phần mềm phục vụ công nghệ phần mềm ðó là các phần mềm như chương trình dịch, phần mềm gỡ rối, các công cụ hỗ trợ phân tích thiết kế (CASE) Các phần mềm này có thể xuất hiện dưới dạng phần mềm máy tính cá nhân, phần mềm hệ thống hoặc là phần mềm nghiệp vụ 1. 5 1. 5 .1 Sơ lược về quá trình tạo phần mềm Về mặt thiết kế Tùy theo mức ñộ phức tạp của phần mềm làm ra, người thiết kế phần. .. 1. 1 Năng lực biểu diễn của ngôn ngữ Ngôn ngữ Assembly C FORTRAN 77 COBOL 85 Ada 83 C++ Ada 95 Java LOC/FP 320 12 8 10 5 91 71 56 55 55 20 Visual Basic 1. 9 35 Cái nhìn chung về công nghệ phần mềm Tiến trình phát triển công nghệ phần mềm chứa ba giai ñoạn chính bất kể mô hình công nghệ phần mềm ñược chọn lựa Ba giai ñoạn này là xác ñịnh, phát triển và bảo trì, ñược gặp phải trong mọi dự án phát triển phần. .. của kỹ nghệ phần mềm và nêu ra nhiều vấn ñề cần ñược giải quyết trong thập niên tới ðề án Feyerabend có ý ñịnh tìm hiểu tương lai của kỹ nghệ phần mềm qua tìm kiếm và xuất bản các ý kiến sáng tạo 1. 11 Tổng kết Phần mềm ñã trở thành phần tử chủ chốt của các hệ thống máy tính Phát triển phần mềm ñã tiến hóa từ xây dựng một công cụ xử lý thông tin thành một ngành công nghiệp Phần mềm là phần tử lôgíc cho... c Phần lớn phần mềm ñều ñược xây dựng từ ñầu, ít khi ñược lắp ráp từ thành phần có sẵn - Phần mềm không có danh mục các thành phần cố ñịnh như phần cứng - Phần mềm thường ñược ñặt hàng theo một ñơn vị hoàn chỉnh, theo yêu cầu riêng của khách hàng - Phần mềm ít khi có thể lắp ráp theo một khuôn mẫu có sẵn Yêu cầu với phần mềm thay ñổi theo môi trường cụ thể mà ở ñó nó ñược xây dựng Môi trường của phần. .. và năng lực của phần cứng ñã vượt xa khả năng xây dựng phần mềm ñể có thể sử dụng ñược các tiềm năng của nó Tất cả các khó khăn và thách thức nêu trên ñã dẫn ñến việc chấp nhận thực hành công nghệ phần mềm ñể có thể tạo nhanh các phần mềm có nhất lượng ngày một cao, có quy mô và số lượng ngày một lớn và có những tính năng tương ứng với tiềm năng phần cứng 9 1. 7 1. 7 .1 Công nghệ phần mềm ðịnh nghĩa Một... công cụ hỗ trợ máy tính về kỹ thuật phần mềm có thể ñược dùng ñể giúp trong một số thao tác Có 4 thao tác là nền tảng của hầu hết các quá trình phần mềm là: - ðặc tả phần mềm: Các chức năng của phần mềm và ñiều kiện ñể nó hoạt ñộng phải ñược ñịnh nghĩa - Sự phát triển phần mềm: ðể phần mềm ñạt ñược ñặc tả thì phải có quá trình phát triển này - ðánh giá phần mềm: Phần mềm phải ñược ñánh giá ñể chắc chắn... ñầu về công nghệ phần mềm do Fritz Bauer nêu ra là: Việc thiết lập và sử dụng các nguyên lý công nghệ ñúng ñắn ñể thu ñược phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực Công nghệ phần mềm là một quá trình gồm một loạt các bước chứa ñựng 3 yếu tố chủ chốt: - Phương pháp - Công cụ - Thủ tục Các yếu tố này giúp người quản lý kiểm soát ñược tiến trình phát triển phần mềm, ... tiến hóa của phần mềm: Phần mềm phải tiến hóa ñể thỏa mãn sự thay ñổi các yêu cầu của khách hàng Sau ñây, chúng ta sẽ xem xét một số cách tiếp cận (còn gọi là mô hình hay khuôn cảnh) cơ bản trong tiến trình phát triển phần mềm 1. 8 .1 Mô hình vòng ñời cổ ñiển Dưới ñây mô tả công nghệ phần mềm ñược tiến hành theo mô hình vòng ñời cổ ñiển, ñôi khi còn ñược gọi là mô hình thác nước (hình 1. 1) Mô hình này... tác chủ yếu với phần cứng máy tính - Phục vụ nhiều người dùng - Cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài b Phần mềm thời gian thực Phần mềm ñiều phối, phân tích hoặc kiểm soát các sự kiện thế giới thực ngay khi chúng xuất hiện ñược gọi là phần mềm thời gian thực ðiển hình là các phần mềm ñiều khiển các thiết bị tự ñộng Phần mềm thời gian thực bao gồm các thành tố: - Thành phần thu thập dữ... hành, ngoại vi) ñể phát triển phần mềm có thể sẽ thay ñổi Bảo trì thích nghi thực hiện việc sửa ñổi phần mềm ñể thích hợp với những thay ñổi môi trường ngoài - Nâng cao: Khi phần mềm ñược dùng, khách hàng/người dùng sẽ nhận ra những chức năng phụ sẽ có lợi Bảo trì hoàn thiện mở rộng phần mềm ra ngoài các yêu cầu chức năng gốc của nó 1. 10 Hướng tương lai của công nghệ phần mềm Lập trình ñịnh dạng và các ... 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... 17 1. 8.6 Tổ hợp mô hình 19 1. 8.7 Tính khả thị 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

Ngày đăng: 08/04/2016, 20:04

Từ khóa liên quan

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

Tài liệu liên quan