tài liệu test

39
Vòng Đời và Các Mô Hình Phát Trin PhnMm Công NghPhnMm Nâng Cao

Upload: lan-anh-nguyen

Post on 16-Apr-2017

31 views

Category:

Education


0 download

TRANSCRIPT

Vòng Đời và Các Mô Hình Phát Triển Phần Mềm

Công Nghệ Phần Mềm Nâng Cao

OutlineOutlineSoftware life-cycleQ i ì h há iể Phầ ềQui trình phát triển Phần mềmCác mô hình phát triển

Mô hình tuyến tínhMô hình chế thửMô hình phát triển ứng dụng nhanhCác mô hình tiến hóaMô hình phát triển đồng thờiMô hình hướng thành phầnMô hình hướng thành phần

Pham Ngoc Hung, Coltech, VNU, 2009 2

Vòng đời phần mềm (Software life-cycle)Vòng đời phần mềm (Software life cycle)

Vòng đời phần mềm là thời kỳ tính từ khi phần mềmg p ỳ pđược sinh (tạo) ra cho đến khi chết đi (từ lúc hìnhthành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến

)khi loại bỏ không đâu dùng)Quy trình phần mềm (vòng đời phần mềm) được

hâ hi hà h á h hí h hâ í h hiế kếphân chia thành các pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì. Biểu diễn các pha có khácnhau theo từng ngườinhau theo từng người

Pham Ngoc Hung, Coltech, VNU, 2009 3

Mô hình vòng đời phần mềm của Boehmg pXác định yêu cầu hệ thốngKiểm chứng

Xác định yêu cầu phần mềm

Kiểm chứng

Thiết kếThiết kế căn bản

Kiểm chứng

Thiết kế chi tiếtchi tiết

Kiểm chứng

Lập trình

Gỡ lỗiGỡ ỗ

Kiểm thử

Chạy thử

Vận hànhBảo trì

Kiểm chứng lạiPham Ngoc Hung, Coltech, VNU, 2009 4

S hĩ ới ề ò đời hầ ềSuy nghĩ mới về vòng đời phần mềm(1) Pha xác định yêu cầu và thiết kế có vai trò quyết

ế ấ ầ ề ế ầđịnh đến chất lượng phần mềm, chiếm phần lớncông sức so với lập trình, kiểm thử và chuyển giaophần mềmphần mềm

(2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc nhiềuvào suy nghĩ trên xuống (top-down) và trừu tượngy g g ( p ) ợ ghóa, cũng như chi tiết hóa

(3) Pha thiết kế, chế tạo thì theo trên xuống, pha kiểmhử hì d ới lê (b )thử thì dưới lên (bottom-up)

Pham Ngoc Hung, Coltech, VNU, 2009 5

S hĩ ới ề ò đời hầ ềSuy nghĩ mới về vòng đời phần mềm(4) Trước khi chuyển sang pha kế tiếp phải đảm bảo pha( ) y g p p p p

hiện nay đã được kiểm thử không còn lỗi(5) Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa các

h hằ đả bả khô â lỗi h hpha nhằm đảm bảo không gây lỗi cho pha sau(6) Tư liệu của mỗi pha không chỉ dùng cho pha sau, mà

chính là đối tượng quan trọng cho kiểm tra và đảm bảochính là đối tượng quan trọng cho kiểm tra và đảm bảochất lượng của từng quy trình và của chính phần mềm

Pham Ngoc Hung, Coltech, VNU, 2009 6

S hĩ ới ề ò đời hầ ềSuy nghĩ mới về vòng đời phần mềm(7) Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư liệu( ) , g p ạ ệ

cho từng pha, nhằm đảm bảo chất lượng phần mềm(8) Thao tác bảo trì phần mềm là việc xử lý quay vòng

trở lại các pha trong vòng đời phần mềm nhằm biếnđổi, sửa chữa, nâng cấp phần mềm

Pham Ngoc Hung, Coltech, VNU, 2009 7

Các phương pháp luận và kỹ thuật cho từng phaTªn pha Néi dung nghiÖp vô

Ph−¬ng ph¸p, kü thuËt

X¸c ®Þnh §Æc t¶ yªu cÇu ng−êi dïng Ph©n tÝch cÊu trócX¸c ®Þnh yªu cÇu

§Æc t¶ yªu cÇu ng−êi dïngX¸c ®Þnh yªu cÇu phÇn mÒm

Ph©n tÝch cÊu tróc hãa

ThiÕt kÕ hÖ thèng

ThiÕt kÕ c¬ b¶n phÇn mÒm 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 mÒm

ThiÕt kÕ ch−¬ng

Lµ thiÕt kÕ chi tiÕt: ThiÕt kÕ cÊu tróc bªn trong cña phÇn mÒm (®¬n

LËp tr×nh cÊu tróc Ph−¬ng ph¸p JacksonPh−¬ h¸

gtr×nh

g p (vÞ ch−¬ng tr×nh hoÆc m«®un)

Ph−¬ng ph¸p 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§¶m b¶o chÊt l−îng

KiÓm tra chÊt l−îng phÇn mÒm ®· ph¸t triÓn

Ph−¬ng ph¸p kiÓm thö ch−¬ng tr×nh

VËn hµnh ¶ ×

Sö dông, vËn hµnh phÇn mÒm ®· ph¸t triÓn BiÕn ®æi ®iÒu chØnh Ch−a cô thÓ

B¶o tr× ph¸t triÓn. BiÕn ®æi, ®iÒu chØnh phÇn mÒm

Ch−a cô thÓ

Pham Ngoc Hung, Coltech, VNU, 2009 8

Quy trình phát triển phần mềmQuy trình phát triển phần mềm

Common process framework

Framework activities

Task setsTasks

Mil d li blMilestones, deliverables

SQA points

Umbrella activities

Pham Ngoc Hung, Coltech, VNU, 2009 9

Mô hình tuyến tínhMô hình tuyến tính

Phân tích Thiết kế Lập trình Kiểm thử

Công nghệ họcHệ thống/Thông tin

Đ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ấty ự g

Pham Ngoc Hung, Coltech, VNU, 2009 10

Mô hình tuyến tínhMô hình tuyến tính

Công nghệ học Hệ thống/Thông tin và mô hình hóag g g g(System / Information engineering and modeling): thiếtlập các yêu cầu, ánh xạ một số tập con các yêu cầu sangphần mềm trong quá trình tương tác giữa phần cứngphần mềm trong quá trình tương tác giữa phần cứng, người và CSDLPhân tích yêu cầu (Requirements analysis): hiểu lĩnh vựcPhân tích yêu cầu (Requirements analysis): hiểu lĩnh vựcthông tin, chức năng, hành vi, tính năng và giao diện củaphần mềm sẽ phát triển. Cần phải tạo tư liệu và bàn thảovới khách hàng, người dùng

Pham Ngoc Hung, Coltech, VNU, 2009 11

Mô hình tuyến tínhMô hình tuyến tính

Thiết kế (Design): là quá trình nhiều bước với 4 thuộctính khác nhau của một chương trình: cấu trúc dữ liệu, kiế ú hầ ề biể diễ i diệ à hi iế hủkiến trúc phần mềm, biểu diễn giao diện và chi tiết thủtục (thuật toán). Cần tư liệu hóa và là một phần quantrọng của cấu hình phần mềmtrọng của cấu hình phần mềmTạ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ônngữ nào đó. Nếu thiết kế đã được chi tiết hóa thì lậptrình có thể chỉ thuần túy cơ học

Pham Ngoc Hung, Coltech, VNU, 2009 12

Mô hình tuyến tínhMô hình tuyến tính

Kiểm thử (Testing): Kiểm tra các chương trình và( g) gmôđun cả về lôgic bên trong và chức năng bênngoài, nhằm phát hiện ra lỗi và đảm bảo với đầu vào

ế ốxác định thì cho kết quả mong muốnHỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng

hữ h đổi â ấ hầ ề đã há iể dnhững thay đổi, nâng cấp phần mềm đã phát triển dosự thay đổi của môi trường, nhu cầu

Pham Ngoc Hung, Coltech, VNU, 2009 13

ể ế ếĐiểm yếu của Mô hình tuyến tínhThực tế các dự án ít khi tuân theo dòng tuần tự củaự ự g ựmô hình, mà thường có lặp lại (như mô hình củaBoehm)Khách hàng ít khi tuyên bố rõ ràng khi nào xong hếtcác yêu cầu

ẫKhách hàng phải có lòng kiên nhẫn chờ đợi thời giannhất định mới có sản phẩm. Nếu phát hiện ra lỗiặ thì là ột thả h !nặng thì là một thảm họa!

Pham Ngoc Hung, Coltech, VNU, 2009 14

Mô hình chế thử (Prototyping model)Mô hình chế thử (Prototyping model)

Nghe Khách trình bày

Tạo/sửabản mẫu

Khách kiểm trabản mẫu

Pham Ngoc Hung, Coltech, VNU, 2009 15

Mô hình chế thử: Khi nào?Mô hình chế thử: Khi nào?

Khi mới rõ mục đích chung chung của phần mềm, ụ g g p ,chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưarõ yêu cầu đầu raDùng như “Hệ sơ khai” để thu thập yêu cầu ngườidùng qua các thiết kế nhanh

ẫ ểCác giải thuật, kỹ thuật dùng làm bản mẫu có thểchưa nhanh, chưa tốt, miễn là có mẫu để thảo luận

i ê ầ ủ ời dùgợi yêu cầu của người dùng

Pham Ngoc Hung, Coltech, VNU, 2009 16

Mô hình phát triển ứng dụng nhanh (RapidMô hình phát triển ứng dụng nhanh (RapidApplication Development: RAD)

Là quy trình phát triển phần mềm gia tăng, tăng dần từngbước (Incrimental software development) với mỗi chu

ì h há iể ấ ắ (60 90 à )trình phát triển rất ngắn (60-90 ngày)Xây dựng dựa trên hướng thành phần (Component-basedconstruction) với khả năng tái sử dụng (reuse)construction) với khả năng tái sử dụng (reuse)Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theocác pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xửp g ệp ụ, ệ ,lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data, Process, Appl. Generation, Test)

Pham Ngoc Hung, Coltech, VNU, 2009 17

ô hì hBusinessModeling

Team #3

Mô hìnhphát triển g

BusinessModeling

Data

gModeling

gData

Modeling

gProcessModeling

Application

Team #2

ứng dụngnhanh

BusinessModeling

gData

Modeling

gProcessModeling

A li ti

ApplicationGeneration

Testing &Turnover

Team #1

DataModeling

Process

ApplicationGeneration

Testing &Turnover

ModelingApplicationGeneration

Turnover

Ge e at o

Testing &Turnover

60 - 90 days

Pham Ngoc Hung, Coltech, VNU, 2009 18

RAD: Business modelingRAD: Business modeling

Luồng thông tin được mô hình hóa để trả lời cácLuồng thông tin được mô hình hóa để trả lời cáccâu hỏi:

Thông tin nào điều khiển xử lý nghiệp vụ?Thông tin nào điều khiển xử lý nghiệp vụ?Thông tin gì được sinh ra?Ai sinh ra nó?Ai sinh ra nó?Thông tin đi đến đâu?Ai xử lý chúng?Ai xử lý chúng?

Pham Ngoc Hung, Coltech, VNU, 2009 19

RAD D d P d liRAD: Data and Process modeling

Data modeling: các đối tượng dữ liệu cần để hỗtrợ nghiệp vụ (business). Định nghĩa các thuộc

ốtính của từng đối tượng và xác lập quan hệ giữacác đối tượng

d li đối d li đProcess modeling: Các đối tượng dữ liệu đượcchuyển sang luồng thông tin thực hiện chức năngnghiệp vụ Tạo mô tả xử lý đễ cập nhật (thêmnghiệ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

Pham Ngoc Hung, Coltech, VNU, 2009 20

RAD: Appl Generation and TestingRAD: Appl. Generation and TestingApplication Generation: Dùng các kỹ thuật thế hệ 4 pp g ỹ ậ ệđể tạo phần mềm từ các thành phần có sẵn hoặc tạora các thành phần có thể tái dụng lại sau này. Dùng

ể ầ ềcác công cụ tự động để xây dựng phần mềmTesting and Turnover: Kiểm thử các thành phần mới

à kiể hứ i i diệ ( á hà h hầ ũ đãvà kiểm chứng mọi giao diện (các thành phần cũ đãđược kiểm thử và dùng lại)

Pham Ngoc Hung, Coltech, VNU, 2009 21

RAD: Hạn chế?RAD: Hạn chế?

Cần nguồn nhân lực dồi dào để tạo các nhóm cho cácgchức năng chínhYêu cầu hai bên giao kèo trong thời gian ngắn phải có

hầ ề h à hỉ h hiế á h hiệ ủ ộ bê dễphần mềm hoàn chỉnh, thiếu trách nhiệm của một bên dễlàm dự án đổ vỡRAD không phải tốt cho mọi ứng dụng nhất là với ứngRAD không phải tốt cho mọi ứng dụng, nhất là với ứngdụng không thể môđun hóa hoặc đòi hỏi tính năng caoMạo hiểm kỹ thuật cao thì không nên dùng RADMạo hiểm kỹ thuật cao thì không nên dùng RAD

Pham Ngoc Hung, Coltech, VNU, 2009 22

Các mô hình tiến hóa: ắ ốgia tăng, xoắn ốc...

Phần lớn các hệ phần mềm phức tạp đều tiến hóa theoPhần lớn các hệ phần mềm phức tạp đều tiến hóa theothời gian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiện thêm chức năng, tính năngCác mô hình tiến hóa (evolutionary models) có tính lặplại. Kỹ sư phần mềm tạo ra các phiên bản (versions)

à à h à thiệ h hứ t hngày càng hoàn thiện hơn, phức tạp hơnCác mô hình: incremental, spiral, WINWIN spiral, concurrent development modelconcurrent development model

Pham Ngoc Hung, Coltech, VNU, 2009 23

Mô hình gia tăng (The incremental model)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ạiKết hợp mô hình tuần tự và ý tưởng lặp lạicủa chế bản mẫuSản phẩm lõi với những yêu cầu cơ bản nhấtSản phẩm lõi với những yêu cầu cơ bản nhấtcủa hệ thống được phát triểnCá hứ ă ới hữ ê ầ khá đượCác chức năng với những yêu cầu khác đượcphát triển thêm sau (gia tăng)

ể ầLặp lại quy trình để hoàn thiện dần

Pham Ngoc Hung, Coltech, VNU, 2009 24

Mô hình gia tăngMô hình gia tăng

Gia tăng 1

Phân tích Thiết kế Lập trình Kiểm thử

System/info.E i i

Gia tăng 1

Xuất xưởng 1

Engineering

Phân tích Thiết kế Lập trình Kiểm thửGia tăng 2 Xuất xưởng 2

Phân tích Thiết kế Lập trình Kiểm thửGia tăng 3 Xuất xưởng 3

C l d ti

Phân tích Thiết kế Lập trình Kiểm thửGia tăng 4 XX 4

Calendar time

Pham Ngoc Hung, Coltech, VNU, 2009 25

Mô hình xoắn ốc (spiral)Mô hình xoắn ốc (spiral)

Giao tiếp

Lập kế hoạch Phân tích rủi ro

Giao tiếpkhách hàng

Kỹ nghệKhái niệm

Làm mới

Xây dựng & Xuất xưởng

Khách hàngđánh giáBảo trì

Nâng cấp

gBảo trì

Pham Ngoc Hung, Coltech, VNU, 2009 26

Mô hình xoắn ốc (tiếp)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áchp g g g phàng để tìm hiểu yêu cầu, ý kiếnLập kế hoạch: Xác lập tài nguyên, thời hạn và nhữngthông tin khácPhân tích rủi ro: Xem xét mạo hiểm kỹ thuật và mạoểhiểm quản lý

Kỹ nghệ: Xây dựng một hay một số biểu diễn củaứng dụng

Pham Ngoc Hung, Coltech, VNU, 2009 27

Mô hình xoắn ốc (tiếp)Mô hình xoắn ốc (tiếp)

Xây dựng và xuất xưởng: xây dựng, kiểm thử, càiy ự g g y ự g, ,đặt và cung cấp hỗ trợ người dùng (tư liệu, huấnluyện, . . .)Đánh giá của khách hàng: Nhận các phản hồi củangười sử dụng về biểu diễn phần mềm trong giaiđ kỹ hệ à ài đặđoạn kỹ nghệ và cài đặt

Pham Ngoc Hung, Coltech, VNU, 2009 28

Mô hình xoắn ốc: Mạnh và yếu?Mô hình xoắn ốc: Mạnh và yếu?

Tốt cho các hệ phần mềm quy mô lớnệ p q yDễ kiểm soát các mạo hiểm ở từng mức tiến hóaKhó thuyết phục khách hàng là phương pháp tiếnKhó thuyết phục khách hàng là phương pháp tiếnhóa xoắn ốc có thể kiểm soát đượcChưa được dùng rộng rãi như các mô hình tuyếnChưa được dùng rộng rãi như các mô hình tuyếntính hoặc chế thử

Pham Ngoc Hung, Coltech, VNU, 2009 29

Mô hình phát triển đồng thờip g(The concurrent development model)

Xác định mạng lưới những hoạt động đồng thờiXác định mạng lưới những hoạt động đồng thời(Network of concurrent activities)Các sự kiện (events) xuất hiện theo điều kiện vận độngự ệ ( ) ệ ệ ậ ộ gtrạng thái trong từng hoạt độngDùng cho mọi loại ứng dụng và cho hình ảnh khá chính

ềxác về trạng thái hiện trạng của dự ánThường dùng trong phát triển các ứng dụng khách/chủ( li t/ li ti ): t d t(client/server applications): system and componets aredeveloped concurrently

Pham Ngoc Hung, Coltech, VNU, 2009 30

Mô hình hướng thành phần(Component-based model)

Gắ ới hữ ô hệ h ớ đối t (Obj tGắn với những công nghệ hướng đối tượng (Object-oriented technologies) qua việc tạo các lớp (classes) cóchứa cả dữ liệu và giải thuật xử lý dữ liệuchứa cả dữ liệu và giải thuật xử lý dữ liệuCó nhiều tương đồng với mô hình xoắn ốcVới ưu điểm tái sử dụng các thành phần qua Thư việnVới ưu điểm tái sử dụng các thành phần qua Thư viện/ kho các lớp: tiết kiệm 70% thời gian, 80% giá thành,chỉ số sản xuất 26.2/16.9Với UML như chuẩn công nghiệp đang triển khai

Pham Ngoc Hung, Coltech, VNU, 2009 31

Mô hì h h ớ hà h hầMô hình hướng thành phần

Giao tiếp

Lập kế hoạchPhân tích rủi ro Xác định

thành phần ứng viên

Giao tiếpkhách hàng

Tìmthành phần từ thư viện

Xây dựngbước lặp thứ ncủa hệ thống

Lấythành phần

ế ó

Đặtthành phần à th iệ

Kỹ nghệXây dựng & Xuất xưởng

Khách hàngđánh giá

nếu có

Xây dựngthành phần nếu kh có

vào thư viện

nếu kh.có

Pham Ngoc Hung, Coltech, VNU, 2009 32

Mô hình hình thức (Formal model)Mô hình hình thức (Formal model)

Còn gọi là CNHPM phòng sạch (Cleanroom SE)Tập hợp các công cụ nhằm đặc tả toán học phầnp p g pmềm máy tính từ khâu định nghĩa, phát triển đếnkiểm chứngGiúp kỹ sư phần mềm phát hiện và sửa các lỗi khóThường dùng trong phát triển SW cần độ an toàn rấtg g g p ộcao (y tế, hàng không, . . .)

Pham Ngoc Hung, Coltech, VNU, 2009 33

Mô hình hình thức: Điểm yếu?Mô hình hình thức: Điểm yếu?

Cần nhiều thời gian và công sức để phát triểnCần nhiều thời gian và công sức để phát triểnPhí đào tạo cao vì ít người có nền căn bản choáp dụng mô hình hình thứcáp dụng mô hình hình thứcKhó sử dụng rộng rãi vì cần kiến thức toán vàkỹ ă ủ khá h hàkỹ năng của khách hàng

Pham Ngoc Hung, Coltech, VNU, 2009 34

OutlineOutlineSoftware life-cycle

ể ầ ềQui trình phát triển Phần mềmCác mô hình phát triển

Mô hình tuyến tínhMô hình chế thửMô hình phát triển ứng dụng nhanhCác mô hình tiến hóaMô hình phát triển đồng thờiMô hình hướng thành phầnMô hình hướng thành phần

Pham Ngoc Hung, Coltech, VNU, 2009 35

Thảo luậnThảo luận

Chọn mô hình nào cho phát triển PM?Chọn mô hình nào cho phát triển PM?

Pham Ngoc Hung, Coltech, VNU, 2009 36

Thực trạng của ngành Công nghiệp PMThực trạng của ngành Công nghiệp PM

Hầu hết các tổ chức/cty PM đều tách biệtHầu hết các tổ chức/cty PM đều tách biệthoàn toàn pha phát triển và pha bảo trì

-> HT (sản phầm PM) khó bảo trì HT (sản phầm PM) khó bảo trì-> Khó sử dụng lại các thành phầnQuản lý dự án vs quản lý sản phẩmQuản lý dự án vs. quản lý sản phẩmMở rộng mục tiêu của việc quản lý để baoquát được một họ các sản phẩm hơn là quảnquát được một họ các sản phẩm hơn là quảnlý từng sản phẩm riêng biệt

Pham Ngoc Hung, Coltech, VNU, 2009 37

Pham Ngoc Hung, Coltech, VNU, 2009 38

Pham Ngoc Hung, Coltech, VNU, 2009 39