1. Trang chủ
  2. » Tất cả

41 cau on tap

8 0 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

CHƯƠNG TỔNG QUAN 1) Phần mềm? Thế nào là phần mềm chất lượng tốt Phần mềm (Software) là một tập hợp những câu lệnh hoặc chỉ thị (Instruction) được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một[.]

CHƯƠNG TỔNG QUAN 1) Phần mềm? Thế phần mềm chất lượng tốt Phần mềm (Software) tập hợp câu lệnh thị (Instruction) viết nhiều ngơn ngữ lập trình theo trật tự xác định, liệu hay tài liệu liên quan nhằm tự động thực số nhiệm vụ hay chức giải vấn đề cụ thể Phần mềm phải đáp ứng chức theo yêu cầu, có hiệu tốt, có khả bảo trì, đáng tin cậy, người sử dụng chấp nhận - Khả bảo trì: phần mềm phải điều chỉnh mở rộng để thoả mãn yêu cầu thay đổi - Mức độ tin cậy: phần mềm phải tin cậy, bảo mật xác - Hiệu quả: phần mềm khơng nên sử dụng lãng phí tài nguyên hệ thống - Khả chấp nhận: người sử dụng phải chấp nhận phần mềm Điều có nghĩa phải dễ hiểu, sử dụng tương thích với hệ thống khác 2) Tiêu chí đánh giá chất lượng phần mềm Tính Một sản phẩm thực gọi thực xác chức đặc tả thỏa mãn mục đích cơng việc khách hàng tính kiểm thử được: Phần mềm kiểm thử phần mềm mà có cách dễ dàng để kiểm tra Đảm bảo thực chức dự định Tính an tồn: Tính an tồn sản phẩm phần mềm đánh giá thông qua: Có chế bảo mật bảo vệ đối tượng hệ thống phát sinh quản lý Bản thân sản phẩm đặt chế bảo mật nhằm chống chép trộm làm biến dạng sản phẩm Tính tồn vẹn Sản phẩm phần mềm có tính tồn vẹn nó: Có chế ngăn ngừa việc thâm nhập bất hợp pháp vào phần mềm hay liệu ngăn ngừa việc phát sinh đối tượng (dữ liệu, đơn thể ) sai quy cách mâu thuẩn với đối tượng sẳn có Không gây nhập nhằng thao tác Đảm bảo quán cú pháp Có chế phục hồi lại toàn phần đối tượng thuộc toàn phần đối tượng thuộc diện quản lý sản phẩm trường hợp có cố hỏng máy, điện đột ngột Tính tiêu chuẩn tính chuẩn Sản phẩm phần mềm cần đạt số tiêu chuẩn tối thiểu thừa nhận thị trường khoa học, chuyển đổi dạng cấu trúc liệu riêng hệ thống sang chuẩn ngược lại Tính chuẩn phần mềm thể sản phẩm phù hợp với chuẩn quốc gia quốc tế Tính độc lập Phần mềm cần nên đảm bảo tính độc lập với đối tượng sau: Độc lập với thiết bị, Độc lập với cấu trúc đối tượng mà sản phẩm quản lý, Độc lập với nội dung đối tượng mà sản phẩm quản lý 3) Các loại yêu cầu với phần mềm Yêu cầu nghiệp vụ: công việc biểu mẫu quy định công thức cách thức tiến hành u cầu chất lượng: tính tiến hóa| tính hiệu tính dể sử dụng tính tương thích u cầu hệ thống: tính an tồn tính bảo mật 4) Vòng đời phần mềm Domain Analysis: Giai đoạn quan trọng Mục tiêu giai đoạn khai thác thu thập yêu cầu Các nhà phân tích đưa thu thập yêu cầu từ chuyên gia bên liên quan Bạn hiểu rõ yêu cầu bao nhiêu, công việc bạn nhẹ nhàng dễ dàng nhiêu Requirement Analysis: Nhiệm vụ quan trọng việc tạo sản phẩm phần mềm phải tách yêu cầu Khách hàng thường biết họ muốn, khơng phải phần mềm nên làm yêu cầu không đầy đủ, không rõ ràng mâu thuẫn Những yêu cầu cần công nhận/xác nhận kỹ sư phần mềm có kỹ kinh nghiệm Scope Analysis: Một yêu cầu thu thập từ khách hàng, phân tích phạm vi phát triển nên xác định ghi rõ Điều thường gọi tài liệu phạm vi Specification: Đó nhiệm vụ mơ tả xác phần mềm viết Trong thực tế, đặc tả thành công viết để hiểu tinh chỉnh ứng dụng phát triển hoàn thiện, theo lý thuyết đặc tả nên quy định cách cẩn thận trước phát triển ứng dụng Đặc tả quan trọng cho đối tác bên tổ chức (stakeholder, client, partner) phải ổn định (ít thay đổi) Một cách tốt để xác định xem đặc tả có đủ xác phải có bên thứ ba xem xét tài liệu đảm bảo yêu cầu hợp lý Software Architecture/Design: Kiến trúc liên quan đến việc bảo đảm hệ thống phần mềm đáp ứng đầy đủ yêu cầu sản phẩm, đảm bảo yêu cầu tương lai giải Nó liên quan đến việc giao tiếp hệ thống phần mềm sản phẩm phần mềm khác, phần cứng hệ điều hành chủ Coding: Thiết kế phải dịch sang dạng máy tính đọc/hiểu Giai đoạn viết mã (code) thực nhiệm vụ Nếu thiết kế thực cách chi tiết, việc viết mã thực mà khơng có nhiều phiền phức, khó khăn Các cơng cụ lập trình trình biên dịch (compilers), phiên dịch (interpreters), gỡ rối (debuggers) vv sử dụng để tạo mã hố Các ngơn ngữ lập trình cấp cao khác C, C + +, Pascal, Java sử dụng để viết mã Tuỳ theo loại ứng dụng mà ngơn ngữ lập trình phù hợp lựa chọn Testing: Một mã tạo ra, thử nghiệm phần mềm bắt đầu Các phương pháp kiểm thử khác sử dụng để làm sáng tỏ lỗi cam kết giai đoạn trước Các công cụ kiểm thử tự động sử dụng để tăng hiệu kiểm thử phần mềm Một số công ty tự xây dựng công cụ kiểm thử để phục vụ cho hoạt động phát triển họ Implementation/deployment: Sau mã kiểm tra cách thích hợp chấp thuận, đưa vào sử dụng thực tế Documentation: Một nhiệm vụ quan trọng viết lưu trữ tài liệu thiết kế nội phần mềm với mục đích trì tăng cường tương lai Software Training and Support: Như phần giai đoạn triển khai, lớp đào tạo cho người sử dụng phần mềm quan trọng Người sử dụng có nhiều câu hỏi vấn đề phần mềm dẫn đến giai đoạn phần mềm Maintenance: Duy trì/bảo trì nâng cấp phần mềm để đối phó với vấn đề phát yêu cầu tốn nhiều thời gian so với việc phát triển ban đầu phần mềm CHƯƠNG QUY TRÌNH VÀ MƠ HÌNH HĨA 5) Quy trình phát triển phần mềm: Water-fall, Spiral Model, Bước lặp, Agile Water-fall: Mơ tả: Mơ hình thác nước mơ hình áp dụng theo tính giai đoạn phát triển phần mềm Có nghĩa là: giai đoạn sau thực tiếp giai đoạn trước kết thúc Không quay lại giai đoạn trước để xử lí thay đổi u cầu Đây coi mơ hình phát triển phần mềm Áp dụng: Thường áp dụng cho dự án không thường xuyên bị thay đổi yêu cầu Ưu điểm: Dễ sử dụng, dễ tiếp cận Các giai đoạn hoạt động xác định rõ ràng Xác nhận giai đoạn, đảm bảo phát sớm lỗi Nhược điểm: Rất khó để quay lại giai đoạn kết thúc Ít tính linh hoạt phạm vi điều chỉnh khó khăn, tốn Mơ tả: Spiral Model: Là mơ hình kết hợp tính mơ hình prototyping mơ hình thác nước Mơ hình xoắn ốc ưa chuộng cho dự án lớn, đắt tiền phức tạp Mơ hình sử dụng nhiều giai đoạn tương tự mơ hình thác nước, thứ tự, plan, đánh giá rủi ro, … Áp dụng: Thường sử dụng cho ứng dụng lớn hệ thống xây dựng theo giai đoạn nhỏ theo phân đoạn Ưu điểm: Estimates (i.e budget, schedule, etc.) trở nên thực tế quy trình làm việc, vấn đề quan trọng phát sớm Có tham gia sớm deverlopers Quản lý rủi ro phát triển hệ thống theo phase Nhược điểm: Chi phí cao thời gian dài để có sản phẩm cuối Phải có kỹ tốt để đánh giá rủi ro giả định Mô tả: bước lặp (Iterative Model) Một mơ hình lặp lặp lại từ start làm đầy đủ spec Thay phát triển phần mềm từ spec đặc tả bắt đầu thực thi mơ hình review để đến yêu cầu cuối Quy trình phát triển lặp lặp lại cho version sản phẩm chu kỳ Áp dụng: Yêu cầu thống hoàn chỉnh, xác định rõ ràng dễ hiểu Yêu cầu cần xác định, số chi tiết đổi theo thời gian Ưu điểm: Xây dựng hoàn thiện bước sản phẩm theo bước Nhận phản hồi người sử dụng từ phác thảo Thời gian làm tài liệu so với thời gian thiết kế Nhược điểm: Mỗi giai đoạn lặp lại cứng nhắc Tốn kiến trúc hệ thống thiết kế vấn đề phát sinh khơng phải tất xảy tồn vịng đời Mơ tả: Agile Model Dựa mơ hình iterative and incremental Các yêu cầu giải pháp phát triển dựa kết hợp function Áp dụng: Nó sử dụng với loại hình dự án nào, cần tham gia tính tương tác khách hàng Ngồi ra, sử dụng khách hàng yêu cầu chức sẵn sàng khoảng thời gian ngắn ( tuần ) Ưu điểm: Giảm thời gian cần thiết để tận dụng số tính hệ thống Kết cuối phần mềm chất lượng cao thời gian hài lịng khách hàng Nhược điểm: Phụ thuộc vào kỹ người phát triển phần mềmScalability Tài liệu thực giai đoạn sau Cần team có kinh nghiệm Needs special skills for the team 6) Ưu điểm, khuyết điểm loại quy trình phát triển phần mềm xem câu 9) 7) So sánh khác biệt mơ hình Water-fall, Water-fall cải tiến Lý hình thành cải tiến Khác nhau:Mơ hình thác nước cải tiến cho phép quay lui phát lỗi giai đoạn pía trước Vì: +có thể dễ phân chia trình xây dựng phần mềm thành giai đoạn hoàn toàn độc lập nhua +thay đổi yêu cầu giảm tới độ tối thiểu dự án băt dầu +dê quản lí +ước lượng thời gian chi phí xác +các pha xác định rỏ ràng 8) Mơ hình Agile? Nó thường áp dụng loại dự án phát triển (lớn, vừa, nhỏ) Cho ví dụ minh họa Mơ hình Agil kết hợp mơ hình lặp (iterative model) mơ hình gia tăng (incremental odel) với việc tập trung vào q trình đáp ứng hài lịng khách hàng việc cung cấp nhanh chóng sản phẩm phần mềm hoạt động Phương pháp Agile chia phần mềm thành khối nhỏ gia tăng (incremental builds) Những khối nhỏ sử dụng phương pháp lặp gồm bước: Planning Requirements Analysis Design Coding Unit Testing and Acceptance Testing CHƯƠNG PHÂN TÍCH KHẢO SÁT YÊU CẦU 9) Phương pháp nắm bắt yêu cầu phần mềm Phương pháp nắm bắt yêu cầu phần mềm xây dựng trì mơ hình use-case để đặc tả góc nhìn từ vào hệ thống, cho ta thấy tất chức mà phần mềm phản đáp ứng cho giới bên ngồi 10) Trình bày tóm tắt kỹ thuật sử dụng việc xác định yêu cầu phần mềm Một số kỹ thuật sử dụng việc xác định yêu cầu phần mềm Phỏng vấn Họp nhóm Quan sát Ấn định công việc tạm thời Điều tra qua câu hỏi Xem xét tài liệu Xem xét phần mềm 11) Nêu ưu điểm khuyết điểm phương pháp vấn nắm bắt yêu cầu thông tin Ưu điểm Phỏng vấn thích hợp cho việc nhận thơng tin đảm bảo số lượng lẫn chất lượng Các kiểu thông tin định tính ý kiến, niềm tin, thói quen, sách mơ tả Các kiểu thơng tin định lượng bao gồm tần suất, số lượng, định lượng mục dùng ứng dụng Nhược điểm Phỏng vấn dạng khác thu thập liệu làm bạn lạc lối, thiếu xác, thơng tin khơng liên quan, khơng thích hợp Bạn cần học đọc ngơn ngữ cử thói quen để định điều cần thiết cho thơng tin Địi hỏi kỹ Có thể có kết thiên vị Địi hỏi người để kiểm tra kết thường khơng thích hợp với số lượng lớn người CHƯƠNG KIỂM THỬ PHẦN MỀM 12) Kiểm thử hộp trắng Kiểm thử hộp trắng (White box testing) kỹ thuật xác minh giúp kỹ sư phần mềm sử dụng để kiểm tra mã code họ hoạt động dự kiến Có hoạt động kiểm thử hộp trắng: Kiểm thử luồng điều khiển Kiểm thử dòng liệu 13) Kiểm thử hộp đen Kiểm thử hộp đen: phương pháp kiểm thử phần mềm thực mà cấu tạo bên phần mềm, cách mà tester kiểm tra xem hệ thống hộp đen, khơng có cách nhìn thấy bên hộp Nó cịn gọi kiểm thử hướng liệu kiểm thử hướng in/out Người kiểm thử nên xây dựng nhóm giá trị đầu vào mà thực thi đầy đủ tất yêu cầu chức chương trình 14) Nguyên lý kiểm thử phần mềm Đau đầu lớn kiểm thử viên bug tìm ẩn ứng dụng Làm để truy lùng hết bug gây khó chịu cho người dùng Một số phương châm chung cho kiểm thử phần mềm , gồm nguyên tắc sau đây: Nguyên tắc – Sự sai lầm việc khơng có lỗi Khơng x bug triệt tránh né bug cách sửa chức thành chức khác không dùng không đáp ứng yêu cầu thiết kế , Fix bug tạm bợ để chương trình khơng có lỗi bàn giao cho khách hàng sử dụng thời gian gây bug thất bại test xong Nguyên tắc 6– Kiểm thử theo ngữ cảnh khác độc lập Việc kiểm thử phụ thuộc vào ngữ cảnh, thực kiểm tra với nhiều ngữ cảnh khác Ví dụ: Kiểm thử cho chương trình tính tốn , cấp cần test cho trường họp cộng trừ nhân chia đủ , Nếu cấp trọng đến số mũ , bậc 2, phương trinh Cấp test đạo hảm, tích phân Ngun tắc – Nghịch lý thuốc trừ sâu Có người nói vui kiểm thử nghệ thuật, nghệ thuật phải có ý tưởng cảm hứng, đơi khi, cảm hứng cạn kiệt, khơng tìm thấy lỗi ca kiểm thử thông thường Cũng giống ta phun loại thuốc trừ sâu với liều lượng số loại sâu lờn thuốc, không diệt ( nên gọi nghịch lý thuốc trừ sâu), Để khắc phục, ta phải thường xuyên làm phong phú testcase thực nhiều trường họp để tránh trường họp Nguyên tắc – Sự tập trung lỗi Tập trung cách cân đối vào mật độ dự kiến lỗi lỗi phát sau kiểm thử moulde Quáchú trọng vào hay vài chức thường gây thiếu sót thời gian release có hạn,dành nhiều thời gian cho mơ-đun khó tránh khỏi việc khơng kịp kiểm thử full case cho mô-đun khác Và Một điều đặc biệt ý, bug mô- đun tất nhiên, chức tương tự liên quan mô-đun khác tất nhiên bị lỗi, Nguyên tắc 3– Kiểm thử sớm Để phát lỗi sớm có thể, kiểm thử nên giai đoạn đầu dự án, giúp phát sớm rủi ro từ giai đoạn đầu Nguyên tắc – Kiểm thử đầy đủ Kiểm thử tất trường họp yếu tố thời gian chi phí, việc phân tích rủi ro đưa mức độ ưu tiên để kiểm tra trường họp cần thiết nhất, có khả gây lỗi nghiêm trọng trước sau đó, tùy thuộc vào tiến trình dự án mà kiểm tra trường họp lại theo mức độ ưu tiên thấp Nguyên tắc – Kiểm thử đưa lỗi Kiểm thử cho thấy phần mềm có lỗi, khơng thể chứng minh phần mềm khơng có lỗi Kiểm thử làm giảm xác suất lỗi chưa tìm thấy cịn phần mềm, chí khơng cịn lỗi nào, khơng phải chứng xác CHƯƠNG VẬN HÀNH BẢO TRÌNH PHẦN MỀM 15) Bảo trì phần mềm phát triển phần mềm có khác biệt gì, áp dụng tồn hay phần quy trình phát triển phần mềm? Giải thích Phát triển phần mềm là việc chuyển nhu cầu người dùng mục tiêu tiếp thị thành sản phẩm phần mềm Bảo trì phần mềm (tiếng Anh software maintenance) bao gồm điều chỉnh lỗi mà chưa phát giai đoạn trước chu kỳ sống  phần mềm, nâng cấp tính sử dụng an toàn vận hành phần mềm 16) Các loại bảo trì phần mềm Bảo trì phần mềm chia thành bốn loại:    Sửa lại cho (corrective): việc sửa lỗi hỏng hóc phát sinh Các lỗi lỗi thiết kế, lỗi logic lỗi coding sản phẩm Ngoài ra, lỗi q trình xử lý liệu, hoạt động hệ thống Thích ứng (adaptative): việc chỉnh sửa phần mềm cho phù hợp với môi trường thay đổi sản phẩm Môi trường có nghĩa tất yếu tố bên ngồi sản phẩm quy tắc kinh doanh, luật pháp, phương thức làm việc, Hoàn thiện: chỉnh sửa để đáp ứng yêu cầu thay đổi người sử dụng Loại tập trung vào nâng cao chức hệ thống, hoạt động tăng cường hiệu hệ thống, đơn giản cải thiện giao diện Nguyên nhân với phần mềm thành công, người sử dụng bắt đầu khám phá yêu cầu mới, yêu cầu mà họ đề ban đầu, đó, cần cải tiến chức  Bảo vệ (preventive): mục đích làm hệ thống dễ dàng bảo trì lần ... phát triển nên xác định ghi rõ Điều thường gọi tài liệu phạm vi Specification: Đó nhiệm vụ mơ tả xác phần mềm viết Trong thực tế, đặc tả thành công viết để hiểu tinh chỉnh ứng dụng phát triển... để phục vụ cho hoạt động phát triển họ Implementation/deployment: Sau mã kiểm tra cách thích hợp chấp thuận, đưa vào sử dụng thực tế Documentation: Một nhiệm vụ quan trọng viết lưu trữ tài liệu... tả bắt đầu thực thi mơ hình review để đến yêu cầu cuối Quy trình phát triển lặp lặp lại cho version sản phẩm chu kỳ Áp dụng: Yêu cầu thống hoàn chỉnh, xác định rõ ràng dễ hiểu Yêu cầu cần xác định,

Ngày đăng: 27/02/2023, 22:05

w