軟件設計學什么課程,軟件設計師


軟件設計學什么課程,軟件設計師

文章插圖
什么是軟件設計呢?:
軟件設計學什么課程,軟件設計師

文章插圖
你好,很高興你的問題,
軟件設計是從軟件需求規格說明書出發,根據需求分析階段確定的功能設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及編寫具體的代碼,形成軟件的具體設計方案 。
軟件設計是把許多事物和問題抽象起來,并且抽象它們不同的層次和角度 。將問題或事物分解并模塊化使得解決問題變得容易,分解的越細模塊數量也就越多,它的副作用就是使得設計者考慮更多的模塊之間耦合度的情況 。
軟件設計即“…the process of applying various techniques and principles for the purpose of defining a device, a process or a system in sufficient detail to permit its physical realization. ”“ … 應用各種各樣的技術和原理,并用它們足夠詳細的定義一個設備、一個程序或系統的物理實現的過程 ?!?br>對任意的工程產品或系統,開發階段絕對的第一步是確定將來所要構建的制造原型或實體表現的目標構思 。這個步驟是由多方面的直覺與判斷力來共同決定的 。這些方面包括構建類似模型的經驗、一組引領模型發展的原則、一套啟動質量評價的標準、以及重復修改直至設計最后定型的過程本身 。計算機軟件設計與其他工程學科相比還處在幼年時期,仍在不斷變化中,例如更新的方法、更好的算法分析、以及理解力的顯著進化 。軟件設計的方法論的出現也只有三十年多一點,仍然缺乏深度、適應性和定量性質,通常更多的與經典工程設計學科相聯系 。盡管如此,現今的軟件技術已經存在、設計質量的標準也可使用、設計符號亦可以應用 。帶著這些意見,我們一起來看看什么有助于程序員們找到他們的軟件涅盤 ( 天堂的意思 )。
軟件設計包括軟件的結構設計,數據設計,接口設計和過程設計 。
結構設計是指:定義軟件系統各主要部件之間的關系 。
數據設計是指:將模型轉換成數據結構的定義 。
接口設計是指:軟件內部,軟件和操作系統間以及軟件和人之間如何通信 。
過程設計是指:系統結構部件轉換成軟件的過程描述 。
軟件設計學什么課程,軟件設計師

文章插圖

什么是軟件設計?:
軟件設計學什么課程,軟件設計師

文章插圖
軟件設計出現的較早 。由于早期程序變得越來越大,那么模塊化程序,讓不同的開發人員相互配合就形成了一個主題 。多個程序員之間要遵從一定的規范進行編程,然后相互調用,最終使用各個模塊進行組合 。這種最早的形式也伴隨著新的面向過程語言的出現 。
軟件設計的原始目的是非常簡單的,就是我們要去理解一個完成的功能,然后把不同的功能分化成細節的模塊,然后使用一個團隊進行協同開發 。在這個設計活動中又找出了諸多的開發方法論,同時也發現了諸多開發的模型 。進而形成一個涉及到管理、設計等方面的細化工作,形成統一的軟件工程學 。同時對于軟件設計也相當細化和規范 。所以現在基本上軟件設計就是根據系統分師所指派的橫塊內進行細分,不同的方法論下,不同的開發模型下將功能塊分為更細致的小模塊完成更細致的功能 。
基本上來說,軟件設計與程序設計被混為一談,狹義的軟件設計指就是程序設計,重點在于算法上的設計;廣義上的軟件設計其實就是對系統進行的設計,要考慮到將來軟件的部署及要部署的硬件 。也就是說,程序員不管是在算法設計上還是程序設計上都是稱自己軟件設計,而系統分師也在設計整個系統也稱為軟件設計 。這是由于習慣的問題而出現的兩種理解——系統設計師與分析師設計的是整個軟件系統,涉及內容巨大,從部署到軟件性能功能移植性等各個方面的考慮,其目的就是構造一個當前適用并具有一定前瞻性、擴展性的軟件系統來支撐整個或大部分公司運行的系統 。他們再把系統細分為子系統以對應公司或系統中某個相對獨立的系統功能 。軟件設計師把自身分派到的子系統任務再進行細分,實現不同的層與模塊的調用,其目的就是將理解系統進而設計為可以開發的或進行開發準備的工作;而高程與程序員則對模塊功能進行分析,然后進入到開發,開發出相應的功能模塊 。他們所謂的軟件設計設計模塊內調用層次,設計算法與程序以達到指定的功能要求或非功能要求 。

推薦閱讀