項目管理:軟件工程相關知識筆記

?

? ? ? ?? ? ??

1、軟件工程概念介紹

軟件工程是指應用計算機科學、數學、管理科學等原理,以工程化的原則和方法來解決軟件問題的工程,其主要目的是提高軟件生產率、提高軟件質量、降低軟件成本。

2、軟件工程學的組成

軟件開發技術:軟件開發方法學、軟件工具、軟件工程環境

軟件工程管理:軟件工程學、軟件經濟學

3、軟件工程基本原理

美國著名工程專家B.W.Boehm在1993年提出了軟件工程的7條基本原理,作為確保軟件產品質量和開發效率的原理最小集合。

3.1 采用分階段的生命周期計劃嚴格管理項目

大量統計數據表明,超過半數以上的失敗項目都是因為項目計劃不周全造成的。在軟件開發與維護的各個階段,需要完成許多不同任務。所以需要針對軟件生命周期各個階段制定切實可行的計劃。

然后嚴格按照計劃對軟件的開發與維護進行管理。

軟件生命周期的計劃:項目概要計劃、里程碑計劃、項目控制計劃、產品控制計劃、驗證計劃、運行維護計劃。

3.2 檢查進行階段的評審

統計結果表明,大部分錯誤是在編碼之前造成。設計錯誤占軟件錯誤的63%,編碼錯誤僅占37%。并且錯誤發現改正越晚,成本代價就會越高。所以每個階段的嚴格評審是非常重要的環節。

3.3、實現產品的嚴格控制

在軟件開發過程中不應該隨意改變需求,需求修改一般都需要付出較高的代價。但是項目是可客戶用的,該需求是不可避免的事情。當涉及需求修改時必須要嚴格按照規程進行評審,特別是涉及到基準配置修改更加要慎重,必須獲得批準后才能實施修改。

3.4、采用現代程序設計技術

編程語言日新月異,人們已經充分認識到方法大于力氣。采用先進的技術可以提高軟件的開發效率也可以降低軟件的維護成本。當然要做好技術選型的調研,這樣可以規避一些技術風險。

3.5、結果應能清楚地審查

軟件開發人員的工作可見性差,難于評價和管理。為了更好地進行項目管理,應根據軟件開發的總目標設定完成期限和項目的責任、產品標準,從而能更好的進行控制項目的進度。

3.6、開發小組人員應該少而精

開發人員的素質和數量是影響軟件質量和開發效率的重要因素,應該少而精。原因有兩點:

1、高素質的開發人員效率比低素質開發人員效率高幾十倍、開發中犯的錯誤也會少很多。

2、隨著小組成員增多,通信開銷會大大增加。

比如開發小組為N人,可能的通信信道為:N(N-1)/2

3.7、承認不斷改進軟件工程實踐的必要性

軟件開發是一個十分復雜的過程,不斷改進才能更好的提升產品質量和節約成本。

?

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271200.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android開發java環境_搭建Android開發環境 - Android - mobile - JavaEye論壇

Android的開發現在是如火如荼,逞現在不是很忙了,學習了下,這里記錄下了在windows在如何搭建Android開發環境,對自己是個記錄,對新入門的兄弟姐妹們可以參考一下!(1)安裝JDK,省略。(2)下載Androi…

updatebyprimarykeyselective的where條件是全部字段_ArcGIS 字段計算器

使用鍵盤輸入值并不是編輯表中值的唯一方式。在某些情況下,為了設置字段值,可能要對單條記錄甚至是所有記錄執行數學計算。您可以對所有記錄或選中記錄執行簡單計算和高級計算。此外,還可以在屬性表中的字段上計算面積、長度、周長和其他幾何…

jQuery自定義選擇器

jQuery 1.8版本后&#xff0c; 可以通過$ 的createPseudo()方法自定義選擇器&#xff0c;滿足不同的需求&#xff0c;本文來自<jquery in action> <ul class"levels"><li data-level"1" data-points"1" data-technologies"j…

項目管理基礎:軟件生命周期概念介紹

1、軟件生命周期定義軟件產品或軟件系統要經歷孕育、誕生、成長、成熟、衰亡等階段稱為軟件的生命周期。2、軟件生命周期階段組成軟件的生命周期由可行性分析與項目開發計劃、需求分析、總體設計、詳細設計、編碼、單元測試、綜合測試、維護階段。2.1 可行性分析與項目開發計劃…

jvm棧和寄存器

jvm棧和寄存器 總結

python模型_python 模型的釋義

CharField#字符串字段, 用于較短的字符串.#CharField 要求必須有一個參數 maxlength, 用于從數據庫層和Django校驗層限制該字段所允許的最大字符數.IntegerField用于保存一個整數.FloatField# 一個浮點數. 必須 提供兩個參數:## 參數 描述# max_digits 總位數(不包括小數點和符…

java 布爾表達式_java - 布爾值,條件運算符和自動裝箱

java - 布爾值&#xff0c;條件運算符和自動裝箱為什么拋出falsepublic static void main(String[] args) throws Exception {Boolean b true ? returnsNull() : false; // NPE on this line.System.out.println(b);}public static Boolean returnsNull() {return null;}雖然…

安裝你自己的perl modules

來源&#xff1a; http://www.cnblogs.com/itech/archive/2012/12/17/2822044.html 安裝你自己的perl modules。當沒有root權限的時候&#xff0c;需要安裝perl modules到自己的home目錄下。 來自&#xff1a;http://servers.digitaldaze.com/extensions/perl/modules.html Ins…

項目管理基礎:項目的生存周期模型

1、概念介紹軟件生命周期模型是一個包含軟件產品開發、運行和維護中有關過程、活動和任務的框架&#xff0c;它覆蓋了系統從需求定義到系統使用的結束階段。特點&#xff1a;描述了開發的主要階段定義了每個階段需要完成的任務和過程規范了每個階段的輸入輸出提供了一個標準框架…

jps顯示當前所有java進程pid

很多Java命令都在jdk的JAVA_HOME/bin/目錄下面&#xff0c;jps也不例外&#xff0c;他就在bin目錄下&#xff0c;所以&#xff0c;他是java自帶的一個命令。 jps(Java Virtual Machine Process Status Tool) 是java提供的一個顯示當前所有java進程pid的命令&#xff0c;適合在…

jvm內存結構_淺談JVM內存結構

JVM 可以分為 5 個部分&#xff0c;分別是&#xff1a;類加載器&#xff08;Class Loader&#xff09;&#xff1a;加載字節碼文件到內存。運行時數據區&#xff08;Runtime Data Area&#xff09;&#xff1a;JVM 核心內存空間結構模型。執行引擎&#xff08;Execution Engine…

java annotation應用_java Annotation的應用

一、Annotation 示例Override Annotation1 Override2 public void onCreate(Bundle savedInstanceState);二、Annotation 概念及作用1 概念An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and package…

鴻蒙和安卓,到底有什么區別?

對于開發者來說兩個最關鍵的點值得關注&#xff1a;一個是 Beta 版的開發工具&#xff0c;一個是開源網站。開源網站在開發者大會上宣布將 HarmonyOS源代碼捐贈給中國開放原子開源基金會&#xff0c;并在大會上公布了鴻蒙系統的開源路線。OpenHarmony 官方源碼地址&#xff1a;…

錯題集03

(選擇一項) 3A: B: C: D: 正確答案是 B解析:LinkedList是實現List,Collection接口,是鏈表方式進行構建的,根據開發要求不同,可以使用LinkedList實現棧(先進先出)和堆(先進后出)這樣的數據結構。(選擇一項) 4A: B: C: D: 正確答案是 C解析&#xff1a;由于Hashtable是線程…

從零開始學python人工智能課程_從零開始如何學習人工智能?

想要學習人工智能&#xff1f;這里有一條完整路徑資源在本文中&#xff0c;《Analytics India》雜志給出了學習AI的最佳途徑。...科技領域的天平正在向人工智能傾斜&#xff0c;IT領域的技術人員正在將AI應用到現有產品中。但是對于企業來說&#xff0c; AI人才才是關鍵。企業培…

項目管理基礎:軟件開發的方法介紹

軟件開發方法主要有結構化方法、原型化方法、面向對象開發方法、敏捷方法。1、結構化方法結構化方法由結構化分析、結構化設計、結構化程序設計組成&#xff0c;它是一種面向數據流的開發方法。結構化分析&#xff1a;依據分解與抽象的原則&#xff0c;按照系統中數據處理的流程…

類加載器子系統的作用

類加載器子系統的作用

Magento Block設計分析(深入分析)

Magento中Block是一個很重要的組件&#xff0c;它在Block中充當非常重要的角色&#xff0c;下面我們來分析一下Magento中Block是怎樣設計的&#xff0c;我們應該怎樣使用這個重要的角色。1、Magento Block類圖: 圖1: 繼承Varien_Object的對象都有一個_data類變量&#xff0c;用…

JAVA輸出x和y和z_JAVA實例:輸入三個整數x,y,z,請把這三個數由小到大輸出-吾愛編程網...

今天為大家分享一個java經典實例輸入三個整數x,y,z,請把這三個數由小到大輸出&#xff0c;相信很多初學者都會學到這道題目&#xff0c;接下來吾愛編程為大家介紹一下程序的相關寫法&#xff0c;有需要的小伙伴可以參考一下:1、題目&#xff1a;輸入三個整數x,y,z&#xff0c;請…