1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

67 1,4K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 434,05 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm phần mềm– Một phần mềm gồm 3 thành phần: z Chương trình máy tính: mã nguồn, mã máy z Cấu trúc dữ liệu: cấu trúc làm việc bộ nhớ trong và cấu trúc lưu trữ bộ nhớ ngoài z Các tài

Trang 2

Nội dung

1.1 Phần mềm

1.1.1 Khái niệm

1.1.2 Tiến hóa của phần mềm

1.1.3 Đặc trưng và phân loại phần mềm

Trang 3

1.1.1 Khái niệm phần mềm

– Một phần mềm gồm 3 thành phần:

z Chương trình máy tính: mã nguồn, mã máy

z Cấu trúc dữ liệu: cấu trúc làm việc (bộ nhớ trong) và cấu trúc lưu trữ (bộ nhớ ngoài)

z Các tài liệu liên quan: tài liệu hướng dẫn sử dụng (dành cho người dùng), tài liệu phát triển (dành cho người phát triển hệ thống), tài liệu tham khảo kỹ thuật (dành cho người bảo trì)

– Phần mềm được coi là tất cả các kỹ thuật ứng dụng để thực hiện những dịch vụ chức năng cho mục đích nào đó bằng phần cứng, làm cho sử

Trang 4

1.1.1 Khái niệm phần mềm

Trang 5

Nhóm kỹ thuật, phương pháp luận

¾ Các khái niệm và trình tự cụ thể hóa một hệthống

¾ Các phương pháp tiếp cận giải quyết vấn đề

¾ Các trình tự thiết kế và phát triển được chuẩn hóa

¾ Các phương pháp đặc tả yêu cầu, thiết kế hệthống, thiết kế chương trình, kiểm thử, toàn

bộ quy trình quản lý phát triển phần mềm

Trang 6

Nhóm chương trình

¾ Là phần giao diện với phần cứng, tạo thành từ các nhóm lệnh chỉ thị cho máy tính biết trình tự thao tác

xử lý dữ liệu

¾ Phần mềm cơ bản: với chức năng cung cấp môi

trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu năng xử lý của phần cứng (ví dụ như OS

là chương trình hệ thống)

¾ Phần mềm ứng dụng: dùng để xử lý nghiệp vụ thích

hợp nào đó (quản lý, kế toán, ), phần mềm đóng gói, phần mềm của người dùng,

Trang 7

Nhóm các tư liệu

¾ Những tư liệu hữu ích, có giá trị cao và rất cần thiết để phát triển, vận hành và bảo trìphần mềm

¾ Để xây dựng phần mềm với độ tin cậy cao cần tạo ra các tư liệu chất lượng cao: đặc tảyêu cầu, mô tả thiết kế từng loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác, …

Trang 8

1.1.2 Ti ến hoá của phần mềm

¾ Bản thân phần mềm vốn phức tạp

thay đổi

¾ Sự tiến bộ nhanh của hạ tầng – phần cứng

=> Sự tiến hóa phần mềm là tất yếu

Trang 9

1.1.2 Ti ến hoá của phần mềm (2)

Giai đoạn thứ nhất: (~1960)

¾ Phần cứng thay đổi liên tục, theo tính chuyên dụng

¾ Xử lý theo lô

¾ Môi trường lập trình có tính cá nhân

¾ Sản xuất đơn chiếc

Ngôn ngữ: mã máy, đặc thù cho từng máy

Lập trình: là một nghệ thuật theo bản năng,

chưa có phương pháp

Trang 10

1.1.2 Ti ến hoá của phần mềm (3)

Giai đoạn 2: (~giữa thập kỷ 70)

¾ Phần mềm đa nhiệm, đa người sử dụng

Trang 11

z Sử dụng nhiều máy tính cá nhân, phần mềm nhúng

z Số người dùng tăng nhanh

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

Trang 12

– Năng lực máy tính ngày càng mạnh

– Các hệ thống máy tính được liên kết lại

– Nhu cầu của người dùng ngày càng lớn.

Trang 14

1.1.3 Đặc điểm phần mềm

Phát triển phần mềm khác chế tạo phần cứng”

¾ Sản xuất mang tính thủ công.

¾ Khó kiểm soát chất lượng ở khâu trung gian.

¾ Khó dự đoán trước về hiệu năng.

– Áp dụng các phương pháp tiên tiến

– Công cụ tự đông

Trang 15

1.1.3 Đặc điểm phần mềm(2)

¾ Phần mềm thoái hóa theo thời gian

– Môi trường sử dụng, nhu cầu thay đổi

– Lỗi sinh ra do nâng cấp

¾ Phần mềm không được lắp ráp theo mẫu

– Không có danh mục phụ tùng

– Được đặt hàng hoàn chỉnh theo từng yêu cầu riêng

“Bảo trì phần mềm phức tạp hơn hẳn so với

bảo trì phần cứng”

Trang 16

1.1.3 Đặc điểm phần mềm(3)

¾ Phần mềm được phát triển theo nhóm

– Năng lực của nhóm không tuyến tính với số thành viên

– Người giỏi > 5 lần người trung bình

– Thời gian cho trao đổi thông tin chiếm tỷ lệ cao

– Khó kiểm soát

– Khó tăng tốc độ bằng cách thêm người.

Trang 17

1.1.3 Đặc điểm phần mềm(4)

Phần mềm không đơn giản chỉ là chương trình

¾ Chương trình

– 1 người viết, 1 người dùng

– dùng với mục đích thu thập xử lý số liệu (dùng 1 lần)

– không cần tài liệu, không kiểm thử triệt để

Trang 18

1.1.3 Đặc điểm phần mềm(5)

¾ Là hàng hóa vô hình, không nhìn thấy được

¾ Chất lượng phần mềm: không mòn đi mà có

xu hướng tốt lên sau mỗi lần có lỗi (error/bug) được phát hiện và sửa

¾ Phần mềm vốn chứa lỗi tiềm tàng, nếu quy

mô càng lớn thì khả năng chứa lỗi càng cao

¾ Lỗi phần mềm dễ được phát hiện bởi người ngoài (những người không trực tiếp tham gia xây dựng phần mềm)

Trang 19

1.1.3 Đặc điểm phần mềm(6)

¾ Chức năng của phần mềm thường biến hóa, thay đổi theo thời gian (theo nơi sử dụng)

tạo của tác giả / nhóm tác giả làm ra nó

¾ Có thể sao chép phần mềm rất đơn giản

Trang 20

– Thu thập xử lý các dữ kiện thế giới thực

– Đáp ứng yêu cầu chặt chẽ về thời gian

z Thu thập dữ liệu

z Phân tích dữ liệu

z Kiểm soát, điều khiển

z Điều phối.

Trang 21

– Đặc trưng bởi thuật toán (tính toán vật lý, mô phỏng)

– Đòi hỏi năng lực tính toán cao.

¾ Phần mềm nhúng (embedded software)

– Chỉ đọc khi thiết bị khởi động

– Thực hiện chức năng hạn chế (điều khiển sản phẩm)

Là sự kết hợp giữa hệ thống và thời gian thực.

Trang 22

1.1.3 Phân loại phần mềm(3)

¾ Phần mềm máy tính cá nhân

– Các bài toán nghiệp vụ nhỏ (ứng dụng văn phòng)

– Giao diện đồ họa phát triển.

– Có nhu cầu rất cao.

¾ Phần mềm trí tuệ nhân tạo

– Dùng các thuật toán phi số

– Ví dụ: Hệ chuyên gia, nhận dạng, trò chơi,

– Ví dụ: các công cụ CASE,

Trang 23

1.1.4 Chất lượng phần mềm

¾ Những yếu tố chất lượng bên trong như dễ đọc, dễ hiểu mà chỉ những người làm tin học chuyên nghiệp mới biết được

¾ Những yếu tố chất lượng bên ngoài người dùng có thể nhận biết được như: tốc độnhanh, chạy ổn định, dễ sử dụng, dễ thích nghi với những thay đổi

¾ => Thông thường chất lượng phần mềm tốt thì giá thành phần mềm cao

Trang 24

1.1.4 Chất lượng phần mềm(2)

¾ Những yếu tố chính trong chất lượng phần mềm:

Tính hiệu quả (efficiency): sử dụng hiệu quả các

nguồn tài nguyên (bộ nhớ, CPU)

Tính thân thiện (user friendlyness): dễ sử dụng

Tính dễ kiểm tra (verifiability): dễ kiểm tra chất

lượng

Tính dễ bảo trì (maintainability): dễ xác định và

sửa lỗi, dễ tạo ra những phiên bản mới khi có sự

mở rộng.

Trang 25

1.1.4 Chất lượng phần mềm(3)

¾ Tính tái sử dụng (reusability): dễ tái sử dụng trong

những phần mềm mới

¾ Tính khả chuyển (portability):dễ sử dụng trong các

môi trường mới.

¾ Tính dễ hiểu (understandability): dễ hiểu đối với

người sử dụng cũng như đối với người phát triển

¾ Tính hợp tác (interoperability): dễ hợp tác với các

phần mềm khác

¾ Sản xuất hiệu quả (productivity): tiến trình sản xuất

phần mềm phải hiệu quả.

Trang 26

1.1.4 Chất lượng phần mềm(4)

(timeliness): giao sản phẩm theo từng gói

¾ Tính trong suốt (visibility):

– Đối với người phát triển/ người quản lý

z Hiểu rõ tiến độ phát triển

z Hiểu rõ ảnh hưởng của các quyết định

– Đối với khách hàng

z Hiểu rõ tiến độ phát triển

z Hiểu rõ ảnh hưởng của các quyết định

Trang 28

1.1.4 Chất lượng phần mềm(6)

Tính bảo trì được

“Phần mềm luôn luôn cần được sửa đổi”

Để sửa đổi được phần mềm

¾ Thiết kế dễ hiểu, dễ sửa đổi (thiết kế tốt)

¾ Cài đặt bằng ngôn ngữ bậc cao

¾ Có đầy đủ tài liệu

– Có tuổi thọ cao

Trang 29

Phần mềm phải đáng tin cậy

Đáp ứng được nhu cầu người sử dụng

Trang 31

1.1.4 Chất lượng phần mềm(9)

¾ Giao diện nhất quán, phù hợp với trình độcủa người dùng

¾ Có tài liệu, tiện ích trợ giúp

Quyết định thành công của sản phẩm

Tính dễ dùng

Trang 32

1.1.4 Chất lượng phần mềm(10)

¾ Khó tối ưu đồng thời các thuộc tính

hiệu quả >< dễ bảo trì, dễ sử dụng

¾ Chi phí cho tối ưu là không tuyến tính

Nhận xét

Trang 34

z Giao tiếp giữa bên xây dựng PM và bên sử dụng PM

– Thiếu tiêu chuẩn đánh giá sản phẩm

Trang 35

1.1.5 Khủng hoảng phần mềm(3)

¾ Điều tra của General Acounting Office trên

nhiều dự án với tổng vốn đầu tư hàng trăm triệu $ thì phần mềm:

– Không giao sản phẩm: 29%

– Không được sử dụng: 47%

– Được sử dụng sau khi đã chỉnh sửa: 3%

– Tốt: 2%

Trang 36

1.1.6 Khó khăn trong phát triển PM

theo đúng lịch trình kinh phí cho trước”

Phần mềm là phần tử logic: không kiểm soát được theo phương pháp thông thường

z trong sản xuất (rủi ro, tính thủ công)

z trong bảo trì (lớn, phức tạp, thay đổi nhanh)

z trong kiểm soát chất lượng ( làm thủ công,

nhiều người,

Trang 37

1.1.6 Khó khăn trong phát triển PM(2)

¾ Khả năng xây dựng phần mềm không đáp ứng kịp

nhu cầu tăng nhanh trong mọi lĩnh vực xã hội.

¾ Quy mô, độ phức tạp PM ngày càng tăng khiến chi

phí phát triển bảo trì ngày càng tốn kém

¾ Sự tinh vi của phần cứng vượt xa khả năng tạo ra

phần mềm để khai thác nó.

Cần có những phương pháp, công cụ hiện đại

để phát triển phần mềm.

Trang 38

1.1.6 Khó khăn trong phát triển PM(3)

định nghĩa yêu cầu của người dùng (khách hàng), sau khi bàn giao sản phẩm dễ phát

sinh những trục trặc (troubles)

¾ (2) Với những phần mềm quy mô lớn, tư liệu đặc tả đã cố định thời gian dài, do vậy khó đáp ứng nhu cầu thay đổi của người dùng một cách kịp thời trong thời gian đó

Trang 39

1.1.6 Khó khăn trong phát triển PM(4)

¾ (3) Nếu không có Phương pháp luận thiết kếnhất quán mà thiết kế theo cách riêng (của công ty, nhóm), thì sẽ dẫn đến suy giảm chất lượng phần mềm (do phụ thuộc quá nhiều vào con người)

¾ (4) Nếu không có chuẩn về làm tư liệu quy trình sản xuất phần mềm, thì những đặc tảkhông rõ ràng sẽ làm giảm chất lượng phần mềm

Trang 40

1.1.6 Khó khăn trong phát triển PM(4)

¾ (5) Nếu không kiểm thử tính đúng đắn của phần mềm ở từng giai đoạn mà chỉ kiểm thử

ở giai đoạn cuối và phát hiện ra lỗi, thì thường bàn giao sản phẩm không đúng hạn

¾ (6) Nếu coi trọng việc lập trình hơn khâu thiết

kế thì thường dẫn đến làm giảm chất lượng phần mềm

¾ (7) Nếu coi thường việc tái sử dụng phần

mềm (software reuse), thì năng suất lao

động sẽ giảm

Trang 41

1.1.6 Khó khăn trong phát triển PM(5)

¾ (8) Trong quy trình phát triển phần mềm cónhiều thao tác do con người thực hiện, do vậy năng suất lao động thường bị giảm

¾ (9) Khi không chứng minh được tính đúng đắn của phần mềm đang xây dựng thì độ tin cậy của phần mềm sẽ giảm

¾ (10) Chuẩn về một phần mềm tốt không thể

đo được một cách định lượng, do vậy khó cóthể đánh giá được một hệ thống đúng đắn hay không

Trang 42

1.1.6 Khó khăn trong phát triển PM(6)

¾ (11) Khi đầu tư nhân lực lớn vào bảo trì sẽ

làm giảm hiệu suất lao động của nhân viên

¾ (12) Công việc bảo trì kéo dài làm giảm chất

lượng của các tài liệu liên quan và ảnh

hưởng xấu đến những việc khác

¾ (13) Quản lý dự án lỏng lẻo kéo theo quản

lý lịch trình cũng không rõ ràng

Trang 43

1.1.6 Khó khăn trong phát triển PM(7)

¾ (14) Nếu không có tiêu chuẩn để ước lượng nhân lực và dự toán sẽ làm kéo dài thời hạn

và vượt kinh phí của dự án

=> Đây là những vấn đề phản ánh các khía cạnh khủng hoảng và khó khăn trong phát triển phần mềm, hãy tìm N cách nỗ lực vượt qua để tạo ra phần mềm tốt!

Trang 45

1.2.1 Khái niệm Công nghệ phần mềm

¾ Khái niệm

Larousse (1996): Công nghệ phần mềm là

tập hợp các phương pháp, mô hình, kỹ thuật, công cụ và thủ tục liên quan đến các giai đoạn xây dựng một sản phẩm phần mềm

Trang 46

1.2.1 Khái niệm Công nghệ phần mềm

¾ Khái niệm

– Bauer [1969]: CNPM là việc thiết lập và sử dụng các nguyên tắc công nghệ học đúng đắn dùng để thu được phần mềm một 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.

– IEEE [1993]: CNPM là việc áp dụng phương pháp tiếp cận có hệ thống, bài bản và được lượng hóa trong phát triển, vận hành và bảo trì phần mềm và việc nghiên cứu các phương pháp tiếp cận nó.

Trang 47

1.2.1 Mục đích

¾ Mục đích chính của công nghệ phần mềm là để sản xuất ra những phần mềm có chất lượng

¾ Phần mềm có chất lượng là PM thỏa mãn:

– Những yếu tố bên ngoài của một sản phẩm như: tính đúng đắn, tính bền vững, tính có thể mở rộng được, tính sử dụng lại, tính tương thích…;

– Những yếu tố chất lượng bên trong như: tính dễ đọc, dễ hiểu, sản phẩm trực quan, sinh động…

Trang 48

z Phần mềm tạo ra phải đáp ứng được yêu cầu người sử dụng

z Phần mềm phải đạt được các tiêu chuẩn về chất lượng

z Giá thành phải nằm trong giới hạn đặt ra

z Tiến độ xây dựng phần mềm phải đảm bảo

Trang 49

1.2.2 Đặc điểm CNPM

tính, liên quan đến việc xây dựng các hệthống phần mềm vừa lớn vừa phức tạp bởi một hay một nhóm kỹ sư

pháp, các công cụ để phát triển phần mềm máy tính

¾ CNPM liên quan đến lý thuyết, phương pháp

và công cụ dùng cho phát triển phần mềm

Trang 50

1.2.2 Đặc điểm CNPM(2)

¾ Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo trì phần mềm đã được hệ thống hóa hóa thành phương pháp luận và hình thành nên CNPM.

¾ Trong vòng đời phần mềm không chỉ có xây dựng mà bao gồm cả thiết kế, vận hành và bảo trì (tính quan trọng của thiết kế và bảo trì).

¾ Nghiên cứu Công nghệ phần mềm nhằm nâng cao năng suất và độ tin cậy của phần mềm, đồng thời giảm chi phí giá thành phần mềm.

Trang 51

1.2.3 Một số nguyên tắc CNPM

¾ Các nguyên tắc cơ bản

Chặt chẽ (rigor and formality)

Chia nhỏ (separation of concerns)

Mô-đun hóa (modularity)

Trừu tượng (abstraction)

Phòng ngừa sự thay đổi (anticipation of change)

Tổng quát hóa (generality)

Giải quyết từng bước (incrementality)

Trang 52

1.2.3 Một số nguyên tắc CNPM(2)

¾ Chặt chẽ (rigor and formality)

– Sử dụng mô hình lý thuyết và toán học

– Áp dụng cho tất cả các bước, tất cả các sản phẩm

– Ví dụ:

z “chọn z là giá trị lớn nhất của x và y”

z Z = max(x,y)

Trang 53

z Giải quyết một phần nhỏ sẽ đơn giản hơn

– Sử dụng thuật toán “chia để trị” (divide and conquer) – Có thể chia nhỏ theo

z Thời gian: lập kế hoạch

z Khái niệm: giao diện / thuật toán

z Xử lý: chia các xử lý con

Trang 54

– Quan hệ mật thiết với nguyên tắc “chia nhỏ”

– Các phương pháp mô-đun hóa

z Chiến lược từ trên xuống (top-dow)

z Chiến lược từ dưới lên (bottom-up)

– Chất lượng của mô-đun hóa

z Liên kết lỏng lẻo (low coupling)

Trang 55

1.2.3 Một số nguyên tắc CNPM(5)

¾ Trừu tượng (abstraction)

– Loại bỏ những gì không quan trọng

– Chỉ xem xét các yếu tố quan trọng

– Sử dụng các mô hình

z Mô hình cho người sử dụng

z Mô hình cho người phát triển

– Ví dụ:

z Ngôn ngữ lập trình / cấu trúc phần cứng

z Xây dựng tài liệu

z Đặc tả bởi điều kiện trước và sau

Trang 56

– Các thay đổi thường gặp

z Trong đặc tả yêu cầu

z Trong ngữ cảnh sử dụng

z Khả năng về công nghệ

Trang 57

1.2.3 Một số nguyên tắc CNPM(7)

¾ Tổng quát hóa (generality)

– Xem xét vấn đề trong ngữ cảnh tổng quát

– Giải quyết vấn đề lớn hơn

Trang 60

Ư ớc lượng công việc, lập lịch biểu, phân công công việc

¾ Phân tích yêu cầu

Xác định yêu cầu chi tiết (chức năng, ràng buộc) đặc tả yêu cầu

Trang 64

1.2.4 Cỏc hoạt động chớnh trong CNPM

thuật Xác định

yêu cầu

Đặc tả yêu cầu người dùng Xác định yêu cầu phần mềm

Phân tích cấu trúc hóa

Thiết kế

hệ thống

Thiết kế cơ bản phần mềm Thiết kế cấu trúc ngoài của phần mềm

Thiết kế cấu trúc hóa

Sử dụng, vận hành phần mềm đã

Trang 65

Kết luận

¾ Phần mềm có tầm quan trọng đặc biệt: tạo nên sự khác biệt của tổ chức, của hệ thống

¾ Phát triển phần mềm là công việc phức tạp, rủi ro:

– Không được định hình trước, khó dự đoán hiệu năng khi chưa có sản phẩm

– phụ thuộc vào con người

– bị ảnh hưởng lớn từ môi trường => nhiều rủi ro

¾ Cần áp dụng các phương pháp tiên tiến trong việc

xây dựng phần mềm.

Trang 66

Câu hỏi ôn tập

(mức độ: quốc gia, tổ chức, hệ thống, ứng dụng)

Trang 67

Câu hỏi ôn tập(2)

5 Các đặc trưng của phần mềm?

6 Các thuộc tính của phần mềm kỹ nghệ tốt?

7 Khó khăn phát triển phần mềm thể hiện ở

những mặt nào (bản chất, sự thay đổi: quy

mô, môi trường)

8 Thách thức đối với phát triển phần mềm?

(nhu cầu, bảo trì, thời gian, giá cả, khả năng phần cứng)

Ngày đăng: 29/01/2015, 20:07

TỪ KHÓA LIÊN QUAN