Tải bản đầy đủ (.pdf) (31 trang)

Công nghệ phần mềm tổng quan công nghệ phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (42.8 MB, 31 trang )

TỔNG QUAN VỀ
CÔNG NGHỆ PHẦN MỀM

GVHD: Phạm Minh Đương
Email:


Nội dung








Phần mềm và lớp phần mềm
Kiến trúc các thành phần của phần mềm
Công nghệ phần mềm
Các công việc trong công nghệ phần mềm
Mô hình phát triển phần mềm
Phương pháp, công cụ phát triển phần mềm
Thảo luận

9/4/2016

Công nghệ phần mềm

2



Phần mềm
• Phần mềm là hệ thống các chương trình thực hiện
được trên máy tính
• Nhằm hỗ trợ nhanh, chính xác và tiện dụng cho các
nhà chuyên môn trong từng lĩnh vực chuyên ngành
• Thực hiện tốt các thao tác nghiệp vụ của mình.
Chọn
công việc

9/4/2016

Xử lý

Công nghệ phần mềm

Kết quả

3


Lớp phần mềm
• Lớp phần mềm là hệ thống các phần mềm có cùng
lĩnh vực hoạt động nào đó
• Thường có cấu trúc và chức năng tương tự nhau
STT

Lớp phần mềm

Các phần mềm


1

QL học sinh

Mầm non, tiểu học, THPT, ĐH…

2

Bán hàng

Siêu thị, máy tính, thuốc tây…

3

Xếp lịch

TKB lớp, lịch thi đấu.

4

Trò chơi

Ca rô, cờ vua…

5

Cho mượn

Thuê băng, sách, truyện…


9/4/2016

Công nghệ phần mềm

4


Kiến trúc các thành phần của PM
• Thành phần giao tiếp.
• Thành phần xử lý.
• Thành phần dữ liệu.

5


Thành phần giao tiếp
• Là hệ thống các chức năng chuyên về việc nhập/xuất dữ liệu
• Trình bày và tổ chức lưu trữ dữ liệu tương ứng.
• Nhiệm vụ của thành phần giao tiếp:
– Tiếp nhận các yêu cầu sử dụng:
Người dùng
Các thiết bị thu thập dữ liệu, cung cấp dữ liệu nguồn
liên quan đến công việc.
− Trình bày các kết quả của việc thực hiện các yêu cầu:
Người dùng
Điều khiển hoạt động các thiết bị điều khiển.
6


Thành phần xử lý

• Là hệ thống các chức năng chuyên về xử lý tính toán, biến
đổi dữ liệu
• Các chức năng này sẽ dùng dữ liệu nguồn từ các chức năng
− Thành phần giao tiếp hay thành phần dữ liệu
− Kiểm tra tính hợp lệ, sau đó tiến hành xử lý cho ra kết
quả *
• Kết quả trình bày thông qua các chức năng trong thành phần
giao tiếp hoặc lưu trữ lại qua các chức năng của thành phần dữ
liệu
*Tiến trình xử lý để cho ra kết quả mong đợi theo quy định tính toán có
sẵn trong thế giới thực hoặc theo thuật giải tự đề xuất

7


Thành phần dữ liệu
• Là hệ thống các chức năng chuyên về đọc và ghi dữ liệu
• Cùng với mô hình tổ chức lưu trữ dữ liệu tương ứng
• Mục tiêu chính là chuyển đổi dữ liệu giữa bộ nhớ chính và
bộ nhớ phụ

8


Bảng tóm tắt
STT
1

Thành phần
Giao tiếp


2
Xử lý
3
Dữ liệu

Hàm
Nhập

Ý nghĩa
Yêu cầu/dữ liệu ngầm

Xuất

Kết quả đã xử lý

Kiểm tra Kiểm tra tính hợp lệ
Xử lý Tính toán, phát sinh, biến
đổi dữ liệu
Đọc
Đọc dữ liệu từ bộ nhớ phụ
 bộ nhớ chính.
Ghi
Ghi dữ liệu từ bộ nhớ chính
 bộ nhớ phụ.
9


Công nghệ phần mềm
• Lịch sử ra đời

• Chất lượng phần mềm
• Đối tượng nghiên cứu của công nghệ phần mềm

10


Lịch sử ra đời
• Khoảng 1960 cuộc khủng hoảng phần mềm do số lượng
phần mềm tăng, chất lượng phần mềm thì giảm
• 1975 Hội nghị ICSE (International Conference on Software
Engineering)  ngành khoa học công nghệ phần mềm.
• Định nghĩa tóm tắt về CNPM
− Là một ngành khoa học nghiên cứu về việc xây dựng
các phần mềm
− Chất lượng
− Thời gian và chi phí hợp lý.

11


Chất lượng phần mềm
• Tính đúng đắn: Đầy đủ, chính xác yêu cầu của người dùng
• Tính tiến hóa: Cho phép người dùng có thể khai báo các
thay đổi về quy định của phần mềm theo các thay đổi của
thế giới thực
• Tính tiện dụng: Dễ học, dễ sử dụng, giao diện trực quan, tự
nhiên
• Tính hiệu quả: Sử dụng tối ưu các tài nguyên trên máy tính.
• Tính tương thích: Trao đổi dữ liệu được với các phần mềm
khác có liên quan


12


Đối tượng nghiên cứu
Ba đối tượng nghiên cứu chính:
• Quy trình công nghệ phần mềm: Hệ thống các giai đoạn
mà quá trình phát triển phần mềm phải trải qua
• Phương pháp phát triển phần mềm: Hệ thống các hướng
dẫn cho phép từng bước thực hiện một giai đoạn nào đó
trong quy trình
• Công cụ và môi trường phát triển phần mềm: Hệ thống các
phần mềm trợ giúp chính trong lĩnh vực xây dựng phần mềm

13


Công nghệ phần mềm là gì?

Phần mềm theo công nghệ =
Con người + Công nghệ +
Qui trình

9/4/2016

Công nghệ phần mềm

14



Công nghệ phần mềm là gì?
Con người: Có nhiều vai trò
Công nghệ: Các đặc trưng công nghệ tích hợp
Qui trình: Cách mà con người tương tác với
công nghệ

9/4/2016

Công nghệ phần mềm

15


Công việc của công nghệ phần mềm
• Phân tích hệ
thống/vấn đề
• Xác định các yêu cầu
• Thiết kế phần mềm
• Viết phần mềm
(coding)
• Kiểm tra và tích hợp
hệ thống
• Cài đặt và chuyển
giao phần mềm
9/4/2016









Lập tài liệu
Bảo trì
Quản lý chất lượng
Huấn luyện
Dự đoán tài nguyên
Quản trị dự án

Công nghệ phần mềm

16


Mô hình phát triển phần mềm
Các công đoạn chính tổng quát
Giai đoạn đặc tả: Xác định các tính năng và
điều kiện hoạt động của hệ thống (thu thập
yêu cầu và phân tích).
Giai đoạn bảo trì: Sửa lỗi
(correction), thay đổi môi trường
thực thi (adaptation), tăng cường
(enhancement).

Giai đoạn phát triển:
Thiết kế phần mềm
(software design), viết
code (code generation


Giai đoạn kiểm tra: Kiểm tra phần
mềm (software testing), kiểm tra
tính hợp lý của phần mềm
9/4/2016

Công nghệ phần mềm

17


Mô hình WaterFall
• Mô hình phát triển phần mềm đầu tiên
• Các công việc tiếp nối nhau một cách tuần tự
• Đặt nền móng cho các phương pháp phân tích, thiết kế, kiểm tra…
Phân tích
yêu cầu
Thiết kế hệ thống
& phần mềm
Thực hiện và
kiểm tra moduls
Tích hợp và kiểm
tra tổng thể
Chuyển giao
và Bảo trì

9/4/2016

Công nghệ phần mềm

18



Mô hình WaterFall
• Bản chất của phát triển phần mềm là quá trình lặp đi
lặp lại chứ không phải tuần tự
• Các bước thực chất không tách biệt hoàn toàn mà có
chồng lấn và tham khảo lại
• Khách hàng đặc tả tất cả yêu cầu một cách chính xác
và đầy đủ ngay từ ban đầu
• Khách hàng thường phải chờ đợi rất lâu để thấy được
phiên bản đầu tiên của sản phẩm
• Tồn tại “delay” tích lũy trong nhóm làm việc  dự
án thường bị trễ.
• Chỉ phù hợp cho dự án nhỏ, đơn giản.
9/4/2016

Công nghệ phần mềm

19


Mô Hình Prototype
Hoạt động sản xuất
Bản prototype

Đặc tả

Mô tả sơ lược
của khách hàng


Phát triển

Các bản trung
gian

Kiểm thử

Bản cuối cùng
9/4/2016

Công nghệ phần mềm

20


Mô Hình Prototype
• Prototype như là một cơ chế để nhận diện chính
xác yêu cầu của khách hàng

– Bản thân khách hàng chưa hiểu rõ yêu
cầu của mình, cũng như các quy trình
chưa được xác lập rõ ràng.
– Khách hàng chưa hiểu rõ khả năng hỗ trợ
của hệ thống máy tính

9/4/2016

Công nghệ phần mềm

21



Mô Hình Prototype
Kích thích sự thích thú của người dùng với dự án
Prototype có thể bị “throw-away”  Lãng phí
Các process không được phân định rõ ràng
Hệ thống thông thường có cấu trúc lỏng lẻo
Cần có những kỹ năng đăc biệt trong quản lý và
phát triển
• Khách hàng hối thúc nhà phát triển hoàn thành sản
phẩm một khi thấy được các prototype đầu tiên






9/4/2016

Công nghệ phần mềm

22


Mô Hình Prototype – Ứng dụng
• Dùng cho các hệ thống nhỏ. Các chi phí khi
thay đổi hệ thống là không quá lớn
• Cần sự cấp bách về thời gian triển khai
ngắn. Hệ thống cần được đưa vào ứng dụng
từng phần trong khoảng thời gian nhất định.

• Trong trường hợp những hệ thống mà việc
đặc tả các yêu cầu là rất khó và không rõ
ràng ngay từ đầu.
9/4/2016

Công nghệ phần mềm

23


Mô hình Xoắn Ốc
Xác định công việc

Hoạch định đề tài

Đánh giá rủi ro

Phát triển sản phẩm

• Được thực hiện theo một chuỗi lặp kiểu xoắn ốc,
mỗi lần lặp cải thiện sản phẩm
• Có phương pháp đánh giá rủi ro
• Có thể áp dụng prototype
• Mỗi lần lặp được cải thiện cho thích nghi với bản
chất của đề án
9/4/2016
Công nghệ phần mềm
24



Mô hình RAD
Mô hình nghiệp vụ

Mô hình dữ
liệu

Mô hình xử lý

Sinh ứng
dụng

Kiểm thử

• Rapid Application Development là mô hình tuần tự
tuyến tính có thời gian phát triển rất ngắn
• Sử dụng các thành phần có sẵn càng nhiều càng tốt
• Sử dụng công cụ lập trình ở dạng tự động sinh mã
chứ không phải các ngôn ngữ truyền thống
• Phụ thuộc vào công nghệ phát triển có tính reusable
cao.
•9/4/2016
Phát triển hệ thốngCông
mẫu
nghệ phần mềm
25


×