《軟體工程方法與實踐》 2 5 軟體工程活動

2021-09-23 16:56:09 字數 3253 閱讀 5018

在軟體工程的概念被提出來之前,開發人員錯誤地認為,軟體就是開發活動,或者極端地認為其就是編碼,至於分析和設計等都是次要的。隨著軟體規模的不斷增大,軟體開發活動中暴露出很多問題。軟體工程是為克服這些問題而被提出,並在實踐中不斷地探索它的原理、技術和方法。軟體工程的工程化思想讓開發人員看到,軟體工程活動包括溝通活動、計畫活動、建模活動、實現活動、部署活動、維護活動、管理活動、過程改進活動。

溝通活動

溝通活動是一切專案都需要的活動。當需要開發乙個專案時,一方面,開發團隊必然需要與客戶進行交流和溝通,獲得專案的需求;另一方面,開發團隊內部也需要交流,以便對專案有乙個統一的理解,從而開發出滿足使用者需####要的產品。

溝通活動包括確定合適的客戶、非正式溝通和正式溝通。確定合適的使用者是指發現真正的使用開發產品的使用者,只有使用該產品的使用者才能說出他們真正的需要。溝通是一門藝術,需要經驗和技巧。非正式溝通是與使用者的第一次接觸,還沒有建立融洽的關係,難以進行長時間和深入交流,這時由於對問題的認識還比較膚淺,或者由於雙方的領域不同,對問題的理解都存在一定的隔閡和難度,非正式溝通的目的是建立良好的關係和對問題有乙個初步的了解。這種良好的關係增加雙方的友誼,增強信任感,為後面的正式溝通鋪平道路。非正式溝通應在一種輕鬆愉快的氛圍當中進行,雙方可以從感興趣的問題入手,進而轉到主題上來,理解專案所涉及的領域和初步要求等。正式溝通時,根據非正式溝通獲得的基本需求和問題,雙方確定討論的主題或問題,開展深入的分析和討論。一般,有乙個主持人按照事先確定的議程,針對問題逐步地提問和解答,保證溝通高效進行,並形成初步的文件。正式溝通持續時間較長或分幾次進行。

計畫活動

計畫活動包括專案計畫和專案跟蹤管理活動。

專案計畫包括專案可用的資源、工作分解以及完成工作的進度安排。在專案執行期間,專案計畫一般應該經常地修正,有些專案或部分可能會頻繁地改變。通常要密切跟蹤專案變動的部分,並及時反饋和調整。

專案計畫一般隨著專案的進展不斷細化,這是由於專案初期各種計畫都是比較粗略的,無法做到較為詳細的計畫。隨著專案的進展,一些要素和過程逐漸明確,因而專案的計畫需要詳細設計。

由於專案實際運轉與計畫總是有偏差的,因此專案跟蹤管理就是監控專案運轉過程出現的誤差,及時調整專案計畫,使得專案沿著正確的方向進行。

建模活動

建模是對事物的抽象,抓住問題的本質,並進行必要的描述。由於軟體產品是邏輯的,是大腦的邏輯想象,是看不見、摸不著的複雜事物,因此對軟體產品的建模是必不可少的。

建模活動是對軟體本質的抽象,並建立完整的模型描述文件。模型是問題的某個方面的抽象。例如,需求建模就是抽象出軟體的根本需求,包括資料需求、功能需求和環境需求等,可以通過實體關係模型、資料流模型和狀態模型來抽象和描述。建模在軟體工程活動中是普遍的現象。軟體工程方法學提供許多的軟體建模活動和相關的模型。我們在後續的章節會學到許多的模型。

軟體建模主要包括軟體過程建模和軟體本身建模兩大類。軟體過程建模指對軟體開發的過程進行建模,目的是對複雜的開發過程進行抽象,理解不同開發過程的本質特徵,從而指導開發團隊根據軟體專案選擇合適的開發過程。軟體自身模型是對軟體本身進行建模,從不同的方面抽象出軟體的本質問題,進而給出合理的解決方案。

建模活動包括構建模型和模型的描述。構建模型指根據軟體的複雜程度從不同的方面建立軟體的模型,目的是理解系統。構建模型可以採用分解與抽象的方法進行。模型的描述是對構建的模型進行統一的表示,以便在開發人員之間進行交流和約定。有許多的工具支援開發人員進行高效建模。

實現活動

實現活動就是軟體的構造活動,也就是我們常說的編碼。實現活動根據軟體的設計編寫軟體的**,經過相應的測試後交付執行。

實現活動一般包括**編寫、測試與除錯、重構和執行等。**編寫就是根據設計文件和**規範將設計轉換成**的過程。開發人員要對程式語言和環境有一定的經驗,理解語言的特性,編寫簡潔明瞭的**。測試與除錯指對**進行單元測試和整合測試,並對存在的問題進行修改和回歸測試等。重構活動是對能夠執行的**進行優化,使得**的結構層次清晰,便於理解和修改,並在清晰的前提下提高**的效率,支援**的重用。

部署活動

一般,複雜的軟體需要部署在不同的硬體環境中。部署活動就是建立系統執行的環境,確定硬體結點之間的連線關係、結點的配置,以及分配**元件在不同的結點上。例如,乙個基於web的圖書館系統,需要部署web伺服器、應用伺服器和資料庫伺服器的配置,建立它們之間的連線協議和頻寬要求,然後部署圖書館系統的**到不同的伺服器上。

維護活動

軟體開發完成交付使用者使用後,就進入軟體的執行和維護階段。軟體維護是指軟體系統交付使用以後,為了改正軟體執行錯誤,或者因滿足新的需求而加入新功能的修改軟體的過程。軟體維護就是在軟體交付執行後,保證軟體正常執行、適應新變化等需要而進行的一系列修改活動。軟體維護的主要工作是在軟體執行和維護階段對軟體產品進行必要的調整和修改。

軟體維護是持續時間最長、工作量最大的一項不可避免的過程。軟體維護的基本目標和任務是改正錯誤、增加功能、提高質量、優化軟體、延長軟體壽命,以及提高軟體產品價值。

管理活動

當今的軟體開發活動是乙個非常複雜的過程。專案涉及幾

十、幾百甚至幾千的人員,專案週期少則幾個月,多則幾年,專案費用越來越高,因此,這樣的專案就需要很好地管理活動。

著名的專案管理專家james p.lewis指出,專案是一次性的、多工的工作,具有明確的開始日期和結束日期、特定的工作範圍、預算和要達到的特定效能水平。因而,專案涉及預期的目標、費用、進度和工作範圍4個要素。

軟體專案管理活動就是如何管理好專案的範圍、進度、成本等。為此需要制訂乙個好的專案計畫,然後跟蹤與控制好這個計畫。實際上,要做到專案計畫切合實際是乙個非常高的要求,需要對專案進行詳細的需求分析,制訂合理的計畫,安排好進度、資源調配、經費使用等,並不斷地跟蹤和調整。為了降低風險,要進行必要的風險分析與制訂風險管理計畫等。

過程改進活動

要完成乙個軟體專案,專案經理需要完全了解專案的過程,確定專案需要哪幾個步驟,每個步驟要完成什麼事情,需要哪些資源和技術,等等。如果將專案的關注點放在專案的開發過程,無論哪個團隊來做,都採用統一的開發過程,產品的質量是一樣的。團隊還可以通過不斷改進過程來提高產品的質量。這個過程體現了團隊的整體能力,而不依賴於個人能力。

軟體過程不只是軟體開發的活動序列,而是軟體開發的最佳實踐,包括流程、技術、產品、關係、角色和工具等。在軟體過程管理中,首先要定義過程,然後合理地描述過程,進而建立企業過程庫,並成為企業可以重用的資源。同時,也要不斷地改善和規範過程,幫助企業提高生產效率。

軟體過程改進是極其複雜的。必須不斷總結過去做過的專案的過程經驗,形成有形的過程描述,並不斷地完善和在以後的專案中重複利用。

過程管理活動的主要內容是過程定義和過程改進。過程定義是對最佳實踐加以總結,形成一套穩定的、可重複的軟體過程。過程改進是根據實踐中對過程的使用存在的偏差或不切實際的地方進行優化的活動。通過實施過程管理活動,軟體開發團隊可以逐步提高其軟體過程能力,從根本上提高軟體生產效率。

軟體工程 理論 方法與實踐

第一章 概述 軟體是電腦程式 規程以及計算機系統可能需要的相關文件和資料。軟體一般分為通用和定製軟體。軟體的特性 1 軟體是複雜的 2 軟體是不可見的 3 軟體是不斷變化的 4 大多數軟體是定製的,而不是通過已有的構件組裝的。軟體工程師為了經濟的獲得能夠在實際機器上高效執行的可靠軟體而建立和使用的一...

軟體工程理論方法與實踐

第一章 概述 軟體是人類思維的傑作,並成為人類現代生活的催化劑。今天軟體遍布整個世界,在生物工程 現代通訊 宇宙探索 商務處理 工業控制等方面發揮出巨大的威力,並推動了商業 科學和工程領域的跨越式發展,對整個社會的經濟和文化產生了深遠的影響。軟體工程師為了解決開發成本效益和軟體質量的問題而產生的。軟...

軟體工程目標以及軟體工程實踐體驗!

軟體工程的目標 生產具有正確性 可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構 實現及文件為使用者可用的程度。開銷合宜是指軟體開發 執行的整個開銷滿足使用者要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程 過程模型及工程方...