CHAPTER 2 SOFTWARE PROCESSES TRADITIONAL METHODS 1
Trang 1CHAPTER 2: SOFTWARE
PROCESSES TRADITIONAL
METHODS
Information Technology Trends
Current/Future Trends:
Everything connected
Rapid requirements change
COTS capabilities determine
Rapid development
Outsourced jobs
Software Development Approaches
(Phương pháp tiếp cận)
Plan - driven: According to plan, document-based, heavy process (cần nhiều
công sức, yêu cầu cao)
Trang 2Tính chất: chi tiết, đòi hỏi việc tính toán kỹ lưỡng trong thời gian dài, nhiều
yêu cầu và công việc hơn Phải tuân thủ theo kế hoạch đã đề ra
Agile: tacit knowledge (kiến thức ngầm - không cần nói ra nhưng vẫn hiểu
nhau), light process
Tính chất: Nhanh, không đòi hỏi nhiều công việc hay công đoạn Linh động
trong nhiều tình huống khác nhau
The Agile Manifesto (Tuyên ngôn)
“We are uncovering better ways of developing software by doing
it and helping others do it Through this work we have come to
value.”
Individuals and interactions:
Working software:
Customer collaboration: Tương tác với khách hàng
Responding to change: Đáp ứng các thay đổi theo kế hoạch
Popular Plan-driven and Agile Methods
There are many diffenrent model in each method, here some typical examples:
Plan-driven methods:
Waterfall
Spiral
Rational Unified Process (RUP)
Personal Software Process
CMMI Aglie methods:
Extreme Programming
Scrum
Trang 3Feature Driven Development (FDD)
Waterfall Model - 1
Yêu cầu phải hoàn thành xong từng giai đoạn cụ thể trước khi qua một giai đoạn
mới Vào thập niên 1990 - 2000 mô hình này thống trị trong ngành phát triển phần
mềm
Một mô hình thác nước có những bước như sau:
Requirement definition:
Analysis and Design:
Implementation and Unit Testing: Write code and testing program of each unit,
giving test cases ⇒ Work product (Artifact)
Intergration and System Testing: Testing software in different platform
Operation and Maintenance: User manual document, training document
⇒ Phải hoàn thành từng bước vì nếu không sẽ phải quay lại hoặc làm sau, điều đó
sẽ gây lãng phí thời gian và ảnh hưởng đến những bước kế tiếp
Thu 19/05/2022
One typical Software development team have:
Trang 4Project manager (PM)
Technical Architect (TA)
Bussiness Analyst (BA)
Designer
Developer
Tester (Quality Assurance - QA Engineer)
Maintainer
Tech writer
Process iteration
Là việc code lại một chức năng hay chương trình khi mà yêu cầu khác hàng thay
đổi
Một project có thể được chia ra thành nhiều lần lặp lại
Việc lặp lại có thể được áp dụng với bất kì quy trình chung nào
Incremental development
Trang 5Việc phát triển và phân phối được chia ra thành nhiều bước Mỗi lần tăng lên sẽ
cung cấp một phần của các chức năng cần thiết và cho phép khách hàng, người
dùng có thể kiểm tra các chức năng phần mềm ngay từ những lần phát triển sớm
nhất
Các yêu cầu đều được ưu tiên Các yêu cầu có độ ưu tiên cao nhất được phát triển
trong các lần gia tăng sớm
Ưu điểm
Các chức năng của hệ thống đã được hoàn thành trước đó
Các bước increment có thể được xem là một bản thử nghiệm cho khách hàng
chỉnh sửa kịp thời theo các yêu cầu đề ra
Các yêu cầu có độ ưu tiên cao nhận được sự kiểm tra kỹ lưỡng hơn
Giảm thiểu rủi ro đổ bể của cả dự án
Spiral Model - Mô hình xoắn ốc
Các hoạt động của dự án được tổ chức theo kiểu xoắn ốc thay vì kiểu tuần tự
Mỗi một xoắn ốc biểu diễn một giai đoạn (phase) của quá trình
Trang 6Mô hình này có 4 ngăn (sector):
Objective setting: Đặt ra các mục tiêu
Risk assessment and reduction: Nghiên cứu thị trường (thị hiếu người dùng,
công nghệ hiện tại đang áp dụng,…)
Development and validation: Cài đặt mã nguồn và kiểm thử
Planning: Đánh giá lại mục tiêu và lên kế hoạch cho mục tiêu kế tiếp
The Rational Unified Process (RUP)
Các hoạt động được nhóm thành các workflow
RUP Phases
Mô hình này chủ yếu gồm các pha chính như sau:
Mô hình này phản ánh thực tế quá trình làm việc: 1 Xây dựng mục tiêu, 2 Đánh giá mục tiêu (xem
xét khả năng của mình), 3 Thực hiện mục tiêu, 4 Đánh giá lại mục tiêu để thực hiện các mục tiêu
tiếp theo.
Trang 7Inception (khởi tạo): Đưa ra ý tưởng về dự án (kinh phí, nhiệm vụ của dự án,
phần mềm phục vụ cho đối tượng nào,…)
Elaboration (soạn thảo kỹ lưỡng): Phát triển các hiểu biết về vấn đề và thiết kế
hệ thống
Construction (thi công): Thiết kế hệ thống, lập trình và kiểm thử
Transition: Vận hành hệ thống trong môi trường điều hành (Operating
Environment)
RUP Iteration
Each phase is divided into one or more iterations (Mỗi pha được chia ra 1 hoặc
nhiều hơn những lần lặp lại.)
Ưu điểm
Phát triển phần mềm lặp đi lặp lại
Quản lý tốt các yêu cầu
Mô hình phần mềm trực quan
Đảm bảo chất lượng phần mềm
Trang 8So sánh mô hình Waterfall và RUP
🔰 Tham khảo:
https://vi.sawakinome.com/articles/technology/difference-between-waterfall-methodology-and-rup-2.html#:~:text=Phương pháp thác nước vs
RUP&text=Phương pháp phát triển phần mềm thác nước là một,phát triển phần
mềm lặp
Hoàn thành một cách tuần tự, mỗi giai đoạn
được hoàn thành đầy đủ theo một thứ tự cố
định.
Mức độ linh hoạt cao phù hợp với những
dự án có mức độ thay đổi không biết trước.
Toàn bộ dự án có duy nhất waterfall model Mỗi pha có nhiều waterfall model.
Thu 26/05/2022
CMMI - Capability Maturity Model Integration
CMMI là một chứng chỉ, tiêu chuẩn cho các công ty phần mềm để đánh giá quá trình
làm phần mềm của công ty đó (Giống với tiểu chuẩn ISO trong công nghiệp và
thương mại.)
Được phát triển và giới thiệu bởi Viện Công nghệ Phần mềm của Đại học Carnegie
Mellon (CMU)
Cho phép hỗ trợ các xu hướng phát triển phần mềm của hiện tại và trong tương lai
Để đạt được chứng chỉ đó thì công ty cần phải đạt được các yêu cầu đề ra (VD: phải
có ít nhất 3 dự án ứng dụng một mô hình phát triển phần mềm và đã thành công,
nhân viên của công ty đó thực sự đã làm ra những phần mềm trong các dự án đó,
…)
Đây là một tiêu chuẩn đặt nặng về quá trình làm phần mềm
Các thành phần của mô hình CMMI
Divided processes into many process areas
Each areas have goals
Practices (Thực hành) are what we do in SE → Produce Work Products (Sản phẩm
công việc)
Trang 9CMMI Process Area - Yêu cầu trong các level
Level 1: Performed (Any company can produce software.)
Để đạt được các level công ty phải đáp ứng các yêu cầu của từng quy trình.
Trang 10Level 2: Managed (Has at least 3 teams to use)
Level 3: Defined
Level 4: Quantitatively Managed
Level 5: Optimizing (Maximum)
Mỗi công ty có những chính sách, quy trình về các lĩnh vực Ít nhất có 3 dự án áp
dụng quy trình này và đã thành công Kiểm tra quy trình có hợp lí hay không Cuối
cùng là đánh giá sản phẩm Quan trọng là thời gian và chi phí
Giúp sản xuất phần mềm chất lượng, đúng tiến độ, giảm chi phí