Lý Thuyết Quản Lý Quy Trình Phần Mềm

26 789 0
Lý Thuyết Quản Lý Quy Trình Phần Mềm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lý Thuyết Quản Lý Quy Trình Phần Mềm

Thuyết Quản Quy Trình Phần Mềm(Tổng kết theo Slide bài giảng)1/Trình bày các pha trong chu trình sống của phần mềm. Nếu các hoạt động chính và s\n phẩm chính của từng pha.Các pha trong chu trình sống của phần mềm:- Lên kế hoạch.- Phân tích yêu cầu.- Thiết kế hệ thống.- Code.- Tích hợp , kiểm thử- đưa cho khách hàng đánh giá.- Release cho khách hàng đánh giá.- Bảo trì và hỗ trợ khách hàng.1/lên kế hoạch : - gặp khách hàng lấy yêu cầu: hỏi khách hàng có bao nhiêu tiền, bao lâu có kết quả, muốn làm gì.- Coi xem mình có bao nhiêu người làm dự án này, xem thử đã làm những dự án nào tương tự như thế này chưa? Đưa ra kế hoạch cho dự án đặt ra mục tiêu cần đạt được. => Định giá dự án => lên thời gian biểu cho dự án => chia công việc cho từng người.2/ Phân tích yêu cầu: - Sử dụng use case.- Từ use case viết ra bảng Spec(bảng ghi chi tiết các chức năng), đây là file.xls dùng để ghi yêu cầu.- Sử dụng bản SRS đưa ra từng yêu cầu của dự án.- Statement of work: danh sách liệt kê các công việc cần làm, thông thường là file word. 3/ Design: - Thiết kế tổng quát hệ thống  thiết kế chi tiết.KX_CPHGHL Tây Ninh Page 1 - Thiết kế hệ thống:chia hê thống thành những phần riêng lẻ( gồm những phần nào, làm gì)- Thiết kế chi tiết: bao gồm từng lớp, mỗi lớp có bao nhiêu phương thức cụ thể, vẽ ra mối quan hệ.4/ Implementation (hiện thực hóa code)5/Testing- Test Specs(có đúng với các use case,feature mô tả trong specs hay không) Chứa các trường hợp cần kiểm thử  Đảm bảo các testcase đầy đủ Dữ liệu cần kiểm thử- Test Data and Hardware(Dữ liệu đủ hay không,phần cứng load có tốt hay không,có đúng với các mô tả về giao diện,…)- Integration : Mô tả cách mà ứng dụng sử dụng trong thực tế  đảm bảo tích hợp các module chạy ok. Sử dụng mô hình tích hợp nào  Sử dụng mô hình thanh toán nào trong ứng dụng , 6/Evaluation: - đưa cho khách hàng đánh giá, phù hợp hay không còn biết mà chỉnh sửa.KX_CPHGHL Tây Ninh Page 2 7/Release:- Chuyền giao phần mềm cho khách hàng, cùng với hướng dẫn sử dụng chương trình.8/ Bảo trì:- sửa các lỗi, thêm chức năng phụ, chuyển từ hệ thống này sang hệ thống khác, đưa bản hướng dẫn sử dụng mới.2/Trình bày các khái niệm của quản trị dự án.3/Trình bày các khái niệm của đảm bảo chất lượng.Quản chất lượng: đảm bảo phần mềm đạt được những yêu cầu cao nhất mà khách hàng quyết định.Quản chất lượng có 2 yêu cầu:- QA(đưa ra các plan, kết quả )QA là người đảm bảo chất lượng.- QC: đảm bảo chất lượng.Đảm bảo chất lượng khác gì kiểm thử?- Kiểm thử thật ra là kiểm tra các Unit Test, kiểm tra tích hợp trên những gì ta viết mã nguồn, Test.KX_CPHGHL Tây Ninh Page 3 - Đảm bảo chất lượng: ví dụ, trong quá trình lên kế hoạch ta có 1 bảng kế hoạch chứa toàn bộ những Plan của dự án đó, hỏi rằng ai đảm bảo bảng kế hoạch đó là đúng?--> chính QA là người sẽ lọc dữ liệu, dùng công thức tính toán xem có hợp chưa để cuối cùng đưa ra bảng đánh giá xem có đạt chất lượng không?Khác gì với Test?Test gồm Review và Inspection(thanh tra)Coding Inspection là gì?Tất cả thành viên trong nhóm họp lại, đem toàn bộ mã nguồn ra đọc, xem xét xem nó có đạt yêu cầu hay không, có đúng chuẩn code, có hợp hay không?Inspection : đảm bảo chất lượng tốt nhất mọi nơi.4/Trình bày các khái niệm của quản rủi ro.- Liệt kê được tất cả những rủi ro có thể xảy ra trong toàn dự án, và tỉm phương pháp loại bỏ tất cả các rủi ro đó.- Thường xảy ra đẩu dự án.- Thường thể hiện rõ trong pha đầu của quản dự án.- Nhiệm vụ chủa chúng ta trong quản rủi ro:o Định danh, liệt kê, xác định được tất cả rủi ro có thể xảy ra.o Quản được những rủi ro đó.Định danh như thế nào?- Đề xuất tất cả những rủi ro có thể xảy ra.- Phân tích xem nó có đúng là rủi ro không.- Xác định độ ưu tiên xem rủi ro nào cần giải quyết trước.- Lên kế hoạch, phương pháp giải quyết.- Tiếp tục theo dõi sau khi rủi ro đã được xử lý.5/Trình bày các khái niệm của quản cấu hìnhQuản cấu hình :làm thế nào đảm bảo tính toàn vẹn của tất cả các sản phẩm trong tất cả các pha của quá trình phát triển phần mềm.KX_CPHGHL Tây Ninh Page 4 Tính toàn vẹn: không mất mát, đầy đủ cho phép truy cập bất cứ lúc nào.Sản phẩm: là tất cả mã nguồn, Statement of work, Spect, bản kế hoạch…Quản cấu hình thực chất: là quản những phiên bản mà khi ta cần có thể truy xuất nhanh và chính xác.Quản cấu hình gồm 4 bước: - định danh: trước khi bước vào 1 dự án nào ta cũng cần liệt kê tất cả những gì cần được đảm bảo tính toàn vẹn: Spect, Design, Code, Version hệ thống…- quản lý: sử dụng phần mềm lưu dấu vết những thao tác trên dự án đó: visual SourceSafe, - quản trang thái: quản từng trạng thái thay đổi.- kiểm kê: sau 1 thời gian ta ngồi kiểm tra lại tất cả cấu hình, phương pháp cần quản cấu hình và phiên bản mới nhất… quản cấu hình giúp ta: làm việc an toàn hơn, nhanh hơn, cho sản phẩm tốt hơn.6/Trình bày về mô hình thác nước và các biến thể của nó.Nêu những thuận lợi và khó khăn của mô hình này.Tập hợp các pha liên tiếp nhau, pha sau chỉ thực hiện khi pha trước kết thúc và kết thúc mỗi pha là 1 sản phẩm nhất định.Gồm mấy bước là do ta chọn!Ưu điểm: đơn giản, dễ áp dụng.Khuyết điểm: o không thể quay ngược lại để chỉnh sửa.o pha sau phải đợi pha trước xong mới thực hiện được.o áp dụng cho dự án nhỏ đơn giản hoặc dự án cực lớn.a/ Biến thể SaShuMiwaterfall with subprojects : giống waterfall nhưng khác ở chỗ 2 pha có thể thực hiện song song khi có một ít kết quả của pha trước không cần phải đợi pha trước kết KX_CPHGHL Tây Ninh Page 5 thúc, chi thành các dự án con, 3 pha đầu phải giống waterfall tức làm pha trước làm xong mới tới pha sau chứ không được chia.Các pha thực hiện song song;- ƯĐ và KĐ giống WaterFall.- Ưu điểm hơn: pha sau không cần đợi pha trước hoàn thành.- Khuyết điểm hơn: không phải dự án nào cũng chia nhỏ được.b/ Mô hình thác nước kết hợp với giảm rủi roo Quan trọng nhất là yêu cầu.o Do kết thúc 1 pha khog thể quay lại nên đảm bảo rủi ro xảy ra ít nhất có thể có để chất lượng là cao nhất-> đưa quản rủi ro vào phần Requirement hoặc phân tích thiết kế hệ thống là cần thiết. Tuy nhiên tùy vào năng lực của thành viên tham gia vào dư án mà có sữ kết hợp cho phù hợp.7/Trình bày về mô hình kiểu mẫu, mô hình xoắn ốc và mô hình chữ V?I/ Prototype Model( Mô hình kiểu mẫu):chú trọng vào khâu thiết kế mô hình phần mềma.Các bước của mô hình này: Tìm kiếm yêu cầu của khách hàng => mô tả ngắn gọn các yêu cầu => xây dựng các mẫu( prototype: ko có dữ liệu hoặc dữ liệu giã trong code, chỉ làm một vài chức năng chính của phần mềm) => đưa khách hàng xem và đánh giá => sữa chữa lại mẫu( nếu cần) => quay nhanh lại tiếp tục design => sữa chữa …… lặp…… đến khi mô hình đã hoàn chỉnh được kh chấp nhận… => engineer product( xây dựng thực sự).b.Giống với mô hình giảm thiểu rủi ro bằng cách đưa công việc quản rủi ro vào pha thiết kế.c.Ưu điểm: khách hàng có thể xem trước được mô hình của sản phẩm, giảm thiểu rủi ro trong thiết kế, dễ áp dụng.d.Khuyết điểm: i.Mang các khuyết điểm của mô hình thác nước.ii.Xây dựng mô hình không dễ dàng.iii.Tốn thời gian công sức.KX_CPHGHL Tây Ninh Page 6 II/Spiral Model( mô hình xoắn ốc):a.Các bước giống hệt nhau trong từng vòng tròn nhưng phát triển rộng ra sau mỗi vòng.b.4 bước không thể thiếu trong mô hình này là:oXác định mục tiêu của chu trình hiện tại.oXác định mục tiêu của chu trình tiếp theo.oPhát triển phần mềm và kiểm tra sản phẩm.oĐánh giá và phân tích rủi ro.c.Giảm thiểu rủi ro = cách phát triển từng mô hình sau đó phát triển sp thực sự.d.Khác với mô hình kiểu mẫu ở chổ mô hình này xây dựng hệ thống thực sự của một số chức năng.e.Khuyết điểm: tốn thời gian, công sức, giống thác nước không quay lại bước trước đó.III/Mô hình chữ V:8/Trình bày các khái niệm của phát triển lặp và tiến hóa.- Phát triển lặp: là 1 mô hình phát triển phần mềm trong đó toàn bộ chu trình sống của phần mềm được chia ra thành các vòng lặp hay pha kế tiếp nhau.(Lặp là làm đi làm lại giống nhau). - Kết quả của mỗi vòng lặp là 1 Release hoặc more realease + hệ thống hoàn chỉnh có thể đưa cho KH sử dụng.- Chia dư án nhỏ thành các vòng lặp khác nhau, kết thúc mỗi vòng lặp là 1 sp hoàn chỉnh chạy đảm bào cấu hình đúng chức năng. - Trong mỗi vòng lặp gồm: phân tích yêu cầu, thiết kế, code, Test, lăp đi lặp lại.Chi tiết Quá trình lặp:o xây dựng 1 số yêu cầu.o chọn ra 1 số yêu cầu(vd 3 yêu cầu), bắt tay vào xây dưng pm đó, trong vòng 3 tuần làm sao đưa ra hệ thống sp chạy đủ yêu cầu đã chọn.o đưa cho k/hàng sử dụng những chức năng đã hoàn thành.o nhận phản hồi từ K/Hàng.o chọn ra 1 số yêu hồi khác, xem xét ở bảng trước có cần chỉnh sửa gì không.KX_CPHGHL Tây Ninh Page 7 o Xây dựng pm tiếp theo dựa trên pm đã hoan thành và chọn các yêu cầu khác hoàn thành trong vòng 3 tuần.o Tăng thêm 3 yêu cầu ta được thêm những chức năng mới ta đưa cho k/hàng sử dụng và nhận phản hồi từ k/hàng,lại chọn yêu cầu , lại xdpm tiếp theo, lặp cho đến khi đưa ra 1 release mà khàng có thể sdụng được.Chú ý:- Mô hình thác nước: phải hoàn thành yêu cầu ngay bước đầu sau đó mới design, hoàn thành design mới chuyển bước, Lặp :chỉ là xây dựng 1 số yêu cầu.- Khác với chia nhỏ(chỉ làm 1 phần nào đó) lặp làm tất cả nhưng m công việc được chia đều.- Mô hình xoắn ốc: reqiurement chỉ có ở 2 hay 3 vòng đầu của dự án còn lặp thì luôn hội tụ đủ các yếu tố.***Chu trình sống của 1 phần mềm k đổi mà chỉ thay đổi ở cách tiếp cận và xây dựng.- KN TimeBox: cố định thời gian hoàn thành vòng lặp: lên lịch thời gian dealine cụ thể cho từng công việc.- KN Phát triển tiến hóa: o chia ra thành các vòng lặp và thời gian cụ thể cho từng vòng lặp.o Khó nhất là định lượng được 1 dự án.o Sai số kho hoạch định dự án.- Agile<thích nghi, nhanh, gọn, tốc độ> {con người + sàn phẩm làm ra+ khách hàng+ sự thay đổi}o Là 1 nhánh con của phát triển lặp, nó áp dụng các vòng lặp timebox + phát triển tiến hóa có kế hoạch thích nghi luôn đưa ra các sản phẩm sớm đưa ra sản phẩm theo chiều hướng tiến hóa dần.<phát triển tiến hóa: làm phần mềm từ từ ><sản phẩm sớm: áp dụng quy trình này sau vòng lặp 1 đã có sp ><kế hoạch thích nghi: có kế hoạch thích nghi dần với dự án>< sản phẩm theo chiều hướng tiến hóa dầncái sau bao gồm all chức năng cái trước và luôn mở rộng>o ĐĐ : Cho phép phát triển nhanh,mềmdẻo, thích ứng mọi sự thay đổi.o tập trung vào sự tương tác của từng cá nhân thay vì công cụ.KX_CPHGHL Tây Ninh Page 8 o tập trung vào sản phẩm phần mềm thay cho tài liệu: phần mềm chạy có tốt không, có đạt yêu cầu không? Không quan trọng design, test cause, plan, requirement,…o tương tác với khách hàng thay vì hợp đồng?o sẵn sàng cho sự thay đổi thay vì yêu cầu cố định ban đầu.- POC ( Proot of Concertion) chứng minh cho KH thấy mình có khả năng làm được phần khách hàng yêu cầu:o Đưa ra 1 số phần mềm tương tự.o Build 1 số phần mềm free với 1 số tính năng tương tự.• Chú ý: o Một số bước co bản : Ban đầu ta phảicó ý tưởng POC  xây dựng Phần mềm nhỏ  đưa KH dùng nhận phải hồiquay lại tiếp tục tiến hóa dần lên.o Khách hàng rất quan trọng: là người chạy phần mềm chứ k phải tester.Sử dụng Story thay cho Requirement:o Không yêu cầu cụ thể không cần các bước như requirement.o Phát triển theo Agile cần đơn giản, dễ thay đổi.o Nhiệm vụ của LTV là làm sao cho Story càng đơn giản càng thể hóa càng tốt.**Agile gồm nhiều Story sắp xếp thứ tự từ cao đến thấp, ta làm từ cao đến thấp, mỗi story có thể đưa vào bất cứ gia đoạn nào trong hoạt động của chúng ta.9/Trình bày quy trình Scrum.Scrum : là quy trình phần mềm được thiết kế dựa trên phát triển lặp.Gồm 3 bước:o Pre – Game : chuẩn bị.o Development : phát triển.o Release : triển khai, sản phẩm, tài liệu hướng dẫn.1/ Pre Game chia thành 2 bước nhỏ :o Lên kế hoạch ( planning) :  cần phải xem xét all những gì liên quan về dự án, có cái nhìn tổng thể chung về dự án dự án này cần bao nhiêu nhân sự, tiền bạc, cần làm những gì, có bao nhiêu stories…  ngoài việc lên kế hoạch, ta còn xem xét có nên xây dựng 1 mô hình đơn giản cho hệ thống không ? đưa ra bản sơ phác thảo về hệ thống chung,  khác với các quy trình thác nước KX_CPHGHL Tây Ninh Page 9 o Chuẩn bị bước đầu ( staging) : cần phải cụ thể yêu cầu của khách hàng, hiểu rõ các stories, bản phác thảo sơ về hệ thống được hoàn tất trong bước này.2/ Development: <quan trọng nhất>- Nói đến Scrum là nói đến vòng lặp 30 ngày, là 1 ước lượng chuẩn, nhưng ta có thể thay đổi tùy theo dự án. Sau 30 ngày ta phải đưa ra 1 ralease hoàn chỉnh.- Sau khi xác định vòng lặp làm trong vòng 30 ngày, chuẩn bị các sprint backlog ( sprint backlog là tập hợp các stories(xác dịnh công việc yêu cầu của khách hàng) làm trong vòng 30 ngày). Toàn bộ hệ thống được chia ra thành các backlog , tập hợp tất cả các backlog này gọi là product backlog.- Đối với mỗi sprint( vòng lặp ) chúng ta chọn ra 1 backlog làm trong vòng 30 ngày đó.- Chia các backlog này ra thành các công việc nhỏ hơn, cụ thể hơn gọi là backlog items ( bao gồm code, test …). - Khách hàng đưa Product backlog( yêu cầu k/hàng = pbacklog), nhiêm vụ của K/hàng là gủi cho chúng ta Product backlog; chọn 1 chức năng nổi bật(PBlog) và hoàn thành trong 30 ngày. Việc chia nhỏ item là của nhóm phát triển phần mềm.- Cứ sau 30 ngày đưa ra 1 release, cho đến khi hết các backlog thì dừng.- Chia 30 ngày này thành từng ngày 1 : nhiệm vụ của 1 ngày là chia ra 15 phút họp mặt làm việc lại với nhau, sau đó giải quyết các backlog items. Trong 15 phút họp nhóm có 3 bước cơ bản cần giải quyết :o Mỗi người chuẩn bị một danh sách các công việc đã làm được cái gì?o Mỗi người đưa ra câu trả lời có việc gì ngăn chặn việc phát triển các backlog item hay ko?o Phải làm gì tiếp theo sau mỗi buổi họp này?- Sau 15 phút phải làm thế nào để giải quyết được các công việc trên.3/ Release: triển khai khách hàng, hướng dẫn hỗ trợ phát triển tài liệu.( Scrum work products) Các sản phẩm cần có trong Scrum ( không tính mã nguồn ): • Requirements : Release backlog : những gì đã làm được, Product backlog : những gì phải làm.Chú ý: Không cần design, imlementation, test vì đã có tất cả trong product backlog.KX_CPHGHL Tây Ninh Page 10 [...]... Hỗ trợ 1 cái nhìn cho toàn quy trình 12 /Trình bày quản trị dự án tiến hóa (Evo) 17 /Trình bày các khái niệm của định giá phần mềm 18 /Trình bày phương pháp định giá phần mềm bằng số dòng code 19 /Trình bày phương pháp định giá phần mềm bằng điểm chức năng Định giá phần mềm bằng pp điểm chức năng: là dựa trên góc nhìn của con người Điểm chức năng là gì? Là 1 đơn vị đo lường phần mềm Điểm chức năng có 3 loại:... đơn giản 1 Quá trình viết code luôn gắn liền với quá trình refactor dựa vào ý kiến chuyên gia, tuân thủ các chuẩn code, thực hiện pair programming, team code owner ship 1 Test chấp nhận( thực hiện bởi khách hàng), test first( viết unit test trước khi viết code) 1 Phần quản lý: planning(đối với phần quản lý) thực hiện nhiều release ngắn càng tốt( quản thời gian làm release), quản từng bước, stand... phần mềm o Yêu cầu o Design o Code o Test o Quản Chính xác hơn chia công việc thành từng trường hợp Lợi ích: o Khi chưa làm phần mềm nào kiểu như vậy o Khi ứng dụng công nghệ mới, kỹ thuật mới mà ta chưa làm lần nào trước đó Khó khăn: o Tìm chuyên gia giỏi thật khó o Tiền để định giá thường đắc o Không định lượng được(khó tin vào chuyên gia) 22 /Trình bày phương pháp định giá phần mềm bằng phần mềm. .. Tester: i Integrator: người có nhiệm vụ tích hợp các module lại với nhau để đảm bảo - chương trình chạy ổn định 1 Management: Thuận lợi: hướng dự án, quản rủi ro và các giá trị sản phẩm, có cái nhìn rõ ràng về dự án, có quy trình được định nghĩa rõ ràng 12 /Trình bày quản trị dự án tiến hóa (Evo) 13 /Trình bày quy trình Crystal - ĐN: Là một mô hình cho người ta phân loại dự án rõ ràng và có một tầm nhìn... kế),Schedules(Lịch trình làm việc cụ thể các khâu),Design Specs(Mô tả cho phần thiết kế các yêu cầu được thể hiện thế nào trong phần thiết kế ) o Yêu cầu về các chuẩn trong chính sách quản :  Phần mềm cần được chuyển giao một cách đều đặn,mỗi 2 hoặc 3 tháng,và phải lớn dần theo thời gian  Các mốc quan trọng của phần mềm cần được ghi nhận lại trong các tài liệu : • Cột mốc chuyển giao lần 1,2,3… • Cột mốc quy t... nhóm và mỗi thành viên có quy n ngang nhau nên mọi người có thể trao đổi với nhau 1 Đơn giản: thiết kế đơn giản, chỉ có crc card story card 1 Phản hồi: khi có lỗi sẽ phản hồi lến trưởng dự án để mọi người đưa ra hướng giải quy t 1 Can đảm: dám chịu trách nhiệm với những phần mình làm, dám nhận nhiệm vụ 11 /Trình bày quy trình hợp nhất (UP) • Mô hình Unified Process:( tiến trình hợp nhất) gồm 4 giai... test case, test result, test tractor) 1 Project management: kế hoạch cho từng integration plan, có kế hoạch cho risk list 1 Configuration &…: bản kế hoạch cấu hình. quàn cấu hình 2 Quản dự án  Quy trình này kế thừa từ quy trình lặp=> ta có thể chia thành từng Up work Products: Up roles( vai trò): cực kỳ phân cấp 1 Customer: KX_CPHGHL Tây Ninh Page 15 1 Development: i BA: thu thập yêu cầu sau... tắc: - Làm theo từng nhiệm vụ một, làm theo từng thành phần một Tách biệt hệ thống ra từng thành phần một Interative(lặp) : sau 1 thời gian quy định phải cho ra sản phẩm Timebox: cố định thời gian Khả năng chống đỡ với thay đổi(hệ thống cần mềm dẻo, làm từng cái nhỏ và tập trung vào các thành phần quan trọng ban đầu) Hướng nghiên cứu các rủi ro:(tiên quy t) - ASD Rules(vai trò) o Khách hàng o Người điều... 2 Các điểm lưu ý trong phần yêu cầu và vai trò các thành phần: • Crystal Clear: o Sponsor(Nhà tài trợ cho dự án) o Senoior Designer(Người thiết kế dự án) o Programmer o Release = 60 -90 ngày o Documents = Release Plan(kế hoạch để tạo cho ra release),Design Sketches(Các đề mục và mô tả cho thiết kế),Working Software(Tài liệu làm việc trên phần mềm – 1 document có chức năng phần mềm và mô tả các hàm)... ứng dụng: o Tất cả mọi thứ hiện thời của hệ thống dù cho mở rộng, có sẵn cũng tính vào o Đã xây dựng Xác định điểm chức năng để biết cần đếm cái gì? 20 /Trình bày phương pháp định giá phần mềm bằng điểm Use Case 21 /Trình bày phương pháp định giá phần mềm bằng chuyên gia Là bỏ tiền ra thuê chuyên gia, tách công việc, chia thởi gian làm việc cho từng thành viên của từng công việc Bước 1: chia nhỏ công . Lý Thuyết Quản Lý Quy Trình Phần Mềm( Tổng kết theo Slide bài giảng)1 /Trình bày các pha trong chu trình sống của phần mềm. Nếu các hoạt. khi viết code).1 .Phần quản lý: planning(đối với phần quản lý) thực hiện nhiều release ngắn càng tốt( quản lý thời gian làm release), quản lý từng bước, stand

Ngày đăng: 24/01/2013, 09:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan