我在寫隨筆的時(shí)候,總是在第一段寫一些和技術(shù)無關(guān)的話。一般是表達(dá)一下當(dāng)時(shí)的心情。其實(shí)這不是主要的,我只是想養(yǎng)成斟酌自己說的每一句話的習(xí)慣。
軟件的生命周期:
- 軟件項(xiàng)目計(jì)劃
- 需求分析
- 軟件設(shè)計(jì)
- 程序編制
- 測(cè)試
- 運(yùn)行維護(hù)
軟件設(shè)計(jì)的目標(biāo):
可定制:當(dāng)系統(tǒng)進(jìn)行變更或在原有的系統(tǒng)上追加新的功能時(shí)、可以從現(xiàn)有的系統(tǒng)中直接整合后滿足需求。
可重用:當(dāng)出現(xiàn)上述情況、并且定制無法滿足需求的場(chǎng)合、可以使用原有系統(tǒng)中已經(jīng)存在的模塊、并且不需要任何改動(dòng)。
可擴(kuò)展:在重用也無法滿足需求的情況下、在原有的系統(tǒng)中、追加新的功能模塊時(shí)、不需要修改已有的系統(tǒng)。
可定制 > 可重用 > 可擴(kuò)展
面向過程的軟件設(shè)計(jì)
把一個(gè)問題分解成若干小問題,再對(duì)每個(gè)小問題進(jìn)行分解(分模塊),知道每個(gè)問題的難度都足以小,能夠解決為止,然后再把這些小問題合并,就解決了大問題。
模塊(子程序)劃分原則:強(qiáng)內(nèi)聚和松散耦合
面向?qū)ο蠓椒?nbsp;
定義一:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測(cè)試、重構(gòu)軟件的開發(fā)方法。
定義二:面向?qū)ο筌浖こ谭椒ǖ某霭l(fā)點(diǎn)和基本原則、是盡可能模擬人類習(xí)慣的思維方式、使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程、也就是使描述問題的問題空間(也稱為問題域)與實(shí)現(xiàn)解法的空間(也稱為求解域)在結(jié)構(gòu)上盡可能一致、因此、這樣的程序易于理解和維護(hù)。
基本概念:對(duì)象、屬性、服務(wù)、消息、類。
基本特征:封閉性、繼承性、多態(tài)性。
對(duì)象具有的含義:
±在現(xiàn)實(shí)世界中:是客觀世界中的一個(gè)實(shí)體。
±在面向?qū)ο蟪绦蛑校罕磉_(dá)成計(jì)算機(jī)可理解、可操縱、具有一 定屬性和行為的對(duì)象。
±在計(jì)算機(jī)世界中:是一個(gè)可標(biāo)識(shí)的存儲(chǔ)區(qū)域。
屬性:每一對(duì)象的屬性是一些有著確定值的、用于描述對(duì)象狀態(tài)信息的數(shù)據(jù)。
服務(wù):為了完成某一任務(wù)、一個(gè)對(duì)象所提供的、并體現(xiàn)其責(zé)任的操作。
補(bǔ)充一點(diǎn)關(guān)于抽象數(shù)據(jù)類型(adt)的內(nèi)容:
抽象數(shù)據(jù)類型恰恰不具備封閉,繼承和多態(tài)的特性,而它卻是面向?qū)ο蟮那吧怼K梢裕?br>隱含實(shí)現(xiàn)細(xì)節(jié)
將改動(dòng)的影響限制在局部
更容易改進(jìn)性能
降低修改時(shí)錯(cuò)誤的可能性
使程序成為自說明的