Các kinh nghiệm quí của công nghệ phần mềm

Khám phá các triệu chứng và cácnguyên nhân c ốt lõi của các

vấn đ ề trong phát triển phần mềm

w Trình bày 6 kinhnghiệm tốt của Rational trong quá trình phát

triển phần mềm

w Xem xét cách sử dụng các kinh nghiệm này để giảI quyết các

vấn đề trong phát triển phần mềm

pdf57 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1857 | Lượt tải: 3download
Tóm tắt nội dung Các kinh nghiệm quí của công nghệ 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
Collaboration
Diagrams
Activity
Diagrams
Activity
Diagrams
State
Diagrams
State
DiagramsState
Diagrams
State
DiagramsClas
Diagrams
Clas
Diagrams
Công cụ môi trường phát triển phần mềm
39
Mô hình hóa trực quan dùng các lược đồ UML
Actor A
use-case 1
use-case 2
Actor B 
user : »ç¿ëÀÚ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repository
document : Document
gFile : GrpFile
9: sortByN ame ( )
L
1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(from Persistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
File
read( )
read() fill the 
code..
UI
MFC
RogueWave
global
DocumentApp
Persistence
Wi ndow95
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Wi ndows
NT
¹®¼-°ü¸® ¿£Áø.EXE
Wi ndows
NT
Wi ndows95
Solaris
ÀÀ¿ë¼-¹ö.EXE
Alpha
UNIX
IBM 
Mainframe
µ¥ÀÌŸº£À̽º¼- ¹ö
Wi ndows95
¹®¼-°ü¸® ¾ÖÇ Ã¸´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾ î¹× ³× Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½ ýºÅÛ ¿¬°á ¸ ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼-¹ ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹ × µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ ö, Åë½ Å ¼-¹ö
Document
FileManager
GraphicFile
File
Repository DocumentList
FileList
user
mainWnd fileMgr : 
FileMgr
repositorydocument : 
Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByN ame ( )
ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äÃ»Ç Ñ´Ù.
È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â 
¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼-
°´Ã¼¿¡ ¼ ³Á¤À» ¿äÃ»Ç Ñ´Ù.
È-¸é °´Ã¼ ´Â ÀÐ ¾îµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ ÃÄÑ È- ¸é¿¡
º¸¿©ÁØ´ Ù.
Customer
name
addr
withdraw()
fetch()
send()
receive()
>
Forward Engineering (Code Generation)
and
Reverse Engineering
Executable System
User Interface
Definition
Domain
Expert
Openning
Writing
Reading Closing
add file [ numberOffile==MAX ] / 
flag OFF
add file
close file
close file
use-case 3
Source Code edit, compile, debug, link
Use-Case Diagram Class Diagram
Collaboration Diagram
Sequence Diagram
Component 
Diagram
State Diagram
Package 
Diagram
Deployment 
DiagramClass
Công cụ môi trường phát triển phần mềm
40
Thay đổi bản thiết kế?
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
Đánh giá requirements 
analysis & design
Công cụ môi trường phát triển phần mềm
41
Cái gì thay đổi? Những thay đổi này được phép không?
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
Đánh giá requirements 
analysis & design
Công cụ môi trường phát triển phần mềm
42
Giải quyết vấn đề nhờ mô hình hóa trực quan
Các use-case và scenario 
đặc tả hành vi rõ ràng
Các mô hình nắm bắt tường 
minh các thiết kế
Các kiến trúc không đơn thể hay
cứng nhắc bị phơi bày
Các chi tiết không cần thiết 
được che dấu khi cần
Các thiết kế tường minh chỉ ra 
các mâu thuẫn dễ dàng
Chất lượng của ứng dụng đi 
kèm với bản thiết kế tốt
Các ccụ trực quan hỗ trợ cho
mô hình hóa bằng UML
Các nguyên nhân cốt lõi Lời giải
þ Thiếu y/c đ/v HT
þ Truyền tin mơ hồ
þ Kiến trúc kém bền
þ Quá phức tạp
¨ Đánh giá chủ quan
þ Các mâu thuẫn chưa 
xác định
þ Test kém
¨ Qui trình thác nước
¨ Thay đổi không thể KS
þ Thiếu ccụ tự động
Công cụ môi trường phát triển phần mềm
43
Kinh nghiệm 5: Kiểm định chất lượng phần mềm
Phát triển theo vòng lặp
Quản trị
các yêu cầu
Kiểm định
chất lượng
Kiểm soát các thay đổi trong hệ thống
Sử dụng
kiến trúc
Component
Mô hình hóa
trực quan
Công cụ môi trường phát triển phần mềm
44
Chi phí tìm kiếm và sửa chữa các vấn đề của phần mềm sẽ 
tăng hàng trăm, hàng ngàn lần sau khi phát triển
Development Deployment
Cost
Kinh nghiệm 5: Kiểm định chất lượng phần mềm (tt)
Công cụ môi trường phát triển phần mềm
45
Phát triển theo vòng lặp cho phép test liên tục
T I M E
Test Test Test
T
C
D
R
Iteration 1 Iteration 2 Iteration 3 
T
C
D
R
T
C
D
R
Test 
Life 
Cycle Evaluate
Plan
Design
Implement
Execute
Evaluate
Plan
Design
Implement
Execute
Evaluate
Plan
Design
Implement
Execute
Công cụ môi trường phát triển phần mềm
46
Test trong một môi trường phát triển theo vòng lặp
R
eq
ui
re
m
en
ts
R
eq
ui
re
m
en
ts
Test Suite 1
Iteration 2 Iteration 3 Iteration 4
Test Suite 2 Test Suite 3 Test Suite 4
Iteration 1
Au
to
m
at
ed
 T
es
ts
Au
to
m
at
ed
 T
es
ts
Công cụ môi trường phát triển phần mềm
47
Tự động hóa giảm thời gian và công sức test
One Manual Test Cycle
13,000 Tests 2 Weeks 6 People
13,000 Test
6 giờ
1 người
13,000 Test
6 giờ
1 người
Một chu trình test hủ ông
13,000 lần Test 2 Tuần 6 Người
Test
tự động
Chạy ngày càng nhiều test hơn
Công cụ môi trường phát triển phần mềm
48
Các khía cạnh của chất lượng phần mềm
Chức năng
Độ tin cậy
Hiệu năng ứng 
dụng
Hiệu năng của 
hệ thống
Ứng dụng của tôi có làm những 
gì được yêu cầu?
Ứng dụng của tôi có làm mất bộ
nhớ?
Ứng dụng của tôi có hồi đáp 
hợp lệ?
Ứng dụng của tôi có hoạt động 
dưới công suất thiết kế?
Tạo cácTest case cho mỗi
scenario đã cài đặt
Các công cụ phân tích và các 
thiết bị coding
Kiểm tra hiệu năng của mỗi
use-case/scenario đã cài đặt
Kiểm tra hiệu năng của tất cả
use-case ở mức độ tin cậy và 
trường hợp xấu nhất
Kiểu Tại sao? Thế nào?
Công cụ môi trường phát triển phần mềm
49
Các vấn đề được giải quyết nhờ kiểm định chất lượng
Testing đánh giá khách quan 
về trạng thái dự án
Đánh giá khách quan triệt 
tiêu các mâu thuần sớm
Testing và kiểm định tập 
trung vào vùng high risk
Tìm thấy thiếu sót sớm và chi
phí sửa chữa thấp
Các ccụ test tự động giúp
test độ tin cậy, chức năng và
hiệu năng
Nguyên nhân cốt lõi Cách giải quyết
¨ Thiếu y/c đ/v HT
¨ Truyền tin mơ hồ
¨ Kiến trúc kém bền
¨ Quá phức tạp
þ Đánh giá chủ quan
þ Các mâu thuẫn chưa 
được xác định
þ Test kém
¨ Qui trình thác nước
¨ Thay đổi không thể KS
þ Thiếu ccụ tự động
Công cụ môi trường phát triển phần mềm
50
Kinh nghiệm 6: Kiểm soát thay đổi trong phần mềm
Phát triển theo vòng lặp
Quản trị
các yêu cầu
Kiểm soát các thay đổi trong hệ thống
Sử dụng
kiến trúc
Component
Mô hình hóa
trực quan
Kiểm định
chất lượng
Công cụ môi trường phát triển phần mềm
51
Thiếu sự kiểm soát tường minh, đầy đủ
Phát triển song song dễ biến thành hỗn độn
Kinh nghiệm 6: Kiểm soát thay đổi trong phần mềm (tt)
w Nhiều developer
w Nhiều team
w Nhiều vị trí
w Nhiều vòng lập
w Nhiều release
w Nhiều project
w Nhiều platform
Công cụ môi trường phát triển phần mềm
52
Ba khía cạnh chính của CM System
Công cụ môi trường phát triển phần mềm
53
Các khái niệm của Configuration & Change M.
w Phân rã kiến trúc thành các subsystem và gán trách nhiệm 
thực hiện các subsystem cho mỗi nhóm 
w Thiết lập vùng làm việc an toàn cho mỗi developer
§ Cho phép cô lập với các thay đổi tạo bởi vùng làm việc khác 
§ Kiểm soát tất cả software artifact - models, code, docs, …
w Thiết lập một vùng làm việc tích hợp
w Thiết lập một cơ chế khả thi kiểm soát các thay đổi
w Nắm bắt thay đổi xuất hiện nào xuất hiện trong release nào
w Đưa ra một đường ranh giới hạn chỗ hoàn tất của mỗi vòng 
lặp
Công cụ môi trường phát triển phần mềm
54
Kiểm soát thay đổi hỗ trợ tất cả Best Practices khác
w Phát triển theo qui
trình lặp
w Quản lý yêu cầu
w Dùng kiến trúc
component
w Mô hình hóa trực 
quan
w Kiểm định chất 
lượng
è Dự án chỉ tiến triển khi các thay đổi 
được kiểm soát
è Để loại bỏ sự dãn phạm vị, đánh giá
ảnh hưởng của mọi thay đổi dự kiến 
trước khi chấp nhận
è Các Component phải đáng tin cậy, i.e., 
tìm thấy phiên bản đúng đắn của tất cả
các phần hợp thành
è Để bảo đảm sự hội tụ, phải tăng 
dần kiểm soát các model khi các 
thiết kế ổn định
è Test chỉ có ý nghĩa nếu các version
các phần tử đang test được biết rõ và
các phần tử được bỏa vệ trước các 
thay đổi
Công cụ môi trường phát triển phần mềm
55
Các vần đề được giải quyết nhờ kiểm soát thay đổi
Requirements change workflow 
được xác định và lặp lại đi lặp lại
Các Change request làm cho thông
tin trao đổi rõ ràng
Vùng làm việc biệt lập giảm các trở
ngại do làm việc song song
Thống kê về mức độ thay đổi là độ 
đo tốt cho các đánh giá khách quan 
về trạng thái của dự án
Vùng làm việc chứa tất cả các
artifact dễ tạo sự nhất quán
Kiểm soát được sự lan truyền các 
thay đổi 
Các thay đổi được duy trì trong một 
hệ thống mạnh mẽ, có khả năng tùy 
chỉnh
Nguyên nhân cốt lõi Cách giải quyết
þ Thiếu y/c đ/v HT
þ Truyền tin mơ hồ
¨ Kiến trúc kém bền
þ Quá phức tạp
þ Đánh giá chủ quan
þ Mâu thuẫn chưa được 
xác định
¨ Test kém
¨ Qui trình thác nước
þ Thay đổi không thể
kiểm soát
þ Thiếu ccụ tự động
Công cụ môi trường phát triển phần mềm
56
Các kinh nghiệm hỗ trợ lẫn nhau
Ensures users involved 
as requirements evolve
Validates architectural 
decisions early on
Addresses complexity of 
design/implementation incrementally
Measures quality early and often
Evolves baselines incrementally
Phát triển theo
vòng lặp
Kiểm soát các 
thay đổi trong 
hệ thống
Sử dụng
kiến trúc
Component
Quản trị
các yêu cầu
Mô hình hóa
trực quan
Kiểm định
chất lượng
Công cụ môi trường phát triển phần mềm
57
Tổng kết
w Kết quả là phần mềm trở nên
§ Đúng thời hạn
§ Bảo đảm ngân sách 
§ Thỏa mãn nhu cầu user
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Developer
Tester
Kiểm soát các thay đổI trong hệ thống
Phát triển theo vòng lặp
Sử dụng 
kiến trúc
Component
Quản trị
các yêu cầu
Mô hình hóa
trực quan
Kiểm định
chất lượng

File đính kèm:

  • pdfCác kinh nghiệm quí của công nghệ phần mềm.pdf