• Phần mềm (software) là các chương trình chứa các dòng lệnh chỉ thị cho máy tính thực hiện một công việc nào đó + phần mềm không chỉ là các chương trình, dữ liệu, mà còn gồm cả các tài liệu liên quan như các bản đặc tả, thiết kế, hướng dẫn sử dụng, các thông tin cấu hình cần thiết để làm cho các chương trình này có thể vận hành một cách đúng đắn. + vai trò: là linh hồn của hệ thống máy tính Vai trò nền tảng của mọi vấn đề xã hội • Phần cứng: là các thiết bị mang tính vật lí có thể tiếp xúc bằng tay được • Công nghệ phần mềm (software engineering): là quy tắc công nghệ có liên quan đến tất cả các kía cạnh của tiến trình phát triển phần mềm. + Tiến trình phát triển phần mềm là tiến trình xây dựng, phát triển phần mềm hay nâng cấp phần mềm đang có. Nó mô tả tập các hoạt động cần thiết để chuyển đổi từ yêu cầu người sử dụng sang hệ thống phần mềm. + Mô hình phân theo 3 tầng: Tầng quy trình Tầng phương pháp Tầng công cụ
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG THÁI NGUYÊN -o0o BÀI THẢO LUẬN NHÓM Chủ Đề: XÂY DỰNG WEBSITE BÁN HÀNG Tên mơn học: CƠNG NGHỆ PHẦN MỀM Hệ đào tạo: Đại học quy Ngành: Cơng nghệ thơng tin Giảng viên hướng dẫn: Hồng Thị Cành Sinh viên thực hiện: Hoàng Đức Mạnh Lương Văn Hoàn Bùi Thị Ánh Mai Nguyễn Thanh Thủy Lê Thị Thư Trần Tuyết Anh Năm 2022 Chương I ĐẶC TẢ PHẦN MỀM I, Những kiến thức, khái niệm Công nghệ phần mềm Phần mềm (software) chương trình chứa dịng lệnh thị cho máy tính thực cơng việc đó + phần mềm khơng chương trình, liệu, mà gồm tài liệu liên quan đặc tả, thiết kế, hướng dẫn sử dụng, thơng tin cấu hình cần thiết để làm cho chương trình vận hành cách đắn. + vai trò: linh hồn hệ thống máy tính Vai trị tảng vấn đề xã hội Phần cứng: thiết bị mang tính vật lí tiếp xúc tay được Công nghệ phần mềm (software engineering): quy tắc cơng nghệ có liên quan đến tất kía cạnh tiến trình phát triển phần mềm. + Tiến trình phát triển phần mềm tiến trình xây dựng, phát triển phần mềm hay nâng cấp phần mềm có Nó mơ tả tập hoạt động cần thiết để chuyển đổi từ yêu cầu người sử dụng sang hệ thống phần mềm. + Mơ hình phân theo tầng: Tầng quy trình Tầng phương pháp Tầng cơng cụ - Kỹ sư phần mềm ( software engineer): là người biết cách áp dụng rộng rãi kiến thức CNPM, mục tiêu kỹ sư phần mềm sản xuất sản phẩm có chất lượng cao phù hợp với quy trình phát triển chuẩn mực đánh giá, lựa chọn, sử dụng cách tiếp cận có tính hệ thống, chun biệt, rõ ràng việc phát triển, đưa vào ứng dụng, bảo trì, thay phần mềm - Mơ hình quy trình phần mềm gồm có: mơ hình thác nước, mẫu thử, cơng nghệ phần mềm dựa thành phần, xoắn ốc, số mơ hình khác. Các giai đoạn tiến trình quản trị dự án: Xác định: Tìm hiểu để có đánh giá khởi đầu Phân tích: Hệ thống làm Thiết kế: Các phần hệ thống, hệ thống làm việc nào Thực hiện: Lắp ráp thành phần Kiểm thử hệ thống: Làm việc, hệ thống hiệu chỉnh sai sót Kiểm thử chấp nhận: Sự chấp nhận khách hàng Vận hành: Cài đặt rộng rãi hồn thành. Quy trình phần mềm: tập hợp hành động mà mục đích xây dựng phát triển phần mềm Những hành động thường sử dụng là: o Xác định yêu cầu: Đặc tả hệ thống phải làm ràng buộc trong qúa trình xây dựng hệ thống o Phát triển: Xây dựng hệ thống phần mềm o Kiểm thử: Kiểm tra xem liệu phần mềm có thỏa mãn nhu cầu khách hàng o Mở rộng: Điều chỉnh thay đổi phần mềm tương ứng với thay đổi u cấù 1, Mơ hình quy trình phát triển phần mềm: Khái niệm : Mơ hình quy trình phát triển phần mềm thể đơn giản quy trình phần mềm, biểu diễn từ góc độ cụ thể a, Mơ hình thác nước: *Hoạt động : Có hai hoạt động phổ biến thực giai đoạn là: - Kiểm tra – phê chuẩn - Quản lý cấu hình *Các pha mơ hình thác nước : -Trong mơ hình thác nước, năm pha phải thực cách tuần tự; kết thúc pha trước, thực pha Sản phẩm đầu giai đoạn trước trở thành đầu vào giai đoạn sau * Ưu điểm: - Dễ quản lý - Dễ dàng thẩm tra đánh giá - Mang tính tự nhiên sử dụng * Nhược điểm: - Mối quan hệ giai đoạn - Hệ thống phải kết thúc giai đoạn khó thực đầy đủ yêu cầu khách hàng - Khách hàng phải kiên nhẫn => Mơ hình thác nước nên sử dụng đội dự án có kinh nghiệm, yêu cầu từ khách hàng xác định rõ từ đầu có khả thay đổi b, Mơ hình mẫu thử (Prototyping model) – Mơ hình xây dựng tiến triển Thơng thường, khách hàng đưa mục tiêu họ cách chung chung mà họ không đưa cách cụ thể vào, tiến trình xử lý chúng Thêm vào đó, khơng thể khơng quan tâm đến thuật tốn sử dụng, tính tương thích sản phẩm phần mềm với mơi trường như: phần cứng, hệ điều hành Trong trường hợp này, mơ hình mẫu lựa chọn tốt cho người lập trình Mơ hình xây dựng tiến triển dựa ý tưởng xây dựng mẫu thử ban đầu đưa cho người sử dụng xem xét; sau đó, tinh chỉnh mẫu thử qua nhiều phiên thoả mãn yêu cầu người sử dụng dừng lại - Có hai phương pháp để thực mơ hình này: + Phát triển thăm dị: mục đích để làm việc với khách hàng để đưa hệ thống cuối từ đặc tả sơ ban đầu Phương pháp thường bắt đầu thực với yêu cầu tìm hiểu rõ ràng sau đó, bổ sung đặc điểm đề xuất khách hàng Cuối cùng, yêu cầu người sử dụng thoả mãn lúc xây dựng xong hệ thống + Loại bỏ mẫu thử: mục đích để tìm hiểu yêu cầu hệ thống Phương pháp thường bắt đầu với yêu cầu không rõ ràng thơng tin Các mẫu thử xây dựng chuyển giao tới cho người sử dụng Từ đó, ta phân loại yêu cầu thực cần thiết lúc mẫu thử khơng cịn cần thiết Như vậy, mẫu thử có tác dụng để làm sáng tỏ yêu cầu người sử dụng *Ưu điểm: - Chú trọng tái sử dụng mẫu Một phần hệ thống phát triển giai đoạn phân tích phát triển yêu cầu thiết kế - Hoạt động có tham gia người dùng, nên sản phẩm cuối mang tính khách quan, thỏa mãn yêu cầu người sử dụng - Cho phép thay đổi yêu cầu khuyến khích người sử dụng tham gia suốt chu kỳ dự án - Nhanh chóng xác định yêu cầu - Tạo sở ký kết hợp đồng - Giúp đào tạo huấn luyện người sử dụng - Các hoạt đông xảy đồng thời, hoạt động bổ sung cho hoạt động *Nhược điểm :của mơ hình xây dựng tiến triển là: - Thiếu tầm nhìn quy trình Các hệ thống thường hướng cấu trúc nghèo nàn Yêu cầu kỹ đặc biệt (Ví dụ: ngơn ngữ để tạo mẫu thử nhanh chóng) Input/output chưa rõ ràng Khó đánh giá tính hiệu thuật tốn Khó khăn thiết kế: việc phát triển qua nhiều giai đoạn làm phá vỡ kiến trúc tổng quan PM Khó khăn quản lý pha hoạt động đồng thời, mô nhanh nên tài liệu mập mờ không rõ ràng Yêu cầu đội phát triển dự án phải có lực Tốn chi phí lần sửa đổi, đưa mẫu thử Mơ hình xây dựng tiến triển nên áp dụng với hệ thống có tương tác mức độ nhỏ vừa; phần hệ thống lớn (ví dụ giao diện người sử dụng); hệ thống có thời gian chu kỳ tồn ngắn c, Mơ hình phát triển dựa thành phần (Component based software engineering) Mơ hình dựa kỹ thuật tái sử dụng cách có hệ thống; hệ thống tích hợp từ nhiều thành phần có Do vậy, kiến trúc phần mềm hệ thống dựa vào kiến trúc phần mềm thành phần phần mềm tiêu chuẩn nên hệ thống đạt chất lượng cao Phương pháp phát triển dựa thành phần gần tương tự phương pháp phát triển hướng đối tượng Hoạt động công nghệ bắt đầu với lớp tham dự để phát triển hệ thống Nếu lớp tìm thấy thư viện thích nghi tốt, chúng lấy phát triển hệ thống Ngược lại, chúng phát triển để sử dụng bổ sung vào thư viện sử dụng lại Thành phần phần mềm sử dụng lại có độ xác cao nói khơng chứa lỗi Mặc dầu khơng thường xuyên chứng minh mặt hình thức với việc sử dụng lại, lỗi tìm thấy loại trừ; chất lượng thành phần cải thiện kết quả.Khi thành phần sử dụng lại ứng dụng thơng qua tiến trình phần mềm, tốn thời gian để tạo kế hoạch, mơ hình, tài liệu, mã liệu mà chúng cần thiết để tạo hệ thống Thêm vào, chức mức phân phối cho người sử dụng với đầu vào cơng sức hơn, vậy, hiệu suất phần mềm cải thiện *Ưu điểm: - Việc sử dụng thành phần riêng biệt nên thành phần phát triển độc lập Điều làm cho hình thành thư viện thành phần Từ thư viện thành phần dẫn đến việc phát triển hệ thống trở nên nhanh chóng phí cho phát triển PM giảm Bên cạnh đó, thành phần kiểm chứng tính đắn, kiểm thử lỗi logic… Nên hạn chế rủi ro cho hệ thống Đây mạnh mà hệ thống khác khó đạt - Các thành phần tái sử dụng cách hiệu Mỗi lần phát triển hệ thống không cần phải phát triển lại hoàn toàn thành phần mà sử dụng thành phần có để phát triển tiếp Kết thúc trình phát triển hệ thống mới, thành phần đưa vào thư viện thành phần Với việc tái sử dụng thành phần,giá thành giảm cách đáng kể vậy, chất lượng nâng cao , đảm bảo yêu cầu người sử dụng *Nhược điểm: - Các yêu cầu thỏa hiệp tránh khỏi điều dẫn tới hệ thống không đáp ứng nhu cầu thực người dùng.Tìm thư viện thành phần Xây dựng thành phần khơng thích hợp bổ sung thành phần vào thư viện sử dụng lập kế hoạch.Giao tiếp với khách hàng Đánh giá khách hàng Xây dựng hệ thống tích hợp phân tích lỗi.Hợp cho phiên thứ n.Thành phần để xây dựng hệthống sử dụng thành phần thích hợp d, Mơ hình xoắn ốc cịn gọi mơ hình Boehm's Nó xem kết hợp mơ hình thác nước mơ hình mẫu đồng thời thêm thành phần - phân tích rủi ro Trong mơ hình xoắn ốc, quy trình phát triển phần mềm biểu diễn vòng xoắn ốc Mỗi vịng lặp mơ hình biểu diễn giai đoạn (pha) qui trình Vịng lặp tính khả thi hệ thống, vịng lặp xác định yêu cầu, vòng lặp tiếp thiết kế hệ thống… Các rủi ro nhận rõ giải suốt qui trình Các pha quy trình phát triển xoắn ốc bao gồm: • Planning: Xác định mục tiêu, tương tác ràng buộc • Risk analysis: Phân tích lựa chọn định/giải rủi ro • Engineering: Phát triển sản phẩm • Customer eva luation: Đánh giá kết xây dựng * Ưu điểm: - Sau lần tăng vịng chuyển giao kết thực cho khách hành nên chức hệ thống nhìn thấy sớm - Các vịng trước đóng vai trị mẫu thử để giúp tìm hiểu thêm yêu cầu vòng - Những chức hệ thống có thứ tự ưu tiên cao kiểm thử kỹ - Mơ hình xoắn ốc cách tiếp cận thực để phát triển phần mềm hệ thống lớn Vì PM phát triển theo tiến hóa, khách hàng nhà phát triển hiểu tốt rủi ro giảm thiểu sau lần tiến hóa *Nhược điểm : - Mơ hình chưa thực quen thuộc với nhà phát triển mơ hình tuyến tính - Hạn chế lớn mơ hình khả thuyết phục khách hàng giảm thiểu tính rủi ro q trình phát triển Các hoạt động quy trình phần mềm : *Đặc tả phần mềm Đặc tả phần mềm (hay gọi kỹ thuật xác định yêu cầu) quy trình tìm hiểu định nghĩa dịch vụ khách hàng yêu cầu ràng buộc trình vận hành xây dựng hệ thống Quy trình xác định yêu cầu bao gồm bốn pha chính: - Nghiên cứu tính khả thi: Nghiên cứu tính khả thi giúp xác định yêu cầu người sử dụng có thoả mãn công nghệ hay không Về góc độ kinh doanh, nghiên cứu khả thi nhằm xác định hệ thống đưa có mang lại lợi nhuận không Việc nghiên cứu khả thi nên thực cách nhanh chóng khơng q tốn Kết việc nghiên cứu khả thi xác định có nên tiếp tục xây dựng hệ thống hay khơng - Phân tích rút u cầu: quy trình đưa yêu cầu hệ thống thông qua số phương pháp như: quan sát hệ thống tại, vấn thảo luận với người sử dụng, phân tích nhiệm vụ, phân tích tài liệu hệ thống cũ … Trong pha này, phải xây dựng nhiều mơ hình hệ thống mẫu thử - Đặc tả u cầu: Pha tư liệu hố thơng tin thu thập Có hai loại yêu cầu cần xác định: * Yêu cầu người sử dụng: yêu cầu ngôn ngữ tự nhiên Kiểu yêu cầu viết người sử dụng * Yêu cầu hệ thống: tài liệu có cấu trúc, đươc mơ hình hố, mơ tả chi tiết chức năng, dịch vụ ràng buộc vận hành hệ thống Yêu cầu hệ thống định nghĩa cần phải xây dựng, trở thành hợp đồng khách hàng nhà thầu Các yêu cầu hệ thống chia làm loại: + Các yêu cầu hệ thống chức năng: Là dịch vụ mà hệ thống phải cung cấp + Các yêu cầu phi chức năng: Là ràng buộc mà hệ thống phải tuân theo - Đánh giá yêu cầu: pha kiểm tra lại yêu cầu xem chúng có thực tế hay khơng, có thống khơng, có đầy đủ khơng Nếu phát lỗi ta phải chỉnh sửa lỗi II,Thiết kế, đánh giá, cải tiến: 1: BỘ TIÊU CHUẨN CMM, CMMI CMM là chuẩn quản lý quy trình chất lượng của các sản phẩm phần mềm được áp dụng cho từng loại hình công ty khác Nói cách khác là phương pháp phát triển hay sản xuất các sản phẩm phần mềm. CMM là một bộ khung những chuẩn đề cho một tiến trình sản xuất phần mềm hiệu quả, mà nếu các tổ chức áp dụng nó sẽ mang lại sự khả dụng mặt chi phí, thời gian, chức và chất lượng. Cấu trúc của CMM Các level của CMM: bao gồm levels Initial Repeatable Defined Managed Optimising 10 ... ngơn ngữ họ III,Xu hướng lĩnh vực công nghệ phần mềm? ? 3.1: Cơng nghệ phần mềm hướng mơ hình Là cách thiết kế phần mềm tiếp cận việc phát triển hệ thống phần mềm dựa mơ hình Được đưa tổ chức... hướng tác tử cho công nghệ phần mềm Công nghệ phần mềm hướng agent: phân rã toán thành nhiều thành phần tương tác tự trị(agents) mà có mục tiêu cụ thể để đạt tới Thiết kế phần mềm hướng tác tử...Chương I ĐẶC TẢ PHẦN MỀM I, Những kiến thức, khái niệm Công nghệ phần mềm Phần mềm (software) chương trình chứa dịng lệnh thị cho máy tính thực cơng việc đó + phần mềm khơng chương