Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 263 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
263
Dung lượng
2,05 MB
Nội dung
1 Côngnghệphầnmềm (0) Nguyễn Thanh Bình Khoa Côngnghệ Thông tin Trường ðại học Bách khoa ðại học ðà Nẵng 2 Mục ñích Hiểu và nắm ñược Khái niệm côngnghệphầnmềm Các mô hình phát triển phầnmềm Các hoạt ñộng phát triển phầnmềm Các kỹ thuật và phương pháp cơ bản trong phát triển phầnmềm Áp dụng côngnghệphầnmềm trong phát triển phầnmềm 2 3 Nội dung Chương 1: Giới thiệu Côngnghệphầnmềm Chương 2: Các mô hình phát triển phầnmềm Chương 3: Phân tích và ñặc tả yêu cầu Chương 4: Các kỹ thuật ñặc tả Chương 5: Thiết kế Chương 6: Lập trình và ngôn ngữ lập trình Chương 7: Kiểm thử Chương 8: Quản trị dự ánphầnmềm 4 Tài liệu tham khảo Ian Sommerville, Software Engineering, 7th edition, Pearson Education, 2004. M. Gaudel, B. Marre, F. Schlienger, G. Bernot, Précis de génie logiciel, Masson, 2001. Stephen R. Schach, Classical and Object-Oriented Software Engineering, NXB IRWIN, 1996. Ronald Leach, Introduction to Software Engineering, CRC Press, 1999. G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide, Addision-Wesley, 1999. Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition, Addision-Wesley, 2004. Glenford J. Myers, The art of software testing, Wiley, 2004. Boris Beizer, Software Testing Techniques, Second Edition. 1 Giới thiệu côngnghệphầnmềm (1) Nguyễn Thanh Bình Khoa Côngnghệ Thông tin Trường ðại học Bách khoa ðại học ðà Nẵng 2 Nội dung Lịch sử phát triển phầnmềm và khủng hoảng phầnmềm ? Côngnghệphầnmềm Khái niệm Mục ñích Nguyên tắc Chất lượng phầnmềm Phân loại phầnmềm 2 3 Lịch sử phát triển phầnmềm 1946, máy tính ñiện tử ra ñời 1950, máy tính ñược thương mại hóa Phầnmềm bắt ñầu ñược phát triển Những năm 1960 những thất bại về phát triển phầnmềm • sản phẩm phầnmềm phức tạp • nhiều lỗi • tổ chức sản xuất: giá thành, tiến ñộ, Người ta nói ñến “Khủng hoảng phần mềm” 4 Lịch sử phát triển phầnmềm Từ thủ công ñến côngnghệ • Chương trình nhỏ • không chuyên nghiệp • 1 người làm • người sử dụng = người phát triển • 1 sản phẩm = mã nguồn • tiến trình phát triển ñơn giản • Dự án lớn • chuyên nghiệp • nhiều người làm • khách hàng & nhà cung cấp • nhiều sản phẩm • tiến trình phát triển phức tạp 1968, hội thảo khoa học ñầu tiên về “Công nghệphần mềm” 3 5 Khủng hoảng phầnmềm Về mặt sản phẩm chất lượng sản phẩm phầnmềm • không ñáp ứng yêu cầu thực tế • khó sử dụng • không tin cậy • khó bảo trì • khách hàng không hài lòng 6 Khủng hoảng phầnmềm Về mặt quản lý Kế hoạch • không ñánh giá ñúng giá thành • không ñúng tiến ñộ • chi phí phát triển / chi phí bảo trì Về mặt pháp lý • hợp ñồng không rỏ ràng, không chặt chẽ Nhân lực • ñào tạo • giao tiếp Thiếu tiêu chuẩn ñánh giá sản phẩm Thiếu quy trình quản lý 4 7 Khủng hoảng phầnmềm ðiều tra của General Acounting Office (1982) trên nhiều sự án với tổng vốn ñầu tư $68.000.000 Không giao sản phẩm: 29% Không ñược sử dụng: 47% Bỏ cuộc: 19% ðược sử dụng sau khi ñã chỉnh sửa: 3% Tốt: 2% 8 Khủng hoảng phầnmềm 5 9 Côngnghệphầnmềm Khái niệm Côngnghệphầnmềm nghiên cứu và phát triển các phương pháp, kĩ thuật và công cụ nhằm xây dựng các phầnmềm một cách kinh tế, có ñộ tin cậy cao và hoạt ñộng hiệu quả thiết kế, xây dựng, và bảo trì các phầnmềm phc tp, bn vng và cht lưng 10 Công nghệphầnmềm Mục ñích Mục ñích áp dụng thực tế • các kiến thức khoa học, • các nguyên tắc kinh tế, • các nguyên tắc quản lí, • các kỹ thuật và công cụ thích hợp ñể sản xuất và bảo trì các phầnmềm nhằm bảo ñảm 4 yêu cầu (FQCD): • phầnmềm tạo ra phải ñáp ứng ñược yêu cầu người sử dụng • phầnmềm phải ñạt ñược các tiêu chuẩn về chất lượng • giá thành phải nằm trong giới hạn ñặt ra • tiến ñộ xây dựng phầnmềm phải ñảm bảo 6 11 Công nghệphầnmềm Nguyên tắc Các nguyên tắc cơ bản Chặt chẽ (rigor and formality) Chia nhỏ (separation of concerns) Mô-ñun hóa (modularity) Trừu tượng (abstraction) Phòng ngừa sự thay ñổi (anticipation of change) Tổng quát hóa (generality) Giải quyết từng bước (incrementality) 12 Công nghệphầnmềm Nguyên tắc Chặt chẽ (rigor and formality) sử dụng mô hình lý thuyết và toán học áp dụng cho tất cả các bước, tất cả các sản phẩm Ví dụ • “chọn z là giá trị lớn nhất của x và y” • z = max(x, y) 7 13 Công nghệphầnmềm Nguyên tắc Chia nhỏ (separation of concerns) Làm chủ ñộ phức tạp • chỉ tập trung một lĩnh vực cùng một lúc Chia vấn ñề thành các phần nhỏ hơn • Giải quyết một phần nhỏ sẽ ñơn giản hơn • “chia ñể trị” (divide and conquer) Có thể chia nhỏ theo • thời gian: lập kế hoạch • khái niệm: giao diện / thuật toán • xử lý: chia các xử lý con 14 Công nghệphầnmềm Nguyên tắc Mô-ñun hóa (modularity) Chia nhỏ ñộ phức tạp • dễ hiểu • dễ quản lý các hệ thống phức tạp Quan hệ mật thiết với nguyên tắc “chia nhỏ” Các phương pháp mô-ñun hóa • chiến lược từ trên xuống (top-down) • chiến lược từ dưới lên (bottom-up) Chất lượng của mô-ñun hóa • liên kết lỏng lẻo (low coupling) • kết cố cao (high cohesion) 8 15 Côngnghệphầnmềm Nguyên tắc Trừu tượng (abstraction) Loại bỏ những gì không quan trọng Chỉ xem xét các yếu tố quan trọng Sử dụng các mô hình • mô hình cho người sử dụng • mô hình cho ngưới phát triển Ví dụ • ngôn ngữ lập trình / cấu trúc phần cứng • xây dựng tài liệu • ñặc tả bới ñiều kiện trước và sau 16 Côngnghệphầnmềm Nguyên tắc Phòng ngừa sự thay ñổi (anticipation of change) phầnmềm là sản phẩm thường xuyên phải thay ñổi dự báo các yếu tố có thể thay ñổi • ảnh hưởng có thể các thay ñổi thường gặp • trong ñặc tả yêu cầu • trong ngữ cảnh sử dụng • khả năng về côngnghệ [...]... t yêu c u thành c u trúc lô-gíc có th cài ñ t ñư c gi i pháp cho v n ñ ñã ñư c ñ c t thi t k ki n trúc • các moñun và giao di n c a các m - un thi t k giao di n thi t k các m - un • c u trúc d li u • thu t toán S n ph m: tài li u thi t k 8 4 Các ho t ñ ng phát tri n ph n m m Thi t k (2) Thi t k ki n trúc Thi t k giao di n ñ ct ki n trúc ñ ct giao di n Thi t k m - un ñ ct m - un Thi t k c u trúc d li... th ng th i gian th c (Real-Time System) các h th ng khi ho t ñ ng c n ph i tr l i các s ki n v i m t th i gian ñư c quy ñ nh nghiêm ng t 25 Phân lo i ph n m m Các h th ng phân tán (Distributed Systems) m ng máy tính phân tán d li u phân tán x lí Các h th ng nhúng (Emmbedded Systems) giao ti p v i các h th ng/m ch ñi n t 26 13 Mô hình phát tri n (2) Nguy n Thanh Bình Khoa Công ngh Thông tin Trư ng ð.. .Công ngh ph n m m Nguyên t c T ng quát hóa (generality) xem xét v n ñ trong ng c nh t ng quát gi i quy t v n ñ l n hơn m c ñích • tái s d ng d dàng • có th s d ng các công c có s n • s d ng design patterns • chi phí có th tăng cao 17 Công ngh ph n m m Nguyên t c Gi i quy t t ng bư c (incrementality) Nguyên t c • • • • xác ñ nh m t ph n (t p con) phát tri n ñánh giá b tñ ul i Áp... 35 K t lu n K t h p nhi u mô hình cho m t d án h th ng ph c t p, chia d án thành các h th ng con mô hình xo n c hay mô hình h p nh t cho toàn b d án m i h th ng con có th áp d ng m t mô hình khác nhau • mô hình nguyên m u cho các h th ng con ph c t p • mô hình thác nư c cho các h th ng con khác 36 18 Phân tích và ñ c t yêu c u (3) Nguy n Thanh Bình Khoa Công ngh Thông tin Trư ng ð i h c Bách khoa ð... thu t toán ñ ct thu t toán Các ho t ñ ng phát tri n ph n m m Thi t k (3) các phương pháp thi t k • hư ng ch c năng • hư ng ñ i tư ng 10 5 Các ho t ñ ng phát tri n ph n m m Mã hóa và g r i mã hóa • cài ñ t các thi t k b ng ngôn ng l p trình • không ñơn thu n ch là l p trình • • • • • • vi t tài li u insertions/invariants chu n l p trình (coding standards) l p trình theo c p (pair programming) công c... tính kh thi Phân tích và ñ c t yêu c u Thi t k Mã hóa và ki m th Cài ñ t và b o trì 17 Mô hình thác nư c Ưu ñi m d án nh yêu c u xác ñ nh Như c ñi m d án l n th i gian s al i yêu c u thay ñ i 18 9 Mô hình nguyên m u (prototyping model) Phân tích yêu c u Thi t k nhanh Xây d ng nguyên m u ðánh giá Thi t k 19 Mô hình nguyên m u Ưu ñi m phát hi n yêu c u h p th c hóa yêu c u thi t k giao di n • giao di n... hình ti n hóa Ưu ñi m d án v a và nh các ph n c a d án ph c t p các h th ng có th i gian s ng ng n H n ch c u trúc h th ng t i ti n trình không r ràng 24 12 Mô hình xo n c (spiral model) Determine objectives alternatives and constraints Evaluate alternatives identify, resolve risks Risk analysis Risk analysis Risk analysis Prototype 3 Prototype 2 REVIEW Requirements plan Life-cycle plan Risk analysis... Service 25 Product design Detailed design Code Unit test Integration test Develop, verify next-level product Mô hình xo n c nh n m nh vi c ñánh giá các r i ro ph n m m ñư c xây d ng theo nhi u chu kỳ m i chu kỳ tương ng v i m t s n ph m c a m t giai ño n phát tri n ph n m m xác ñ nh các m c tiêu, gi i pháp, ràng bu c ñánh giá các gi i pháp, xác ñ nh các nguy cơ và tìm cách gi i quy t chúng phát tri n và ki... nh v n ñ c n gi i quy t, xem xét các gi i pháp và kĩ thu t khác nhau • thu n l i • b tl i ñánh giá v th i gian, giá thành, ngu n tài nguyên c n thi t S n ph m: tài li u phân tích 4 2 Các ho t ñ ng phát tri n ph n m m Phân tích và ñ c t yêu c u (1) xác ñ nh nhu c u c a khách hàng/ngư i s d ng • xác ñ nh bài toán, ch không ph i là gi i pháp khó khăn • khách hàng không bi t r cái h c n • khách hàng không... Phân tích bài toán Thu th p yêu c u Phân tích yêu c u ð c t yêu c u H p th c hóa yêu c u 2 1 Phân tích và ñ c t yêu c u Phân tích và ñ c t yêu c u là ti n trình xác ñ nh: các d ch v /ch c năng mà khách hàng yêu c u t h th ng các ràng bu c mà h th ng ñư c phát tri n và v n hành 3 Yêu c u là gì M t yêu c u có th là t m t phát bi u m c tr u tư ng r t cao v d ch v hay h th ng cho ñ n m t ñ c t toán h c r