我在寫隨筆的時候,總是在第一段寫一些和技術無關的話。一般是表達一下當時的心情。其實這不是主要的,我只是想養成斟酌自己說的每一句話的習慣。
軟件的生命周期:
- 軟件項目計劃
- 需求分析
- 軟件設計
- 程序編制
- 測試
- 運行維護
軟件設計的目標:
可定制:當系統進行變更或在原有的系統上追加新的功能時、可以從現有的系統中直接整合后滿足需求。
可重用:當出現上述情況、并且定制無法滿足需求的場合、可以使用原有系統中已經存在的模塊、并且不需要任何改動。
可擴展:在重用也無法滿足需求的情況下、在原有的系統中、追加新的功能模塊時、不需要修改已有的系統。
可定制 > 可重用 > 可擴展
面向過程的軟件設計
把一個問題分解成若干小問題,再對每個小問題進行分解(分模塊),知道每個問題的難度都足以小,能夠解決為止,然后再把這些小問題合并,就解決了大問題。
模塊(子程序)劃分原則:強內聚和松散耦合
面向對象方法
定義一:面向對象方法是一種運用對象、類、封裝、繼承、多態和消息等概念來構造、測試、重構軟件的開發方法。
定義二:面向對象軟件工程方法的出發點和基本原則、是盡可能模擬人類習慣的思維方式、使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程、也就是使描述問題的問題空間(也稱為問題域)與實現解法的空間(也稱為求解域)在結構上盡可能一致、因此、這樣的程序易于理解和維護。
基本概念:對象、屬性、服務、消息、類。
基本特征:封閉性、繼承性、多態性。
對象:從設計方面來看對象是一些模型化的實體、直接對應于現實世界的實體。從現實方面來看、一個對象是實際使用的數據結構與操作。
對象具有的含義:
±在現實世界中:是客觀世界中的一個實體。
±在面向對象程序中:表達成計算機可理解、可操縱、具有一 定屬性和行為的對象。
±在計算機世界中:是一個可標識的存儲區域。
屬性:每一對象的屬性是一些有著確定值的、用于描述對象狀態信息的數據。
服務:為了完成某一任務、一個對象所提供的、并體現其責任的操作。
補充一點關于抽象數據類型(adt)的內容:
抽象數據類型恰恰不具備封閉,繼承和多態的特性,而它卻是面向對象的前身。它可以:
隱含實現細節
將改動的影響限制在局部
更容易改進性能
降低修改時錯誤的可能性
使程序成為自說明的
posted on 2007-05-08 15:38
靜兒 閱讀(854)
評論(0) 編輯 收藏