Mô tả chu trình phát triển phần mềm Mô tả chu trình phát triển phần mềm Bởi: duongkieuhoa tonthathoaan Mô tả chu trình phát triển phần mềm: Software Development – toán phức tạp: Kinh nghiệm nhiều nhà thiết kế phát triển cho thấy phát triển phần mềm toán phức tạp Xin nêu số lý thường kể đến: - Những người phát triển phần mềm khó hiểu cho người dùng cần - Yêu cầu người dùng thường thay đổi thời gian phát triển - Yêu cầu thường miêu tả văn bản, dài dòng, khó hiểu, nhiều chí mâu thuẫn - Đội quân phát triển phần mềm, vốn người "ngoài cuộc", khó nhận thức thấu đáo mối quan hệ tiềm ẩn phức tạp cần thể xác ứng dụng lớn - Khả nắm bắt liệu phức tạp người (tại thời điểm) có hạn - Khó định lượng xác hiệu suất thành phẩm thỏa mãn xác mong chờ từ phía người dùng - Chọn lựa phần cứng phần mềm thích hợp cho giải pháp thách thức lớn Designer Phần mềm cần có khả thích ứng mở rộng Phần mềm thiết kế tốt phần mềm đứng vững trước biến đổi môi trường, dù từ phía cộng đồng người dùng hay từ phía công nghệ Ví dụ phần mềm phát triển cho nhà 1/8 Mô tả chu trình phát triển phần mềm băng cần có khả tái sử dụng cho nhà băng khác với sửa đổi hoàn toàn không cần sửa đổi Phần mềm thoả mãn yêu cầu coi phần mềm có khả thích ứng Một phần mềm có khả mở rộng phần mềm thiết kế cho dễ phát triển theo yêu cầu người dùng mà không cần sửa chữa nhiều Chính vậy, số khiếm khuyết thường gặp phát triển phần mềm là: - Hiểu người dùng cần - Không thể thích ứng cho phù hợp với thay đổi yêu cầu hệ thống - Các Module không khớp với - Phần mềm khó bảo trì nâng cấp, mở rộng - Phát trễ lỗ hổng dự án - Chất lượng phần mềm - Hiệu phần mềm thấp - Các thành viên nhóm thay đổi gì, nào, đâu, phải thay đổi Chu Trình Phát Triển Phần Mềm (Software Development Life Cycle): Vì phát triển phần mềm toán khó, nên có lẽ trước hết ta cần điểm qua số công việc trình Thường người ta hay tập hợp chúng theo tiến trình thời gian cách tương đối, xoay quanh chu trình phần mềm, dẫn tới kết qủa khái niệm Chu Trình Phát Triển Phần Mềm (Software Development Life Cycle - SDLC) sau: Chu Trình Phát Triển Phần Mềm chuỗi hoạt động nhà phân tích (Analyst), nhà thiết kế (Designer), người phát triển (Developer) người dùng (User) để phát triển thực hệ thống thông tin Những hoạt động thực nhiều giai đọan khác Nhà phân tích (Analyst): người nghiên cứu yêu cầu khách hàng/người dùng để định nghĩa phạm vi toán, nhận dạng nhu cầu tổ chức, xác định xem nhân lực, phương pháp công nghệ máy tính để cải thiện cách tốt công tác tổ chức 2/8 Mô tả chu trình phát triển phần mềm Nhà thiết kế (Designer): thiết kế hệ thống theo hướng cấu trúc database, screens, forms reports – định yêu cầu phần cứng phần mềm cho hệ thống cần phát triển Chuyên gia lĩnh vực (Domain Experts): người hiểu thực chất vấn đề tất phức tạp hệ thống cần tin học hoá Họ không thiết phải nhà lập trình, họ giúp nhà lập trình hiểu yêu cầu đặt hệ thống cần phát triển Quá trình phát triển phần mềm có nhiều thuận lợi đội ngũ làm phần mềm có trợ giúp họ Lập trình viên (Programmer): người dựa phân tích thiết kế để viết chương trình (coding) cho hệ thống ngôn ngữ lập trình thống Người dùng (User): đối tượng phục vụ hệ thống cần phát triển Để cho rõ hơn, xin lấy ví dụ vấn đề đơn giản sau: Người bình thường nhìn xe ô tô thường có tranh từ bên sau: Vấn đề Nhìn vấn đề ô tô người bình thường Chuyên gia lĩnh vực giúp nhà phân tích "trình bày lại" vấn đề sau: Nhìn vấn đề ô tô chuyên gia phân tích 3/8 Mô tả chu trình phát triển phần mềm Chính trợ giúp chuyên gia lĩnh vực đóng vai trò quan trọng nên giai đoạn đầu trình phát triển phần mềm, kết phân tích nên thể cho dễ hiểu chuyên gia lĩnh vực Đây môt nhiều lý khiến cho phương pháp hướng đối tượng nhiều người hưởng ứng Các giai đoạn Chu Trình Phát Triển Phần Mềm: Chu trình phần mềm chia thành giai đoạn sau: - Nghiên cứu sơ (Preliminary Investigation hay gọi Feasibility Study) - Phân tích yêu cầu (Analysis) - Thiết kế hệ thống (Design of the System) - Xây dựng phần mềm (Software Construction) - Thử nghiệm hệ thống (System Testing) - Thực hiện, triển khai (System Implementation) - Bảo trì, nâng cấp (System Maintenance) a) Nghiên cứu sơ bộ: Câu hỏi quan trọng phát triển hệ thống hoàn toàn câu hỏi mang tính phương pháp luận Mà câu hỏi kỹ thuật Nó câu hỏi dường đơn giản, thật đặc biệt khó trả lời: “Đây có hệ thống để thực không?” Đáng buồn câu hỏi thực tế thường chẳng đặt lại không trả lời Mặc dù việc lầm lẫn phương pháp hay định sai lầm kỹ thuật dẫn tới thất bại, thường dự án cứu vãn có đầy đủ tài nguyên cố gắng quên nhân viên tài giỏi Nhưng chẳng điều cứu vãn cho hệ thống phần mềm hoàn toàn chẳng cần tới cố gắng tự động hóa quy trình lầm lạc Trước bắt tay vào dự án, bạn phải có ý tưởng cho Ý tưởng song song với việc nắm bắt yêu cầu xuất giai đoạn khởi đầu Nó hoàn tất phát biểu: "Hệ thống mà mong muốn làm việc sau " Trong suốt giai đoạn này, tạo nên tranh ý tưởng đó, nhiều giả thuyết công nhận hay loại bỏ Các hoạt động thời gian thường bao gồm thu thập ý tưởng, nhận biết rủi ro, nhận biết giao diện bên ngoài, nhận biết các chức mà hệ thống cần cung cấp, tạo vài nguyên mẫu dùng để “minh chứng khái niệm hệ thống” Ý tưởng đến từ nhiều nguồn khác nhau: khách hàng, chuyên gia lĩnh vực, nhà phát triển khác, chuyên gia kỹ 4/8 Mô tả chu trình phát triển phần mềm nghệ, nghiên cứu tính khả thi việc xem xét hệ thống khác tồn Một khía cạnh cần nhắc tới code viết thời kỳ thường bị "bỏ đi”, chúng viết nhằm mục đích thẩm tra hay trợ giúp giả thuyết khác nhau, chưa phải thứ code viết theo kết phân tích thiết kế thấu đáo Trong giai đọan nghiên cứu sơ bộ, nhóm phát triển hệ thống cần xem xét yêu cầu doanh nghiệp (cần dùng hệ thống), nguồn tài nguyên sử dụng, công nghệ cộng đồng người dùng ý tưởng họ hệ thống Có thể thực thảo luận, nghiên cứu, xem xét khía cạnh thương mại, phân tích khả lời-lỗ, phân tích trường hợp sử dụng tạo nguyên mẫu để xây dựng nên khái niệm cho hệ thống đích với mục đích, quyền ưu tiên phạm vi Thường giai đoạn người ta tiến hành tạo phiên thô lịch trình kế hoạch sử dụng tài nguyên Một giai đoạn nghiên cứu sơ thích đáng lập nên tập hợp yêu cầu (dù mức độ khái quát cao) hệ thống khả thi mong muốn, kể phương diện kỹ thuật lẫn xã hội Một giai đoạn nghiên cứu sơ không thực thoả đáng dẫn tới hệ thống không mong muốn, đắt tiền, bất khả thi định nghĩa lầm lạc – hệ thống thừơng chẳng hoàn tất hay sử dụng Kết giai đoạn nghiên cứu sơ Báo Cáo Kết Quả Nghiên Cứu Tính Khả Thi Khi hệ thống tương lai chấp nhận dựa báo cáo lúc giai đoạn Phân tích bắt đầu b) Phân tích yêu cầu Sau xem xét tính khả thi hệ thống tạo lập tranh sơ dự án, bước sang giai đoạn thường coi quan trọng công việc lập trình: hiểu hệ thống cần xây dựng Người thực công việc nhà phân tích Quá trình phân tích nhìn chung hệ việc trả lời câu hỏi "Hệ thống cần phải làm gì?" Quá trình phân tích bao gồm việc nghiên cứu chi tiết hệ thống doanh nghiệp thời, tìm cho nguyên lý hoạt động vị trí nâng cao, cải thiện Bên cạnh việc nghiên cứu xem xét chức mà hệ thống cần cung cấp mối quan hệ chúng, bên với phía hệ thống Trong toàn giai đoạn này, nhà phân tích người dùng cần cộng tác mật thiết với để xác định yêu cầu hệ thống, tức tính cần phải đưa vào hệ thống Những mục tiêu cụ thể giai đoạn phân tích là: 5/8 Mô tả chu trình phát triển phần mềm - Xác định hệ thống cần phải làm - Nghiên cứu thấu đáo tất chức cần cung cấp yếu tố liên quan - Xây dựng mô hình nêu bật chất vấn đề từ hướng nhìn có thực (trong đời sống thực) - Trao định nghĩa vấn đề cho chuyên gia lĩnh vực để nhận đánh giá, góp ý - Kết giai đoạn phân tích Đặc Tả Yêu Cầu (Requirements Specifications) c) Thiết kế hệ thống Sau giai đoạn phân tích, yêu cầu cụ thể hệ thống xác định, giai đoạn thiết kế cho yêu cầu Công tác thiết kế xoay quanh câu hỏi chính: Hệ thống làm cách để thỏa mãn yêu cầu nêu Đặc Tả Yêu Cầu? Một số công việc thường thực giai đoạn thiết kế: - Nhận biết form nhập liệu tùy theo thành phần liệu cần nhập - Nhận biết reports output mà hệ thống phải sản sinh - Thiết kế forms (vẽ giấy hay máy tính, sử dụng công cụ thiết kế) - Nhận biết thành phần liệu bảng để tạo database - Ước tính thủ tục giải thích trình xử lý từ input đến output Kết giai đoạn thiết kế Đặc Tả Thiết Kế (Design Specifications) Bản Đặc Tả Thiết Kế Chi Tiết chuyển sang cho lập trình viên để thực giai đoạn xây dựng phần mềm d) Xây dựng phần mềm Đây giai đoạn viết lệnh (code) thực sự, tạo hệ thống Từng người viết code thực yêu cầu nhà thiết kế định sẵn Cũng người viết code chịu trách nhiệm viết tài liệu liên quan đến chương trình, giải thích thủ tục (procedure) mà tạo nên viết lý cho việc Để đảm bảo chương trình viết nên phải thoả mãn yêu cầu có ghi trước Đặc Tả Thiết Kế Chi Tiết, người viết code đồng thời phải tiến hành thử nghiệm 6/8 Mô tả chu trình phát triển phần mềm phần chương trình Phần thử nghiệm giai đoạn chia thành hai bước chính: Thử nghiệm đơn vị: Người viết code chạy thử phần chương trình với liệu giả (test/dummy data) Việc thực theo kế hoạch thử, người viết code soạn Mục đích giai đoạn thử xem chương trình có cho kết mong đợi Giai đoạn thử nghiệm đơn vị nhiều gọi "Thử hộp trắng" (White Box Testing) Thử nghiệm đơn vị độc lập: Công việc thành viên khác nhóm đảm trách Cần chọn người liên quan trực tiếp đến việc viết code đơn vị chương trình cần thử nghiệm để đảm bảo tính “độc lập” Công việc thử đợt thực dựa kế hoạch thử người viết code soạn nên e) Thử nghiệm hệ thống Sau thủ tục thử nghiệm riêng, cần phải thử nghiệm toàn hệ thống Mọi thủ tục tích hợp chạy thử, kiểm tra xem chi tiết ghi Đặc Tả Yêu Cầu mong chờ người dùng có thoả mãn Dữ liệu thử cần chọn lọc đặc biệt, kết cần phân tích để phát lệch lạc so với mong chờ f) Thực hiện, triển khai Trong giai đoạn này, hệ thống vừa phát triển triển khai cho phía người dùng Trước để người dùng thật bắt tay vào sử dụng hệ thống, nhóm nhà phát triển cần tạo file liệu cần thiết huấn luyện cho người dùng, để đảm bảo hệ thống sử dụng hữu hiệu g) Bảo trì, nâng cấp Tùy theo biến đổi môi trường sử dụng, hệ thống trở nên lỗi thời hay cần phải sửa đổi nâng cấp để sử dụng có hiệu Hoạt động bảo trì hệ thống khác biệt tùy theo mức độ sửa đổi nâng cấp cần thiết Sơ đồ tổng quát giai đoạn Chu Trình Phát Triển Phần Mềm: 7/8 Mô tả chu trình phát triển phần mềm Sơ đồ tổng quát giai đoạn Chu Trình Phát Triển Phần Mềm 8/8 ... cần thiết Sơ đồ tổng quát giai đoạn Chu Trình Phát Triển Phần Mềm: 7/8 Mô tả chu trình phát triển phần mềm Sơ đồ tổng quát giai đoạn Chu Trình Phát Triển Phần Mềm 8/8 ... tương đối, xoay quanh chu trình phần mềm, dẫn tới kết qủa khái niệm Chu Trình Phát Triển Phần Mềm (Software Development Life Cycle - SDLC) sau: Chu Trình Phát Triển Phần Mềm chu i hoạt động nhà.. .Mô tả chu trình phát triển phần mềm băng cần có khả tái sử dụng cho nhà băng khác với sửa đổi hoàn toàn không cần sửa đổi Phần mềm thoả mãn yêu cầu coi phần mềm có khả thích ứng Một phần mềm