软件开发与设计
本人經常對模塊化編程、面向對象編程,以及他們與軟件設計的關系有點模糊,且不清楚他們之間的層次聯系,今天翻閱了書本資料和百度百科資料進行了整理如下:
軟件設計(或者說怎樣構建一個(稍具規(guī)模的)軟件):確定軟件的總體架構(架構包括了整個關聯系統(tǒng),框架指的是單個系統(tǒng)的骨架),把整個軟件系統(tǒng)劃分成大大小小的多個子系統(tǒng),設計每個子系統(tǒng)的具體結構。
軟件開發(fā)(目前在有兩種主流的開發(fā)方法):結構化開發(fā)和面向對象開發(fā)。
結構化開發(fā)是一種比較傳統(tǒng)的開發(fā)方法,早期的高級編程語言,如Basic、C、Pascal等,都是支持結構化開發(fā)的編程語言。隨著軟件技術的逐步發(fā)展,為了進一步提高軟件的可重用性、可擴展性和可維護性,面向對象的編程語言及面向對象的設計理論應運而生,Java、C#、Smalltalk等都是支持面向對象開發(fā)的語言。另外,C++、ES6是既支持結構化開發(fā),又支持面向對象開發(fā)。其實,面向對象是一種設計思想,是以對象為核心。比如,面向對象語言是一類以對象作為基本程序結構單位的程序設計語言。雖然C語言原本是面向過程的語言,但我們還是可以利用 C 語言本身已有的特性來實現面向對象的一些基本特征,比如封裝、繼承、多態(tài)。結構化開發(fā)(SASD,1978年提出):也稱面向功能的軟件開發(fā)方法。它首先用結構化分析(Structure Analysis,SA)對軟件需求進行分析,然后用結構化設計(Structure Design,SD)方法進行總體設計,最后進行結構化編程(Structure Programming,SP)。
結構化設計:自頂向下設計,首先考慮整個軟件系統(tǒng)的功能,然后按照模塊劃分的一些基本原則(如內聚性和松耦合)等,對功能進行分解,把整個軟件系統(tǒng)劃分為多個模塊,每個模塊實現特定的功能。
結構化編程:程序的主體是方法,方法是最小的功能模塊,每個方法都是具有輸入輸出的子系統(tǒng),方法的輸入數據來于方法參數、全局變量和常量。
面向對象開發(fā): 把軟件系統(tǒng)看成各種對象的集合,對象就是最小的子系統(tǒng),一組相關的對象能夠組合成更復雜的子系統(tǒng)。
面向對象的分析與設計:致力于建立模擬問題領域的對象模型。建立對象模型既包括自底向上的抽象過程,也包括自頂向下的分解過程。
a) 自底向上的抽象:把問題領域的事物抽象具有特定屬性和行為的對象–》抽象出類–》抽象出父類。
b) 自定向下的分解:系統(tǒng)的進一步分解因有具體的對象為依據,所以分解過程比較明確,而且也相對容易。
總結
- 上一篇: win10 计划 定时关机
- 下一篇: 【愚公系列】2022年01月 攻防世界-