Tải bản đầy đủ (.ppt) (41 trang)

bài 1 giới thiệu về 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 (280.3 KB, 41 trang )

GIỚI THIỆU VỀ CÔNG NGHỆ PHẦN MỀM
BÀI 1
© 2008 by Vinh Trong Le
2/41
Nội dung

Phần mềm

Công nghệ phần mềm

Tiến trình phần mềm
© 2008 by Vinh Trong Le
3/41
I. Phần mềm (PM)

Các nội dung chính

Phần mềm là gì

Các thành phần của PM

Vai trò của PM

Đặc trưng của PM

Phân loại PM

Tiến hóa và thách thức
© 2008 by Vinh Trong Le
4/41
Phần mềm là gì?



Khái niệm và định nghĩa

Lệnh (chỉ thị) instructions: Máy tính thực hiện một thao tác.

Chương trình (program): Một chuỗi các lệnh nhằm thực hiện một tác vụ
cụ thể.

Dữ liệu: Thông tin “thô”-> cần xử lý -> Thông tin hữu ích.

Phần mềm: Một hay nhiều chương trình để xử lý dữ liệu.

Nói một cách khác:
“Phần mềm là tập các lệnh để chỉ cho máy tính biết xử lý dữ liệu như
thế nào.”
Hoặc:
“Phần mềm chạy -> dữ liệu được xử lý.”
© 2008 by Vinh Trong Le
5/41
Các thành phần của PM

Chương trình máy tính

Mã nguồn

Mã máy

Các cấu trúc dữ liệu

Cấu trúc làm việc (Bộ nhớ trong)


Cấu trúc lưu trữ (Bộ nhớ ngoài)

Tài liệu

Hướng dẫn sử dụng <- người dùng

Tham khảo kỹ thuật <- người bảo trì

Phát triển <- người kỹ thuật
© 2008 by Vinh Trong Le
6/41
Vai trò PM

PM: Linh hồn của các hệ thống máy tính

Nền tảng trong mọi hoạt động của xã hội ngày nay

Sự phụ thuộc của các nền kinh tế

Thu chi từ PM chiếm đáng kể trong GNP; ví dụ: Năm 2006, Ấn độ xuất khẩu
hơn 30 tỷ USD; thế giới có > 7 triệu kỹ sư CNTT và tạo ra 600 tỷ USD/năm;
Thế giới chi phí cho phần mềm trong năm 2000 khoảng 770 tỷ USD.

Phần mềm sai hỏng -> kinh tế sẽ bị tổn thất: Yahoo mất vài chục tỷ đô la
trong những năm qua

Tạo nên sự khác biệt giữa các tổ chức: Phong cách làm việc và năng
suất lao động


Càng nhiều hệ thống cần phần mềm trợ giúp

Ứng dụng PM có mặt ở mọi nơi, mọi lĩnh vực kinh tế, khoa học, quân
sự, …
© 2008 by Vinh Trong Le
7/41
Đặc trưng của PM

Không mòn cũ, nhưng thoái hóa theo thời gian: Môi trường, nhu
cầu thay đổi -> ko sử dụng

Không lắp ráp từ mẫu sẵn có:

Ko có danh mục cho trước

Sản phẩn đặt hàng theo yêu cầu riêng

Phức tạp, khó hiểu và vô hình

Hệ thống logic khó hiểu: liên kết logic ko nhìn thấy -> phải tư duy trừu
tượng

Không nhìn thấy: ko phải là vật thể vật lý
© 2008 by Vinh Trong Le
8/41
Đặc trưng của PM (tiếp)

Thay đổi là bản chất

Theo thế giới thực để đáp ứng nghiệp vụ, nhu cầu con người.


Thay đổi theo môi trường: phần cứng

Cần phát triển theo nhóm

Quy mô lớn

Thời gian
© 2008 by Vinh Trong Le
9/41
Phân loại phần mềm

Hai cách phân loại chính:

Theo chức năng thực hiện

Theo lĩnh vực ứng dụng

Phân loại theo chức năng

Phần mềm hệ thống: Hệ điều hành, tiện ích tổ chức tệp…

Phần mềm nghiệp vụ: Trợ giúp các hoạt động nghiệp vụ

Sản phẩm theo đơn đặt hàng: Hệ thống TT quản lý (thư viện, kế toán…)

Sản phẩm dùng chung: Office

Phần mềm công cụ: Trợ giúp các quá trình phát triển phần mềm (ngôn
ngữ lập trình, quản lý dự án …)

© 2008 by Vinh Trong Le
10/41
Phân loại phần mềm

Phân loại theo lĩnh vực ứng dụng:

Phần mềm hệ thống: Phục vụ cho các PM khác, tương tác với phần
cứng, phục vụ nhiều người dùng

Phần mềm thời gian thực: Thu thập, xử lý các dữ liệu thời gian thực
(dùng điều khiển các hệ thống tự động)

Phần mềm nghiệp vụ: Xử lý các thông tin nghiệp vụ nghiệp vụ

Phần mềm khoa học kỹ thuật: Mô phỏng vật lý…

Phần mềm nhúng: phụ thuộc vào các thiết bị và thực hiện chức năng bị
hạn chế.
© 2008 by Vinh Trong Le
11/41
Sự tiến hóa của PM

Phần mềm tiến hóa theo phần cứng bao gồm cả quy mô, sự phức
tạp, tốc độ

Sự tiến hóa của PM có thể chia làm 4 giai đoạn:

GĐ 1: 1950-> 1960

Chương trình nhỏ, tính toán chuyên dụng


Xử lý số và xử lý theo lô (batch)

Ngôn ngữ: Mã máy, hợp ngữ

Tiêu chí đánh giá: Nhanh, kích cỡ của bài toán

GĐ 2: -> giữa 1970s

Sản phẩm đa nhiệm, đa người dùng

Xử lý số, ký tự, theo lô và thời gian thực
© 2008 by Vinh Trong Le
12/41
Sự tiến hóa của PM

Ngôn ngữ có cấu trúc

Tiêu chí đánh giá: Nhanh, kích cỡ bài toán, số lượng người dùng.

GĐ 3: -> 1990

Phần mềm cá nhân, mạng, hệ thống lớn và chia sẻ được

Xử lý số, ký tự, multimedia; theo lô, thời gian thực, phân tán và song song

Ngôn ngữ: bậc cao, hướng đối tượng

Tiêu chí đánh giá: Tiện dụng, tin cậy và dễ bảo trì.


GĐ 4: 1900-> nay

Phần mềm lớn, hướng người dùng

Ngôn ngữ: hướng đối tượng và trực quan (Visual)

Tiêu chí đánh giá: Tiện dụng, tin cậy và dễ bảo trì.
© 2008 by Vinh Trong Le
13/41
Tiêu chi PM tốt

PM tốt được nhìn nhận từ 2 phía

Người dùng:

Đủ chức năng nghiệp vụ

Dễ sử dụng, thông minh

Tin cậy, an toàn

Nhà phát triển

Dễ bảo trì

Dễ nâng cấp mở rộng
© 2008 by Vinh Trong Le
14/41
Khó khăn và thách thức


Thống kê:

16% DA đúng lịch, trong ngân sách, sản phẩm chất lượng

31% DA bị dừng

53% DA vượt ngân sách, quá hạn, ít tính năng

Công nghiệp PM: Ngành khổng lồ

Chi phí cho PM: 770 tỷ USD / Năm

Lý do:

Năng lực máy tính tăng nhanh

Thế giới thay đổi nhanh về nghiệp vụ và CN

Ham muốn của người dùng
© 2008 by Vinh Trong Le
15/41
Khó khăn và thách thức (tiếp)
-> cần tiến hóa PM

Công nghệ: Cần có các công nghệ, công cụ hiện đại để phát triển PM

Quản lý: Cần có các phương pháp (CMM-Capability Maturity Model ; CMMI-
Capability Maturity Model Integration )
© 2008 by Vinh Trong Le
16/41

II. Công nghệ PM

Các nội dung chính:

Các định nghĩa

Lịch sử phát triển CNPM

Các yếu tố cơ bản

Các bước chung nhất phát triển PM
© 2008 by Vinh Trong Le
17/41
Các định nghĩa về CNPM

Công nghệ phần mềm (Software Engineering: SE)

Bauer (1969): SE là thiết lập và sử dụng các nguyên lý công nghệ đúng đắn
để được PM 1 cách kinh tế, vừa tin cậy vừa làm việc hiệu quả trên các máy
thực

Sommerville (1995): SE là nguyên lý công nghệ liên quan đến tất cả các
mặt lý thuyết, phương pháp và công cụ của PM.

Pressman (1995): SE là bộ môn tích hợp cả qui trình, các phương pháp, các
công cụ để phát triển PM máy tính

3 mặt cơ bản của SE

Quy trình (thủ tục)


Phương pháp

Công cụ
© 2008 by Vinh Trong Le
18/41
Lịch sử của SE

Bắt đầu (1970s): Các phương pháp lập trình và cấu trúc dữ liệu

Tính modul

Sơ đồ khối và top-down

Lập trình có cấu trúc

Chia chương trình thành các modul

Trừu tượng hóa dữ liệu

Tăng trưởng (nửa đầu 1980s)

Phương pháp phát triển hệ thống: CSDL, phân tích thiết kế hướng cấu trúc

Các bộ công cụ phát triển: Trợ giúp phân tích thiết kế, các ngôn ngữ bậc
cao

Bắt đầu quan tâm đến quản lý: Độ đo phần mềm
© 2008 by Vinh Trong Le
19/41

Lịch sử của SE (tiếp)

Phát triển (Từ giữa 1980s)

Hoàn thiện công nghệ cấu trúc

Phát triển công nghệ đối tượng: Kho dữ liệu, đa phương tiện, định hướng
sử dụng lại (thành phần, mẫu, framework)

Phát triển các mô hình quản lý: Chuẩn quản lý được công nhận (CMM-
IS9000-03)

Tổng hợp: SE Là quá trình công nghệ tích hợp

Quá trình

Phương pháp

Công cụ
Để tạo ra được PM hiệu quả với các điều kiện cho trước
© 2008 by Vinh Trong Le
20/41
Các yếu tố cơ bản

Quá trình:

Xác định trình tự các công việc cần thực hiện

Xác định các tài liệu, sản phẩm cần bàn giao và cách thức thực hiện


Định ra các mốc thời gian (milestones) và sản phẩm đưa ra

Phương pháp: Cách làm cụ thể để xây dựng PM; thường mỗi công đoạn có một
phương pháp riêng

Phân tích: xác định, đặc tả yêu cầu

Thiết kế: đặc tả kiến trúc, giao diện, dữ liệu, thủ tục

Lập trình

Kiểm thử

Quản lý dự án

Công cụ: Computer Aided Software Engineering (CASE)
© 2008 by Vinh Trong Le
21/41
Vòng đời phát triển PM
© 2008 by Vinh Trong Le
22/41
Các bước phát triển PM (1)
© 2008 by Vinh Trong Le
23/41
Các bước phát triển PM (2)

Xác định yêu cầu: Hệ thống làm gì, những ràng buộc nó cần tuân thủ

Phân tích hệ thống: Vai trò PM trong hệ thống, phác họa và chọn phương
án khả thi


Lập kê hoạch: Ước lượng, lập lịch, tổ chức

Phân tích yêu cầu: Các yêu cầu cụ thể (chức năng, ràng buộc);

Đặc tả yêu cầu: kiến trúc, giao diện, xử lý, dữ liệu

Phát triển: Tạo ra phần mềm như thế nào

Thiết kế: Chuyển các yêu cầu thành các bản thiết kế hệ thống như nó tồn
tại

Mã hóa: Chuyển thiết kế thành chương trình
© 2008 by Vinh Trong Le
24/41
Các bước phát triển PM (3)

Kiểm thử: Sửa lỗi, hoàn thiện

Tài liệu: Hướng dẫn sử dụng, tham khảo kỹ thuật và phát
triển hệ thống.

Vận hành và bảo trì: Hoàn thiện hệ thống sau khi
đưa vào sử dụng

Sửa lỗi: Đảm bảo vận hành trong suốt

Thích nghi: với môi trường (kỹ thuật, nghiệp vụ)

Nâng cao: Hòan thiện chức năng, phát triển dự phòng


Thêm mới: Thêm các chức năng mới
© 2008 by Vinh Trong Le
25/41
III. Tiến trình phần mềm

Các nội dung chính

Tiến trình và mô hình tiến trình

Các giai đoạn của tiến trình

×