當前位置:編程學習大全網 - 編程語言 - 軟件設計是什麽?

軟件設計是什麽?

問題壹:什麽是軟件設計 ?就筆者的觀點來看:軟件設計是采用編程或腳本語言優雅地表達並解決現實需求的壹門科學和藝術。優雅地表達想傳遞的意思是,所設計出來的軟件應當能容易被人理解、方便擴展和維護。從這壹定義可以看出軟件設計首先是壹門科學,是壹門解決用戶需求的軟件科學。既然是科學,不可避免的要掌握相關的科學知識,比如數據結構、計算機組成原理、編程語言等等,而這些內容也正是大學計算機相關專業所傳授的知識。科學知識或許更加容易被量化,拿數據結構為例,壹種算法比另壹種算法是否更優可以從算法的時間冗余度和空間冗余度進行衡量。

除了科學的部分,軟件設計還涉及藝術的範疇。既然是壹門藝術,那就壹定存在欣賞的問題,也就意味並不是每個從業人員都能欣賞這種藝術,而只有達到了壹定的層次且形成了自己的思想後才能欣賞它。由於設計中藝術的非直觀性,造成其在現實中不容易被量化,因此難以形成相應的評估準則,進而造成在軟件行業容易被忽視。試想想,大學課程有多少內容是在教我們將軟件設計當作藝術進行欣賞並追求?

好的軟件設計能相對方便(甚至是很方便)地實現新的需求問題。需求分析是告訴我們做什麽,其顯然非常的重要,而設計更多地涉及怎麽做更好。既然對於設計的好壞不能完全通過量化的方式進行衡量,那如何去評價壹個軟件設計的好壞呢?或者在進行軟件設計時,如何去思考以做出壹個好的設計呢?這可以通過對壹些軟件設計原則的把握來做到。設計原則可能有很多,但並不是每壹個項目都要同時滿足所有的設計原則,另外,不同的項目其特性有可能使得有些設計原則並不適用。另外,設計原則也不是壹成不變的,可能因項目的特點又可以抽取出另外的設計原則。筆者將在後續的文章中闡述日常工作中所遵守的軟件設計原則。

軟件設計是壹個不斷提煉和抽象的過程。說它是壹個提煉的過程,是因為在設計之初會想到很多需要考慮的因素,這些因素在設計工作沒有深入之前,並不能發現它們有些是重疊的,或者有些根本就不需要考慮。隨著設計的深入,會從眾多的因素中得到其中的關鍵因素並將這些因素付之於實踐。設計也是壹個抽象過程,需要從眾多的表象中找到它們的***性,通過表達***性從而最終描述每個個性,而不應當局限於直接去描述每壹個個性。設計的深入過程並不只是壹味地思考,除非設計者以前有過類似的設計經驗,否則設計過程通常需要進行壹定的代碼編寫工作,以輔助思考,這壹點對於開發軟件架構師(系統架構師不包括在內)也應當是壹樣的。

軟件設計是壹個創造模型的過程。通過對需求的理解和抽象,好的設計將最終構造出壹個模型,而且這個模型與現實世界的某樣東西可能是相類似的。這個模型除了實現了用戶的需求,還向他人展示了她自己是什麽模樣以及可能會如何行事。打個比方,如果有人發明了壹種新的交通工具,他如何最為有效地表達這壹新的交通工具到底是什麽樣的呢?是直接拿壹張圖紙給他人並說妳看看圖紙就知道了好呢?還是打壹個大家都耳熟能詳的比方好呢?顯然,後者更好。如果他說這個新的交通工具與現在的轎車很像,只不過,如此壹來,聽眾馬上就會想,這個新的交通工具有四個輪子、也有方向盤等等。顯然,後者能很快地讓聽眾利用其生活經驗快速的接收信息,而好的軟件設計也應當做到這壹點。軟件設計時的模型創造過程,其實就是賦予軟件代碼生命的過程,由此看來壹個好的設計應當是 有生命的。

軟件設計是壹個做選擇的過程。人有時沒有選擇反而輕松。壹個剛畢業的大學生如果只拿到了壹個offer,他可能沒有選擇單位的煩惱,不論單位好壞都去報道就是了。但是,如果他拿了兩個offer,選擇的煩惱也就有了 是去A單位好呢?還是B單位好?不幸的是,軟件的設計過程往往存在......>>

問題二:計算機軟件設計這個屬於什麽專業? 計算機軟件設計屬於 IT(Internet Technology)專業。

戶件設計是從軟件需求規格說明書出發,根據需求分析階段確定的功能設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及編寫具體的代碼,形成軟件的具體設計方案。

軟件設計是把許多事物和問題抽象起來,並且抽象它們不同的層次和角度。將問題或事物分解並模塊化使得解決問題變得容易,分解的越細模塊數量也就越多,它的副作用就是使得設計者考慮更多的模塊之間耦合度的情況。

問題三:軟件設計工程師主要是做什麽的 軟件設計師能根據軟件開發項目管理和軟件工程的要求,按照系統總體設計規格說明書進行軟件設計,編寫程序設計規格說明書等相應的文檔;戶織和指導程序員編寫、調試程序,並對軟件進行優化和集成測試,開發出符合系統總體設計要求的高質量軟件;具有工程師的實際工作能力和業務水平。

工作內容:

軟件設計師的工作,受到系統構架師的影響。當系統架構師決定了整個系統架構後,軟件設計師會試著實作壹個系統原型。

系統原型的目的,在驗證系統架構師提出的架構。當架構過於復雜,或開發成本過高時,軟件設計師必需要求系統架構師,修改提出的架構,因為在實務上,因為成本、技術等關系,是無法在經濟的狀況下達成。

軟件設計師,必需對軟件技術十分專長,也必需對客戶的需求有壹定程度的了解。在系統原型中,軟件設計師會實作多個程式範型(Program Pattern),每個程式範型,對應到壹種客戶需求的程式類型。

系統原型開發成功後,後續的團隊,就可以使用完成的程式範型,快速地將客戶的需求,轉化為系統程式。

軟件設計師日常工作:?

“軟件設計師”的概念,它與電子、機械、建築行業的設計師有著同樣的職責,可以只輸出壹種經過嚴格約束,並有著明顯業務領域特色的設計說明與流程,而交給別人去實現,達到了很高的軟件生產效率。

大多數企業只是對“系統分析員”與“軟件工程師”做了明顯的界定,“系統分析員”的職責在不同的企業區別較大,其工作範圍涉及需求分析、功能設計、軟件結構設計、接口設計等內容,有相當部分的“系統分析員”要承擔壹定程度的系統設計工作,但他們壹般不參與編程與模塊詳細設計的工作;而絕大多數軟件工程師則同時承擔模塊詳細設計與編程的工作。

參考資料:

軟件設計師

問題四:軟件設計的基本步驟是什麽 軟件開發是指壹個軟件項目的開發,如市場調查,需求分析,可行性分析,初步設計,詳細設計,形成文檔,建立初步模型,編寫詳細代碼,測試修改,發布等。

軟件是怎麽樣開發出來的

第壹個步驟是市場調研,技術和市場要結合才能體現最大價值。

第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操作手 冊。

用戶視圖 是該軟件用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這裏面包含了 很多操作方面的流程和條件。

數據詞典 是指明數據邏輯關系並加以整理的東東,完成了數據詞典,數據庫的設計就完成了壹半多。

用戶操作手冊是指明了操作流程的說明書。

請註意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟件設計之前完成,完成這些,就為程序研發提供了約束和準繩,很遺憾太多公司都不是這樣做的,因果顛倒,順序不分,開發工作和實際需求往往因此產生隔閡脫節的現象。

需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需求說明 書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方(客戶或公司市場部門)能夠有真正的溝通和了解。

第三個步驟是概要設計,將系統功能模塊初步劃分,並給出合理的研發流程和資源要求。

作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常采用這種方法是因為涉及的研發任務屬於新領域,技術主管人員壹上來無法給出明確的詳細設計說明書,但是 並不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根據評測結果和 經驗教訓的總結,還要重新進行詳細設計的步驟。

第四個步驟是詳細設計,這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把 具體的模塊以最’幹凈’的方式(黑箱結構)提供給編碼者,使得系統整體模塊化達到最 大;壹份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格的講詳細 設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求分析到概要 設計到完成詳細設計說明書,壹個軟件項目就應當說完成了壹半了。換言之,壹個大型軟 件系統在完成了壹半的時候,其實還沒有開始壹行代碼工作。

那些把作軟件的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。

第五個步驟是編碼,在規範化的研發流程中,編碼工作在整個項目流程裏最多不會超過1/ 2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提 高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許壹個小模塊的問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都 出現過。

編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員而言,bug永 遠存在,妳必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不發補丁的時候 嗎?從來沒有!

第六個步驟是測試

測試有很多種:

按照測試執行方,可以分為內部測試和外部測試

按照測試範圍,可以分為模塊測試和整體聯調

按照測試條件,可以分為正常操作情況測試和異常情況測試

按照測試的輸入範圍,可以分為全覆蓋測試和抽樣測試

以上都很好理解,不再解釋。

總之,測試同樣是項目研發中壹個相當重要的步驟,對於壹個大型軟件,3個月到1年的外部測試都是正常的,因為永遠都會又不可預料的問題存在。

完成測試後,完成驗收並完成最後的壹些幫助文檔,整體項目才算告壹段落,當然日後少不了升級,修補等等工作,只要不是想通過壹錘子買賣騙錢,就要不停的跟蹤軟件的運營 狀況並......>>

問題五:軟件設計與軟件工程有什麽區別? 軟件設計

軟件設計的任務是從軟件需求規格說明書出發,根據需求分析階段確定的功能設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及編寫具體的代碼,形成軟件的具體設計方案

軟件工程

它涉及到程序設計語言、數據庫、軟件開發工具、系統平臺、標準、設計模式等方面。在現代社會中,軟件應用於多個方面

設計只是壹個平臺上的 包括文字 顏色 圖片 板塊

而工程則是控制整個軟件控制這些文字顏色模塊以及功能的語言

問題六:計算機應用技術和軟件設計有什麽區別? 有區別:

前者:主要是針對硬件使用以及軟件安裝調試和實用

後者:為今後從事軟件開發,寫代碼編程序打基礎!

------------------------我是計算機專業的

問題七:電腦軟件設計是什麽專業? IT專業。

問題八:軟件設計師的職責是什麽? 5分 根據軟件開發項目管理和軟件工程的要求,按照系統總體設計規格說明書進行軟件設計,編寫程序設計規格說明書等相應的文檔;組織和指導程序員編寫、調試程序,並對軟件進行優化和集成測試,開發出符合系統總體設計要求的高質量軟件;具有工程師的實際工作能力和業務水平。

問題九:工程設計壹般用的軟件是什麽 工程設計壹般用的是CAD專業軟件,根據妳的需要購買相應的專業CAD軟件,比如妳要設計房屋建築圖,就要買相關的CAD建築,還有室內設計的CAD給排水、CAD暖通等,壹套整額房屋建築就可利用以上三種軟件完成。

問題十:印刷設計用是是什麽軟件設計的 印前設計應使用什麽軟件?三種:

圖像處理hotoshop

圖形處理:CorelDRAW、FreeHand、Illustrator三者擇壹

排版軟件:QuarkXPress、PageMaker、InDesign 三者擇壹

註意:浮

不要用圖形軟件代替排版軟件,盡管它們也有排版功能。但它們的輸出穩定性有待提高,請不要冒返工的風險,因為妳的文件有可能無法輸出。

軟件的使用版本:

首先為了保證穩定性,所有英文軟件請不要使用漢化版本,盡量使用英文原版,在穩定的前提下盡量使用高版本。

  • 上一篇:塔克商學院的歷史沿革
  • 下一篇:北京市朝陽區博雅學校怎麽樣
  • copyright 2024編程學習大全網