Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Vòng đời và các mô hình phát triển phần mềm

utline

„Software life-cycle

QuitrìnhpháttriểnPhầnmềm

„Các mô hình phát triển

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

…Mô hình chếthử

…Mô hình phát triểnứng dụng nhanh

…Các mô hình tiến hóa

…Mô hình phát triểnđồng thời

…Môhìnhhướngthành phần

pdf39 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2068 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Vòng đời và các mô hình phát triển phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 và CSDL
„ Phân tích yêu cầu (Requirements analysis): hiểu lĩnh vực 
thông tin, chức năng, hành vi, tính năng và giao diện của
phần mềm sẽ phát triển. Cần phải tạo tư liệu và bàn thảo
với khách hàng, người dùng
Pham Ngoc Hung, Coltech, VNU, 2009 11
Mô hình tuyến tính
„ Thiết kế (Design): là quá trình nhiều bước với 4 thuộc
tí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ủn tr c p n m m, u n g ao n v c t t t
tục (thuật toán). Cần tư liệu hóa và là một phần quan
trọng của cấu hình phần mềm
„ Tạ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ôn
ngữ nào đó. Nếu thiết kế đã được chi tiết hóa thì lập
trình có thể chỉ thuần túy cơ học
Pham Ngoc Hung, Coltech, VNU, 2009 12
Mô hình tuyến tính
„ Kiểm thử (Testing): Kiểm tra các chương trình và
môđun cả về lôgic bên trong và chức năng bên
ngoà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 n
„ Hỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng
hữ h đổi â ấ hầ ề đã há iể dn ng t ay , n ng c p p n m m p t tr n o
sự 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ính
„ Thực tế các dự án ít khi tuân theo dòng tuần tự của
mô hình, mà thường có lặp lại (như mô hình của
Boehm)
„ Khách hàng ít khi tuyên bố rõ ràng khi nào xong hết
các yêu cầu
ẫ„ Khách hàng phải có lòng kiên nh n chờ đợi thời gian
nhấ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 m m ọa
Pham Ngoc Hung, Coltech, VNU, 2009 14
Mô hình chế thử (Prototyping model)
Nghe Khách 
trình bày
Tạo/sửa
bản mẫu
Khách kiểm tra
bản mẫu
Pham Ngoc Hung, Coltech, VNU, 2009 15
Mô hình chế thử: Khi nào? 
„ Khi mới rõ mục đích chung chung của phần mềm, 
chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưa
rõ yêu cầu đầu ra
„ Dùng như “Hệ sơ khai” để thu thập yêu cầu người
dù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ợ y u c u c a ngư ng
Pham Ngoc Hung, Coltech, VNU, 2009 16
Mô hình phát triển ứng dụng nhanh (Rapid
Application Development: RAD)
„ Là quy trình phát triển phần mềm gia tăng, tăng dần từng
bước (Incrimental software development) với mỗi chu
ì h há iể ấ ắ (60 90 à )tr n p t tr n r t ng n - ng y
„ Xây dựng dựa trên hướng thành phần (Component-based
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 theo
các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xử
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ì h
Business
Modeling
Team #3
M n
phát triển gBusinessModelin
Data
g
Data
Modelin
g
Process
Modelin
Application
Team #2
ứng dụng
nhanh
Business
Modeling
gModelin
g
Process
Modelin
A li ti
Generation
Testing &
Turnover
Team #1
Data
Modeling
Process
pp ca on
Generation
Testing &
Turnover
Modeling
Application
Generation
Testing &
Turnover
60 - 90 days
Pham Ngoc Hung, Coltech, VNU, 2009 18
RAD: Business modeling 
Luồng thông tin được mô hình hóa để trả lời các
câu hỏi: 
…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ó?
…Thông tin đi đến đâu?
…Ai xử lý chúng?
Pham Ngoc Hung, Coltech, VNU, 2009 19
RAD D d P d li: ata an rocess mo e ng
„ 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ữa
các đối tượng
d li đối d li đ„ Process mo e ng: Các tượng ữ ệu ược
chuyển sang luồng thông tin thực hiện chức năng
nghiệ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 Testing . 
„ Application Generation: Dùng các kỹ thuật thế hệ 4 
để tạo phần mềm từ các thành phần có sẵn hoặc tạo
ra 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 m
„ Testing and Turnover: Kiểm thử các thành phần mới
à kiể hứ i i diệ ( á hà h hầ ũ đãv m c ng mọ g ao n c c t n p n c
được kiểm thử và dùng lại)
Pham Ngoc Hung, Coltech, VNU, 2009 21
RAD: Hạn chế? 
„ Cần nguồn nhân lực dồi dào để tạo các nhóm cho các
chức năng chính
„ Yê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ễp n m m o n c n , t u tr c n m c a m t n
làm dự án đổ vỡ
„ RAD không phải tốt cho mọi ứng dụng nhất là với ứng, 
dụng không thể môđun hóa hoặc đòi hỏi tính năng cao
„ Mạ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 theo
thờ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ăng
„ Các mô hình tiến hóa (evolutionary models) có tính lặp
lạ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 o n n ơn, p c ạp ơn
„ Các mô hình: incremental, spiral, WINWIN spiral, 
concurrent development model
Pham Ngoc Hung, Coltech, VNU, 2009 23
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ại
của chế bản mẫu
„ Sản phẩm lõi với những yêu cầu cơ bản nhất
của hệ thống được phát triển
„ Cá hứ ă ới hữ ê ầ khá được c c n ng v n ng y u c u c c
phá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ăng
Gia tăng 1
Phân tích Thiết kế Lập trình Kiểm thử
System/info.
E i i
Xuất xưởng 1
ng neer ng
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
a en ar me
Pham Ngoc Hung, Coltech, VNU, 2009 25
Mô hình xoắn ốc (spiral)
Giao tiếp
Lập kế hoạch Phân tích rủi ro
khá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
Pham Ngoc Hung, Coltech, VNU, 2009 26
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ách
hàng để tìm hiểu yêu cầu, ý kiến
„ Lập kế hoạch: Xác lập tài nguyên, thời hạn và những
thông tin khác
„ Phâ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)
„ Xây dựng và xuất xưởng: xây dựng, kiểm thử, cài
đặt và cung cấp hỗ trợ người dùng (tư liệu, huấn
luyện, . . .)
„ Đánh giá của khách hàng: Nhận các phản hồi của
người sử dụng về biểu diễn phần mềm trong giai
đ kỹ hệ à ài đặoạn ng v c t
Pham Ngoc Hung, Coltech, VNU, 2009 28
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
„ Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa
„ Khó thuyết phục khách hàng là phương pháp tiến
hóa xoắn ốc có thể kiểm soát được
„ Chưa được dùng rộng rãi như các mô hình tuyến
tính hoặc chế thử
Pham Ngoc Hung, Coltech, VNU, 2009 29
Mô hình phát triển đồng thời
(The concurrent development model)
„ Xá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
trạng thái trong từng hoạt động
„ Dù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ự án
„ Thường dùng trong phát triển các ứng dụng khách/chủ
( li t/ li ti ): t d tc en server app ca ons sys em an compone s are
developed 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 t„ n v n ng c ng ng ư ng ượng ec -
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ệu
„ Có nhiều tương đồng với mô hình xoắn ốc
„ Vớ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.9
„ Vớ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ần ư ng t n p n
Giao tiếp
Lập kế hoạch
Phân tích rủi ro Xác định
thành phần 
ứng viên
khách hàng
Tìm
thành phần 
từ thư viện
Xây dựng
bước lặp thứ n
của hệ thống
Lấy
thành phần 
ế ó
Đặt
thà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ựng
thành phần 
nếu kh có
v o ư v n
 .
Pham Ngoc Hung, Coltech, VNU, 2009 32
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ần
mềm máy tính từ khâu định nghĩa, phát triển đến
kiểm chứng
„ Giú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ất
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? 
„ Cần nhiều thời gian và công sức để phát triển
„ Phí đà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
„ Khó sử dụng rộng rãi vì cần kiến thức toán và
kỹ ă ủ khá h hàn ng c a c ng
Pham Ngoc Hung, Coltech, VNU, 2009 34
Outline
„ Software life-cycle
ể ầ ề„ Qui trình phát tri n Ph n m m
„ Các mô hình phát triển
… Mô hình tuyến tính
… Mô hình chế thử
… Mô hình phát triển ứng dụng nhanh
… Các mô hình tiến hóa
… Mô hình phát triển đồng thời
…Mô hình hướng thành phần
Pham Ngoc Hung, Coltech, VNU, 2009 35
Thảo luận 
„ 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 PM 
„ Hầu hết các tổ chức/cty PM đều tách biệt 
hoàn toàn pha phát triển và pha bảo trì
… -> HT (sản phầm PM) khó bảo trì 
… -> Khó sử dụng lại các thành phần
… Quản lý dự án vs quản lý sản phẩm. 
… Mở rộng mục tiêu của việc quản lý để bao
quát được một họ các sản phẩm hơn là quản
lý 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

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Vòng đời và các mô hình phát triển phần mềm.pdf