tài liệu test
TRANSCRIPT
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