Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 1: Phần mềm và công nghệ phần mềm

-Phầnmềmtạorasựkhácbiệtgiữacácmáytính vàcũng

quyếtđịnhnănglựccủamáytính.

-Khảnăngcủaphầncứngbiểuthị chotiềm năngcủahệ

thống cònphầnmềmlà mộtcơchếgiúpchúng ta khai

tháctiềmnăngnày.

pdf61 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1830 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 1: Phần mềm và 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
 thiện dần.
- Nếu phân tích rủi ro chỉ ra rằng yêu cầu không chắc
chắn thì bản mẫu có thể được sử dụng trong giai đoạn
kỹ nghệ; các mô hình và các mô phỏng khác cũng
được dùng để làm rõ hơn vấn đề và làm mịn yêu cầu.
- Tại một vòng xoắn ốc, phân tích rủi ro phải đi đến
quyết định “tiến hành tiếp hay dừng”.
- Nếu rủi ro quá lớn thì có thể đình chỉ dự án.
1.3.4 Mô hình xoắn ốc (tt)
Mô hình xoắn ốc cũng có một số vấn đề như khó
thuyết phục những khách hàng lớn:
- Cách tiếp cận tiến hóa là kiểm soát được.
- Đòi hỏi tri thức chuyên gia đánh giá rủi ro chính xác.
- Đòi hỏi năng lực quản lý cao
- Mô hình này còn tương đối mới và còn chưa được
sử dụng rộng rãi như vòng đời hoặc làm bản mẫu.
1.3.4 Mô hình xoắn ốc (tt)
- Cho phép người phát triển xác định một số đặc trưng
của phần mềm ở mức cao.
- Tự động sinh ra mã chương trình gốc theo nhu cầu
của người phát triển.
- Mô hình 4GT đối với kỹ nghệ phần mềm tập trung vào
khả năng xác định phần mềm đối với một máy ở mức
độ gần với ngôn ngữ tự nhiên hay dùng một ký pháp
đem lại chức năng có ý nghĩa.
1.3.5 Kỹ thuật thế hệ thứ tư
Môi trường phát triển phần mềm hỗ trợ cho khuôn cảnh
4GT bao gồm một số hay tất cả các công cụ sau:
1. Ngôn ngữ phi thủ tục để truy vấn CSDL
2. Bộ sinh báo cáo
3. Bộ thao tác dữ liệu
4. Bộ tương tác và xác định màn hình
5. Bộ sinh chương trình
6. Khả năng đồ họa mức cao
7. Khả năng làm trang tính
8. Khả năng tạo tài liệu
1.3.5 Kỹ thuật thế hệ thứ tư (tt)
- Lập trình cực đoan (XP - eXtreme Programming) do
Kent Beck đề xuất là một phương pháp tiếp cận mới
cho phát triển phần mềm.
- XP đưa ra nhiều hướng dẫn mới, đôi khi trái ngược
lại với các cách thức phát triển phần mềm được đề
xuất từ trước đến nay.
- Hai khái niệm độc đáo mới và quan trọng hàng đầu
trong XP là:
+ tạo các ca thử nghiệm trước
+ lập trình đôi
1.3.6 Mô hình lập trình cực đoan
a) Tạo các ca thử nghiệm trước
XP thay đổi quan niệm:
- Kiểm thử có tầm quan trọng ngang bằng (có
thể là lớn hơn) việc viết mã.
- Các ca kiểm thử được thiết kế trước khi viết
mã và phải được thực hiện thành công mỗi khi chương
trình đích được tạo ra.
Tạo ca thử nghiệm trước đem lại nhiều lợi thế.
- Giúp bạn xác định một cách rõ ràng giao diện
của modun.
- Yêu cầu phải hiểu một cách rõ ràng các yêu
cầu của modun trước khi bắt tay vào phát triển nó.
1.3.6 Mô hình lập trình cực đoan (tt)
b) Lập trình đôi
- Mã nguồn của một môđun phải được viết bởi 2 lập trình
viên dùng chung một máy tính.
- Giá trị của lập trình đôi là trong khi một người viết mã
thì người thứ hai nghĩ về nó.
- Người thứ hai này sẽ có trong đầu một bức tranh toàn
thể về vấn đề cần giải quyết, chứ không chỉ là giải pháp
của đoạn mã lúc đó.
- Điều này sẽ gián tiếp đảm bảo một chất lượng tốt hơn
và dẫn tới một giải pháp mang tính tổng thể hơn.
- Đồng thời, điều này giúp cho họ theo được các chỉ dẫn
của XP, đặc biệt là việc “tạo ca thử nghiệm trước”.
1.3.6 Mô hình lập trình cực đoan (tt)
- Trong nhiều trường hợp chúng ta nên tổ hợp các mô
hình để đạt được sức mạnh của từng khuôn cảnh cho
một dự án riêng lẻ.
- Chúng ta không nên bị lệ thuộc với bất cứ mô hình cụ
thể nào.
- Tính chất và qui mô của phần mềm cần phát triển sẽ
là yếu tố quyết định tới chọn mô hình.
- Mỗi cách tiếp cận đều có ưu điểm riêng và bằng cách
tổ hợp khéo léo các cách tiếp cận thì sẽ có một
phương pháp hỗn hợp ưu việt hơn các phương pháp
được dùng độc lập.
1.3.7 Tổ hợp các mô hình
Tổng hợp yêu cầu ban đầu
Phân tích yêu 
cầu
Làm bản 
mẫu
4GT Mô hình 
xoắn ốc
Bản mẫu:
Vòng thứ n Mô hình:
Vòng thứ n
4GT
Thiết kế
Mã hóa
Kiểm thử
Hệ thống hoạt động
Bảo trì
4GT
1.3.7 Tổ hợp các mô hình
Tổ hợp các mô hình
Do đặc điểm là các phần tử lôgic nên quá trình phát
triển phần mềm rất khó kiểm soát.
- Người ta tìm cách khắc phục vấn đề này bằng cách
làm cho quá trình phát triển trở nên “nhìn thấy được”
- Tức là ở mỗi bước (hoạt động) trong tiến trình phát
triển phải tạo ra bằng một sản phẩm hay tài liệu tương
ứng.
- Người quản lý dự án và cả khách hàng sẽ tiến hành
xét duyệt các tài liệu này.
- Các tài liệu sẽ trở nên rất hữu ích cho công đoạn kiểm
thử và nâng cấp phần mềm.
1.3.8 Tính khả thị của quá trình
So sánh tính khả thị của các khuôn cảnh:
- Vòng đời cổ điển có tính khả thị cao do các bước phát
triển tường minh, mô hình xoắn ốc cũng có tính khả thị
tốt.
- Đối với mô hình làm bản mẫu, nếu tần số sửa chữa là
lớn thì tính khả thị kém và việc tạo ra tài liệu là không hiệu
quả.
- 4GT thì mới chỉ dùng với những ứng dụng nghiệp vụ đặc
thù nên khó phát biểu gì về tính khả thị của nó.
1.3.8 Tính khả thị của quá trình (tt)
Việc xây dựng tài liệu cũng có những vấn đề:
- Tạo ra các chi phí phụ làm chậm tiến trình phát triển
- Khi phát hiện vấn đề về thiết kế, nhiều khi do không
muốn thay đổi các tài liệu đã được xét duyệt, người
phát triển có xu hướng dùng các giải pháp cục bộ
không hiệu quả.
- Các mô hình phát triển truyền thống thường chú trọng
tới khâu lập tài liệu để nâng cao tính khả thị.
- Ngược lại, mô hình lập trình cực đoan (XP) lại không
khuyến khích việc tạo nhiều tài liệu.
1.3.8 Tính khả thị của quá trình (tt)
- Phần mềm hiện nay càng lớn, càng phức tạp.
- Năng lực của nhóm lập trình không phải là tuyến tính
so với năng lực của từng cá nhân.
- Độ phức tạp cũng tăng theo cấp số nhân, kéo theo chi
phí cũng tăng theo cấp số nhân so với kích cỡ của
chương trình cần phát triển.
-> Việc tìm cách giảm kích cỡ, độ phức tạp của chương
trình là ưu tiên hàng đầu của công nghệ phần mềm.
1.3.9 Vấn đề giảm kích cỡ của phần mềm
Tại các bước phân tích thiết kế:
Giảm kích cỡ được thực hiện thông qua áp dụng chiến
lược “chia để trị”.
- Chia phần mềm thành các modun con có tính độc
lập cao.
- Độ phức tạp của từng modun sẽ nhỏ hơn nhiều so
với cả hệ thống,
- Các modun con cũng có thể được phát triển song
song.
1.3.9 Vấn đề giảm kích cỡ của phần mềm (tt)
Tại giai đoạn mã hóa:
- Dùng lại: dùng lại các thư viện đã phát triển, các thư
viện thương mại...
- Tự sinh mã: sử dụng các công cụ tự động hỗ trợ kỹ
nghệ phần mềm (visual modeling tools, GUI builders,
CASE tools...)
- Kỹ thuật hướng đối tượng: kỹ thuật hướng đối
tượng hỗ trợ phát triển modun có tính dùng lại cao
nhờ có cơ chế che dấu thông tin và khả năng kế thừa
- Dùng các ngôn ngữ bậc cao (các ngôn ngữ có cấu
trúc và năng lực biểu diễn cao)
1.3.9 Vấn đề giảm kích cỡ của phần mềm (tt)
Tiến trình phát triển công nghệ phần mềm chứa ba giai
đoạn chính: xác định, phát triển và bảo trì
Giai đoạn xác định tập trung vào khái niệm cái gì.
- Xác định thông tin nào cần được xử lý,
- Chức năng và hiệu năng nào là cần có,
- Giao diện nào cần được thiết lập,
- Ràng buộc thiết kế nào hiện có và tiêu chuẩn hợp lệ
nào cần có để xác định ra một hệ thống thành công.
1.4 Cái nhìn chung về công nghệ phần mềm
Mặc dầu các phương pháp được áp dụng trong giai
đoạn xác định thay đổi tùy theo mô hình công nghệ
phần mềm (hay tổ hợp các mô hình) được áp dụng, có
ba bước riêng vẫn xuất hiện dưới dạng:
1.Phân tích hệ thống
2.Lập kế hoạch dự án phần mềm
3. Phân tích yêu cầu
1.4 Cái nhìn chung về công nghệ phần mềm (tt)
Giai đoạn phát triển tập trung vào khái niệm thế nào.
- Xác định cách cấu trúc dữ liệu và kiến trúc phần mềm
cần xây dựng,
- Các chi tiết thủ tục được cài đặt,
- Cách dịch thiết kế vào ngôn ngữ lập trình
- Cách thực hiện kiểm thử.
1.4 Cái nhìn chung về công nghệ phần mềm (tt)
1. Thiết kế phần mềm: Là quá trình “dịch” các yêu cầu
phần mềm thành một tập các biểu diễn, mô tả cho cấu trúc
dữ liệu, kiến trúc, thủ tục thuật toán và đặc trưng giao
diện.
2. Mã hóa: Các biểu diễn thiết kế phải được biểu diễn bởi
một (hay một vài) ngôn ngữ nhân tạo mà sẽ tạo ra kết quả
là các lệnh thực hiện được trên máy tính.
3. Kiểm thử phần mềm: Một khi phần mềm đã được cài
đặt dưới dạng máy thực hiện được, cần phải kiểm thử nó
để phát hiện các lỗi phân tích, thiết kế, cài đặt và đánh giá
tính hiệu quả.
1.4 Cái nhìn chung về công nghệ phần mềm (tt)
Giai đoạn bảo trì tập trung vào những thay đổi
- Gắn với việc sửa lỗi, thích ứng khi môi trường phần
mềm phát triển và sự nâng cao gây ra bởi sự thay đổi
yêu cầu của người dùng.
- Giai đoạn bảo trì áp dụng lại các bước của giai đoạn
xác định và phát triển, nhưng là việc thực hiện trong
hoàn cảnh phần mềm hiện có.
1.4 Cái nhìn chung về công nghệ phần mềm (tt)
Có ba kiểu thay đổi gặp phải trong giai đoạn bảo trì:
1. Sửa đổi: Cho dù có các hoạt động bảo đảm chất
lượng tốt nhất, vẫn có thể là khách hàng sẽ phát
hiện ra khiếm khuyết trong phần mềm.
2. Thích nghi: Qua thời gian, môi trường ban đầu
(như CPU, hệ điều hành, ngoại vi) để phát triển
phần mềm có thể sẽ thay đổi. Bảo trì thích nghi thực
hiện việc sửa đổi phần mềm để thích hợp với
những thay đổi môi trường ngoài.
3. Nâng cao: Khi phần mềm được dùng, khách
hàng/người dùng sẽ nhận ra những chức năng phụ
sẽ có lợi. Bảo trì hoàn thiện mở rộng phần mềm ra
ngoài các yêu cầu chức năng gốc của nó.
1.4 Cái nhìn chung về công nghệ phần mềm (tt)
Giới thiệu một số phần mềm
1. Phần mềm hỗ trợ phân tích:
WinA&D; Analyst Pro…
2. Phần mềm hỗ trợ thiết kế:
QuickUML; PowerDesigner; Oracle Designer…
3. Phần mềm hỗ trợ lập trình:
Visual Studio; Visual Basic; Visual C++…
4. Phần mềm hỗ trợ kiểm chứng:
WinRuner…
5. Phần mềm xây dựng phương án và lập kế hoạch:
MS Project; Visio…
- Phần mềm đã trở thành phần tử chủ chốt của các hệ
thống máy tính.
- Phát triển phần mềm đã phát triển từ xây dựng một
công cụ xử lý thông tin thành một ngành công nghiệp.
- Phần mềm là phần tử lôgíc cho nên việc kiểm soát nó
khó hơn nhiều so với phần tử vật lý.
- Khó có thể tối ưu hóa đồng thời các tính năng cần có
của phần mềm.
- CNPM là một bộ môn tích hợp cả các phương pháp,
công cụ và thủ tục để phát triển phần mềm máy tính.
- Có nhiều mô hình khác nhau mỗi mô hình đều có
những mặt mạnh và điểm yếu, nhưng tất cả đều có một
dãy các giai đoạn cơ bản là:
xác định, phát triển và bảo trì.
Kết chương

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 1 Phần mềm và công nghệ phần mềm.pdf