Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
526 KB
Nội dung
Nguoi viet: Diep Quoc Quang Bài giảng Kỹ thuật phầnmềm MỤC LỤC CHƯƠNG 1 .1 Phầnmềm và kỹ nghệ phầnmềm .1 1.1 Tầm quan trọng và sự tiến hóa của phầnmềm 1 1.1.1 Tiến hóa của phầnmềm .1 a. Những năm đầu (từ 1950 đến 1960): .1 b. Thời kỳ trải rộng từ những năm 1960 đến giữa những năm 1970: .1 c. Thời kỳ từ giữa những năm 1970 đến đầu những năm 1990: .2 d. Thời kỳ sau 1990: 2 1.1.2 Sự ứng dụng của phầnmềm .2 a. Phầnmềm hệ thống 2 b. Phầnmềm thời gian thực 3 c. Phầnmềm nghiệp vụ .3 d. Phầnmềm khoa học và công nghệ .3 e. Phầnmềm nhúng .3 f. Phầnmềm máy tính cá nhân .3 g. Phầnmềm trí tuệ nhân tạo .4 1.2 Khó khăn, thách thức đối với phát triển phầnmềm .4 1.2.1 Phầnmềm và phầnmềm tốt .4 1.2.2 Đặc trưng phát triển và vận hành phầnmềm .5 a. Phầnmềm không được chế tạo theo nghĩa cổ điển .5 b. Phầnmềm không hỏng đi nhưng thoái hóa theo thời gian 6 c. Phần lớn phầnmềm đều được xây dựng từ đầu, ít khi được lắp ráp từ thành phần có sẵn 6 1.2.3 Nhu cầu và độ phức tạp 6 1.3 Kỹ nghệ phần mềm 7 1.3.1 Định nghĩa 7 a. Các phương pháp 7 b. Các công cụ .7 c. Các thủ tục 8 1.3.2 Mô hình vòng đời cổ điển 8 a. Kỹ nghệ và phân tích hệ thống .8 b. Phân tích yêu cầu phần mềm 8 c. Thiết kế 8 d. Mã hóa 9 e. Kiểm thử 9 f. Bảo trì 9 1.3.3 Mô hình làm bản mẫu .10 1.3.4 Mô hình xoắn ốc .11 1.3.5 Kỹ thuật thế hệ thứ tư .12 1.3.6 Mô hình lập trình cực đoan 14 a) Tạo các ca thử nghiệm trước tiên 14 - i- b) Lập trình đôi .14 1.3.7 Tổ hợp các mô hình 15 1.3.8 Tính khả thị của quá trình kỹ nghệ 15 1.3.9 Vấn đề giảm kích cỡ của phầnmềm 16 1.4 Cái nhìn chung về kỹ nghệ phần mềm 17 Chương 2 .19 Phân tích và đặc tả yêu cầu .19 2.1 Đại cương về phân tích và đặc tả .19 2.2 Nghiên cứu khả thi 20 2.3 Nền tảng của phân tích yêu cầu .22 2.3.1 Các nguyên lý phân tích .22 2.3.2 Mô hình hóa 22 2.3.3 Người phân tích 25 2.4 Xác định và đặc tả yêu cầu .26 2.4.1 Xác định yêu cầu 26 2.4.2 Đặc tả yêu cầu 26 2.4.3 Thẩm định yêu cầu .27 2.5 Làm bản mẫu trong quá trình phân tích 28 2.5.1 Các bước làm bản mẫu .28 2.6 Định dạng đặc tả yêu cầu .30 Chương 3 .33 Thiết kế phầnmềm .33 3.1 Khái niệm về thiết kế phầnmềm .33 3.1.1 Khái niệm .33 3.1.2 Tầm quan trọng 33 3.1.3 Quá trình thiết kế 34 3.1.4 Cơ sở của thiết kế .35 3.1.5 Mô tả thiết kế 36 3.1.6 Chất lượng thiết kế .38 3.2 Thiết kế hướng chức năng 40 3.2.1 Cách tiếp cận hướng chức năng .40 3.2.2 Biểu đồ luồng dữ liệu .41 3.2.3 Lược đồ cấu trúc .41 3.2.4 Các từ điển dữ liệu .41 3.3 Thiết kế hướng đối tượng .42 3.3.1 Cách tiếp cận hướng đối tượng 42 3.3.2 Ba đặc trưng của thiết kế hướng đối tượng .42 3.3.3 Cơ sở của thiết kế hướng đối tượng 42 3.3.4 Các bước thiết kế 43 3.3.5 Ưu nhược điểm của thiết kế hướng đối tượng 44 3.3.6 Quan hệ giữa thiết kế và lập trình hướng đối tượng .44 3.3.7 Quan hệ giữa thiết kế hướng đối tượng và hướng chức năng .45 - ii- 3.4 Thiết kế giao diện người sử dụng 45 3.4.1 Một số vấn đề thiết kế 47 3.4.2 Một số hướng dẫn thiết kế .47 Chương 4 .49 Lập trình 49 4.1 Ngôn ngữ lập trình 49 4.1.1 Đặc trưng của ngôn ngữ lập trình 49 4.1.2 Lựa chọn ngôn ngữ lập trình 50 4.1.3 Ngôn ngữ lập trình và và sự ảnh hưởng tới kỹ nghệ phầnmềm .51 4.2 Phong cách lập trình .51 4.2.1 Tài liệu chương trình 52 4.2.2 Khai báo dữ liệu .52 4.2.3 Xây dựng câu lệnh 53 4.2.4 Vào/ra .53 4.3 Lập trình tránh lỗi .53 4.3.1 Lập trình thứ lỗi 55 4.3.2 Lập trình phòng thủ 55 4.4 Lập trình hướng hiệu quả thực hiện .56 4.4.1 Tính hiệu quả chương trình 56 4.4.2 Hiệu quả bộ nhớ .57 4.4.3 Hiệu quả vào/ra 57 Chương 5 .58 Xác minh và thẩm định 58 5.1 Đại cương 58 5.2 Khái niệm về phép thử 59 5.3 Thử nghiệm chức năng và thử nghiệm cấu trúc .59 5.3.1 Thử nghiệm chức năng .59 5.3.2 Thử nghiệm cấu trúc 60 5.4 Quá trình thử nghiệm .61 5.4.1 Thử nghiệm gây áp lực .62 5.5 Chiến lược thử nghiệm .62 5.5.1 Thử nghiệm dưới lên 62 5.5.2 Thử ngiệm trên xuống 63 Chương 6 .64 Quản lý dự án phát triển phầnmềm 64 6.1 Đại cương 64 6.2 Độ đo phần mềm 65 6.2.1 Đo kích cỡ phần mềm 65 6.2.2 Độ đo dựa trên thống kê .66 - iii- 6.3 Ước lượng .66 6.4 Quản lý nhân sự .67 6.5 Quản lý cấu hình 68 6.6 Quản lý rủi ro .69 Tài liệu tham khảo 70 - iv- CHƯƠNG 1 Phầnmềm và kỹ nghệ phầnmềm 1.1 Tầm quan trọng và sự tiến hóa của phầnmềm Máy tính khác với các máy móc thông thường ở điểm nó có thể thực hiện các nhiệm vụ rất khác nhau bằng cách sử dụng các phầnmềm khác nhau. Tức là phầnmềm tạo ra sự khác biệt giữa các máy tính và cũng quyết định năng lực của máy tính. Cho đến những năm 1990, xu hướng của ngành công nghiệp máy tính là phát triển phần cứng nhằm giảm giá thành hệ thống và tăng năng lực xử lý cũng như lưu trữ dữ liệu. Do nhu cầu phầnmềm tăng lên nhanh chóng, thách thức hay mục tiêu của ngành công nghiệp máy tính hiện nay là sự cải thiện chất lượng và giảm giá thành của phần mềm. Có thể nói khả năng của phần cứng biểu thị cho tiềm năng của hệ thống còn phầnmềm là một cơ chế giúp chúng ta khai thác tiềm năng này. Chúng ta hãy xem xét tầm quan trọng của phầnmềm trên khía cạnh sự tiến hóa và phạm vi ứng dụng của chúng. 1.1.1 Tiến hóa của phầnmềm Sự tiến hóa của phầnmềm gắn liền với sự tiến hóa của phần cứng và có thể chia làm 4 giai đoạn: a. Những năm đầu (từ 1950 đến 1960): - Giai đoạn này phần cứng thay đổi liên tục, số lượng máy tính rất ít và phần lớn mỗi máy đều được đặt hàng chuyên dụng cho một ứng dụng đặc biệt. - Phương thức chính là xử lý theo lô (batch), tức là “gói” các chương trình có sử dụng kết quả của nhau lại thành một khối dể tăng tốc độ thực hiện. - Thời kỳ này lập trình máy tính được coi là nghệ thuật “theo bản năng”, chưa có phương pháp hệ thống. Việc phát triển phầnmềm chưa được quản lý. - Môi trường lập trình có tính chất cá nhân; thiết kế, tiến trình phầnmềm không tường minh, thường không có tài liệu. Sản xuất có tính đơn chiếc, theo đơn đặt hàng. Người lập trình thường là người sử dụng và kiêm cả việc bảo trì và sửa lỗi. b. Thời kỳ trải rộng từ những năm 1960 đến giữa những năm 1970: - Các hệ thống đa nhiệm, đa người sử dụng (ví dụ: Multics, Unix, .) xuất hiện dẫn đến khái niệm mới về tương tác người máy. Kỹ thuật này mở ra thế giới mới cho các ứng dụng và đòi hỏi mức độ tinh vi hơn cho cả phầnmềm và phần cứng. - Nhiều hệ thống thời gian thực với các đặc trưng thu thập, phân tích và biến đổi dữ liệu từ nhiều nguồn khác nhau và phản ứng (xử lý, tạo output) trong một khoảng thời gian nhất định xuất hiện. - 1 - - Tiến bộ lưu trữ trực tuyến làm xuất hiện thế hệ đầu tiên của hệ quản trị CSDL. - Số lượng các hệ thống dựa trên máy tính phát triển, nhu cầu phân phối mở rộng, thư viện phầnmềm phát triển, quy mô phầnmềm ngày càng lớn làm nẩy sinh nhu cầu sửa chữa khi gặp lỗi, cần sửa đổi khi người dùng có yêu cầu hay phải thích nghi với những thay đổi của môi trường phầnmềm (phần cứng, hệ điều hành, chương trình dịch mới). Công việc bảo trì phầnmềm dần dần tiêu tốn nhiều công sức và tài nguyên đến mức báo động. c. Thời kỳ từ giữa những năm 1970 đến đầu những năm 1990: - Hệ thống phân tán (bao gồm nhiều máy tính, mỗi máy thực hiện một chức năng và liên lạc với các máy khác) xuất hiện làm tăng quy mô và độ phức tạp của phầnmềm ứng dụng trên chúng. - Mạng toàn cục và cục bộ, liên lạc số giải thông cao phát triển mạnh làm tăng nhu cầu thâm nhập dữ liệu trực tuyến, nảy sinh yêu cầu lớn phát triển phầnmềm quản lý dữ liệu. - Công nghệ chế tạo các bộ vi xử lý tiến bộ nhanh khiến cho máy tính cá nhân, máy trạm để bàn, và các thiết bị nhúng (dùng cho điều khiển trong robot, ô tô, thiết bị y tế, đồ điện gia dụng, .) phát triển mạnh khiến cho nhu cầu về phầnmềm tăng nhanh. - Thị trường phần cứng đi vào ổn định, chi phí cho phầnmềm tăng nhanh và có khuynh hướng vượt chi phí mua phần cứng. d. Thời kỳ sau 1990: - Kỹ nghệ hướng đối tượng là cách tiếp cận mới đang nhanh chóng thay thế nhiều cách tiếp cận phát triển phầnmềm truyền thống trong các lĩnh vực ứng dụng. - Sự phát triển của Internet làm cho người dùng máy tính tăng lên nhanh chóng, nhu cầu phầnmềm ngày càng lớn, quy mô và độ phức tạp của những hệ thống phầnmềm mới cũng tăng đáng kể. - Phầnmềm trí tuệ nhân tạo ứng dụng các thuật toán phi số như hệ chuyên gia, mạng nơ ron nhân tạo được chuyển từ phòng thí nghiệm ra ứng dụng thực tế mở ra khả năng xử lý thông tin và nhận dạng kiểu con người. 1.1.2 Sự ứng dụng của phầnmềm Chúng ta có thể chia phầnmềm theo miền ứng dụng thành 7 loại như sau: a. Phầnmềm hệ thống - Là một tập hợp các chương trình được viết để phục 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 dịch, trình soạn thảo, tiện ích quản lý tệp) - 2 - - Đặc trưng bởi tương tác chủ yếu với phần cứng máy tính - Phục vụ nhiều người dùng - Cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài b. Phầnmềm thời gian thực Phầnmềm điều phối, phân tích hoặc kiểm soát các sự kiện thế giới thực ngay khi chúng xuất hiện được gọi là phầnmềm thời gian thực. Điển hình là các phầnmềm điều khiển các thiết bị tự động. Phầnmềm thời gian thực bao gồm các thành tố: - Thành phần thu thập dữ liệu để thu và định dạng thông tin từ môi trường ngoài - Thành phầnphân tích để biến đổi thông tin theo yêu cầu của ứng dụng - Thành phần kiểm soát hoặc đưa ra đáp ứng môi trường ngoài - Thành phần điều phối để điều hòa các thành phần khác sao cho có thể duy trì việc đáp ứng thời gian thực Hệ thống thời gian thực phải đáp ứng những ràng buộc thời gian chặt chẽ. c. Phầnmềm nghiệp vụ Là các phầnmềm phục vụ các hoạt động kinh doanh hay các nghiệp vụ của tổ chức, doanh nghiệp. Đây có thể coi là lĩnh vực ứng dụng phầnmềm lớn nhất. Điển hình là các hệ thống thông tin quản lý gắn chặt với CSDL, các ứng dụng tương tác như xử lý giao tác cho các điểm bán hàng. d. Phầnmềm khoa học và công nghệ - Được đặc trưng bởi các thuật toán (tính toán trên ma trận số, mô phỏng .). - Thường đòi hỏi phần cứng có năng lực tính toán cao. e. Phầnmềm 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 nghiệp. - Có các đặc trưng của phầnmềm thời gian thực và phầnmềm hệ thống. f. Phầnmềm máy tính cá nhân - Bùng nổ từ khi xuất hiện máy tính cá nhân, giải quyết các bài toán nghiệp vụ nhỏ như xử lý văn bản, trang tính, đồ họa, quản trị CSDL nhỏ . - Yếu tố giao diện người-máy rất được chú trọng. - 3 - g. Phầnmềm trí tuệ nhân tạo - Dùng các thuật toán phi số để giải quyết các vấn đề phức tạp mà tính toán hay phân tích trực tiếp không quản lý nổi - Các ứng dụng chính là: hệ chuyên gia (hệ cơ sở tri thức), nhận dạng (hình ảnh và tiếng nói), chứng minh định lý và chơi trò chơi, mô phỏng. Ngoài ra, chúng ta còn có thể kể đến một dạng phầnmềm đặc biệt là phầnmềm phục vụ kỹ nghệ phần mềm. Đó là các phầnmềm như chương trình dịch, phầnmềm gỡ rối, các công cụ hỗ trợ phân tích thiết kế (CASE) . Các phầnmềm này có thể xuất hiện dưới dạng phầnmềm máy tính cá nhân, phầnmềm hệ thống hoặc là phầnmềm nghiệp vụ. 1.2 Khó khăn, thách thức đối với phát triển phầnmềm Từ những năm 60, nhiều dự án phầnmềm lớn không thành công như các dự án OS 360 (tiêu tốn một số tiền và thời gian gấp nhiều lần dự kiến) và TSS 360 (không đạt các chỉ tiêu kỹ thuật, hầu như không hoạt động) của IBM. Do đó, việc phát triển phầnmềm dần dần đã được nhận thức là một lĩnh vực đầy khó khăn và chứa nhiều rủi ro. Chúng ta sẽ xem xét các khó khăn và thách thức trên các khía cạnh đặc trưng, qui mô và nhu cầu của phần mềm. 1.2.1 Phầnmềm và phầnmềm tốt Phầnmềm thông thường được định nghĩa bao gồm: - các lệnh máy tính nhằm thực hiện các 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 có thể vận hành được phầnmềm Bốn thuộc tính chủ chốt mà một hệ phầnmềm tốt phải có là: • Có thể bảo trì được: phầnmềm tuổi thọ dài phải được viết và được lập tư liệu sao cho việc thay đổi có thể tiến hành được mà không quá tốn kém. Đây được coi là đặc tính chủ chốt nhất của một phầnmềm tốt. Để có thể bảo trì được, phầnmềm phải có một thiết kế tốt có tính modun hóa cao, được viết bằng ngôn ngữ bậc cao và được lập tài liệu (tài liệu phân tích, thiết kế, chú thích mã nguồn, hướng dẫn người dùng .) đầy đủ. • Đáng tin cậy: phầnmềm phải thực hiện được điều mà người tiêu dùng mong mỏi và không thất bại nhiều hơn những điều đã được đặc tả. Điều này có nghĩa là phầnmềm phải thỏa mãn được nhu cầu của người dùng. Để đạt được yếu tố đáng tin cậy, trước tiên người phát triển cần phải hiểu một cách đúng đắn yêu cầu của người dùng và sau đó cần thỏa mãn được các yêu cầu này bằng các thiết kế và cài đặt tốt. • Có hiệu quả: phầnmềm khi hoạt động phải không lãng phí tài nguyên hệ thống như bộ nhớ, bộ xử lý. Nếu phầnmềm chạy quá chậm hay đòi hỏi quá nhiều bộ nhớ . thì dù có được cài - 4 - đặt rất nhiều chức năng cũng sẽ không được đưa vào sử dụng. Tuy nhiên, ngoại trừ các phầnmềm nhúng hay thời gian thực đặc biệt, người ta thường không cực đại hóa mức độ hiệu quả vì rằng việc đó có thể phải dùng đếm các kỹ thuật đặc thù và cài đặt bằng ngôn ngữ máy khiến cho chi phí tăng cao và phầnmềm rất khó thay đổi (tính bảo trì kém). • Dễ sử dụng: giao diện người sử dụng phải phù hợp với khả năng và kiến thức của người dùng, có các tài liệu hướng dẫn và các tiện ích trợ giúp. Đối tượng chính của các phầnmềm nghiệp vụ thường là người không am hiểu về máy tính, họ sẽ xa lánh các phầnmềm khó học, khó sử dụng. Có thể thấy rõ, việc tối ưu hóa đồng thời các thuộc tính này là rất khó khăn. Các thuộc tính có thể mẫu thuẫn lẫn nhau, ví dụ như tính hiệu quả và tính dễ sử dụng, tính bảo trì. Quan hệ giữa chi phí cải tiến và hiệu quả đối với từng thuộc tính không phải là tuyến tính. Nhiều khi một cải thiện nhỏ trong bất kỳ thuộc tính nào cũng có thể là rất đắt. Một khó khăn khác của việc phát triển phầnmềm là rất khó định lượng các thuộc tính của phần mềm. Chúng ta thiếu các độ đo và các chuẩn về chất lượng phần mềm. Vấn đề giá cả phải được tính đến khi xây dựng một phần mềm. Chúng ta sẽ xây dựng được một phầnmềm dù phức tạp đến đâu nếu không hạn chế về thời gian và chi phí. Điều quan trọng là chúng ta phải xây dựng một phầnmềm tốt với một giá cả hợp lý và theo một lịch biểu được định trước. 1.2.2 Đặc trưng phát triển và vận hành phầnmềm Chúng ta có thể thấy khó khăn hàng đầu của việc phát triển phầnmềm là do tính chất phầnmềm là hệ thống logic, không phải là hệ thống vật lý. Do đó nó có đặc trưng khác biệt đáng kể với các đặc trưng của phần cứng. Dưới đây là 3 yếu tố chính tạo ra sự phức tạp trong quá trình phát triển cũng như sử dụng, bảo trì phần mềm. a. Phầnmềm không được chế tạo theo nghĩa cổ điển Phầnmềm cũng được được thiết kế, phát triển như phần cứng, nhưng nó không định hình trước. Chỉ khi phát triển xong người ta có sản phẩm cụ thể và hiểu được nó có hiệu quả hay không. Tức là ở các bước trung gian, chúng ta rất khó kiểm soát chất lượng của phần mềm. Giá thành của phần cứng chủ yếu bị chi phối bởi giá thành nguyên vật liệu và chúng ta tương đối dễ kiểm soát. Trong khi đó, giá thành phầnmềm chủ yếu tập chung vào chi phí nhân công. Quá trình phát triển phầnmềm phụ thuộc vào con người (hiểu biết, khả năng vận dụng, kinh nghiệm và cách thức quản lý) và được tiến hành phát triển trong điều kiện môi trường (kỹ thuật, xã hội) đa dạng và không ngừng thay đổi. Do đó chúng ta rất khó ước lượng được chi phí cũng như hiệu quả của phần mềm. - 5 - [...]... quan hệ với một tập hợp các nguyên lý cơ bản: 1 Miền thông tin của vấn đề phải được biểu diễn lại và hiểu rõ 2 Các mô hình mô tả cho thông tin, chức năng và hành vi hệ thống cần phải được xây dựng 3 Các mô hình (và vấn đề) phải được phân hoạch theo cách để lộ ra các chi tiết theo kiểu phân tầng (hay cấp bậc) 4 Tiến trình phân tích phải đi từ thông tin bản chất hướng tới chi tiết cài đặt Bằng cách áp dụng... mềm Sau khi đã chính thức quyết đinh phát triển phần mềm, chúng ta cần phải phân tích để xác định chi tiết lĩnh vực thông tin, các chức năng cũng như các ràng buộc khi vận hành của phầnmềmPhân tích yêu cầu là khâu kỹ thuật quan trọng đầu tiên để đảm bảo chất lượng (tính đáng tin cậy) của phầnmềm Nếu xác định sai yêu cầu thì các bước kỹ thuật khác có tốt đến đâu thì phầnmềm cũng sẽ không được đưa... phân tích hiểu, cụ thể hóa và biểu diễn lại yêu cầu Hoạt động phân tích giữ một vai trò đặc biệt quan trọng trong phát triển phần mềm, giúp cho đảm bảo chất lượng của phầnmềm (phần mềm đáng tin cậy) Phầnmềm đáng tin cậy có nghĩa là phải thực hiện được chính xác, đầy đủ yêu cầu của người sử dụng Nếu phân tích không tốt dẫn đến hiểu lầm yêu cầu thì việc sửa chữa sẽ trở nên rất tốn kém Chi phí để sửa... bằng cách dùng 4GT lại mở ra vấn đề mới Có thể tóm tắt hiện trạng của cách tiếp cận 4GT như sau: 1 Lĩnh vực ứng dụng hiện tại cho 4GT mới chỉ giới hạn vào các ứng dụng hệ thông tin nghiệp vụ, đặc biệt, việc phân tích thông tin và làm báo cáo là nhân tố chủ chốt cho các cơ sở dữ liệu lớn Tuy nhiên, cũng đã xuất hiện các công cụ CASE mới hỗ trợ cho việc dùng 4GT để tự động sinh ra khung chương trình... chất hướng tới chi tiết cài đặt Bằng cách áp dụng những nguyên lý này, người phân tích tiếp cận tới vấn đề một cách hệ thống Miền thông tin cần được xem xét sao cho người ta có thể hiểu rõ chức năng một cách đầy đủ Các mô hình được dùng để cho việc trao đổi thông tin được dễ dàng theo một cách ngắn gọn Việc phân hoạch vấn đề được sử dụng để làm giảm độ phức tạp Những cách nhìn nhận cả từ góc độ bản... ý đến cách thức nó thực hiện Trong nhiều trường hợp, các mô hình chúng ta tạo ra có dùng kí pháp đồ hoạ mô tả cho thông tin, xử lý, hành vi hệ thống, và các đặc trưng khác thông qua các biểu tượng phân biệt và dễ nhận diện Những phần khác của mô hình có thể thuần túy văn bản Thông tin mô tả có thể được cung cấp bằng cách dùng một ngôn ngữ tự nhiên hay một ngôn ngữ chuyên dụng cho mô tả yêu cầu Các mô... triển phần mềm, bất kể tới miền ứng dụng, kích cỡ và độ phức tạp Giai đoạn xác định tập trung vào khái niệm cái gì Tức là trong khi xác định, người phát triển phầnmềm cố gắng tập trung vào xác định thông tin nào cần được xử lý, chức năng và hiệu năng nào là cần có, giao diện nào cần được thiết lập, ràng buộc thiết kế nào hiện có và tiêu chuẩn hợp lệ nào cần có để xác định ra một hệ thống thành công Yêu... nghệ phầnmềm 1.3.1 Định nghĩa Một định nghĩa ban đầu về kỹ nghệ phầnmềm do Fritz Bauer nêu ra là: Việc thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để thu được phầnmề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 Kỹ nghệ phầnmềm là một quá trình gồm một loạt các bước chứa đựng 3 yếu tố chủ chốt: • Phương pháp • Công cụ • Thủ tục Các yếu tố này giúp người quản lý... mở rộng phầnmềm ra ngoài các yêu cầu chức năng gốc của nó Tổng kết: Phầnmềm đã trở thành phần tử chủ chốt của các hệ thống máy tính Phát triển phầnmềm đã tiến hóa từ xây dựng một công cụ xử lý thông tin thành một ngành công nghiệp Phầnmềm là phần tử lôgíc cho nên việc kiểm soát nó khó hơn nhiều so với phần tử vật lý Khó có thể tối ưu hóa đồng thời các tính năng cần có của phầnmềm Ví dụ, các tính... chuẩn về chất lượng của sản phẩm phầnmềm b Các công cụ Cung cấp sự hỗ trợ tự động hay bán tự động để phát triển phầnmềm theo từng phương pháp khác nhau Khi các công cụ được tích hợp đến mức các thông tin do chúng tạo ra có thể được dùng cho các công cụ khác thì hệ thống hỗ trợ phát triển phầnmềm đã được thiết lập và còn được gọi là kỹ nghệ phầnmềm có máy tính hỗ trợ (CASE - Computer Aided Software . thu thập dữ liệu để thu và định dạng thông tin từ môi trường ngoài - Thành phần phân tích để biến đổi thông tin theo yêu cầu của ứng dụng - Thành phần. tại cho 4GT mới chỉ giới hạn vào các ứng dụng hệ thông tin nghiệp vụ, đặc biệt, việc phân tích thông tin và làm báo cáo là nhân tố chủ chốt cho các cơ sở