61
Nguyn ThMinh Tuyn Quy trình phn mm Ni dung ca slide này da vào các slide ca Ian Sommerville

Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền

Quy trình phần mềm

Nội dung của slide này dựa vào các slide của Ian Sommerville

Page 2: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nội dung

Mô hình quy trình phần mềm

Các hoạt động của quy trình

Thích nghi với sự thay đổi

Quy trình RUP

Page 3: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nội dung

Mô hình quy trình phần mềm

Các hoạt động của quy trình

Thích nghi với sự thay đổi

Quy trình RUP

Page 4: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình phần mềm

v Quy trình phần mềm (software process) là một tập có cấu trúc các hoạt động cần thiết để phát triển một hệ thống phần mềm.

v Có nhiều quy trình phần mềm khác nhau. Tuy nhiên, tất cả đều bao gồm những hoạt động: §  Đặc tả - Định nghĩa hệ thống làm gì; §  Thiết kế và cài đặt – Định nghĩa tổ chức của hệ thống và cài đặt hệ thống; §  Kiểm định – Kiểm tra rằng hệ thống đáp ứng được mong muốn của người

dùng; §  Cải tiến – thay đổi hệ thống để đáp ứng sự thay đổi yêu cầu người dùng.

v Mô hình quy trình phần mềm (software process model) là biểu diễn trừu tượng của một quy trình. Nó biểu diễn mô tả của quy trình từ một góc nhìn nào đó.

4

Page 5: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Mô tả quy trình phần mềm

v Khi mô tả về quy trình, ta thường nói về §  các hoạt động trong những quy trình này. Ví dụ, đặc tả

mô hình dữ liệu, thiết kế giao diện người dùng, … ; §  và thứ tự của các hoạt động này.

v Các mô tả quy trình có thể gồm: §  Sản phẩm, kết quả đầu ra của một hoạt động; §  Vai trò, phản ánh trách nhiệm của những người tham gia vào quy

trình; §  Điều kiện trước và điều kiện sau (Pre- and post-conditions), là

những điều kiện phải đảm bảo trước và sau khi một hoạt động được thực hiện hay một sản phẩm được tạo ra.

5

Page 6: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình hoạch định sẵn và quy trình linh hoạt

v Các quy trình hoạch định sẵn (plan-driven process) là các quy trình mà trong đó tất cả các hoạt động được lên kế hoạch trước và tiến độ thực hiện được đánh giá dựa vào kế hoạch này.

v Trong các quy trình linh hoạt (agile process), kế hoạch được phát triển dần dần và dễ dàng thay đổi quy trình để đáp ứng sự thay đổi yêu cầu của khách hàng.

v Hầu hết các quy trình thực tế đều gồm những phần tử của cả hai phương pháp này.

v Không có quy trình phần mềm đúng hay sai!

6

Page 7: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các mô hình quy trình phần mềm

v Mô hình thác nước (waterfall model) §  Mô hình hoạch định sẵn. Các pha đặc tả và phát triển phân biệt và

tách rời nhau.

v Mô hình phát triển dần dần (incremental development) §  Các pha đặc tả, phát triển và thẩm định đan xen nhau. Có thể là mô

hình hoạch định sẵn, có thể là mô hình linh hoạt.

v CNPM theo hướng tái sử dụng (reuse-oriented software engineering) §  Hệ thống được xây dựng từ những component có sẵn. Có thể là

hoạch định sẵn, có thể là linh hoạt.

v Thực tế, những hệ thống lớn được phát triển bằng cách sử dụng quy trình mà nó kết hợp các phần tử từ những mô hình này.

7

Page 8: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Mô hình thác nước

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

8

Page 9: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các pha trong mô hình thác nước

v Mô hình thác nước có các pha sau: §  Phân tích và định nghĩa yêu cầu §  Thiết kế hệ thống và phần mềm §  Cài đặt và kiểm thử đơn vị (unit testing) §  Kiểm thử tích hợp và kiểm thử toàn hệ thống §  Vận hành và bảo trì

v Nhược điểm: §  khó khăn trong việc thích nghi với sự thay đổi sau khi

quy trình đã vào guồng. Về nguyên tắc, pha này phải hoàn thành trước khi bắt đầu pha tiếp theo.

9

Page 10: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các vấn đề của mô hình thác nước

v Sự phân chia không linh động dự án thành những giai đoạn tách biệt gây khó khăn trong việc đáp ứng sự thay đổi yêu cầu người dùng §  Vì vậy, mô hình này chỉ hợp lý khi yêu cầu được hiểu rõ

và sự thay đổi khá hạn chế trong suốt quá trình phát triển; §  Rất ít những hệ thống thương mại có yêu cầu ổn định.

v Mô hình này được sử dụng trong các hệ thống lớn trong đó hệ thống được phát triển tại nhiều địa điểm khác nhau §  Bản chất của quy trình hoạch định sẵn của mô hình thác

nước giúp cho việc phối hợp trong công việc dễ dàng hơn.

10

Page 11: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

v Một biến thể của mô hình thác nước là phát triển hệ thống theo kiểu hình thức §  Sử dụng mô hình toán học để đặc tả hệ thống. §  Sử dụng các chuyển đổi toán học để chuyển các đặc tả thành

chương trình chạy được sao cho vẫn đảm bảo được tính nhất quán.

§  Do sử dụng chuyển đổi toán học => đây là một lý do thuyết phục để đảm bảo rằng một chương trình được phát sinh theo cách này nhất quán với đặc tả đưa ra.

v Những quy trình phát triển hình thức (sử dụng B-method chẳng hạn) phù hợp với việc phát triển hệ thống có độ tin cậy cao, độ an toàn cao và tính bảo mật cao. §  Ví dụ: đường metro 14 ở Paris, hệ thống tàu tự động ở sân bay

CDG, Paris, etc. 11

Page 12: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Phát triển dần dần

Concurrentactivities

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

12

Page 13: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Lợi ích của phát triển dần dần

v Giảm được chi phí khi đáp ứng sự thay đổi yêu cầu khách hàng §  Lượng phân tích và tài liệu phải làm lại được giảm đi nhiều

so với mô hình thác nước. v Dễ dàng trong việc lấy phản hồi từ khách

hàng. §  Khách hàng có thể đưa ra ý kiến dựa trên demo phần mềm

và thấy được phần mềm đã được cài đặt đến đâu rồi. v Phân phối và triển khai phần mềm đến

khách hàng nhanh hơn. §  Khách hàng có thể sử dụng phần mềm sớm hơn so với quy

trình thác nước.

13

Page 14: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Những vấn đề của phát triển dần dần

v Quy trình không rõ ràng. v Cấu trúc hệ thống có xu hướng bị

giảm đi vì những phần mới của hệ thống được thêm vào §  Trừ phi có thêm thời gian và tiền bạc vào để cải

thiện hệ thống, nếu không sự thay đổi thường xuyên sẽ phá vỡ cấu trúc của hệ thống. Đáp ứng những thay đổi phần mềm sẽ trở nên khó khăn và tốn kém hơn.

14

Page 15: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

CNPM theo hướng tái sử dụng

v Dựa vào việc tái sử dụng một cách có hệ thống §  các hệ thống được tích hợp từ những thành phần có sẵn

hoặc từ các hệ thống COTS (Commercial-off-the-shelf). v Các giai đoạn của quy trình

§  Phân tích component; §  Bổ sung yêu cầu; §  Thiết kế hệ thống với việc tái sử dụng; §  Phát triển và tích hợp.

v Hiện nay, việc tái sử dụng là phương pháp chuẩn cho việc xây dựng nhiều loại hệ thống thương mại.

15

Page 16: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

CNPM theo hướng tái sử dụng

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

16

Page 17: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các loại component

v Các dịch vụ Web (Web service): được phát triển theo các chuẩn dịch vụ và có sẵn để triệu gọi từ xa.

v Các tập các đối tượng được phát triển như một gói (package) tích hợp trong các framework như .NET hay J2EE.

v Những hệ thống phần mềm độc lập (COTS): được cấu hình để sử dụng cho một môi trường cụ thể.

17

Page 18: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nội dung

Mô hình quy trình phần mềm

Các hoạt động của quy trình

Thích nghi với sự thay đổi

Quy trình RUP

Page 19: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các hoạt động của quy trình

v 4 hoạt động quy trình cơ bản - đặc tả, phát triển, thẩm định và cải tiến - được tổ chức khác nhau trong các quy trình phát triển khác nhau §  Trong mô hình thác nước, chúng được tổ chức tuần tự. §  Trong mô hình phát triển dần dần, chúng được tổ chức đan xen nhau.

19

Page 20: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Đặc tả phần mềm

v Là quy trình thiết lập danh sách các dịch vụ được yêu cầu và các ràng buộc đối với hoạt động của hệ thống và việc phát triển hệ thống.

v Quy trình công nghệ yêu cầu (requirements engineering process) §  Nghiên cứu khả thi (Feasibility study): Ước lượng xem những

yêu cầu của người dùng có khả thi về mặt kỹ thuật và tài chính để xây dựng nên hệ thống hay không.

§  Thu thập và phân tích yêu cầu (Requirements elicitation and analysis): Các stackholder hệ thống yêu cầu và mong muốn gì từ hệ thống?

§  Đặc tả yêu cầu (Requirements specification): Định nghĩa chi tiết các yêu cầu.

§  Requirements validation: Kiểm tra tính hợp lệ của yêu cầu. 20

Page 21: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình công nghệ yêu cầu

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

21

Page 22: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Thiết kế và cài đặt phần mềm

v Là quy trình chuyển đổi các đặc tả thành hệ thống thực thi được.

v Thiết kế phần mềm (software design) §  Thiết kế một cấu trúc phần mềm để hiện thực hóa đặc tả;

v Cài đặt (implementation) §  Dịch cấu trúc đó thành chương trình thực thi được.

v Các hoạt động của pha thiết kế và cài đặt thường liên quan đến nhau hoặc có thể đan xen nhau.

22

Page 23: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Một mô hình chung của quy trình thiết kế

Interfacedesign

Componentdesign

Systemarchitecture

Databasespecification

Interfacespecification

Requirementsspecification

Architecturaldesign

Componentspecification

Platforminformation

Datadescription

Design inputs

Design activities

Design outputs

Database design

23

Page 24: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các hoạt động thiết kế

v Thiết kế kiến trúc (Architectural design) §  Nhận diện cấu trúc toàn hệ thống, những component

chính, mối quan hệ giữa các component và chúng được phân tán thế nào.

v Thiết kế giao diện (Interface design) §  Định nghĩa giao diện giữa các component hệ thống.

v Thiết kế component (Component design) §  Xem xét từng component hệ thống và thiết kế xem

nó hoạt động thế nào. v Thiết kế CSDL (Database design)

§  Thiết kế các cấu trúc dữ liệu hệ thống và cách chúng được biểu diễn trong CSDL.

24

Page 25: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Thẩm định phần mềm

v Kiểm định (verification) và thẩm định (validation) (V & V) nhằm mục đích chỉ ra rằng §  Một hệ thống tuân theo đặc tả của nó; §  Thỏa mãn yêu cầu của khách hàng hệ thống.

v Bao gồm các quy trình kiểm tra, review và kiểm thử hệ thống (system testing).

v Kiểm thử hệ thống bao gồm việc chạy hệ thống sử dụng các test case được viết ra dựa vào đặc tả.

v Kiểm thử là hoạt động V&V thường được sử dụng nhất.

25

Page 26: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các giai đoạn kiểm thử phần mềm

System testingComponent

testingAcceptance

testing

26

Page 27: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các giai đoạn kiểm thử phần mềm

v Kiểm thử component (Development or component testing) § Các component được kiểm thử một cách độc lập; § Các component có thể là hàm hoặc đối tượng

hoặc nhóm đồng nhất các thực thể. v Kiểm thử hệ thống

§  Kiểm thử toàn bộ hệ thống. v Acceptance testing

§  Kiểm thử với dữ liệu của khách hàng để kiểm tra rằng hệ thống đáp ứng được yêu cầu của khách hàng.

27

Page 28: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các pha kiểm thử trong quy trình hoạch định sẵn

Requirementsspecification

Systemspecification

Acceptancetest

Systemintegration test

Sub-systemintegration test

Systemdesign

Detaileddesign

Service

Module andunit codeand test

Acceptancetest plan

Systemintegrationtest plan

Sub-systemintegrationtest plan

28

Page 29: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Cải tiến phần mềm

v Phần mềm vốn dĩ linh hoạt và có thể thay đổi.

v Vì yêu cầu thay đổi do môi trường kinh doanh thay đổi, phần mềm hỗ trợ kinh doanh cũng phải cải tiến và thay đổi.

v Ranh giới giữa phát triển phần mềm và cải tiến phần mềm ngày càng mờ nhạt đi. Ngày càng ít phần mềm được phát triển hoàn toàn mới.

29

Page 30: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Cải tiến phần mềm

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

30

Page 31: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Tổng kết

v Quy trình phần mềm là một tập có cấu trúc các hoạt động cần thiết để phát triển một hệ thống phần mềm.

v Mô hình quy trình phần mềm là biểu diễn trừu tượng của một quy trình.

v Các mô hình quy trình tổng quát mô tả tổ chức của các quy trình phần mềm. §  Ví dụ: Mô hình thác nước, mô hình phát triển

tiến hóa, mô hình phát triển theo hướng tái sử dụng.

31

Page 32: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Tổng kết

v Công nghệ yêu cầu là quy trình phát triển đặc tả phần mềm.

v Quy trình thiết kế và cài đặt liên quan đến việc chuyển đổi một đặc tả yêu cầu thành hệ thống phần mềm chạy được.

v Thẩm định phần mềm là quy trình kiểm tra rằng hệ thống thỏa mãn đặc tả và đáp ứng được nhu cầu thực của người sử dụng hệ thống.

v Cải tiến phần mềm xảy ra khi bạn thay đổi hệ thống phần mềm có sẵn để đáp ứng các yêu cầu mới.

32

Page 33: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nội dung

Mô hình quy trình phần mềm

Các hoạt động của quy trình

Thích nghi với sự thay đổi

Quy trình RUP

33

Page 34: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Thích nghi với sự thay đổi

v Sự thay đổi là điều hiển nhiên trong những dự án phần mềm lớn §  Những thay đổi thương mại dẫn đến việc thay đổi yêu

cầu hoặc phát sinh những yêu cầu mới. §  Công nghệ mới mở ra khả năng cải thiện việc cài đặt. §  Thay đổi platform đòi hỏi thay đổi ứng dụng.

v Thay đổi dẫn đến việc làm lại §  vì vậy chi phí của việc thay đổi gồm cả chi phí

làm lại và chi phí cài đặt tính năng mới.

34

Page 35: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Giảm thiểu chi phí làm lại

v Tránh thay đổi (change avoidance) §  Quy trình phần mềm gồm các hoạt động mà nó có thể dự đoán trước những thay đổi có thể xảy ra khi việc làm lại được yêu cầu.

§  Ví dụ: hệ thống nguyên mẫu (prototype system) có thể dùng để cho khách hàng xem những tính năng chính của hệ thống.

v Chấp nhận thay đổi (change tolerance) §  Quy trình được thiết kế sao cho thay đổi được thực hiện với

chi phí khá thấp. §  Thường sử dụng mô hình phát triển dần dần.

35

Page 36: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nguyên bản phần mềm

v Một nguyên bản (prototype) là phiên bản đầu tiên của một hệ thống được dùng để demo những khái niệm và thử các tùy chọn thiết kế.

v Một nguyên bản có thể được sử dụng trong các trường hợp sau: §  Trong quy trình công nghệ yêu cầu để giúp cho quá

trình thu thập yêu cầu và thẩm định yêu cầu; §  Trong quy trình thiết kế để tìm ra các tùy chọn và phát

triển thiết kế giao diện người dùng; §  Trong quy trình kiểm thử để chạy các kiểm thử back-to-

back.

36

Page 37: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Lợi ích của nguyên bản

v Cải thiện khả năng sử dụng hệ thống. v Thoả mãn tốt hơn nhu cầu thực của

người dùng. v Cải thiện chất lượng thiết kế. v Cải thiện khả năng bảo trì hệ thống. v Giảm bớt nỗ lực phát triển.

37

Page 38: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình phát triển nguyên bản

Establishprototypeobjectives

Defineprototype

functionality

Developprototype

Evaluateprototype

Prototypingplan

Outlinedefinition

Executableprototype

Evaluationreport

38

Page 39: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Phát triển nguyên bản

v Có thể dựa vào các công cụ và ngôn ngữ để phát triển nguyên bản.

v Có thể bao gồm cả việc loại bỏ bớt tính năng § Nguyên bản nên tập trung vào những tính năng

chưa được hiểu rõ ràng; §  Kiểm tra lỗi không nằm trong nguyên bản; §  Tập trung vào các yêu cầu chức năng hơn là

các yêu cầu phi chức năng.

39

Page 40: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Throw-away prototypes

v Các nguyên bản nên bị loại bỏ sau khi phát triển phần mềm vì chúng không phải là cái cơ bản để phát triển hệ thống: §  Khó có thể điều chỉnh hệ thống để đáp ứng được các yêu cầu phi chức năng;

§ Nguyên bản thường không được tài liệu hóa; § Cấu trúc nguyên bản thường bị phá vỡ do bị

thay đổi nhanh; § Nguyên bản có thể không đáp ứng được những

tiêu chuẩn chất lượng về mặt tổ chức. 40

Page 41: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Chuyển giao dần dần(incremental delivery)

v Thay vì phân phối hệ thống một lần, việc phát triển và phân phối được chia ra thành từng phần nhỏ (increment). Mỗi phần giao cho khách hàng chứa một phần tính năng được yêu cầu.

v Những yêu cầu người dùng được ưu tiên và những yêu cầu có độ ưu tiên cao nhất sẽ được đặt trong các phần đầu tiên.

v Trong quá trình phát triển, việc phân tích yêu cầu cho phần tiếp theo có thể được tiến hành nhưng thay đổi yêu cầu cho phần hiện tại không được chấp nhận.

41

Page 42: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Phát triển dần dần và chuyển giao dần dần

v Phát triển dần dần §  Phát triển từng phần hệ thống và đánh giá mỗi phần

trước khi tiến hành phát triển phần tiếp theo; §  Được sử dụng trong các phương pháp linh hoạt; §  Đánh giá được thực hiện bởi đại diện người sử dụng/

khách hàng. v Chuyển giao dần dần

§  Triển khai một phần để sử dụng cho người dùng cuối; §  Đánh giá thực tế hơn;

42

Page 43: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Chuyển giao dần dần

Design systemarchitecture

Define outline requirements

Assign requirements to increments

Systemincomplete?

Finalsystem

Develop systemincrement

Validateincrement

Integrateincrement

Validatesystem

Deployincrement

Systemcomplete?

43

Page 44: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Ưu điểm của chuyển giao dần dần

v Khách hàng sớm được bàn giao sản phẩm (từng phần).

v Các phần đầu được xem như một nguyên bản để hỗ trợ cho việc làm lộ rõ những yêu cầu cho phần sau.

v Nguy cơ thất bại toàn hệ thống là thấp. v Duy trì được ưu điểm của phát triển từng phần,

do đó dễ thích nghi với sự thay đổi của hệ thống.

v Những dịch vụ hệ thống có độ ưu tiên cao nhất sẽ được kiểm thử nhiều nhất §  Khách hàng ít gặp lỗi phần mềm ở những phần quan

trọng của hệ thống. 44

Page 45: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Mô hình xoắn ốc Boehm

v Quy trình được biểu diễn như một đường xoắn ốc hơn là một chuỗi tuần tự các hoạt động với các bước quay lui.

v Mỗi vòng lặp trong đường xoắn ốc biểu diễn một pha của quy trình.

v Không có những pha cố định như đặt tả hay thiết kế, các vòng lặp trong đường xoắn ốc được chọn theo nhu cầu.

v Rủi ro được đánh giá rõ ràng và được giải quyết trong suốt quy trình.

45

Page 46: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình phần mềm của mô hình xoắn ốc Boehm

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2

Prototype 3Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternatives,identify, resolve risks

Determine objectives,alternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

46

Page 47: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các phân khu (sector) của mô hình xoắn ốc

v Thiết lập mục tiêu §  Xác định mục tiêu cụ thể của pha.

v Đánh giá và giảm thiểu rủi ro §  Rủi ro được đánh giá và các hoạt động được tiến

hành để giảm thiểu các rủi ro chính. v Phát triển và thẩm định

§  Một mô hình phát triển cho hệ thống được chọn, đây có thể là một trong các mô hình tổng quát.

v Lập kế hoạch §  Dự án được duyệt và pha tiếp theo trong đường

xoắn ốc được lên kế hoạch.

47

Page 48: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Sử dụng mô hình xoắn ốc

v Ưu điểm: §  Là phương pháp thực tế để phát triển các hệ thống phần mềm lớn. §  Giúp các kỹ sư hiểu rõ và tương tác tốt hơn với các nguy cơ tại

mỗi mức tiến hóa. §  Cho phép áp dụng nguyên bản tại bất cứ giai đoạn tiến hóa nào. §  Giảm được các nguy cơ trước khi nó trở thành vấn đề của hệ

thống. v Nhược điểm:

§  Không phải là “thuốc chữa bách bệnh”. §  Khó khăn trong việc thuyết phục khách hàng rằng phương pháp

này có thể điều khiển được. §  Cần chuyên gia đánh giá về nguy cơ và dựa vào chuyên gia để

thành công. Nếu một nguy cơ lớn không được tìm ra và quản lý được, các vấn đề về hệ thống sẽ xảy ra.

48

Page 49: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Nội dung

Mô hình quy trình phần mềm

Các hoạt động của quy trình

Thích nghi với sự thay đổi

Quy trình RUP

49

Page 50: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Quy trình RUP

v The Rational Unified Process v Đây là một quy trình tổng quát bắt nguồn từ

UML và Unified Software Development Process.

v Kết hợp các khía cạnh của ba mô hình quy trình tổng quát.

v Thường mô tả ba khía cạnh §  Khía cạnh động (dynamic perspective): chỉ ra các pha

theo thời gian; §  Khía cạnh tĩnh (static perspective): chỉ ra các hoạt động

của quy trình; §  Khía cạnh thực tiễn (practice perspective): đề xuất

những thực tiễn tốt. 50

Page 51: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các pha của RUP

Inception Elaboration Construction

Phase iteration

Transition

51

Page 52: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các pha của RUP

v Khởi động (Inception) §  Thiết lập business case cho hệ thống.

v Phát triển (Elaboration) § Nghiên cứu các vấn đề và phát triển kiến trúc hệ

thống. v Xây dựng (Construction)

§  Thiết kế hệ thống, lập trình và kiểm thử. v Chuyển tiếp (Transition)

§  Triển khai hệ thống.

52

Page 53: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Vòng lặp trong RUP

v Lặp trong từng pha (In-phase iteration) § Mỗi pha được lặp lại với kết quả được phát triển

tăng dần. v Lặp qua các pha (Cross-phase iteration)

§  Việc lặp có thể được thực hiện qua toàn bộ các pha.

53

Page 54: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các workflow tĩnh trong RUP

Workflow Description Business modelling

The business processes are modelled using business use cases.

Requirements Actors who interact with the system are identified and use cases are developed to model the system requirements.

Analysis and design

A design model is created and documented using architectural models, component models, object models and sequence models.

Implementation The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process.

54

Page 55: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Các workflow trong RUP

Workflow Description Testing Testing is an iterative process that is carried out in

conjunction with implementation. System testing follows the completion of the implementation.

Deployment A product release is created, distributed to users and installed in their workplace.

Configuration and change management

This supporting workflow managed changes to the system.

Project management

This supporting workflow manages the system development.

Environment This workflow is concerned with making appropriate software tools available to the software development team.

55

Page 56: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM 56

Nguồn: http://www.ibm.com

Page 57: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Ưu điểm của RUP

v Phát triển phần mềm theo vòng lặp § Các phần được lên kế hoạch dựa vào độ ưu tiên

của khách hàng và phân phối những phần có độ ưu tiên cao nhất trước.

v Quản lý yêu cầu §  Viết tài liệu một cách rõ ràng cho các yêu cầu

khách hàng và theo dõi sự thay đổi của những yêu cầu này.

v Sử dụng kiến trúc dựa vào component §  Tổ chức hệ thống như một tập các component

có thể tái sử dụng. 57

Page 58: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Ưu điểm của RUP

v Mô hình hóa phần mềm một cách trực quan §  Sử dụng các mô hình đồ họa UML để biểu diễn

các góc nhìn tĩnh và động của phần mềm. v Kiểm tra chất lượng phần mềm

§ Đảm bảo rằng phần mềm đáp ứng được các chuẩn chất lượng về mặt tổ chức.

v Điều khiển các thay đổi phần mềm § Quản lý những thay đổi phần mềm sử dụng

những hệ thống quản lý thay đổi và các công cụ quản lý cấu hình.

58

Page 59: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Tổng kết

v Quy trình nên có các hoạt động để đối phó với sự thay đổi. Có thể có pha nguyên bản để hạn chế những thay đổi không cần thiết trên yêu cầu và thiết kế.

v Quy trình có thể được cấu trúc hóa cho phát triển và phân phối dần dần sao cho nhưng thay đổi có thể được thực hiện mà không phá vỡ toàn bộ hệ thống.

v RUP là một mô hình quy trình tổng quát hiện đại được tổ chức thành các pha (khởi động, phát triển, xây dựng và chuyển tiếp).

59

Page 60: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian

Nguyễn Thị Minh Tuyền Nhập môn CNPM

Câu hỏi?

Page 61: Quy trình phầ ềm - tuyennguyen.infotuyennguyen.info/TH2011_Intro2SE/slides/02-Process.pdf · Quy trình phần mềm Nội dung của slide này dựa vào các slide của Ian