Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
365,96 KB
Nội dung
Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Phương pháp hướng đối tượng q trình phát triển hệ thống phần mềm Bởi: Đồn Văn Ban Giới thiệu Thách thức lớn loài người kỷ 21 hỗn độn mức độ phức tạp hầu hết lĩnh vực sống Khoa học tính tốn, tin học đóng vaitrị quan trọng việc tăng thêm trí tuệ, khoa học cho người nhằm giải vấn đề phức tạp hoạt động Nền kinh tế chúngta kỷ phải chuyển sang kinh tế tri thức, nghĩa đổi thay đổi, khác hẳn với kinh tế dựa vào vật chất Để hiểu, để khống chế độphức tạp vấn đề đặt kinh tế tri thức từ đưa giải pháp để giải chúng phải có phương pháp khoa học vàđúng đắn, phù hợp với qui luật xã hội tự nhiên Bên cạnh việc nghiên cứu phương pháp thích hợp loại hệ thống, cần tìm hiểu bộphận chúng để mơ hình hố xác định q trình hình thành hệ thống Như Pascal khảng định “Khơng thể hiểu phận khơng hiểu tồn thể khơng thể hiểu tồn thể khơng hiểu phận” Do vậy, nhiệm vụcủa ngành khoa học nghiên cứu trình, qui luật tự nhiên, tính chất hành vi hệ thống để mơ hình hố chúng đề xuất phương pháp để giải vấn đề xảy hoạt động người cho hiệu Nhiệm vụ công nghệ thông tin nói chung, cơng nghệ phần mềm nói riêng nghiên cứu mơ hình, phương pháp cơng cụ để tạo hệ thống phần mềm chất lượng cao phạm vi hạn chế tài nguyên nhằm đáp ứng nhu cầu thường xuyên thay đổi khách hàng, giải vấn đề phức tạp đặtra thực tế Trước năm 60, chưa định hình phương pháp rõ rệt cho trình phát triển phần mềm [19, 35] Người ta xây dựng hệ thống phần mềm tương đối tuỳ tiện, theo sở thích kinh nghiệm cá nhân Từ năm 70 tới nay, nhiềumơ hình, phương pháp phát triển phần mềm đời Mỗi phương pháp có ưu, nhược điểm riêng, ưa chuộng nơi này, số lĩnh vực lại 1/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm khơng ưa chuộng nơi khác Sự đa dạng phong phú phương pháp có nghĩa có khơng thống nhất, khơng chuẩn hố Tuy nhiên, trải qua thời gian, số phương pháp tỏ có sức sống dẻo dai, áp dụng rộng rãi thực tế Trong số phải kể trước hết phương pháp có tên chung phương pháp có cầu trúc [7, 9, 19] Những phương pháp thống cách tiếp cận, hướng thủ tục hướng tư (có cấu trúc xuống), phương pháp lại đề cập đến phương diện trình phát triển phần mềm Do vậy, người ta thường sử dụng số phương pháp liên hoàn, bổ sung cho đề án phát triển phần mềm phức tạp Ngày chưa lạc hậu, phát huy tác dụng tốt cho hệ thống có cấu trúc với liệu tương đối Nhưng phong phú phương pháp luận đa dạng biểu diễn khái niệm (các ký hiệu khác nhau, không thống nhất) dẫn tới khó đưa qui trình thống cho trình phát triển phần mềm Mặt khác, nhiều vấn đề phức tạp xuất hiện, khơng u cầu tính tốn lớn, xử lý phân tán, thường xuyên thay đổi yêu cầu mà đòi hỏi phải quản lý với nhiều loại liệu khác nhau, liệu đa phương tiện, liệu âm thanh, hình ảnh, v.v Từ năm 90, xuất trào lưu mới, mãnh liệt: đời phương pháp hướng đối tượng [4, 5, 18, 21, 24] Thay cách tiếp cận dựa vào chức năng, nhiệm vụ hệ thống phương pháp có cấu trúc nêu trên, phương pháp hướng đối tượng lại dựa vào thực thể (các đối tượng) Cách tiếp cận hướng đối tượng đặt trọng tâm vào việc xây dựng lý thuyết cho hệ thống tổng qt làmơ hình khái niệm sở Hệ thống xem tập đối tượng tác động với sở truyền thông điệp để thực thi nhiệm vụ đặt hệ thống đó.Cách tiếp cận phù hợp với cách quan sát quan niệm giới xung quanh tạo công cụ mới, hữu hiệu để phát triển hệ thống có tính mở, dễ thay đổi theo yêu cầu người sử dụng, đáp ứng tiêu chuẩn phần mềm theo yêu cầu công nghệ thông tin đại, giải vấn đề phức tạp thực tế đặt kỷ 21 Một điều quan trọng công nghệ phần mềm khái niệm mơ hình hệ thống hướng đối tượng, bước phát triển đặc tả thực theo qui trình thống [2, 21] với hệ thốngký hiệu chuẩn, ngơn ngữ mơ hình hố hợp UML (Unified Modeling Language) [3, 10], hỗ trợ phần mềm công cụ Rational Rose[17, 22] Những công cụ hỗ trợ hiệu cho giai đoạn phân tích, thiết kếvà lập trình hướng đối tượng Giới thiệu hệ thống phần mềm Theo từ điển Larousse, “Tin học tập hợp ngành khoa học, kỹ thuật, kinh tế - xã hội vận dụng vào việc xử lý thông tin tự động hố” Nếu vậy, định nghĩa hệ thống tin học hệ thống có mục đích xử lý thơng tin có tham gia máy tính Sự tham gia máy tính hệ thống tin học nhiều mức độkhác nhau: 2/28 Phương pháp hướng đối tượng q trình phát triển hệ thống phần mềm • Mức thấp: máy tính sử dụng để giải số công việc đơn lẻ, soạn thảo cơng văn, báo cáo, bảng biểu thống kê, hố đơn, chứng từ, bảng tính lương, v.v • Mức trung bình: máy tính với người cộng tác, phân cơng với để thực qui trình quản lý phức tạp, ví dụ, hệ thống thơng tin quản lý hành nhà nước, dịch vụ cơng, hệ thống điều hành tác nghiệp xây dựng Chương trình Cải cách hành chính, Đề án 112 Chính phủ giai đoạn 2001 – 2005, v.v • Mức cao: máy tính đóng vai trị chủ chốt q trình xử lý thơng tin, người khơng can thiệt trực tiếp vào trình mà có nhiệm vụ cung cấp thơng tin đầu vào cho hệ thống nhận kết từ máy tính chương trình điều khiển chuyến bay tàu vũ trụ, chương trình điều khiển trình sản xuất tự động, vấn đề trí tuệ nhân tạo, v.v Hệ thống tin học (phần mềm) vậy, xem tổ hợp phần cứng, phần mềm có quan hệ qua lại với nhau, hoạt động hướng tới mục tiêu chung thông qua việc nhận liệu đầu vào (Input) sản sinh kết đầu (Output) thường dạng thông tin khác nhờ q trình xử lý, biến đổi có tổ chức Một cách hình thức định nghĩa phần mềm [13, 19] bao gồm thành phần sau: • Hệ thống câu lệnh (chương trình) thực tạo hoạt động cho kết theo yêu cầu, • Các cấu trúc liệu làm cho chương trình thực thao tác, xử lý cho thơng tin cần thiết, • Các tài liệu mô tả thao tác cách sử dụng hệ thống Các đặc trưng hệ thống Hệ thống thông tin giống hệ thống khác có đặc trưng sau: Mọi hệ thống có tính thể hố đặc tính thể thơng qua: • Phạm vi qui mô hệ thống xác định thể thống hệ thống không thay đổi điều kiện định Khi điều kiện khơng cịn đảm bảo hệ thống phải biến đổi theo • Tạo đặc tính chung để thực nhiệm vụ hay nhằm đạt mục tiêu chung mà phận riêng lẻ thực 2.Trong hỗn độn, phức tạp giới xung quanh, hệ thống tạo phát triển phải có tính tổ chức, có thứ bậc Nghĩa là: 3/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm • Mọi hệ thống ln hệ thống hệ thống lớn môi trường lại bao gồm hệ thống (các thành phần) nhỏ • Giữa thành phần hệ thống có xếp theo quan hệ thứ bậc hay trình tự định Mọi hệ thống có cấu trúc: Chính cấu trúc hệ thống định chế vận hành hệ thống mục tiêu mà cần đạt Cấu trúc hệ thống thể bởi: • Các phần tử xếp theo trật tự để cấu thành hệ thống • Mối quan hệ thành phần liên quan chủ yếu đến loại hình, số lượng, chiều, cường độ, v.v Những hệ thống có cấu trúc chặt thường gọi hệ thống có cấu trúc Cấu trúc hệ thống quan trọng, định tính chất hệ thống Kim cương than đá cấu tạo từ phân tử các-bon, khác cấu trúc nên: kim cương vô rắn chắc, cịn tham đá khơng có tính chất Sự thay đổi cấu trúc tạo đặc tính (sức trồi mới, hay cịn gọi đột biến) hệ thống vượt ngưỡng dẫn tới việc phá vỡ hệ thống cũ Công nghệ biến đổi gen: làm thay đổi cấu trúc tế bào sinh học Những nguyên lý di truyền biến đổi gen công nghệ sinh học nghiên cứu ứng dụng công nghệ thông tin Mọi hệ thống biến đổi theo thời gian khơng gian: • Hệ thống có đời sống, từ lúc khai sinh đến lúc bị phế bỏ Các hệ thống phải thay đổi cho phù hợp với điều kiện thực tế theo thời gian không gian, nghĩa muốn tồn phát triển phải biến đổi cho phù hợp với mơi trường xung quanh theo qui luật tiến hoá tự nhiên (Darwin) Sự khác chủ yếu tốc độ khả nhận biết thay đổi • Mọi thay đổi ln có mối liên hệ ngược (feedback) hệ thống chịu tác động qui luật “nhân - quả” Hệ thống đánh giá theo nhiều tiêu chí khác [7, 13, 19, 24] chưa có hệ thống tiêu chí chuẩn để đánh giá cho sản phẩm phần mềm Ở quan tâm đến số tính chất quan trọng sản phẩm phần mềm Một sản phẩm công nghệ phần mềm nay, ngồi tính chất chung hệ thống nêu phải có tính chất sau: 4/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm • Tính tiện dụng (usability): sản phẩm phải dễ sử dụng tiện lợi cho người dùng, hỗ trợ để thực công việc tốt Muốn đạt mục đích phần mềm phải có giao diện thân thiện, phù hợp, có đầy đủ tài liệu mơ tả có hỗ trợ kịp thời cho người sử dụng • Khả bảo hành trì hoạt động (Maintainability): Hệ thống phải có khả cập nhật, đễ thay đổi, có khả mở rộng để thực u cầu thay đổi khách hàng • Tính tin cậy (Dependability): Tính tin cậy phần mềm khơng thể khả thực nhiệm thiết kế khả đảm bảo an toàn, an ninh liệu Hệ thống phải thực bình thường có kiện bất thường xảy • Tính hiệu (Efficiency): Phần mềm khơng gây lãng phí tài ngun nhớ, xử lý,các thiết bị ngoại vi, thời gian sử dụng, v.v Phân loại hệ thống phần mềm Nếu xét tới nội dung thông tin xử lý tính chất mơi trường hệ thống, người ta phân hệ thống phần mềm theo loại khác [24, 35] sau: Hệ thống thông tin quản lý (Management Information System - MIS): hệ thống cung cấp thông tin cần thiết cho công tác quản lý điều hành doanh nghiệp, quan, hay nói rộng cho tổ chức Hạt nhân hệ thống thông tin quản lý sở liệu (CSDL) chứa thơng tin phản ánh tình trạng thời kết hoạt động sản xuất, kinh doanh tổ chức Hệ thống thu thập thơng tin từ môi trường hoạt động doanh nghiệp, kết hợp với thơng tin có CSDL để kết xuất thông tin mà nhà quản lý cần, đồng thời thường xuyên cập nhật liệu để giữ cho thông tin CSDL phản ánh thực trạng thời tổ chức Hệ thống thơng tin quản lý thường phân loại theo hai mức: • Mứcthấp,hay cịngọimứctácnghiệp,hệ thống có nhiệm vụ in bảng biểu, chứng từ giao dịch theo biểu mẫu cách xử lý thủ công (bằng tay) làm Đó thường hệ thống xử lý liệu hệ thống đơn hàng, quản lý nhân sự, quản lý thiết bị, vật tư, kế toán tài vụ, v.v • Mức cao, hay cịn gọi mức điều hành, hệ thống phải đưa thông tin có tính chất chiến lược kế hoạch giúp cho người lãnh đạo đưa định đắn công tác điều hành hoạt động đơn vị, ví dụ, hệ thống dịch vụ cơng, hệ thống thông tin tổng hợp, trang thông tin điều hành tác nghiệp Tỉnh / Thành xây dựng Đề án 112 Chính phủ [36, 37, 38] Những hệ thống phát triển thành hệ hỗ trợ định (Decision Support System – DSS) Đặc điểm hệ hỗ trợ định bên cạnh CSDL cịn có sở mơ hình, phương pháp mà lựa chọn để vận dụng lên liệu cho lời giải, cho 5/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm kết theo yêu cầu đa dạng người dùng đặt tình chọn lựa định Các hệ thống kỹ thuật (Technical Systems), hệ thống tự động hố sản xuất hay cịn gọi hệ thống điều khiển trình Đó hệ thống nhằm xử lý điều khiển tự động trình vận hành thiết bịkỹ thuật sản xuất, viễn thông, quân sự, q trình cơng nghiệp, v.v Những hệ thống thường phải làm việc theo phương thức xử lý thời gianthực Về mặt kiến trúc vật lý, bên cạnh phần mềm, hệ thống bao gồm nhiều loại thiết bị tin học đa dạng: từ CPU phổ dụng, đến máy tính chun dụng, ơtơmát lập trình được, điều khiển logic lập trình (Programmable Logic Controller – PLC), đường truyền, cácbộ cảm biến, chuyển đổi tín hiệu A/N hay N/A Các hệ thống nhúng thời gian thực (Embedded Real_time System) Hệ thống thực thiết bị cứng đơn giản nhúng vào thiết bị khác như: mobile phone, hệ thống hướng dẫn lái xe ô tô, hệ thống điều khiển dụng cụ dân dụng, v.v Các hệ thống thường thực lập trình mức thấp, thường thực xử lý theo thời gian thực Trong hệ này, thường thiếu vắng thiết bị ngoại vi thơng dụng hình, ổ đĩa cứng, v.v Phần mềm hệ thống (System Software) Những hệ thống thiết lập nên hạ tầng kỹ thuật hệ thống máy tính, phục vụ cho phần mềm ứng dụng chạy Đó hệ điều hành, hệ quản trị CSDL, chương trình dịch, giao diện phần mềm ứng dụng API (Application Programming Interface), v.v Chúng khai thác dịch vụ tầng thấp phần cứng để đưa giao diện, dịch vụ tầng cao mức khái quát, dễ sử dụng cho chương trình ứng dụng Các hệ thống tự động hố văn phịng (Automated Office Ssystems) Tự động hố văn phịng cách tiếp cận nhằm đưa máy tính vào hoạt động văn phịng, cho phép thâu tóm cơng việc tính tốn, giao lưu, quản lý thông tin, tất vào cửa sổ hình máy tính, có bàn làm việc nhân viên văn phòng Một hệ thống tự động hố văn phịng phải cung cấp số chức sau: • Thư tín điện tử (E-mail): nhận/gửi thông điệp văn (Text messages) tới cá nhân hay nhóm người • Lịch biểu, kế hoạch cơng tác, thơng báo, v.v • Xử lý văn bản: soạn thảo, sửa chữa, mi trang, v.v tài liệu, biểu đồ, văn tự đồ hoạ • Hội thảo điện tử: hội thảo nghe nhìn từ xa, trao đổi liệu, toạ đàm hỗn hợp liệu tiếng nói, hình ảnh, nối ghép hình với 6/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Các hệ thống tích hợp điện thoại với xử lý, tính tốn máy tính:người sử dụng truy cập tới hệ CSDL thông qua hệ thống điện thoại (kể điện thoại khơng dây) để có dịch vụ cần thiết Thơng thường, loại phần mềm thường có phương pháp, mơ hình, cơng cụ qui trình riêng Do vậy, xây dựng hệ thống phần mềm cần phải xác định xem thuộc loại để định lưa chọn giải pháp cho thích hợp hiệu Sự phát triển hệ thống Mọi hệ thống (phần mềm) phải trải qua khởi đầu, triển khai, xây dựng, kiểm định, khai thác, bảo trì kết thúc Gọi q trình vịng đời haychỉ nhấn mạng đến triển khai xây dựng, gọi phát triển hệ thống (System Develoment) Để xem xét xự phát triển hệ thống, có hai khía cạnh phải đề cập: • Sự nối tiếp giai đoạn trình phát triển hệ thống, cịn gọi chu trình phát triển hệ thống, • Các phương tiện để nhận thức đặc tả hệ thống, cịn gọi mơ hình Chu trình phát triển hệ thống Có nhiều loại chu trình phát triển phần mềm khác Ivan Sommerville [19 ] nói tới năm loại chu trình phát triển (i) Mơ hình thác nước (Waterfall) Đây chu trình phát triển đầu tiên, Royce đề xuất năm 1970 để mô tả phát triển hệ thống tin học Quá trình phần mềm chia thành dãy giai đoạn (các pha) liên tiếp từ phân tích yêu cầu, phân tích thành phần, thiết kế, lập trình đến thử nghiệm triển khai hệ thống Giai đoạn sau bắt đầu giai đoạn trước hồn thành (khơng chờm lên nhau) Vì chu trình phát triển cịn gọi chu trình tuyến tính (Hình 1) Mơ hình thiết lập theo cách tiếp cận hướng chức phù hợp cho dự án lớn, phức tạp Nhược điểm chu trình phát triển thác nước chỗ khơng có quay lui Sự quay lui nhu cầu tự nhiên trình phát triển phần mềm, nhiều thực giai sau người ta phát thiếu sót giai đoạn trước cần phải quay lại giai đoạn để chỉnh sửa, bổ sung cho đầy đủ Ngoài ra, trình phát triển phần mềm theo chu trình thác nước, khơng có tham gia trực tiếp người dùng giai đoạn, mà tiếp xúc với hệ thống sau hồn thành 7/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Chu trình thác nước Chính mà có nhiều phương pháp cải tiến chu trình thác nước, cho phép quay lui Chẳng hạn chu trình phát triển hình chữ V [35], AFCIQ (Association Franỗaise pour le Contrụle Industriel de la Qualitộ) đề nghị bao gồm bước quay lui, ngồi cịn đặt tương ứng pha kiểm thử, tích hợp giai đoạn phân tích thiết kế Khi sai sót phát giai đoạn xem lại chu trình bắt đầu lại từ (ii) Chu trình tăng trưởng Chu trình tăng trưởng, D R Graham đề xuất năm 1989, dựa bước tăng trưởng dần, cho phép hoàn thành hệ thống phần Mỗi bước tăng trưởng thực tiến trình tuyến tính gồm bước phân tích, thiết kế, lập trình, kiểm định chuyển giao phần (Hình 2) Quá trình lặp lại nhiều lần có phương án hồn chỉnh cho hệ thống Chu trình phát triển phần mềm tăng trưởng Rõ ràng cách làm thích hợp với hệ thống chia cắt chuyển giao theo phần (iii) Chu trình xoắn ốc Chu trình xoắn ốc hay chu trình lặp Boëhm đề xuất năm 1988, với đặc điểm sau: 8/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm • Tiến trình lặp lại dãy giai đoạn định, • Qua vịng lặp, tạo nguyên mẫu hoàn thiện dần, • Nhấn mạnh khắc phục nguy cơ, rủi ro xuất q trình phát triển phần mềm, có nguy bắt nguồn từ sai sót đặc tả yêu cầu Trong tin học, phần mềm nguyên mẫu (Prototype) hệ thống: • Có khả làm việc liệu thực, nghĩa vượt qua giai đoạn dự án giấy, đánh giá người thiết kế người sử dụng (khách hàng) • Có thể phát triển thêm để tiến tới hệ thống hồn chỉnh, làm sở để phát triển hệ thống theo đơn đặt hàng • Được tạo lập nhanh tốn • Dùng để kiểm chứng giả định nhu cầu cần đáp ứng, lược đồ thiết kế logic chương trình Như vậy, việc tạo ngun mẫu nhanh chóng có ích nhiều phương diện: • Chính xác hố u cầu hệ thống Thường nhu cầu người dùng khơng phát biểu rành mạch, khó mà đặc tả cách hoàn toàn đắn Một nguyên mẫu phô diễn cụ thể, tường minh để người dùng nhìn cảm nhận thấy có đáp ứng trúng nhu cầu hay khơng • Phát hành vi lệch lạc, sai sót Trong thiết kế, có điểm nhạy cảm, người thiết kế khơng lường hết tình Xây dựng nguyên mẫu giúp ta phát hành vi lệch lạc, khiếm khuyết hệ thống • Đánh giá hiệu hệ thống Hiệu hệ thống liên quan chặt chẽ tới thích ứng ngơn ngữ lập trình, (Platform) phần cứng máy tính Nguyên mẫu phản ánh hiệu tương đối chương trình thơng qua nguyên mẫu ta phát nguyên nhân chậm chạp từ bên chương trình,từ khâu giao tiếp người/ máy, v.v Kỹ thuật làm nguyên mẫu ngày thực hiệu nhờ ngơn ngữ lập trình phi thủ tục, cịn gọi ngơn ngữ hệ thứ tư, có ngơn ngữ hướng đối tượng Hầu hết sản phẩm phần mềm Viêt Nam, phần mềm phục vụ chương trình cải cách hành Chính Phủ xây dựng theo kỹ thuật làm nguyên mẫu chu trình xoắn ốc Ban điều hành Đề án 112 tổ chức quản lý thực chặt chẽ theo giai đoạn, ln có trao đổi, thảo luận, đánh giá kết đạt sở đề tài liệu mẫu [37, 38, 39] để hướng dẫn nhóm thực nhằm đảm bảo phần mềm làm theo yêu cầu 9/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Với việc làm nguyên mẫu trình phát triển phần mềm có nhiều khác biệt so với q trình tuyến tính nêu Theo Jekins, Milton Naumann (Đại học Indiana City), chu trình xoắn ốc chia thành bốn giai đoạn cho vịng lặp hình Chu trình xoắn ốc Giai đoạn 1: Với vịng lặp giai đoạn nhằm phát yêu cầu bản, rõ nét thông qua phương pháp thông thường như: khảo sát, vấn, xem xét tài liệu, v.v Không cần phải vét cạn yêu cầu mà nhanh chóng chuyển sang giai đoạn sau Từ vịng lặp thứ hai, giai đoạn tập trung xác định mục tiêu vòng lặp tại, phương án ràng buộc từ kết vòng lặp trước Giai đoạn 2: Đánh giá phương án có thể, phát nguy tiềm ẩn tìm cách giải chúng Các nguy cơ, rủi ro xuất phát từ phía cơng nghệ mới, đối tác cạnh tranh, từ thị trường khách hàng, từ phía ngân sách, tài chính, v.v., sở đánh giá tính khả thi dự án Giai đoạn 3: Thiết kế tạo lập nguyên mẫu, tập trung vào điều cốt yếu Giai đoạn 4: Thử nghiệm nguyên mẫu Trước hết giới thiệu cho số người dùng chọn lọc, thu thập phê phán, góp ý họ Tuỳ theo mức độ quan trọng, số điều chỉnh thực vòng tiếp sau Các vòng lặp tiếp tục xét thấy ngun mẫu tốt chuyển sang sản xuất thực Một số người cho cách làm vòng vo làm kéo dài thời gian Song, nghiên cứu nghiêm túc Boëhm Gray cho thấy thời gian rút xuống khoảng 45% so với cách làm cũ Nhưng, thành cơng tiến trình lặp dẫn tới vài hậu cần dè chừng Người dùng thoả mãn với phương án đầu muốn dừng ngay, khơng phải khơng có việc đáng làm Việc làm tư liệu, vốn cần thiết cho hoạt động bảo trì hệ thống sau này, dễ bị bỏ qua xem nhẹ 10/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Có bốn yếu tố quan trọng ảnh hưởng tới hiệu dự án phát triển phần mềm: Con người Yếu tố quan trọng hiển nhiên số lượng trình độ chuyên nghiệp người tham gia phát triển phần mềm, người có khả nắm bắt, làm chủ cơng nghệ mới, có khả hiểu toán lĩnh vực ứng dụng Bài toán (lĩnh vực ứng dụng) Hiệu dự án phụ thuộc nhiều vào độ phức tạp toán với yêu cầu thường xuyên thay đổi, đòi hỏi phức tạp với ràng buộc liệu, thời gian tài nguyên hệ thống Công nghệ: kỹ thuật, công cụ hỗ trợ để phát triển phần mềm, Các tài nguyên: bao gồm phần cứng máy tính, thiết bị phụ trợ, phần mềm ứng dụng tài chính, ngân sách đầu tư cho dự án phát triển phần mềm Vấn đề quan trọng công nghệ phần mềm cần phải có cơng cụ hỗ trợ để thực mơ hình hố trực quan theo chuẩn dễ hiểu giúp cho việc trao đổi người phát triển phần mềm hiệu dễ dàng Các nhà tin học cố gắng để hình thành cơng cụ thực mơ hình hố trực quan Từ khái niệm, ký pháp quen thuộc Booch, Ericsson, OOSE/Objectory (Jacobson), OMT (Rumbaugh) [16] người ta xây dựng ngơn ngữ mơ hình hợp UML [2, 3] nhiều người chấp nhận sử dụng ngơn ngữ chuẩn phân tích thiết kế hệ thống phần mềm theo cách tiếp cận hướng đối tượng Hầu hết hãng sản xuất phần mềm lớn như: Microsoft, IBM, HP, Oracle, v.v… sử dụng UML chuẩn công nghiệp phần mềm Các cách tiếp cận phát triển phần mềm Để thực dự án phát triển phần mềm vấn đề quan trọng phải chọn cho cách thực cho thích hợp dựa yếu tố nêu Có hai cách tiếp cận để phát triển phần mềm: cách tiếp hướng chức (FunctionalOriented) cách tiếp cận hướng đối tượng (Object- Oriented Approach) Cách tiếp cận hướng chức Phần lớn chương trình viết ngơn ngữ lập trình C, hay Pascal từ trước đến thực theo cách tiếp cận hướng chức (Functional Oriented) hay gọi cách tiếp cận hướng thủ tục (Procedure-Oriented) Cách tiếp cận có đặc trưng sau [9, 24]: (i) Dựa vào chức năng, nhiệm vụ Khi khảo sát, phân tích hệ thống thường tập trung vào nhiệm vụ mà cần thực Chúng ta tập trung trước hết vào việc nghiên cứu yêu cầu tốn để xác định chức hệ 14/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm thống Ví dụ cần xây dựng “hệ thống quản lý thư viện” trước hết thường nghiên cứu, khảo sát trao đổi vấn xem người thủ thư, bạn đọc cần phải thực cơng việc để phục vụ bạn đọc quản lý tốt tài liệu Qua nghiên cứu “hệ thống quản lý thư viện”, xác định nhiệm vụ hệ thống như: quản lý bạn đọc, cho mượn sách, nhận trả sách, thông báo nhắc trả sách, v.v Như vậy, nghiên cứu để hiểu rõ toán xác định yêu cầu hệ thống chức năng, nhiệm vụ hệ thống gần không thay đổi suốt trình phát triển ngoại trừ cần phải khảo sát lại tốn Dựa vào chức (thuật tốn) liệu phụ biến đổi theo chức Do đó, hệ thống phần mềm xem nhưlà tập chức năng, nhiệm vụ cần tổ chức thực thi (ii) Phân rã chức làm mịn dần theo cách từ xuống (Top/Down) Khả người có giới hạn khảo sát, nghiên cứu để hiểu thực thi mà hệ thống thực tế địi hỏi Để thống trị (quản lý được) độ phức tạp vấn đề phức tạp thực tế thường phải sử dụng nguyên lý chia để trị, nghĩa phân tách nhỏ chức thành chức đơn giản theo cách từ xuống Qui trình lặp lại thu đơn thể chức tương đối đơn giản, hiểu thực cài đặt chúng mà không làm tăng thêm độ phức tạp để liên kết chúng hệ thống Độ phức tạp liên kết thành phần chức hệ thống thường tỉ lệ nghịch với độ phức tạp đơn thể Vì vần đề đặt có cách để biết trình phân tách đơn thể chức hay cịn gọi q trình làm mịn dần kết thúc Thơng thường q trình thực phân rã chức hệ thống phụ thuộc nhiều vào độ phức hợp toán ứng dụng vào trình độ người tham gia phát triển phần mềm Một hệ thống phân tích dựa chức trình chia thành hệ thống tạo cấu trúc phân cấp chức Chúng ta khẳng định chức hầu hết hệ thống thơng tin quản lý tổ chức thành sơ đồ chức theo cấu trúc phân cấp có thứ bậc (iii) Các đơn thể chức trao đổi với cách truyền tham số hay sử dụng liệu chung Một hệ thống phần mềm phải xem thể thống nhất, đơn thể chức phải có quan hệ trao đổi thống tin, liệu với Trong chương trình gồm nhiều chương trình (thực nhiều chức khác nhau) muốn trao đổi liệu với thiết phải sử dụng liệu liệu chung liên kết với cáchtruyền tham biến Mỗi đơn thể chức thao tác, xử lý liệu cục (Local Data) mà phải sử dụng biến chung, thườngđó biến tồn cục (Global Data) Với việc sử dụng biến tồn cục bất lợi trình thiết kế lập trình khó tránh khỏi Đối với dự án lớn, phức tạp cần nhiều nhóm tham gia, nhóm đảm nhận số chức định nhóm có yêu 15/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm cầu thay đổi liệu chung kéo theo tất nhóm khác có liên quan phải thay đổi theo Kết có yêu cầu thay đổi đơn thể chức ảnh hưởng tới chức khác ảnh hưởng tới hiệu xuất lao động công việc Mà nhu cầu thay đổi chức phân tích tất yếu thường hay thay đổi (iv) Tính mở (Open) thích nghi hệ thống xây dựng theo cách tiếp cận thấp vì: • Hệ thống xây dựng dựa vào chức mà thực tế chức năng, nhiệm vụ hệ thống lại hay thay đổi Để đảm bảo cho hệ thống thực công việc theo yêu cầu, yêu cầu mặt chức lại bị thay đổi cơng việc phức tạp tốn Ví dụ: giám đốc thư viện yêu cầu thay đổi cách quản lý bạn đọc nữa, yêu cầu bổ sung chức theo dõi tài liệu mà bạn đọc thường xuyên yêu cầu để đặt mua, v.v Khi vấn đề bảo trì hệ thống phần mềm khơng phải vấn đề dễ thực Nhiều có yêu cầu thay đổi mà việc sửa đổi khơng hiệu địi hỏi phải phân tích, thiết kế để xây dựng lại hệ thống • Các phận hệ thống phải sử dụng biến toàn cục để trao đổi với nhau, vậy, khả thay đổi, mở rộng chúng hệ thống bị hạn chế Như phân tích, thay đổi liên quan đến liệu chung ảnh hưởng tới tất phận liên quan Do đó, thiết kế tốt phải dễ hiểu sửa đổi có hiệu ứng cục (v) Khả tái sử dụng (Reuse) bị hạn chế không hỗ chế kế thừa (Inheritance) Để có độ thích nghi tốt thành phần phải tự chứa Muốn tự chứa hồn tồn thành phần khơng nên dùng nhiều thành phần 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 (ở chủ yếu cấu trúc hàm) mát tính thích ứng chúng Các thành hệ thống phảikết dính (Cohension) phải tương đối lỏng để dễ thích nghi Một chế hỗ trợ để dễ có tính thích nghi kế thừa cách tiếp cận hướng chức lại khơng hỗ trợ Đó chế biểu diễn tính tương tự cácthực thể, đơn giản hoá định nghĩa khái niệm tương tự từ vật định nghĩa trước sở bổ sung hay thay đổi số đặc trưng hay tính chất chúng Cơ chế giúp thực nguyên lý tổng quát hoá chi tiết hoá thành phần hệ thống phần mềm 16/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Cách tiếp cận hướng đối tượng Để khắc phục vấn đề tồn nêu cần phải nghiên cứu phương pháp, mơ hình cơng cụ mới, thích hợp để phát triển phần mềm Mơ hình hướng đối tượng [4, 5, 10, 12, 13, 14, 18, 24, 32, 33] giúp vượt khủng hoảng công nghệ phần mềm hy vọng đưa sản phẩm phần mềm thương mại chất lượng cao: tin cậy, dễ mở rộng, dễ thích nghi, cường tráng phù hợp với yêu cầu khách hàng Cách tiếp cận hướng đối tượng có đặc trưng sau (i) Đặt trọng tâm vào liệu (thực thể) Khi khảo sát, phân tích hệ thống không tập trung vào nhiệm vụ trước mà tìm hiểu xem gồm thực thể Thực thể hay gọi đối tượng, người, vật, kiện, khái niệm, v.v mà quan tâm, hay cần phải xem xét xử lý Khi xây dựng “Hệ thống quản lý thư viện” trước hết tìm hiểu xem gồm lớp đối tượng khái niệm Đó lớp Sách, Tạp_Chí, Bạn_Đọc, v.v (ii) Xem hệ thống tập thực thể, đối tượng Để hiểu rõ hệ thống phân tách hệ thống thành đơn thể đơn giản Quá trình lặp lại thu đơn thể tương đối đơn giản, dễ hiểu thực cài đặt chúng mà không làm tăng thêm độ phức tạp liên kết chúng hệ thống Các đối tượng hệ thống liên quan với theo quan hệ: kết hợp (Association), kết nhập (Aggregation), kế thừa (Inheritance) phụ thuộc (Dependency) [25, 32] Phương pháp hướng đối tượng cho phép đặc tả hết tất mối quan hệ đối tượng với chất tự nhiên giới thực (iii) Các lớp đối tượng trao đổi với thơng điệp (Message) Theo nghĩa thơng thường lớp (Class) nhóm số người, vật có đặc tính tương tự có hành vi ứng xử giống Trong mơ hình đối tượng, khái niệm lớp cấu trúc mơ tả hợp thuộc tính (Attributes), hay liệu thành phần (Data Member) thể đặc tính đối tượng phương thức (Methods), hay hàm thành phần (Member Function) thao tác liệu riêng giao diện trao đổi với đối tượng khác để xác định hành vi chúng hệ thống Khi có yêu cầu liệu để thực nhiệm vụ đó, đối tượng gửi thông điệp (gọi phương thức) cho đối tượng khác Đối tượng nhận thông điệp yêu cầu phải thực số cơng việc liệu mà sẵn có lại tiếp tục yêu cầu đối tượng khác hỗ trợ để có thơng tin trả lời cho đối tượng yêu cầu Với phương thức xử lý chương trình hướng đối tượng thực khơng cần sử dụng biến tồn cục [33] (iv) Tính mở thích nghi hệ thống cao vì: 17/28 Phương pháp hướng đối tượng q trình phát triển hệ thống phần mềm • Hệ thống xây dựng dựa vào lớp đối tượng nên có u cầu thay đổi thay đổi lớp đối tượng có liên quan bổ sung thêm số lớp đối tượng (có thể kế thừa từ lớp có trước) để thực thi nhiệm vụ mà hệ thống cần thực Giám đốc thư viện yêu cầu bổ sung chức theo dõi tài liệu mà bạn đọc thường xuyên yêu cầu để đặt mua, ta bổ sung thêm lớp để theo dõi yêu cầu: lớp u_Cầu • Trong chương trình hướng đối tượng khơng cần sử dụng biến tồn cục nên sửa đổi có hiệu ứng cục (v) Hỗ trợ sử dụng lại chế kế thừa Các lớp đối tượng tổ chức theo nguyên lý bao gói (Encapsulation) che giấu thơng tin (Information Hidding) tăng thêm hiệu kế thừa độ tin cậy hệ thống Các ngơn ngữ lập trình hướng đối tượng như: C++, Java [33], C#, Delphi, v.v hỗ trợ quan hệ kế thừa Ưu điểm phương pháp hướng đối tượng: • Đối tượng sở để kết hợp đơn thể sử dụng lại thành hệ thống lớn hơn, tạo sản phẩm có chất lượng cao Đây sở để thực theo cơng nghệ thành phần • Qui ước truyền thông điệp đối tượng đảm bảo cho việc mô tả giao diện đối tượng thành phần bên hệ thống hệ thống bên trở nên dễ dàng Điều giúp cho việc phân chia dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ tốn thành lớp đối tượng hồn tồn tương ứng với quan điểm hướng tới lời giải phù hợp với giới thực tự nhiên • Ngun lý bao gói, che giấu thơng tin hỗ trợ cho việc xây dựng hệ thống thông tin an tồn tin cậy • Ngun lý kế thừa dựa vào liệu phù hợp với ngữ nghĩa mơ hình cài đặt, khơng giảm thiểu thời gian thực mà làm cho hệ thống có tính mở, tin cậy • Phương pháp hướng đối tượng, nguyên lý kế thừa cho phép dễ dàng xác định phận bản, xây dựng lớp đơn vị sở hệ thống sử dụng chúng mà khơng cần phải hồn thiện, khơng địi hỏi phải thực đầy đủ tất chức (đơn thể mở) sau mở rộng đần không làm ảnh hưởng tới đơn thể khác, khơng địi hỏi phải thiết kế lại • Định hướng đối tượng cung cấp công cụ, môi trường mới, hiệu để phát triển phần mềm theo hướng công nghiệp hỗ trợ để tận dụng khả kế thừa, sử dụng lại phạm vi diện rộng để xây dựng 18/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm hệ thống phức tạp, nhạy cảm như: hệ thống động, hệ thống thời gian thực, hệ thống đa phương tiện, v,v • Xố bỏ hố ngăn cách pha phân tích, thiết kế, cài đặt kiểm định trình xây dựng phần mềm Nhiều kết (sản phẩm) giai đoạn trước sử dụng giai đoạn sau Hơn nữa, để hiểu rõ vấn đề cần mơ hình hố ngồi khái niệm sở phương pháp luận cần phải hiểu rõ tính chất, đặc trưng hệ thống, phương pháp Với mục đích đó, tìm hiểu thêm số kết nghiên cứu khả đặc tả việc xử lý thông tin hệ thống [23, 31, 36], tập trung vào hệ thống hướng đối tượng, nghiên cứu hành vi, tính chất đảm bảo tính quán thơng tin mơ hình hệ thống [25, 26, 27, 28] vấn đề chuyển đổi tương đương mơ hình liệu [30, 32, 34] Q trình phát triển phần mềm hợp Phần mềm sản phẩm phát triển hay kỹ nghệ hoá chế tạo tương tự sản phẩm công nghiệp (phần cứng) khác Phát triển phần mềm chế tạo phần cứng có điểm tương đồng: sản phẩm chất lượng chúng phụ thuộc nhiều vào thiết kế, lại phụ thuộc vào người Tuy nhiên, phần mềm phần cứng lại có nhiều điểm đặc trưng khác • Qui trình phương pháp tổ chức thực để sản xuất chúng khác nhau, phần cứng thường sản xuất theo dây chuyền, hành loạt phần mềm thường xây dựng theo đơn đặt hàng, đơn • Các giai đoạn chế tạo phần cứng xác định có khả điều chỉnh chất lượng sản phẩm phần mềm khơng dễ thay đổi được, • Mối quan hệ người sử dụng công việc cần thực với loại sản phẩm hồn tồn khác nhau, • Cách tiếp cận để xây dựng, chế tạo sản phẩm khác Khả nhân chúng hoàn toàn trái ngược Việc bảo vệ quyền sản phẩm phần mềm khó khăn khả chép thành nhiều giống thực (tương đối dễ) • Phần mềm khác hẳn với phần cứng không bị hư hỏng theo thời gian, không bị tác động môi trường (thời tiết, nhiệt độ, điều kiện, v.v…) Do vậy, phần cứng việc bảo hành đảm bảo hoạt động cịn phần mềm lại khác hẳn Bảo hành, bảo trì phần mềm bảo đảm cho hệ thống hoạt động với thiết kế đáp ứng yêu cầu sử dụng khách hàng Chính mà cơng bảo hành phần mềm tốn đòi hỏi phải tập trung nhiều vào khâu phân tích, thiết kế hệ thống 19/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Mọi hệ thống phần mềm hệ thống khác tồn độc lập mà ln vận động tồn môi trường, tương tác với giới xung quanh Một hệ thống xem hệ thống hệ thống khác thân lại chứa số hệ thống khác nhỏ Công nghệ phần cứng phát triển nhanh chất lượng tốc độ xử lý với giá thành ngày hạ giá phần mềm lại cao Để phát triển hệ thống phần mềm đáp ứng u cầu địi hỏi phải áp dụng lý thuyết, kỹ nghệ, phương pháp cơng cụ để tạo qui trình phát triển phần mềm hợp Công nghệ phần mềm (CNPM) đề cập đến lý thuyết, phương pháp luận công cụ cần thiết để phát triển phần mềm Mục đích CNPM làm phần mềm chất lượng cao, tin cậyvới hạn chế nguồn lực, theo lịch trình đặt trước, phù hợp vớingân sách dự kiến đáp ứng yêu cầu người dùng Hơn nữa, CNPM không phải làm hệ thống phần mềm mà phải làm hồ sơ, tài liệu tài liệu thiết kế, tài liệu hướng dẫn sử dụng, v.v làm sở để bảo trì mở rộng, phát triển hệ thống sau Tóm lại, để xây dựng hệ thống phần mềm đáp ứng yêu cầu trên, cần phải: • Có qui trình phát triển phần mềm thống gồm bước thực rõ ràng, mà sau bước phải có sản phẩm cụ thể; • Có phương pháp kỹ nghệ phù hợp với giai đoạn thực phát triển phần mềm; • Có cơng cụ để làm sản phẩm phần mềm theo yêu cầu Quá trình phát triển sản phẩm (Software Development Process) trình định nghĩa làm gì, làm Quá trình xây dựng sản phẩm phần mềm nâng cấp sản phẩm có gọi q trình phát triển phần Hệ thống phần mềm kiến tạo sản phẩm loạt hoạt động sáng tạo có trình phát triển Quá trình phát triển phần mềm phức tạp phải có nhiều người tham gia thực Trước hết khách hàng nhà đầu tư, người đưa vấn đề cần giải máy tính Những người phát triển hệ thống gồm nhà phân tích, thiết kế lập trình làm nhiệm vụ phân tích u cầu khách hàng, thiết kế thành phần hệ thống thực thi cài đặt chúng Sau phần mềm kiểm thử triển khai ứng dụng để thực thi vấn đề mà người sử dụng yêu cầu Quá trình phát triển phần mềm xác định thông qua tập hoạt động cần thực để chuyển đổi yêu cầu khách hàng (người sử dụng) thành hệ thống phần mềm Có sáu bước cần thực trình phát triển phần mềm: 20/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Xác định đặc tả yêu cầu Phân tích hệ thống Thiết kế hệ thống Lập trình, mã hố chương trình Kiểm định hệ thống Vận hành bảo trì hệ thống Có thể thực bước theo nhiều phương pháp khác Theo đó, số bước đề xuất phương pháp khác Các dự án thực theo mơ hình khác mơ hình "thác nước", mơ hình "tạo ngun mẫu", mơ hình "xoắn ốc", v.v tuỳ thuộc vào lĩnh vực ứng dụng khả thực nhóm tham gia thực dự án (i) Xác định yêu cầu phân tích hệ thống Từ yêu cầu khách hàng, xác định mục tiêu phần mềm cần phát triển Thường yêu cầu chức mà hệ thống phải thực hiện, chưa cần chức thực Việc xác định đầy đủ yêu cầu toán nhiệm vụ quan trọng, làm sở cho tất bước dự án phát triển phần mềm Muốn vậy, phải thực đặc tả chi tiết yêu cầu hệ thống UML cung cấp biểu đồ ca sử dụng để đặc tả yêu cầu hệ thống Tài liệu đặc tả yêu cầu sử dụng để: • Làm sở để trao đổi với người sử dụng, để thảo luận nhóm thành viên dự án phát triển phần mềm mà hệ thống phải thực (và khơng cần thực hiện) • Làm để kiểm tra, thử nghiệm bước trình phát triển phần mềm Muốn đạt mục tiêu q trình phải thực hiện: • Xác định hiểu rõ miền, phạm vi toán: Những người phát triển xây dựng hệ thống theo hiểu biết họ yêu cầu khách hàng khái niệm sở tốn ứng dụng • Nắm bắt yêu cầu: Người phân tích phải nắm bắt tất nhu cầu khách hàng cách phải trao đổi với người có liên quan đến dự án, tham khảo tài liệu liên quan Thông qua việc thảo luận, trao đổi với khách 21/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm hàng, chuyên gia lĩnh vực ứng dụng người đã, sử dụng hệ thống có sẵn, ta phát nắm bắt yêu cầu họ Phương pháp trừu tượng hoá giúp ta dễ dàng nắm bắt yêu cầu hệ thống • Phân loại: Vấn đề quan trọng giai đoạn phải hiểu rõ yêu cầu xác định Muốn vậy, ta phải tìm cách phân loại chúng theo tầm quan trọng, hay chức người sử dụng khách hàng • Thẩm định: Kiểm tra xem yêu cầu có thống với đầy đủ khơng, đồng thời tìm cách giải mối mâu thuẫn u cầu có • Nghiên cứu tính khả thi: Tính khả thi dự án tin học phải thực dựa yếu tố bao gồm khía cạnh tài chính, chiến lược, thị trường, người, đối tác, kỹ thuật, công nghệ phương pháp mơ hình hố, v.v Nói chung, khơng có qui tắc hướng dẫn cụ thể để biết cơng việc phân tích u cầu kết thúc q trình phát triển chuyển sang bước Nhưng dựa vào câu trả lời cho câu hỏi sau để chuyển sang bước • Khách hàng, người sử dụng (NSD) người phát triển hiểu hoàn tồn hệ thống chưa? • Đã nêu đầy đủ yêu cầu chức (dịch vụ), đầu vào / liệu cần thiết chưa? Bức tranh chung pha phân tích yêu cầu hệ thống mơ tả hình Mối quan hệ công việc pha phân tích yêu cầu Vấn đề xác định đầy đủ yêu cầu hệ thống quan trọng, ảnh hưởng lớn tới chất lượng sản phẩn sau Theo Finkelstein (1989) khảo sát, 22/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm đánh giá pha thực trình phát triển phần mềm 55% [19] lỗi phần mềm yêu cầu hệ thống chưa phát đầy đủ chi phí cho việc sửa lỗi ( để bảo trì hệ thống) chiếm tới 80% chi phí dự án (ii) Phân tích hệ thống hướng đối tượng Phân tích hướng đối tượng (OOA): giai đoạn trình phát triển phần mềm, mơ hình khái niệm mơ tả xác, súc tích thơng qua đối tượng thực khái niệm toán ứng dụng Phân tích hướng đối tượng vừa ngành khoa học vừa nghệ thuật nên để xây dựng hệ thống tốt, tráng kiện, có tính mở dễ bảo trì ta phải biết vận dụng nguyên lý, phương pháp khoa học kết hợp heuristic mẫu thử nghiệm để nhanh chóng tích luỹ hồn thiện kỹ phân tích,thiết kế Thơng qua việc áp dụng ngun lý kinh nghiệm thực theo mẫu hướng dẫn [10] nhanh chóng học cách tạo thiết kế hệ thống phần mềm tốt Phân tích hướng đối tượng tập trung vào việc tìm kiếm đối tượng, khái niệm lĩnh vực toán xác định mối quan hệ chúng hệ thống Nhiệm vụ người phân tích nghiên cứu kỹ yêu cầu hệ thống phân tích thành phần hệ thống mối quan hệ chúng Trong khâu phân tích hệ thống chủ yếu trả lời câu hỏi: • Hệ thống gồm thành phần, phận nào? • Hệ thống cần thực gì? Kết pha phân tích hệ thống hướng đối tượng biểu đồ lớp, biểu đồ trạng thái, biểu đồ trình tự, biểu đồ cộng tác biểu đồ thành phần (iii) Thiết kế hệ thống hướng đối tượng Dựa vào đặc tả yêu cầu kết phân tích (các biểu đồ nêu trên) để thiết kế hệ thống Thiết kế hướng đối tượng (OOD) giai đoạn trình phát triển phần mềm, hệ thống tổ chức thành tập đối tượng tương tác với mô tả cách để hệ thống thực thi nhiệm vụ toán ứng dụng Trong khâu thiết kế hệ thống hướng đối tượng chủ yếu trả lời câu hỏi làm nào? • Trong hệ thống có lớp đối tượng nào, trách nhiệm chúng gì? • Các đối tượng tương tác với nào? 23/28 Phương pháp hướng đối tượng q trình phát triển hệ thống phần mềm • • • • Các nhiệm vụ mà lớp đối tượng phải thực gì? Dữ liệu nghiệp vụ giao diện xây dựng nào? Kiến trúc cấu hình hệ thống? Nhiệm vụ thiết kế hệ thống là: Xây dựng thiết kế chi tiết mô tả thành phần hệ thống mức cao khâu phân tích, thiết kế giao diện để phục vụ cho việc cài đặt Nghĩa là, lớp đối tượng định nghĩa chi tiết gồm đầy đủ thuộc tính, thao tác phục vụ cho việc cài đặt ngơn ngữ lập trình hướng đối tượng lựa chọn bước sau • Đồng thời đưa kiến trúc (là trọng tâm) hệ thống để đảm bảo cho hệ thống thay đổi, có tính mở, dễ bảo trì, thân thiện với NSD, v.v Nghĩa tổ chức lớp thành gói hệ thống theo kiến trúc phù hợp với nhu cầu phát triển công nghệ (mạng, phân tán, v.v.) đồng thời phù hợp với xu phát triển lĩnh vực ứng dụng • Thiết kế CSDL, chọn mơ hình quan hệ hay mơ hình đối tượng Bởi tồn nhiều mơ hình liệu khác nhau, nên xây dựng hệ thống phần mềm lớn phải thiết kế phương án tích hợp liệu từ nhiều nguồn khác nhau, nghĩa khả chuyển đổi, kết hợp mơ hình liệu với Những kết thể biểu đồ: biểu đồ lớp (chi tiết), biểu đồ hành động, biểu đồ thành phần biểu đồ triển khai Tất kết thiết kếphải ghi lại thànhcác hồ sơ, tài liệu cho hệ thống Trong tài liệu thiết kếphải mô tả cụ thể thành phần nào, làm làm Thiết kế logic thiết kế chi tiết (iv) Lập trình hướng đối tượng Trong giai đoạn này, thành phần thiết kế lập trình ngơn ngữ lập trình hướng đối tượng lựa chọn thành mơ đun chương trình (chương trình con) Mỗi mô đun kiểm định thử nghiệm theo tài liệu đặc tả giai đoạn thiết kế Công việc mô tả sau: 24/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Lập trình tập trung xây dựng lớp Hiện có số cơng cụ hỗ trợ cho q trình phân tích, thiết kế sinh mã tự động cho thành phần mơ hình như: Rose [8, 22], hay Visual Studio NET Microsoft, v.v (v) Kiểm định phần mềm Các mô đun chương trình cần phải kiểm định sau tích hợp với thành hệ thống tổng thể Chúng phải kiểm tra xem có đáp ứng yêu cầu khách hàng hay không Kiểm thử phần mềm trình liên tục, xuyên suốt giai đoạn trình phát triển nhằm đảm bảo phần mềm thoả mãn yêu cầu thiết kế, thẩm định xem yêu cầu có đáp ứng nhu cầu người dùng hay không Kiểm thử chương trình đồngnghĩa với việc tìm lỗi chưa phát hiện, chứng minhđược chương trình đắn Có hai kỹ thuật kiểm định phần mềm chính[1]: kỹ thuật “Hộp đen” (Black Box) kỹ thuật “Hộp trắng” (White Box) Kỹ thuật kiểm thử “Hộp đen” gọi kỹ thuật hướng liệu vào/ Nó sử dụng để kiểm tra đặc tả chức thiết kế không quan tâm đến cấu trúc bên hệ thống Nếu đầu (kết quả) không mong muốn kiểm thử thành cơng việc phát lỗi phần mềm Còn kỹ thuật “Hộp trắng” lại đòi hỏi hiểu biết cầu trúc logic bên trong, cấu trúc điều khiển luồng liệu chương trình Hai kỹ thuật khơng thay mà bổ sung cho Kiểm thử hộp trắng làm sáng tỏ lỗi tìm thấy kiểm thử hộp đen chúng xem xét phần mềm thông qua việc nghiên cứu cấu trúc chương trình Vấn đề kiểm định phần mềm thách thức lớn cho công ty phần mềm Việt Nam (vi) Vận hành, khai thác bảo trì hệ thống Giai đoạn bắt đầu việc cài đặt hệ thống phần mềm môi trường sử dụng khách hàng sau sản phẩm kiểm định giao cho họ Hệ thống hoạt động, cung cấp thông tin, xử lý yêu cầu thực thiết kế Tuy nhiên, vấn đề bảo trì phần mềm hồn tồn khác với bảo trì phần cứng Như phân tích trên, bảo trì phần mềm đảm bảo cho hệ thống hoạt động đáp ứng yêu cầu NSD, khách hàng Mà yêu cầu thực tế lại hay thay đổi, cơng tác bảo trì lại bao gồm thay đổi hệ thống cho phù hợp với yêu cầu họ, chí có thay đổi chưa phát 25/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm pha phân tích, thiết kế Nghĩa là, hệ thống phần mềm phải nâng cấp, hồn thiện liên tục chi phí cho cơng tác bảo trì tốn Thơng thường, có hai loại nâng cấp: • Nâng cao hiệu hệ thống: bao gồm thay đổi mà khách hàng cho cải thiện hiệu công việc hệ thống, bổ sung thêm chức hay giảm thời gian xử lý, trả lời hệ thống, v.v Đảm bảo thích nghi thay đổi môi trường hệ thống hay sửa đổi cho phù hợp với thay đổi sách, qui chế ban hành Chính phủ Một cách tổng quát, trình phát triển phần mềm với UML thực thống dựa bước xây dựng biểu đồ mô tả yêu cầu, khái niệm, tương tác kiến trúc hệ thống Kết luận Ngày phương pháp hướng đối tượng tập trung nghiên cứu triển khai ứng dụng rộng rãi để tạo phần mềm có tính mở, dễ thay đổi theo yêu cầu khách hàng, đáp ứng tiêu chuẩn phần mềm chất lượng cao theo yêu cầu công nghệ thông tin đại Một điều quan trọng công nghệ phần mềm khái niệm mơ hình hệ thống hướng đối tượng, bước phát triển đặc tả thực theo qui trình hợp với hệ thống ký hiệu chuẩn ngơn ngữ mơ hình hố hợp UML Mặc dù phương pháp hướng đối tượng có ưu việt phân tích, song cịn có vấn đề tồn mặt mơ hình hình thức hướng đối tượng Phương pháp chưa có mơ hình lý thuyết phù hợp (đủ đơn giản để cài đặt) cho đối tượng, thực phép toán đối tượng giống mơ hình quan hệ Tương tự, vấn đề quản trị CSDL đối tượng thách thức lớn ngành CNTT Việc tổ chức, xử lý quản lý đối tượng cho đảm bảo tính quán liệu hệ thống, đặc biệt việc truy vấn đối tượng hiệu vấn đề mở, cần phải tập trung nghiên cứu Câu hỏi tập Hệ thống phần mềm gì?, nêu đặc trưng sản phẩm phần mềm? Vai trò mục đích mơ hình hố q trình phát triển phần mềm? Tại lại cần phải có qui trình phát triển phần mềm thống nhất? 26/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Phân tích đặc trưng cách tiếp cận hướng chức hướng đối tượng trình phát triển phần mềm Nêu mơ hình ứng dụng để phát triển hệ thống nay? Chọn từ danh sách thuật ngữ thích hợp để điền vào chỗ [(…)] đoạn văn mô tả hệ thống phần mềm Hệ thống phần mềm hay gọi tắt hệ thống, tổ hợp [(1)], [(2)] có quan hệ qua lại với nhau, [(3)] thông qua việc nhận liệu đầu vào (Input) sản sinh kết đầu (Output) thường dạng thông tin khác nhờ [(4)], biến đổi [(5)] Chọn câu trả lời: a hoạt động hướng tới mục tiêu chung b trình xử lý c phần mềm d có tổ chức e phần cứng Hãy chọn thuật ngữ thích hợp để điền vào chỗ [(…)] đoạn văn mô tả q trình phân tích hướng chức Để hiểu hệ thống lớn, phức tạp, thường phải sử dụng nguyên lý [(1)], nghĩa [(2)] thành chức đơn giản theo cách tiếp cận [(3)] Qui trình lặp lại thu đơn thể chức tương đối đơn giản, dễ hiểu thực cài đặt chúng mà không làm tăng thêm độ phức tạp để liên kết chúng [(4)] Chọn câu trả lời: a từ xuống b phân tách nhỏ chức c hệ thống d chia để trị (devide and conquer) Hãy chọn dãy bước thực danh sách cho phù hợp với qui trình phát triển phần mềm theo mơ hình "thác nước" (1) Xác định u cầu (2) Thiết kế hệ thống 27/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm (3) Cài đặt kiểm tra hệ thống (4) Vận hành bảo trì hệ thống (5) Phân tích hệ thống Chọn câu trả lời: a (2) →(1) → (3) → (5) → (4) b (1) → (2)→(3)→(4)→(5) c (1) → (5)→(2)→(3)→(4) d (1) → (3)→(2)→(5)→(4) 28/28 ... 10/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Tóm lại, khn cảnh chung kỹ nghệ phần mềm mơ tả sau: Quá trình phát triển phần mềm Các giai đoạn q trình phát triển phần mềm. .. là: 3/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm • Mọi hệ thống hệ thống hệ thống lớn mơi trường lại bao gồm hệ thống (các thành phần) nhỏ • Giữa thành phần hệ thống có... bảo hành phần mềm tốn đòi hỏi phải tập trung nhiều vào khâu phân tích, thiết kế hệ thống 19/28 Phương pháp hướng đối tượng trình phát triển hệ thống phần mềm Mọi hệ thống phần mềm hệ thống khác