Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Mở đầu
Một số khái niệm cơ bản
Kiến trúc các thành phần của PM
Công nghệ phần mềm
Quy trình Công nghệ phần mềm
Phương pháp, công cụ phát triển PM
Tóm tắt nội dung Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Mở đầu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
nhau. * 2. Kiến trúc các thành phần của PM * Chức năng các thành phần của PM * Bảng tóm tắt các hàm và ý nghĩa * 3. Công nghệ phần mềm Vào khoảng năm 1950 Khi máy tính ra đời thì các phần mềm đầu tiên cũng được ra đời với số lượng rất ít chủ yếu phục vụ cho lĩnh vực tính toán (đặc biệt trong quốc phòng). Đến năm 1960 Số lượng phần mềm đã tăng lên rất nhiều và được ứng dụng rộng rãi trong nhiều lĩnh vực. Vào thời điểm này phát sinh một vấn đề mà các chuyên gia gọi là “Cuộc khủng hoảng phần mềm” thể hiện 2 yếu tố chính: Số lượng các phần mềm tăng vọt Có quá nhiều khuyết điểm trong các phần mềm được dùng trong xã hội lúc bấy giờ. Lịch sử ra đời * Lịch sử ra đời (tt) Có quá nhiều khuyết điểm trong các phần mềm được dùng trong xã hội lúc bấy giờ: Thực hiện không đúng yêu cầu (tính toán sai, không ổn định,…) Thời gian bảo trì nâng cấp quá lâu tốn chi phí cao, hiệu quả thấp. Khó sử dụng Thực hiện chậm Không chuyển đổi dữ liệu giữa các phần mềm … * Lịch sử ra đời (tt) Để giải quyết vấn đề trên thì một Hội nghị đã triệu tập để bàn về cách giải quyết. Sau khi xem xét, phân tích, hội nghị kết luận như sau: Việc tăng vọt số lượng phần mềm là điều tất yếu và sẽ còn tiếp diễn. Các khuyết điểm của phần mềm là do phương pháp, cách thức tiền hành xây dựng phần mềm: Cảm tính: mỗi người theo một phương pháp riêng. Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà ít quan tâm đến các công việc cần làm khác trước khi lập trình như: Khảo sát hiện trạng, Phân tích yêu cầu, Thiết kế,… Thủ công: (không có công cụ nào hỗ trợ). * Lịch sử ra đời (tt) Với kết luận như trên, hội nghị đã đề xuất khai sinh: Ngành Công nghệ phần mềm. Công nghệ phần mềm? Là một ngành khoa học nghiên cứu về việc xây dựng phần mềm có chất lượng cao trong khoảng thời gian và chi phí hợp lý Mục tiêu nghiên cứu: Xây dựng phần mềm có chất lượng Xây dựng phần mềm trong thời gian và chi phí hợp lý. * Tiến trình phát triển * Chất lượng phần mềm Như thế nào là phần mềm chất lượng? Phần mềm có chất lượng là phần mềm thỏa các tính sau: Tính đúng đắn Tính tiện dụng Tính hiệu quả Tính tiến hóa Tính tương thích Tính bảo mật Tính an toàn Ghi chú: Phần mềm không nhất thiết phải thoả mãn hết các tính chất trên. Tuỳ vào loại phần mềm và yêu cầu của người dùng một số tính chất sẽ được chú trọng một số có thể bỏ qua. * Chất lượng phần mềm Đối với người phát triển: “Như thế nào là phần mềm chất lượng?” Đối với người phát triển thì phần mềm có chất lượng là phần mềm thỏa các tính chất: Tính dùng lại (tái sử dụng) Dễ bảo trì Dễ mang chuyển Dễ mở rộng * Chất lượng phần mềm Phần mềm chất lượng là phần mềm thỏa các tính sau: * Chất lượng phần mềm Tính đúng đắn: Phần mềm thực hiện đầy đủ và chính xác các yêu cầu của người dùng. Tính tiện dụng: Dễ học, dễ sử dụng, có giao diện trực quan tự nhiên, thân thiện gần gũi với người sử dụng. Tính hiệu quả: Sử dụng tối ưu các tài nguyên máy tính (CPU- tốc độ, bộ nhớ - dung lượng lưu trữ,…) Tính tương thích: Dễ dàng trao đổi dữ liệu hay phối hợp với các phần mềm khác. Ví dụ : Nhập danh mục sách từ tập tin Excel Gởi báo cáo tổng kết năm học đến phần mềm WinFax,… * Chất lượng phần mềm Tính tiến hóa: Phần mềm dễ sửa đổi theo những yêu cầu mới, ngữ cảnh mới. Sự sửa đổi lý tưởng nhất là do người dùng cuối lựa chọn. Ví dụ: Cho phép người dùng có thể khai báo các thay đổi trong thế giới thực liên quan như Thay đổi về số sách mượn tối đa Thay đổi công thức tính tiền phạt, … Tính bảo mật: Phân quyền người dùng, mã hoá thông tin, mã hoá password, tránh các xâm nhập bất hợp pháp. Tính an toàn: Có cơ chế sao lưu và phục hồi dữ liệu, xác nhận trước khi xoá, không cho phép các thao tác xoá không hợp lệ… * Chất lượng phần mềm Tính dùng lại (tái sử dụng) Phần mềm viết theo hướng đối tượng (bao gồm các thành phần độc lập) dễ dàng sử dụng lại cho phần mềm khác, dự án khác. Dễ bảo trì Khi cần bảo trì dễ dàng biết được thành phần nào bảo trì và việc bảo trì không ảnh hưởng đến các thành phần khác. Dễ mang chuyển Dễ dàng cài đặt, chuyển đổi từ máy này sang mái khác,… Dễ mở rộng Khi cần thêm tính năng, thuộc tính mới không phải phân tích, thiết kế lại từ đầu,… * Các đối tượng nghiên cứu của CNPM 3 đối tượng nghiên cứu chính của ngành CNPM là gì? Qui trình Công Nghệ Phần Mềm Phương Pháp Phát Triển Phần Mềm Công cụ và môi trường phát triển phần mềm (CASE) Các phần mềm này sẽ hỗ trợ các chuyên viên tin học trong các bước xây dựng phần mềm theo một phương pháp nào đó với một qui trình được chọn trước. * Các đối tượng nghiên cứu của CNPM Qui trình Công Nghệ Phần Mềm: Là hệ thống các giai đoạn mà quá trình phát triển phần mềm trải qua. Với mỗi giai đoạn cần xác định rõ mục tiêu kết quả đạt được, kết quả nhận từ giai đoạn trước đó cũng như kết quả chuyển giao cho giai đoạn kế tiếp. Nghiên cứu Phương Pháp Phát Triển Phần Mềm Là hệ thống các hướng dẫn cho phép từng bước thực hiện một giai đoạn nào đó trong qui trình công nghệ phần mềm. Công cụ và môi trường phát triển phần mềm (CASE) Là hệ thống các phần mềm trợ giúp chính cho việc xây dựng phần mềm. * 4. Qui trình Công nghệ phần mềm Qui trình công nghệ phần mềm là tổ hợp các bước, các giai đoạn phải trải qua khi thực hiện việc sản xuất phần mềm. Vấn đề: Các yêu cầu PM Phần mềm * Mô hình thác nước cổ điển Xác định yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng Qui trình 2 giai đoạn 3 giai đoạn 4 giai đoạn 5 giai đoạn * Mô hình thác nước cổ điển * Mô hình thác nước cổ điển Đặc trưng Tuyến tính và tuần tự Không thể quay lui Yêu cầu phải được xác định trước. Ưu điểm Các cột mốc xác định rõ ràng Chỉ một hoạt động (pha) tại một thời điểm Dễ dàng đánh giá tiến độ Tiếp cận dễ hiểu * Mô hình thác nước cổ điển Khuyết điểm Khó có thể xác định hết yêu cầu tại thời điểm bắt đầu dự án, khách hàng chỉ làm việc trong Pha đầu rủi ro cao. Yêu cầu có thể thay đổi Thị trường thay đổi Kỹ thuật thay đổi Nhu cầu của người dùng thay đổi Sản phẩm được hình thành ở giai đoạn cuối của tiến trình * Mô hình thác nước cải tiến Xác định yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng Cho phép quay lui khi phát hiện lỗi trong giai đoạn phía trước * Mô hình phần mềm mẫu (prototype) Thu thập yêu cầu Thiết kế Nhanh Xây dựng Prototype Khách hàng Đánh giá Tinh chế Prototype Bắt đầu Kết thúc Xây dựng Sản phẩm * Mô hình phần mềm mẫu (prototype) Tương tự như thác nước, bổ sung vào giai đoạn thực hiện PM mẫu (prototype) ngay sau khi xác định YC nhằm mục tiêu phát hiện nhanh các sai sót về yêu cầu. * Mô hình phần mềm xoắn ốc * Mô hình phần mềm xoắn ốc Xác định các rủi ro Đặt độ ưu tiên cho các rủi ro Thiết lập các Prototype cho các rủi ro đã xác định và bắt đầu với cái có độ ưu tiên cao nhất. Sử dụng mô hình Waterfall cho mỗi bước phát triển Prototype Nếu một rủi ro giải quyết thành công, đánh giá kết quả và lập kế hoạch cho vòng (Prototype) kế tiếp. Nếu một rủi ro nào không giải quyết được kết thúc dự án ngay lập tức. * Mô hình Agile và Extreme programming Một tập các tiếp cận mới trong việc phát triển PM. Hữu dụng khi yêu cầu mập mờ hoặc có khả năng thay đổi cao. Ý tưởng mang tính đột phá Lập trình nhóm 2 (Pair Programming) Đặc trưng: Không quan trọng việc phân tích, thiết kế Cài đặt sớm (Phần mềm thực thi luôn quan trọng hơn sưu liệu) Sẵn sàng đáp ứng thay đổi. Cộng tác chặt chẽ với khách hàng. * Extreme programming – Đặt trưng Qui trình phát triển nhanh, uyển chuyển. Dựa trên khái niệm “Stories” (những tính năng mà người dùng muốn) Ước lượng thời gian và chi phí cho mỗi story. Chọn story cho lần phát triển kế tiếp. Chia nhỏ công việc trong mỗi lần phát triển. Công việc cho 2 người (Pair programming) Luôn đưa ra các trường hợp kiểm chứng cho từng công việc trước khi thực hiện. Việc tích hợp diễn ra liên tục. * Extreme programming * Mô hình Agile và Extreme programming “Stories” (những tính năng mà người dùng muốn) Spike: những vấn đề gai gốc Interation: Vòng lặp (Chu kỳ) thực hiện 1 story. Test Scenarios: kịch bản test Acceptance Test: Khách hàng trực tiếp test và phê duyệt (nghiệm thu). Customer Approval: KH phê duyệt Lastest Version: phiên bản cuối cùng Bugs: lỗi * Mô hình Agile và Extreme programming Một số đặc trưng khác Khách hàng luôn hiện diện Không có nhóm nào thực hiện quá 2 tuần Không có sự chuyên môn hoá (không phân rõ vai trò). Ưu điểm Gọn, uyển chuyển, phát triển nhanh. Thích hợp cho các tổ chức vừa và nhỏ. * Tổng kết Mỗi mô hình đều có ưu và khuyết điểm riêng. Lựa chọn mô hình thích hợp dựa trên: Phạm vi của tổ chức Trình độ quản lý Kỹ năng của đội ngũ nhân viên Loại sản phẩm thực hiện Có thể kết hợp sử dụng nhiều mô hình cùng lúc. * Sự hỗ trợ của các chuẩn Các chuẩn ISO Các phương thức đánh giá (CMMI,Bootstrap,SPICE…) PSP … * 5. Phương pháp, công cụ phát triển PM Phương pháp phát triển phần mềm. Là hệ thống các hướng dẫn cho phép từng bước thực hiện các công việc trong một giai đoạn nào đó. Một phương pháp thông thường chỉ gắn vào 1 giai đoạn cụ thể (pp phân tích, pp thiết kế, pp kiểm chứng…) tuy nhiên cũng có các phương pháp đưa ra các hướng dẫn đầy đủ trên một số hay toàn bộ các giai đoạn của qui trình CNPM. * Phương pháp phát triển phần mềm (tt) Hệ thống các hướng dẫn của các pp phát triển PM được đưa ra với 2 hình thức chính: Đề xuất cách biểu diễn kết quả chuyển giao trong một giai đoạn (thông thường là các sơ đồ) 2. Đưa ra các bước chi tiết cụ thể trong qui trình đi từ kết quả nhận đến kết quả chuyển giao. * Phương pháp phát triển phần mềm (tt) * Công cụ và môi trường phát triển PM Là các PM hỗ trợ cho chính người phát triển trong quá trình xây dựng PM. Các PM có chung tên gọi là CASE (Computer Aided Software Engineering) tools. Tương tự như phương pháp, các CASE tools có thể hỗ trợ cụ thể trong giai đoạn nào đó hay cũng có thể hỗ trợ 1 số giai đoạn, trong trường hợp này tên gọi chung thường là môi trường phát triển phần mềm SDE (Software Developpment Enviroment) Việc hỗ trợ của các CASE tools trong một giai đoạn nào đó bao gồm 2 hình thức chính: Cho phép lưu trữ, cập nhật trên kết quả chuyển giao với một phương pháp nào đó. Cho phép phát sinh ra kết quả chuyển giao của giai đoạn kế tiếp. * Công cụ và môi trường phát triển PM * Hỏi & Đáp
File đính kèm:
- Bài giảng Nhập môn công nghệ phần mềm - Chương 1 Mở đầu.ppt