- 相關推薦
軟件設計師
前言:軟件技術發展到今天,分工越來越細。程序員做為一個通用稱謂已經無法確切定義各種工作的性質和特點。因為軟件開發中各種職責區分不清,無論是剛剛寫代碼的新手還是具有多年經驗的老手,一概被扣上程序員的通用名稱,這也使得很多進入這個領域的軟件開發人員無法制訂自己未來的職業發展之路。
軟件設計師包括軟件系統設計師(System Designer)和軟件架構設計師(Architect)。系統設計師應對"系統結構"所使用的軟件技術非常了解,自身具備良好編程技巧,才能成為優秀的系統設計師。系統設計師的職責是把結構模型對應到實現模型上,從概念到實現期間規劃和組合模型的優劣是決定軟件系統設計師好壞的標準。
而軟件架構設計師是程序員技術方向的最終歸屬,也是成長鏈中最神圣的一環,架構設計師的貢獻最大。架構設計師徹底擺脫了語言的束縛,知道軟件發展趨勢。他們會開發新一代產品或者制定新一代產品的方案。軟件架構設計是面向未來的。全球大規模的軟件公司并不多,很重要的一個原因是軟件產品的發展都滯后于市場需求,即有需求后再研發產品,而不是預見需求,預先設計,因此往往軟件設計局部是合理的,但從整體的角度看卻不合理。要解決這些問題就要看軟件架構設計師的能力了。
從軟件開發歷史看,軟件設計經歷了很多階段。最早是結構化設計,只是把復雜的問題逐層分解,通過流程圖形式將任務逐級細化;后來出現面向對象設計,從底層進行對象封裝、繼承、多態,這時更多的是考慮代碼重用,面向的主要是類和對象。接下來出現組件設計,這主要是面向應用方面。這三種都是面向功能的設計。
從EJB、COBRA技術出現之后,人們開始基于框架進行設計,也就是架構設計。繼續發展,就是基于規則的設計了,比如基于模塊和工作流的設計,這時主要將客戶化做的更詳細以及考慮開放性、可擴展性、可靠性、效率方面的問題。
百分網工作
隨著大型軟件開發越來越多,整體把握軟件架構變的越來越重要。尤其當用戶需求并不明確的情況下,就要開始做軟件,如何防止交付的軟件產品與用戶的要求距離很遠,這就需要軟件系統設計師進行恰當的設計。
在應用軟件開發中,軟件設計師擔當承上啟下的角色,也就是把用戶的需求,基于應用的問題變成計算機系統中可以解決的問題。設計可以分為功能上的設計和技術體系上的設計,但在實際工作中,這兩者很難區分清晰。
彭六三談到,NC(用友大型ERP系統)是通過總體設計組這個團隊共同完成軟件設計的。首先要進行產品定義,規定產品要做什么,以及相關的市嘗產品周期和前景等問題,產品所應用的技術方向也會有一些描述。接下來是總體設計,總體設計要考慮技術架構以及與應用有關的問題。像跨地域的大型產品肯定要選擇B/S架構。每個模塊中功能節點也要定義,應用組件和描述的數據模型也要做出來,諸如形成哪些標準平臺,軟件如何分布都屬于總體設計的范疇。總體設計再向下細分就是詳細設計。詳細設計完成之后才是編寫代碼。
用友軟件副總工程師彭六三
對于軟件設計,廖恒毅有自己的觀點。他認為軟件設計師如果面對很復雜的設計,即便將架構設計出來,讓其他人去實現也是很困難的。他認為自然語言不如程序語言表達的清晰,喜歡先用代碼的方式把整個框架架構好,并編寫基本的組件和接口代碼。這樣其他的程序員就可以很方便的復用自己的基礎組件,并利用預留的接口添寫完整的代碼。做為軟件設計師,他能夠提供一個平臺性的開發環境,讓其他程序員方便的進行擴展開發。這不僅降低了開發難度,而且節省了大量的重復勞動。復用模塊也可以提高系統的穩定性,因為這是經過多次測試的代碼
百分網企業用人的主要的以下特征
1 外包開發行業快速發展,對“人才”在代碼和文檔方面的規范性、技能和工具的熟練程度要求越來越高;
2 Java和.NET技術在市場上平分秋色,都有大量的崗位需求,同時值得慶幸的是二者在應用層面上的技術差異越來越少;
3 軟件開發企業對開發人員的基本技術素養強調得越來越多,例如:面向對象的程序設計思想和代碼組織方法、HTML/CSS/JavaScript客戶端技術;
4 為了保證質量和工期,企業中大量使用各種框架技術,要求開發人員至少熟悉一種框架技術;
5 MIS、OA、ERP、CRM、系統集成、物流、進銷存、電子政務、網站建設這一類B/S系統,成為軟件工程師需求最大的業務領域。
【軟件設計師】相關文章:
認知畫圖軟件教學設計10-26
網絡帶寬測試軟件07-21
常用辦公軟件技巧大全02-25
常用辦公軟件小技巧08-18
什么是教學設計師03-25
常用的網頁設計軟件有哪些01-19
十種網頁設計軟件01-25
易改英語寫作軟件介紹01-25
word辦公軟件常用的小技巧08-18
常用辦公軟件快捷鍵02-18