一、軟件開發經歷的生命周期:
①軟件分析 ②軟件設計 ③軟件編碼 ④ 軟件測試 ⑤ 軟件部署 ⑥軟件維護
二、為了提高軟件開發效率,降低軟件開發成本,一個優良的軟件系統應該具備以下特點:
① 可重用性 ② 可擴展性 ③ 可維護性
三、系統結構是指系統由多個子系統組成,以及子系統由多個更小的子系統組成的結構
軟件中的子系統具有以下特點:
① 結構穩定性 ②可擴展性 ③內聚性 ④可組合性 ⑤松耦性
四、目前在軟件開發領域有兩種主流的開發方法:結構化開發和面向對象開發
1、結構化開發是一種比較傳統的開發方法,隨著軟件開發的逐步發展,面向對象的編程語言以及面向對象的設計理論應運而生,Java語言就是一種純面向對象的編程語言
結構化開發簡介:
結構化設計是屬于自頂向下的設計。在進行結構化編程時,程序的主體是方法,方法是最小的功能模塊。
舉例說明結構化開發過程,圖1-4顯示了一個按照功能劃分的畫板panel系統的結構。
包括4個功能模塊:選擇形狀模塊、畫長方形模塊、畫圓模塊和畫直線模塊。圖1-5為選擇形狀模塊的數據流圖
結構化開發弊端:
①自頂向下地按照功能來劃分軟件模塊
②軟件系統中最小的子系統是方法
2、面向對象軟件開發方法簡介
把軟件系統看成各種對象的集合,對象就是最小的子系統,一組相關的對象能夠組合成更復雜的子系統。
優點:
① 把軟件系統看成是各種對象的集合,更接近人類的自然思維方式
② 系統結構穩定
③ 提高軟件的可維護性、可重用性、可擴展性
五、對象模型
1、自底向上的抽象
2、自頂向下的分解
3、UML可視化建模語言
4、Rational Rose 可視化建模工具
六、面向對象開發中的核心思想和概念
問題領域、對象、屬性、狀態、行為、方法、實現
對象是對問題領域中事物的抽象。對象特征:
1.萬物皆為對象
2.每個對象都是唯一的
3.對象具有屬性和行為
4.對象具有狀態
5.對象都屬于某個類
七、類、類型
類是一組具有相同屬性和行為的對象的抽象。類及類的關系構成了對象模型的主要內容
八、消息、服務
每個對象都具有特定的功能,相對于其他對象而言,它的功能就是為其他對象提供的服務。例如電視機具有的功能包括:開機、關機、選擇頻道、調節音量和播放VCD等。遙控器為了獲得電視機的服務,需要向電視機提出獲得特定服務的請求,提出請求的過程被稱為發送消息
九、接口
在現實世界中,接口也是實體,比如電源插口、洗衣機上的按鈕和電燈的開關。而在面向對象范疇中,接口是一個抽象的概念,是指系統對外提供的所有服務。
在Java語言中,接口有兩種意思:
1、指系統對外提供的所有服務,在對象中表現為public類型的方法的聲明
2、指用interface關鍵字定義的實實在在的接口,也稱為接口類型。用于描述系統對外提供的所有服務,更加清晰地把系統的實現細節與接口分離
十、封裝、透明
封裝是指隱藏對象的屬性和實現細節。
兩個原則:
1、把盡可能多的東西藏起來,對外提供簡捷的接口
2、把所有的屬性藏起來
十一、抽象
抽象是一種由具體到抽象、由復雜到簡潔的思維方式。在面向對象的開發過程中,抽象體現在以下方面
1、從問題領域的事物到軟件模型中對象的抽象
2、從對象到類的抽象
3、從子類到父類的抽象
十二、繼承、擴展、覆蓋
在父類和子類之間同時存在著繼承和擴展關系。子類繼承了父類的屬性和方法,同時,子類中還可以擴展出新的屬性和方法,并且還可以覆蓋父類中方法的實現方式。覆蓋也是專業術語,是指在子類中重新實現父類中的方法。
注:
子類只能繼承父類的部分屬性和方法,父類中用private修飾的屬性和方法對子類是透明的。
目前在Java領域比較流行的架構軟件包括:
① J2EE
② Struts
③ JSF
④ Spring
十三、組合
組合是一種用多個簡單子系統來組裝出復雜系統的有效手段。個人計算機系統就是一個典型的組合系統。它由主機、鍵盤、鼠標、顯示器、和外圍設備打印機等組成。而主機由處理器、內存、一個或多個硬盤、顯卡、網卡和聲卡等組成。
十四、多態、動態綁定
十五、UML語言簡介
十六、類之間的關系
十七、關聯、依賴、聚集、泛化、實現
關聯:指的是類之間的特定對應關系,在UML中用帶實線的箭頭表示
依賴:指的是類之間的調用關系
聚集:指的是整體與部分之間的關系
泛化:指的是類之間的繼承關系
實現:指的是類與接口之間的關系
小結:
文章列表