Câu 1:Định nghĩa phần mềm? Kể các loại hệ thống phần mềm ứng dụng? Giải thích nội dung?
1)PM định nghĩa bao gồm: -các lệnh máy tính nhằm thực hiện chức năng xác định
-Các cấu trúc dữ liệu cho phép chương trình thao tác với dữ liệu
-Các tài liệu giúp cho người dùng vận hành được pm.
PM là1 tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó
(Pm là một (bộ) chương trình thực hiện một nhiệm vụ tương đối độc lập nhằm phục vụ cho một ứng dụng cụ thể việc quản lý hoạt động của máy tính hoặc áp dụng máy tính trong các hoạt động kinh tế, quốc phòng, văn hoá, giáo dục, giải trí…)
2)Các laọi hệ thống pm ứng dụng: chia phần mềm theo miềm ứng dụng làm 7 loại
a) Phần mềm hệ thống: là 1 tập các chương trình được viết để phuc vụ cho các chương trình khác. Xử lý các cấu trúc thông tin phức tạp nhưng xác định (trình biên dich, quản lý tệp, soạn thảo..) đặc trưng bởi các tương tác chủ yếu với phần cứng máy tính phuc vụ nhiều người dùng. Cấu trúc dữ liệu phức tạp và giao diện ngoài
b) phần mềm nghiệp vụ: là các phần mềm phuc vụ nghiệp vụ của 1 ngành nào đó cụ thể của tổ chức doanh nghiệp, gắn với hoạt động sản xuất. Đây có thể coi là lĩnh vực ứng dụng phần mềm rất lớn, điển hình của pm là hệ thống thông tin quản lý gắn liền với CSDL.
c)Pm time thực: PM điều phối phân tích hay kiểm soát các sự kiện thế giới thức ngya khi chúng xuất hiện
d)PM khoa học công nghệ: đặc trưng bởi các thuật toán (vd tính toán trên ma trận số..) thường đòi hỏi phần mềm có năng lức tính toán cao.
e)PM nhúng: nằm trong bộ nhớ chỉ đọc và được dùng để điều khiển các sản phẩm và hệ thống cho người dùng và thị trường công nghịêp có đặc trưng của pm time thực RTOS và pm hệ thống vd thang máy, nồi cơm điện
f)Pm máy tính cá nhân: bùng nổ từ khi xuất hiện máy tính cá nhânvd xử lý văn bản, đồ hoạ, quản trị CSDL(nhỏ). Giải quyết các bài toán nghiệp vụ nhỏ.Yếu tố giao diện giữa người dùng và máy tính được chú trọng
g)PM nhân tạo: dùng các thuật toán vi số để giải quyết các vấn đề phức tạp mà tính toán hay phân tíchtrức tiếp không giải quyết được. vd nhận dạng hình ảnh hay tiếng nói
Câu 2
Các đặc trưng của phần mềm? Các thuộc tính của phần mềm kỹ nghệ tốt?
A)Các đặc trưng của phần mềm:
a)PM ko chế tạo trên đĩa cổ điển: PM được thiêt kế phát triển như phần cứng nhưng nó ko được định hình trước, chỉ khi phát triển xong người ta có sản phẩm cụ thể mới hiểu được nó có hiểu quả hay ko. Tức là ở các bước trung gian chúng ta khó kiểm soát được pm
-Giá thành của pm chủ yếu tập trung vào chi phí nhân công phát triển pm phụ thuộc vào con người, sự hiểu biết khả năng quản lý…môi trường đa dạng và con người thay đổi do đó rất khó ước lượng chi phí cũng như phát triển pm
b)pm ko hỏng đi nhưng thoái hoá theo time, pm ko cảm ứng với những tác động môi trường vốn gây cho phần cứng bị mòn đi nhưng nó cũng bị thoái hoá theo time. Thực tế pm trải qua time sử dụng cần phải được thay đổi bảo trì để đáp ứng nhu cầu luôn thay đổi của ntổ chức của nó.
c)PM phần lớn đều được xác định từ đầu, ít đi lắp ráp từ các pm có sẵn. Pm ko có các danh mục cố định như phần cứng, nó thường được đặt hàng theo yêu cầu riêng của khách hàng
B)Các thuộc tính của pm kỹ nghệ tốt:Thuộc tính cảu một sản phẩm pm là các đặc tính xuất hịên từ sản phẩm một khi nó được cài đặt và được đưa ra dùng, mức hiệu quả, độ bền, khả năng bảo trì, khả năng dùng ở nhiều nền là các thuộc tính. Các thuộc tính biến đổi tuỳ theo pm.
a)Tính đúng đắn: pm đó thực hiện chính xác những mục tiêu và chức năng đã đề xuất ở giai đoạn thiết kế
b)Tính khoa học: pm đo phải thể hiện tính khoa học về cấu trúc (pm ko dược trùng lặp về chức năng, có quan hệ hữu cơ với nhau, cấu trúc chương trình phải chia thành những đơn vị cân đối…), về nội dung (các thuật toán dựa trên những thành tựu mới của toán học và tin học, có cơ sở chặt chẽ), về hình thức thao tác (tên các lệnh phải hợp lý, thể hiện tính logic và phù hợp với tư duy tự nhiên của người dùng*)
c)Tính hữu hiệu: hiệu quả kinh tế, tốc độ xử lý của sản phẩm (v=m/t), giới hạn tối đa của sản phẩm hoặc miền xác định của chương trình được xác định qua khối lượng tối đa của các đối tượng mà sản phẩm đó quản lý *, dung lượng tối đa của miền nhớ trong mà chương trình sử dụng*
d)tính sáng tạo: pm được thiết kế và cài đặt lần đầu tiên,mang tính đặc thù và có những ưu thế nổi bật so với pm cùng loại hiện hành
e)tính an toàn: pm có cơ chế bảo mật và bảo vệ các đối tượng do nó phát sinh hoặc quản lý. Bản thân pm cũng được đặt trong một cơ chế bảo mật nhằm chống sự sao chép trộm hoặc làm biến dạng pm.
f)tính toàn vẹn: ko gây ra nhập nhằng trong thao tác, đảm bảo tính nhất quán về cú pháp, có cơ chế ngăn ngừa việc phát sinh ra những đối tượng (dữ liệu, tri thưc,…) sai qui cách hoặc mâu thuẫn với các đối tượng đã có sẵn. Có cơ chế khôi phục lại toàn bộ hoặc một phần những đối tượng thuộc diện quản lý cảu pm
g)tính đầy đủ: được đánh giá qua các chức năng mà sản phẩm đó cung cấp: tính đối xứng, tính tiêu chuẩn*
h)tính độc lập: độc lập với thiết bị (có thể cài đặt một cách dễ dàng trên nhiều loại máy và có thể quản lý nhiều thiết bị đi kèm với máy) đọc lập với cấu trúc của đối tượng mẩn phẩm đó quản lý*, độc lập với nội dung của đối tượng mà sản phẩm đó quản lý*
i)tính phổ dụng: pm có thể áp dụng cho nhiều lĩnh vức theo nhiều chế độ làm việc khác nhau
f)tính đơn giản: dễ thao tác, dễ học và dễ hoàn thiện, ngôn ngữ trong sáng dễ hiểu dễ nhớ.
k)tính phát triển: pm có thể mở rộng, tăng cường về mặtchwcs năng một cách dễ dàng
Câu 3
Định nghĩa kỹ nghệ phần mềm? Các yếu tố: Phương pháp, công cụ và thủ tục trong quá trình kỹ nghệ được hiểu như thế nào?
A)ĐN kỹ nghệ PM: việc thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để thu đượ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. Kỹ nghệ pm là một quá trình gồm 1 loạt các bước chứa đựng 3 yếu tố chủ chốt: phương pháp, công cụ và thủ tục
B)các yếu tố: phương pháp, công cụ và thủ tục trong quá trình kỹ nghệ được hiểu:
a)Phương pháp: chỉ ra cách làm về mặt kỹ thuật, phương pháp để xây dựng pm. Được sử dụng trong các bước lập kế hoạch, ước lượng dự án, phân tích yêu cầu hệ thống, thiết kế cấu trúc dữ liệu, kiến trúc chương trình, thủ tục thuật toán, mã hoá kiểm thử và bảo trì.
Thường đưa ra các ký pháp đồ hoạ hay hướng ngôn ngữ đặc biệt, cách thực hiện và 1 tập các tiêu chuẩn về chất lượng
b)Công cụ kỹ nghệ pm cung cấp sự hỗ trợ tự động hay bán tự động để pháp triển pm theo nhiều phương pháp khác nhau.
c)Các thủ tục là chất keo dán các phương pháp và công cụ lại với nhau làm cho chúng được sử dụng hợp lý và đúng hạn trong quá trình phát triển pm: Các thủ tục bao gồm:
-xác định các trình tự của các phương pháp sẽ được áp dụng cho mỗi dự án vd:phan tích yêu cầu, đặc tả
-Tạo sản phẩm cần bàn giao, cần cho việc kiểm soát để đảm bảo chất lượng và điều hoà thay đổi tài liệu bàn giao: những yêu cầu của khách hàng như: tài liệu thống kê, tài liệu hướng dẫn sử dụng, mã nguồn
-Xác định những cột mốc mà tại đó có các sản pjẩm nhất định được bnà giao để cho người quản lý pm nắm được kết quả, tiến độ và kiểm soát được tất cả
Câu 4
Mô hình vòng đời cổ điển gôm những bước nào? Ưu nhược điểm của mô hình này?
'
Mô hình vòng đời cổ điển hay còn gọi là mô hình thác nước yêu cầu tiếp cận một cách hệ thống tuần tự và chặt chẽ
a)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 lượng nhỏ thiết kế có phân tích ở mức đỉnh (ở mức cao nhất). Mục đích cảu bước này là khái quát mức phạm vi, yêu cầu cũng như tính khả thi cảu dự án
b)phân tích yêu cầu pm: phân tích yêu cầu việc tập trung việc thu thập và phân tích các thông tin cho pm, các chức năng cần phải thực hiện. Hiệu năng cần có và giao diện cho người sử dụng. Kết quả của giai đoạn này là tư liệu về yêu cầu cho hệ thống và đặ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
c)Thiệt kế: là quá trình chuyển hoá các yêu cầu pm thành các mô hình, mô tả thiết kế. Lập thiết kế để phê duyệt
Thiết kế gồm những bước tuỳ thuộc mô hình và chọn cách thiết kế nào, tuy nhiên tập trung vào bốn công việc chính: thiết kế kiến trúc pm, thiết kế cấu trúc dữ liệu, thiết kế chi tiết các thủ tục, thiết kế giao diện và tương tác
d)Mã hoá: là biểu diễn thiết kế bằng 1 hay 1 số ngôn ngữ lập trình và dịch thành mã máy thực hiện được. Tuỳ thuộc vào mức ứng dụng của hệ thống thì người ta sẽ chọn ngôn ngữ lập trình nào.vd C-hệ thống, web
e)Kiểm thử: tiến trình kiểm thử bao gồm phát hiện và sửa lỗi phần logic bên trong chương trình. Kiểm tra xem pm có hoạt động như mong muốn hay không. Tức là phát hiện và sửa lỗi về việc thiếu hụt hoặc làm sai các chức năng. Kiểm tra xem trong pm có đảm bảo tính hiệu quả trong việc thực hiện hay ko và tính bảo mật của pm.
f)Bảo trì: sửa lỗi phát sinh khi áp dụng chương trình hay thích ứng nó với thay đổi trong môi trường bên ngoài hoặc là yêu cầu bổ sung chức năng hay nâng cao hiệu năng cần có
Nhược điểm:
-các dự án thực tế hiếm khi tuân theo dòng chảy tuần tự mà mô hình đề nghị. Bao giờ cũng lặp lại, cũng xuất hiện tạo ra vấn đề trong việc áp dụng mô hình này.
-khách hàng thường khó phát biểu mọi yêu cầu 1 cách tường minh từ đầu
-Đòi hỏi khách hàng phải kiên nhẫn, bản làm việc được của chương trình chỉ cói được vào lúc cuối của thời gian dự án, 1 sai sót nhỏ trong phân tích thiết kế nếu đến khi chương trình làm việc mới phát hiện ra có thể sẽ là 1 thảm hoạ
-Có xu hướng dành quá ít thời gian cho phân tích và thiết kế, kết quả là hệ thống ko đáp ứng yêu cầu người dùng và đòi hoỉ công sức bảo trì rất lớn
Ưu điểm:
-mô hình vòng đời cổ điển có một vị trí quan trọng trong công việc về kỹ nghệ pm, nó đưa ra 1 tiêu bản trong đó có thể bố trí các phương pháp cho phân tích, thiết kế, kiểm thử và bảo trì
-phù hợp với các dự án nhỏ
Câu 5
Mô hình làm bản mẫu hoạt động như thế nào? Ưu nhược điểm của mô hình này?
Hoạt động: Làm bản mẫu là một mô hình làm việc của hệ thống thông tin hay một phần của hệ thống thông tin hay một phần của hệ thống trong bước ban đầu. Sau mỗi lần được xây dựng, các mẫu đầu tiên được người dùng thử nghiệm và đánh giá; và trong quá trình này, các yêu cầu được chính xác hay được thêm vào. Mẫu đầu tiên sau đó được làm mịn hoắc thiết kế lại, và quá trình này được lặp đi lặp lại cho đến khi không còn yêu cầu mới nào được phát hiện và không cần sửa đổi gì thêm nữa. Sau đó phiên bản cuối cùng được sử dụng. Mỗi bản mẫu nhận được lần sau đáp ứng được nhu cầu người dùng nhiều hơn, gần với hệ thống cần xây dựng hơn.
-Bước 1: xác định nhu cầu cơ bnar của người sử dụng: trước hết người phát triển và khách hàng gặp nhau xây dựng mục tiêu tổng thể cho pm, xác định các yêu cầu đã biết, các miền cần khảo sát thêm.
-Bước 2: Phát triển bản mẫu đầu tiên Giai đoạn thiết kế nhanh tập trung vào việc biểu diễn các khía cạnh của pm, thấy được đối với người dùng và xây dựng1 bản mẫu một cách nhanh chóng
-Bước 3: Sử dụng bản mẫu làm việc với người sử dụng: bản mẫu được đem trình diễn cho người dùng thử nghiệm, người dùng đánh giá và làm mịn các yêu cầu cho pm, tiến trình này lặp đi lặp lại cho đến khi thoẩ mãn yêu cầu của khách hàng, đồng thời giúp người phát triển hiểu kỹ hơn yêu cầu nào cần phải thực hiện.
-Bước 4: Hoàn thiện và tăng cường bản mẫu:Người thiết thay đổi bản mẫu để đáp ứng đòi hỏi của người sử dụng và làm min hơn bản mẫu một cách phù hợp trên cơ sở ý kiến người dùng và sử dụng thông tin bổ sung từ các nguồn dữ liệu khác.
-các dạng của bản mẫu: có 3 dạng
+Bản mẫu trên giấy hẩytên máy tính mô tả giao diện người-máy, làm người dùng hiểu được cách tương tác xuất hiện.
+Bản mẫu cái đặt chỉ một tập con các chức năng cảu pm mong đợi
+Bản mẫu là một chương trình có thể thực hiện 1 phần hay tất cả các chức năng mong muốn nhưng ở mức sơ lược và cần cải tiến thêm các tính năng khác tuỳ theo khả năng phát triển
Ưu điểm:
-Không phải ở bước cuối cùng khách hàng mới đánh giá được kết quả cuối cùng. Và luôn có sự trao đổi giữa khách hàng với người phát triển
-Làm bản mẫu đặc biệt có lợi khi mà một ssos nhu cầu thoogn tin hay giải pháp cho nó còn chưa dược xác định
-Có lợi cho thiết kế giao diện cuối cùng
-Hạn chế được những chi phí quá đáng của sự phát triển
-Thích hợp nhất với những hệ thống nhỏ hay hệ thống lớn có thể chia nhỏ đẻ làm từng phần
Nhược điểm:
-Do sự hoàn thiện tiến hoá của bản mẫu pm thường có cấu trúc ko cao nên khó kiểm soát, khó bảo trì.
-Khi mà bản mẫu ko có cấu trúc chặt chẽ, việc đảm bảo kỹ thuật có thể ko hiệu quả. Nó có thể ko ăn nhập với những trường hợp mà dữ liệu ko lớn hay số người dùng nhiều
-Khách hàng nhiều khi thất vọng với việc phát triển pm do họ lầ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, do đó khách hàng cũng không giành nhiều công sức vào đánh giá bản mẫu-> do đó những sai sót nhỏ có thể được sửa đổi chậm hơn
-Hệ thống thay đổi nhanh, việc làm tài liệu có thể ko kịp thời
Câu 6
Mô hình xoắn ốc hoạt động như thế nào? Ưu nhược điểm của mô hình này?
Hoạt động: quá trình phát triển được chia thành hiều bước lặp đi lặ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 ra 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. Nội dung 1 bước bao gồm 4 hoạt động chính:
-hđ1: lập kế hoạch, xác định mục tiêu và các giải pháp và các ràng buộc
-hđ2: phân tích rủi ro; phát triêể các phương án và xác định giải quyết rủi ro
-hđ3: kỹ nghệ: đưa ra các bản mẫu, phát triển sản phẩm ở mức tiếp theo
-hđ4: Đá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ừ trung tâm), các phiên bản được hoàn thiện và bổ sung dần. Nếu phan tích rủi ro chỉ ra rằng yêu cầu là ko chắc chắn thì bản mẫu có thể được sd trong góc phần tư 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 có thể đình chỉ dự án
Ưu điểm: Mô hình xoắn ốc là cách tiếp cận thức tế nhất để phát triển các hệ thống và pm quy mô lớn. Trong đó làm bản mẫu xem như một cơ chế làm giảm bớt rủi ro
-Chính quá trình lặp và đánh giá rủi ro ở mỗi bước là cơ chế tốt đảm bảo sự thành công của công việc xây dựng HTTT (vì rủi ro ở mỗi bước là nhỏ, dễ dàng nhận ra, để khắc phục và có xảy ra ko ảnh hưởng lớn đến phần đã xây dựng).
Nhược điểm:
-Cách tiếp cận tiến hoá khó kiểm soát được
-Đòi hỏi chuyên gia đánh giá rủi ro phải có năng lực quản lý chuyên môn cao, nếu ko quản lý tốt sẽ rơi vào trạng thái sửa lỗi cục bộ, ko có kế hoạch
-Mô hình tương đối mới và chưa được sử dụng rộng rãi
Câu 7
Lý do phải quản lý dự án? Mục tiêu quản lý dự án là gì? Nhiệm vụ của người quản lý là làm gì?
a)Lý do phải quản lý dự án: chúng ta phải quản lý dự án để đảm bảo dự án đó được thực thi một cách hiệu quả nhất
b)Mục tiêu quản lý dự án là: quản lý dự án là tầng đầu tiên trong phát triển pm, chúng gọi là tầng quản lý vì nó là bước kỹ thuật cơ sở kéo dìa suốt vòng đời pm. Mục tiêu cảu quản lý dự án là đảm bảo cho dự án: đúng kế hoạch thời hạn, không vượt dự toán (chi phí, thời gian), thoả mãn các nhu cầu của khách hàng, đầy đủ các chức năng đã định, lợi nhuận phải nhiều hơn chi phí
c)Nhiệm vụ của người quản lý là:
-đánh giá thực trạng của dự án (tình trạng nhân lực, csvc,…)
-xác định mục tiêu:
-kế thừa các tiền đề
-thiết lập (viết dự án)
-ước lượng chi phí
-phân tích rủi ro
-lập kế hoạch,chọn người vào dự án, theo dõi và kiểm soát dự án
-viết báo cáo và trình diễn sản phẩm
Câu 8 + câu 9
Độ đo phần mềm là gì? Có những phương pháp phổ biến nào để đo kích cỡ phần mềm?
a)Độ đo pm: là đo kích cỡ pm
Những phương pháp phổ biến để đo kích cỡ pm
Phương pháp Use Cases, phương pháp Function point, và LOC, được sử dụng rộng rãi nhất hiện nay để ước lượng nguồn lức cho phát triển 1 pm
-Phương pháp Use Cases dựa trên việc xác định độ phức tạp của các Actor và các giao diện trên mỗi Use Cases. Use Cases point là phương pháp do hãng Rational giới thiệu, dùng để xác định kích thước một pm, đặc biệt là đối với pm dùng ULM trong phân tích, thiết kế và xây dựng. Trong thực tế có 1 mối quan hệ giữa usecases và code, các usecases phức tạp thường sẽ tốn thời gian để code hơn.
Các điểm mà phương pháp usecases point quan tâm trước khi ước lượng kích thước pm là:
+số lượng và độ phức tạp của các usecases trogn hệ thống.
+Số lượng và độ phức tạp của các Actor (thực hiện) trong hệ thống.
+Các yêu cầu non-functional khác như ngôn ngữ lập trình, động lực của nhóm phát triển…
+Môi trường để phát triển hệ thống như ngôn ngữ lập trình, động lực của nhóm phát triển…
-Phương pháp phan tích Function Point (đo điểm chức năng) là một kỹ thuật được A.J.Albrecht của hãng IBM giới thiệu vào năm 1979, nó khoa học hơn và dựa trên sự hiểu biết các yêu cầu của người sử dụng nó cũng như nó độc lập với phần mềm. Tính ưu điểm nổi bật là nó cùng cấp một độ đo ứng dụng chung và khong phụ thuộc vào nền. Tuy nhiên lại có sự phụ thuộc vào các tham số được thiết lập dựa trên kinh nghiệm.Là phương pháp chuẩn để tính kích thước pm dựa trên việc phân tích các chức năng mà pm đó phải thực hiện
-phương pháp LOC: đo kích thước pm bằng cách đo số dòng lệnh, trực quan phụ thuộc vào ngôn ngữ lập trình cụ thể. Từ đó ta đưa ra 1 số công thức:
Hiệu năng=KLOC / người-tháng
CHất lượng = Số lỗi / KLOC
Chi phí = giá thành cả pm/ KLOC
Các thông số cảu các dự án trước sẽ phục vụ cho sự phát triển pm sau.
Câu 9
Giải thích nội dung hai chỉ tiêu:
Số dòng lệnh (LOC)?
Điểm chức năng (FP)?
Viết công thức các độ đo chất lượng dựa trên thống kê?
- Số dòng lệnh (LOC): đo kích thước pm bằng cách đo số dòng lệnh, trực quan phụ thuộc vào ngôn ngữ lập trình cụ thể. Từ đó ta đưa ra 1 số công thức:
Hiệu năng=KLOC / người-tháng
CHất lượng = Số lỗi / KLOC
Chi phí = giá thành cả pm/ KLOC
Các thông số cảu các dự án trước sẽ phục vụ cho sự phát triển pm sau.
- Điểm chức năng (FP): từng chức năng được đưa vào trong hệ thống sẽ được diễn đạt định lượng bằng một phương pháp nào đó, và do vậy dữ liệu được biểu diễn theo định lượng được dùng như cách đo ước lượng
Câu 10
Trình bày các phương trình cơ bản của mô hình COCOMO?
Ước lượng là công việc rất quan trọng của người quản lý dự án, được tiến hành bằng cách chia nhỏ các modul rồi ước lượng . Và Mô hình COCOMO là 1 mô hình ước lượng chi phí số dòng lệnh.
- Nỗ lực phát triển: E = a*Lb (ngày-tháng)
L: số KLOC
-Thời gian phát triển : T = c* Id
-Số người tham gia: N = E/ T
Câu 11
Nêu các bước tiến hành mô hình COCOMO?
Ước lượng là công việc rất quan trọng của người quản lý dự án, được tiến hành bằng cách chia nhỏ các modul rồi ước lượng . Và Mô hình COCOMO là 1 mô hình ước lượng chi phí số dòng lệnh.
Các bước tiến hành mô hình COCOMO:
-Thiết lập kiểu dự án (đơn giản, trung bình, phức tạp)
-Xác lập các modul và ước lượng dòng lệnh
-Tính lại số dòng lệnh trên cơ sở tái sử dụng
-Tính nỗ lực phát triển trên từng modul (có thể tính lại E dựa trên độ khó của dự án như: mức độ tin cậy, kích cỡ dữ liệu, tốc độ, bộ nhớ…)
-Tính thời gian và số người tham gia
Công việc đo pm là khó do:
-Hầu hết các thông số đều ko được đo trực quan
-Rất khó thẩm định các thông số
-Ko có 1 mô hình tổng quát (mô hình mang t/c dự kiến)
-các kỹ thuật đo còn đang thay đổi
Câu 12
Trình bày nội dung của quản lý nhân sự? Các đặc trưng của nhóm và tổ chức làm việc theo nhóm?
a)Quản lý nhân sựlà một hoạt động trong lĩnh vực quản lý và trong mọi lĩnh vực (kinh doanh, tổ chức…) và cũng là một đề tài nghiên cứu trên lý thuyết, liên quan đến lý thuyết và các kỹ thuật thực hành để quản lý một lực lượng lao động.
Nguồn lực con người đóng vai trò quan trong trong hoạt động của các doanh nghiệp hay tổ chức. Do đó việc khai thác tốt nguồn lực này để phục vụ phát triển doanh nghiệp và xã hội là một vấn đề quan trọng trong việc quản lý các tổ chức và doanh nghiệp. Việc quản lý nguồn lực đòi hỏi sự hiểu biết về con người ở nhiều khía cạnh, và quan niệm rằng con người là yếu tố trung tâm của sự phát triển. Các kỹ thuật quản lý nhân lực thường có mục đích tạo điều kiện để con người phát huy hết khả năng tiềm ẩn, giảm lãng phí nguồn lực, tăng hiệu quả của tổ chức.
Chi phí phát triển pm chủ yếu dựa vào chi phí trả công cho nhân viên, là phần chính của chi phí xây dựng pm ngoài ra năng lực của con người phát triển pm lại rất biến thiên-> kéo theo sự phức tạp trong quá trình tính toán
b/Đặc trưng của nhóm và phát triển theo nhóm:
-Phát triển pm được tiến hành theo nhóm. Kích thước tốt cho mỗi nhóm là khoảng từ 3-8 người
-PM 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ần có người quản lý và người này có vai trò lãnh đạo về mặt kỹ thuật, Người thiết kế giao diện, Quản lý cấu hình phần mềm (Source, Code), Người kiểm thử
-Không nên tăng số lượng thành viên 1 cách vô thức khi dự án thiều người vì như thế chỉ làm tăng sự phức tạp giữa các thành viên khiến công việc nhiều khi chậm lại. Một số việc phức tạp đặc thù chỉ nên để 1 người làm
-Một đặc trưng của làm việc theo nhóm là sự trao đổi thông tin giữa các thành viên trong nhóm. Thời gian dùng cho việc giao tiếp có thể chiếm đến nửa thời gian dành cho phát triển pm
- Phức tạp khi thông tin giá của pm và cần ghi nhớ rằng trong phát triển pm: năng lực của các nhân viên là ko đồng đều, 1 số công việc thì quá khó với người này, nhưng lại dễ với người khác do vậy người quản lý phải nhạy bén nắm rõ vấn đề để phân công công việc cho hợp lý.
Câu 13
Quản lý cấu hình là gì? Quản lý cấu hình gồm những công việc nào?
-Quản lý cấu hình là một công việc quan trọng trong sản xuất phần mềm. là quản lý mã nguồn
-Mã nguồn và dữ liệu là sản phẩm chính của dự án phần mềm.
-Quản lý cấu hình được tự động hóa thông qua các công cụ.
-Nhiệm vụ chính của công cụ quản lý là:
· Lưu trữ mã nguồn.
· Tạo ra 1 điểm truy cập duy nhất cho nguời phát triển sửa đổi hoặc thêm bớt mã nguồn.
-Do đó chúng ta có thể dễ dàng :+ kiểm soát được tính thống nhất của mã nguồn
+Kiểm soát được sự sửa đổi, lý do của sự sửa đổi và lý lịch của các phần sửa đổi
+Dễ dàng lưu trữ và truy cập đến các phiên bản khác nhau của pm
+Tối ưu hóa vùng cần thiết cho việc lưu trữ
Dữ liệu của dự án thông thường: mã nguồn, dữ liệu, tư liệu, công cụ phát triển
Câu 14
Nêu các đặc trưng của ngôn ngữ lập trình? Giải thích?
Ngôn ngữ lập trình là phương tiện để liên lạc giữa con người và máy tính. Tập trung vào nhu cầu xác định dự án pm riêng. Mặc dù người ta vẫn cần các yêu cầu riêng cho chương tyrinhf gốc nhưng chúng ta có thể thiết lập được 1 tập tổng quát những đặc trưng sau:
-Dễ dịch thiết kế sang chương trình
-Có trình biên dịch hiệu quả: những tiến bộ nhanh chóng trong tốc độ xử lý và mật độ nhớ đã bắt đầu làm giảm nhẹ chương trình siêu hiệu quả. Nhiều ứng dụng đã bắt đầu các chương trình chạy nhanh gọn, dịch tối ưu có thể hấp dẫn nếu hiệu năng pm là yêu cầu chủ chốt
-Tính khả chuyển: chương trình gốc là 1 đặc trưng ngôn ngữ lập trình có thể hiểu theo các cách sau:
+Các chương trình gốc có thể được chuyển từ bộ xử lý này sang bộ xử lý khác và từ chương trình biên dịch này sang chương trình biên dịch khác với rất ít hoặc ko phải sửa đổi gì.
+Chương trình gốc vẫn ko thay đổi ngay cả khi môi trường của nó thay đổi
+Chương trình gốc có thể được tích hợp vào trong các pm khác nhau với ít hay ko cần thay đổi gì vì các đặc trưng của ngôn ngữ lập trình
+có công cụ phát trieernchw[ng trình biên dịch, trợ giúp định dạng chương trình. Tính có sẵn của phát triển có thể làm ngắn bớt thời gian cần để sinh ra chương trinh gốc và có thể cải thiện chất lượng của chương trình. Nhưng ngôn ngữ lập trình có thể cần tới 1 loạt các công cụ như trình biên dịch gỡ lỗi, trợ giúp định dạng chương trình gốc, các tiện nghi soạn thảo có sẵn hay thư viện chương trình con mở rộng.
+Dễ bảo trì: tính dễ bảo trì của chương trình gốc có tầm quan trọng chủ chốt cho tất cả các nỗ lực pm. Việc bảo trì ko thể được tiến hành chừng nào người ta chưa hiểu được pm. Các yếu tố của cấu hình pm như tài liệu thiết kế, đưa ra một nền tảng cho sự liên kết nhưng cuối cùng thì chương trình gốc cũng phải được đọc và sửa đổi theo như thiết kế
Câu 15
Nêu các loại hình (mức) kiểm thử phần mềm? Giải thích?
Mục đích của việc kiểm thử là lập kế hoạch và triển khai việc kiểm tra các sản phẩm pm để: xác định rằng mọi yêu cầu đã được thực hiện đúng đắn + xác định và đảm bảo rằng các lỗi được phát hiện trươc khi triển khai pm. Do đó ta các mức kiểm thử sau:
-Kiểm thử đơn vị (Unit test): Đc tiến hành sớm nhất trong kiểm thử. Mục đich của kiểm thử đơn vị là kiểm thử từng module đơn vị nhỏ nhất bên trong hệ thống đang được xây dựng.
Phương pháp kiểm thử có thể sử dụng : hộp đen + hộp trắng
-Kiểm thử tích hợp (Integration test): Được tiến hành sau khi kiểm thử đơn vị đã hoàn tất để kiểm chứng rằng nhiều module có thể vận hành đúng khi được ghép với các module khác có liên quan. Trong khi tiến hành kiểm thử này chú ý chính được dành cho giao diện và tương tác giữa các module của chương trình. Các kỹ thuật được dùng trong kiểm thử tích hợp là:
+Kiểm thử từ trên xuống được dùng để phát triển hệ thống theo thứ tự các module từ cao xuống thấp.
+Khử từ dưới lên trên : tích hợp các modul phát triển từ thấp lên cao. Được dùng để phát triển hệ thống theo thứ tự các modul thấp đến modul cao
+Kiểm thử tổ hợp là việc tổ hợp của các kiểm thử từ trên xuống hoặc từ dưới lên, các kiểm thử này được tiến hành đồng thời cho đến khi đạt tới ranh giới đã thỏa hiệp sẵn.
-Kiểm thử hệ thống (System test):
+Sau khi các module được móc nối với nhau đã được kiểm thử thì các kiểm thử được tiến hành theo trình tự của từng chương trình, rồi kiểm thử từng hệ con một và cuối cùng là kiểm thử cho toàn hệ thống.
+Các kiểm thử được tiến hành sau khi hệ thống được tích hợp gọi là kiểm thử hệ thống. Trong việc tiến hành kiểm thử này phần lớn chú ý được dành cho giao diện của các hệ con. Kiểm thử hệ thống được gọi là kiểm thử toàn diện, được thực hiện bởi 1 nhóm chuyên viên kiểm thử. Nó là kiểm thử cuối cùng được thực hiện bởi 1 tổ chức phát triển hệ thống.
Các kiểu kiểm thử hệ thống:
+Kiểm thử chức năng: được tiến hành để kiểm chứng liệu các yêu cầu chức năng của người dùng có được đáp ứng hay ko.
+ Kiểm thử hiệu năng: được tiến hành để kiểm tra thời gian đáp ứng và các hiệu năng khác.
+ Kiểm thử vận hành: giao diện người dùng và các điểm khác liên quan đến vận hành được kiểm tra và kiểm chứng.
+ Kiểm thử tải: được thực hiện để kiểm tra hiệu năng và chức năng của hệ thống khi 1 khối lượng lớn dữ liệu được đưa vào cùng một lúc.
+ Kiểm thử khả năng bảo mật: đảm bảo tính toàn vẹn bảo mật của dữ liệu và hệ thống
+ Kiểm thử chức năng phục hồi: đảm bảo hệ thống có khả năng phục hồi trạng thái bảo mật trước đó trong tình huống mất mát tài nguyên hay dữ liệu.
+ Kiểm thử chịu đựng: được tiến hành để kiểm tra, kiểm chứng rằng hệ thống có thể đứng vững sau nhiều giờ làm việc liên tục không.
-Kiểm thử chấp nhận (Acceptance test): sau giai đoạn kiểm thử hệ thống là kiểm thử chấp nhận sản phẩm được khách hàng thực hiện hoặc ủy quyền cho nhóm thứ 3 thực hiện. mục đích là chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm và trả tiền thanh toán hợp đồng. gắn với kiểm thử này thường là 1 nhóm các dịch vụ, tài liệu đi kèm (hướng dẫn cài đặt, sử dụng…).tất cả các tài liệu đi kèm được cập nhật và kiểm tra chặt chẽ
-Kiểm thử hồi quy: không phải là mức độ kiểm tra như các mức độ đã nói ở trên, nó đơn thuần là kiểm tra lại phần mềm sau khí có một thay đổi xảy ra để đảm bảo phiên bản phần mềm mới thực hiện các chức năng tốt hơn phiên bản cũ và sự thay đổi không gây ra lỗi mới trên các chức năng đã làm việc tốt. Kiểm thử này có thể kiểm thử ở mọi mức độ kiểm tra.
Câu 16
Liệt kê các kỹ thuật kiểm thử? So sánh giữa kiểm thử hộp đen và kiểm thử hộp trắng? Kiểm thử đơn vị (Unit test) là kiểm thử hộp đen hay kiểm thử hộp trắng? Tại sao?
Mục đích của việc kiểm thử là lập kế hoạch và triển khai việc kiểm tra các sản phẩm pm để: xác định rằng mọi yêu cầu đã được thực hiện đúng đắn + xác định và đảm bảo rằng các lỗi được phát hiện trươc khi triển khai pm. Các kỹ thuật kiểm thử:
a) Kiểm thử chức năng: còn gọi là kiểm thử hộp đen
+Là sự kiểm thử sử dụng các ca kiểm thử được thiết kế dựa trên đặc tả yêu cầu, tài liệu người dùng nhằm mục đích phát hiện ra các khiếm khuyết.
+Kiểm thử chức năng nhìn nhận module được kiểm thử như 1 hộp đen và chỉ quan tâm đến chức năng hành vi của module, tức là kiểm tra xem module có hoạt động đúng với đăc tả hay không. Các ca kiểm thử bao gồm các trường hợp đúng và những trường hợp dữ liệu vào không hợp lệ. Chiến lược chung khi thiết kế dữ liệu kiểm thử là phân hoạch dữ liệu tương đương. Phân hoạch tương đương chia miền dữ liệu vào thành các vùng. Mỗ vùng dữ liệu chỉ cần xây dựng 1 ca kiểm thử, thêm vào đó các ca kiểm thử sử dụng đối với biên giới của các vùng.
+Ngoài các ca kiểm thử trên thông thường còn cần kiểm tra các dữ liệu đặc thù như biên của số trong máy tính, số âm, số thập phân hay trường hợp ko có dữ liệu đầu vào, hay trường hợp input ngẫu nhiên, sai kiểu,…
+Kiểm thử giúp cho chúng ta phát hiện sự thiếu sót các chức năng, sai sót về giao diện giữa các module, sự không hiệu quả giữa các chương trình, lỗi khởi tạo, lỗi kết thúc. Tuy nhiên kiểm thử chức năng chủ yếu dựa trên các đặc tả nên không kiểm thử được các trường hợp ko được khai báo trong đặc tả, nên không đảm bảo thử hết được các khối mã nguồn của module.
b)Kiểm thử cấu trúc (kiểm thử hộp trắng):
+Là sự kiểm thử dựa trên phân tích chương trình, kỹ thuật chính ở đây là dựa trên vệc xác định đường đi của chương trình từ input -> output
+Mục đích của kiểm thử cấu trúc là tìm mọi đường đi có thể, tức là đảm bảo mọi lệnh đều đc thực hiện ít nhất 1 lần trong 1 ca kiểm thử nào đó.
+Kiểm thử cấu trúc chú trọng vào chương trình ở mức chi tiết và phù hợp khi kiểm tra các module nhỏ. Tuy nhiên nó có thể ko đầy đủ vì kiểm thử hết các lệnh, các đường đi ko chứng tỏ chúng ta có thể kiểm thử hết các trường hợp có thể, có khả năng tồn tại các tổ hợp khác nhau gây nên lỗi
ð tóm lại cả 2 kiểm thử trên đều rất quan trọng và chúng bổ khuyết cho nhau. Nên cần kết hợp cả hai loại này khi kiểm thử.
* Kiểm thử đơn vị (Unit test) có thể là kiểm thử hộp trắng cũng có thể là kiểm thử hộp đen. Vì nó được tiến hành sớm nhất trong kiểm thử với mục đich của kiểm thử đơn vị là kiểm thử từng module đơn vị nhỏ nhất bên trong hệ thống đang được xây dựng. do đó nó vừa là hệ thonngs vừa là chức năng
Bạn đang đọc truyện trên: Truyen2U.Pro