Có 42% - hienlth.weebly.comhienlth.weebly.com/uploads/1/6/9/3/16936172/ooad_c02.pdfRất nhiều...
Transcript of Có 42% - hienlth.weebly.comhienlth.weebly.com/uploads/1/6/9/3/16936172/ooad_c02.pdfRất nhiều...
Các dự án phần mềm:
Có 42% - 53% dự án bị hủy bỏ trước khi hoàn tất
Chỉ khoảng 30% dự án được đánh giá thành công
Rất nhiều trong số còn lại hoặc hoàn thành trễ hoặc
chi phí tăng cao
Có nhiều dự án thất bại thuộc về các tổ chức lớn.
Windows 1.0 và Windows 95 của tập đoàn Microsoft là 2
ví dụ về dự án trễ tiến độ
Chưa chắc càng nhiều người tham gia dự án phần mềm
thì tốc độ dự án sẽ càng tăng nhanh
3
Một công ty về bất động sản dự định nhờ 1 công ty phần mềm xây
dựng hệ thống quản lý dữ liệu đất đai. Trong bản kế hoạch dự án, công
ty phần mềm ước tính chi phí vào khoảng $800,000 và kéo dài trong
khoảng 8 tháng.
Dự án kéo dài đến 2 năm vì thời gian phân tích yêu cầu mất
khoảng 9 tháng thay vì theo dự định là 1.5 tháng. Công ty bất động sản
mở thêm 10 chi nhánh. Ba tuần sau đó, ban quản trị công ty phần mềm
quyết định hủy bỏ dự án. Tổng chi phí dự án là $2,000,000
Câu hỏi thảo luận nhóm (nhóm 4 người):
Tại sao dự án lại thất bại?
Tại sao công ty phần mềm chọn dự án nhưng rồi lại quyết định hủy
bỏ?
Điều gì cần phải làm để ngăn chặn thảm họa này?
4
Từ phía người dùng: “Vapourware”: phần mềm không tồn tại, chỉ tồn tại trên giấy tờ
“Dreadful to use”: phần mềm khó sử dụng bao gồm: giao diện không
phù hợp, những thông báo khó hiểu, không có hướng dẫn, thời gian
đáp ứng chậm, không đáng tin cậy
“Useless”: phần mềm không đáp ứng được nhu cầu sử dụng của
người dùng
Từ phía khách hàng: “Cost outweigh benefit”: chi phí vượt quá lợi nhuận
“Late delivery & everything’s changed”: hoàn tất dự án muộn
“Messy installation”: quá trình cài đặt phức tạp
Từ phía nhà phát triển: “Requirements always change”
“Not enough time & money”
“No experience in application domain”
5
6
Type of
failureReason for failure Comment
Quality
problems
• The wrong
problem
• Neglect of context
• Incorrect analysis
• The wrong reason
• System conflicts with business
stragegy
• Organization culture may be
ignored
• Team is poorly skilled
• Technology pull or political push
Productivity
problems
• Requirement drift
• External events
• Not feasible in
implementation
• Poor project
control
• Users change their minds
• New legislation
• May not be known until the project
has started
• Inexperienced project manager
Building an information system is similar to
building a house
Start with a basic idea (Planning)
Transform idea into a simple drawing that is
shown to the customer and refined (Analysis)
Design a set of blueprints that presents much
more detail information (Design)
Build the house following the blueprints
(Implementation)
7
Đây là công việc nền tảng nhằm trả lời câu hỏi tại sao phải
xây dựng hệ thống và sẽ xây dựng hệ thống như thế nào
Gồm 2 giai đoạn:
Project Initation (khởi động dự án): business value
business need system request (official) feasibility
analysis xét duyệt bởi IS approval committee
Project Management (lập kế hoạch dự án): Ban quản lý dự
án (project manager) sẽ tạo project plan bao gồm:
▪ kế hoạch làm việc (workplan)
▪ nhân sự
▪ 1 số công nghệ và yêu cầu cần thiết
8
Đây là công việc nhằm trả lời câu hỏi ai sẽ sử dụng hệ
thống, hệ thống sẽ làm gì, hệ thống sẽ sử dụng ở đâu
và khi nào. Gồm 3 bước:
Xây dựng chiến lược phân tích
Thu thập yêu cầu (requirement gathering) business
analysis model
Tạo system proposal (bao gồm system concept,
analysis model) đưa cho hội đồng (key maker) xét
duyệt
9
Đây là công việc nhằm trả lời câu hỏi hệ thống sẽ thực thi như thế nào ở mức độ phần cứng, phần mềm, kiến trúc mạng, giao diện màn hình, các form và report, CSDL, … Gồm có 5 bước:
Xây dựng chiến lược thiết kế
Architecture design
Interface design
Database and file specification
Program design Kết thúc công việc này là tạo ra bản system specification
phục vụ cho việc hiện thực hệ thống Quá trình feasibility analysis và project plan sẽ được xem lại
và kiểm tra
10
Đây là giai đoạn hệ thống được xây dựng và hiện thực.
Gồm 3 bước:
System contruction: build & test
Installation
Support plan
11
12
(Phương pháp phát triển phần mềm)
A methodology is a formalized approach to
implementing the SDLC (i.e., it is a list of steps
and deliverables)
Quá trình diễn ra tuần tự từ công việc này đến công việc kia
Ưu điểm: các quá trình diễn ra đòi hỏi các quá trình trước nó
phải hoàn thành 1 cách kỹ lưỡng
13
Nhằm thu hẹp thời gian thiết kế và hiện thực hệ thống sau khi
kết thúc quá trình phân tích bằng cách thực hiện công việc
thiết kế tổng quan rồi phân thành những dự án nhỏ và cuối
cùng là tổng hợp lại
14
Chia nhỏ thành nhiều phiên bản khác nhau. Mỗi phiên bản
được phát triển tuần tự.
15
• Phiên bản đầu sẽ
chứa những yêu
cầu cần thiết nhất.
• Các phiên bản tiếp
theo sẽ hoàn
thành các yêu cầu
còn lại
Công việc phân tích, thiết kế, hiện thực được thực hiện gần
như đồng thời để tạo ra System Prototype (chương trình mẫu)
dùng để demo cho người dùng.
Quá trình trên sẽ lặp đi lặp lại cho đến khi nào người dùng
đồng ý System Prototype. Nhóm phát triển sẽ hoàn thiện hệ
thống dựa trên System Prototype đồng ý đó.
16
Tương tự như phương pháp Prototyping
Tuy nhiên, nhóm phát triển sẽ xây dựng Design Prototype dùng để
demo những vấn đề cần làm sáng tỏ với người dùng. Khi các vấn đề
đã được làm rõ, nhóm phát triển sẽ sang công việc thiết kế và hiện
thực hệ thống thực
17
Nhóm phát triển luôn giao tiếp, tiếp nhận phản hồi từ phía
khách hàng, người dùng
Quá trình phân tích, thiết kế và hiện thực gần như diễn ra
đồng thời
18
Mỗi nhóm thảo luận và đánh dấu chéo (X) vào
những phương pháp mà nhóm cho là phù hợp
với trường hợp cụ thể đó
19
Structured RAD Agile
Waterfall Parallel Phased PrototypingThrowaway
PrototypingXP
User requirement
không rõ
Sử dụng công nghệ
mới
Độ phức tạp của hệ
thống lớn
Hệ thống đòi hỏi độ
tin cậy cao
Cần phát triển nhanh
Cần xác định thời
gian hoàn thành
20
StructuredRAD
(Rapid App Dev)Agile
Waterfall Parallel Phased PrototypingThrowaway
PrototypingXP
User requirement
không rõPoor Poor Good Excellent Excellent Excellent
Sử dụng công
nghệ mớiPoor Poor Good Poor Excellent Poor/Good
Độ phức tạp của
hệ thống lớnGood Good Good Poor Excellent Poor
Hệ thống đòi hỏi
độ tin cậy caoGood Good Good Poor Excellent Poor/Good
Cần phát triển
nhanhPoor Good Excellent Excellent Good Excellent
Cần xác định thời
gian hoàn thànhPoor Poor Excellent Excellent Good Good
(bảng chi mang tính chất tham khảo)