Bài giảng Nhập môn Công nghệ phần mềm - Phần 1: Giới thiệu chung về công nghệ phần mềm cung cấp cho người học các kiến thức: Định nghĩa chung về phần mềm, kiến trúc phần mềm, các khái niệm, đặc tính chung của phần mềm,... Mời các bạn cùng tham khảo nội dung chi tiết.
9/4/2011 Cấu trúc môn học Nhập môn Công nghệ học Phần mềm • 45 tiết + Đồ án mơn học • Cần kiến thức CNTT • Cung cấp nguyên lý chung Công nghệ học Phần mềm (CNHPM) • Cung cấp kiến thức để học mơn chun ngành hẹp Phân tích thiết kế phần mềm, Xây dựng đánh giá phần mềm, Quản trị dự án phần mềm, (Introduction to Software Engineering) Department of Software Engineering Faculty of Information Technology Hanoi University of Technology TEL: 04-8682595 FAX: 04-8692906 Email: cnpm@it-hut.edu.vn Dept of SE, 2001 HUT, Falt of IT SE-I.1 HUT, Falt of IT Cấu trúc mơn học (tiếp) • R Pressman, Software Engineering: A Practioner’s Approach 5th Ed., McGraw-Hill, 2001 • R Pressman, Kỹ nghệ phần mềm Tập 1, 2, NXB Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung Việt) • I Sommerville, Software Engineering 5th Ed., Addison-Wesley, 1995 • K Kawamura, Nhập mơn Cơng nghệ học Phần mềm NXB Kinki-Kagaku, Tokyo, 2001 (Tiếng Nhật) – Giới thiệu chung CNHPM (3 buổi) – Quản lý dự án PM (2b) – Yêu cầu người dùng (1b) – Thiết kế lập trình (2b) – Kiểm thử bảo trì (2b) – Chủ đề nâng cao tổng kết (1b+1b) • Đánh giá: Thi hết mơn + Đồ án môn học Dept of SE, 2001 SE-I.3 Phần I Giới thiệu chung CNHPM CuuDuongThanCong.com Dept of SE, 2001 Dept of SE, 2001 SE-I.4 1.1 Định nghĩa chung phần mềm Định nghĩa chung phần mềm Kiến trúc phần mềm Các khái niệm Đặc tính chung phần mềm Thế phần mềm tốt ? Các ứng dụng phần mềm HUT, Falt of IT HUT, Falt of IT • Phần mềm (Software - SW) khái niệm đối nghĩa với phần cứng (Hardware - HW), nhiên, khái niệm tương đối • Từ xưa, SW thứ cho không bán kèm theo máy (HW) • Dần dần, giá thành SW ngày cao cao HW Chương 1: Bản chất phần mềm 1.1 1.2 1.3 1.4 1.5 1.6 SE-I.2 Tài liệu tham khảo • Nội dung: gồm phần với 11 chương HUT, Falt of IT Dept of SE, 2001 SE-I.5 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.6 9/4/2011 Các đặc tính SW HW HW • • • • • • Các lệnh (chương trình máy tính) thực cung cấp chức 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ư liệu mơ tả thao tác cách sử dụng chương trình SW Vật “cứng” Kim loại Vật chất Hữu hình Sản xuất cơng nghiệp máy móc • Định lượng • Hỏng hóc, hao mịn • • • • • Vật “mềm” Kỹ thuật sử dụng Trừu tượng Vô hình Sản xuất người • Định tính • Khơng hao mịn Dept of SE, 2001 HUT, Falt of IT Định nghĩa 1: Phần mềm SE-I.7 HUT, Falt of IT SW đối nghĩa với HW Dept of SE, 2001 SE-I.8 Định nghĩa • Vai trị SW ngày thể trội • Máy tính hộp khơng có SW • Ngày nay, SW định chất lượng hệ thống máy tính (HTMT), chủ đề cốt lõi, trung tâm HTMT • Hệ thống máy tính gồm HW SW HUT, Falt of IT Dept of SE, 2001 Trong hệ thống máy tính, trừ bỏ thiết bị loại phụ kiện phần cịn lại phần mềm (SW) • Nghĩa hẹp: SW dịch vụ chương trình để tăng khả xử lý phần cứng máy tính (như hệ điều hành - OS) • Nghĩa rộng: SW tất kỹ thuật ứng dụng để thực dịch vụ chức cho mục đích phần cứng SE-I.9 HUT, Falt of IT SW theo nghĩa rộng Dept of SE, 2001 SE-I.10 Phần mềm ? • Khơng SW SW ứng dụng • Phải gồm khả năng, kinh nghiệm thực tiễn kỹ kỹ sư (người chế phần mềm): Know-how of Software Engineer • Là tất kỹ thuật làm cho sử dụng phần cứng máy tính đạt hiệu cao Nhóm Kỹ thuật, Phương pháp luận Nhóm chương trình Nhóm tư liệu Kinh nghiệm kỹ sư, know-how HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.11 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.12 9/4/2011 Nhóm chương trình Nhóm kỹ thuật, phương pháp luận • • • • • Là phần giao diện với phần cứng, tạo thành từ nhóm lệnh thị cho máy tính biết trình tự thao tác xử lý liệu • Phần mềm bản: với chức cung cấp môi trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu xử lý phần cứng (ví dụ OS chương trình hệ thống) • Phần mềm ứng dụng: dùng để xử lý nghiệp vụ thích hợp (quản lý, kế tốn, ), phần mềm đóng gói, phần mềm người dùng, Các khái niệm trình tự cụ thể hóa hệ thống Các phương pháp tiếp cận giải vấn đề Các trình tự thiết kế phát triển chuẩn hóa Các phương pháp đặc tả yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, tồn quy trình quản lý phát triển phần mềm Dept of SE, 2001 HUT, Falt of IT SE-I.13 Dept of SE, 2001 HUT, Falt of IT SE-I.14 Nhóm tư liệu Những yếu tố khác • Những tư liệu hữu ích, có giá trị cao cần thiết để phát triển, vận hành bảo trì phần mềm • Để chế phần mềm với độ tin cậy cao cần tạo tư liệu chất lượng cao: đặc tả yêu cầu, mô tả thiết kế loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác • Sản xuất phần mềm phụ thuộc nhiều vào người (kỹ sư phần mềm) Khả hệ thống hóa trừu tượng, khả lập trình, kỹ công nghệ, kinh nghiệm làm việc, tầm bao quát, : khác người • Phần mềm phụ thuộc nhiều vào ý tưởng (idea) kỹ (know-how) người/nhóm tác giả Dept of SE, 2001 HUT, Falt of IT SE-I.15 Dept of SE, 2001 HUT, Falt of IT 1.2 Kiến trúc phần mềm SE-I.16 Kiến trúc phần mềm 1.2.1 Phần mềm nhìn từ cấu trúc phân cấp System • Cấu trúc phần mềm cấu trúc phân cấp (hierarchical structure): mức hệ thống (system), hệ thống (subsystems) • Dưới hệ thống chương trình • Dưới chương trình Modules Subroutines với đối số (arguments) Subsystem Subsystem Master files Job unit Program Module Temporary Program Jobstep unit files Arguments Module Subroutine Arguments Member unit Common Module HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.17 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.18 9/4/2011 Cấu trúc phần mềm 1.2.2 Phần mềm nhìn từ cấu trúc thủ tục • Hai yếu tố cấu thành phần mềm Dept of SE, 2001 HUT, Falt of IT Fuction A Function B Function D SE-I.19 Dept of SE, 2001 HUT, Falt of IT SE-I.21 Các khái niệm (Software concepts) • Khi chế tác phần mềm cần nhiều kỹ thuật – Phương pháp luận (Methodology): chuẩn mực để chế tạo phần mềm với tiêu định tính – Các phương pháp kỹ thuật (Techniques): trình tự cụ thể để chế tạo phần mềm cách tiếp cận khoa học mang tính định lượng • Từ phương pháp luận triển khai đến kỹ thuật Dept of SE, 2001 HUT, Falt of IT Phân tích cấu trúc Tính Mơđun Thiết kế cấu trúc Chi tiết hóa dần Lập trình cấu trúc Trừu tượng hóa Dữ liệu trừu tượng (Che giấu t.tin) Hướng đối tượng Khái niệm phần mềm CuuDuongThanCong.com Dept of SE, 2001 SE-I.22 Từ phương pháp luận phần mềm sang kỹ thuật phần mềm • Khái niệm tính mơđun (modularity concept) • Khái niệm chi tiết hóa dần bước (stepwise refinement concept) • Khái niệm trừu tượng hóa (abstraction concept): thủ tục, điều khiển, liệu • Khái niệm che giấu thơng tin (information hiding concept) • Khái niệm hướng đối tượng (object oriented) HUT, Falt of IT SE-I.20 1.3 Các khái niệm • Là quan hệ trình tự mà phần mềm có • Thuật tốn với phép lặp, rẽ nhánh, điều khiển luồng xử lý (quay lui hay bỏ qua) • Là cấu trúc lơgic biểu thị chức có phần mềm trình tự thực chúng • Thiết kế cấu trúc trước sang chức Dept of SE, 2001 Function F Function E Cấu trúc chiều ngang (Horizontal structure) Thủ tục (procedure) phần mềm HUT, Falt of IT Function C Cấu trúc chiều đứng (Vertical structure) – Phương diện cấu trúc – Phương diện thủ tục • Cấu trúc phần mềm: biểu thị kiến trúc chức mà phần mềm có điều kiện phân cấp chức (thiết kế cấu trúc) • Thiết kế chức năng: theo chiều đứng (càng sâu phức tạp) chiều ngang (càng rộng nhiều chức năng, qui mô lớn) SE-I.23 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.24 9/4/2011 1.3.1 Tính mơđun (Modularity) Chuẩn phân chia mơđun Cấu trúc rộng chiều ngang • Là khả phân chia phần mềm thành môđun ứng với chức năng, đồng thời cho phép quản lý tổng thể: khái niệm phân chia trộn (partion and merge) • Hai phương pháp phân chia mơđun theo chiều SW • Quan hệ môđun: qua đối số (arguments) Dept of SE, 2001 HUT, Falt of IT SE-I.25 Đặc tả yêu cầu bước Ngơn ngữ chương trình HUT, Falt of IT Trừu tượng hóa mức cao: Thế giới bên ngồi, trạng thái chưa rõ ràng Trừu tượng hóa mức trung gian: Xác định yêu cầu đặc tả định nghĩa yêu cầu Dept of SE, 2001 SE-I.27 Dept of SE, 2001 HUT, Falt of IT Tìm kiếm giá trị (pp nhị phân) Nhập giá trị K Lặp lại tìm kiếm K phạm vi tìmkiếm In vị trí (nếu có) CuuDuongThanCong.com Xác lập phạm vi mảng số Lặp lại xử lý tìm kiếm giá trị K phạm vi tìm kiếm Tìm kiếm giá trị (pp nhị phân) Dept of SE, 2001 SE-I.28 Cụ thể hóa bước Nhận giá trị nhóm N số HUT, Falt of IT SE-I.26 Trừu tượng hóa mức thấp: Từng lệnh chương trình viết ngơn ngữ thủ tục Cụ thể hóa thủ tục qua chức Bài toán cho Dept of SE, 2001 HUT, Falt of IT • Bài tốn: từ nhóm N số khác tăng dần, tìm số có giá trị K (nhập từ vào) in vị trí • Giải bước từ khái niệm đến chi tiết hóa câu lệnh ngơn ngữ lập trình • Chọn giải thuật tìm kiếm nhị phân (pp nhị phân) Cách tiếp cận từ xuống (top-down approach) Chi tiết hóa Điều khiển phức tạp dần Ví dụ: Trình tự giải vấn đề từ mức thiết kế chương trình đến mức lập trình 1.3.2 Chi tiết hóa bước Thế giới bên ngồi Tính độc lập dần Phân chia chiều sâu Cấu trúc sâu chiều đứng – sâu (depth, thẳng đứng): điều khiển phức tạp dần – rộng (width, nằm ngang): môđun phụ thuộc dần Phân chia chiều rộng Tìm vị trí phân đôi mảng So sánh K với giá trị Đặt lại phạm vi tìm kiếm SE-I.29 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.30 9/4/2011 1.3.3 Khái niệm Che giấu thông tin Mức mô tả chương trình (bằng PDL) Bắt đầu Đọc K Nhận giá trị cho mảng chiều A(I), (I =1, 2, ,.N) MIN = MAX = N DO WHILE (Có giá trị K khơng, MIN > MAX) Lấy MID = (MIN + MAX) / IF A(MID) > K THEN MAX = MID - ELSE IF A(MID) < K THEN MIN = MID + ELSE In giá trị MID ENDIF ENDIF ENDDO KếtThúc Dept of SE, 2001 HUT, Falt of IT • Để phân rã phần mềm thành môđun cách tốt nhất, cần tuân theo nguyên lý che giấu thông tin: “các môđun nên đặc trưng định thiết kế cho mơđun ẩn kín mơđun khác” [Parnas1972] • Rất hữu ích cho kiểm thử bảo trì phần mềm SE-I.31 Khái niệm Trừu tượng hóa Dept of SE, 2001 SE-I.33 • Là hàng hóa vơ hình, khơng nhìn thấy • Chất lượng phần mềm: khơng mịn mà có xu hướng tốt lên sau lần có lỗi (error/bug) phát sửa • Phần mềm vốn chứa lỗi tiềm tàng, theo quy mơ lớn khả chứa lỗi cao • Lỗi phần mềm dễ phát người ngồi • Chức phần mềm thường biến hóa, thay đổi theo thời gian (theo nơi sử dụng) • Hiệu ứng sóng thay đổi phần mềm • Phần mềm vốn chứa ý tưởng sáng tạo tác giả/nhóm làm • Cần khả “tư nhị phân” xây dựng, phát triển phần mềm • Có thể chép đơn giản CuuDuongThanCong.com Dept of SE, 2001 Dept of SE, 2001 HUT, Falt of IT SE-I.34 1.5 Thế phần mềm tốt ? Đặc tính chung phần mềm (tiếp) HUT, Falt of IT SE-I.32 1.4 Đặc tính chung phần mềm • Abstraction cho phép tập trung vấn đề mức tổng quát, gạt chi tiết mức thấp liên quan • mức trừu tượng – Trừu tượng thủ tục: dãy thị với chức đặc thù giới hạn – Trừu tượng liệu: tập hợp liệu mô tả đối tượng liệu – Trừu tượng điều khiển: Cơ chế điều khiển chương trình khơng cần đặc tả chi tiết bên • Ví dụ: Mở cửa Thủ tục: Mở gồm ; Dữ liệu: Cửa HUT, Falt of IT Dept of SE, 2001 HUT, Falt of IT Yếu tố khái niệm phần mềm tốt Hiệu suất xử lý Tính dễ hiểu Đặc trưng gần Các tiêu Thời gian (Phần cứng phát triển) SE-I.35 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.36 9/4/2011 1.5.1 Các tiêu 1.5.2 Hiệu suất xử lý cao • Phản ánh yêu cầu người dùng (tính hiệu - effectiveness) • Chứa lỗi tiềm tàng • Giá thành khơng vượt q giá ước lượng ban đầu • Dễ vận hành, sử dụng • Tính an tồn độ tin cậy cao • Hiệu suất thời gian tốt (efficiency): Dept of SE, 2001 HUT, Falt of IT SE-I.37 – Độ phức tạp tính tốn thấp (Time complexity) – Thời gian quay vòng ngắn (Turn Around Time: TAT) – Thời gian hồi đáp nhanh (Response time) • Sử dụng tài nguyên hữu hiệu: CPU, RAM, HDD, Internet resources, HUT, Falt of IT 1.5.3 Tính dễ hiểu • • • • Dept of SE, 2001 SE-I.38 1.6 Các ứng dụng phần mềm Kiến trúc cấu trúc thiết kế dễ hiểu Dễ kiểm tra, kiểm thử, kiểm chứng Dễ bảo trì Có tài liệu (mơ tả u cầu, điều kiện kiểm thử, vận hành, bảo trì, FAQ, ) với chất lượng cao • • • • • • • • Phần mềm hệ thống (System SW) Phần mềm thời gian thực (Real-time SW) Phần mềm nghiệp vụ (Business SW) Phần mềm tính tốn KH&KT (Eng.&Scie SW) Phần mềm nhúng (Embedded SW) Phần mềm máy cá nhân (Personal computer SW) Phần mềm Web (Web-based SW) Phần mềm trí tuệ nhân tạo (AI SW) Tính dễ hiểu: tiêu ngày quan trọng Dept of SE, 2001 HUT, Falt of IT SE-I.39 CuuDuongThanCong.com SE-I.40 • 10/1968 Hội nghị NATO chuyên gia phần mềm đưa thuật ngữ “Khủng hoảng phần mềm” (Software crisis) Qua hàng chục năm, thuật ngữ dùng ngày mang tính cấp bách • Khủng hoảng ? [Webster’s Dict.] – Điểm ngoặt tiến trình gì; thời điểm, giai đoạn biến cố định hay chủ chốt – Điểm ngoặt trình diễn biến bệnh trở nên rõ ràng bệnh nhân sống hay chết • Trong phần mềm: Day dứt kinh niên (chronic affliation, by Prof Tiechrow, Geneva, Arp 1989) 2.1 Khủng hoảng phần mềm ? 2.2 Những vấn đề (khó khăn) sản xuất phần mềm Dept of SE, 2001 Dept of SE, 2001 2.1 Khủng hoảng phần mềm gì? Chương 2: Khủng hoảng phần mềm (Software Crisis) HUT, Falt of IT HUT, Falt of IT SE-I.41 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.42 9/4/2011 Một số yếu tố Khủng hoảng phần mềm gì? (tiếp) • • • • • Là day dứt kinh niên (kéo dài theo thời gian thường tái diễn, liên tục không kết thúc) gặp phải phát triển phần mềm máy tính, Phải làm với việc giảm chất lượng lỗi tiềm tàng có phần mềm ? Phải xử lý bảo dưỡng phần mềm có ? Phải giải thiếu kỹ thuật viên phần mềm? Phải chế tác phần mềm có yêu cầu phát triển theo qui cách xuất ? Phải xử lý cố phần mềm gây vấn đề xã hội ? Dept of SE, 2001 HUT, Falt of IT SE-I.43 • Phần mềm lớn kéo theo phức tạp hóa tăng chi phí phát triển • Đổi vai trị giá thành SW vs HW • Cơng sức cho bảo trì tăng chi phí cho Backlog lớn • Nhân lực chưa đáp ứng nhu cầu phần mềm • Những phiền hà phần mềm gây vấn đề xã hội Dept of SE, 2001 HUT, Falt of IT SE-I.44 So sánh chi phí cho Phần cứng Phần mềm Những dự án lớn NASA (National Aeronautics and Space Administration) Tên dự án Thời điểm phát triển Tổng số b-íc (triƯu) GEMINI Gi÷a 1960 APPOLO (1 Bill $) §Çu 1970 SPACE SHUTTLE Cuèi 1970 % 100 13 80 - 60 - 40 20 45 Phần cứng - Bảo trì + 1970 1955 Dept of SE, 2001 SE-I.45 + 1985 Dept of SE, 2001 HUT, Falt of IT + 2000 SE-I.46 Backlog Nhật Bản năm 1985 So sánh chi phí cho pha Phần mềm - 0+ HUT, Falt of IT Phát triển 5 Xác định yêu cầu 3% Đặc tả 3% Thiết kế 5% Lập trình 7% Kiểm thử môđun 8% Kiểm thử tích hợp 7% Bảo trì 67% 3 4 D-íi tháng 15.5% tháng đến năm 24.7% Từ đến năm 32.5% Từ đến năm 18.4% Trên năm 9.4% 67 HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.47 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.48 9/4/2011 Những vấn đề (khó khăn) sản xuất phần mềm Những vấn đề sản xuất phần mềm (tiếp) (1) Khơng có phương pháp mơ tả rõ ràng định nghĩa yêu cầu người dùng (khách hàng), sau bàn giao sản phẩm dễ phát sinh trục trặc (troubles) (2) Với phần mềm quy mô lớn, tư liệu đặc tả cố định thời gian dài, khó đáp ứng nhu cầu thay đổi người dùng cách kịp thời thời gian (3) Nếu khơng có Phương pháp luận thiết kế qn mà thiết kế theo cách riêng (của cơng ty, nhóm), dẫn đến suy giảm chất lượng phần mềm (do phụ thuộc nhiều vào người) (4) Nếu chuẩn làm tư liệu quy trình sản xuất phần mềm, đặc tả khơng rõ ràng làm giảm chất lượng phần mềm HUT, Falt of IT Dept of SE, 2001 SE-I.49 Những vấn đề sản xuất phần mềm (tiếp) (5) Nếu khơng kiểm thử tính đắn phần mềm giai đoạn mà kiểm giai đoạn cuối phát lỗi, thường bàn giao sản phẩm khơng hạn (6) Nếu coi trọng việc lập trình khâu thiết kế thường dẫn đến làm giảm chất lượng phần mềm (7) Nếu coi thường việc tái sử dụng phần mềm (software reuse), suất lao động giảm HUT, Falt of IT Dept of SE, 2001 SE-I.51 Những vấn đề sản xuất phần mềm (tiếp) (11) Khi đầu tư nhân lực lớn vào bảo trì làm giảm hiệu suất lao động nhân viên (12) Công việc bảo trì kéo dài làm giảm chất lượng tư liệu ảnh hưởng xấu đến việc khác HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.53 HUT, Falt of IT Dept of SE, 2001 SE-I.50 Những vấn đề sản xuất phần mềm (tiếp) (8) Phần lớn quy trình phát triển phần mềm có nhiều thao tác người thực hiện, suất lao động thường bị giảm (9) Không chứng minh tính đắn phần mềm, độ tin cậy phần mềm giảm (10) Chuẩn phần mềm tốt đo cách định lượng, đánh giá hệ thống đắn hay không HUT, Falt of IT Dept of SE, 2001 SE-I.52 Những vấn đề sản xuất phần mềm (tiếp) (13) Quản lý dự án lỏng lẻo kéo theo quản lý lịch trình khơng rõ ràng (14) Khơng có tiêu chuẩn để ước lượng nhân lực dự toán làm kéo dài thời hạn vượt kinh phí dự án Đây vấn đề phản ánh khía cạnh khủng hoảng phần mềm, tìm cách nỗ lực vượt qua để tạo phần mềm tốt! HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.54 9/4/2011 Chương Công nghệ học Phần mềm (Software Engineering) 3.1 Lịch sử tiến triển CNHPM • Nửa đầu 1960: quan tâm đến phần mềm, chủ yếu tập trung nâng cao tính độ tin cậy phần cứng • Giữa năm 1960: Phát triển hệ điều hành phần mềm lớn (IBM OS/360, EC OS) Xuất nhu cầu quy trình phát triển phần mềm lớn quy trình gỡ lỗi, kiểm thử phạm vi giới hạn 3.1 Lịch sử tiến triển Công nghệ học phần mềm 3.2 Sự tiến triển phương pháp thiết kế phần mềm 3.3 Định nghĩa Công nghệ học phần mềm 3.4 Vịng đời phần mềm 3.5 Quy trình phát triển phần mềm HUT, Falt of IT Dept of SE, 2001 SE-I.55 Lịch sử tiến triển CNHPM (tiếp) Dept of SE, 2001 Dept of SE, 2001 SE-I.56 Lịch sử tiến triển CNHPM (tiếp) • Năm 1968: Tại Tây Đức, Hội nghị khoa học NATO đưa từ “Software Engineering” Bắt đầu bàn luận khủng khoảng phần mềm xu hướng hình thành CNHPM chuyên mơn riêng • Nửa cuối 1960: IBM đưa sách phân biệt giá phần cứng phần mềm Từ đó, ý thức phần mềm ngày cao Bắt đầu nghiên cứu phương pháp luận lập trình HUT, Falt of IT HUT, Falt of IT SE-I.57 • Nửa đầu năm 1970: Nhằm nâng cao chất lượng phần mềm, khơng có nghiên cứu lập trình, kiểm thử, mà có nghiên cứu đảm bảo tính tin cậy quy trình sản xuất phần mềm Kỹ thuật: lập trình cấu trúc hóa, lập trình mơđun, thiết kế cấu trúc hóa, vv • Giữa năm 1970: Hội nghị quốc tế CNHPM tổ chức (1975): International Conference on SE (ICSE) HUT, Falt of IT Dept of SE, 2001 SE-I.58 Lịch sử tiến triển CNHPM (tiếp) Lịch sử tiến triển CNHPM (tiếp) • Nửa sau năm 1970: Quan tâm đến pha quy trình phát triển phần mềm, tập trung pha đầu ICSE tổ chức lần 2, vào 1976, 1978 1979 • Nửa đầu năm 1980: Trình độ học vấn ứng dụng CNHPM nâng cao, công nghệ chuyển vào thực tế Xuất sản phẩm phần mềm công cụ khác làm tăng suất sản xuất phần mềm đáng kể – Nhật Bản có “Kế hoạch phát triển kỹ thuật sản xuất phần mềm” từ năm 1981 – Cuộc “cách tân sản xuất phần mềm” bắt đầu phạm vi nước công nghiệp HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.59 – ICSE tổ chức lần năm 1981 1982 với 1000 người tham dự năm – Nhật Bản sang “Kế hoạch phát triển kỹ thuật bảo trì phần mềm” (1981-1985) HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.60 10 9/4/2011 Hiện Lịch sử tiến triển CNHPM (tiếp) • Nửa cuối năm 1980 đến nay: Từ học vấn sang nghiệp vụ! Chất lượng phần mềm tập trung chủ yếu tính suất, độ tin cậy tính bảo trì Nghiên cứa hỗ trợ tự động hóa sản xuất phần mềm – Nhật Bản có “Kế hoạch hệ thống cơng nghiệp hóa sản xuất phần mềm”(SIGMA: Software Industrialized Generator & Maintenance Aids, 1985-1990) – Nhiều trung tâm, viện nghiên cứu CNHPM đời Các trường đưa vào giảng dạy SE HUT, Falt of IT Dept of SE, 2001 SE-I.61 • Cơng nghiệp hóa sản xuất phần mềm cách đưa kỹ thuật công nghệ học (Engineering techniques) thành sở khoa học CNHPM • Thể chế hóa lý luận sản xuất phần mềm ứng dụng phương pháp luận cách quán • Tăng cường nghiên cứu tạo công cụ trợ giúp sản xuất phần mềm HUT, Falt of IT 3.2 Sự tiến triển phương pháp thiết kế phần mềm Dept of SE, 2001 SE-I.63 • Khái niệm tính mơđun, cụ thể hóa bước phương pháp luận thiết kế • N Wirth: Chi tiết hóa giai đoạn Thiết kế xuống Lập trình mơđun HUT, Falt of IT Trưởng thành: nửa cuối 1970 CuuDuongThanCong.com Dept of SE, 2001 Dept of SE, 2001 SE-I.64 Phát triển: nửa đầu 1980 • Phương pháp luận quy trình thiết kế phần mềm với phương pháp phân chia môđun thiết kế mơđun • L.L Constantine, 1974: Thiết kế cấu trúc hóa (phân chia mơđun); • E.W Dijkstra, 1972: Lập trình cấu trúc hóa (trong mơđun) Phương pháp M.A Jackson (1975) J.D Warnier (1974) • Trừu tượng hóa liệu: B.H Liskov (1974);D.L Parnas (1972) HUT, Falt of IT SE-I.62 Sơ khởi: nửa đầu 1970 • Phương pháp luận CNHPM: năm 1970 • Trong phát triển phần mềm: nâng cao suất, độ tin cậy, giá thành - tính (productivity, reliability, cost-performance) • Tiến triển phương pháp thiết kế: Sơ khởi, Trưởng thành, Phát triển Biến đổi HUT, Falt of IT Dept of SE, 2001 SE-I.65 • Triển khai cơng cụ hỗ trợ phát triển phần mềm dựa phương pháp kỹ thuật đưa năm 1970 • Bộ khởi tạo chương trình (program generators: precompiler; graphics-input editors, etc.) • Ngôn ngữ đối thoại đơn giản (4GL, DB SQL) • Hệ trợ giúp: Hệ trợ giúp kiểm thử; Hệ trợ giúp quản lý thư viện; Hệ trợ giúp tái sử dụng HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.66 11 9/4/2011 Biến đổi: nửa cuối 1980 đến Hình thái sản xuất Phần mềm Đưa kỹ thuật, phương pháp luận • Đưa mơi trường phát triển phần mềm Triển khai kết hợp CNHPM CNH Tri thức (Knowledge Engineering) • Triển khai mơi trường bậc cao phát triển phần mềm; Tự động hóa sản xuất phần mềm; Chế phần mềm theo kỹ thuật chế thử (Prototyping); Lập trình hướng đối tượng - OOP; Hướng thành phần; Hỗ trợ phát triển phần mềm từ hệ chuyên gia, vv ứng dụng thực tế vào quy trình Cải biên, biến đổi vào sản phẩm công cụ phần mềm (máy tính hóa phần) Tổng hợp, hệ thống hóa cho loại cơng cụ (Máy tính hóa tồn quy trình sản xuất phần mềm) Hướng tới sản xuất phần mềm tự động Dept of SE, 2001 HUT, Falt of IT SE-I.67 HUT, Falt of IT Dept of SE, 2001 HUT, Falt of IT SE-I.69 • IEEE [1993]: CNHPM (1) việc áp dụng phương pháp tiếp cận có hệ thống, lượng hóa phát triển, vận hành bảo trì phần mềm; (2) nghiên cứu phương pháp tiếp cận dùng (1) • Pressman [1995]: CNHPM mơn tích hợp quy trình, phương pháp, cơng cụ để phát triển phần mềm máy tính HUT, Falt of IT Định nghĩa CNHPM (tiếp) CuuDuongThanCong.com Dept of SE, 2001 Dept of SE, 2001 SE-I.70 Định nghĩa CNHPM (tiếp) • Sommerville [1995]: CNHPM lĩnh vực liên quan đến lý thuyết, phương pháp công cụ dùng cho phát triển phần mềm • K Kawamura [1995]: CNHPM lĩnh vực học vấn kỹ thuật, phương pháp luận công nghệ học (lý luận kỹ thuật thực hóa nguyên tắc, nguyên lý đó) tồn quy trình phát triển phần mềm nhằm nâng cao chất lượng sản xuất phần mềm HUT, Falt of IT SE-I.68 Định nghĩa CNHPM (tiếp) 3.3 Định nghĩa Cơng nghệ học phần mềm • Bauer [1969]: CNHPM việc thiết lập sử dụng nguyên tắc công nghệ học đắn dùng để thu phần mềm cách kinh tế vừa tin cậy vừa làm việc hiệu máy thực • Parnas [1987]: CNHPM việc xây dựng phần mềm nhiều phiên nhiều người • Ghezzi [1991]: CNHPM lĩnh vực khoa học máy tính, liên quan đến xây dựng hệ thống phần mềm vừa lớn vừa phức tạp hay số nhóm kỹ sư Dept of SE, 2001 SE-I.71 Công nghệ học phần mềm lĩnh vực khoa học phương pháp luận, kỹ thuật cơng cụ tích hợp quy trình sản xuất vận hành phần mềm nhằm tạo phần mềm với chất lượng mong muốn [Software Engineering is a scientìic field to deal with methodologies, techniques and tools integrated in software production-maintenance process to obtain software with desired qualities] HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.72 12 9/4/2011 Công nghệ học CNHPM ? (1) Như ngành công nghệ học khác, CNHPM lấy phương pháp khoa học làm sở (2) Các kỹ thuật thiết kế, chế tạo, kiểm thử bảo trì phần mềm hệ thống hóa hóa thành phương pháp luận hình thành nên CNHPM (3) Tồn quy trình quản lý phát triển phần mềm gắn với khái niệm vòng đời phần mềm, mơ hình hóa với kỹ thuật phương pháp luận trở thành chủ đề khác CNHPM Dept of SE, 2001 HUT, Falt of IT SE-I.73 3.4 Vịng đời phần mềm (Software life-cycle) Cơng nghệ học CNHPM ? (tiếp) (4) Trong vòng đời phần mềm khơng có chế tạo mà bao gồm thiết kế, vận hành bảo dưỡng (tính quan trọng thiết kế bảo dưỡng) (5) Trong khái niệm phần mềm, khơng có chương trình mà tư liệu phần mềm (6) Cách tiếp cận công nghệ học (khái niệm cơng nghiệp hóa) thể chỗ nhằm nâng cao suất (tính suất) độ tin cậy phần mềm, đồng thời giảm chi phí giá thành Dept of SE, 2001 HUT, Falt of IT SE-I.74 Mơ hình vịng đời phần mềm Boehm • Vịng đời phần mềm thời kỳ tính từ phần mềm sinh (tạo) chết (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng loại bỏ không đâu dùng) • Quy trình phần mềm (vịng đời phần mềm) phân chia thành pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểu diễn pha có khác theo người Xác định yêu cầu hệ thống Kiểm chứng Xác định yêu cầu phần mềm Kiểm chứng Thiết kế Kiểm chứng Thiết kế chi tiết Kiểm chứng Lập trình Gỡ lỗi Kiểm thử Chạy thử Vận hành Bảo trì Kiểm chứng lại HUT, Falt of IT Dept of SE, 2001 SE-I.75 Suy nghĩ vòng đời phần mềm (1) Pha xác định u cầu thiết kế có vai trị định đến chất lượng phần mềm, chiếm phần lớn công sức so với lập trình, kiểm thử chuyển giao phần mềm (2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc nhiều vào suy nghĩ xuống (top-down) trừu tượng hóa, chi tiết hóa (3) Pha thiết kế, chế tạo theo xuống, pha kiểm thử lên (bottom-up) HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.77 HUT, Falt of IT Dept of SE, 2001 SE-I.76 Suy nghĩ vòng đời phần mềm (4) Trước chuyển sang pha phải đảm bảo pha kiểm thử khơng cịn lỗi (5) Cần có chế kiểm tra chất lượng, xét duyệt pha nhằm đảm bảo không gây lỗi cho pha sau (6) Tư liệu pha khơng dùng cho pha sau, mà đối tượng quan trọng cho kiểm tra đảm bảo chất lượng quy trình phần mềm HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.78 13 9/4/2011 Các phương pháp luận kỹ thuật cho pha Suy nghĩ vòng đời phần mềm (7) Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư liệu cho pha, nhằm đảm bảo chất lượng phần mềm (8) Thao tác bảo trì phần mềm việc xử lý quay vòng trở lại pha vòng đời phần mềm nhằm biến đổi, sửa cha, nõng cp phn mm Tên pha Xác định yêu cầu Thiết kế hệ thống Thiết kế ch-ơng trình Lập trình Đảm bảo chất l-ợng Vận hành Bảo trì Dept of SE, 2001 HUT, Falt of IT SE-I.79 3.5 Quy trỡnh phỏt trin phn mm Nội dung nghiệp vụ Đặc tả yêu cầu ng-ời dùng Xác định yêu cầu phần mềm Thiết kế phần mềm Thiết kế cấu trúc phần mềm Ph-ơng pháp, kỹ thuật Phân tÝch cÊu tróc hãa ThiÕt kÕ cÊu tróc hãa LËp trình cấu trúc Là thiết kế chi tiết: Thiết kế cấu Ph-ơng pháp Jackson trúc bên phần mềm (đơn Ph-ơng pháp vị ch-ơng trình môđun) Warnier Mà hóa ngôn ngữ lập trình Mà hóa cấu trúc hóa Kiểm tra chất l-ợng phần mềm đà Ph-ơng pháp kiểm phát triển thử ch-ơng trình Sử dụng, vận hành phần mềm đà Ch-a cụ thể phát triển Biến đổi, ®iỊu chØnh phÇn mỊm Dept of SE, 2001 HUT, Falt of IT SE-I.80 3.5.1 Capability Maturity Model (CMM) by SEI: Mơ hình thục khả • Level 1: Initial (Khởi đầu) Few processes are defined Success depends on individual effort • Level 2: Repeatable (Lặp lại) Basic project management processes Repeat earlier succeses on projects with similar applications • Level 3: Defined (Xác định) Use a documented and approved version of the organization’s process for developing and supporting software Common process framework - Khung quy trình chung Framework activities - Hoạt động khung Task sets - Tập tác vụ Tasks - Tác vụ Milestones, deliverables SQA points - Điểm KTCL Umbrella activities HUT, Falt of IT Dept of SE, 2001 SE-I.81 Dept of SE, 2001 HUT, Falt of IT CMM (cont.) SE-I.82 18 KPAs of CMM • Level 4: Managed (Quản trị) Both SW process and products are quantitatively understood and controlled using detailed measures • Level 5: Optimizing (Tối ưu) Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies 18 key process areas (KPAs) for CMM LEVEL 2: Repeatable SW configuration management SW quality assurance SW subcontract management SW project tracking and oversight SW project planning Requirements management Peer reviews Intergroup coordination SW product engineering 10 IntegratedSW management 11 Training program 12 Organization process definition 13 Organization process focus 14 SW quality Management 15 Quantitative process management 16 Process change management 17 Technology change management 18 Defect prevention LEVEL 3: Defined LEVEL 4: Managed LEVEL 5: Optimizing HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.83 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.84 14 9/4/2011 3.5.2 Mơ hình tuyến tính Thiết kế Phân tích Lập trình Mơ hình tuyến tính Kiểm thử Cơng nghệ học Hệ thống / Thơng tin Điển hình mơ hình vịng đời cổ điển (mơ hình thác nước) Classic life cycle / waterfall model: mơ hình hay đựoc dùng Dept of SE, 2001 HUT, Falt of IT SE-I.85 • Công nghệ học Hệ thống / Thông tin mô hình hóa (System / Information engineering and modeling): thiết lập yêu cầu, ánh xạ số tập yêu cầu sang phần mềm trình tương tác phần cứng, người CSDL • Phân tích u cầu (Requirements analysis): hiểu lĩnh vực thông tin, chức năng, hành vi, tính giao diện phần mềm phát triển Cần phải tạo tư liệu bàn thảo với khách hàng, người dùng HUT, Falt of IT Mơ hình tuyến tính Dept of SE, 2001 SE-I.86 Mơ hình tuyến tính • Thiết kế (Design): q trình nhiều bước với thuộc tính khác 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 tốn) Cần tư liệu hóa phần quan trọng cấu hình phần mềm • Tạo mã / lập trình (Code generation / programming): Chuyển thiết kế thành chương trình máy tính ngơn ngữ Nếu thiết kế chi tiết hóa lập trình túy học HUT, Falt of IT Dept of SE, 2001 SE-I.87 Điểm yếu Mô hình tuyến tính • Kiểm thử (Testing): Kiểm tra chương trình mơđun lơgic bên chức bên ngoài, nhằm phát lỗi đảm bảo với đầu vào xác định cho kết mong muốn • Hỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng thay đổi, nâng cấp phần mềm phát triển thay đổi môi trường, nhu cầu HUT, Falt of IT Dept of SE, 2001 SE-I.88 3.5.3 Mơ hình chế thử (Prototyping model) • Thực tế dự án tn theo dịng mơ hình, mà thường có lặp lại (như mơ hình Boehm) • Khách hàng tuyên bố rõ ràng xong hết yêu cầu • Khách hàng phải có lịng kiên nhẫn chờ đợi thời gian định có sản phẩm Nếu phát lỗi nặng thảm họa! Nghe Khách trình bày Tạo / sửa mẫu Khách kiểm tra mẫu HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.89 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.90 15 9/4/2011 Mơ hình chế thử: Khi ? • Khi rõ mục đích chung chung phần mềm, chưa rõ chi tiết đầu vào hay xử lý chưa rõ yêu cầu đầu • Dùng “Hệ sơ khai” để thu thập yêu cầu người dùng qua thiết kế nhanh • Các giải thuật, kỹ thuật dùng làm mẫu chưa nhanh, chưa tốt, miễn có mẫu để thảo luận gợi yêu cầu người dùng HUT, Falt of IT Dept of SE, 2001 SE-I.91 3.5.4 Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD) • Là quy trình phát triển phần mềm gia tăng, tăng dần bước (Incrimental software development) với chu trình phát triển ngắn (60-90 ngày) • Xây dựng dựa hướng thành phần (Component-based construction) với khả tái sử dụng (reuse) • Gồm số nhóm (teams), nhóm làm RAD theo pha: Mơ hình nghiệp vụ, Mơ hình liệu, Mơ hình xử lý, Tạo ứng dụng, Kiểm thử đánh giá (Business, Data, Process, Appl Generation, Test) HUT, Falt of IT Team #3 Mơ hình phát triển ứng dụng nhanh Team #1 Business Modeling Data Modeling Process Modeling Application Data Generation Modeling Testing & Process Turnover Modeling Application Generation Testing & Process Turnover Data Modeling Modeling Application Generation SE-I.92 RAD: Business modeling Business Modeling Team #2 Business Modeling Dept of SE, 2001 Luồng thơng tin mơ hình hóa để trả lời câu hỏi: – Thông tin điều khiển xử lý nghiệp vụ ? – Thơng tin sinh ra? – Ai sinh ? – Thơng tin đến đâu ? – Ai xử lý chúng ? Testing & Turnover 60 - 90 days HUT, Falt of IT Dept of SE, 2001 SE-I.93 RAD: Data and Process modeling • Data modeling: đối tượng liệu cần để hỗ trợ nghiệp vụ (business) Định nghĩa thuộc tính đối tượng xác lập quan hệ đối tượng • Process modeling: Các đối tượng liệu chuyển sang luồng thông tin thực chức nghiệp vụ Tạo mô tả xử lý đễ cập nhật (thêm, sửa, xóa, khơi phục) đối tượng liệu HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.95 HUT, Falt of IT Dept of SE, 2001 SE-I.94 RAD: Appl Generation and Testing • Application Generation: Dùng kỹ thuật hệ để tạo phần mềm từ thành phần có sẵn tạo thành phần tái dụng lại sau Dùng cơng cụ tự động để xây dựng phần mềm • Testing and Turnover: Kiểm thử thành phần kiểm chứng giao diện (các thành phần cũ kiểm thử dùng lại) HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.96 16 9/4/2011 3.5.5 Các mơ hình tiến hóa: RAD: Hạn chế ? gia tăng, xoắn ốc, xoắn WINWIN, • Cần nguồn nhân lực dồi để tạo nhóm cho chức • u cầu hai bên giao kèo thời gian ngắn phải có phần mềm hồn chỉnh, thiếu trách nhiệm bên dễ làm dự án đổ vỡ • RAD tốt cho ứng dụng, với ứng dụng khơng thể mơđun hóa địi hỏi tính cao • Mạo hiểm kỹ thuật cao khơng nên dùng RAD Dept of SE, 2001 HUT, Falt of IT SE-I.97 • Phần lớn hệ phần mềm phức tạp tiến hóa theo thời gian: mơi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiện thêm chức năng, tính • Các mơ hình tiến hóa (evolutionary models) có tính lặp lại Kỹ sư phần mềm tạo phiên (versions) ngày hoàn thiện hơn, phức tạp • Các mơ hình: incremental, spiral, WINWIN spiral, concurrent development model Dept of SE, 2001 HUT, Falt of IT Mơ hình gia tăng (The incremental model) SE-I.98 Mơ hình gia tăng • Kết hợp mơ hình ý tưởng lặp lại chế mẫu • Sản phẩm lõi với yêu cầu hệ thống phát triển • Các chức với yêu cầu khác phát triển thêm sau (gia tăng) • Lặp lại quy trình để hồn thiện dần Gia tăng Ph©n tÝch ThiÕt kÕ LËp tr×nh KiĨm thư Xuất xưởng System/info Engineering Gia tăng Ph©n tÝch Gia tăng ThiÕt kÕ Lập trình Phân tích Thiết kế Gia tng Kiểm thử Lập trình Phân tích Thiết kế Xut xng KiĨm thư Xuất xưởng LËp tr×nh KiĨm thư XX Calendar time Dept of SE, 2001 HUT, Falt of IT SE-I.99 HUT, Falt of IT Mơ hình xoắn ốc (spiral) Lập kế hoạch Phân tích rủi ro Kỹ nghệ Làm Nâng cấp Bảo trì HUT, Falt of IT CuuDuongThanCong.com Khách hàng đánh giá Dept of SE, 2001 SE-I.100 Mơ hình xoắn ốc (tiếp) Giao tiếp khách hàng Khái niệm Dept of SE, 2001 • Giao tiếp khách hàng: người phát triển khách hàng để tìm hiểu yêu cầu, ý kiến • Lập kế hoạch: Xác lập tài ngun, thời hạn thơng tin khác • Phân tích rủi ro: Xem xét mạo hiểm kỹ thuật mạo hiểm quản lý • Kỹ nghệ: Xây dựng hay số biểu diễn ứng dụng Xây dựng & Xuất xưởng SE-I.101 HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.102 17 9/4/2011 Mơ hình xoắn ốc (tiếp) Mơ hình xoắn ốc: Mạnh yếu? • Xây dựng xuất xưởng: xây dựng, kiểm thử, cài đặt cung cấp hỗ trợ người dùng (tư liệu, huấn luyện, ) • Đánh giá khách hàng: Nhận phản hồi người sử dụng biểu diễn phần mềm giai đoạn kỹ nghệ cài đặt HUT, Falt of IT Dept of SE, 2001 SE-I.103 Mơ hình xoắn ốc WINWIN • Tốt cho hệ phần mềm quy mơ lớn • Dễ kiểm sốt mạo hiểm mức tiến hóa • Khó thuyết phục khách hàng phương pháp tiến hóa xoắn ốc kiểm sốt • Chưa dùng rộng rãi mơ hình tuyến tính chế thử Dept of SE, 2001 HUT, Falt of IT Mô hình xoắn ốc WINWIN • Nhằm thỏa hiệp người phát triển khách hàng, hai “Thắng” (win-win) – Khách có phần mềm thỏa mãn u cầu – Người phát triển có kinh phí thỏa đáng thời gian hợp lý Xác định điều kiện thắng cổ đơng Đánh giá tiến trình dự kiến sản phẩm, giải rủi ro – Xác định cổ đông (stakeholders) – Xác định điều kiện thắng cổ đông – Thỏa hiệp điều kiện thắng bên liên quan Dept of SE, 2001 Xét duyệt đánh giá Kiểm định sản phẩm quy trình SE-I.105 Mơ hình phát triển đồng thời (The concurrent development model) • Xác định mạng lưới hoạt động đồng thời (Network of concurrent activities) • Các kiện (events) xuất theo điều kiện vận động trạng thái hoạt động • Dùng cho loại ứng dụng cho hình ảnh xác trạng thái trạng dự án • Thường dùng phát triển ứng dụng khách/chủ (client/server applications): system and componets are developed concurrently HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.107 3a Hòa hợp điều kiện thắng 3b Thiết lập mục tiêu mức tiếp ràng buộc, dự kiến Xác định mức tiếp cổ đơng • Các hoạt động xác định hệ thống: HUT, Falt of IT SE-I.104 HUT, Falt of IT Xác định mức tiếp sản phâm quy trình, kể phân chia nhỏ Dept of SE, 2001 SE-I.106 3.5.6 Mơ hình theo thành phần (Component-based model) • Gắn với cơng nghệ hướng đối tượng (Objectoriented technologies) qua việc tạo lớp (classes) có chứa liệu giải thuật xử lý liệu • Có nhiều tương đồng với mơ hình xoắn ốc • Với ưu điểm tái sử dụng thành phần qua Thư viện / kho lớp: tiết kiệm 70% thời gian, 80% giá thành, số sản xuất 26.2/16.9 • Với UML chuẩn công nghiệp triển khai HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.108 18 9/4/2011 3.5.7 Mơ hình hình thức (Formal model) Mơ hình theo thành phần Lập kế hoạch Phân tích rủi ro Giao tiếp khách hàng Khách hàng đánh giá HUT, Falt of IT Xác định thành phần ứng viên Xây dựng bước lặp thứ n hệ thống Kỹ nghệ Xây dựng & Xuất xưởng Dept of SE, 2001 Đặt thành phần vào thư viện Tìm thành phần từ thư viện Lấy thành phần có Xây dựng thành phần kh.có SE-I.109 Mơ hình hình thức: Điểm yếu ? • Cần nhiều thời gian công sức để phát triển • Phí đào tạo cao người có cho áp dụng mơ hình hình thức • Khó sử dụng rộng rãi cần kiến thức toán kỹ khách hàng HUT, Falt of IT Dept of SE, 2001 SE-I.111 • Từ thu thập yêu cầu sản phẩm: đối thoại khách người phát triển quan trọng • Khơng nên bỏ qua khâu thiết kế 4GT áp dụng để triển khai thiết kế qua 4GL • Mạnh: giảm thời gian phát triển tăng suất • Yếu: 4GT khó dùng ngơn ngữ lập trình, mã khó tối ưu khó bảo trì cho hệ thống lớn cần kỹ kỹ sư phần mềm • Tương lai: 4GT với mơ hình theo thành phần CuuDuongThanCong.com Dept of SE, 2001 HUT, Falt of IT Dept of SE, 2001 SE-I.110 3.5.8 Các kỹ thuật hệ (Fourth generation techniques) • Tập hợp cơng cụ cho phép xác định đặc tính phần mềm mức cao, sau sinh tự động mã nguồn dựa theo đặc tả • Các cơng cụ 4GT điển hình: ngơn ngữ phi thủ tục cho truy vấn CSDL; tạo báo cáo; xử lý liệu; tương tác hình; tạo mã nguồn; khả đồ họa bậc cao; khả bảng tính; khả giao diện Web; vv HUT, Falt of IT Dept of SE, 2001 SE-I.112 3.5.9 Sản phẩm quy trình (Product and process) 4GT: How ? HUT, Falt of IT • Cịn gọi CNHPM phịng (Cleanroom SE) • Tập hợp cơng cụ nhằm đặc tả tốn học phần mềm máy tính từ khâu định nghĩa, phát triển đến kiểm chứng • Giúp kỹ sư phần mềm phát sửa lỗi khó • Thường dùng phát triển SW cần độ an toàn cao (y tế, hàng khơng, ) SE-I.113 • Quy trình yếu sản phẩm khó mà tốt, song khơng nên coi trọng q mức vào quy trình mức vào sản phẩm • Sản phẩm quy trình cần coi trọng HUT, Falt of IT Dept of SE, 2001 https://fb.com/tailieudientucntt SE-I.114 19 9/4/2011 Bài tập Phần I Đồ án I • Xem lại khái niệm, mơ hình phần mềm CNHPM • Đồ án mơn học I (cho 13 nhóm, nạp báo cáo, tư liệu tìm Web thư viện): – Tìm hiểu viết báo cáo, trình bày mơ hình phát triển phần mềm (10 mơ hình / 10 nhóm) – Chuẩn ISO 9001 cho SE – Chuẩn CMM (www.sei.com) – Các kỹ thuật lập trình (cấu trúc, mô đun, ) HUT, Falt of IT CuuDuongThanCong.com Dept of SE, 2001 SE-I.115 https://fb.com/tailieudientucntt 20 ... b-ớc (triệu) GEMINI Giữa 19 60 APPOLO (1 Bill $) Đầu 19 70 SPACE SHUTTLE Cuèi 19 70 % 10 0 13 80 - 60 - 40 20 45 Phần cứng - Bảo trì + 19 70 19 55 Dept of SE, 20 01 SE-I.45 + 19 85 Dept of SE, 20 01. .. Dept of SE, 20 01 HUT, Falt of IT SE-I .15 Dept of SE, 20 01 HUT, Falt of IT 1. 2 Kiến trúc phần mềm SE-I .16 Kiến trúc phần mềm 1. 2 .1 Phần mềm nhìn từ cấu trúc phân cấp System • Cấu trúc phần mềm cấu... of SE, 20 01 SE-I .17 HUT, Falt of IT Dept of SE, 20 01 https://fb.com/tailieudientucntt SE-I .18 9/4/2 011 Cấu trúc phần mềm 1. 2.2 Phần mềm nhìn từ cấu trúc thủ tục • Hai yếu tố cấu thành phần mềm