Bài giảng Công nghệ phần mềm ứng dụng - Bài 6: Chủ đề nâng cao trong công nghệ học phần mềm - Thạc Bình Cường
TỔNG QUAN
• Định nghĩa:
RUP (Rational Unified Process) là một quá trình phát triển phần mềm bao gồm
các giai đoạn trong vòng đời của dự án và giúp đỡ các nhà phát triển trong hoạt
động quản lí dự án cũng như các hoạt động kĩ thuật. Là sản phẩm được phát
triển và bảo trì bởi Rational.
Nó cũng được lĩnh hội tương tự như quá trình làm phần mềm khác, và sử dụng
mô hình hướng đối tượng như UML.
• Hai trục của RUP:
Trục hoành biểu diễn chuỗi công việc theo thời gian: Vòng đời của quá trình và
biểu diễn bởi thuật ngữ giai đoạn, lặp, chuẩn hóa Nó biểu diễn trạng thái động
của quá trình.
Trục tung biểu diễn Workflows, tập hợp một cách lôgíc các hoạt động công nghệ
phụ thuộc vào bản chất của nó. Nó biểu diễn trạng thái tĩnh của quá trình.
Chú ý: Sự phân biệt này là rất quan trọng.
• Quá trình kĩ nghệ phần mềm:
Tiến trình: là một tập hợp các giai đoạn được sắp xếp một cách cục bộ mà mục
đích là đạt mục tiêu đặt ra. Trong lĩnh vực SE đó là sản phẩm hay bảo trì
sản phẩm.
Mô hình hóa: Tiến trình phần mềm là tiến trình nghề nghiệp nhằm hoàn thiện tổ
chức để phát triển phần mềm. RUP là một tiến trình nghề nghiệp để phát triển
phần mềm theo hướng đối tượng.
CÁC KHÁI NIỆM CƠ BẢN
• Vai trò (Role): Trạng thái/trách nhiệm của cá thể hay nhóm làm việc theo nhóm trong
ngữ cảnh tổ chức công nghệ phần mềm.
• Hoạt động (Ativité): là một đơn vị công việc được cung cấp bởi vai trò trong ngữ
cảnh dự án. Một hoạt động phải có một đích rõ ràng.
• Giai đoạn (Etape): Một hoạt động được phân thành nhiều giai đoạn: suy nghĩ, thực
hiện, xem xét.
• Hướng dẫn: Những kĩ thuật, tư vấn cần thiết cho hoạt động.
• Artefacts (chế phẩm): Một hoạt động có những artefacts vào và ra. Một artefact là
một phần tử được tạo ta hay được sử dụng bởi quá trình. Một đích sử dụng nhiều
artefact để thực hiện các hoạt động. Một artefact chỉ chịu trách nhiệm bởi chỉ
một đích.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm ứng dụng - Bài 6: Chủ đề nâng cao trong công nghệ học phần mềm - Thạc Bình Cường
ho mỗi tổ chức. • Chứng chỉ ISO 9000: Các chuẩn về chất lượng và các thủ tục cần được tư liệu hóa cụ thể trong mỗi tổ chức. Tổ chức bên ngoài có thể xác nhận các tài liệu chuẩn hóa của một tổ chức là phù hợp với chuẩn ISO 9000. Khách hàng ngày càng có yêu cầu cấp chứng chỉ ISO 9000. 28 v1.0015112208 6.4.4. CÁC CHUẨN PHẦN MỀM (tiếp theo) 29 Mô hình chất lượng ISO 9000 Sổ tay chất lượng Kế hoach chất lượng dự án 1 Kế hoach chất lượng dự án 2 Kế hoach chất lượng dự án 3 Quản lí chất lượng dự án Tiến trình chất lượng của tổ chức v1.0015112208 6.4.4. CÁC CHUẨN PHẦN MỀM (tiếp theo) • Đảm bảo chất lượng và chuẩn hóa: Chuẩn hóa là chìa khóa để quản lí chất lượng có hiệu quả. Đó có thể là chuẩn quốc tế, quốc gia, tổ chức hay các dự án về chuẩn hóa. Chuẩn hóa sản phẩm xác định các đặc trưng mà mọi thành phần phải thể hiện, có nghĩa là kiểu cách lập trình chung. Quá trình chuẩn hóa định nghĩa cách mà quá trình phần mềm phải thực thi. • Các vấn đề của chuẩn hóa: Không được xem như sự thích hợp và hợp mốt bởi các kĩ sư phần mềm. Nhiều thủ tục giấy tờ phiền phức. Không hỗ trợ bởi các công cụ lập trình, tẻ nhạt vì phải thực hiện thủ công. • Phát triển các chuẩn: Bao gồm người tham gia trong phát triển. Các kĩ sư phải hiểu tính hợp lí khi áp dụng một chuẩn. Thường xuyên xem xét lại các chuẩn và tính chất sử dụng. Các chuẩn có thể lạc hậu nhanh chóng và làm giảm sự tín nhiệm của các người tham gia. Các chuẩn chi tiết phải liên kết với công cụ hỗ trợ. Tăng cường ghi chép là điều có ý nghĩa nhất. 30 v1.0015112208 6.4.5. CÁC CHUẨN TÀI LIỆU • Tài liệu là một phần quan trọng trong SE để theo dõi, để hiểu và để làm. • 3 kiểu chuẩn tài liệu: Các chuẩn của quá trình lập tài liệu: quy định chuẩn khi tạo tài liệu; Chuẩn tài liệu: Chuẩn để quản trị chính tài liệu đó; Chuẩn trao đổi tài liệu: Dùng trong trao đổi qua E-mail, copy hay lưu trữ trong CSDL. • Quá trình lập tài liệu: 31 Tạo bản nháp sơ bộ Xem xét bản nháp Kết hợp lời chú thích Xem lại bản nháp Văn bản được kiểm chứng Bản thảo cuối cùng Kiểm tra bản thảo Trình bày văn bản Xem xét lại bản thảo In bản gốc Sao chép nhiều bản v1.0015112208 6.4.6. ĐỘ ĐO PHẦN MỀM • Độ đo phần mềm là một kiểu độ đo liên quan đến hệ thống phần mềm, quá trình hay tài liệu, ví dụ như số dòng lệnh, số thông báo lỗi khi cung cấp sản phẩm. • Hai lớp độ đo: Độ đo đăng ký và độ đo dự đoán. 32 Quá trình phần mềm Sản phẩm phần mềm Độ đo đăng ký Độ đo dự đoán Các quyết định quản lí v1.0015112208 6.4.6. ĐỘ ĐO PHẦN MỀM (tiếp theo) • Quá trình đo lường: Quá trình đo lường một phần mềm là một phần của quá trình kiểm soát chất lượng. Dữ liệu sưu tập trong quá trình này phải được duy trì như một tài nguyên của tổ chức. Khi CSDL số đo được thiết lập, các so sánh trên dự án là hoàn toàn có thể. 33 • Độ đo dự đoán và độ đo điều khiển: Quá trình xử lí phần mềm Điều khiển độ do Sản phẩm phần mềm Độ đo dự đoán Quyết định quản lí v1.0015112208 6.4.7. ĐỘ ĐO CHẤT LƢỢNG SẢN PHẨM • Việc biểu diễn, đánh giá độ đo bằng các số liệu hơn là kinh nghiệm. • Độ đo chất lượng thiết kế (xem chất lượng thiết kế trong phần 4: tính liên kết, độ liên kết, dễ hiểu và thích hợp). • Độ đo chất lượng chương trình: chiều dài mã, độ phức tạp, mức lồng điều kiện • Độ đo chất lượng phải có tính dự đoán cho chất lượng sản phẩm. • Hai loại độ đo: Độ đo động: là tập các số liệu thu được khi thực hiện một chương trình: thời gian đáp ứng của hộ thống, số lỗi Độ đo động trợ giúp khẳng định tính hiệu quả và độ tin cậy, còn độ đo tĩnh giúp khẳng định độ phức tạp, tính hiểu được và tính duy trì của phần mềm. Độ đo tĩnh liên quan trực tiếp tới các thuộc tính của chất lượng. Nó là tập các số liệu về sự đo lường việc biểu diễn của hệ thống. 34 v1.0015112208 6.5. CẢI TIẾN QUY TRÌNH 35 6.5.1. Quá trình cải tiến quy trình 6.5.2. Mô hình hóa và phân tích quy trình 6.5.3. Độ đo quy trình 6.5.4. Mô hình thuần thục khả năng SEI 6.5.5. Phân loại quy trình v1.0015112208 6.5.1. QUÁ TRÌNH CẢI TIẾN QUY TRÌNH 36 Phân tích quy trình Xác định các cải tiến Xác định các thay đổi Đào tạo đội ngũ Hiệu chỉnh các thay đổi Mô hình quy trình Lập kế hoạch Kế hoạch đào tạo Mô hình xem xét lại Phản hồi Sơ đồ khái quát của cải tiến quy trình v1.0015112208 6.5.1. QUÁ TRÌNH CẢI TIẾN QUY TRÌNH (tiếp theo) • Phân tích quy trình: Xem xét quy trình đã tồn tại, tạo ra mô hình quy trình để lập tài liệu và hiểu quy trình đó. • Xác định cải tiến: Sử dụng kết quả phân tích để xác định chất lượng, lập lịch hay chi phí những pha gay cấn. • Xác định thay đổi: Thiết lập các thủ tục, phương pháp, công cụ mới và tích hợp với các cái đã tồn tại. • Đào tạo: Không đào tạo quy trình sẽ thất bại. • Hiệu chỉnh thay đổi: Các thay đổi có tác dụng ngay với hệ thống. 37 v1.0015112208 6.5.2. MÔ HÌNH HÓA VÀ PHÂN TÍCH QUY TRÌNH • Vai trò: Nghiên cứu các quy trình đang tồn tại và phát triển mô hình trừu tượng cho các quy trình này (thâu tóm các đặc trưng). • Phân tích là nghiên cứu để hiểu mối liên quan giữa các phần của quy trình. Điểm xuất phát là mô hình hình thức đã sử dụng. • kĩ thuật: Hỏi và phỏng vấn; kĩ thuật Ethnographic: Dùng để hiểu bản chất của phát triển phần mềm như các hoạt động của con người. • Các ký pháp dùng trong mô hình: Activity (hoạt động): Biểu diễn bởi hình chữ nhật tròn; Process (quá trình): Tập các hoạt động, biểu diễn bởi hình chữ nhật tròn có bóng mờ; Deliverable (phân phối): Biểu diễn bởi một hình chữ nhật có bóng mờ, nó là đầu ra của một hoạt động; Condition (điều kiện): Biểu diễn bởi một hình chữ nhật, là tiền hay hậu điều kiện; Role (vai trò): Biểu diễn bởi hình tròn; Exception (ngoại lệ): Hộp bao kép, việc thay đổi do một sự kiện nào đó; Communication (giao tiếp): Biểu diễn bởi → Trao đổi thông tin giữa con người với nhau hay với hệ thống. 38 v1.0015112208 6.5.3. ĐỘ ĐO QUY TRÌNH • Độ đo của một quy trình là các dữ liệu định lượng về quy trình phần mềm (Tập các độ đo là chủ yếu cho quá trình cải tiến quy trình – Humphey, 1989). • Phân loại: Thời gian để thực hiện 1 quy trình đặc biệt; Tài nguyên yêu cầu cho 1 quy trình đặc biệt. Số các biến cố. • Khó khăn: Cái nào là cần định lượng đo đếm. Tuy nhiên có thể xem: mục đích, câu hỏi, độ đo. 39 v1.0015112208 6.5.4. MÔ HÌNH THUẦN THỤC KHẢ NĂNG SEI • Viện Công nghệ phần mềm (SEI) Carnegie-Melon-University đề xuất. Mô hình SEI phân quá trình phần mềm thành 5 mức khác nhau: Mức khởi đầu: Một tổ chức không quản lí thực sự các thủ tục hay dự án. Phần mềm có thể phát triển song không thể dự đoán trước (ngân sách, thời gian). Mức lặp: Một tổ chức có thể có quản lí hình thức về đảm bảo chất lượng, các thủ tục điều khiển cấu hình. Tổ chức có thể lặp lại các dự án cùng kiểu. Mức có định nghĩa: Ở mức này, một tổ chức có định nghĩa các quá trình của mình mà như vậy có một cơ sở cho quá trình cải tiến chất lượng. Các thủ tục hình thức đảm bảo rằng các quá trình đã định là sẽ được tuân thủ. Mức được quản trị: Một tổ chức đã định nghĩa các quá trình và một chương trình để thu thập dữ liệu về chất lượng. Số đo quá trình và thủ tục được sưu tập cho quá các hoạt động của quá trình cải tiến. Mức tối ưu: Đã thoả thuận tiếp tục quá trình cải tiến. Quá trình này có ngân sách và kế hoạch để thực hiện và là phần tích hợp của quá trình tổ chức. 40 v1.0015112208 6.5.5. PHÂN LOẠI QUY TRÌNH • Việc phân loại độ chín của các quy trình như trên thường áp dụng cho các dự án lớn. • Phân loại : Quy trình không hình thức: Các quá trình mà mô hình không định nghĩa một cách chặt chẽ. Quy trình được quản lí: Mô hình quá trình được định nghĩa (định hướng); Quy trình có phương pháp: Một số phương pháp phát triển đã được định nghĩa; Quy trình cải tiến. • Lựa chọn quy trình: Quy trình được sử dụng phụ thuộc vào kiểu sản phẩm được phát triển: Với các hệ thống lớn, việc quản lí thường là vấn đề chính yếu, do vậy cần có một quy trình quản lí nghiêm ngặt. Với các hình thức nhỏ thì nó là hình thức. Không có một quy trình thống nhất có thể đáp ứng cho mọi tổ chức. 41 v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC a. Tái kĩ nghệ • Tái kĩ nghệ phần mềm: Biên dịch mã nguồn; kĩ nghệ ngược; Cải tiến cấu trúc chương trình; Module hóa chương trình; Tái kĩ nghệ dữ liệu. • Tái kĩ nghệ hệ thống: Tái cấu trúc hoặc viết lại một phần/toàn bộ hệ thống đã có, song không làm thay đổi chức năng hệ thống. Có thể ứng dụng cho một số hệ thống con của hệ thống thường cần phải bảo trì. Tái kĩ nghệ cần các có thêm các cố gắng để làm cho hệ thống dễ bảo trì hơn, do vậy hệ thống có thể phải tái cấu trúc và tái lập lại tài liệu. 42 v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) • Khi nào cần tái kĩ nghệ? Khi những thay đổi của hệ thống thường chỉ giới hạn ở một phần của hệ thống thì cần tái kĩ nghệ cho phần này. Khi hỗ trợ phần cứng, phần mềm trở nên lạc hậu. Khi công cụ hỗ trợ tái cấu trúc hiện diện. • Những ưu điểm của tái kĩ nghệ: Giảm rủi ro: Có một rủi ro lớn khi phát triển phần mềm mới. Đó có thể là vấn đề phát triển, vấn đề nhân sự và vấn đề đặc tả. Giảm chi phí: Chi phí cho tái nghĩ kệ thường thấp hơn chi phí cho phát triển phần mềm mới. • Phát triển và tái kĩ nghệ 43 Đặc tả hệ thống Thiết kế và cài đặt Hệ thống mới Forward Engineering Hệ thống đang tồn tại Hiểu và dịch chuyển hệ thống Hệ thống được tái tạo Software Re-engineering v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) Quy trình tái kĩ nghệ 44 Dịch mã nguồn Chương trình nguồn Cải tiến kiến trúc chương trình Tư liệu chương trình Mô đun hóa chương trình Chương trình được cấu trúc lại Kĩ nghệ ngược Chương module hóa Dữ liệu gốc Tái kĩ nghệ dữ liệu Bản ghi tái kĩ nghệ v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) b. Biên dịch mã nguồn • Bao gồm việc chuyển mã từ ngôn ngữ lập trình này sang ngôn ngữ lập trình khác. • Điều này có thể cần thiết vì: Cập nhật môi trường phần cứng; Phong cách nhân viên; Thay đổi chiến lược tổ chức; • Chỉ có là hiện thực nếu bộ biên dịch là hiện có. • Quá trình biên dịch mã nguồn: 45 Hệ thống được tái kĩ nghệ Hệ thống đã tái kĩ nghệ Thiết kế các lệnh chuyển dịch Dịch mã tự động Dich mã bằng thủ công Xác định khác biệt của mã nguồn Hệ thống được tái kĩ nghệ v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) c. Kĩ nghệ ngƣợc • Phân tích phần mềm với quan điểm để hiểu thiết kế và đặc tả của nó. • Có thể một phần của quá trình tái kĩ nghệ song cũng có thể sử dụng để đặc tả lại một hệ thống cho việc cài đặt lại. • Xây dựng một CSDL chương trình và khởi tạo thông tin từ đó. • Công cụ hiểu chương trình (trình duyệt, bộ khởi tạo tham chiếu chéo) có thể được sử dụng trong quá trình này. • Quy trình: 46 Hệ thống được tái cấu trúc Phân tích tự động Sản sinh tài liệu Sơ đồ cấu trúc dữ liệu Ma trận dấu vết Sơ đồ cấu trúc chương trình Kho thông tin hệ thống Ghi chú giải v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) d. Cải tiến cấu trúc chƣơng trình • Bảo trì có khuynh hướng làm sai lạc cấu trúc chương trình. Do vậy, cấu trúc trở nên ngày càng khó hiểu hơn. • Chương trình có thể tự động cấu trúc lại để loại bỏ các nhánh không điều kiện. • Điều kiện có thể được đơn giản hóa để chúng ngày càng dễ đọc hơn. • Tự động hóa cấu trúc: 47 Phân tích và xây dựng đồ họa Chương trình đã tái cấu trúc Chương trình được tái cấu trúc Tạo sinh chương trình Biểu diễn đồ họa v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) • Các vấn đề với tái cấu trúc: Mất chú giải; Mất tài liệu; Yêu cầu tính toán lớn. • Tái cấu trúc ít trợ giúp với chương trình ít có tính mô đun hóa, nơi mà các thành phần liên quan bị phân tán bởi mã. • Tính khó hiểu của lập trình hướng dữ liệu có thể không được tận dụng cho việc tái cấu trúc. 48 v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) e. Module hóa chƣơng trình • Đó là quá trình tổ chức lại chương trình sao cho các phần chương trình có liên quan được tập hợp lại trong cùng một module đơn. • Thường là một quá trình thủ công được thực hiện bởi việc giám sát chương trình và tổ chức lại. • Các kiểu module: Sự trừu tượng hóa dữ liệu. Kiểu dữ liệu trừu tượng mà ở đó các cấu trúc dữ liệu và các thao tác với cấu trúc dữ liệu ấy được nhóm lại với nhau. Các module phần cứng. Tất cả các chức năng yêu cầu giao tiếp với một đơn vị phần cứng. Các module chức năng. Các module chứa các chức năng thực hiện các nhiệm vụ có liên quan với nhau. Các module hỗ trợ quá trình. Các module mà các chức năng hỗ trợ một quá trình nghiệp vụ hay một quá trình phân mảnh. 49 v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) f. Khôi phục dữ liệu trừu tƣợng • Nhiều các hệ thống sử dụng các bảng dùng chung và dữ liệu toàn cục để tiết kiệm bộ nhớ. • Gây nên các vấn đề bởi vì các thay đổi có ảnh hưởng lớn đến hệ thống. • Các dữ liệu toàn cục dùng chung có thể phải chuyển đổi sang các đối tượng hay các ADT: Phân tích các miền dữ liệu chung nhằm xác định các trừu tượng về mặt logic; Tạo một kiểu dữ liệu trừu tượng hay một lớp các đối tượng cho mỗi trừu tượng này. • Cung cấp các chức năng truy nhập và cập nhật vào mỗi trường của dữ liệu trừu tượng. • Dùng một trình duyệt để gọi các dữ liệu trừu tượng này và thay thế chúng với các chức năng mới định nghĩa. 50 v1.0015112208 6.6. CÁC CHỦ ĐỀ TIÊN TIẾN KHÁC (tiếp theo) g. Vấn đề dữ liệu • Người dùng đầu cuối muốn có dữ liệu trên máy của họ hơn là trên hệ thống file. Họ cần có khả năng tải dữ liệu này từ một CSDL. • Hệ thống có thể phải xử lí nhiều dữ liệu hơn là cái chỉ ra bởi nhà thiết kế. • Dữ liệu dư thừa có thể được lưu bởi các định dạng khác nhau ở các vị trí khác nhau trong hệ thống. • Vấn đề đặt tên dữ liệu: Tên có thể rất khó hiểu, cùng một dữ liệu có thể có nhiều tên khác nhau trong các chương trình khác nhau. • Vấn đề chiều dài của trường: Cùng một phần tử có thể gán cho các chiều dài khác nhau trong các chương trình khác. • Vấn đề tổ chức mẫu tin: Các mẫu tin biểu diễn cho cùng một thực thể có thể tổ chức khác nhau trong các chương trình khác nhau. • Literals rất khó mã hóa. • Không có từ điển dữ liệu. 51 v1.0015112208 TÓM LƢỢC CUỐI BÀI 52 Trong bài này chúng ta đã tìm hiểu những nội dung sau: • Mô hình RUP; • Phương pháp phân tích phần mềm linh hoạt; • Ước lượng chi phí phần mềm; • Quản lí chất lượng; • Cải tiến quy trình; • Các chủ đề tiến tiến khác.
File đính kèm:
- bai_giang_cong_nghe_phan_mem_ung_dung_bai_6_chu_de_nang_cao.pdf