1. Trang chủ
  2. » Thể loại khác

ôn tập môn công nghệ phần mềm

29 6 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

Tiêu đề Ôn tập môn Công nghệ phần mềm
Trường học Trường Đại Học Công Nghệ Thông Tin - University of Information Technology
Chuyên ngành Công nghệ phần mềm
Thể loại Ôn tập môn học
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 649,41 KB

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

Nội dung

Untitled NỘI DUNG ÔN TẬP MÔN CÔNG NGHỆ PHẦN MỀM Câu hỏi 1 Anh (chị) hãy nêu khái niệm về công nghệ phần mềm Trình bày quá trình phát triển phần mềm theo mô hình thác nước Đánh giá ưu, nhược điểm của m.

Trang 1

NỘI DUNG ÔN TẬP MÔN CÔNG NGHỆ PHẦN MỀM

Câu hỏi 1: Anh (chị) hãy nêu khái niệm về công nghệ phần mềm Trình bày

quá trình phát triển phần mềm theo mô hình thác nước Đánh giá ưu, nhượcđiểm của mô hình này Theo anh (chị), hiện nay nên phát triển phần mềm theo

mô hình nào? Tại sao?

1) Khái niệm về công nghệ phần mềm

Công nghệ phần mềm (hay còn được gọi kỹ thuật phần mềm) Đó lànhững khái niệm trong ngành công nghệ thông tin, có sự liên quan mật thiếttới các khía cạnh của quá trình sản xuất phần mềm Công nghệ được áp dụngmột cách có hệ thống cho sự phát triển, sử dụng cũng như để bảo trì các phầnmềm hệ thống

2) Quá trình phát triển phần mềm theo mô hình thác nước.

Mô hình này yêu cầu tiếp cận một cách hệ thống, tuần tự và chặt chẽ(xong bước này mới chuyển sang bước sau) đối với việc phát triển phầnmềm, bắt đầu ở mức phân tích hệ thống và tiến dần xuống phân tích,thiết kế, mã hóa, kiểm thử và bảo trì:

a Kỹ nghệ và phân tích hệ thống

Kỹ nghệ và phân tích hệ thống bao gồm việc thu thập yêu cầu ở mức hệthống với một lượng nhỏ thiết kế và phân tích ở mức đỉnh Mục đíchcủa bước này là xác định khái quát về phạm vi, yêu cầu cũng như tínhkhả thi của phần mềm

b Phân tích yêu cầu phần mềm

- Phân tích yêu cầu được tập trung việc thu thập và phân tích cácthông tin cần cho phần mềm, các chức năng cần phải thực hiện,hiệu năng cần có và các giao diện cho người sử dụng

- Kết quả của phân tích là tư liệu về yêu cầu cho hệ thống và phầnmềm (đặc tả yêu cầu)

để khách hàng duyệt lại và dùng làm tài liệu cho người phát triển

kế chi tiết các thủ tục, thiết kế giao diện và tương tác

- Lập tư liệu thiết kế (là một phần của cấu hình phần mềm) để phêduyệt

Trang 2

d Mã hóa

Biểu diễn thiết kế bằng một hay một số ngôn ngữ lập trình và dịchthành mã máy thực hiện được

e Kiểm thử

Tiến trình kiểm thử bao gồm việc

i) phát hiện và sửa lỗi phần logic bên trong chương trình hay còngọi là lỗi lập trình,

ii) kiểm tra xem phần mềm có hoạt động như mong muốn không,tức là phát hiện và sửa lỗi về chức năng như thiếu hụt, sai sót vềchức năng; và kiểm tra xem phần mềm có đảm bảo tính hiệu quảtrong thực hiện hay không

iii) Bảo trì

Bao gồm các công việc sửa các lỗi phát sinh khi áp dụng chươngtrình hoặc thích ứng nó với thay đổi trong môi trường bên ngoài (hệđiều hành mới, thiết bị ngoại vi mới, yêu cầu người dùng) hoặc yêucầu bổ sung chức năng hay nâng cao hiệu năng cần có

3 Đòi hỏi khách hàng phải kiên nhẫn Bản làm việc được của chươngtrình chỉ có được vào lúc cuối của thời gian dự án Một sai sót nhỏtrong phân tích/thiết kế nếu đến khi có chương trình làm việc mới pháthiện ra, có thể sẽ là một thảm họa

• Ưu điểm

Tuy vậy, mô hình vòng đời cổ điển có một vị trí quan trọng trongcông việc về kỹ nghệ phần mềm Nó đưa ra một tiêu bản trong đó cóthể bố trí các phương pháp cho phân tích, thiết kế, mã hóa, kiểm thử

và bảo trì Vòng đời cổ điển vẫn còn là một mô hình được sử dụngrộng rãi, nhất là đối với các dự án vừa và nhỏ

Trang 3

* Hiện nay nên phát triển phần mềm theo mô hình vòng đời cổ điển.

Vì đây là một mô hình tiêu bản, được sử dụng rộng rãi phù hợp với cánhân, tổ chức Tuy vẫn tồn tài một số nhược điểm nhưng nhìn chung sovới các mô hình khác thì mô hình này vẫn được ưu tiên hơn

thiết kế kết hợp với công cụ CASE đều là hướng chức năng Vô khối các hệthống đã được phát triển bằng cách sử dụng phương pháp tiếp cận hướngchức năng Các hệ thống đó sẽ được bảo trì cho một tương lai xa xôi Bởi vậythiết kế hướng chức năng vẫn sẽ còn được tiếp tục sử dụng rộng rãi

Trong thiết kế hướng chức năng, người ta dùng các biểu đồ luồng dữ liệu (mô

tả việc xử lý dữ liệu), các lược đồ cấu trúc (nó chỉ ra cấu trúc của phần mềm),

và các mô tả thiết kế chi tiết Thiết kế hướng chức năng gắn với các chi tiết

Trang 4

của một thuật toán của chức năng đó nhưng các thông tin trạng thái hệ thống

là không bị che dấu

Trang 5

Việc thay đổi một chức năng và cách nó sử dụng trạng thái của hệ thống cóthể gây ra những tương tác bất ngờ đối với các chức năng khác Cách tiếp cậnchức năng để thiết kế là tốt nhất khi mà khối lượng thông tin trạng thái hệthống được làm nhỏ nhất và thông tin dùng chung nhau là rõ ràng.

 Trình bày nội dung của việc quản lý nhân sự trong quá trình phát triển phần mềm.

Chi phí (trả công) con người là phần chính của chi phí xây dựng phầnmềm Ngoài ra, năng lực của người phát triển phần mềm lại rất biến thiên,kéo theo sự phức tạp trong tính toán chi phí Phát triển phần mềm đượctiến hành theo nhóm Kích thước tốt của nhóm là từ 3 đến 8 ngưòi Phầnmềm lớn thường được xây dựng bởi nhiều nhóm nhỏ Một nhóm phát triển

có thể gồm các loại thành viên sau:

Người phát triển

Chuyên gia về miền ứng

dụng Người thiết kế giao

diện

Thủ thư phần mềm (quản lý cấu hình phần

mềm) Người kiểm thử

Một nhóm phát triển cần có người quản lý, và người có vai trò lãnh đạo

về mặt kĩ thuật Một đặc trưng của làm việc theo nhóm là sự trao đổi thôngtin (giao tiếp) giữa các thành viên trong nhóm Thời gian dùng cho việcgiao tiếp có thể chiếm đến nửa tổng thời gian dành cho pháp triển phầnmềm

Ngoài ra, thời gian không dùng cho phát triển sản phẩm cũng chiếm mộtphần lớn thời gian còn lại của người lập trình Một người có thể đồng thờilàm việc cho nhiều nhóm (dự án) phần mềm khác nhau Điều này làm choviệc tính toán giá thành phần mềm phức tạp Cần ghi nhớ, trong sản xuấtphần mềm thì

Năng lực của các thành viên là không đồng đều

Người tốt (nhất) có thể sản xuất hơn 5 lần trung bình, người kém có thểkhông cho kết quả gì

Một số công việc quá khó đối với mọi người

Không nên tăng số thành viên một cách vô ý thức, vì như thế chỉ làm tăng

sự phức tạp giao tiếp giữa các thành viên, khiến công việc nhiều khi chậmlại Một số việc (phức tạp, đăc thù) chỉ nên để một người làm

Câu 3: Nêu phương pháp lập trình hướng đối tượng Đánh giá ưu/nhược điểm Cho ví dụ minh họa.

Trang 6

Lập trình hướng đối tượng (Object-oriented programming) là một phươngpháp sử dụng các đối tượng tương tác để giải quyết những nhiệm vụ phức tạptrong lập trình Mỗi đối tượng sẽ có những thuộc tính và hành vi khác nhau.

Chẳng hạn, bạn có thể hình dung lon sữa đặc là một đối tượng Phương pháplập trình hướng đối tượng sẽ tạo ra những lon sữa đặc có nắp khui (thuộc tính)

và chức năng tự mở nắp (hành vi) Người dùng chỉ việc yêu cầu đối tượng đóthực hiện chức năng của mình

Hai ngôn ngữ hỗ trợ lập trình hướng đối tượng nổi tiếng là Java và C++.Ngoài ra, một số ngôn ngữ khác cũng hỗ trợ hướng đối tượng, bao gồmObjective C, Perl, Python, JavaScript, Simula, Modula, Ada, Smalltalk…

2 Ưu điểm của phương pháp lập trình hướng đối tượng

Một số ưu điểm của lập trình hướng đối tượng bao gồm:

2.1 Nâng cao hiệu năng phát triển phần mềm

Ba yếu tố quan trọng của lập trình hướng đối tượng là:

Tính mô-đun: nó tách biệt các nhiệm vụ trong quá trình phát triển phần mềmdựa trên những đối tượng cụ thể Mỗi đối tượng sẽ có một nhiệm vụ khácnhau

Tính mở rộng: các đối tượng có thể được mở rộng dễ dàng, bao gồm mở rộngthuộc tính và các hành vi mới

Tính tái sử dụng: các đối tượng cũng có thể được sử dụng lại trong một ứngdụng hoặc nhiều ứng dụng khác nhau

Ba yếu tố trên của lập trình hướng đối tượng giúp hiệu năng phát triển phầnmềm cũng được cải thiện rất nhiều, so với kỹ thuật lập trình truyền thốngdựa trên thủ tục

2.2 Nâng cao khả năng bảo trì phần mềm

Chính vì những lý do nêu trên, phần mềm được lập trình theo hướng đốitượng cũng dễ bảo trì hơn Vì thiết kế là mô-đun, nên việc thay đổi một phầncủa chương trình sẽ không ảnh hưởng đến những phần còn lại Điều này rất

có lợi trong trường hợp dự án của bạn có quy mô lớn, đòi hỏi nhiều thay đổi.2.3 Phần mềm phát triển nhanh hơn

Tính tái sử dụng của lập trình hướng đối tượng cho phép phát triển phầnmềm nhanh hơn Các phần mềm được lập trình theo hướng đối tượng thường

có thư viện đối tượng phong phú, các đoạn mã được tối ưu hóa và có thể tái

sử dụng ở các dự án khác trong tương lai

2.4 Giảm thiểu chi phí phát triển

Trang 7

Việc tái sử dụng phần mềm cũng làm giảm thiểu chi phí phát triển cho nhàsản xuất Thông thường, phần lớn công sức chỉ tập trung vào việc phân tíchđối tượng và thiết kế phần mềm Do đó, tổng chi phí phát triển phần mềmcũng giảm đi đáng kể.

2.5 Chất lượng phần mềm cao hơn

Thực tế, chất lượng của phần mềm phụ thuộc vào nhiều yếu tố khác nhau.Chẳng hạn, kinh nghiệm và trình độ của nhóm phát triển cũng sẽ ảnh hưởngđến sản phẩm đầu ra Tuy nhiên, phương pháp này có xu hướng tạo ra nhữngphần mềm chất lượng cao hơn

Việc phát triển phần mềm nhanh hơn, chi phí thấp hơn giúp các nhà sản xuấtdành nhiều thời gian, tài nguyên vào việc kiểm thử Điều đó đồng nghĩa rằngphần mềm cuối cùng thường ít lỗi hơn, chất lượng tốt hơn

3 Nhược điểm của phương pháp lập trình hướng đối tượng

Bên cạnh những ưu điểm nêu trên, lập trình hướng đối tượng cũng có nhữngnhược điểm như sau:

3.1 Đường cong học tập sâu

Lập trình hướng đối tượng là một phương pháp đòi hỏi khá nhiều tư duy Do

đó, nó có thể không dễ dàng với một số người, đặc biệt là những người mớivào nghề Các lập trình viên cần một khoảng thời gian để học và tập làm quenvới nó

Phương pháp này phức tạp vì phần mềm phải dựa trên sự tương tác của đốitượng Do đó, lập trình viên cần phải hiểu bản chất của những khái niệm cơbản như: lớp, đối tượng, phương thức, thuộc tính Đồng thời, ta cũng cần nắmđược bốn tính chất cơ bản của lập trình hướng đối tượng Đó là: Tính trừutượng (Abstraction), Tính đóng gói (Encapsulation), Tính kế thừa(Inheritance) và Tính đa hình (Polymorphism)

3.2 Chương trình chậm và có kích thước lớn hơn

Phần mềm được lập trình theo hướng đối tượng thường chậm hơn các phầnmềm dựa trên thủ tục Lý do là vì các phần mềm này thường yêu cầu nhiềucâu lệnh hơn để thực thi Lập trình viên phải viết ra nhiều dòng mã để đảmbảo những thuộc tính của phương pháp này Do đó, kích thước cũng chươngtrình cũng lớn hơn

3.3 Phương pháp lập trình hướng đối tượng không phù hợp với mọi loại vấn

đề Mỗi phương pháp khác nhau sẽ phù hợp với một vấn đề khác nhau Lậptrình hướng đối tượng cũng vậy

Trang 8

Thực tế, có những vấn đề mặc định sẽ được giải quyết tốt hơn nếu lập trìnhviên sử dụng phương pháp lập trình chức năng (Functional Programming),lập trình logic,

Trang 9

hoặc lập trình thủ tục Nếu ta áp dụng lập trình hướng đối tượng, có thể sẽkhông đem lại hiệu quả tốt.

Câu 4: Nêu khái niệm về công nghệ phần mềm Nêu nội dung của phương

pháp xây dựng phần mềm theo mô hình xoắn ốc Đánh giá ưu nhược điểm của

mô hình này Hiện nay, phát triển phần mềm, nên theo mô hình nào, tại sao?

* Phương pháp xây dựng phần mềm theo mô hình xoắn ốc.

Mô hình xoắn ốc được Boehm đưa ra năm 1988 Mô hình này đưa thêm vàoviệc phân tích yếu tố rủi ro Quá trình phát triển được chia thành nhiều bướclặp lại, mỗi bước bắt đầu bằng việc phân tích rủi ro rồi tạo bản mẫu, cải tạo vàphát triển bản mẫu, duyệt lại, và cứ thế tiếp tục (hình 1.3) Nội dung mộtbước gồm bốn hoạt động chính:

Lập kế hoạch: xác định mục tiêu, các giải pháp và ràng buộc

Phân tích rủi ro: phân tích các phương án và xác định/giải quyết

rủi ro Kỹ nghệ: phát triển sản phẩm “mức tiếp theo”

- Đánh giá: đánh giá của khách hàng về kết quả của kỹ nghệ

Với mỗi lần lặp xoắn ốc (bắt đầu từ tâm), các phiên bản được hoà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áccũ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ếphay dừng” Nếu rủi ro quá lớn thì có thể đình chỉ dự án

Mô hình xoắn ốc cũng có một số vấn đề như khó thuyết phục những kháchhàng lớn rằng cách tiếp cận tiến hóa là kiểm soát được Nó đòi hỏi tri thứcchuyên gia đánh giá rủi ro chính xác và dựa trên tri thức chuyên gia này màđạt được thành công Mô hình xoắn ốc đòi hỏi năng lực quản lý cao, nếukhông quản lý tốt thì rất dễ rơi vào trạng thái sửa đổi cục bộ không có kếhoạch của mô hình làm bản mẫu (thăm dò) Và mô hình này còn tương đốimớ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 Cầnphải có thêm một số năm nữa trước khi người ta có thể xác định được tínhhiệu quả của mô hình này với sự chắc chắn hoàn toàn

*Ưu điểm:

Lượng phân tích rủi ro cao Do đó việc tránh rủi ro được tăng cường

Ước lượng chi phí dễ dàng như việc hoàn thành một prototype trong mộtfragment nhỏ

Ứng dụng tốt đối với các dự án lớn và quan

trọng Kiểm soát tài liệu và phê duyệt chặt

chẽ

Chức năng bổ sung hoặc thay đổi có thể được thêm vào những giai đoạn

sau Phần mềm sẽ được sản xuất sớm trong vòng đời của phần mềm

Ứng dụng được phát triển nhanh và các tinh năng được thêm vào một cách có

hệ thống

Trang 10

Luôn có thời gian cho khách hàng để phản hồi về sản phẩm.

Trang 11

* Nhược điểm:

Đối với rủi ro, ở giai đoạn phân tích cần một chuyên gia có chuyên môn cao

để thực hiện việc phân tích

Không hữu ích với dự án có quy mô nhỏ

Thời gian và chi phí cho dự án có thể là vô hạn vì đặc tính xoắn ốc của môhình Tài liệu cho dự án có thể rất dài vì có các giai đoạn trung gian

Rủi ro có thể không đáp ứng được tiến độ hoặc ngân sách

Sự thành công của dự án phụ thuộc rất nhiều vào giai đoạn phân tích rủi ro

Câu 5: Nêu khái niệm về công nghệ phần mềm Nêu nội dung của phương

pháp xây dựng phần mềm theo mô hình làm bản mẫu Đánh giá ưu nhượcđiểm của mô hình này Hiện nay, phát triển phần mềm, nên theo mô hình nào,tại sao?

* Phương pháp xây dựng phần mềm theo mô hình làm bản mẫu.

Cách tiếp cận làm bản mẫu cho kỹ nghệ phần mềm là cách tiếp cận tốt nhất khi:

- Mục tiêu tổng quát cho phần mềm đã xác định,nhưng chưa xác định được input và output

toán, về thích nghi hệ điều hành hay giao diện người máy cần có

Khi đã có bản mẫu, người phát triển có thể dùng chương trình đã có hay cáccông cụ phần mềm trợ giúp để sinh ra chương trình làm việc

Làm bản mẫu là tạo ra một mô hình cho phần mềm cần xây dựng Mô hình

có thể có 3 dạng:

1 Bản mẫu trên giấy hay trên máy tính mô tả giao diện người-máy làmngười dùng hiểu

được cách các tương tác xuất hiện

2 Bản mẫu cài đặt chỉ một tập con chức năng của phần mềm mong đợi

3 Bản mẫu là một chương trình có thể thực hiện một phần hay tất cả chứcnăng mong muốn nhưng ở mức sơ lược và cần cải tiến thêm các tínhnăng khác tùy theo khả năng phát triển

Trang 12

Kết thúc

Bắt đầu

Sản phẩm cuối cùng

Tập hợp Yêu cầu

Thiết kế nhanh Làm mịn

yêu cầu

Xây dựng bản mẫu Đánh giá của

khách hàng

Trước hết người phát triển và khách hàng gặp nhau và xác định mục tiêu tổngthể cho phần mềm, xác định các yêu cầu đã biết, các miền cần khảo sát thêm.Tiếp theo là giai đoạn thiết kế nhanh, tập trung vào việc biểu diễn các khíacạnh của phần mềm thấy được đối với người dùng (input và output), và xâydựng một bản mẫu

Người dùng đánh giá và làm mịn các yêu cầu cho phần mềm Tiến trình nàylặp đi lặp lại cho đến khi bản mẫu thoả mãn yêu cầu của khách hàng, đồng thờigiúp người phát triển hiểu kỹ hơn nhu cầu nào cần phải thực hiện (hình 1.2).Một biến thể của mô hình này là mô hình thăm dò, trong đó các yêu cầu đượccập nhật liên tục và bản mẫu được tiến hóa liên tục để trở thành sản phẩmcuối cùng Mô hình làm bản mẫu có một số vấn đề như:

• Do sự hoàn thiện dần (tiến hóa) của bản mẫu, phần mềm nhiều khi cótính cấu trúc không cao, dẫn đến khó kiểm soát, khó bảo trì

• Khách hàng nhiều khi thất vọng với việc phát triển phần mềm do họnhầm tưởng bản mẫu là sản phẩm cuối cùng hướng tới người sử dụng.Khách hàng cũng có thể không dành nhiều công sức vào đánh giá bảnmẫu

Hình 1.2: Mô hình làm bản mẫu.

Câu 6: Nêu phương pháp lập sơ đồ phân rã chức năng của hệ thống Cho

ví dụ minh họa

Ngày đăng: 30/07/2022, 15:02

TỪ KHÓA LIÊN QUAN

w