導航:首頁 > 程序命令 > 程序員的定義

程序員的定義

發布時間:2022-01-25 02:12:13

❶ 什麼是程序員

  1. 程序員,從字面看就是寫程序的人員。

  2. 程序員(英文Programmer)是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。

  3. 初,中級程序員一般叫做碼農。

  4. 高級程序員和架構師一般叫做攻城獅

  5. 系統分析員是指做需求分析同時懂代碼的那群

  6. 測試攻城獅一般指黑盒測試,也就是點點點,所有功能按鈕全點,看看有沒有錯誤,常見錯誤404,500。

總結而言,一隻優秀的程序猿通常有以下特點:(以下來自於網路,詞條:程序猿)

  1. 【PMonkey】對技術充滿JI情(因為能夠得到香蕉)

  2. 編程作為一種愛好(不一定,只有少數的程序猿有這一素質) 如果你允許會滔滔不絕地跟你談論技術(程序猿使用特殊的語言,別的人或猴子很難聽懂)

  3. 【PMonkey】有過個人的開發經歷(獨立的尋找過香蕉或追尋母猿)

  4. 堅持認為某種技術最好(程序猿都很固執)

  5. 如果讓他用他認為不好的技術他會非常別扭(同上)

  6. 聰明、健談、興趣廣泛(只限於NEET和有關宅話題)

  7. 在大學和工作前就開始接觸程序(程序猿從小就是程序猿了)

  8. 總而言之,程序猿和它的一些同種族(如網管猿,技術猿)一樣,都是人類用來幫助提高生產力的技術人員,由於許多程序猿的智力很高,所以經常自己去尋找香蕉或母猿而無心工作,但這只是個別現象,總體來說程序猿是一種對人類很有用的動物,它們工作時很勤勞,而且不像業務猿那樣喜歡跳奇怪的舞蹈(也叫增猿舞)吵的人們想鬼畜它,程序猿一般到了30歲左右就會進化成別的猿類(一般是管理猿),不過據報道,也有一些少數一生都是沒有母猿的悲劇程序猿。

  9. 程序猿是被詛咒的悲慘生物,它們受到的詛咒有:過度的勞作、永遠不足的睡眠、低廉的收入等等……

  10. 程序猿並不擅長戰斗,它們生活中最主要的活動是——在樹葉上打洞,然後將打洞的樹葉放進一個木盒子里念咒語,並聲稱那些是能夠提高族群的食物供給或提供其他神奇功能的偉大產品。但是,因為每個程序猿打洞的方式各不相同,他們之間也會經常爆發沖突,每個程序猿都聲稱自己所用的打洞方式是最好最先進,打出的洞是最美最華麗的,並不惜因此用打洞的樹葉互相投擲。根據一些冒險者收集到的程序猿族群的資料,所謂的打洞方式,有西珈岬式、爪哇式、希沙埔式等等。不過,令人驚異的是,雖然每個程序猿所用的打洞方式都不同,但它們能用幾乎所有的方式來給樹葉打洞,來表達「你好,世界」的意思……

  11. 因為長時間的不運動,程序猿的體力普遍低下,不擅長近戰。不過,它們的高超智力彌補了這個缺陷。投擲打洞樹葉是它們常用的攻擊方式,而且,一如它們所宣稱的一樣,那些樹葉有著一些神奇的功能——很多冒險者在受到樹葉攻擊後,雖然受傷並不嚴重,但都不同程度表現出反應遲緩、四肢不聽指揮、眼前一片藍色等症狀,甚至於昏迷不醒。不過,好在這些症狀都不致命,但是這足以保護程序猿遠離冒險者的侵擾。

  12. 程序猿只為了保護棲息地才會戰斗,因此,一般冒險者都會繞開它們的地界。而且,由於程序猿的智力達到了能和冒險者交流的程度,甚至有的冒險者和程序猿族群建立了良好的關系,並且得到了它們的打洞樹葉作為向族群提供食物的交換——只是這些禮物在冒險者手上遠不如在程序猿手上可靠……

❷ 程序員的職責

其實,程序員的職責並不僅僅是編程,甚至編程只是佔到很小一部分,
程序員的工作內容如下:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。

作者:茹姐
鏈接:https://www.hu.com/question/343889670/answer/827559986
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

❸ 什麼人算是程序員

mod=viewthread&tid=314起因先聲明,只是談自己看法,和大家討論一下,沒有別的意思 我根據自己的經驗把程序員分為以下幾種 單純沒有腦子的 這種程序員是最讓經理氣的一種,因為大多是剛入門的,或是學生剛走出校門,不喜歡問,也不懂得分析,只是一味的很聽話,為什麼說他們單純呢?那是因為他們從來不會問,不會說也沒有自己的想法,你讓干什麼就干什麼,讓自己怎麼干就怎麼干,聽上去感覺特好的員工,很聽話,如果只是這樣就好了,可怕的是他們沒有腦子,比如你說讓他完成一個增加的功能吧,他們很聽話的給你做出來,但只是一個增加的功能,他根本不會在增加功能之後再給你處理一下刷新數據的問題,或是做一些必要的驗證,更說不上代碼的擴展性,那都是見不著邊的事,不可能。 你說讓做一個查詢功能,他完全有可能給你做出來一個查詢所有的功能,不會管你要不要根據時間,要不要分頁,或是其它的方式的查詢,人家還可有理,會告訴你,你需求上沒說啊,只說要有一個查詢的功能?然後你無語。 有腦子先斬後湊的 這類程序員大致是工作有一年或是兩年工作經驗的人,自認為自己有些經驗了,做了幾個項目,感覺自己NB的不得了了。分配一個功能總有一些自己的想法,其實他自己不知道這些想法還不成熟,只是個人主觀意向,你說讓人家做一個導航條吧,你清楚的告訴他是在頭部用的,要直排下拉類型的。 好了得到需求了,他根本不管你為什麼要這樣做,在做的過程中,他發現自己以前做一些項目里有導航條的,而且很好看,他們想,經理是怎麼想的,設計的還不如我設計的好看,我給他改一下說不定還能得到他的獎勵,於是自己把直排下拉的導航改成了,直排出面板那種的,因為好看,而且還不告訴經理,想給大家一個驚喜,誰知道經理一看,說怎麼改需求了,客戶不要這樣的,然後他就跟你講理,說這樣的好看,而且什麼擴展性還好,技術先進,流行,然後你會很無耐的告訴他,你做的確實很好看,但是客戶不付錢怎麼辦,於是沒辦法在你的強逼之下他不得不改,於是你對他的工作很不滿意,首先是這個人不好管,老自己做主,不把你當回事,怎麼辦,好點的經理會慢慢引導一下,脾氣大的經理會直接扔出兩字滾蛋 我們來分析一下他的心理, 第一種可能就是感覺自己做了很多項目,有一點自大,目中無人的心態,看不起別人設計的東西,總以為自己的技術和代碼很棒了,因為自己在程序界摸爬滾打一兩年了,也算是有所見識了。但他們確不明白,現在的自己正像當前的曹仁學曹操一樣,只是學得其形而為盡其神。大部分的軟體,網站,不能只看網站本身的價值,成功不成功,不是自己說了算,也不是經理說了算,還得看客戶,一句話客戶喜歡的就是好東西,客戶不懂技術啊,你寫的再好,客戶不懂哦,所以一定不要亂改需求,軟體要和市場結合才能真正體現出它的價值,做讓大家喜歡的軟體,而不是單純的技術堆積。 第三種可能是自己實現不了,而又不想學習,感覺浪費時間,所以直接改動一下得了。感覺自己如果寫的話,寫好了還好說,寫不好,耽誤時間,一個導航幾天能不完,會很丟人的。於是要加速。 有腦子,很聽話,很認真,但基礎不好,代碼有局限性 這類型的程序員大多是工作一到兩年的程序員,但和上面的不同,他們很有腦子思路很好,而且很聽經理的話,做東西很認真,做不完了自己會加班寫,學新的東西也很快,但是有一點不好的是,他們有很多理由說自己沒時間學習基礎,這些人一般是在學校沒有學好,出來之後後悔了,學起來很認真,由於學了些新的知識,起點高,看不起基礎的東西,從不想著沒事去看看編程基礎,看看演算法,看看數據結構,總是以為我都能做出這樣的項目了,還看那些小東西會很丟人的,於是在公司從不看回家更不想看,時間長了,技術會有很大的局限性,對某一塊技術很不錯,但是對其它技術不怎麼好,於是在接到一個項目時,總喜歡使用自己現有的,會的技術去實現,轉了一圈又一圈總算是把東西寫出來了,而且還是加班完成了,但是代碼的性能,穩定性,和效率上差的很遠,擴展性也談不上,時間一長,項目一多起來,就會出現多次反工,因為需求是會不斷變化的,於是自己的代碼也要變化,感覺很是理所當然,一個項目沒事,接手的多了就麻煩了,新項目剛到手,老項目就出問題了,不是這里有點小毛病就是那個功能要升級,於是新項目放下,著手改老項目,手上能有三四個項目時,就會忙個不停,改的多了,沒辦法再改了就得重新設計,或是直接說這個功能實現不了。 其實在這個階段的朋友很有潛力的,只要花點心思補習一下自己的技術缺陷,多看看高手的代碼,寫之前想一下,設計一下,自然事半功倍,千萬不要有眼高手低的心態。 不隨便改變需求 他們不會主觀的改變一些東西,不管是對還是錯,如果要改的話他們會在開會時,或是私下跟你提出來,通過後再改,否則會按需求辦事 2.不寫沒有思想的代碼 在寫功能時會加上一些人性化的功能,比果加個小圖標,加一些驗證,處理一些操作習慣,加加快捷鍵,處理好Tab順序,等這些,不用你說,他們自己會處理好。 3.不寫沒有遠見的代碼 4.不寫不負責任的代碼 我們寫代碼一是為客戶用,二是方便其他人看,不單單是自己維護,要對自己的代碼負責,從自己手上出去的代碼代表的就是自己的臉,代碼不好,人家會打臉的。他們不願意挨打所以他們負責。 高手在編程效率方面可能並不比普通程序員快多少,因為他們會吝嗇自己敲下的每一行代碼。這種吝嗇有兩方面的含義,一是項目的架構性和整體性考量,二是從性能和優化的角度進行Coding。其實,這里所映射的是一個開發者的技術視野。 有多位技術專家強調項目執行時的全局觀。面對一個項目,即使是團隊中的普通一員,也要力求從項目整體架構的角度審視開發需求,對各個模塊、介面和通信做最優化的預想和配置。這樣可以從全局審視整個項目的技術布局,預判可能出現的問題。 在確定了整體之後,落實到具體的模塊實現,每一行代碼不但有上下文的考量與規劃,還要具備模塊間的整體布局。這是模塊內的技術視野,比如介面的定義、注釋的可讀性、代碼的執行效率等。當你寫下一行代碼前,要考慮它是否會對整個系統造成影響,是否方便其他介面進行調用,這些都是一個開發高手的技術潛意識。 據一些經常帶領入門級開發者的技術經理介紹,多數人只考慮自己所負責的模塊進行開發,缺乏一個全局性的技術視野和對代碼性能苛刻的態度,這樣雖然能按交付日期完成項目,卻對項目質量和開發者的自我提高有很大阻礙。 開發高手是代碼閱讀者。大多數技術專家的代碼閱讀量是普通程序員的百倍,代碼閱讀的時間比寫代碼的時間要長得多。 多數程序員只把程序開發當成一份工作,他們在乎平台的前景、語言的優劣、報酬的高低;他們不願為一個技術點反復鑽研,不願為一個bug精心測試,不願為自身技術水平的提高多花時間。而開發高手往往具有單純的技術夢想,願意為技術付出自己全部的時間。這幾段話是來自

❹ 程序員是做什麼的什麼是程序

程序員:

程序員是從事程序開發、程序維護的專業人員。程序員一般需要會做:確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。

通常情況下將程序員分為程序設計人員和程序編碼人員,軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。

程序:

程序是一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的信息化工具。以某些程序設計語言編寫,運行於某種目標結構體繫上。

程序就如同以英語(程序設計語言)寫作的文章,要讓一個懂得英語的人(編譯器)同時也會閱讀這篇文章的人(結構體系)來閱讀、理解、標記這篇文章。

(4)程序員的定義擴展閱讀:

程序員的日常工作:

1、確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。

2、安排項目要求在編程序列分析要求;准備工作流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖。

3、編碼工作流程的信息轉換成計算機語言的項目要求。

4、通過輸入編碼信息的計算機程序。

5、確認程序操作進行測試,修改程序序列和/或代碼。

6、准備寫操作指令供用戶參考。

7、保持歷史記錄,通過記錄方案的制定和修訂。

參考鏈接:網路-程序員

網路-程序

❺ 程序員是干什麼的啊

程序員是寫程序的屬於電腦IT行業。

程序員(英文Programmer)是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員。

軟體從業人員分為初級程序員、高級程序員、系統分析員,系統架構師,測試工程師五大類。

一年可報考軟考程序員考試兩次,但一次考試只能報考一種資格,因此報考了程序員考試則無法再報考軟考其他級別或科目的考試。

同時軟考程序員考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標准、統一證書的考試方式。

❻ 程序員分為哪些類型啊

你是按水平分還是工種:
頂級程序員不但技術好,而且有很強的創業精神,不給別人打工,錢對tm就是數字了.

在次一點的就是企業裡面的技術大拿,工資也很高
還有就是在技術大拿下面的小弟,技術也不錯.

工種分:
如果是網站可能前端,後台.
還有就是有的做手機軟體.等等.
還有專門管伺服器的.這種低手玩不轉.

❼ 程序員是什麼職業什麼職務

程序員(英文Programmer)是從事程序開發、程序維護的專業人員。

一般將程序員分為程序設計人員和程序編碼人員。

軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。

職務:

1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。

2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。

3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。

4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。

5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。

6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。

7、負責相關技術文檔的擬訂。

8、負責對業務領域內的技術發展動態進行分析研究。

(7)程序員的定義擴展閱讀:

程序員職業要求:

1、熟練開發工具

作為程序員,掌握至少兩個或三個開發工具是程序員的基礎。其中,C/C++和Java是最推薦的開發工具。C/C++已經成為開發工具高效、靈活的銳利工具。

許多系統級軟體都是用C/C++編寫的。Java的跨平台與Web的良好結合是Java的優勢,Java相關技術JavaOne很可能成為未來主流的開發工具之一。

其次,最好掌握一個簡單的可視化開發工具,如vb、powerbuilder、delphi、cbuilder,這樣可以降低開發難度,強化程序員對象模型的概念。另外,您需要掌握基本的腳本語言,如shell、perl等,至少能理解腳本代碼。

2、熟知資料庫

很多應用都是以數據為中心的資料庫,有很多資料庫產品,其中關系資料庫仍然是主流形式,所以程序員至少要精通一兩個資料庫,非常清楚關系資料庫的關鍵元素,熟練掌握在SQL的基本語法中。

雖然許多資料庫產品提供可視化的資料庫管理工具,SQL是資料庫操作的基礎和常用方法。如果您沒有訪問商業資料庫系統的許可權,那麼最好使用免費的資料庫產品,如mysql、postgres等。

3、了解操作系統

目前,主流操作系統是windows、linux/unix,熟練使用這些操作系統是必要的,但只有這些還遠遠不夠。

作為一個真正的編程大師,我們需要對操作系統及其內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等有深入的了解。

Linux作為開發源代碼的操作系統,是一個很好的學習平台。Linux幾乎具有現代操作系統的所有特徵。雖然關於Windows系統內核實現機制的信息很少,但是通過Internet仍然可以獲得很多信息。了解網路協議TCP/IP。

❽ 程序員的符號是什麼意思

1、程序員的符號有很多種,你具體是在指什麼符號。
2、比如運算符號,加減乘除等等,與數學運算符號的意義基本相同。
3、還有特殊符號,比如#號,@號等等,會有一些特殊的含義,在不同語言中指代意義不盡相同。
4、還有分隔符號,這個一般是程序中自定義的。
5、希望對你有幫助。

❾ 程序員是做什麼的

程序員一般的工作是從事程序開發、程序維護。

程序員是從事程序開發、程序維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。具體工作職責如下:

1、負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。

2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。

3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。

4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。

5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。

6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。

7、負責相關技術文檔的擬訂。

8、負責對業務領域內的技術發展動態。

(9)程序員的定義擴展閱讀:

職業要求

一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。

大約有20%的人在這一領域的計算機科學和工程學擁有更高的學位。還有很小一部分程序員是自學的,盡管一些專業性的學校或者綜合大學可以提供,但是也需要一些別的途徑來提供相關的人才。

盡管學歷是比較重要的,但是公司經常把重點放在應聘者的工作經驗上,很多剛從大學畢業的大學生雖然有引人注目的學位證書,但是他們找不到工作是因為他們缺乏經驗。

一個程序員雖然沒有正規的學歷,但是如果一個人擁有程序設計的深厚知識背景或者豐富的工作經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。

對於職業程序員,另外一個重要的方面就是,程序員需要不斷提升自己的業務技術,他的技術必須一直保持在一個較高的水平,並且要不斷發展,程序員也要尋找貿易的機會,要參加研討會,在周刊上發表文章和接受職業教育,這些使程序員在自己的領域中分級或者不斷並排前進。

❿ 關於程序員

那編程能力實在是太強了,而且開發經驗豐富。你要想成為程序員就一定要做好吃苦的准備,還有一點要說明,做這個行業不是早結婚,就是晚結婚,這是不爭的事實。
學好某一門語言或學好多門語言只是成為一名合格的程序員必備的條件之一,重要的是軟體工程所要走的一個流程,看一下CMMi方面的資料會對你有一些好處.
(Capability Maturity Model Integration,能力成熟度模式整合)

CMMI( Capability Maturity Model Integration)的本質是軟體管理工程的一個部分。軟體過程改善是當前軟體管理工程的核心問題, 50多年來計算的發展使人們認識到要高效率、高質量和低成本地開發軟體,必須改善軟體生產過程。基於模型的過程改進是指用採用能力模型來指導組織的過程改進,使之過程能力穩定的進行改善,該組織也能變得更加成熟。

然而,軟體組織形成一套完整而成熟的軟體過程不是一蹴而就的事情,需要經歷一系列的成熟度。軟體組織首先要進行差異分析,評定自己比較接近哪一個成熟度,然後再根據自身的情況來決定要採取哪些改進活動,來更有效地改進自己的軟體過程。這就對軟體過程的評定提出了一個客觀的標准。美國卡內基梅隆大學軟體工程學院於1987年研究成功的SW-CMM(Capability Maturity Model for Software)就是這樣的一個理論模型,其目的在於幫助軟體組織改善軟體生產流程,以探索一個保證軟體產品質量、縮短開發周期、提高工作效率的軟體工程模式與標准規范。

CMMI是一個可以改進系統工程和軟體工程的整合模式。1997年10月SEI停止對CMM的研究,改而致力於CMMI,以解決使用多個過程改進模型的問題。SEI同時宣布CMMI將取代CMM,與2000年8月11日頒布了CMMI-SE/SW 1.0版本,2001年12月頒布了1.1版本,這次發布標志著CMMI正式啟用,並准備今年內完成CMM到CMMI的過渡。說到CMMI就不能不提CMM。

CMM

CMM框架用5個不斷進化的層次來評定軟體生產的歷史與現狀:初始級描述了不成熟,或者說是未定義的過程的組織,是混沌的過程以不可預測結果為特徵;可重復級是經過訓練的軟體過程;已定義級是標准一致的軟體過程,以組織內改進項目執行為特徵;已管理級是可預測的軟體過程,以改進組織性能為特徵;優化級是能持續改善的軟體過程,以可快速進行重新配置的組織性能,和定量的、持續的過程改進為特徵。任何單位所實施的軟體過程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬於這5個層次中的某一個層次。

CMM包括兩部分"軟體能力成熟度模型"和"能力成熟度模型的關鍵過程域"。"軟體能力成熟度模型"主要是描述此模型的結構,並且給出該模型的基本構件的定義。"能力成熟度模型的關鍵過程域"詳細描述了每個關鍵過程方面涉及的過程域。

可重復級關鍵過程域:需求管理,軟體項目計劃,軟體項目跟蹤和監控,軟體子合同管理,軟體質量保證,軟體配置管理。

已定義級關鍵過程域:組織級過程焦點,組織級過程定義,培訓大綱,集成軟體管理,軟體產品工程,組間協調,同行評審。

已管理級關鍵過程域:定量過程管理,軟體質量管理。

優化級關鍵過程域:缺陷預防,技術更新管理,過程更改管理。

多數組織的基本目標是達到成熟度3級。評估組織當前的成熟度級別的手段之一是軟體能力評估(SCE)。SCE通過評估軟體過程(一般以方針陳述的形式)和項目實踐來確定該組織是否言行一致。組織的過程體現了如實記錄所做的工作,項目實施(對該過程的特定剪裁和解釋)應該證明說到做到。

現在全球許多不同的組織以CMM為協助企業作全面的過程改進活動,除了肯定其軟體成熟度外,更像征具有跨足國際市場的能力。現在通過CMM5級認證的組織達到了一百多家。

CMMI

CMM的成功促使其他學科也相繼開發類似的過程改進模型,例如系統工程、需求工程、人力資源、集成產品開發、軟體采購等等,從CMM衍生出了一些改善模型,比如:SW-CMM,SE-CMM,IPD-CMM等。不過,在同一個組織中多個過程改進模型的存在可能會引起沖突和混淆。CMMI就是為了解決怎麼保持這些模式之間的協調。

由業界、美國政府和卡內基·梅隆大學軟體工程研究所率先倡導的能力成熟度模型集成(CMMI)項目致力於幫助企業緩解這種困境。CMMI為改進一個組織的各種過程提供了一個單一的集成化框架,新的集成模型框架消除了各個模型的不一致性,減少了模型間的重復,增加透明度和理解,建立了一個自動的、可擴展的框架。因而能夠從總體上改進組織的質量和效率。CMMI主要關注點就是成本效益、明確重點、過程集中和靈活性四個方面。

與原有的能力成熟度模型類似,CMMI也包括了在不同領域建立有效過程的必要元素,反映了業界普遍認可的"最佳"實踐;專業領域覆蓋軟體工程、系統工程、集成產品開發和系統采購。在此前提下,CMMI為企業的過程構建和改進提供了指導和框架作用;同時為企業評審自己的過程提供了可參照的行業基準。

CMMI的源模型:軟體能力成熟度模型2.0版,C稿;電子行業協會臨時標准(EIA/IS)731;集成產品開發能力成熟度模型(IPD- CMM)。

CMMI的原則:

1. 強調高層管理者的支持。過程改進往往也是由高層管理者認識和提出的,大力度的、一致的支持是過程改進的關鍵。

2. 仔細確定改進目標,首先應該對給定時間內的所能完成的改進目標進行正確的估計和定義並制定計劃。選擇能夠達到的目標和能夠看到對組織的效益。

3. 選擇最佳實踐,應該基於組織現有的軟體活動和過程財富,參考其他標准模型,取其精華去其糟粕,得到新的實踐活動模型。

4. 過程改進要與組織的商務目標一致,與發展戰略緊密結合。

CMMI目標:

1. 為提高組織過程和管理產品開發、發布和維護能力的提供保障。

2. 幫助組織客觀評價自身能力成熟度和過程域能力,為過程改進建立優先順序以及執行過程改進。

CMMI的方法:

1 決定哪個CMMI模型等級最適合組織過程改進需要。

2 選擇模型的表示法是連續式還是階段式。

3 決定組織需要用到的模型中的知識領域。

4 類似CMM提出的過程改進6步,集成化過程改進分成:開始集成過程改進,建造集成改善平台,集成傳統過程,啟動新過程,進行改 進評估。

CMMI內容

CMMI內容分為"要求"、"期望"和"提供信息"三個級別,來衡量模型包括的質量重要性和作用。最重要的是"要求"級別,是模型和過程改進的基礎。第二級別"期望"在過程改進中起到主要作用,但是某些情況不是必須的可能不會出現在成功的組織模型中。"提供的信息"構成了模型的主要部分,為過程改進提供了有用的指導,在許多情況下他們對需要和期望的構件做了進一步說明。

"要求"的模型構件是目標,代表了過程改進想要達到的最終狀態,它的實現表示了項目和過程式控制制已經達到了某種水平。當一個目標對應一個關鍵過程域,就稱為"特定目標";對應整個關鍵過程域就稱為"公用目標"。整個CMMI模型包括了54個特定目標,每個關鍵過程域都對應了一到四個特定目標。每個目標的描述都是非常簡捷的,為了充分理解要求的目標就是擴展"期望"的構件。

"期望"的構件是方法,代表了達到目標的實踐手段和補充認識。每個方法都能映射到一個目標上,當一個方法對一個目標是唯一就是"特定方法";而能適用於所有目標時就是"公用方法"。CMMI模型包括了186個特定方法,每個目標有兩到七個方法對應。

CMMI包括了10種"提供的信息":目的,概括和總結了關鍵過程域的特定目標;介紹說明,介紹關鍵過程域的范圍、性質和實際方法和影響等特徵;引用,關鍵過程域之間的指向是通過引用;名字,表示了關鍵過程域的構件;方法和目標關系,關鍵過程域中方法映射到目標的關系表;注釋,注釋關鍵過程域的其他模型構件的信息來源;典型工作產品集,定義關鍵過程域中執行方法時候產生的工作產品;子方法,通過方法活動的分解和詳細描述;學科擴充,CMMI對應學科是獨立的,這里提供了對應特定學科的擴展;公用方法的詳細描述,關鍵過程域中公用方法應用實踐的詳細描述。

CMMI提供了階段式和連續式兩種表示方法,但是這兩種表示法在邏輯上是等價的。我們熟悉的SW-CMM軟體能力成熟模型就是階段式的模型,SE-CMM系統工程模型是連續式模型,而IPD-CMM集成產品開發模型結合了階段式和連續式兩者的特點。

階段式方法將模型表示為一系列"成熟度等級"階段,每個階段都有一組KPA指出一個組織應集中於何處以改善其組織過程,每個KPA用滿足其目標的方法來描述,過程改進通過在一個特定的成熟度等級中滿足所有KPA的目標而實現的。

連續式模型沒有像階段式那樣的分散階段,模型的KPA中的方法是當KPA的外部形式,並可應用於所有的KAP中,通過實現公用方法來改進過程。它不專門指出目標,而是強調方法。組織可以根據自身情況適當裁剪連續模型並以確定的KPA為改進目標。

兩種表示法的差異反應了為每個能力和成熟度等級描述過程而使用的方法,他們雖然描述的機制可能不同,但是兩種表示方法通過採用公用的目標和方法作為需要的和期望的模型元素,而達到了相同的改善目的。

======================================================================

CMMI 模型的前身是 SW-CMM 和 SE-CMM,前者就是我們指的CMM。CMMI與SW-CMM的主要區別就是覆蓋了許多領域;到目前為止包括四個下面領域:

1.軟體工程(SW-CMM)

軟體工程的對象是軟體系統的開發活動,要求實現軟體開發、運行、維護活動系統化、制度化、量化。

2.系統工程(SE-CMM)

系統工程的對象是全套系統的開發活動,可能包括也可能不包括軟體。系統工程的核心是將客戶的需求、期望和約束條件轉化為產品解決方案,並對解決方案的實現提供全程的支持。

3.集成的產品和過程開發(IPPD-CMM)

集成的產品和過程開發是指在產品生命周期中,通過所有相關人員的通力合作,採用系統化的進程來更好地滿足客戶的需求、期望和要求。如果項目或企業選擇IPPD進程,則需要選用模型中所有與IPPD相關的實踐。

4.采購(SS-CMM)

采購的內容適用於那些供應商的行為對項目的成功與否起到關鍵作用的項目。主要內容包括:識別並評價產品的潛在來源、確定需要采購的產品的目標供應商、監控並分析供應商的實施過程、評價供應商提供的工作產品以及對供應協議和供應關系進行適當的調整。

在以上模塊中,企業可以選擇軟體工程,或系統工程,也可以都選擇。集成的產品和過程開發和采購主要是配合軟體工程和系統工程的內容使用。例如,純軟體企業可以選擇CMMI中的軟體工程的內容;設備製造企業可以選擇系統工程和采購;集成的企業可以選擇軟體工程、系統工程和集成的產品和過程開發。CMMI中的大部分內容是適用各不同領域的,但是實施中會有顯著的差別,因此模型中提供了"不同領域應用詳解"。

CMM的基於活動的度量方法和瀑布過程的有次序的、基於活動的管理規范有非常密切的聯系,更適合瀑布型的開發過程。而CMMI相對CMM更一步支持迭代開發過程和經濟動機推動組織採用基於結果的方法:開發業務案例、構想和原型方案;細化後納入基線結構、可用發布,最後定為現場版本的發布。雖然CMMI保留了基於活動的方法,它的確集成了軟體產業內很多現代的最好的實踐,因此它很大程度上淡化了和瀑布思想的聯系。

在 CMMI 模型中在保留了CMM階段式模式的基礎上,出現了連續式模型,這樣可以幫助一個組織以及這個組織的客戶更加客觀和全面的了解它的過程成熟度。同時,連續模型的採用可以給一個組織在進行過程改進的時候帶來更大的自主性,不用再像CMM 中 一樣,受到等級的嚴格限制。這種改進的好處是靈活性和客觀性強,弱點在於由於缺乏指導,一個組織可能缺乏對關鍵過程域之間依賴關系的正確理解而片面的實施過程,造成一些過程成為空中樓閣,缺少其他過程的支撐。兩種表現方式(連續的和階段的)從他們所涵蓋的過程區域上來說並沒有不同,不同的是過程區域的組織方式以及對成熟度(能力)級別的判斷方式。

CMMI 模型中比 CMM 進一步強化了對需求的重視。在 CMM 中,關於需求只有需求管理這一個關鍵過程域,也就是說,強調對有質量的需求進行管理,而如何獲取需求則沒有提出明確的要求。在CMMI的階段模型中,3 級有一個獨立的關鍵過程域叫做需求開發,提出了對如何獲取優秀的需求的要求和方法。CMMI 模型對工程活動進行了一定的強化。在CMM中,只有3級中的軟體產品工程和同行評審兩個關鍵過程域是與工程過程密切相關的,而在CMMI中,則將需求開發,驗證,確認,技術解決方案,產品集成這些工程過程活動都作為單獨的關鍵過程域進行了要求,從而在實踐上提出了對工程的更高要求和更具體的指導。CMMI中還強調了風險管理。不像在CMM 中把風險的管理分散在項目計劃和項目跟蹤與監控中進行要求,CMMI3級里單獨提出了一個獨立的關鍵過程域叫做風險管理。

閱讀全文

與程序員的定義相關的資料

熱點內容
微商授權查詢系統源碼 瀏覽:978
安卓什麼情況沒法建立新工程 瀏覽:217
氣球解壓社區活動 瀏覽:922
話費會員充值源碼 瀏覽:318
郵件接收伺服器叫什麼 瀏覽:529
代理伺服器被限制怎麼辦 瀏覽:234
atompython環境變數 瀏覽:910
記錄程序員 瀏覽:995
javabbs源代碼 瀏覽:231
文件夾命名帶什麼符 瀏覽:966
黑馬程序員全棧 瀏覽:225
萍鄉溯源碼魚膠零售 瀏覽:440
倖存者pdf 瀏覽:556
中國人壽保險app怎麼變更銀行卡號 瀏覽:118
node服務啟動命令 瀏覽:548
自編寶塔線源碼 瀏覽:139
電腦桌面解壓視頻教程 瀏覽:846
安卓手機玩三國戰略為什麼會卡 瀏覽:536
浪潮伺服器怎麼進入啟動項 瀏覽:156
華為當前手機壁紙放在哪個文件夾 瀏覽:446