Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
1,35 MB
Nội dung
Trường đại học điện lực Khoa CNTT
MỤC LỤC
LỜI MỞ ĐẦU 5
BẢNG PHÂN CÔNG CÔNG VIỆC 6
PHẦN I. TỔNG QUAN VỀ CÔNG NGHỆ PHẦNMỀM VÀ QUYTRÌNHPHÁTTRIỂN
PHẦN MỀM 7
I. Tìm hiểu chung về công nghệ phầnmềm 7
1. Công nghệ phầnmềm là gì ? 7
- Phầnmềm máy tính là gì? Phầnmềm máy tính (Computer software) là các sản phẩm do
nhà pháttriểnphầnmềm thiết kế và xây dựng nhằm phục vụ một mục đích nào đó 7
II. Quytrìnhpháttriểnphầnmềm truyền thống 8
1. Đặc điểm 8
- Các phương pháp truyền thống là các phương pháp thiên về kế hoạch, quá trìnhpháttriển
phần mềm phải tuân theo một quytrình nghiêm ngặt. Trong quá trìnhpháttriểnphần mềm,
rất nhiều tài liệu được tạo ra, được xét duyệt và đó là một yếu tố quan trọng trong quản lí
rủi ro 8
- Với các phương pháp này, toàn bộ quá trìnhpháttriển thường được lên kế hoạch chi tiết
và các tài liệu trước cũng như trong quá trìnhpháttriển được chuẩn bị đầy đủ. Quá trình
phát triển được thực hiện theoquytrình được định trước, và việc tuân thủ quytrình sẽ làm
tăng chất lượng phầnmềm và giảm rủi ro 8
- Theo các phương pháp này thì quá trình sản xuất phầnmềm giống như sản xuất các mặt
hàng công nghiệp khác. Những người pháttriển thực hiện công việc một cách nghiêm ngặt
theo các chuẩn và quy trình, không yêu cầu sáng tạo nhiều. Những người quản lí chỉ cần
tăng năng lực sản xuất và đạt được các mục tiêu như: 8
- Giảm thiểu lỗi và công việc diễn ra trơn tru 8
- Cố gắng giữ ổn định: về tổ chức, sản lượng… 9
- Chuẩn hóa mọi thao tác và buộc mọi người tuân theo một cách nghiêm ngặt 9
- Không cho phép sự sai sót 9
2. Các bước trong mô hình truyền thống 9
3. Một số mô hình pháttriểnphầnmềm truyền thống (phát triểntheo kế hoạch) 10
a. Mô hình thác nước (waterfall model) 10
Hình 1: Mô hình thác nước 11
b. Mô hình làm bản mẫu (Prototyping model) 12
Hình 2: Mô hình làm bản mẫu 13
c. Mô hình xoắn ốc (The spiral model) 13
Hình 4:Mô hình đài phun nước 16
PHẦN II. TÌM HIỂUQUYTRÌNH AGILE 16
I. Sự ra đời của mô hình agile 16
1. Sự cần thiết của một mô hình pháttriểnphầnmềm mới 16
2. Agile là gì? 17
II. Tìm hiểu chung về agile 17
1. Tuyên ngôn agile 17
Tuyên ngôn Agile được viết như sau: “Chúng tôi tìm kiếm những phương pháp tốt hơn để
phát triển và giúp người khác pháttriểnphần mềm. Qua hoạt động đó, chúng tôi sẽ trân
trọng: cá nhân và sự tương tác hơn là quytrình và công cụ; phầnmềm hoạt động được hơn
là việc thu thập tư liệu phát triển; hợp tác với khách hàng hơn là thương thuyết về hợp
đồng; phản ứng theo sự thay đổi hơn là theo sát kế hoạch. Nghĩa là, mặc dù có những giá trị
cố hữu ở ‘cánh hữu’ (truyền thống), nhưng chúng tôi trân trọng các giá trị ‘cánh tả’ (của đổi
mới) nhiều hơn” 17
- Cá nhân và tương tác hơn là quytrình và công cụ: Câu đầu tiên này cho ta thấy không
phải lúc nào cũng có giải pháp cho mọi thứ, mà giải pháp chính là nằm bên trong của công
Bài tập lớn công nghệ phần mềm
1
Trường đại học điện lực Khoa CNTT
việc. Và đề tìm được giải pháp, thì không chỉ dựa vào các lý thuyết mà phải trực tiếp làm
công việc pháttriểnphần mềm. Tất nhiên quytrình và công cụ cũng là điều quan trọng. Sẽ
không thể có một phầnmềm tốt nếu như quytrình và công cụ không tốt. Nhưng điều mà
bản tuyên ngôn nhấn mạnh là vai trò của từng cá nhân và mối quan hệ giữa các cá nhân
trong đội ngũ pháttriểnphần mềm. Ý nghĩa quan trọng nhất của Agile là mọi người cùng
làm việc trong nhóm, chia sẻ thông tin thoải mái với nhau hơn là tập trung theo sát một quy
trình hay công cụ nào đó 18
- Phầnmềm hoạt động được hơn là việc thu thập tư liệu đểphát triển: Điều này không có
nghĩa là chúng ta không phải thu thập lại tư liệu đểphát triển, chỉ là ít nhấn mạnh thu thập
tư liệu và tập trung nhiều hơn cho việc hoàn tất công việc. Bởi vì đối với một dự án muốn
thành công thì phải thu thập tài liệu đầy đủ. Nhưng bản thân tài liệu cũng không thể giúp
được gì nếu không có một sản phẩm phầnmềm thực sự. Vì thế, việc tạo ra sản phẩm phần
mềm quan trọng hơn, và tài liệu chỉ đóng vai trò hỗ trợ phần mềm, mô tả phầnmềm một
cách chính xác 18
- Hợp tác với khách hàng hơn là thương thuyết hợp đồng: Việc ký kết hợp đồng là quan
trọng nhưng không đủ. Một môi trường hợp tác tốt sẽ giúp cho những người pháttriển đưa
ra giải pháp tốt nhất cho khách hàng. Các hợp đồng định nghĩa những điều khoản ràng buộc
mà trong đó cả hai bên đối tác phải tuân theo, những người pháttriển cần hợp tác với khách
hàng để có thể hiểu rõ yêu cầu cũng như những gì cần phải đưa ra. Agile tập trung vào việc
khuyến khích khách hàng cùng tham gia vào dự án hơn là chỉ viết hợp đồng để rồi khách
hàng sẽ chẳng làm gì với nhóm dự án phầnmềm 18
- Phản ứng theo thay đổi hơn là theo sát kế hoạch: Việc lập kế hoạch cho pháttriểnphần
mềm là không thể thiếu. Kế hoạch giúp công việc định hướng tốt hơn. Tuy nhiên thực tế có
rất nhiều thay đổi, và cứ nhất nhất tuân theo kế hoạch sẽ dễ dẫn đến thất bại. Do đó cần đáp
ứng với thay đổi để có sự điều chỉnh sao cho phù hợp. Chính vì vậy, nhóm pháttriển luôn
sẵn lòng đón nhận thay đổi hơn là chỉ làm theo kế hoạch dự án (có trước) vì thay đổi luôn
diễn ra và cả kế hoạch dự án cũng sẽ thay đổi khi yêu cầu thay đổi 19
2.Nguyên tắc agile: 19
3. Đặc điểm của mô hình agile: 21
III. Quytrình thực hiện 22
Hình 5: Mô hình Agile tổng quát 22
1. Lập kế hoạch 22
2. Phân tích 23
3. Thiết kế và lập trình 23
4. Test 23
5 . Bàn giao sản phẩm 24
IV. Những vấn đề cần xem xét để quyết định chọn pháttriểntheo hướng agile 24
1. Cần trả lời những câu hỏi sau 24
2. Điều kiện áp dụng quytrình agile 24
VI. Ưu nhược điểm của phương pháp: 26
1. Ưu điểm: 26
- Agile là sự lựa chọn rất tốt cho các dự án nhỏ bởi dự án nhỏ thường có những yêu cầu
không được xác định rõ ràng và có thể thay đổi thường xuyên. Với phương pháp này bạn
phải chia yêu cầu ra thành những nhiệm vụ nhỏ mà có thể dễ dàng quản lý 26
- Với agile khách hàng có thể được xem trước dự án trong quá trìnhpháttriển vì Agile phát
triển phầnmềmtheo hướng tăng dần và có thể đưa cho khách hàng xem từng nhiệm vụ đã
thực hiện .Bằng việc đó sẽ không bị chậm và khách hàng sẽ có sản phẩm sơ lược thay vì
đợi đến khi dự án hoàn thành. Chính vì vậy, nếu qua mỗi giai đoạn, mỗi nhiệm vụ của phát
triển dự án mà có sai sót hay yêu cầu thay đổi từ khách hàng chúng ta có thể dễ dàng sửa
đổi 26
Bài tập lớn công nghệ phần mềm
2
Trường đại học điện lực Khoa CNTT
- Agile chia dự án ra thành những thành phần nhỏ và giao cho mỗi người. Hàng ngày mọi
người đều phải ngồi họp với nhau trong một thời gian ngắn để thảo luận tiến độ và các vấn
đề nảy sinh lên mọi vấn đề đều có thể được giải quyết nhanh chóng 26
- Tỷ lệ thành công của các dự án sử dụng Agile thường cao hơn các quytrình khác. 27
Hình 6: So sánh agile với các phương pháp khác 27
Và tỷ lệ thành công của agile thì gấp 3 lần so với Waterfall: Theo báo cáo “CHAO
Manifesto” năm 2011 của Standish Group, các dự án agile có tỷ lệ thành công gấp 3 lần
so với những dự án không dùng agile 27
2. Rủi ro và giải pháp 28
V.Công cụ quản lí dự án với agile: agilebench.com 29
1. Khái niệm 29
2. Nội dung 29
VI. So sánh pháttriểntheo mô hình truyền thống và pháttriểntheo Agile 30
Hình 8: So sánh agile và các phương pháp truyền thống 31
CHƯƠNG III.CÁC PHƯƠNG PHÁP THEO AGILE 32
I.Tìm hiểu chung 32
Hình 9: Một số phương pháp agile 32
Hình 10: So sánh các phương pháp pháttriểnphầnmềm 33
II. Các quytrìnhpháttriểntheo hướng Agile 33
1. Quytrình Scrum 33
a. Giới thiệu 33
Scrum là một phương pháp luận được viết bởi Ken Schwaber và Mike Beedle. Thuật ngữ
Scrum được đưa ra dựa trên một bài viết của Takeuchi và Nonaka (1986) mà trong đó giới
thiệu một quytrìnhpháttriểnphầnmềm nhanh có khả năng thích nghi 33
Phương pháp pháttriểnphầnmềm Scrum được biết đến như một phương pháp quản lý
nâng cao, áp dụng cho các hệ thống hiện có. Do đó, có thể áp dụng Scrum với các phương
pháp pháttriểnphầnmềm khác 33
Ý tưởng chính của Scrum là cho rằng việc pháttriển một hệ thống cần phải quản lý một
loạt các đại lượng như yêu cầu, thời gian, tài nguyên hay công nghệ dùng đểphát triển, mà
những đại lượng này hoàn toàn có thể thay đổi trong quá trìnhphát triển. Từ đó cho thấy
quá trìnhpháttriển dự án mang tính không ổn định, phức tạp và khó đoán trước. Do đó, cần
phải có một quytrìnhpháttriển có tính linh hoạt cao để có thể áp ứng được những thay đổi
này, và sản phẩm đầu ra phải có tính ứng dụng cao đáp ứng nhu cầu khách hàng 33
b. Nguyên tắc 34
d. Quytrình 35
Hình 11: Quytrình Scrum 35
e. Các tác nhân tham gia: 38
Nhược điểm: 39
- Vai trò của PO rất quan trọng (Là tiếng nói của khách hàng trong việc đánh giá sản phẩm.
Người hiểu rõ cái mà khách hàng cần. Thông thường PO là khách hàng hoặc một Business
Analysis). PO là người định hướng sản phẩm. Nếu PO làm không tốt sẽ ảnh hưởng đến kết
quả chung 39
- Khi pháttriển dự án theo Scrum thì dự án sẽ không có detail design. Do vậy mỗi thành
viên của dự án cũng sẽ là một người thiết kế hệ thống. Do vậy nếu phối hợp không tốt thì
có thể dẫn đến việc sản phẩm rất khó "sửa chữa" 39
e. Nhận xét 43
XP đưa ra một cách chi tiết về hướng dẫn thực hiện, được mô tả rõ ràng từ cách thực
hiện cho đến những lợi ích thu được từ các hoạt động này. Việc thực hiện theo hướng
dẫn này có thể giải quyết được khá nhiều những vấn đề thường gặp phải trong các dự án
hiện nay và tăng thêm khả năng thành công của dự án 43
3. Phương pháp pháttriểnphầnmềm thích nghi ASD 43
Bài tập lớn công nghệ phần mềm
3
Trường đại học điện lực Khoa CNTT
Hình14: Quytrình ASD 44
III. Đánh giá và so sánh các phương pháp 47
1.Đặc điểm chính 47
2. Khả năng và phạm vi áp dụng 48
KẾT THÚC 49
TÀI LIỆU THAM KHẢO 49
Bài tập lớn công nghệ phần mềm
4
Trường đại học điện lực Khoa CNTT
LỜI MỞ ĐẦU
Đi cùng với xu thế pháttriển mạnh mẽ của các ngành công nghệ khác
trên thế giới, công nghệ phầnmềm cũng đang mở ra một cánh cửa cho các tiếp
cận tiến bộ. Khá nhiều công ty, tổ chức đã nhận thức được tầm quan trọng của
ngành công nghệ này và đã có những bước tiếp cận đáng ghi nhận. Tuy nhiên,
song song với những bước pháttriển như vậy, nhiều mặt hạn chế
về chất lượng phầnmềm vẫn đã và đang là mối quan tâm của nhiều người, nhiều
tổ chức.
Là sinh viên của khoa công nghệ thông tin, chúng em sớm đã được tiếp
cận với môn công nghệ phầnmềm và tìm hiểu khá nhiều qui trình hỗ trợ và
nâng cao chất lượng phần mềm. Chúng em đã nhận thức được tầm quan trọng
của các quytrìnhpháttriểnphần mềm. Mỗi qui trình có những mặt vượt trội
riêng và nhìn chung mục đích chính của chúng cũng để nâng cao chất lượng sản
phẩm và hạn chế rủi ro cho phầnmềm làm ra. Tuy nhiên, trong những qui trình
ấy chúng em nhận thấy pháttriểnphầnmềmtheo Agile là khá tiềm năng. Chính
vì vậy, chúng em đã chọn đềtài báo cáo là “Tìmhiểuvềquytrìnhpháttriển
phần mềmtheo Agile”.
Nhóm sinh viên thực hiện:
Đỗ Thị Thanh Tuyền
Nguyễn Quang Hoàng
Đoàn Thị Kim Dung
Trần Văn Thành
Hà Thị Thu Hương
Dương Văn Hà
Bài tập lớn công nghệ phần mềm
5
Trường đại học điện lực Khoa CNTT
BẢNG PHÂN CÔNG CÔNG VIỆC
Tên nhóm Thành viên Nội dung công việc
Nhóm 1 Đỗ Thị Thanh Tuyền
Nguyễn Quang Hoàng
Phần I: Tổng quan về công nghệ phần
mềm và quytrìnhpháttriểnphần
mềm.
Cụ thể: Tìm hiểu chung về công nghệ
phần mềm, quytrìnhpháttriểnphần
mềm. Tìm hiểu và rút ra nhận xét ưu
điểm, nhược điểm của các mô hình
phát triểnphầnmềm truyền thống
(phát triểntheo kế hoạch).
Nhóm 2 Đoàn Thị Kim Dung
Trần Văn Thành
Phần II: Quytrìnhpháttriểnphần
mềm theo Agile.
Cụ thể: Tìm hiểu chung về agile, sự
ra đời, nguyên lý làm việc, đặc điểm
và các bước pháttriểnphầnmềmtheo
agile. Rút ra ưu nhược điểm của agile
và so sánh agile với các phương pháp
khác đặc biệt là các phương pháp
trước nó
Nhóm 3 Hà Thị Thu Hương
Dương Văn Hà
Phần III: Các quytrìnhpháttriển
phần mềmtheo hướng Agile
Cụ thể:Tìm hiểu 3 quytrìnhpháttriển
phần mềm được áp dụng theo nguyên
lý của agile là Scrum, ASD và XP.
Lưu ý: Các nhóm phải tìm hiểu tất cả các phần nhưng chú trọng nhiều hơn vào
các phần đã được giao.
Bài tập lớn công nghệ phần mềm
6
Trường đại học điện lực Khoa CNTT
PHẦN I. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN
MỀM VÀ QUYTRÌNHPHÁTTRIỂNPHẦN MỀM
I. Tìm hiểu chung về công nghệ phần mềm.
1. Công nghệ phầnmềm là gì ?
- Phầnmềm máy tính là gì? Phầnmềm máy tính (Computer software) là
các sản phẩm do nhà pháttriểnphầnmềm thiết kế và xây dựng nhằm phục vụ
một mục đích nào đó.
- Công nghệ phầnmềm là gì? Công nghệ phầnmềm (Software
Engineering) là các hoạt động bao gồm: phát triển, đưa vào hoạt động, bảo trì,
và loại bỏ phầnmềm một cách có hệ thống.
- Mục tiêu của công nghệ phầnmềm là tạo ra những phầnmềm tốt nhất
với thời gian ngắn nhất, giảm đến tối thiểu những rủi ro có thể gây ra cho các
khách hàng.
- Ngành học công nghệ phầnmềm bao trùm kiến thức, các công cụ, và
các phương pháp cho việc định nghĩa yêu cầu phần mềm, cũng như việc thực
hiện các tác vụ thiết kế, xây dựng, kiểm thử (software testing), và bảo trì phần
mềm.
Ngoài ra, công nghệ phầnmềm còn sử dụng kiến thức của các lĩnh vực
như kỹ thuật máy tính, khoa học máy tính, quản lý, toán học, quản lý dự án,
quản lý chất lượng, công thái học phầnmềm (software ergonomics), và kỹ nghệ
hệ thống (systems engineering).
2. Lịch sử pháttriển của công nghệ phần mềm.
- Thập niên 1940: Chương trình máy tính được viết bằng tay.
- Thập niên 1950: Các công cụ đầu tiên xuất hiện như phầnmềm biên
dịch Macro Assembler và phầnmềm thông dịch đã được tạo ra. Các trình dịch
được tối ưu hóa lần đầu tiên ra đời.
- Thập niên 1960: Các công cụ thế hệ thứ hai như trình dịch tối ưu hóa và
kiểm tra mẫu được thực hiện. Khái niệm công nghệ phầnmềm được bàn thảo
rộng rãi.
Bài tập lớn công nghệ phần mềm
7
Trường đại học điện lực Khoa CNTT
- Thập niên 1970: Các công cụ phầnmềm như UNIX các vùng chứa mã,
các lệnh make… được kết hợp với nhau.
- Thập niên 1980: Các máy PC và máy trạm ra đời. Cùng lúc đó có mô
hình dự toán khả năng. Lượng phầnmềm tiêu thụ mạnh.
- Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời. Các quá
trình nhanh như lập trình cực hạn được chấp nhận rộng rãi. Chính vì vậy, máy
tính và internet pháttriển rộng rãi.
- Hiện nay: Các phầnmềm biên dịch như là .net, PHP, Java làm cho việc
phát triểnphầnmềmdễ dàng hơn. Quytrìnhpháttriểnphầnmềm hỗ trợ cũng đa
dạng.
II. Quytrìnhpháttriểnphầnmềm truyền thống.
1. Đặc điểm.
- Các phương pháp truyền thống là các phương pháp thiên về kế hoạch,
quá trìnhpháttriểnphầnmềm phải tuân theo một quytrình nghiêm ngặt. Trong
quá trìnhpháttriểnphần mềm, rất nhiều tài liệu được tạo ra, được xét duyệt và
đó là một yếu tố quan trọng trong quản lí rủi ro.
- Với các phương pháp này, toàn bộ quá trìnhpháttriển thường được lên
kế hoạch chi tiết và các tài liệu trước cũng như trong quá trìnhpháttriển được
chuẩn bị đầy đủ. Quá trìnhpháttriển được thực hiện theoquytrình được định
trước, và việc tuân thủ quytrình sẽ làm tăng chất lượng phầnmềm và giảm rủi
ro.
- Theo các phương pháp này thì quá trình sản xuất phầnmềm giống như
sản xuất các mặt hàng công nghiệp khác. Những người pháttriển thực hiện công
việc một cách nghiêm ngặt theo các chuẩn và quy trình, không yêu cầu sáng tạo
nhiều. Những người quản lí chỉ cần tăng năng lực sản xuất và đạt được các mục
tiêu như:
- Giảm thiểu lỗi và công việc diễn ra trơn tru.
Bài tập lớn công nghệ phần mềm
8
Trường đại học điện lực Khoa CNTT
- Cố gắng giữ ổn định: về tổ chức, sản lượng…
- Chuẩn hóa mọi thao tác và buộc mọi người tuân theo một cách nghiêm
ngặt.
- Không cho phép sự sai sót.
2. Các bước trong mô hình truyền thống
• Xác định yêu cầu:
Đây là bước đầu tiên của quytrìnhpháttriểnphần mềm. Nó gồm 2 khía
cạnh:
- Mô hình hóa nghiệp vụ: Liên quan đến việc hiểu các nghiệp vụ chung của
phần mềm trong văn cảnh cụ thể của nó.
- Mô hình hóa yêu cầu hệ thống: Xác định được yêu cầu thực sự của khách
hàng, xem khách hàng cần gì để biết được ta sẽ phải làm gì, không cần làm gì và
xác định càng chi tiết càng rõ ràng càng tốt.
• Phân tích yêu cầu:
Phân tích có nghĩa là phải xem xét xem ta đang phải đối mặt với vấn đề gì?
Trước khi đi vào thiết kế ta phải phân tích vấn đề một cách rõ ràng. Từ đó mới
biết ta thực sự hiểuvề sản phẩm mà khách hàng yêu cầu hay chưa? Điều này
liên quan đến khách hàng, người dùng cuối.
• Thiết kế:
Trong pha thiết kế chúng ta hành động để giải quyết vấn đề hay nói cách
khác chúng ta đưa ra những quyết định dựa trên kinh nghiệm, ước lượng hay
trực giác. Ta thiết kế và xem nó sẽ được triển khai như thế nào. Thiết kế hệ
thống thường phân ra thành 1 hệ thống con logic (tiến trình) và hệ thống con vật
lý (máy tính, mạng) quyết định cách thức máy móc làm việc với nhau từ đó lựa
chọn công nghệ.
• Đặc tả:
Pha đặc tả thường bị bỏ qua. Thuật ngữ đặc tả được dùng theo nhiều cách
khác nhau. Ví dụ như đầu ra của pha yêu cầu là một đặc tả về hệ thống ta cần
Bài tập lớn công nghệ phần mềm
9
Trường đại học điện lực Khoa CNTT
làm, thuật ngữ đặc tả dùng để mô tả hành vi mong đợi của một thành phần trong
chương trình. Đặc tả có thể dùng trong trường hợp sau:
- Là cơ sở để kiểm tra thiết kế phầnmềm trong thực thi hệ thống.
- Văn bản là các thành phầnphầnmềm có thể cài đặt bởi bên thứ ba.
- Để mô tả cách thức code hay sử dụng lại code trong các ứng dụng khác.
• Cài đặt:
Giai đoạn này chúng ta sẽ viết các đoạn code nhỏ cho các chương trình con.
Công việc chính là viết phần thân các phương thức trong lớp thiết kế.
• Kiểm thử:
Sau khi phầnmềm đã hoàn thành thì cần kiểm tra lại xem nó có đáp ứng nhu
cầu khách hàng hay chưa. Cách tốt nhất mà người ta hay làm là thực hiện các
test nhỏ trong suốt quá trìnhpháttriểnphầnmềm hệ thống để đảm bảo chất
lượng.
• Triển khai:
Giai đoạn này quan tâm đến phần cứng và phầnmềmtại nơi người dùng
cuối.
• Bảo trì:
Sau khi hệ thống được triển khai có thể có nhiều lỗi hệ thống hay cũng có thể
khách hàng yêu cầu sửa đổi nâng cấp…Vì, vậy cần có quá trình bảo trì hệ thống.
3. Một số mô hình pháttriểnphầnmềm truyền thống (phát triểntheo kế
hoạch)
a. Mô hình thác nước (waterfall model)
• Ý tưởng:
Mô hình thác nước hay còn gọi là mô hình tuyến tính hay mô hình kinh điển
(classic model). Trong mô hình này, quytrìnhpháttriển trông giống như một
dòng chảy, với các giai đoạn được thực hiện theo trật tự nghiêm ngặt và không
có sự quay lui hay nhảy vượt giai đoạn. Cụ thể, quá trình sẽ được thực hiện tuần
tự qua các giai đoạn: phân tích yêu cầu, thiết kế, triển khai thực hiện, kiểm thử,
liên kết và bảo trì. Tức là mô hình này sẽ xem quá trình xây dựng một sản phẩm
Bài tập lớn công nghệ phần mềm
10
[...]... hay quy trìnhpháttriểnphầnmềm mới ra đời Và quy trìnhpháttriểnphầnmềm linh hoạt agile đã phần nào đáp ứng được yêu cầu ấy 2 Agile là gì? - Phương pháp pháttriểnphầnmềm Agile (Agile development Method) ra đời từ đầu những năm 90, với ý tưởng khắc phục những nhược điểm của mô hình truyền thống cụ thể là mô hình thác nước Agile là tên gọi chung để chỉ các phương pháp pháttriển nhanh Agile”. .. iteration cho khách hàng dùng thử, đánh giá Bài tập lớn công nghệ phầnmềm 29 Trường đại học điện lực Khoa CNTT 2.9 Bắt đầu iteration mới nếu dự án chưa hoàn thành VI So sánh pháttriểntheo mô hình truyền thống và pháttriểntheo Agile Pháttriểntheo kế hoạch Pháttriểntheo agile Pháttriểntheo kế hoạch đã dự định Pháttriển không nhất thiết phải theo kế trước: Hạn chế sự thay đổi từ khách hoạch mà có thể... linh hoạt Trong khi đó, cách tiếp cận của XP thì thiên về các kỹ thuật áp Bài tập lớn công nghệ phầnmềm 32 Trường đại học điện lực Khoa CNTT dụng trong lập trình Nhiều hướng dẫn thực hiện trong lĩnh vực lập trình được XP đề cập một cách chi tiết Hình 10: So sánh các phương pháp pháttriểnphầnmềm II Các quytrìnhpháttriểntheo hướng Agile 1 Quytrình Scrum a Giới thiệu Scrum là một phương pháp luận... thiệu một quy trìnhpháttriểnphầnmềm nhanh có khả năng thích nghi Phương pháp pháttriểnphầnmềm Scrum được biết đến như một phương pháp quản lý nâng cao, áp dụng cho các hệ thống hiện có Do đó, có thể áp dụng Scrum với các phương pháp pháttriểnphầnmềm khác Ý tưởng chính của Scrum là cho rằng việc pháttriển một hệ thống cần phải quản lý một loạt các đại lượng như yêu cầu, thời gian, tài nguyên... để tạo ra một phầnmềmhiệu quả nhất II Tìm hiểu chung về agile 1 Tuyên ngôn agile Tuyên ngôn Agile được viết như sau: “Chúng tôi tìm kiếm những phương pháp tốt hơn đểpháttriển và giúp người khác pháttriểnphầnmềm Qua hoạt động đó, chúng tôi sẽ trân trọng: cá nhân và sự tương tác hơn là quytrình và Bài tập lớn công nghệ phầnmềm 17 Trường đại học điện lực Khoa CNTT công cụ; phầnmềm hoạt động... Mà nó là những lý thuyết về quy trìnhpháttriểnphầnmềm Hiện nay có nhiều các phương pháp pháttriển nhanh theo hướng Agile được đề xuất và áp dụng Mỗi phương pháp có một hướng tiếp cận khác nhau, đưa ra các quy trình, các hướng dẫn thực hiện riêng Nhưng chung nhất, các phương pháp này đều có những tính chất đã được tuyên bố trong bản tuyên ngôn của các phương pháp pháttriển nhan như: tính tương... thức pháttriểnphầnmềm linh hoạt) với mục tiêu là phầnmềm phải có khả năng biến đổi, pháttriển và tiến hóa theo thời gian mà không cần phải làm lại từ đầu Phương thức này tập chung vào tính đơn giản: tạo ra một phầnmềm thật đơn giản đáp ứng đúng yêu cầu của khách hàng hôm nay và sẵn sàng cho những thay đổi vào ngày mai - Phương pháp Agile cố gắng cực tiểu hoá rủi ro bằng cách pháttriểnphần mềm. .. cách triệt để kỳ vọng của con người về cách thức mà phầnmềm làm việc Chúng ta có rất nhiều phương pháp giúp xác định con đường pháttriểnphầnmềm ví dụ như một số quy trình: - Mô hình thác nước - Mô hình xoắn ốc - Mô hình hướng đối tượng - Mô hình làm bản mẫu Các phương pháp truyền thống kể trên cố gắng trang bị một khả năng dự đoán trước cho quy trìnhpháttriểnphầnmềm Vì vậy, chúng có thể tạo ra... của công việc Và đề tìm được giải pháp, thì không chỉ dựa vào các lý thuyết mà phải trực tiếp làm công việc pháttriểnphầnmềm Tất nhiên quytrình và công cụ cũng là điều quan trọng Sẽ không thể có một phầnmềm tốt nếu như quytrình và công cụ không tốt Nhưng điều mà bản tuyên ngôn nhấn mạnh là vai trò của từng cá nhân và mối quan hệ giữa các cá nhân trong đội ngũ pháttriểnphầnmềm Ý nghĩa quan... Con người thay vì quytrình đội cần được tự do pháttriển cách làm việc của riêng mình mà không cần đến các quytrìnhquy phạm định trước Hiểu rằng hệ thống sẽ thay đổi nên Chấp nhận thay đổi thiết kế hệ thống sao cho nó có thể Bài tập lớn công nghệ phầnmềm 19 Trường đại học điện lực Khoa CNTT chấp nhận được thay đổi đó Chú trọng vào tính giản dị dễhiểu của phầnmềm đang được pháttriển cũng Gìn giữ . Hoàng
Phần I: Tổng quan về công nghệ phần
mềm và quy trình phát triển phần
mềm.
Cụ thể: Tìm hiểu chung về công nghệ
phần mềm, quy trình phát triển phần
mềm. . TỔNG QUAN VỀ CÔNG NGHỆ PHẦN
MỀM VÀ QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
I. Tìm hiểu chung về công nghệ phần mềm.
1. Công nghệ phần mềm là gì ?
- Phần mềm máy tính