mở đầu, tổ chức thực hiện dự án, phân tích rủi ro, các yêu cầu về nguồn lực, bảng phân rã công việc, lịch trình dự án, cơ chế điều hành và báo cáo, các kế hoạch phụ trợ. Tiến trình tổng quát lập kế hoạch. Bước xác định dự án có thể xem là giai đoạn tiền kế hoạch: xác định phạm vi và xuất phẩm, tiếp cận chiến lược rủi ro. - Lập bảng phân rã công việc: đội dự án và người quản lý xác định các nhiệm vụ (gói công việc) cần thực hiện để tạo ra các sản phẩm.
- Xác định trình tự công việc: đặt các gói công việc theo một tiến trình có trình tự trước - sau. - Ước lượng các gói công việc: mỗi gói công việc có ước lượng công lao động, số trang thiết bị và thời gian cần thiết để thực hiện. - Lập lịch biểu ban đầu: tính toán thời gian thực hiện dự án, thời gian bắt đầu sớm nhất và kết thúc muộn nhất của từng công việc. - Gán nguồn lực công việc: sau khi gán nguồn lực, cần chính xác hóa lịch biểu khi tính đến các ràng buộc về nguồn lực.
Các nhiệm vụ được lập lịch sao cho tối ưu hóa việc sử dụng lao động và các nguồn lực khác. 16 Kỹ nghệ phần mềm 2. Quản lý cấu hình. Quản lý cầu hình (còn gọi là quản lý mã nguồn) là một công việc quan trọng trong sản xuất phần mềm.
Quản lý cầu hình được tự động hóa thông qua các công cụ. Nhiệm vụ chính của công cụ quản lý là: - Lưu trữ mã nguồn, dữ liệu, tài liệu. - Tạo điểm truy cập duy nhất (đảm bảo tính thống nhất của mã nguồn) cho người lập trình sửa đổi, thêm bớt mã nguồn. Do đó chúng ta có thể dễ dàng: - Kiểm soát được tính thống nhất của mã nguồn.
- Kiểm soát được sự sửa đổi, lý do của sự sửa đổi, lý lịch các lần sửa đổi. - Dễ dàng lưu trữ và truy cập tới các phiên bản khác nhau của phần mềm. - Tối ưu hóa vùng đĩa cần thiết cho lưu trữ. Phương thức hoạt động của các công cụ này là: - Quản lý tập chung (mã nguồn, tư liệu, công cụ phát triển.
- Các tệp được tạo một lần duy nhất, các phiên bản sửa đổi chỉ ghi lại sai phân đối với bản gốc. - Sử dụng phương pháp check out/check in khi sửa đổi tệp. 17 Kỹ nghệ phần mềm Chương 3: Phân tích và đặc tả yêu cầu phần mềm 3. Giới thiệu chung.
Phân tích và đặc tả yêu cầu là bước kỹ thuật đầu tiên trong tiến trình kỹ nghệ phần mềm. Công việc ở bước này là tìm hiểu xem chúng ta phải phát triển cái gì, chứ không phải là phát triển như thế nào. Đích cuối cùng của khâu phân tích là tạo ra đặc tả yêu cầu, là tài liệu ràng buộc giữa khách hàng và người phát triển và là cơ sở của hợp đồng. Hoạt động phân tích yêu cầu là hoạt động phối hợp giữa khách hàng và người phân tích.
Hoạt động phân tích và đặc tả yêu cầu yêu cầu giữ một vai trò đặc biệt quan trọng trong phát triển phần mềm, giúp cho đảm bảo chất lượng của phần mềm (phần mềm đáng tin cậy). Phần mềm đáng tin cậy có nghĩa là phải thực hiện được chính xác, đầy đủ yêu cầu của người sử dụng. Nếu phân tích và đặc tả yêu cầu không tốt dẫn đến hiểu lầm yêu cầu thì việc sửa chữa sẽ trở nên rất tốn kém. Chi phí để sửa chữa sai sót về yêu cầu sẽ tăng lên gấp bội nếu như sai sót đó được phát hiện muộn, ví dụ như ở bước thiết kế hay mã hóa.
Khái niệm phân tích yêu cầu. Thiết lập các dịch vụ mà hệ phải cung cấp và các ràng buộc hệ phải tuân theo khi hoạt động. Việc phân tích, nắm bắt yêu cầu thường gặp các khó khăn như: - Các yêu cầu thường mang tính đặc thù của tổ chức đặt hàng nó, do đó nó thường khó hiểu, khó định nghĩa và không có chuẩn biểu diễn. - Các hệ thống thông tin lớn có nhiều người sử dụng thì các yêu cầu thường rất đa dạng và có các mức ưu tiên khác nhau, thậm chí mâu thuẫn lẫn nhau.
- Người đặt hàng nhiều khi là các nhà quản lý, không phải là người dùng thực sự do đó việc phát biểu yêu cầu thường không chính xác. Các mức yêu cầu: Các yêu cầu phải thể hiện được “những cái mà hệ sẽ làm”, chứ không phải hệ sẽ làm những việc đó như thế nào. Yêu cầu thường được mô tả ở nhiều mức chi tiết khác nhau phục vụ cho các đối tượng đọc khác nhau. Các mức đó có thể là: - Xác định yêu cầu: mô tả trừu tượng mức cao của yêu cầu, hướng vào đối tượng người đọc là người sử dụng, người quản lý.
- Đặc tả yêu cầu: mô tả mức chi tiết về yêu cầu, hướng vào đối tượng người đọc là các kỹ sư phần mềm (người phát triển), kỹ sư hệ thống (sẽ làm việc bảo trì). 18 Kỹ nghệ phần mềm 3. Tiến trình hình thành các yêu cầu.1: Tiến trình hình thành các yêu cầu 3.1 Nghiên cứu khả thi. Đây là giai đoạn có tầm quan trọng đặc biệt, vì nó liên quan đến việc lựa chọn giải pháp.
Người phân tích phải làm rõ được các điểm mạnh và điểm yếu của hệ thống cũ, đánh giá được mức độ, tầm quan trọng của từng vấn đề, định ra các vấn đề cần phải giải quyết. Sau đó người phân tích phải định ra một vài giải pháp có thể (sơ bộ) và so sánh cân nhắc các điểm tốt và không tốt của các giải pháp đó (như tính năng của hệ thống, giá cả cài đặt, bảo trì, việc đào tạo người sử dụng. Mọi dự án đều khả thi khi nguồn tài nguyên vô hạn và thời gian vô hạn. Nhưng việc xây dựng hệ thống lại phải làm với sự hạn hẹp về tài nguyên và khó (nếu không phải là không hiện thực) bảo đảm đúng ngày bàn giao.
Trong giai đoạn nghiên cứu khả thi, chúng ta tập trung vào bốn lĩnh vực quan tâm chính: a. Khả thi về kinh tế. Chi phí phát triển cần phải cân xứng với lợi ích mà hệ thống được xây dựng đem lại. Tính khả thi về kinh tế thể hiện trên các nội dung sau: - Khả năng tài chính của tổ chức cho phép thực hiện dự án.
- Lợi ích mà dự án phát triển hệ thống phần mềm mang lại đủ bù đắp chi phí phải bỏ ra xây dựng nó. - Tổ chức chấp nhận được những chi phí thường xuyên khi hệ thống hoạt động. Khả thi về kỹ thuật. 19 Kỹ nghệ phần mềm Xem xét khả năng kỹ thuật hiện tại có đủ đảm bảo thực hiện giải pháp công nghệ dự định áp dụng hay không như: có sẵn các nhân viên kỹ thuật, các tài nguyên cần thiết về phần cứng, phần mềm đáp ứng cho việc phát triển dự án phần mềm không.
Khả thi về pháp lý. Nghiên cứu và đưa ra phán quyết về có hay không sự xâm phạm, vi phạm pháp luật hay khó khăn pháp lý từ việc xây dựng và vận hành hệ thống. Tính khả thi pháp lý bao gồm một phạm vi rộng các mối quan tâm kể cả hợp đồng, nghĩa vụ pháp lý, sự vi phạm và vô số các bẫy pháp lý khác mà thường là các nhân viên kỹ thuật không biết tới. Khả thi về hoạt động.
Đánh giá tính khả thi của việc vận hành hệ thống. Trong mỗi phương án cần xem xét hệ thống có thể vận hành trôi chảy hay không trong khuôn khổ tổ chức và điều kiện quản lý mà tổ chức đó (người dùng, khách hàng) có. Mức độ các phương án được xem xét tới trong nghiên cứu khả thi thường bị giới hạn bởi các ràng buộc về chi phí và thời gian.2 Phân tích yêu cầu. Sau giai đoạn nghiên cứu khả thi của pha “phân tích và nắm bắt yêu cầu” là giai đoạn “phân tích yêu cầu”.
Trong giai đoạn này, các kỹ sư phát triển phần mềm làm việc với khách hàng sử dụng hệ thống để tìm ra các vấn đề: phạm vi ứng dụng của hệ phần mềm, các dịch vụ mà hệ phải cung cấp, các ràng buộc mà hệ phải tuân theo… Quá trình phân tích yêu cầu đòi hỏi sự tham gia của nhiều người như: người sử dụng hệ thống và các cấp quản lý của họ, những người bị ảnh hưởng bởi việc cài đặt hệ, các kỹ sư phát triển hoặc bảo trì các hệ khác có liên quan,… Phân tích yêu cầu là một công việc hết sức khó khăn vì các nguyên nhân sau: - Khách hàng thường không biết rõ thực sự họ muốn gì, hoặc họ không thể trình bày một cách rõ ràng ý tưởng của họ. Họ cũng có thể đưa ra những đề nghị không thực tế vì họ không biết rõ những chi phí thực sự cho các đề nghị này. - Những người tham gia vào quá trình phân tích yêu cầu phía khách hàng thường phát biểu các yêu cầu theo ngôn ngữ của riêng họ mang tính chất nghiệp vụ. Các kỹ sư phần mềm thường không có nhiều kinh nghiệm trong lĩnh vực của khách hàng.
- Phía khách hàng có thể phát biểu các yêu cầu theo những cách khác nhau. Các kỹ sư phải phát hiện ra những điểm chung cũng như sự mâu thuẫn giữa chúng. 20 Kỹ nghệ phần mềm a. Tiến trình phân tích yêu cầu: Hình 3.1 Tiến trình phân tích yêu cầu - Hiểu phạm vi: hiểu phạm vi ứng dụng của phần mềm.
- Thu thập yêu cầu: các nhà phân tích làm việc với những người tham gia quá trình phân tích yêu cầu phía khách hàng, nhằm tìm ra yêu cầu thực sự của họ. - Phân loại yêu cầu: các yêu cầu được thu thập ban đầu chưa có cấu trúc sẽ được tổ chức và phân chia lại sao cho phù hợp và mang tính hệ thống. - Giải quyết xung đột: nhằm dung hòa các yêu cầu khi chúng có sự xung đột. - Ưu tiên hóa: các nhà phân tích phải trao đổi với khách hàng để tìm ra nhữn yêu cầu quan trọng nhất.
- Thẩm định yêu cầu: các yêu cầu được kiểm tra đễ xem chúng đã đầy đủ, bền vững và thực sự phù hợp với điều mà khách hàng mong muốn hay chưa. Các kỹ thuật được sử dụng trong phân tích yêu cầu: phỏng vấn, bảng câu hỏi, nghiên cứu các tài liệu, quan sát thực tế, phân tích thiết kế nhóm JAD,… b. Chúng ta tạo ra các mô hình để thu được hiểu biết rõ hơn về thực thể thực tế cần xây dựng. Khi thực thể là một vật lý (như toà nhà, máy bay, máy móc) thì ta có thể xây dựng một mô hình giống hệt về hình dạng, nhưng nhỏ hơn về qui mô.