BÀI GIẢNG NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

65 769 0
BÀI GIẢNG NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƢỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN -*** - BÀI GIẢNG NHẬP MÔN CÔNG NGHỆ PHẦN MỀM TÊN HỌC PHẦN MÃ HỌC PHẦN TRÌNH ĐỘ ĐÀO TẠO DÙNG CHO SV NGÀNH : CÔNG NGHỆ PHẦN MỀM : 17404 : ĐẠI HỌC CHÍNH QUY : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2011 MỤC LỤC Nội dung Chƣơng 1: Giới thiệu 1.1 Khái niệm phần mềm 1.2 Các đặc điểm phần mềm 1.3 Các ứng dụng phần mềm 1.4 Giới thiệu Công nghệ phần mềm (Software engineering) Chƣơng 2: Các mô hình phát triển phần mềm 2.1 Mô hình thác nước (Waterfall model) 2.2 Mô hình nguyên mẫu (Prototyping model) 2.3 Mô hình phát triển nhanh (RAD model) 2.4 Mô hình tăng trưởng (Incremental model) 2.5 Mô hình xoắn ốc (Spiral model) 2.6 Các mô hình đại (Fourth generation techniques) Chƣơng 3: Khảo sát phân tích yêu cầu 3.1 Thu thập yêu cầu (Requirements elicitation) 3.2 Phân tích yêu cầu (Requirements analysis) 3.3 Đặc tả yêu cầu (Requirements specification) 3.4 Xét duyệt yêu cầu (Requirements validation) Chƣơng 4: Mô hình hóa hệ thống 4.1 Mô hình hóa liệu (Data modeling) 4.2 Mô hình hóa chức (Functional modeling) 4.3 Mô hình hóa luồng thông tin (Information flow modeling) Chƣơng 5: Thiết kế hệ thống 5.1 Quá trình thiết kế (Design process) 5.2 Các nguyên tắc thiết kế (Design principles) Chƣơng 6: Kiểm thử phần mềm 6.1 Mục đích (Testing objectives) 6.2 Nguyên tắc kiểm thử (Testing principles) 6.3 Kiểm thử theo đường (Basic path) 6.4 Kiểm thử theo phân vùng tương đương (Equivalence partitioning) 6.5 Kiểm thử theo giá trị biên (Boundary value analysis) 6.6 Các mức độ kiểm thử (Testing strategy) Trang 5 9 11 13 13 13 15 18 18 28 28 35 37 37 37 38 40 43 46 50 50 50 50 54 56 58 Tên học phần: Nhập môn Công nghệ phần mềm Loại học phần: Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT Mã học phần: 17404 Tổng số TC: Tổng số tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn Đồ án môn học 30 30 0 không không Học phần học trƣớc: Không yêu cầu Học phần tiên quyết: Không yêu cầu Học phần song song: Không yêu cầu Mục tiêu học phần: Cung cấp cho sinh viên kiến thức công nghệ phần mềm Nội dung chủ yếu: Giới thiệu công nghệ phần mềm; Các mô hình phát triển phần mềm; Lượng giá dự án phần mềm; Khảo sát phân tích yêu cầu; Mô hình hóa hệ thống; Thiết kế hệ thống; Kiểm thử phần mềm Nội dung chi tiết: TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH BT KT Chƣơng 1: Giới thiệu 1.1 Khái niệm phần mềm 1.2 Các đặc điểm phần mềm 1.3 Các ứng dụng phần mềm 1.4 Giới thiệu Công nghệ phần mềm (Software engineering) Chƣơng 2: Các mô hình phát triển phần mềm 2.1 Mô hình thác nước (Waterfall model) 2.2 Mô hình nguyên mẫu (Prototyping model) 2.3 Mô hình phát triển nhanh (RAD model) 2.4 Mô hình tăng trưởng (Incremental model) 2.5 Mô hình xoắn ốc (Spiral model) 2.6 Các mô hình đại (Fourth generation techniques) Chƣơng 3: Khảo sát phân tích yêu cầu 3.1 Thu thập yêu cầu (Requirements elicitation) 3.2 Phân tích yêu cầu (Requirements analysis) 3.3 Đặc tả yêu cầu (Requirements specification) 3.4 Xét duyệt yêu cầu (Requirements validation) Chƣơng 4: Mô hình hóa hệ thống 4.1 Mô hình hóa liệu (Data modeling) 4.2 Mô hình hóa chức (Functional modeling) 4.3 Mô hình hóa luồng thông tin (Information flow modeling) Chƣơng 5: Thiết kế hệ thống 5.1 Quá trình thiết kế (Design process) 5.2 Các nguyên tắc thiết kế (Design principles) 5.3 Các khái niệm thiết kế phần mềm (Design concepts) Chƣơng 6: Kiểm thử phần mềm 6.1 Mục đích (Testing objectives) 6.2 Nguyên tắc kiểm thử (Testing principles) 6.3 Kiểm thử theo đường (Basic path) 6.4 Kiểm thử theo phân vùng tương đương (Equivalence partitioning) 2 6 4 4 4 6 TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH BT KT 6.5 Kiểm thử theo giá trị biên (Boundary value analysis) 6.6 Các mức độ kiểm thử (Testing strategy) Nhiệm vụ sinh viên: Tham dự buổi học lý thuyết thực hành, làm tập giao, làm thi kỳ thi kết thúc học phần theo quy định Tài liệu học tập: Roger S Pressman, Software Engineering- A practitioner's Approach, 6th edition, McGrawHill Sommerville, Software Engineering, 7th edition, Pearson education Nguyễn Xuân Huy, Giáo trình công nghệ phần mềm, NXB Trường ĐHBK Hà Nội, 1996 Hình thức tiêu chuẩn đánh giá sinh viên: - Hình thức thi: tự luận trắc nghiệm - Tiêu chuẩn đánh giá sinh viên: vào tham gia học tập sinh viên buổi học lý thuyết thực hành, kết làm tập giao, kết thi học phần thi kết thúc học phần Thang điểm: Thang điểm chữ A, B, C, D, F Điểm đánh giá học phần: Z = 0,2X + 0,8Y Bài giảng tài liệu thức thống Bộ môn Hệ thống Thông tin, Khoa Công nghệ Thông tin dùng để giảng dạy cho sinh viên Ngày phê duyệt: Trƣởng Bộ môn / / Chương 1: Giới thiệu 1.1 Khái niệm phần mềm “Phần mềm tập hợp bao gồm:  Các lệnh (chương trình máy tính) thực hịên đưa hoạt động kết mong muốn  Các cấu trúc liệu làm cho chương trình thao tác thông tin thích hợp  Các tài liệu mô tả thao tác cách dùng chương trình.” 1.2 Các đặc điểm phần mềm Phần mềm phần tử hệ thống logic chưa hệ thống vật lý Do vậy, phần mềm có số đặc trưng khác biệt đáng kể đặc trưng phần cứng Đặc trưng 1: Phần mềm phát triển hay kỹ nghệ hoá, không chế tạo theo nghĩa cổ điển Mặc dầu có số điểm tương đồng phát triển phần mềm chế tạo phần cứng, hai hoạt động khác Trong hai hoạt động này, chất lượng cao đạt tới thông qua thiết kế tốt, giai đoạn chế tạo phần cứng đưa vào vấn đề mà chất lượng không tồn (hay dễ sửa đổi) cho phần mềm Cả hai hoạt động phụ thuộc vào người, mối quan hệ người áp dụng công việc thực hoàn toàn khác Cả hai hoạt động đòi hỏi việc xây dựng "sản phẩm", cách tiếp cận hoàn toàn khác Phần mềm chế tạo hoàn toàn mới, tiền lệ trước tạo lần Đặc trưng 2: Phần mềm không “hỏng đi” Phần mềm không cảm ứng với khiếm khuyết môi trường vốn gây cho phần cứng mòn cũ Phần mềm với liệu đầu vào hợp lý cho kết có ý nghĩa giống nhau, không thay đổi theo thời gian, điều kiện khí hậu, … Tỷ lệ hỏng Chết yểu Tỷ lệ hỏng Giữ tỷ lệ lạc hậu Mòn cũ Thời gian Đường cong hỏng hóc phần cứng Thời gian Đường cong hỏng hóc phần mềm (lý tưởng) Thực tế, phần mềm trải qua thay đổi (bảo trì) Khi thay đổi thực hiện, số khiếm khuyết thêm vào, gây đường cong tỷ lệ hỏng có dấu hiệu hình vẽ Trước đường cong trở tỷ lệ hỏng hóc ổn định ban đầu, yêu cầu khác lại đưa vào, lại gây đường cong phát sinh đỉnh nhọn lần Dần dần, mức tỷ lệ hỏng tối thiểu tăng lên - phần mềm bị thoái hoá thay đổi Nhận xét: Phần cứng hỏng có “vật tư thay thế”, phần mềm thay cho phần mềm Mọi hỏng hóc phần mềm lỗi thiết kế hay tiến trình chuyển thiết kế thành mã hoá lệnh máy thực Do đó, việc bảo trì phần mềm bao gồm việc phụ thêm đáng kể so với bảo trì phần cứng Đặc trưng 3: Phần lớn phần mềm xây dựng theo đơn đặt hàng, lắp ráp từ thành phần có sẵn Cách thiết kế xây dựng phần cứng điều khiển cho sản phẩm dựa vi xử lý: vẽ sơ Thay đổi Tỷ lệ hỏng Đường cong thực tế Đường cong lý tưởng Thời gian Hình 1: Đường cong hỏng hóc thực tế phần mềm đồ mạch số => thực phân tích để đảm bảo chức => phân loại danh mục thành phần => gắn cho mạch tích hợp (thường gọi IC hay chip) số hiệu chức định trước hợp lệ; giao diện xác định rõ; tập hướng dẫn tích hợp chuẩn hoá Đối với phần mềm: Khi xây dựng ta danh mục thành phần Phần mềm đặt hàng với đơn vị hoàn chỉnh, thành phần lắp ráp lại thành chương trình 1.3 Các ứng dụng phần mềm Sản phẩm phần mềm gì? Sản phẩm phần mềm một nhóm chương trình xây dựng để giải vấn đề Ví dụ: chương trình quản lý hoạt động máy móc chương trình ứng dụng Nhóm sản phẩm có Hiện người ta phân chia thành nhóm phần mềm Nhóm 1: Phần mềm hệ thống Là tập hợp chương trình viết để phục vụ cho chương trình khác Chương trình xử lý thông tin phức tạp xác định cấp thấp, tạo môi trường hoạt động (trình biên dịch, trình soạn thảo, quản lý tệp tin, …) Các chương trình đặc trưng tương tác chủ yếu với phần cứng máy tính, phục vụ nhiều người dùng, có cấu trúc liệu phức tạp nhiều giao diện Nhóm 2: Phần mềm thời gian thực Là phần mềm điều phối phân tích hay kiểm soát kiện giới thực chúng xuất Phần mềm thời gian thực bao gồm yếu tố:  Một thành phần thu thập liệu để thu định dạng thông tin từ bên  Một thành phần phân tích để biến đổi thông tin theo yêu cầu ứng dụng  Một thành phần kiểm soát đưa đáp ứng cho môi trường  Một thành phần điều phối để điều hoà thành phần khác cho trì việc đáp ứng thời gian thực Hệ thống thời gian thực phải đáp ứng ràng buộc thời gian chặt chẽ Nhóm 3: Phần mềm nghiệp vụ Ngày nay, xử lý thông tin nghiệp vụ lĩnh vự ứng dụng phần mềm lớn Phần mềm loại phục vụ cho hệ thống rời rạc: hệ thông tin quản lý Các ứng dụng phần mềm nghiệp vụ bao gồm tính toán tương tác (như xử lý giao tác cho điểm bán hàng) ứng dụng xử lý liệu Nhóm 4: Phần mềm khoa học công nghệ Phần mềm đặc trưng thuật toán Phần mềm tạo ứng dụng mới, thiết kế có máy tính trợ giúp (computer aided of design - CAD), có ý đến đặc trưng thời gian thực phần mềm hệ thống Nhóm 5: Phần mềm nhúng Nằm nhớ đọc dùng để điều khiển sản phẩm hệ thống cho người dùng thị trường công nghiệp Có thể thực chức đơn giản mang tính chuyên biệt (huyền bí), ví dụ: điều khiển chức cho lò vi sóng; hay đưa khả điều khiển vận hành (chức số hoá ô-tô, kiểm soát xăng, biểu thị bảng đồng hồ, hệ thống phanh…) Nhóm 6: Phần mềm máy tính cá nhân Loại phần mềm bùng nổ thập kỷ vừa qua (như xử lý văn bản, trang tính, đồ hoạ, quản trị sở liệu) Hiện tiếp tục phát triển biểu thị giao diện người máy, tạo thân thiện, dễ sử dụng cho người dùng Nhóm 7: Phần mềm trí tuệ nhân tạo Dùng thuật toán phi số để giải vấn đề phức tạp mà tính toán hay phân tích trực tiếp quản lý Phần mềm hoạt động mạnh hệ chuyên gia (hệ sở tri thức); lĩnh vực nhận dạng xử lý hình ảnh âm thanh; chứng minh định lý chơi trò chơi Hiện phát triển mạnh mạng nơ-ron nhân tạo: mô cấu trúc việc xử lý não người 1.4 Giới thiệu Công nghệ phần mềm (Software engineering) Công nghệ phần mềm lĩnh vực nghiên cứu tin học nhằm đưa nguyên lý, phương pháp, công cụ, phương tiện giúp cho việc thiết kế cài đặt sản phẩm phần mềm đạt yêu cầu sau cách tốt nhất:  Phải có tính đắn khoa học  Dễ tiếp cận cải tiến  Phổ dụng  Độc lập với thiết bị Bài tập: Trình bày vai trò phần mềm Trình bày đặc điểm phần mềm Các ứng dụng phần mềm Chương 2: Các mô hình phát triển phần mềm 2.1 Mô hình thác nước (Waterfall model) Đôi gọi mô hình tuyến tính hay mô hình thác nước, mô hình gợi ý cách tiếp cận tuần tự, có hệ thống tới việc phát triển phần mềm vốn mức hệ thống tiến dần qua phân tích, thiết kế, mã hoá, kiểm thử hỗ trợ Dưới minh hoạ mô hình thác nước cho kĩ nghệ phần mềm Được mô hình hoá theo chu kì kĩ nghệ qui ước, mô hình thác nước bao gồm hoạt động sau: Kỹ nghệ hệ thống Phân tích định rõ yêu cầu Thiết kế hệ thống phần mềm Mã hoá Kiểm thử đơn vị tích hợp hệ thống Vận hành bảo trì Hình 2: Mô hình thác nƣớc Kĩ nghệ mô hình hoá hệ thống / thông tin Bởi phần mềm phần hệ thống (hay nghiệp vụ) lớn nên công việc việc thiết lập yêu cầu cho phần tử hệ thống cấp phát tập yêu cầu cho phần mềm Quan điểm hệ thống điều chất phần mềm phải tương tác với thành phần khác phần cứng, người CSDL Kĩ nghệ phân tích hệ thống bao gồm việc thu thập yêu cầu mức hệ thống với lượng nhỏ thiết kế phân tích mức đỉnh Kĩ nghệ thông tin bao gồm việc thu thập yêu cầu mức nghiệp vụ chiến lược mức lĩnh vực nghiệp vụ Phân tích yêu cầu phần mềm Tiến trình thu thập yêu cầu tăng cường hội tụ đặc biệt vào phần mềm Để hiểu chất chương trình phải xây dựng, kĩ sư phần mềm ("nhà phân tích") phải hiểu lĩnh vực thông tin (được mô tả phần sau) phần mềm chức cần có, hành vi, hiệu giao diện Các yêu cầu cho hệ thống phần mềm cần phải lập tư liệu xét duyệt với khách hàng 10 Thiết kế Thiết kế phần mềm thực tế tiến trình nhiều bước tập trung vào bốn thuộc tính phân biệt chương trình: cấu trúc liệu, kiến trúc phần mềm, biểu diễn giao diện chi tiết thủ tục (thuật toán) Tiến trình thiết kế dịch yêu cầu thành biểu diễn phần mềm định giá chất lượng trước giai đoạn mã hoá bắt đầu Giống yêu cầu, việc thiết kế phải lập tư liệu trở thành phần cấu hình phần mềm Sinh mã Thiết kế phải dịch thành dạng máy đọc Bước mã hoá thực nhiệm vụ Nếu thiết kế thực theo cách chi tiết việc sinh mã thực cách máy móc Kiểm thử Một mã sinh việc kiểm thử chương trình bắt đầu Tiến trình kiểm thử hội tụ vào nội logic phần mềm, đảm bảo tất câu lệnh kiểm thử, vào bên chức năng; tức tiến hành kiểm thử để làm lộ lỗi đảm bảo vào định tạo kết thống với kết muốn có Vận hành bảo trì Phần mềm chắn phải trải qua thay đổi sau bàn giao cho khách hàng (một ngoại lệ phần mềm nhúng) Thay đổi xuất gặp phải lỗi, phần mềm phải thích ứng với thay đổi môi trường bên (chẳng hạn thay đổi hệ điều hành hay thiết bị ngoại vi mới), hay khách hàng yêu cầu nâng cao chức hay hiệu Việc bảo trì phần mềm phải áp dụng lại bước vòng đời nói cho chương trình chương trình Mô hình tuyến tính mô hình cũ sử dụng rộng rãi cho kĩ nghệ phần mềm Tuy nhiên, trích mô hình làm cho người ủng hộ tích cực phải đặt vấn đề tính hiệu Một số vấn đề gặp phải dùng mô hình tuyến tính là: Các dự án thực tuân theo dòng chảy mà mô hình đề nghị Mặc dầu mô hình tuyến tính cho phép lặp, điều làm gián tiếp Kết thay đổi gây lẫn lộn tổ dự án tiến hành Khách hàng thường khó phát biểu yêu cầu cách tường minh Mô hình tuyến tính đòi hỏi điều thường khó thích hợp với bất trắc tự nhiên tồn vào lúc đầu nhiều dự án Khách hàng phải kiên nhẫn Bản làm việc chương trình có vào lúc cuối thời gian dự án Một sai lầm ngớ ngẩn, đến có chương trình làm việc phát ra, thảm hoạ Trong phân tích thú vị dự án tại, Brada thấy chất tuyến tính vòng đời cổ điển dẫn tới "các trạng thái nghẽn" mà số thành viên tổ dự án phải đợi cho thành viên khác tổ hoàn thành nhiệm vụ phụ thuộc Trong thực tế, thời gian cho việc chờ đợi vượt thời gian dành cho công việc sản xuất Trạng thái nghẽn có khuynh hướng phổ biến vào lúc đầu cuối tiến trình tuyến tính 51 Một số định nghĩa Chuỗi: đường dẫn mà đỉnh bắt đầu đỉnh kết thúc khác nhau, đỉnh bên có bậc vào =1 bậc =1 Các bƣớc thực hiện:  Xây dựng đồ thị chương trình/đồ thị đường dẫn định từ mã nguồn  Tính độ phức tạp đồ thị 52  Xác định tập hợp đường dẫn  Thiết kế trường hợp kiểm thử tương ứng với đường dẫn  Thực thi trường hợp kiểm thử Một đường dẫn đường dẫn nối từ đỉnh bắt đầu đến đỉnh kết thúc Số lượng đường dẫn độc lập cần kiểm thử giá trị V(G) = e-n+2*p Trong đó:  G đồ thị đường dẫn định  V(G) độ phức tạp đồ thị G  e số cạnh, n số đỉnh, p số thành phần Cách xác định đƣờng dẫn Chọn đường dẫn ban đầu tương ứng với thực thi chương trình bình thường (đường dẫn nên có nhiều đỉnh định tốt) Để tìm đường dẫn khác, dò tìm ngược/xuôi đường dẫn ban đầu gặp đỉnh định Thay đổi định đỉnh này, tiếp tục tìm đường dẫn khả thi đỉnh kết thúc Lặp lại bước tất định thay đổi với nhánh sai Ví dụ: 53 Các đường dẫn toán tam giác Các đƣờng dẫn khả thi 54 Kiểm thử theo đường dẫn dựa vào phương pháp Tom McCabe Nó sử dụng đồ thị chương trình để xác định trường hợp kiểm thử Kiểm thử theo đường dẫn sử dụng cho cấp độ kiểm thử đơn vị Nó có nhược điểm người kiểm thử phải có kỹ lập trình đủ tốt để hiểu mã nguồn luồng điều khiển chương trình 6.4 Kiểm thử theo phân vùng tương đương (Equivalence partitioning)  Xem xét miền giá trị biến để chia thành phạm vi tương đương  Bao gồm miền liệu không  Không quan tâm đến trùng lặp Ví dụ Hãy xem xét hàm F với biến đầu vào x1, x2 có giá trị giới hạn nằm khoảng sau: a

Ngày đăng: 06/11/2016, 19:18

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan