Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang

1.1. Định nghĩa chung về phần mềm

• Phần mềm (Software - SW) như một khái niệm

đối nghĩa với phần cứng (Hardware - HW), tuy

nhiên, đây là 2 khái niệm tương đối

• Từ xưa, SW như thứ được cho không hoặc bán

kèm theo máy (HW)

• Dần dần, giá thành SW ngày càng cao và nay

cao hơn HW

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 1

Trang 1

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 2

Trang 2

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 3

Trang 3

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 4

Trang 4

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 5

Trang 5

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 6

Trang 6

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 7

Trang 7

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 8

Trang 8

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 9

Trang 9

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 20 trang xuanhieu 5600
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang

Bài giảng Nhập môn công nghệ phần mềm - Phần I: Giới thiệu chung về Nhập môn công nghệ phần mềm - Vũ Thị Hương Giang
 ng•êi dïng Ph©n tÝch cÊu tróc
(8) Thao tác bảo trì phần mềm là việc xử lý quay vòng yªu cÇu X¸c ®Þnh yªu cÇu phÇn mÒm hãa
 ThiÕt kÕ c¬ b¶n phÇn mÒm
 ThiÕt kÕ
 trở lại các pha trong vòng đời phần mềm nhằm biến ThiÕt kÕ cÊu tróc ngoµi cña phÇn ThiÕt kÕ cÊu tróc hãa
 hÖ thèng
 đổi sửa chữa nâng cấp phần mềm mÒm
 , , LËp tr×nh cÊu tróc
 ThiÕt kÕ Lµ thiÕt kÕ chi tiÕt: ThiÕt kÕ cÊu
 Ph•¬ng ph¸p Jackson
 ch•¬ng tróc bªn trong cña phÇn mÒm (®¬n
 Ph•¬ng ph¸p
 tr×nh vÞ ch•¬ng tr×nh hoÆc m«®un)
 Warnier
 LËp tr×nh M· hãa bëi ng«n ng÷ lËp tr×nh M· hãa cÊu tróc hãa
 §¶m b¶o KiÓm tra chÊt l•îng phÇn mÒm ®· Ph•¬ng ph¸p kiÓm
 chÊt l•îng ph¸t triÓn thö ch•¬ng tr×nh
 Sö dông, vËn hµnh phÇn mÒm ®·
 VËn hµnh
 ph¸t triÓn. BiÕn ®æi, ®iÒu chØnh Ch•a cô thÓ
 B¶o tr×
 phÇn mÒm
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.79 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.80
 3.5.1 Capability Maturity Model (CMM) by SEI: 
 3.5 Quy trình phát triển phần mềm Mô hình thuần thục khả năng
 • Level 1: Initial (Khởi đầu). Few processes are defined. 
 Common process framework - Khung quy trình chung
 Success depends on individual effort
 Framework activities - Hoạt động khung • Level 2: Repeatable (Lặp lại). Basic project
 Task sets - Tập tác vụ management processes. Repeat earlier succeses on
 Tasks - Tác vụ projects with similar applications
 Milestones, deliverables
 • Level 3: Defined (Xác định). Use a documented and
 SQA points - Điểm approved version of the organization’s process for
 KTCL developing and supporting software
 Umbrella activities
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.81 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.82
 CMM (cont.) 18 KPAs of CMM
• Level 4: Managed (Quản trị). Both SW process and LEVEL 2: Repeatable 7. Peer reviews
 1. SW configuration 8. Intergroup 16.
 products are quantitatively understood and controlled management coordination Process
 using detailed measures 2. SW quality 9. SW product 14. change
 assurance engineering SW quality management
• 3. SW subcontract 10. IntegratedSW Management 17. 
 Level 5: Optimizing (Tối ưu). Continuous process management management 15. Technology
 improvement is enabled by quantitative feedback 4. SW project tracking 11. Training program Quantitative change
 and oversight 12. Organization process management
 from the process and from testing innovative ideas 5. SW project process definition management 18.
 planning 13. Organization Defect
 and technologies 6. Requirements process focus prevention
 management
18 key process areas (KPAs) for CMM LEVEL 3: Defined
 LEVEL 4: Managed
 LEVEL 5: Optimizing
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.83 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.84
 14
 9/4/2011
 3.5.2 Mô hình tuyến tính Mô hình tuyến tính
 • Công nghệ học Hệ thống / Thông tin và mô hình hóa
 (System / Information engineering and modeling): thiết
 lập các yêu cầu, ánh xạ một số tập con các yêu cầu sang
 phần mềm trong quá trình tương tác giữa phần cứng, 
 Phân tích Thiết kế Lập trình Kiểm thử người và CSDL
 • Phân tích yêu cầu (Requirements analysis): hiểu lĩnh vực
 Công nghệ học
 thông tin, chức năng, hành vi, tính năng và giao diện của
 Hệ thống / Thông tin
 phần mềm sẽ phát triển. Cần phải tạo tư liệu và bàn thảo
 với khách hàng người dùng
 Điển hình là mô hình vòng đời cổ điển , 
 (mô hình thác nước) Classic life cycle / 
 waterfall model: là mô hình hay đựoc dùng nhất
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.85 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.86
 Mô hình tuyến tính Mô hình tuyến tính
 • Kiểm thử (Testing): Kiểm tra các chương trình và
 • Thiết kế (Design): là quá trình nhiều bước với 4 thuộc môđun cả về lôgic bên trong và chức năng bên ngoài, 
 tính khác nhau của một chương trình: cấu trúc dữ liệu, nhằm phát hiện ra lỗi và đảm bảo với đầu vào xác
 kiến trúc phần mềm, biểu diễn giao diện và chi tiết thủ định thì cho kết quả mong muốn
 tục (thuật toán). Cần tư liệu hóa và là một phần quan
 trọng của cấu hình phần mềm • Hỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng
 những thay đổi, nâng cấp phần mềm đã phát triển do
 • 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 bởi ngôn sự thay đổi của môi trường, nhu cầu
 ngữ nào đó. Nếu thiết kế đã được chi tiết hóa thì lập trình
 có thể chỉ thuần túy cơ học
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.87 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.88
 3.5.3 Mô hình chế thử (Prototyping
 Điểm yếu của Mô hình tuyến tính model)
• Thực tế các dự án ít khi tuân theo dòng tuần tự của mô
 hình, mà thường có lặp lại (như mô hình của Boehm)
• Khách hàng ít khi tuyên bố rõ ràng khi nào xong hết
 các yêu cầu Nghe Khách Tạo / sửa
• Khách hàng phải có lòng kiên nhẫn chờ đợi thời gian trình bày bản mẫu
 nhất định mới có sản phẩm. Nếu phát hiện ra lỗi nặng
 thì là một thảm họa!
 Khách kiểm tra
 bản mẫu
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.89 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.90
 15
 9/4/2011
 Mô hình chế thử: Khi nào ? 3.5.4 Mô hình phát triển ứng dụng nhanh
 (Rapid Application Development: RAD)
• Khi mới rõ mục đích chung chung của phần mềm, 
 chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưa rõ • Là quy trình phát triển phần mềm gia tăng, tăng dần từng
 yêu cầu đầu ra bước (Incrimental software development) với mỗi chu trình
 phát triển rất ngắn (60-90 ngày)
• Dùng như “Hệ sơ khai” để thu thập yêu cầu người
 dùng qua các thiết kế nhanh • Xây dựng dựa trên hướng thành phần (Component-based
 construction) với khả năng tái sử dụng (reuse)
• Các giải thuật, kỹ thuật dùng làm bản mẫu có thể chưa
 • Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo các
 nhanh chưa tốt miễn là có mẫu để thảo luận gợi yêu
 , , pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xử lý, 
 cầu của người dùng Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data, 
 Process, Appl. Generation, Test)
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.91 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.92
 Team #3
 Business
 Modeling RAD: Business modeling
 Mô hình Team #2 Data
 Modeling
 Business Process
 phát triển Modeling Modeling
 Team #1 Data Application Luồng thông tin được mô hình hóa để trả lời các
 ứng dụng Modeling Generation
 Business Process Testing & câu hỏi: 
 Turnover
 nhanh Modeling Modeling
 Data Application – Thông tin nào điều khiển xử lý nghiệp vụ ?
 Modeling Generation
 Testing & – Thông tin gì được sinh ra?
 Process Turnover
 Modeling – Ai sinh ra nó ?
 Application – Thông tin đi đến đâu ?
 Generation – Ai xử lý chúng ?
 Testing &
 Turnover
 60 - 90 days
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.93 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.94
RAD: Data and Process modeling RAD: Appl. Generation and Testing
 • Application Generation: Dùng các kỹ thuật thế hệ 4 để
 • Data modeling: các đối tượng dữ liệu cần để hỗ trợ tạo phần mềm từ các thành phần có sẵn hoặc tạo ra
 nghiệp vụ (business). Định nghĩa các thuộc tính các thành phần có thể tái dụng lại sau này. Dùng các
 của từng đối tượng và xác lập quan hệ giữa các đối công cụ tự động để xây dựng phần mềm
 tượng • Testing and Turnover: Kiểm thử các thành phần mới
 • Process modeling: Các đối tượng dữ liệu được và kiểm chứng mọi giao diện (các thành phần cũ đã
 chuyển sang luồng thông tin thực hiện chức năng được kiểm thử và dùng lại)
 nghiệp vụ. Tạo mô tả xử lý đễ cập nhật (thêm, sửa, 
 xóa, khôi phục) từng đối tượng dữ liệu
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.95 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.96
 16
 9/4/2011
 Các mô hình tiến hóa
 RAD: Hạn chế ? 3.5.5 : 
 gia tăng, xoắn ốc, xoắn WINWIN, ...
• Cần nguồn nhân lực dồi dào để tạo các nhóm cho các chức • Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo thời
 năng chính gian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn
• Yêu cầu hai bên giao kèo trong thời gian ngắn phải có thiện thêm chức năng, tính năng
 phần mềm hoàn chỉnh, thiếu trách nhiệm của một bên dễ • Các mô hình tiến hóa (evolutionary models) có tính lặp
 làm dự án đổ vỡ lại. Kỹ sư phần mềm tạo ra các phiên bản (versions) ngày
• RAD không phải tốt cho mọi ứng dụng, nhất là với ứng càng hoàn thiện hơn, phức tạp hơn
 dụng không thể môđun hóa hoặc đòi hỏi tính năng cao • Các mô hình: incremental, spiral, WINWIN spiral, 
• Mạo hiểm kỹ thuật cao thì không nên dùng RAD concurrent development model
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.97 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.98
 Mô hình gia tăng
 Mô hình gia tăng
 (The incremental model)
• Kết hợp mô hình tuần tự và ý tưởng lặp lại của Gia tăng 1
 chế bản mẫu Ph©n tÝch ThiÕt kÕ LËp tr×nh KiÓm thö Xuất xưởng 1
 System/info.
• Sản phẩm lõi với những yêu cầu cơ bản nhất Engineering
 của hệ thống được phát triển Gia tăng 2 Ph©n tÝch ThiÕt kÕ LËp tr×nh KiÓm thö Xuất xưởng 2
• Các chức năng với những yêu cầu khác được
 phát triển thêm sau (gia tăng) Gia tăng 3 Ph©n tÝch ThiÕt kÕ LËp tr×nh KiÓm thö Xuất xưởng 3
• Lặp lại quy trình để hoàn thiện dần Gia tăng 4 Ph©n tÝch ThiÕt kÕ LËp tr×nh KiÓm thö XX 4
 Calendar time
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.99 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.100
 Mô hình xoắn ốc (spiral) Mô hình xoắn ốc (tiếp)
 • Giao tiếp khách hàng: giữa người phát triển và khách
 Lập kế hoạch
 Phân tích rủi ro hàng để tìm hiểu yêu cầu, ý kiến
 Giao tiếp • Lập kế hoạch: Xác lập tài nguyên, thời hạn và những
 khách hàng thông tin khác
 Khái niệm Kỹ nghệ • Phân tích rủi ro: Xem xét mạo hiểm kỹ thuật và mạo
 hiểm quản lý
 Làm mới
 • Kỹ nghệ: Xây dựng một hay một số biểu diễn của ứng
 Nâng cấp dụng
 Khách hàng Xây dựng & 
 đánh giá
 Bảo trì Xuất xưởng
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.101 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.102
 17
 9/4/2011
 Mô hình xoắn ốc (tiếp) Mô hình xoắn ốc: Mạnh và yếu?
• Xây dựng và xuất xưởng: xây dựng, kiểm thử, cài đặt • Tốt cho các hệ phần mềm quy mô lớn
 và cung cấp hỗ trợ người dùng (tư liệu, huấn luyện, . . • Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa
 .)
 • Khó thuyết phục khách hàng là phương pháp tiến
• Đánh giá của khách hàng Nhận các phản hồi của
 : hóa xoắn ốc có thể kiểm soát được
 người sử dụng về biểu diễn phần mềm trong giai đoạn
 kỹ nghệ và cài đặt • Chưa được dùng rộng rãi như các mô hình tuyến
 tính hoặc chế thử
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.103 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.104
 Mô hình xoắn ốc WINWIN Mô hình xoắn ốc WINWIN
• Nhằm thỏa hiệp giữa người phát triển và khách hàng, 
 2. Xác định điều kiện 3a. Hòa hợp điều kiện thắng
 cả hai cùng “Thắng” (win-win) thắng của cổ đông 3b. Thiết lập mục tiêu mức tiếp
 và các ràng buộc, dự kiến
 – Khách thì có phần mềm thỏa mãn yêu cầu chính
 1. Xác định mức
 – Người phát triển thì có kinh phí thỏa đáng và thời gian hợp tiếp của cổ đông
 lý 4. Đánh giá tiến trình và
 dự kiến sản phẩm,
• Các hoạt động chính trong xác định hệ thống: giải quyết rủi ro
 – Xác định cổ đông (stakeholders)
 – Xác định điều kiện thắng của cổ đông
 7. Xét duyệt và đánh giá
 – Thỏa hiệp điều kiện thắng của các bên liên quan 6. Kiểm định sản phẩm 5. Xác định mức tiếp của
 và quy trình sản phâm và quy trình,
 kể cả phân chia nhỏ
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.105 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.106
 3.5.6 Mô hình theo thành phần
 Mô hình phát triển đồng thời
 (Component-based model)
 (The concurrent development model)
• Xác định mạng lưới những hoạt động đồng thời (Network
 of concurrent activities) • Gắn với những công nghệ hướng đối tượng (Object-
• Các sự kiện (events) xuất hiện theo điều kiện vận động oriented technologies) qua việc tạo các lớp (classes) có
 trạng thái trong từng hoạt động chứa cả dữ liệu và giải thuật xử lý dữ liệu
• Dùng cho mọi loại ứng dụng và cho hình ảnh khá chính • Có nhiều tương đồng với mô hình xoắn ốc
 xác về trạng thái hiện trạng của dự án • Với ưu điểm tái sử dụng các thành phần qua Thư viện / 
• Thường dùng trong phát triển các ứng dụng khách/chủ kho các lớp: tiết kiệm 70% thời gian, 80% giá thành, chỉ
 (client/server applications): system and componets are số sản xuất 26.2/16.9
 developed concurrently
 • Với UML như chuẩn công nghiệp đang triển khai
HUT, Falt. of IT  Dept. of SE, 2001 SE-I.107 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.108
 18
 9/4/2011
 3.5.7 Mô hình hình thức
 Mô hình theo thành phần (Formal model)
 Lập kế hoạch
 Phân tích rủi ro Xác định • Còn gọi là CNHPM phòng sạch (Cleanroom SE)
 thành phần
 ứng viên • Tập hợp các công cụ nhằm đặc tả toán học phần mềm
Giao tiếp
 khách hàng
 Xây dựng Tìm máy tính từ khâu định nghĩa, phát triển đến kiểm
 bước lặp thứ n thành phần
 của hệ thống từ thư viện chứng
 • Giúp kỹ sư phần mềm phát hiện và sửa các lỗi khó
 Đặt Lấy
 thành phần thành phần
 vào thư viện nếu có • Thườngdùng trong phát triển SW cần độ an toàn rất
 Kỹ nghệ
 Khách hàng Xây dựng & Xây dựng cao (y tế, hàng không, . . .)
 đánh giá Xuất xưởng thành phần
 nếu kh.có
 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.109 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.110
 3.5.8 Các kỹ thuật thế hệ 4
 Mô hình hình thức: Điểm yếu ?
 (Fourth generation techniques)
 • Cần nhiều thời gian và công sức để phát triển • Tập hợp các công cụ cho phép xác định đặc tính
 • Phí đào tạo cao vì ít người có nền căn bản cho phần mềm ở mức cao, sau đó sinh tự động mã
 áp dụng mô hình hình thức nguồn dựa theo đặc tả đó
 • Các công cụ GT điển hình ngôn ngữ phi thủ tục
 • Khó sử dụng rộng rãi vì cần kiến thức toán và 4 : 
 cho truy vấn CSDL; tạo báo cáo; xử lý dữ liệu; 
 kỹ năng của khách hàng
 tương tác màn hình; tạo mã nguồn; khả năng đồ
 họa bậc cao; khả năng bảng tính; khả năng giao
 diện Web; vv
 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.111 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.112
 3.5.9 Sản phẩm và quy trình
 4GT: How ?
 (Product and process)
 • Từ thu thập yêu cầu cho đến sản phẩm: đối thoại giữa
 khách và người phát triển là quan trọng • Quy trình yếu thì sản phẩm khó mà tốt, song
 • Không nên bỏ qua khâu thiết kế. 4GT chỉ áp dụng để không nên coi trọng quá mức vào quy trình
 triển khai thiết kế qua 4GL hoặc quá mức vào sản phẩm
 • Mạnh: giảm thời gian phát triển và tăng năng suất
 • Sản phẩm và quy trình cần được coi trọng
 • Yếu: 4GT khó dùng hơn ngôn ngữ lập trình, mã khó
 tối ưu và khó bảo trì cho hệ thống lớn cần kỹ năng như nhau
 của kỹ sư phần mềm
 • Tương lai: 4GT với mô hình theo thành phần
 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.113 HUT, Falt. of IT  Dept. of SE, 2001 SE-I.114
 19
 9/4/2011
 Bài tập Phần I và Đồ án I
 • Xem lại các khái niệm, mô hình của phần mềm và
 CNHPM
 • Đồ án môn học I (cho 13 nhóm, nạp báo cáo, tư liệu
 tìm được trên Web và thư viện): 
 – Tìm hiểu và viết báo cáo, trình bày về 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  Dept. of SE, 2001 SE-I.115
 20

File đính kèm:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_phan_i_gioi_thieu_chun.pdf