Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Mở đầu Phần mềm hiện nay có mặt ở mọi lĩnh vực, trong mọi hoạt động của cuộc sống như công nghiệp, viện nghiên cứu, trường học, bệnh viện, tài ch[.]
Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Mở đầu Phần mềm có mặt lĩnh vực, hoạt động sống công nghiệp, viện nghiên cứu, trường học, bệnh viện, tài ngân hàng, phủ Hầu hết thiết bị điện tử tương lai cài đặt phần mềm điều khiển Việc đặc tả yêu cầu, phát triển, quản lí, bảo trì phần mềm tạo nên ngun tắc cơng nghệ phần mềm (software engineering) Trong loại phần mềm phần mềm hướng đối tượng phát triển vơ mạnh mẽ Do đáp ứng hầu hết yêu cầu người dùng, phát triển mạnh mẽ ngôn ngữ hướng đối tượng C++, Java, C# Phư ng pháp phát triển phần mềm hướng đối tượng phương pháp n phần mềm hướng đối tượng phương pháp n mềm hướng đối tượng phương pháp m hướng đối tượng phương pháp ng đối tượng phương pháp i tượng phương pháp ng phương pháp t phư ng pháp mớng đối tượng phương pháp i nh ng năm gần mềm hướng đối tượng phương pháp n chứng tỏ ưu lập trình hệ thống ng tỏ ưu lập trình hệ thống đượng phương pháp c ưu lập trình hệ thống lập trình hệ thống p trình hệ thống thối tượng phương pháp ng phứng tỏ ưu lập trình hệ thống c t p, đem l i nh ng thành to lớn Các nhà phát triển phần mềm nhận thấy to lớng đối tượng phương pháp n Các nhà phát triển phần mềm hướng đối tượng phương pháp n phần mềm hướng đối tượng phương pháp n mềm hướng đối tượng phương pháp m nhập trình hệ thống n thấy y r ng phát triển phần mềm hướng đối tượng phương pháp n phần mềm hướng đối tượng phương pháp n mềm hướng đối tượng phương pháp m hướng đối tượng phương pháp ng đối tượng phương pháp i tượng phương pháp ng mang l i phương pháp t phần mềm hướng đối tượng phương pháp n mềm hướng đối tượng phương pháp m thư ng m i có chấy t lượng phương pháp ng cao vớng đối tượng phương pháp i đột phương pháp tin cập trình hệ thống y cao, dễ mở rộng dễ sử dụng lại, chạy trơn tru, phù mở rộng dễ sử dụng lại, chạy trơn tru, phù rột phương pháp ng dễ mở rộng dễ sử dụng lại, chạy trơn tru, phù sử dụng lại, chạy trơn tru, phù dụng lại, chạy trơn tru, phù ng l i, ch y tr n tru, phù hợng phương pháp p vớng đối tượng phương pháp i yêu cần mềm hướng đối tượng phương pháp u người dùng đặc biệt khả phát triển cao.a người dùng đặc biệt khả phát triển cao.i dùng đặc biệt khả phát triển cao.c biệ thống t khả to lớn Các nhà phát triển phần mềm nhận thấy phát triển phần mềm hướng đối tượng phương pháp n cao Trong báo cáo chúng em trình bầy đến vấn đề liên quan đến phát triển phần mềm hướng đối tượng như: phần mềm hướng đối tượng gì, quy trình phát triển phần mềm, quy trình để phát triển phần mềm hướng đối tượng, Trong báo cáo bày nhiều thiếu sót mong thầy bạn góp ý, đánh giá giúp chúng em hoàn thành đề tài Chúng em xin cảm ơn giúp đỡ tận tình TS: LƯƠNG MẠNH BÁ trình chúng em hồn thành báo cáo Nhóm sinh viên thực Hà nội ngày tháng 10 năm 2012 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Mục lục Chương I: Giới thiệu chung công nghệ phần mềm phần mềm hướng đối tượng I.1: Phần mềm ? I.2: Cơng nghệ phần mềm gì? I.3: Vòng đời phần mềm I.4: Phần mềm hướng đối tượng Chương II: Quy trình phát triển phần mềm I: Khung quy trình phát triển phần mềm chung II: Một số mơ hình phát triển phần mềm III: Các giai đoạn quy trình phát triển phần mềm Chương III: Quy trình phát triển phần mềm hướng đối tượng III.1: Xác định yêu cầu III.2: Phân tích yêu cầu hướng đối tượng (OOA) III.3: Thiết kế hướng đối tượng 14 III.4: Cài đặt 16 III.5: Kiểm thử 18 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Chương I: Giới thiệu chung công nghệ phần mềm phần mềm hướng đối tượng I.1: Phần mềm gì? - Là lệnh ( chương trình máy tính ) thực cung cấp chức kết mong muốn Các cấu trúc liệu làm cho chương trình thao tác thơng tin thích hợp Các tư liệu mơ tả thao tác cách sử dụng chương trình Phần mềm bao gồm: Nhóm kĩ thuật, phương pháp luận Nhóm chương trình Nhóm tư liệu I.2: Cơng nghệ phần mềm gì? Cơng nghệ học phần mềm lĩnh vực khoa học phương pháp luận, kĩ thuật cơng cụ tích hợp quy trình sản xuất vận hành phần mềm nhằm tạo phần mềm với chất lượng mong muốn Lịch sử phát triển công nghệ phần mềm Giai đoạn (1950 – 1960): - Xử lý theo lô, xử lý tập trung, xử lý phân tán, sửa đổi phần mềm Giai đoạn (từ 1960 đến 1970) : - Hệ thống đa chương trình đa nguời dùng - Bắt đầu “khủng hoảng” phần mềm Giai đoạn (từ 1970 đến 1980) - Sự phát triển sử dụng rộng rãi máy tính cá nhân - Sự phát triển cơng ty phần mềm Giai đoạn (từ 1980 đến nay) - Phần cứng ngày phát triển - Hệ thống phần mềm ngày đa dạng, phong phú, xử lý ngày phức tạp, công nghệ ngày phát triển… I.3: Vịng đời phần mềm Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Vịng đời phần mềm thời kỳ tính từ phần mềm sinh chết ( từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng loại bỏ không dùng ) Quy trình phầnmềm(vịng đờiphầnmềm) phân chia thành pha chính:phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểudiễn pha có khác theo người Mơ hình vịng đời phần mền Boehm Insert picture I.4: Phần mềm hướng đối tượng Là phần mềm viết ngôn ngữ hướng đối tượng C#, Java, C++ Ngày phát triển mạnh mẽ phát triển xã hội đặc biệt phát triển công nghệ thông tin Lớp đối tượng - Lớp kiểu liệu mà người ( người dùng định nghĩa ) dùng để tạo đối tượng - Lớp khuân mẫu, định nghĩa đặc điểm tính chất, hành vi, trạng thái chung số đối tượng - Lớp khái niệm mang tính chất trừu tượng hóa - Đối tượng thực thể cụ thể lớp - Lớp “ảo”, đối tượng “thật” - Đối tượng đối tượng giới thực, thực thể cụ thể mà ta sờ, nhìn thấy cảm nhận VD: ô tô, bàn, - Đối tượng phần mềm: Dùng để biểu diễn đối tượng giới thực Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Chương II: Quy trình phát triển phần mềm I: Khung quy trình phát triển phần mềm chung Một khung quy trình chung thiết lập cách xác định số hoạt động khung có khả áp dụng cho dự án phần mềm Tập nhiệm vụ công việc cho phép hoạt động khung thích ứng với đặc tính yêu cầu dự án Các hoạt động bao trùm (umbrella activities) đảm bảo chất lượng phần mềm, độc lập với hoạt động khung diễn suốt quy trình II: Một số mơ hình phát triển phần mềm Mơ hình tuyến tính Đây mơ hình lâu đời ứng dụng rộng rãi cơng nghệ phần mềm mơ hình cịn bộc lộ nhiều nhược điểm Mơ hình thục khả Mơ hình Soft Engineering Institute (SEI) phát triển bao gồm mức: Khởi đầu, lặp lại, xác định, quản trị, tối ưu Mơ hình chế thử Là tiến trình giúp người phát triển phần mềm có khả tạo mơ hình cho phần mềm cần phải xây dựng Nó gồm dạng: Bản vẽ giấy hay mơ hình PC, mẫu làm việc cài đặt tập chức phần mềm mong muốn, chương chình có cần cải tiến Mơ hình phát triển ứng dụng nhanh (RAD) Là quy trình phát triển phầm mềm gia tăng bước với chu chình phát triển ngắn Mơ hình xây dựng dựa hướng thành phần với khả tái sử dụng cao Mơ hình xoắn ốc Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Được phát triển bao gồm tính tốt mơ hình tuyến tính lẫn mơ hình chế thử bổ sung thêm yếu tố – phân tích rủi ro Mơ hình theo thành phần Gắn với công nghệ hướng đối tượng thơng qua việc tạo lớp có chứa liệu giải thuật xử lí liệu Mơ hình hình thức Cịn gọi mơ hình phịng sạch, tập hợp cơng cụ đặc tả tốn học phần mềm máy tính từ khâu định nghĩa phát triển đến kiểm sốt Các cơng nghệ thứ Bao gồm phạm vi rộng công nghệ phần mềm có điểm chung: cơng việc cho phép người phát triển phần mềm xác định số đặc trưng phần mềm mức cao Sau chương trình tự động sinh mã chương trình gốc theo nhu cầu người phát triển Mơ hình chữ V Mô tả dãy hoạt động phát triển kiểm thử Nó nêu bật tồn mức kiểm thử mô tả cách mức kiểm thử liên quan đến pha phát triển khác III: Các giai đoạn quy trình phát triển phần mềm Giai đoạn khảo sát trạng Đây giai đoạn q trình phát triển phần mềm, cho biết trạng tốn Ví trạng mơ hình tổ chức, trạng nghiệp vụ, trạng trình tin học khách hàng mà phần mềm nhắm tới Trong trạng nghiệp vụ quan trọng mục tiêu giai đoạn phải hiểu rõ quy trình nghiệp vụ khách hàng có q trình nghiệp vụ, nghiệp vụ họ làm nào?… Giai đoạn xác định yêu cầu Có loại yêu cầu yêu cầu chức yêu cầu phi chức Yêu cầu chức năng: Đây yêu cầu bất khả kháng mà khách hàng đưa cho bạn Yêu cầu phi chức yêu cầu hệ thống mà đưa ra,ví dụ chức bảo mật thông tin, chức phân quyền người dùng, chức đáp ứng yêu cầu liệu khoảng thời gian bao nhiêu… Giai đoạn phân tích Trong giai đoạn phân tích u cầu, mơ hình hóa chúng kết trình cho sơ đồ lớp đối tượng chương trình Thiết kế Giai đoạn thiết kế thuật tốn, thiết kế mơ hình liệu cho mơ hình lớp liệu mức chi tiết Cài đặt Phần thức bắt tay vào “code” chương trình Kiểm chứng Phần có nhiệm vụ kiểm tra chương trình có lỗi hay khơng, có đáp ứng nhu cầu người dùng hay không?, Triển khai Bạn mang chương trình triển khai Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Chương III: Quy trình phát triển phần mềm hướng đối tượng Để phát triển phần mềm hướng đối tượng ta cần qua bước: Xác định u cầu người sử dụng, mơ hình hóa yêu cầu, phân tích, thiết kế liệu, kiến trúc chương trình, kiểm thử đánh giá III.1: Xác định yêu cầu Yêu cầu người dùng gì? Yêu cầu phần mềm tất yêu cầu phần mềm khách hàng, người sử dụng phần mềm – nêu ra, bao gồm: phần mềm, hiệu phần mềm, yêu cầu thiết kế giao diện, yêu cầu đặc biệt khác Yêu cầu phần mềm phân loại theo thành phần phần mềm: - Các yêu cầu phần mềm (Software) - Các yêu cầu phần cứng (Hardware) - Các yêu cầu liệu (Data) - Các yêu cầu người (People, Users) Tại phải xác định yêu cầu ? Mục đích nắm bắt yêu cầu hướng phát triển đến hệ thống Trả lời câu hỏi sau: Cái người dùng yêu cầu làm gì? Các u cầu sao? Các yêu cầu nào? Các nghiệp vụ người sao? Trong họ trình độ tin học hóa tới đâu?(về trình độ sử dụng máy tính phần cứng họ) Các thói quen nghiệp vụ họ sao? … Một thách thức lớn khách hàng người khơng có kinh nghiệm máy tính lại có khả đọc hiểu kết nắm bắt yêu cầu Do ta phải sử dụng ngơn ngữ khách hàng để nắm bắt yêu cầu Kết nắm bắt yêu cầu đồng thời giúp người quản lí dự án lập kế hoạch bước lặp xuất phẩm cho khách hàng Phân loại yêu cầu Yêu cầu chức Lưu trữ Tra cứu Tính tốn Kết xuất u cầu phi chức Quy trình xác định yêu cầu phần mềm Tìm hiểu quy trình phát triển phần mềm hướng đối tượng a) Phát yêu cầu phần mềm Xác định phương pháp sử dụng phát yêu cầu phần mềm vấn, làm việc nhóm, Tìm kiếm nhân (chuyên gia, người sử dụng) có hiểu biết sâu sắc nhất, chi tiết hệ thống giúp xác định yêu cầu phần mềm Xác định môi trường kĩ thuật Xác định ràng buộc lĩnh vực Thu hút tham gia nhiều chuyên gia, khách hàng để có quan điểm xem xét phần mềm từ nhiều phía khác b) Phân tích yêu cầu phần mềm thương lượng với khách hàng Phân loại yêu cầu phần mềm xếp chúng theo nhóm liên quan Khảo sát tỉ mỉ yêu cầu phần mềm Thẩm định yêu cầu phần mềm theo tính chất: phù hợp, đầy đủ rõ ràng, không trùng lặp Phân tích u cầu dựa nhu cầu địi hỏi khách hàng Thẩm định yêu cầu phần mềm Thẩm định rủi ro xảy với yêu cầu phần mềm Đánh giá thô giá thành thời gian thực yêu cầu phần mềm giá thành sản phẩm phần mềm thời gian thực phần mềm Giải bất đồng với yêu cầu phần mềm với khách hàng sở thảo luận thương lượng với yêu cầu đặt c) Đặc tả yêu cầu phần mềm Đây công việc xây dựng tài liệu sử dụng cơng cụ như: mơ hình hóa, mơ hình tốn học hình thức, tập hợp kịch sử dụng, nguyên mẫu Yêu cầu đặc tả tốt Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Dễ hiểu với người dùng, rắc rối Có quy ước mơ tả Theo phong cách từ xuống Dễ triển khai Các kĩ thuật thu thập yêu cầu Phỏng vấn cá nhân/phỏng vấn nhóm? Phỏng vấn cá nhân Phỏng vấn nhóm Phỏng vấn tự do/phỏng vấn có định hướng? Phỏng vấn tự + Người hỏi có cảm giác thoải mái, cung cấp nhiều thơng tin sâu sắc + Nguy cơ: khơng có thơng tin cần thiết, thơng tin khó hệ thống Phỏng vấn có định hướng + Người hỏi cảm thấy khơng thoải mái, có khả ghi nhận nhận xét, ý kiến, suy nghĩ riêng người vấn, cảm nhận thái độ họ trạng + Có thể định hướng nội dung cần tìm hiểu, hệ thống hóa vấn đề ghi nhận Làm việc với cấp lãnh đạo để nắm mục tiêu hệ thống phần mềm cần xây dựng, đối tượng cần vấn Yêu cầu cấp lãnh đạo thông báo xuống phòng ban, đơn vị để hợp tác Phân tích để xác định đủ đối tượng cần vấn Hẹn lịch làm việc Xác định trước vị trí, trách nhiệm người vấn III.2: Phân tích yêu cầu hướng đối tượng (OOA) Phân tích xem cầu kĩ nghệ hệ thống với thiết kế phần mềm Kĩ nghệ hệ thống máy tính Phân tích yêu cầu phần mềm Thiết kế phần mềm Mục đích OOA: Định nghĩa lớp (và mối quan hệ hành vi liên kết với chúng) phù hợp với vấn đề cần giải Phát triển tập mơ hình mơ tả hệ thống phần mềm máy tính hoạt động để thỏa mãn u cầu người dùng xác định Các phương pháp phân tích hướng đối tượng 1: Phương pháp Booch: Gồm quy trình phát triển vi mơ vĩ mơ Quy trình phân tích vi mơ phương pháp Booch mơ tả sau: Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Xác định lớp đối tượng Xác định ngữ nghĩa lớp đối tượng Xác định mối quan hệ lớp đối tượng Quản lí hoạt động điểu chỉnh thích hợp Thực thi lớp đối tượng (hồn thành mơ hình phân tích) 2: Phương pháp Coad Yourdon: Phác thảo quy trình phân tích Coad Yourdon đề nghị sau: Xác định đối tượng sử dụng tiêu chuẩn “tìm kiếm gì” Xác định cấu trúc tổng quát – đặc tả Xác định cấu trúc toàn thê – phận Xác định chủ đề ( mô tả thành phần hệ thống con) Xác định thuộc tính Xác định dịch vụ 3: Phương pháp Jacobson: Nhấn mạnh vào trường hợp sử dụng – mô tả cách người dùng tương tác với sản phẩm hay hệ thống Phác thảo quy trình phân tích sau: Xác định người sử dụng hệ thống toàn nhiệm vụ họ Xây dựng mơ hình u cầu Xây dựng mơ hình phân tích 4: Phương pháp Rambaugh: Các hoạt động phân tích tạo mơ hình: mơ hình đối tượng, mơ hình động, mơ hình chức Phác thảo quy trình phân tích: Phát triển kê phạm vi vấn đề Xây dựng mơ hình hướng đối tượng Phát triển mơ hình động Xây dựng mơ hình chức cho hệ thống 5: Phương pháp Wirfs – Brock: Không tạo khác biệt rõ ràng phân tích thiết kế Thay vào q trình bắt đầu xác định đặc tả khách hàng kết thúc thiết kế đề xuất Phác thảo quy trình phân tích Wirfs – Brock phát triển sau: Ước lượng đặc tả khách hàng Sử dụng phân tích ngữ pháp để rút lớp ứng viên từ đặc tả Nhóm lớp để xác định lớp Cha Định nghĩa trách nhiệm cho lớp Phân công trách nhiệm cho lớp Xác định cộng tác lớp dựa trách nhiệm Xây dựng mô tả lớp để mối quan hệ kế thừa Xây dựng biểu đồ cộng tác cho hệ thống Thu nhận yêu cầu khách hàng cho hệ thống hướng đối tượng (Object Oriented – OO ) Chọn lớp đối tượng sử dụng yêu cầu hướng dẫn Xác định thuộc tính phương thức cho đối tượng hệ thống Xác định cấu trúc cho lớp tổ chức Xây dựng mơ hình quan hệ đối tượng Xây dựng mơ hình hành vi đối tượng Xem lại phân tích OO 10 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Quy trình OOA Quy trình bắt đầu với việc hiểu cách thức hệ thống mà người sử dụng Khi kịch sử dụng xác định, ta bắt đầu mơ hình hóa hệ thống Trường hợp sử dụng Dựa yêu cầu người dùng, người kĩ sư phần mềm tạo tập kịch xác định luồng sử dụng cho hệ thống Đầu tiên xác định kiểu đối tượng (thiết bị) khác sử dụng hệ thống Các tác nhân mơ tả vai trị mà người hay thiết bị đảm nhận hệ thống Khi xác định xong tác nhân, ta phát triển trường hợp sử dụng mô tả tác nhân tương tác với hệ thống Mơ hình class – responsibility – collaborator (CRC) Mơ hình CRC (mơ hình cộng tác ) cung cấp phương tiện đơn giản để xác định tổ chức lớp thích hợp với yêu cầu hệ thống hay sản phẩm a) Lớp Các đối tượng biểu diễn thơng qua nhiều hình thức có cách biểu diễn đối tượng thơng qua lớp Firesmith mở rộng phân loại kiểu lớp cách gợi ý loại sau Lớp thiết bị: Mơ hình thực thể ngồi cảm biến, moto, bàn phím Lớp thuộc tính: Mơ tả số thuộc tính quan trọng mơi trường Lớp tương tác: Mơ hình tương tác xảy đối tượng Thêm vào đó, lớp đối tượng phân loại tập đặc tính sau: Tính thực, tính bao gồm, tính tuần tự, tồn tại, tính tồn vẹn b) Responsibility Bao gồm thuộc tính phương thức Thuộc tính mơ tả đặc tính lớp, thơng tin mà lớp cần phải có để hồn thành mục tiêu phần mềm mà khách hàng yêu cầu Phương thức rút từ việc thực phân tích ngữ pháp dựa xử lí hệ thống nguyên tắc để phân phối responsibility cho lớp Sự thông minh hệ thống phân phối công Mỗi responsibility phải tổng quan Thông tin hành vi liên quan đến responsibility phải đặt lớp Mỗi thông tin cụ thể phải nằm lớp đơn, không phân bố nhiều lớp Chia sẻ responsibility lớp liên quan thích hợp c) Cộng tác (collaborator) Là hoàn thành responsibility theo cách: Một lớp sử dụng phương pháp lớp để thao tác thuộc tính nó, hồn thành responsibility cụ thể Một lớp cộng tác với lớp khác Xác định cấu trúc Khi lớp đối tượng xác định sử dụng mơ hình CRC, người phân tích bắt đầu tập trung vào cấu trúc mơ hình lớp tổng hợp Cấu trúc tồn thể - phận mơ tả đối tượng liên kết: Xác định chủ đề lớp Một mơ hình phân tích hệ thống phức tạp thường có hàng trăm lớp hàng chục cấu trúc Do cần phải mơ tả ngắn gọn cho cấu trúc 11 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Khi lớp cộng tác với để hoàn thành nhiệm vụ, yêu cầu người sử dụng ta gộp chúng lại thành chủ đề (subject) hay hệ thống Một chương chình bao gồm nhiều hệ thống Mơ hình hóa phân tích hướng đối tượng Mơ hình hóa gì? Giúp đơn giản hóa giới thực mơ hình Giúp hiểu rõ hệ thống góc nhìn Tại phải mơ hình hóa đối tượng Các mơ tả yêu cầu giai đoạn xác định yêu cầu: Chỉ mô tả chủ yếu thông tin liên quan đến việc thực nghiệp vụ giới thực, chưa thể rõ nét việc thực nghiệp vụ máy tính Mơ tả thông văn dễ gây nhầm lẫn khơng trực quan Cần phải mơ hình hóa u cầu Mơ hình đối tượng – quan hệ Mô tả thành phần tĩnh mô hình phân tích u cầu khách hàng Thực qua bước: Một mạng đối tượng cộng tác mơ tả mà khơng có đường có nhãn miêu tả mối quan hệ đối tượng Đặt tên cho nhãn, để tránh mơ hồ dùng mũi tên hướng quan hệ Khi mối quan hệ thiết lập, ước lượng để định kiểu liên kết: 0:1, 1:1 Mơ hình đối tượng - hành vi Mơ hình đối tượng - hành vi cách thức hệ thống phân tích yêu cầu khách hàng đáp ứng kiện bên ngồi Tạo mơ hình cần thực qua bước: Định giá trường hợp sử dụng để hiểu đầy đủ dãy tương tác hệ thống Xác định kiện dẫn đến dãy tương tác hiểu cách thức kiện liên quan đến đối tượng Tạo event trace cho trường hợp sử dụng Xây dựng biểu đồ chuyển trạng thái cho hệ thống Xem lại mơ hình đối tượng – hành vi để kiểm tra tính xác quán UML a) Định nghĩa UML ngôn ngữ thống trực quan giúp công việc xử lý quán, giảm thiểu lỗi xảy UML xây dựng mơ hình xác, rõ ràng đầy đủ Các mơ hình UML kết nối trực tiếp với nhiều ngôn ngữ lập trình UML giúp tài liệu hóa kiến trúc, yêu cầu, kiểm thử, lập kế hoạch dự án, quản lý việc bàn giao phần mềm b) Các biểu đồ UML Biểu đồ use case (Use Case Diagram) Biểu đồ hoạt động (Activity Diagram) Biểu đồ tương tác (Interaction Diagrams) 12 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng ▫ Biểu đồ trình tự (Sequence Diagram) ▫ Biểu đồ giao tiếp/cộng tác (Communication/Collaboration Diagram) Biểu đồ trạng thái (Statechart Diagram) Biểu đồ cấu trúc tĩnh (Static Structure Diagrams) ▫ Biểu đồ lớp (Class Diagram) ▫ Biểu đồ đối tượng (Object Diagram) Biểu đồ thực thi (Implementation Diagrams) ▫ Biểu đồ thành phần (Component Diagram) ▫ Biểu đồ triển khai (Deployment Diagram) c) Ví dụ biểu đồ use care ( Use Case Diagram ) Bài tốn đặt ra: Trong cơng ty thời trang A phịng nhân có nhu cầu quản lý nhân viên công ty cho dễ dàng nên họ định đặt bạn xây dựng cho họ phần mềm phần mềm quản lý Nhân viên cơng ty Hàng ngày nhân viên làm chấm công cách quét thẻ nhân viên qua máy chấm công, hàng ngày nhân viên phòng nhân phải đưa cho trưởng phòng ngày làm vắng mặt phòng tương ứng, tới muộn Cuối tháng phải đưa bảng thống kê xuống phịng kế tốn để tính lương cho nhân viên cơng ty Mỗi có nhu cầu tuyển thêm nhân viên phịng nhân phải thơng báo lên phương tiện, trang web, sau nhân viên phịng nhân tiếp nhận đơn đăng ký ứng viên đăng ký lên lịch vấn cho ứng viên Khi ứng viên vấn hệ thống phải đưa câu hỏi cho ứng viên từ ngân hàng câu hỏi sẵn có cơng ty ứng viên phải trả lời câu hỏi Nếu có ứng viên nhận tổ chức tiếp nhận họ vào cơng ty.(q trình tiếp nhận việc thêm nhân viên vào danh sách nhân viên vào phân vào phịng đó) Với trưởng phịng nhân quyền sửa đổi thơng tin nhân viên cơng ty Thỉnh thoảng nhân viên phịng nhân cần tìm kiếm thơng tin nhân viên để làm cơng việc Khi thêm nhân viên kiểm tra xem nhân viên có cơng ty hay chưa(có trường hợp nhân viên nghĩ việc sau khoảng thời gian họ quay lại công ty làm) Biểu đồ Use Care sau: 13 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng III.3: Thiết kế hướng đối tượng Với hệ thống hướng đối tượng xác định tầng thiết kế sau Tầng hệ thống con: Chứa mô tả hệ thống cho phép hệ thống đạt yêu cầu khách hàng thực hạ tầng kĩ thuật hỗ trợ yêu cầu khách hàng Tầng lớp đối tượng: Chứa phân lớp cho phép hệ thống tạo cách sử dụng tổng qt hóa tính tăng dần đặc tả đích Tầng thơng điệp: Chứa chi tiết cho phép đối tượng giao tiếp Tầng trách nhiệm: Chứa cấu trúc liệu thuật toán thiết kế cho thuộc tính phương thức lớp Các hoạt động pha thiết kế 14 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Định nghĩa hình thức kiểu liệu dịch vụ Các dịch vụ chuyển thành chức pha thiết kế Thiết kế giao diện người dùng Thiết kế sở liệu Ưu điểm thiết kế hướng đối tượng Dễ dàng bảo trì Các đối tượng hiểu thực thể đứng Đối tượng thành phần tái sử dụng Với số HT, ánh xạ từ thực thể thực sang thực thể hệ thống Các phương pháp thiết kế Phương pháp Booch: Quy trình gồm bước: Lập kế hoạch kiến trúc Chiến lược thiết kế Lập kế hoạch phát hành Phương pháp Coad and Yourdon Phương pháp Jacobson: Quy trình phát triển so Jacobson đề nghị: Xem xét thích nghi để mơ hình phân tích lí tưởng phù hợp với môi trường giới thực Tạo khối đối tượng thiết kế Tạo biểu đồ tương tác cho biết cách kích thích chuyển đổi khối Tổ chức khối hệ thống Xem xét lại công việc thiết kế Phương pháp Rambaugh: Quy trình phát triển so Jacobson đề nghị: Thực thiết kế hệ thống Thiết kế đối tượng quản lí Thực kĩ thuật điều khiển xác định thiết kế hệ thống Điều chỉnh cấu trúc lớp để tăng sức mạnh kế thừa Thiết kế thông điệp để thực mối quan hệ đối tượng Đóng gói lớp liên kết module Phương pháp Wirfs – Brock: Quy trình phát triển Wirfs – Brock đề xuất: Xây dựng giao thức cho lớp Tạo đặc tả thiết kế cho hệ thống Mô tả hệ thống theo cách mà thực Thiết kế đối tượng Thiết kế thông điệp Quy trình thiết kế hướng đối tượng Thiết kế hệ thống Đặt tên cho hệ thống thành phần Định danh hệ thống cho xử lí Lựa chọn chiến lược quản trị sử liệu Xác định chuẩn cho phát triển Xác định yêu cầu cài đặt Xác định đối tượng Một mô tả đối tượng dạng sau: Mô tả giao thức: Thiết lập giao diện đối tượng cách xác định thông điệp mà đối tượng nhận phương thức liên quan đối tượng thực nhận thơng điệp 15 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Mô tả thực hiện: Chỉ chi tiết thực cho phương thức cách chuyển thông điệp đối tượng Chi tiết thực bao gồm thông tin phần riêng đối tượng Giao thức mô tả tập thơng điệp thích tương ứng với thông điệp Một mô tả thực đối tượng cung cấp chi tiết bên yêu cầu để thực không cần thiết cho viện dẫn Người thiết kế đối tượng phải cung cấp mô tả thực phải tạo chi tiết bên đối tượng Thiết kế thuật toán cấu trúc liệu Một thuật toán tạo để thực đặc tả cho phương thức Trong nhiều trường hợp, thuật tốn tính tốn đơn giản dãy thủ tục thực module phần mềm tự chứa Cấu trúc liệu thiết kế đồng thời với thuật toán Do phương thức thao tác thuộc tính lớp, thiết kế cấu trúc liệu phản ánh tốt thuộc tính sinh thiết kế thuật toán phương thức tương ứng Các kiểu phương thức chia làm loại chính: Phương thức thao tác liệu Phương thức thực tính tốn Phương thức điều khiển đối tượng cho kiện điều khiển Để tối ưu hóa thiết kế hướng đối tượng Rambaugh đưa gợi ý sau: Xem lại mô hình đối tượng – quan hệ để đảm bảo thiết kế thực sử dụng tài nguyên hiệu nới lỏng ràng buộc thực thêm vào dư thừa thấy cần thiết Xem lại thuộc tính cấu trúc liệu thuật toán tương ứng để tăng cường hiệu xử lí Tạo thuộc tính để giữ thơng tin thừa kế, tránh việc tính tốn lại Thiết kế lớp đối tượng Quá trình thiết kế lớp bao gồm công đoạn sau: Xác định tên lớp đối tượng, xác định quan hệ, xác định thuộc tính, xác định phương thức, xác định lớp cha ( có ) Tên lớp tuân theo số quy tắc: - Tên lớp phải danh từ - Tên lớp phải có chu trình sống mình, phải có thời điểm sinh ra, chết đối tượng - Nó độc lập tương đối tượng khác (tức độc lập đối tượng khác cách tương đối, mặt khác phụ thuộc lẫn đối tượng, thể thức ngồi đời có.) Phần xác định quan hệ Việc xác định quan hệ lớp việc phải lập từ điển quan hệ lớp ví như: lớp A lớp B chẳng hạn Nó có số qui tắc sau để qui ước là: tên quan hệ phải động từ, Nó nói lên phụ thuộc lẫn đối tượng Việc xác định thuộc tính có số qui định sau: tên thuộc tính phải danh từ, phải có lệ thuộc vào đối tựng xét Trong xác định thuộc tính cần ý: thuộc tính phụ thuộc đối tượng thuộc tính thuộc tính đối tượng, 16 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng thuộc tính phụ thuộc vào nhiều đối tượng thuộc tính thuộc tính quan hệ Việc xác định phương thức thực chất hành động, cơng việc, phương thức đó, nên tên phương thức có nhiều loại phương thức xây dựng lớp đối tượng: - Các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo mặc định, phương thức khởi tạo biêt số thuộc tính nó, phương thức phá hủy - Phương thức thuộc nhóm cung cấp (phương thức get) - Các phương thức thuộc nhóm thiết lập (phương thức set) - Các phương thức xử lý tính tốn: phương thức đóng vai trị nơi thực thi tính tốn class tương ứng trước thêm, hay làm với hệ thống liệu - Các phương thức thc nhóm kiểm tra Đây nơi kiểm tra ràng buộc liệu cho class tương ứng bạn Một số quy ước để thiết kế class Để thiết kế class trước tiên bạn phải đưa tên Xác định phương thức, thuộc tính cho class nói Nếu thuộc tính có cấu trúc phức tạp có thuộc tính liên hệ với có ngữ nghĩa cụ thể (ngồi đời có nó) nên tách thành lớp độc lập với Khi hay nhiều lớp có thuộc tính chung nên tách thành lớp cha lớp lớp kế thừa từ lớp cha Khi gặp thuộc tính có khả phân loại số trường hợp ta tách thc tính thành thuộc tính tương ứng Thiết kế mơ hình class B1: Thiết kế class cách nêu B2: Xác định quan hệ class B3: Xác định quan hệ bảng số Bảng số lớp phần mơ tả liệu lớp Có quan hệ bảng số sau: I- Một nhiều A tương ứng với nhiều B 1B tương ứng với 1A II- Một - Một 1A tương ứng với 1B 1B tưng ứng với 1A 1A tương ứng với 1B III - nhiều nhiều 17 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng A tương ứng với nhiều B 1B tương ứng với nhiều A Thiết kế thành phần chương trình giao diện Đây khía cạnh quan trọng chất lượng thiết kế phần mềm Cách tiếp cận hướng đối tượng xác định đối tượng thành phần chương trình, thân liên kết với thành phần khác Chúng ta phải xác định giao diện tồn đối tượng toàn cấu trúc đối tượng Giao diện yêu cầu phải dễ sử dụng III.4: Cài đặt Thực việc xây dựng chương trình ngơn ngữ lập trình Mục đích luồng cơng việc là: - Xác định cách thức viết mã cài đặt - Cài đặt lớp đối tượng thành phần - Tích hợp vào hệ thống thực thi 18 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng a) Vai trò cài đặt vòng đời phần mềm Cài đặt trọng tâm bước lặp giai đoạn Xây dựng Nó tiến hành giai đoạn Chi tiết để tạo khung kiến trúc khả thi Cài đặt tiến hành giai đoạn chuyển giao để xử lí lỗi tìm thấy phát hành phiên beta b) Quy trình cài đặt Cài đặt kiến trúc Xác định thành phần quan trọng mặt kiến trúc, chẳng hạn thành phần thi hành Kiến trúc sư bảo trì, tinh chế cập nhật mơ tả kiến trúc khung nhìn kiến trúc mơ hình cài đặt triển khai Xác định thành phần quan trọng mặt kiến trúc Xác định thành phần chạy ánh xạ chúng lên nút Tích hợp hệ thống Mục tiêu: Tạo kế hoạch tích hợp sản phẩm mô tả sản phẩm yêu cầu bước lặp yêu cầu sản phẩm Tính hợp sản phẩm trước kiểm thử tích hợp Lên kế hoạch sản phẩm Tích hợp sản phẩm 19 Tìm hiểu quy trình phát triển phần mềm hướng đối tượng Thu thập phiên hệ thống cài đặt, biên dịch chúng kết nối chúng vào sản phẩm Cài đặt hệ thống Cài đặt hệ thống để đảm bảo hệ thống hồn thành vai trị sản phẩm Bảo trì nội dung hệ thống III.5: Kiểm thử Sau phần mềm hồn tất Cơng việc cuối kiểm thử nhằm phát lỗi việc xem xét lại đặc tả, thiết kế mã hoá Là khâu mấu chốt đảm bảo chất lượng phần mềm Nguyên tắc kiểm thử: Mọi hoạt động kiểm thử phải tuân theo yêu cầu khách hàng Kiểm thử phải lập kế hoạch trước tiến hành Kiểm thử ban đầu ít, sau q trình lớn dần Khơng thể kiểm thử khía cạnh Để kiểm thử đạt kết cao nhất, trình kiểm thử phải có tham gia bên thứ Mục đích kiểm thử để đảm bảo chất lượng Luồng công việc liên quan đến: Xét duyệt tương tác thành phần hệ thống Xét duyệt tích hợp đắn thành phần Xét duyệt tất yêu cầu cài đặt Đảm bảo phát lỗi trước triển khai hệ thống Các bước kiểm thử: Kiểm thử đơn vị Kiểm thử tích hợp Kiểm thử hệ thống Kiểm thử chấp nhận 20