Công Nghệ Phần Mềm CHƯƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM

1.1. ĐÔI ĐIỀU VỀ VẤN ĐỀ THUẬT NGỮ

Theo tiếng Anh thì công nghệ là technology , còn ứng dụng là software . do vậy công nghệ phần mềm hợp lí theo giờ Anh là “software technology”? Tuy nhiên thực tế lại không yêu cầu vậy. Trong tiếng Anh không có thuật ngữ “software technology” trong các trường đoản cú điển tin học giỏi bách khoa toàn tlỗi, mà chỉ có thuật ngữ “software engineering” . Từ “engineering” có nghĩa là “kỹ nghệ”. Cũng chính vì vậy mà vào một trong những tài liệu có một vài tác mang dùng thuật ngữ “kỹ nghệ phần mềm”. Tại Việt nam người ta thân quen dùng từ "công nghệ" hơn. Do đó phần nhiều các trường vẫn Call môn học tập “software engineering” là “công nghệ phần mềm”. Ở đây chúng tôi cũng dùng thuật ngữ này trên niềm tin điều đó.

Ngày ni kho kỹ năng và kiến thức của loài fan ngày càng được mở rộng, các ngành công nghệ đã áp dụng các thành tựu của nhau và do đó tinh ma giới thân chúng không còn rõ ràng như trước đây. Việc quan niệm chính xác các khái niệm cũng trsống nên khó khnạp năng lượng và khó tốt nhất quán. Cùng một khái niệm, cùng một thuật ngữ nhưng lại trong một hoàn cảnh nhất định lại được hiểu khác đi. Lấy ví dụ tức thì trong nghành tin học: thuật ngữ "hệ thống" (system) có Khi được đọc là một tập thích hợp các cmùi hương trình giải quyết và xử lý một vụ việc nào đó, ví dụ operating system hay management information system ; nhưng lại có lúc bao hàm cả các cmùi hương trình và lắp thêm Hartware, ví dụ computer system hay the flight control system ... Chính Stephen R. Schach, tác trả cuốn "Object-Oriented & Classical Software Engineering" cũng nên thốt lên rằng, tác giả đã quá mệt nhọc khi phải đánh đồ gia dụng cùng với cối xay gió (tác trả ám chỉ Việc áp dụng thuật ngữ) và mong mỏi các độc giả thông cảm.

Trong toàn cảnh đó, các có mang chúng tôi nêu ra sau đây chỉ nhằm mục đích hỗ trợ mang lại các bạn một sự hình dung về các khái niệm. vì vậy các chúng ta chỉ việc gọi, và có thể diễn đạt lại theo cách cân nhắc của mình, chứ không đề nghị học ở trong từng chữ các khái niệm này. Có một số trong những khái niệm các các bạn có thể chưa biết ngay trong lúc đọc lần đầu. Trong ngôi trường hòa hợp này các các bạn cứ đọng tạm gật đầu rồi tìm hiểu sau.

1.2. CÁC ĐỊNH NGHĨA VÀ THUẬT NGỮ

1.2.1. Một số khái niệm phổ biến

Khoa học (science) là hệ thống các học thức vì nhỏ tín đồ khám phá ra. Khoa học tập triệu tập vào câu hỏi tìm đọc và rút ra các quy lý lẽ thực tiễn (của từ bỏ nhiên và của nhỏ người). Các quy vẻ ngoài này hay được phát biểu dưới dạng các định lý, các mệnh đề, các công thức toán học tập, các bài viết...ví dụ định nguyên lý vạn đồ vật lôi kéo, định lý Pitagor, quy qui định giá trị thặng dư...Khoa học tập được chia thành các nghành nlỗi toán học, hóa học tập, sinh học, vnạp năng lượng học, lịch sử dân tộc, ...

Kỹ thuật (technique) là đã cho thấy một cách thức tiến hành một công bài toán rõ ràng nào đó. Cách làm này thường xuyên có áp dụng kiến thức và kỹ năng công nghệ và được khối hệ thống thành các bước sao cho người khác cũng có thể học tập và làm theo. Ví dụ kỹ thuật hàn , kỹ thuật tân trang xe pháo máy . Trong tin học tập ta nói cho nghệ thuật phần mềm bao gồm chuyên môn viết hệ điều hành, kỹ thuật làm cmùi hương trình tinh chỉnh. Ta cũng xuất xắc nói “nghệ thuật lập trình” tức là cách thức viết cmùi hương trình sao để cho tối ưu theo một nghĩa nào đó.

Công nghệ (technology) nói cho tới cách thức hay phương thơm pháp nhằm làm một bài toán gì đó, cụ thể hoặc trừu tượng, có áp dụng các thành tựu của kỹ thuật và được triển khai một cách có bài phiên bản, hệ thống. Ta thường xuyên nói “công nghệ sinh học”, “công nghệ jen”, tuyệt “công nghệ giáo dục”... Nhỏng nắm, “công nghệ” có thể được hiểu là khái niệm rộng lớn hơn khái niệm kỹ thuật. Kỹ thuật nói tới cách triển khai chi tiết, còn công nghệ thì nhấn mạnh tính hệ thống, bài bản.

Kỹ nghệ (engineering) là việc áp dụng phối kết hợp các công nghệ cần thiết nhằm tạo ra các thành phầm.

Công nghiệp (industry) là khái niệm bao trùm cả một nghành bự, vào đó bên cạnh yếu tố kỹ nghệ còn có thêm các nguyên tố khác như kinh tế, tài chính, tổ chức triển khai xã hội.

Câu sau đây đến chúng ta cách hình dung về mọt liên quan lại của các khái niệm vừa nói (trừ khái niệm khoa học):

Trong ngành công nghiệp xe cộ khá, kỹ nghệ xe cộ hơi yêu cầu đến các kỹ thuật đúc hàn... của công nghệ cơ khí, kỹ thuật làm lốp xe của công nghệ cao ...

1.2.2. Một số khái niệm liên quan liêu cho công nghệ phần mềm

Phần cứng (hardware) là các sản phẩm công nghệ cấu khiếu nại với tính trang bị lý có thể tiếp xúc bằng tay thủ công được như máy in, ổ đĩa, máy quét, các mạch tích đúng theo (IC).

Nghĩa đơn giản dễ dàng độc nhất của phần mềm (software) là các chương trình cất các dòng lệnh thông tư cho máy tính tiến hành một công vấn đề nào đó. Tuy nhiên hay bạn ta gọi phần mềm là một tập thích hợp các chương trình và cả dữ liệu phục vụ cho 1 công bài toán được tin học tập hóa nào đó. Ví dụ ứng dụng cai quản lý các dịch vụ cất cánh, phần mềm tinh chỉnh và điều khiển lò bội nghịch ứng phân tử nhân, ứng dụng điều khiển và tinh chỉnh hình thức dịch vụ mobile phone...Đôi Khi fan ta Gọi ứng dụng là chương trình, cho dù thực tiễn thì ứng dụng bao gồm nhiều chương thơm trình và dữ liệu. Ví dụ: chương thơm trình cai quản lý nhân sự, cmùi hương trình quản lí lý tín dụng...

Trong công nghệ phần mềm, tín đồ ta đọc phần mềm không chỉ là các chương trình, dữ liệu , mà còn có cả các tài liệu liên quan nhỏng các bản đặc tả, xây cất, gợi ý thực hiện.

Cmùi hương trình (program): đôi Lúc người ta Điện thoại tư vấn phần mềm là cmùi hương trình. Hay chính xác hơn, fan ta thường xuyên Hotline phần được cài đặt trên máy tính để chạy là chương trình . Với cách phát âm như thế thì ứng dụng = chương trình + tài liệu. Tuy nhiên, vào thực tiễn có khi tín đồ ta đồng điệu nhị khái niệm này. Ví dụ tín đồ ta nói rằng "phần mềm được cài đặt trên máy tính khách hàng".

Kỹ nghệ phần mềm (software engineering) là cách làm phần mềm tuân theo phần lớn nguyên tắc tựa như nhỏng các nguyên tắc của kỹ nghệ truyền thống lịch sử (ví dụ kỹ nghệ xây dựng cầu, kỹ nghệ làm con đường,...)

Như chúng tôi đã nói tới sinh sống trên, vì thói thân quen, chúng ta dùng từ bỏ công nghệ phần mềm gắng mang lại từ bỏ được dịch đúng nghĩa hơn là kỹ nghệ phần mềm .

Vòng đời phần mềm (software life-cycle) là các bước mà một trong những phần mượt nên trải qua, ban đầu tự khảo sát nhu cầu khách hàng cho tới Khi ứng dụng không còn được thực hiện.

Phát triển phần mềm (software developement) quá trình xây dựng phần mềm tự bước đầu cho đến Lúc chuyển nhượng bàn giao đến khách hàng.

Người phát triển (software developer) là tên điện thoại tư vấn bình thường cho người tsay đắm gia xây dựng ứng dụng.

Nhóm bảo đảm chất lượng phần mềm (software chất lượng assurance group = SQA group) nhóm chuyên kiểm tra unique ứng dụng, kiểm soát kết quả của từng quy trình xây dựng ứng dụng.

Quy trình phần mềm (software process) là cách thức làm ra phần mềm, bao hàm vòng đời ứng dụng, các công cố và những người phát triển ứng dụng.

Pha (phase) là một quá trình trong quá trình xây dựng ứng dụng. Ví dụ trộn xác định yêu cầu, trộn phân tích...

Yêu cầu (requirements) là pha đầu tiên vào quá trình xây dựng phần mềm. Pha này hay có tên điện thoại tư vấn là tìm phát âm khái niệm (concept exploration). Người phát triển và khách hàng ngồi lại với nhau. Khách hàng nêu ra phần lớn yêu cầu mà ứng dụng buộc phải có. Những tín đồ phát triển ghi chép lại. Nếu dịch theo tiếng Anh "requirements phase" là pha yêu cầu. Tuy nhiên cách hotline quá đơn giản dễ dàng như thế này có thể tương đối khó gọi, bởi đó ta vẫn call là trộn xác định yêu cầu .

Đặc tả (specification) hoặc phân tích (analysis): Trên cơ sở các yêu cầu của khách hàng, tín đồ phát triển mô tả lại chính xác hơn các yêu cầu mà ứng dụng đề xuất có. Cách mô tả này có tính chuyên môn và đôi khi sử dụng các công nuốm trợ giúp. Pha này trả lời câu hỏi "ứng dụng làm cái gì?"

Phân tích hệ thống (system analysis) bạn ta hay gộp nhì trộn yêu cầu và phân tích thành một pha và hotline là trộn phân tích khối hệ thống.

Thiết kế (design) là pha tiếp theo sau trộn quánh tả. Căn uống cđọng vào tài liệu đặc tả, pha này mô tả cách thức mà ứng dụng thực hiện các công câu hỏi rõ ràng. Pha này vấn đáp câu hỏi "ứng dụng làm như vậy nào?". Pha thiết kế thường có hai phần: xây cất loài kiến trúc (architecture design) và xây dựng cụ thể (detail design).

Cài đặt (implementation) hoặc mã hóa (coding) giỏi lập trình (programming): viết chương trình bởi một ngôn ngữ rõ ràng nào đó.

Tích hợp (integration) kết nối các phần chương trình đã viết thành 1 phần mềm thống tốt nhất và chạy thử, hiệu chỉnh cho đến lúc chạy xuất sắc. Pha này đôi Khi được Call là kiểm thử hoặc kiểm chứng hay đơn giản là thử .

Bảo trì (maintenance) tuyệt đôi Khi được Call là hỗ trợ (trong tài liệu tiếng Việt): Lúc chương trình đã được cài đặt trên máy của khách hàng vẫn có thể có lỗi phát sinc bắt buộc loại bỏ hoặc đề xuất hiệu chỉnh lại phần mềm theo yêu cầu khách hàng.

Kế hoạch cai quản lý dự án phần mềm (software project management plan - SPMP) bản chiến lược được biên soạn thảo sau khi hoàn thành pha đặc tả, trong đó mô tả cụ thể chiến lược xây dựng ứng dụng (có cả thời hạn hoàn thành và giá cả).

Trong các phần sau chúng ta vẫn còn nêu lại các khái niệm này.

vì vậy các bạn có thể thấy, trong tin học các thuật ngữ không được sử dụng một cách chính xác nhỏng toán học .

1.2.3. Vấn đề dịch các thuật ngữ giờ Anh ra giờ Việt

Phần béo các thuật ngữ tin học tập rất nhiều có nguồn gốc xuất xứ giờ Anh, Khi dịch lịch sự giờ đồng hồ Việt thường xuyên hết sức khó dịch chính xác, vì một tự giờ Anh tương ứng cùng với rất nhiều từ bỏ giờ đồng hồ Việt. Ví dụ từ bỏ "process" có các nghĩa là xử lý, quá trình , quy trình , trong đó từ quá trình được sử dụng nhiều hơn thế nữa. Tuy nhiên Khi dịch các trường đoản cú "software process" quý phái giờ Việt, trường hợp dịch là "quá trình phần mềm" sẽ nghe lạ tai và khó đọc. Có tác mang dịch là "tiến trình phần mềm" Mặc dù có dễ nghe hơn nhưng vẫn hơi khó gọi. Theo chúng tôi có một vài tác đưa dịch là "quy trình phần mềm" có lẽ nghe xuôi tai và dễ nắm bắt hơn hết. Khi ta nói "quy trình làm sổ đỏ" có lẽ dễ hiểu hơn là nói "tiến trình làm sổ đỏ".

Một số từ khác, ví dụ "implementation" có nhị nghĩa như nhau là thực hiện , thi hành . Và vì vậy vào quy trình làm phần mềm thì Việc dịch thuật ngữ "implementation phase" là "pha thực hiện" có thể coi là cách dịch tốt nhất. Tuy nhiên từ "thực hiện" lại được dùng sinh hoạt không hề ít khu vực cùng với ý nghĩa khác, chứ đọng không hẳn là viết cmùi hương trình. Vì vậy ví như nói "trộn thực hiện" thì so với bạn không quen thuộc cùng với tin học tập nghe hết sức khó hiểu. Làm sao họ có thể đọc được "tiến hành phần mềm" lại là viết chương trình? Vì vậy có tác đưa dùng từ "cài đặt" nhằm thay thế, và dịch "implementation phase" là trộn cài đặt . Bản thân tôi cũng cỗ vũ cách dịch này, vì sinh sống Việt nam giới vẫn quen dùng từ bỏ "cài đặt" nhằm chỉ câu hỏi viết chương thơm trình, ví dụ: cài đặt thuật toán Euclid bởi ngôn ngữ Pascal. Tuy nhiên tự "cài đặt" vẫn có thể nhầm cùng với nghĩa của tự "installation" tuyệt "setup", tức là cài đặt (chứ đọng không nên viết chương trình) 1 phần mềm lên máy tính để ứng dụng này có thể chạy được. Có lẽ chúng ta đành đồng ý từ "cài đặt" có hai nghĩa vậy: một nghĩa tương ứng cùng với từ bỏ "setup" trong giờ đồng hồ Anh, còn một nghĩa là "writing code", tức là viết chương trình. Bởi vậy ví như các bạn gặp mặt các thuật ngữ: lập trình, cài đặt, tiến hành, viết mã, viết code, mã hóa , thì thực chất chúng chỉ là một mà thôi. Có thể nói rằng tin học là lĩnh vực sẽ phát triển nên ngay lập tức làm việc Mỹ Việc dùng thuật ngữ cũng không có sự thống tuyệt nhất. Lấy ví dụ ngay trong mô hình vòng đời phần mềm, thì có fan Điện thoại tư vấn pha "quánh tả" là pha "phân tích", giỏi gộp nhì trộn "yêu cầu" và trộn "phân tích" thành pha phân tích hệ thống. Cách dịch sát ý nhiều lúc làm đến câu khó hiểu. Ví dụ nhỏng chúng tôi đã nói mang lại trong phần trước, trường hợp dịch "requirements phase" là pha yêu cầu thì khó gọi rộng là dịch thoát ý: trộn xác định yêu cầu . Vậy nên, lúc thực hiện các tài liệu giờ Anh chúng tôi đã áp dụng cách dịch thoát ý giả dụ thấy quan trọng.

Lúc hiểu các tài liệu khác nhau, các các bạn sẽ thấy mọi thuật ngữ được áp dụng không tuyệt nhất quán. Chúng tôi nghĩ rằng điều đó đối với các bạn không quá đặc trưng nhằm các các bạn phải do dự. Các chúng ta hãy dùng một cách Điện thoại tư vấn nào đó mà các chúng ta thấy thích hợp, điều quan trọng đặc biệt là các các bạn phải nuốm được ý nghĩa đích thực của nó.

1.3. PHẠM VI CỦA CÔNG NGHỆ PHẦN MỀM

1.3.1.Msống đầu

Mục tiêu của công nghệ phần mềm là cung ứng ra các phần mềm không có lỗi , được hoàn thành đúng thời hạn cùng với khiếp phí cho phépthỏa mãn yêu cầu khách hàng . ngoại giả ứng dụng nên dễ sửa thay đổi Khi người tiêu dùng buộc phải.

Để đã có được điều này các kỹ sư ứng dụng cần được thiết bị các khả năng về chuyên môn cũng tương tự về quản lí lý. Các năng lực này không chỉ biểu lộ Khi viết cmùi hương trình, mà bắt buộc được áp dụng vào các pha xây dựng phần mềm, ban đầu tự khảo sát yêu cầu khách hàng cho tới quy trình bảo trì.

Có không ít người đã từng viết gần như cmùi hương trình máy tính, thậm chí đã tđắm say gia viết các cmùi hương trình vận dụng trong thực tế mà chưa hề biết về "công nghệ phần mềm". Một điều đáng nói là không đề nghị vì cố mà chương thơm trình của mình kém tác dụng. Vậy thì "công nghệ phần mềm" liệu có ích lợi gì, có đích thực cần thiết so với những người dân phát triển phần mềm không?

Chúng ta hãy xem một ví dụ thực tế: trả sử bạn phải xây dựng một ngôi nhà. Nếu bạn là thợ xây và ngôi nhà bé dại thì bạn có thể xây mà không cần thiết kế trên giấy. Thực ra thì trước và vào quá trình xây nhà, các bạn cũng đã hình dung ra công việc mình cần làm, chúng ta đã tưởng tượng ra ngôi nhà của mình, nghĩa là các bạn cũng có xây đắp, nhưng không ghi ra trên giấy mà thôi. Nếu cũng là ngôi nhà đó tuy vậy chúng ta lại nhờ vào một fan khác thì sao? Rõ ràng các bạn phải giải thích cho những người đó biết cần phải làm gì. Không ít ngôi trường đúng theo xẩy ra là mang đến dù chúng ta đã giải thích cực kỳ rõ, tuy thế tín đồ thợ vẫn làm không đúng ý bạn. Có thể buổi sáng chúng ta đã căn uống dặn fan thợ phải xây lan can như thế nào dẫu vậy buổi chiều về các bạn lại thấy một cái lan can khác hẳn điều bạn đã mô tả và công dụng là đề nghị phá đi nhằm làm lại. Đó là vấn đề "xây ngôi nhà nhỏ". Nếu công trình ta yêu cầu xây dựng là cả một tòa nhà xuất xắc cái cầu bắc qua sông mập thì không thể thiếu thốn phiên bản kiến tạo cụ thể. Bản xây cất nên được đàm đạo không ít trước khi đi mang lại phương thơm án cuối cùng. Bản xây đắp đó nên rõ ràng sao cho tất cả những người kỹ sư thi công và những nhười thợ phải phát âm được chính xác, không bị nhầm lẫn. Đối cùng với Việc viết chương trình cũng thế. Nếu là vấn đề nhỏ như tính định thức ma trận tuyệt tính giao động tích phân, các bạn chỉ cần biết thuật toán rồi bắt tay vào viết số đông dòng lệnh trên máy. Thậm chí đối với bài toán Khủng hơn như là cai quản lý bán hàng ở 1 cửa ngõ hàng bé dại chẳng hạn, với 1 phần mượt cai quản trị đại lý tài liệu có sẵn như foxpro, các bạn chỉ việc hiệp thương đôi điều với khách hàng rồi có thể bắt tay vào vừa viết vừa hiệu chỉnh cho đến lúc nhận được thành phầm có thể áp dụng được. Chương thơm trình máy tính có một điểm lưu ý khác với các thành phầm khác là có tính "mềm" nlỗi tên điện thoại tư vấn của nó: ta có thể hiệu chỉnh các dòng lệnh hoặc xóa đi viết lại từng đoạn chương thơm trình mà không tốn các công mức độ và không ảnh hưởng mang đến công dụng cuối cùng. Trong thực tế có phần lớn vấn đề khiến chúng ta đề nghị cân nói khôn xiết kỹ trước khi triển khai. Nếu là xây một bức tường chắn ta có thể phá đi từng phần để xây lại, mang lại dù như thế có thể tốn một vài vật liệu và công sức. Nhưng với những người bác sĩ phẫu thuật thì anh ta đề nghị suy nghĩ vô cùng cẩn trọng lúc gửi lưỡi dao cắt đi một trong những phần nào đó của cơ thể người, vì nếu như anh ta sai sót thì kết quả thật khôn lường và đôi khi không thể thay thế sửa chữa được.

Ngày nay có phần đa hệ ứng dụng phải hàng trăm người làm trong tương đối nhiều năm nhỏng hệ ứng dụng dùng cho chương thơm trình không gian của Mỹ. Thậm chí có phần đông hệ phải cho hàng ngàn fan trong tương đối nhiều nước làm trong vô số nhiều năm nlỗi chương trình điều khiển và tinh chỉnh tổng đài điện thoại cảm ứng hiện nay được bán khắp chỗ trên thế giới. Khác cùng với các thành phầm khác, phần mềm không khi nào duy trì nguyên mà không dứt được đổi khác. Ví dụ nhỏng chương trình quản lí lý hiệu quả thi đại học ví dụ điển hình. Có thể tưng năm lại có một chính sách khác và đề xuất sửa lại mang đến phù đúng theo. Cmùi hương trình cai quản lý nhân sự của một phòng ban, chương thơm trình quản lí lý phượt, ... cũng như vậy. Thường thì sau một thời hạn cài đặt và sử dụng, khách hàng lại có thêm một trong những yêu cầu và họ có nhu cầu phần mềm được sửa lại theo yêu cầu đó. Nếu lúc đó chúng ta yêu cầu tìm lại tác đưa cũ thì thiệt là khó khnạp năng lượng. Điều này đưa ra thêm một yêu cầu cho phần mềm: phần mềm bắt buộc được xây dựng sao để cho các chuyên gia ứng dụng khác (mà không yêu cầu là tác giả) có thể hiểu và bảo trì được. Tóm lại, có thể nêu một vài lý vì khiến cho chúng ta buộc phải nghiên cứu giúp các cách thức xây dựng ứng dụng một cách có công nghệ là:

 

Ngày nay đa phần ứng dụng được xây dựng theo 1-1 đặt hàng. do vậy phải có một ngôn ngữ chung giữa tín đồ xây dựng ứng dụng và khách hàng.

 

Phần mượt thường không vì chưng một fan mà có tương đối nhiều tín đồ xây dựng. Những fan cùng phát triển một phần mượt cần phát âm rõ công việc của mình và công vấn đề tầm thường, mối liên hệ giữa công việc của từng cá nhân hoặc từng nhóm. Cần có một cách thức mô tả các công bài toán làm phần mềm sao cho từng kỹ sư phần mềm rất nhiều có thể hiệp thương dễ dàng dàng các ý tưởng và công câu hỏi của mình cùng với các kỹ sư trong nhóm làm Việc.

 

Phần mềm cũng là một vật dụng hàng hóa tựa như những thiết bị hàng hoá khác và vì chưng đó phải tuân thủ nguyên tắc của kinh tế tài chính thị trường là thành phầm buộc phải tự do với những người sản xuất . Nghĩa là sau thời điểm download hàng, người tiêu dùng không bị lệ thuộc vào người bán. Muốn nắn vậy thì thành phầm phần mềm ngoài chương trình chạy trên máy, buộc phải có thêm các tài liệu sao cho những người khác có thể tìm hiểu và bảo trì được. Vậy thì cần một ngôn ngữ, một cách trình bày bình thường mang đến các thành phầm ứng dụng.

1.3.2. Công nghệ ứng dụng nhìn từ góc độ lịch sử

Máy tính điện tử đầu tiên đến mục đích tmùi hương mại là máy UNIVAC-1 được phân phối năm 1951 ở Mỹ. Từ khoảng những năm 1955 thì ban đầu có các phần mềm, tức là các chương thơm trình máy tính. Cho tới nay, trường hợp đem phương pháp và cường độ tinh vi làm căn cứ, thì có thể phân tách quá trình phát triển phần mềm thành 3 giai đoạn: 1955 - 1970, 1971 - 1985, 1986 đến lúc này. Tất nhiên sự phân chia này chỉ là kha khá mà thôi. điểm lưu ý của từng quy trình là:

- 1955 - 1970: Tính toán và quản ngại lý rời rốc, cai quản lý nhỏ tuổi. Đặc tả hồ hết yêu cầu của khách hàng lúc đó còn dùng ngôn ngữ từ nhiên thông thường. Ví dụ các câu kiểu như: tôi ao ước có tệp dữ liệu đựng hồ hết thông tin về bán sản phầm như số hóa đối kháng, fan bán, khía cạnh hàng,...Dữ liệu sẽ được nhập từ bàn phím, có đánh giá rồi new gửi vào tệp. Hàng tháng tôi ước ao lấy thông tin về lợi nhuận, lãi, số hàng bán....Thiết kế thời ấy không được biên soạn thảo ra giấy mà chỉ hình thành vào tư duy của người lập trình. Người lập trình vừa viết chương trình vừa cân nhắc về cách tổ chức tài liệu, cách sử dụng các thuật toán thế nào cho cmùi hương trình chạy giỏi, đáp ứng được yêu cầu của khách hàng. Chương thơm trình hồi đó chỉ tất cả khoảng trên dưới vài trăm dòng lệnh. Phương thơm pháp lập trình được sử dụng thời đó là lập trình đường tính , tức là cách viết cmùi hương trình trong đó đa phần các lệnh được đặt theo trình từ bỏ thực hiện của chúng, nghĩa là lệnh nên tiến hành trước sẽ tiến hành viết trước, lệnh triển khai sau được viết sau.

- 1971 - 1985: Lúc này đã có nhu cầu xây dựng các ứng dụng thời gian thực (nghĩa là tính toán và thực hiện ngay hiệu quả, ví dụ tính toán trong lò phản ứng phân tử nhân nên có ngay kết quả nhằm tinh chỉnh kịp thời). Lúc này có yêu cầu xây dựng các mạng tổng thể và kết nối các cửa hàng dữ liệu . Đặc tả thời đó chú trọng vào sệt tả đầu vào cổng output, tài liệu và các luồng dữ liệu (data flow). Ví dụ hầu hết tệp dữ liệu lưu trữ đa số thông tin gì, vào quá trình xử lý thì tài liệu được tính toán và dịch chuyển thế nào. Đầu ra của tệp dữ liệu này sau khoản thời gian xử lý lại có thể trsinh hoạt thành đầu vào của tệp khác... Thiết kế thời đó chú trọng cho tới cấu hình hệ thống (system configuration). Vấn đề cấu trúc so với dữ liệu và giải thuật cũng rất được chú ý, vì sự việc phệ cần phải được mô tả có cấu trúc đến dễ hiểu. Các cmùi hương trình tiêu biểu thời đó có thể nói đến hệ điều hành DOS, UNIX ...Lúc đó cũng đã có phần nhiều các đại lý dữ liệu có thể truy cập từ xa. Do nhu yếu thực tiễn, các ngôn ngữ lập trình ra đời quá trình này đã có kĩ năng hỗ trợ phương pháp lập trình có cấu trúc, nghĩa là chương thơm trình được phân phân tách thành các chương thơm trình con , từng cmùi hương trình nhỏ có tên và các công dụng xử lý riêng, có thể giao tiếp cùng với các chương trình con khác thông qua các đối số và loại trả về (ví như có).

- Từ 1986 mang lại nay : Đây là thời kỳ của máy vi tính PC , thời nối mạng tầm rộng , mạng toàn cầu Internet . Đặc tả dự án được biết các là hướng đối tượng , công nỗ lực CASE (Computer Aided Software Engineering). Trong thiết kế fan ta chú ý đến môđun (module), đối tượng người tiêu dùng (object), giao thức (protocol) và giao diện (interface) . Giao thức xuất xắc bối cảnh nói về sự việc dàn xếp giữa các đối tượng người dùng. Khi cài đặt trên máy tính người ta hay dùng ngôn ngữ phía đối tượng . Ngoài các ứng dụng được viết theo đặt hàng, bạn ta chú trọng mang lại các ứng dụng đóng gói như: Netscape, Internet Explorer, Word, Excel...

Ngày ni ứng dụng ngày càng to, càng tích thích hợp. Phần mềm ngày nay còn được truy vấn sinh sống khắp khu vực trên quả đât thông qua Internet.

Người ta nhận định rằng câu hỏi xây dựng một trong những phần mềm cũng cần được tuân theo phần đông nguyên tắc và kỹ hiện tượng y như Khi xây dựng một dòng cầu tốt tiến hành đều công câu hỏi kỹ nghệ khác. Nếu một chiếc cầu bị lỗi lúc xây dựng và vày đó bị sập thì tác sợ hãi gây ra rất cao. Một ứng dụng đặc trưng như phần mềm điều khiển hệ thống tên lửa đạn đạo của một nước mà có lỗi, cho công dụng tính toán không nên thì kết quả nó gây ra cũng thiệt là kinh hồn bạt vía. Chính vì vậy một nhóm nghiên cứu vãn của NATO vào năm 1967 đã thực hiện thuật ngữ "Software engineering" . Họ ước ao rằng lúc xây dựng ứng dụng thì các kỹ sư cũng cần phải áp dụng các nguyên tắc của kỹ nghệ truyền thống.

Tuy nhiên, có những sự khác biệt thân thành phầm của kỹ nghệ truyền thống lâu đời và công nghệ phần mềm. Ví dụ nhỏng loại cầu và hệ điều hành chẳng hạn. Sự gắng cầu sập cực kỳ ít Khi xảy ra và giả dụ xẩy ra thì cách hạn chế và khắc phục thường là xây dựng lại. Còn hệ điều hành giả dụ có sự cố kỉnh có Lúc chỉ việc tắt máy khởi động lại là lại chạy xuất sắc. Phần mềm có thể sửa lại, có Khi là cho tới 50% để có thể chạy trên máy tính có cấu hình khác hoặc tiến hành thêm các chức năng khác. Còn dòng cầu mong sửa lại một nửa thì khôn xiết khó, đôi lúc xây dựng mới còn dễ dàng thực hiện hơn.

1.3.3. Từ góc độ kinh tế

Trong kỹ nghệ truyền thống, lúc có các cách thức nhằm cung ứng một sản phẩm nào đó, ví dụ chiết xuất khí đốt tự than đá chẳng hạn, các kỹ sư hay chọn phương án thấp nhất. khi xây dựng ứng dụng cũng vậy, tín đồ ta thường chắt lọc cách thức đưa ra phí ít tuyệt nhất. Một pmùi hương pháp lập trình bắt đầu có thể viết chương trình nkhô hanh hơn, nhưng đưa ra phí đào tạo và giảng dạy sử dụng và công bảo trì có thể lớn hơn khiến fan ta đề xuất cân đề cập lúc chắt lọc.

1.3.4. Về sự việc bảo trì

Dãy các bước mà 1 phần mượt trải qua, bước đầu trường đoản cú số đông khảo sát ban đầu cho tới Lúc phần mềm không còn được sử dụng được Hotline là vòng đời của phần mềm (software life cycle).

Cho tới những năm 70 của nạm kỷ trước, vấn đề cung ứng 1 phần mềm được đánh giá là công dụng của hai quy trình tiến độ tiếp liền nhau: phát triển (developement) và bảo trì (maintenance). Dần dần ý kiến này trsống nên không phù phù hợp. Ta có thể mang một ví dụ 1-1 giản: ứng dụng ngày nay có thể được phát triển trong một vài năm. Trong khoảng tầm thời hạn đó có thể có đầy đủ phần đã hoàn thiện theo đúng thiết kế ban đầu nhưng khách hàng lại bổ sung cập nhật đầy đủ yêu cầu mới và nên kiến thiết lại, viết lại... Công vấn đề này có thể xem là bảo trì. Có quan điểm nhận định rằng công Việc sửa lỗi tốt hiệu chỉnh những phần chương thơm trình đã hoàn thiện tại theo kiến tạo ban sơ thì nên coi là công vấn đề bảo trì. Tuy nhiên cho tới nay hay fan ta vẫn coi công tác bảo trì là đông đảo vận động sau khi phần mềm đã hoàn chỉnh và được cài đặt nhằm áp dụng. Trong tài liệu này đa số chúng ta cũng đọc từ bỏ "bảo trì" cùng với nghĩa như thế.

Trong trong thời điểm cuối của thập kỷ 70 của cầm kỷ trước, phần lớn các công ty Lúc thêm vào các phần mềm đã áp dụng mô hình vòng đời ứng dụng mà ngày nay bạn ta Hotline là mô hình thác đổ (waterfall). Mô hình này bao hàm 7 giai đoạn như sau:

1. Xác định yêu cầu (Requirements phase)

2. Phân tích hay còn Điện thoại tư vấn là đặc tả (Analysis or specification phase)

3. Thiết kế (Design phase)

4. Cài đặt (Implementation phase)

5. Tích hợp (Integration phase)

6. Bảo trì (Maintenance phase)

7. Thôi thực hiện (Retirement)

Trong thực tiễn có thể một vài trộn được làm lơ hoặc được thay thế sửa chữa do các pha khác. Ví dụ fan ta thích hợp tốt nhất hai pha đầu tiên thành pha hệ thống. Người ta lại nhận định rằng vấn đề tích vừa lòng phải được tiến hành trong quá trình cài đặt, cài đặt dứt thì bắt buộc có một thời hạn kiểm thử, và như thế mô hình tất cả các quy trình tiến độ sau:

1. Phân tích khối hệ thống

2. Thiết kế (con kiến trúc và chi tiết)

3. Cài đặt (và tích hợp)

4. Kiểm thử

5. Bảo trì

6. Thôi thực hiện

Cũng có cách nhìn nhận định rằng thực ra kiểm soát (verify) hoặc kiểm demo (test) là công câu hỏi rất cần được triển khai làm việc gần như vị trí. Ví dụ với pha sệt tả, kiểm tra là xem xét so sánh coi tài liệu quánh tả đã mô tả tương đối đầy đủ và chính xác các yêu cầu khách hàng tốt chưa, còn kiểm demo chính là xem xét xem từng điểm trong trộn đặc tả đã được miêu tả trong các trộn sau đó giỏi không. Vì vậy không nên tách riêng kiểm test thành một pha. Theo quan điểm của chúng tôi thì không nên gộp hai pha yêu cầu và sệt tả. Với phần mềm lớn, nhiều người viết thì Việc tích đúng theo là hết sức quan trọng đặc biệt và nên để riêng thành một pha, còn với ứng dụng vừa và nhỏ dại thì nên kết hợp cài đặt và tích hợp thành một pha, trong đó bao hàm cả tích hòa hợp, như trong bảng sau:

PM nhỏ

Yêu cầu

Đặc tả

Thiết kế

Cài đặt và tích vừa lòng

Bảo trì

Thôi sử dụng

PM Khủng

Yêu cầu

Đặc tả

Thiết kế

Cài đặt

Tích phù hợp

Bảo trì

Thôi áp dụng

 

 

 

 

 

 

 

 

Ý nghĩa của các pha :

1. Xác định yêu cầu : Tìm phát âm các yêu cầu của khách hàng, chỉ dẫn các khái niệm và vấn đề.

2. Phân tích : Phân tích các yêu cầu của khách hàng. Mô tả các công dụng phân tích dưới dạng "tài liệu sệt tả". Cuối giai đoạn này là chiến lược quản ngại lý dự án phần mềm được giới thiệu, mô tả cụ thể quá trình phát triển phần mềm. Câu hỏi mà pha này yêu cầu đến câu trả lời là: "phần mềm đã làm gì?" (What the hàng hóa is supposed khổng lồ do?).

3. Thiết kế : Pha kiến tạo bao hàm hai quá trình tiếp liền nhau: kiến tạo con kiến trúc (architechtural design) và xây cất chi tiết (detailed design). Thiết kế kiến trúc phân phân tách ứng dụng thành các thành phần gọi là module. Thiết kế chi tiết là xây đắp từng module một cách chi tiết. Câu hỏi phải trả lời trong pha này là: phần mềm thực hiện các công việc như vậy nào? (How the product is lớn vì it?).

4. Cài đặt : Từng thành phần khác nhau được lập trình và kiểm thử.

5. Tích hợp : Các thành phần của thành phầm được kết hợp với nhau và kiểm test toàn diện. Sau Lúc những người dân phát triển đã kiểm demo và cho rằng toàn bộ các tính năng của ứng dụng đã chuyển động giỏi thì đến lượt khách hàng kiểm demo. Sự kiểm demo của khách hàng được gọi là kiểm thử chấp nhận (acceptance testing). khi sự kiểm test của khách hàng kết thúc và khách hàng vừa lòng với thành phầm thì phần mềm được cài đặt trên máy của khách hàng. Trong thực tiễn thì trộn tích hòa hợp được tiến hành tuy vậy tuy nhiên với trộn cài đặt. Lúc từng thành phần của sản phẩm được hoàn thành thì người ta tiến hành test luôn.

6. Bảo trì : Sản phđộ ẩm được áp dụng nhằm thực hiện các công câu hỏi đã đặt ra trước đó. Trong quá trình này có thể xẩy ra phần lớn sự cố: đó có thể là các lỗi cmùi hương trình không được thải trừ hết, hay công dụng không được nhỏng khách hàng ước ao đợi. Người ta phân phân tách công Việc bảo trì thành hai loại: bảo trì sửa lỗi (software repair) và bảo trì cập nhật (softwair update). Trong giờ Anh bảo trì sửa lỗi còn được Call là corrective maintenance , bảo trì cập nhật còn được điện thoại tư vấn là software enhancement .

Bảo trì sửa lỗi nhỏng tên gọi của nó, là sửa các lỗi có thể vẫn còn mở ra trong lúc chạy chương thơm trình. Bảo trì cập nhật lại được phân chia làm hai loại: bảo trì hoàn thiện (perfective maintenance) và bảo trì thích nghi (adaptive maintenance). Bảo trì hoàn thiện nay là sửa thay đổi phần mềm theo ý khách hàng nhằm nâng cao kết quả. Bảo trì thích nghi là sửa thay đổi nhằm phần mềm thích nghi cùng với môi ngôi trường bắt đầu, ví dụ sửa đổi công thức tính lương theo chính sách bắt đầu ban hành tuyệt hiệu chỉnh nhằm chương thơm trình phù phù hợp với phiên bản mới của ngôn ngữ lập trình...(Sự phân phân tách này cũng chỉ là tương đối mà thôi). Người ta tính toán rằng bảo trì thay thế và thích nghi chiếm thời gian ngay gần cân nhau và khoảng chừng 20% từng một số loại, còn bảo trì hoàn thiện nay chỉ chiếm thời gian khoảng vội vàng 3 lần từng loại bảo trì cơ (khoảng chừng 60%).

Người ta hay cho là "sản phẩm xấu" bắt đầu buộc phải bảo trì. Tuy nhiên thực tế thì ngược lại: "thành phầm xấu" bị vứt vào sọt rác, còn "sản phẩm tốt" thì được hiệu chỉnh, nâng cấp cho và sử dụng trong vô số năm (tức là được bảo trì). Phần mượt là mô hình của nhân loại thực, mà quả đât thực thì thay đổi không xong, vị đó ứng dụng cũng đề nghị được bảo trì thường xuyên nhằm bội nghịch ánh đúng thế giới thực. Trong thực tế công bài toán bảo trì chiếm một lương thời hạn và bỏ ra phí khá phệ đối với các pha khác. Nếu ta Hotline các trộn 1-5 thành tên phổ biến là các trộn phát triển, phần còn lại là trộn bảo trì thì thực tiễn cho thấy rằng trung bình trộn bảo trì thường xuyên chiếm khoảng hai phần ba (67%) đưa ra phí sản phẩm. Thậm chí có nhiều công ty phần bỏ ra phí mang đến bảo trì có thể lên cho tới 80%. Tỷ lệ % thời hạn tiến hành các pha phát triển có thể thấy vào bảng sau:

Các pha

Các dự án từ bỏ 1976-1981

132 dự án ngay gần đây của Hewlett-Packard

Phân tích hệ thống

21

18

Thiết kế

18

19

Cài đặt

36

34

Tích hợp

24

29

Tổng

99

100

7. Thôi sử dụng .

1.3.5. Vấn đề phân tích và thiết kế

Các chuyên gia phát triển phần mềm cũng là những người bình thường và bởi đó không thể tránh được không đúng sót trong công câu hỏi. bởi thế trong ứng dụng bọn họ phát triển có thể đựng lỗi. Lỗi có thể đựng trong đông đảo pha. Dễ thấy rằng lỗi vào pha trước cũng trở thành gây nên lỗi sinh hoạt pha sau. Do đó trường hợp phát hiện lỗi càng chậm rãi thì chi phí thay thế càng mập. Chi phí tốn kém duy nhất là Lúc phần mềm đã được bàn giao và cài đặt mang đến khách hàng. Lúc đó không số đông phần lệnh buộc phải viết lại mà có thể các báo cáo trước đó cũng yêu cầu thay thế. Sau Lúc phần mềm được sửa chữa thì lại tốn công phân phối hận và cài đặt lại... Trong các trộn xác định yêu cầu, phân tích xây đắp thì thành phầm còn ở trên giấy và bài toán sữa trị hay chỉ cần cho tẩy và bút chì. Vì vậy nên thực hiện các pha này thật cẩn thận thế nào cho có ít không nên sót độc nhất vô nhị. Người ta cũng đã sử dụng một số trong những kỹ thuật tìm lỗi nkhô nóng vào các trộn yêu cầu và pha phân tích.

1.3.6. Vấn đề lập trình theo nhóm

Ngày ni nhờ việc phát triển siêu nkhô hanh của nghệ thuật, các công ty đã có thể sản phẩm gần như máy tính có cấu hình cao, có thể chạy được phần đông chương thơm trình lớn. Nhiều phần mềm trở thành quá mập và không thể viết được vì chưng một bạn. Ví dụ fan ta nên có sản phẩm trong khoảng thời hạn một năm, dẫu vậy ví như một fan làm thì mất 15 năm, rõ ràng lúc này ứng dụng đề xuất được làm vì chưng nhiều người dân. Tuy nhiên không giống như vấn đề xây nhà hoặc đào kênh rạch, bài toán phát triển ứng dụng theo nhóm hay chạm chán khó khăn uống vào vấn đề phân chia và phối kết hợp công việc thân các thành viên. Ví dụ A và B bên cạnh đó viết code đến hàm p và q. Hàm p có lời call tới hàm q. Để cmùi hương trình không báo lỗi, lúc viết p A đề xuất khai báo nguyên chủng loại cho q. Nếu không có sự đàm phán cảnh giác, có thể B xây dựng hàm q cùng với các tsi số không hoàn toàn giống cùng với nguyên mẫu mã mà A knhị báo, ví dụ thiết bị trường đoản cú các tđam mê số khác ví dụ điển hình, Lúc đó vấn đề kết hợp đang không thành công. Thực tế chứng minh rằng không buộc phải không ít người làm là thời hạn được giảm đi Phần Trăm với số fan. Giả sử 1 phần mềm được làm trong 1 năm bởi vì một fan. Khi đó nếu có 3 người làm thì thời hạn không phải là 4 tháng nhỏng ta nghĩ về mà có thể là gần một năm và unique có thể kém rộng ứng dụng bởi một tín đồ xây dựng. Vấn đề làm bài toán theo nhóm quả thực là vấn đề rất khó và là một nghành mà công nghệ phần mềm buộc phải nghiên cứu vãn.

1.3.7. Pmùi hương pháp hướng đối tượng

Trước 1975 đa phần các công ty phân mượt rất nhiều không thực hiện một kỹ thuật nào quan trọng. Thường thì từng công ty có cách làm phần mềm riêng. Từ 1975 - 1985 pmùi hương pháp cấu trúc (structured paradigm) ra đời , đánh dấu một sự biến hóa đáng kể vào kỹ thuật làm phần mềm. Kỹ thuật này gồm những: phân tích khối hệ thống có cấu trúc (structured system analysis), phân tích dòng dữ liệu (data flow analysis), lập trình cấu trúc (structured programming) và kiểm demo theo cấu trúc (structured testing). Lúc bắt đầu Thành lập và hoạt động, phương pháp cấu trúc tỏ ra có tương đối nhiều hứa hẹn và cũng đã được áp dụng khá kết quả. Tuy nhiên, khi độ Khủng của các phần mềm tăng lên thì phương pháp này thể hiện hầu hết điểm yếu. Theo thời hạn, fan ta rút ra 2 nguyên nhân tinh giảm kỹ năng của chuyên môn này:

Thứ nhất , fan ta nhận ra rằng phong cách lập trình cấu trúc trầm trồ không phù hợp với những ứng dụng đựng khoảng trên 5000 dòng lệnh (tức là khoảng chừng 100 trang). Các phần mềm ngày ni có thể cất đến 500 000 , thậm chí đựng mang lại 5 triệu dòng lệnh hoặc hơn thế.

Thứ hai , lúc xây dựng phần mềm tín đồ ta dự kiến về trung bình thì kinh phí bảo trì chỉ chiếm khoảng chừng nhị phần bố tổng tởm phí (66%). Tuy nhiên vào thực tế thì phương pháp cấu trúc đã không làm được điều này. Rất nhiều công ty đã dùng mang lại 80% khiếp phí cho công việc bảo trì.

Nguyên nhân làm mang đến lập trình cấu trúc không thiệt thành công là vì pmùi hương pháp này hoặc là đ ịnh hướng hành động (action oriented) hoặc là kim chỉ nan dữ liệu (data oriented), chđọng không yêu cầu là cả hai. Các thành phần cơ bạn dạng của một trong những phần mượt chính là các hành động và dữ liệu mà các hành động này tác đụng lên . Ví dụ vấn đề xác định độ cao trung bình bao gồm nhị thao tác: tích lũy chiều cao (dữ liệu), và tính độ cao trung bình. Một vài kỹ thuật cấu trúc, ví dụ phân tích dòng dữ liệu (xem <6>, mục 13.3), là kim chỉ nan thao tác. Nghĩa là chuyên môn này chú ý rộng các thao tác, dữ liệu chỉ là lắp thêm yếu hèn. Ngược lại, nghệ thuật khác như hệ thống Jackson (xem <6>, mục 13.5) lại là triết lý tài liệu. Tại đây sự nhấn mạnh vấn đề lại là dữ liệu, còn thao tác là vật dụng yếu ớt.

Pmùi hương pháp hướng đối tượng người dùng lại coi tài liệu và hành hễ hầu như đặc trưng như nhau . Người ta xem đối tượng người tiêu dùng là một thành phần của phần mềm vào đó bao hàm dữ liệu và các hành hễ thao tác trên dữ liệu này.

Tài khoản ngân hàng là một ví dụ về đối tượng người dùng. Dữ liệu của đối tượng là số dư tài khoản.


Bạn đang xem: Giáo trình công nghệ phần mềm


Xem thêm: Đề Kiểm Tra Hình Học 7 Chương 2 Hình Học 7 Có Đáp Án Năm Học 2019

Các hành đụng tác rượu cồn lên số dư tài khoản là câu hỏi gửi chi phí, rút tiền và tính số dư.

Nhìn trường đoản cú ý kiến phương thơm pháp cấu trúc thì phần mềm xử l?