Công nghệ phần mềm - Chương 1: Tổng quan về xây dựng phần mềm
1.1. Khái niệm và định nghĩa
1.2. Quy trình thiết kế và xây dựng chương trình
phần mềm: mô hình, các nhiệm vụ cơ bản
1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây
dựng chương trình phần mềm
1.4. Các thuộc tính chất lượng của thiết kế và
xây dựng chương trình phần mềm
hệ thống (tin học) đều trãi qua sự khởi đầu, triển khai, xây dựng, khai thác, bảo dưỡng và kết thúc. Gọi quá trình này là vòng đời (life cycle). Nếu chỉ đề cập đến sự triển khai và xây dựng thì gọi là sự phát triển của hệ thống (system development). 13 Chu kỳ phát triển phần mềm (Software Development Life Cycle - SDLC) 14 Systems planing and selection/ Hoạch định và chọn lựa hệ thống Nhận diện sự cần thiết phải có hệ thống • Nhóm phân tích được thành lập • các yêu cầu được yêu tiên chuyển thành các kế hoạch cho bộ phận IS (information system) Chọn lựa hệ thống • Xây dựng một kế hoạch cụ thể • Xác định được có hay không cái giá của việc phát triển hệ thống lớn hơn lợi ích có thể có. 15 Systems analysis/Phân tích hệ thống Xác định yêu cầu hệ thống (người dùng mong được gì từ hệ thống được đề nghị) Xác định những yêu cầu, cấu trúc không còn phù hợp để loại bỏ Xây dựng thiết kế mới So sánh, đánh giá thiết kế để chọn phương án tối ưu (giá, nhân công, cấp độ kỹ thuật…) 16 Systems design/ Thiết kế hệ thống Chuyển bản mô tả các giải pháp thành bản đặc tả logic, vật lý; • Thiết kế logic: Không phụ thuộc phần cứng hay phần mềm • Thiết kế vật lý: Chọn NNLT, chọn CSDL, chọn hệ điều hành, chọn mạng … Thiết kế mọi diện mạo của hệ thống từ nhập vào và xuất ra của màn hình đến máy in, cơ sở dữ liệu, và các xử lý tính toán; 17 Systems implemention and operation/ Thực hiện và vận hành hệ thống Thực hiện mã hóa, chạy thử và cài đặt. • Mã hóa, lập trình viên lập các chương trình tạo nên hệ thống. • Chạy thử, lập trình viên và phân tích viên kiểm tra từng chương trình rồi toàn bộ hệ thống để tìm và sửa lỗi • Cài đặt Vận hành: người lập trình tạo sự thay đổi mà người sử dụng yêu cầu và sửa đổi hệ thống 18 Chu kỳ phát triển phần mềm (Software Development Life Cycle - SDLC) Chu kỳ phần mềm (Software life cycle) là gì? “ Là khoảng thời gian từ lúc phần mềm bắt đầu hình thành cho đến lúc nó không còn dùng được nữa” Chu kỳ phần mềm thường trải qua các giai đoạn (phase) sau: Giai đoạn 1: Preliminary Investigation/Requirement (nghiên cứu sơ bộ) Giai đoạn 2: Analysis (Phân tích) Giai đoạn 3: Design (Thiết kế) Giai đoạn 4: Development / Construction (Xây dựng) Giai đoạn 5: Testing (Thử nghiệm hệ thống) Giai đoạn 6: Implementation (Triển khai hệ thống) Giai đoạn 7: Maintenance (Bảo trì, nâng cấp) Chu kỳ phần mềm còn được gọi là chu kỳ phát triển phần mềm (SDLC) 19 2. Các mô hình SDLC Mô hình Waterfall (Waterfall model) Mô hình lặp và tăng dần (Iterative and Incremental) Mô hình bản mẫu (Prototype) Mô hình phát triển ứng dụng nhanh (RAD) Mô hình xoắn ốc (Spiral) Mô hình chữ V (V-model) Mô hình tiến hóa (Evolutionary) Mô hình dựa trên các thành phần (Component) Các mô hình nhiều phiên bản (Multi-version models) Mô hình RUP 20 Mô hình thác nước (waterfall) 21 Mô hình thác nước (waterfall) Xuất hiện từ năm 1970 Thay thế phương pháp “code – and – fix” Ưu điểm: • Giai đoạn kế tiếp chỉ bắt đầu khi giai đoạn hiện hành hoàn tất • Người dùng cuối và khách hàng biết rõ Nhược điểm: • Không quay lui • Phải đặc tả một cách chính xác yêu cầu ngay từ đầu Sử dụng khi: xác định sản phẩm ổn định và đã biết rõ vấn đề kỹ thuật 22 Mô hình tăng trưởng/ (Incremental Model) 23 Mô hình tăng trưởng / (Incremental Model) D.R. Graham 1988: Vòng đầu tạo sản phẩm lõi, Các vòng sau bổ sung dần chức năng Ưu điểm: • Chức năng chính, chức năng có độ rũi ro cao sẽ được thực hiện trước • Sau mỗi vòng đều có thể chuyển giao cho khách hàng • Giảm rũi ro cho thất bại toàn dự án Nhược điểm: • Phải xác định chức năng đầy đủ và hoàn chỉnh trước khi qua vòng sau • Khách hàng khi thấy vòng đầu thường nghĩ hệ thống đơn giản Sử dụng khi : • Khi cần nhanh chóng đưa ra chức năng cơ bản của hệ thống. • Áp dụng cho sản phẩm có thời gian hoàn thiện > 1 năm. • Khi các yêu cầu đã hiểu rõ nhưng mong muốn có sự tiến hóa dần của sản phẩm 24 Mô hình tạo bản mẫu/ (prototype) 25 26 Mẫu thử (bản mẫu) Triển khai, Chuyển giao và Phản hồi Lập kế hoạch nhanh Xây dựng mẫu thử Mô hình hoá thiết kế nhanh Giao tiếp 26 Mô hình tạo bản mẫu (prototype) 27 Mô hình tạo bản mẫu (prototype) Xây dựng một bản mẫu ban đầu để người sử dụng xem xét Bản mẫu ban đầu: • Bị loại bỏ • Được phát triển Ưu điểm: • Khách hàng tương tác sớm với hệ thống • Khách hàng cùng làm việc với người phát triển hệ thống • Thiết kế và phát triển mềm dẽo Nhược điểm: • Quick – and – dirty • Chất lượng thấp và khó bảo trì • Bị khách hàng hối thúc • Người phát triển sẽ bị rơi vào giai đoạn code – and fix Sử dụng khi: • Yêu cầu chưa được biết rõ; yêu cầu không ổn định 28 Mô hình RAD (Rapid Application Development) Được phát triển bởi IBM năm 1980 qua sách của James Matin Chu kỳ phát triển: 60-90 ngày Ráp nối tốc độ cao của mô hình thác nước, xây dựng dựa vào các thành phần và ứng dụng tạo mã tự động Ưu điểm: • Thời gian phát triển ngắn • Cần ít nhân công • Giảm rũi ro nhờ có khách hàng tham gia Nhược điểm: • Người phát triển phải có kỹ năng sử dụng công cụ tốt • Người phát triển và khách hàng pahir gắn bó và nỗ lực cao Sử dụng khi: • Hệ thống có thể dễ dàng phân chia thành nhiều module • Biết rõ yêu cầu của hệ thống • Thời gian ngắn • Có thể sử dụng lại những thành phần đã có • Hệ thống nhỏ, không có tính nghiêm ngặt 29 30 Mô hình xoắn ốc (Spiral model) Thử nghiệm nguyên mẫu Đánh giá các phương án Thiết kế và tạo lập 1 nguyên mẫu Xác định mục tiêu, các phương án và các ràng buộc Chu trình 1 30 Mô hình xoắn ốc (Spiral model) Được đề nghị bởi Berry Boehm, 1988 Mỗi vòng lặp biểu diễn một gia đoạn trong chu trình Mỗi chu kỳ có 4 tầng, mỗi tầng ¼ cung Ưu điểm: • Tạo bản mẫu sớm • Cho phép người dùng tham gia vào các giai đoạn • Ưu tiên thực hiện trước những chức năng quan trọng Nhược điểm: • Đánh giá rũi ro tốn nhiều chi phí • Phức tạp, khó quản lý, khó thuyết phục khách hàng Sử dụng khi: • Những dự án có độ rũi ro cao, dự án cần nhiều thời gian • Kết hợp giữa lặp của mô hình tạo bản mẫu và mô hình thác nước 31 Mô hình chữ V (V-model) Tinh thần chủ đạo của V- model là các hoạt động kiểm thử phải được tiến hành song song (theo khả năng có thể) ngay từ đầu chu trình cùng với các hoạt động phát triển. 32 Mô hình tiến hóa (Evolutionary) 33 Phát triển dựa trên các thành phần Thương lượng Định nghĩa mục tiêu Phân loại các thành phần Đối sánh Lựa chọn thành phần phù hợp Giảm 70% thời gian, 84% chi phí 34 RUP/UML Rational Unified Process Kỹ thuật thế hệ thứ 4 Bao gồm 4 giai đoạn chính đan xen nhiều dòng hoạt động • Phân tích yêu cầu • Mô hình hóa nghiệp vụ • Thiết kế • Cài đặt, vận hành, triển khai Mỗi giai đoạn đều hình thành từ những bước lặp (iteration) 35 36 37 Các bước lặp (iteration) Khởi tạo (inception) • Xác định phạm vi dự án • Chi phí, thời gian • Rũi ro, môi trường • Thay đổi bổ sung Tinh chế (elaboration) • Tinh chế kiến trúc, yêu cầu • Đánh giá độ rũi ro, các thành phần sử dụng Xây dựng (construction) • Đánh giá tài nguyên, kiểm soát và thực hiện tối ưu hóa • Hoàn thành sản phẩm • Đánh giá sản phẩm so với yêu cầu Chuyển giao (transition) • Cài đặt; kiểm thử • Tiếp nhận ý kiến • Bảo trì 38 Phương pháp phát triển phần mềm linh hoạt Agile software development chủ yếu tập trung: • Thích ứng thay vì dự đoán • Hướng đến con người thay vì quy trình ASD đề cao tính chủ động sáng tạo và sự trao đổi thông tin giữa các thành viên 39 Chương I - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM 1.1. Khái niệm và định nghĩa 1.2. Quy trình thiết kế và xây dựng chương trình phần mềm: mô hình, các nhiệm vụ cơ bản 1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây dựng chương trình phần mềm 1.4. Các thuộc tính chất lượng của thiết kế và xây dựng chương trình phần mềm 40 Các kỹ thuật tiêu biểu trong TK và XD phần mềm Các chiến lược chung/General Strategies: Chia để trị / divide-and-conquer Kỹ thuật tinh chỉnh / stepwise refinement Thiết kế Top-down và Thiết kế bottom-up Kỹ thuật trừu tượng dữ liệu/data abstraction và che dấu thông tin/information hiding Kỹ thuật lặp và tăng trưởng dần (iterative and incremental approach) 41 Các kỹ thuật tiêu biểu trong TK và XD phần mềm Các phương pháp: Function-oriented (structured) Design Object-oriented Design Data-structure Centered Design Component-based Design (CBD) 42 Chương I - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM 1.1. Khái niệm và định nghĩa 1.2. Quy trình thiết kế và xây dựng chương trình phần mềm: mô hình, các nhiệm vụ cơ bản 1.3. Các kỹ thuật tiêu biểu trong thiết kế và xây dựng chương trình phần mềm 1.4. Các thuộc tính chất lượng của thiết kế và xây dựng chương trình phần mềm 43 ĐẶC TÍNH CHẤT LƯỢNG PHẦN MỀM THEO ISO/IEC 9126 Phù hợp,Chính xác, Liên tác,Tuân thủ chuẩn, An toàn (Suitability, Accuracy, Interoperability, Compliance, Security) Dễ hiểu, Dễ học, Dễ thao tác: (Understandability, Learnability, Operability ) Đáp ứng được về thời gian, Đáp ứng được về tài nguyên: (Time Behavior, Resource Behavior ) Phân tích được, Thay đổi được, Kiểm thử được, Ổn đinh (Analysability, Changeability, Stability, Testabilty) Thích nghi được, Cài đặt được, Khớp được , Thay thế được (Adaptability, Installability, Conformance, Replaceablity ) It trục trặc, Kháng lỗi, Khả năng khôi phục được: (Maturity, Fault Tolerance, Recoverability) Chức năng Functionality Dễ dùng Usability Tin cậy Reablility Hiệu quả Efficiency Bảo trì được Maintainability Khả chuyển Portability 44
File đính kèm:
- Công nghệ phần mềm - Chương 1 Tổng quan về xây dựng phần mềm.pdf