Mục tiêuvà khi nào thì chúng được sử dụng nghệ xác định yêu cầu, phát triển phần mềm, kiểm thử và chỉnh sửa, nâng cấp động qui trình phần mềm... Các vấn đề của mô hình thác nước● Sự phân
Trang 1Chương 2 Các quy trình phần mềm
Trang 2Mục tiêu
và khi nào thì chúng được sử dụng
nghệ xác định yêu cầu, phát triển phần mềm, kiểm thử và chỉnh sửa, nâng cấp
động qui trình phần mềm
Trang 3● Một mô hình qui trình phần mềm là một biểu diễn trừu
tượng của một qui trình Nó trình bày mô tả của một qui trình bằng một công cụ đồ hoạ nào đó
Trang 4Các mô hình qui trình phần mềm tổng quát
● Mô hình thác nước
và phát triển.
● Phát triển tiến hoá
Trang 5Mô hình thác nước
Requirements definition
System and software design
Implementa tion and unit testing
Integration and system testing
Operation and
Trang 6Các pha của mô hình thác nước
không được phép quay lui Pha trước phải hoàn thành thì mới được chuyển sang pha sau.
Trang 7Các vấn đề của mô hình thác nước
● Sự phân hoạch không mềm dẻo dự án thành các giai
đoạn phân biệt sẽ khó đáp ứng được những thay đổi
về yêu cầu của người sử dụng
● Mô hình này chỉ thích hợp khi các yêu cầu đã được
hiểu rõ và những thay đổi chỉ hạn chế trong quá trình thiết kế
● Rất ít những hệ thống tác nghiệp có các yêu cầu ổn
định
● Mô hình thác nước hầu như chỉ sử dụng cho những
dự án công nghệ hệ thống lớn được phát triển ở một vài địa điểm
Trang 8Phát triển tiến hoá
• Mục đích là để làm việc với các khách hàng và để
tạo ra một hệ thống cuối cùng từ một đặc tả sơ bộ ban đầu Nên bắt đầu với các yêu cầu đã được hiểu rõ và thêm vào các đặc trưng mới do người
sử dụng đề nghị
• Mục đích là để hiểu các yêu cầu hệ thống Nên
bắt đầu từ những yêu cầu còn chưa được xác định rõ để hình thành một cách rõ nét cái gì thực
sự là cần thiết
Trang 9Phát triển tiến hoá
Con current activities
Ou tlin e description
Trang 10Phát triển tiến hoá
• Thiếu tầm nhìn về qui trình;
• Các hệ thống thường được cấu trúc kém;
• Cần phải có những kỹ năng đặc biệt (ví dụ như
các ngôn ngữ để làm bản mẫu nhanh)
• Cho các hệ thống tương tác cỡ nhỏ và vừa;
• Cho các bộ phận của các hệ thống lớn (ví dụ như
giao diện người sử dụng);
• Cho các hệ thống có vòng đời ngắn.
Trang 11● Cách tiếp cận này đang được sử dụng nhiều lên khi
các chuẩn về bộ phận hợp thành được đưa vào áp dụng
Trang 12Phát triển bằng cách sử dụng lại
Requirem ents
specifi cation
Com ponent analysis
Developm ent
an d integ ration
System design with reu se
Requirem ents
m odifi cation
System validation
Trang 13Phát triển lặp
phát sinh trong suốt quá trình của một dự án
Vì vậy khi một yêu cầu phát sinh trong một giai đoạn nào đó thì cần phải làm lại giai đoạn trước đó.
cho mọi mô hình qui trình tổng quát.
• Chuyển giao tăng dần;
• Phát triển xoáy ốc.
Trang 14Chuyển giao tăng dần
● Không chuyển giao hệ thống một lần mà tách việc
phát triển thành nhiều phần và chuyển giao thành
nhiều giai đoạn
● Các yêu cầu của người sử dụng được phân cấp ưu
tiên và những yêu cầu có thứ tự ưu tiên cao hơn sẽ
được đáp ứng trước
● Một khi việc phát triển theo kiểu tăng dần được bắt
đầu, các yêu cầu sẽ được đóng băng lại và sẽ được
làm tan băng dần dần trong quá trình phát triển
Trang 15In tegrate increm ent
Valida te system
Trang 16Các ưu điểm của phát triển tăng dần
đoạn phát triển chức năng của hệ thống.
thử giúp cho việc xác định các yêu cầu ở giai đoạn sau.
thử thách nhiều hơn.
Trang 17Phát triển xoắn ốc
● Qui trình được biểu diễn như một đường xoắn ốc khác
hẳn với kiểu một dãy các hoạt động có thể quay lui
● Mỗi vòng lặp trong đường xớan ốc biểu diễn một giai
đoạn trong qui trình
● Không có các pha cố định như đặc tả hoặc thiết kế -
các vòng lặp trong đường xoắn được lựa chọn tuỳ thuộc vào yêu cầu nào cần phải thực hiện
● Các rủi ro có thể được nhận rõ và được giải quyết
trong suốt qui trình
Trang 18Mô hình xoắn ốc của qui trình phần mềm
Risk analysis Risk
analysis Risk
analysis
Risk analysis Proto-
type 1 Prototype 2
Prototype 3 Opera-tional
protoype
Concept of Operation
Simulations, models, benchmarks
S/W requirements Requirement
validation Design
Product design Detailed
design Code Unit test Integration
Development plan
Requirements plan Life-cycle plan REVIEW
Trang 19Các mảng của mô hình xoắn ốc
● Đặt mục tiêu
● Đánh giá rủi ro và giảm nhẹ
hiện để giảm nhẹ các rủi ro chính.
● Phát triển và phê duyệt
số các mô hình tổng quát.
● Lập kế hoạch
ốc được lập kế hoạch.
Trang 20Các hoạt động trong qui trình
Trang 21Đặc tả phần mềm
thiết và những ràng buộc về hoạt động của hệ thống và phát triển.
• Nghiên cứu khả thi;
• Phát hiện và phân tích yêu cầu;
• Đặc tả yêu cầu;
• Phê duyệt yêu cầu.
Trang 22Qui trình công nghệ xác định yêu cầu
Feasibility
study
Requ irem en ts elicitation and
an alysis
Requ irem en ts specifi cation
Requ irem ents validation
Requ irem ents
Trang 23chặt chẽ với nhau và có thể được làm xen kẽ.
Trang 24Các hoạt động qui trình thiết kế
Trang 25Qui trình thiết kế phần mềm
Architectur al
design
Abstract specifica tion
Inter face design
Com ponent design
Data structur e design
Algorithm design
System
architectur e
Software specifica tion
Inter face specifica tion
Com ponent specifi ca tion
Data structur e specifi ca tion
Algorithm specifi ca tion
Requir em ents
specifi ca tion
Design acti vities
Design pr oducts
Trang 26Các phương pháp có cấu trúc
thiết kế phần mềm.
tài liệu gồm một loạt các mô hình đồ hoạ
• Mô hình đối tượng;
Trang 27Lập trình và gỡ rối
trình và loại bỏ lỗi từ chương trình đó.
trình lập trình chung.
phát hiệ lỗi trong chương trình và loại bỏ những lỗi này trong quá trình gỡ rối.
Trang 28Qui trình gỡ rối
Locate
error
Design error repair Repairerror programRe- test
Trang 29Phê duyệt phần mềm
● Kiểm tra và phê duyệt nhằm mục đích chỉ ra rằng một
hệ thống phù hợp với đặc tả của nó và đáp ứng các yêu cầu của người sử dụng hệ thống
● Bao gồm cả việc kiểm tra và xem xét các qui trình và
kiểm thử hệ thống
● Kiểm thử hệ thống bao gồm việc chạỵ thử hệ thống
với những số liệu thử nghiệm được rút ra từ đặc tả của những số liệu thực phải được hệ thống xử lý
Trang 30Qui trình kiểm thử
Component
testing Systemtesting Acceptancetesting
Trang 31Các giai đoạn kiểm thử
● Kiểm thử bộ phận hợp thành hoặc đơn vị
hoặc các nhóm liên kết những thực thể này.
● Kiểm thử hệ thống
thuộc tính trội là đặc biệt quan trọng.
● Kiểm thử chấp nhận
hệ thống có đáp ứng được các nhu cầu của khách hàng không.
Trang 32System design
Detailed design
Module and unit code and test
Sub-system integration test plan
System integration test plan
Acceptance test plan
Service Acceptance
test
System integration test
Sub-system integration test
Trang 33Cải tiến phần mềm
trường nghiệp vụ thì phần mềm hỗ trợ nghiệp vụ này cũng phải tiến hoá và thay đổi theo.
Trang 34Mở rộng hệ thống
Assess existing system s
N ew system Existin g
system s
Trang 35Luồng công việc tĩnh
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.
Test 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
Trang 36CNPM dựa trên máy tính
● Computer-aided software engineering (CASE) là một
phần mềm hỗ trợ các qui trình phát triển và cải tiến phần mềm
● Tự động hoá các hoạt động
thống;
thiết kế các giao diện với người sử dụng;
của một chương trình.
Trang 37Công nghệ CASE
trình phát triển phần mềm Tuy nhiên vẫn chưa có được những tiến bộ to lớn có thể dự đoán trước vì
thể tự động hoá;
án lớn cần phải có nhiều thời gian cho những hoạt động chung trong nhóm Công nghệ CASE chưa thực
sự hỗ trợ được cho những hoạt động này.
Trang 38Phân loại các phần mềm CASE
CASE khác nhau và sự hỗ trợ của chúng cho các hoạt động qui trình.
Trang 39Phân loại công cụ theo chức năng
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Trang 40Phân loại công cụ dựa trên hoạt động
Re-en gineerin g tools Testing tools
Debu ggin g tools Program an alysis tools Language-processin g tools
M eth od suppor t tools Prototyping tools Con fi gu ration
m an agem ent tools
Ch an ge m anagem ent tools Docu m en tation tools Editing tools
Planning tools
Trang 41Tóm lược
quá trình sản xuất và mở rộng một hệ thống phần mềm
tượng của những qui trình phần mềm nói trên.
duyệt và cải tiến (mở rộng).
trình phần mềm Các mô hình này bao gồm mô hình thác nước, mô hình phát triển tiến hoá và mô hình CNPM dựa trên các bộ phận hợp thành.
một vòng lặp các hạot động.
Trang 42Tóm lược
phần mềm.
thành một chương trình có thể chạy được.
với đặc tả của nó không và có đáp ứng được các nhu cầu của người sử dụng không.
được đưa vào sử dụng.