軟體工程為什麼要設計
⑴ 總體設計對軟體工程的作用
答:
設計過程
設計供選擇的方案:數據流圖是總體設計極好的出發點
選取合理的方案
准備的4份資料:
系統流程圖
組成系統的物理元素清單
成本/效益分析
實現這個系統的進度計劃
推薦最佳方案
功能分解:首先進行結構設計,然後進行過程設計
設計軟體結構:一個模塊完成一個適當的子功能,組織成良好的層次系統
設計資料庫
制定測試計劃
書寫文檔:系統說明-用戶手冊-測試計劃-詳細的實現計劃-資料庫的設計結果
審查和復審
宏觀到微觀,逐步求精的原則,定性定量相結合、分解與協調相結合和模型化方法
設計原理
模塊化
每個模塊完成一個特定子功能,所有模塊按某種方法組成一個整體,完成整個系統所要求的功能。
模塊:構成程序的基本構件
模塊化:復雜軟體劃分為功能相獨立且易於處理的模塊的過程
最小成本區域
優點:使軟體結構更清晰-更容易測試和調試-提高軟體的可靠性-提高可修改性-有助於軟體工程的組織管理
抽象:認識復雜事務和現象時,提取事物本質暫時不考慮細節。
高層次抽象-低層次抽象
逐步求精:與抽象互補,從高層次開始仔細推敲,進行細化給出下層細節
信息隱藏和局部化
信息化隱藏:使得一個模塊內包含的信息對於不需要這些信息的不能訪問
局部化:把一些關系密切的軟體元素物理地放得彼此靠近
模塊獨立:
耦合:對一個軟體結構內不同模塊之間互聯程度的度量
無直接耦合、數據耦合(系統中必須存在這種耦合、低等程度)、控制耦合(中等程度)、特徵/標記耦合、公共環境耦合、內容耦合(最不好的耦合形式)
原則:盡量使用數據耦合,少用控制耦合和特徵耦合、限制公共環境耦合,不用內容耦合
⑵ 軟體工程為什麼要進行代碼設計
軟體工程的一部分,當然要進行了。。
軟體這些東西都是外延很大的。。需要學習的范圍很廣。。。
⑶ 軟體工程師要學什麼要不要設計動畫,游戲,編程是什麼有哪些類別的軟體要設計
樓主你好,軟體工程師是一個大類。動畫,游戲,編程都是包括在其中的。具體的要根據你選擇的方向來決定。舉個例子幫你說明一下。
對於一個游戲程序員來說,通常需要經過以下幾個學習階段:
1、基礎語言階段:常用的編程語言有,C,C++,JAVA,其中最廣泛被使用的就是C++,C++語言是一切游戲程序的基礎,換而言之,一個優秀的游戲程序員,必須非常熟練掌握並應用C++.
2、數據結構:在掌握C++之後,需要進行數據結構的學習,形象的講,就是那麼一大堆數據,如何去有序的排列其結構。通過對數據結構的學習,便能夠開始閱讀他人編寫的代碼,嘗試 開發簡單的程序,可以實現一些編程者自己的構想,是每個程序員必須掌握的技巧。
3、「庫」的學習及應用:最常用的有MFC(微軟公司類庫),GUI(圖形界面庫),當然「庫」的知識及功能非常龐大,通常來說,熟練掌握一部分經常涉及的知識即可。
通過以上三點的學習,c++基礎語言,數據結構,庫的使用。你基本已經可以自己獨立製作一個小游戲了,比如貪吃蛇,俄羅斯方塊等等。
然後,將進入的高階階段,也將是直接涉及到游戲程序相關知識。
4、游戲程序對於硬體的操縱。比如,內存,CPU,顯卡,這將會涉及到一些數學知識,比如立體幾何,線性代數等,但是也不用驚慌,並不是非常困難。通過對硬體的熟練操縱,才能將游戲的畫面,流暢度等等充分給予表達。
5、對於相關知識的學習。包括物理,腳本,美術等等。不需要深入了解,但相關知識的豐富對於你將來做游戲程序會有直接幫助。
6、對於游戲引擎的熟悉及使用。游戲引擎一般包括渲染器,內存管理器,組織管理幾部分。對游戲的畫面做出渲染,高效使用內存以及如何控制動畫播放等功能。熟悉引擎的使用,也將對於游戲程序員有直觀的幫助。
希望我的回答對你有幫助,有什麼問題可以留言給我。
⑷ 軟體工程 為什麼採用模塊化設計和編程
模塊化設計和編程有以下幾點好處:
1、便於設計與編程
2、便於分工合作
對於較大的項目這種方式的好處最為明顯。
3、便於調試
可先對每個小模塊進行單獨調試,發現問題快,解決也快。在每個小模塊都檢測通過後,整體調試出現問題只要檢查各模塊相關聯的部分(如參數地址、參數類型)是否統一即可。
4、便於移植
其他項目中如果有相同的應用,可以直接復制。如果只是近似應用,也只需做局部小改動即可。可省去大量的不必要的重復工作。
5、便於改進
⑸ 軟體工程的意義和作用
提高軟體開發的效率和質量。使軟體開發標准化,工業化。
⑹ 軟體工程總體設計階段的主要目的是什麼
1、劃分出組成系統的物理元素——程序、文件、資料庫、人工過程和文檔等。
2、設計系統的結構,也就是要確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。
總體設計時必修遵守原理:
1、模塊化:把復雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。
2、抽象:在實踐中認識到,在現實世界中一定事物、狀態和過程之間從存在某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。或者說抽象就是考慮事物間被關注的特性而不考慮它們其他的細節。
(6)軟體工程為什麼要設計擴展閱讀:
總體設計階段的工作步驟:
1、尋找實現系統的各種不同的解決方案,參照需求分析階段得到的數據流程圖來做。
2、分析員從這些供選擇的方案中選出若干個合理的方案進行分析,為每個方案都准備一份系統流程圖,列出組成系統的所有物理元素,進行成本效益分析,並且制定這個方案的進度計劃。
3、分析員綜合分析比較這些合理的方案,從中選擇一個最佳方案向用戶和使用部門負責人推薦。
4、對最終確定的解決方案進行優化和改進,從而得到更合理的結構,進行必要的資料庫設計,確定測試要求並且制定測試計劃。
⑺ 為什麼要提出軟體工程
1.軟體
要知道什麼是軟體工程,當然得先知道什麼是軟體.軟體就是計算機系統中與硬體相互依存的另一部分,它是包括程序,數據和相關文檔的完整組合.注意:軟體不僅包括程序,還包括文檔.所以做軟體也不僅僅是編程序,還需要寫文檔,後者應該提到與前者並重的地位。
2.軟體危機
從50年代到60年代,人們曾經把程序設計看作是一種任人發揮創造才能的技術領域,只要程序能得到正確的結果,程序的寫法可以不受任何約束.人們認為好的程序應該是運用了許多與眾不同的技巧和竅門的程序.這種觀點好象把編程序當成了一種藝術,因為藝術總是宣揚個性,喜歡與眾不同.(實際上,編程序的確可以看做是一種藝術,不過這種藝術是在遵循一定範式和准則這個前提下的藝術,個人觀點) 然而,隨著軟體的規模越來越大,人們在實踐中發現隨心所欲編寫的程序給維護,修改帶來了很大的麻煩.程序晦澀難懂,不同程序員,不同時期編寫的模塊難以介面.因此,軟體開發遇到了很大的困難.往往投入很大,收獲甚微.做的軟體漏洞百出,或無人使用.這就是軟體危機.
於是,人們在茫然中,漸漸的拋棄了原先的觀點,開始探索一種新的軟體開發的思想.這就導致了軟體工程的產生.程序也從按個人意圖創造的"藝術品"轉化為一種工程化的產品。
3.軟體工程的定義
軟體工程的定義很多,如:「軟體工程是開發,運行,維護和修復軟體的系統方法」;「建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法」等等。
定義是抽象的,掌握精髓才是關鍵。對軟體工程的最好理解就是「只可意會,不可言傳」,試問各位看官,您們都學過化學,但化學的定義是什麼呢?
但是,為了更快的意會,有必要在此廢話幾句。軟體工程可以看作是一種方法,一種思想,就是指導大家如何更好地開發軟體的方法和原則。軟工也可看作是一種工具,就是幫助大家分析,設計軟體的工具,如:流程圖,數據字典,以及一些輔助軟體等。軟工還可以看做是一種過程,就是軟體開發的過程。實際上,方法,工具,過程三者是軟體工程的三要素.
我是大一軟體工程專業的新生呢,上面的我從網上找來的,覺得挺好的,再者,說簡略一點就是,我認為是在做軟體開發的過程中加入了工程化的思想,使軟體開發,管理得更好,質量更高。
⑻ 為什麼用軟體工程的方法和理論進行系統的設計和開發
原因如下:
軟體工程一直以來都缺乏一個統一的定義,運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
在軟體工程術語匯編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、運行和維護,即將工程化應用於軟體;2.在1中所述方法的研究。
建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。
《計算機科學技術網路全書》:軟體工程是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟體的工程。軟體工程借鑒傳統工程的原則、方法,以提高質量、降低成本和改進演算法。其中,計算機科學、數學用於構建模型與演算法,工程科學用於制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。
比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
ISO 9000對軟體工程過程的定義是:軟體工程過程是輸入轉化為輸出的一組彼此相關的資源和活動。
其它定義:1.運行時,能夠提供所要求功能和性能的指令或計算機程序集合。2.程序能夠滿意地處理信息的數據結構。3.描述程序功能需求以及程序如何操作和使用所要求的文檔。以開發語言作為描述語言,可以認為:軟體=程序+數據+文檔。
⑼ 軟體工程專業學生學網頁設計有必要嗎
網頁設計一般在學校軟體工程專業只是學習皮毛,我當時學的是學網路工程的,之後的網站開發都是自學的。在學校也只是學習了web開發,資料庫,java之類的,計算機專業的學習C++,網站製作學到的還沒有人家管理學院電子商務專業學的多,asp和jsp都是比較簡單的語言,asp很快就可以入門,而jsp只要java學得好沒問題的,我建議你在學校還是盡量多學點以後走入社會到公司裡面人家真正需要的技術,java、.net、struct之類的而且一定要學精了,在學習的基礎上自己做點拿得出來的東西。
還有,不要人家干嗎你就幹嘛,多和軟體行業的在職人員聊聊,比如你的學長他們,一定要做好自己的計劃,踏踏實實地學習,不要荒廢了大學啊。
⑽ 解釋為什麼不同應用程序需要專門的軟體工程技術來支持設計和開發
我不是專業的。。。。。但是學過一點編程, 但是我的解釋就是,最開始開發的時候那個工程技術軟體比較合適,後來出其他軟體改起來比較麻煩,時段不同,軟體就不同,再就是跟內部結構有關系。