您好,登錄后才能下訂單哦!
一、系統開發基礎知識
需求分析和設計方案
軟件工程基本知識
軟件危機
軟件危機的主要表現
1. 對軟件開發成本和進度的估計不準確
2. 用戶不滿意
3. 軟件質量不高、可靠性差
4. 軟件常常不可維護、錯誤難以改正。
5. 缺乏適當的文檔資料
6. 軟件成本占系統總成本的比例逐年上升
7. 軟件開發速度跟不上計算機發展速度
軟件工程
大型的,復雜的軟件系統的開發是一項工程,必須按工程學的方法組織軟件的生產與管理,必須經過計劃,分析,設計,編程,測試,維護等一系列的軟件生命周期階段。
IEEE對軟件工程的定義:軟件工程是開發,運行,維護和修復軟件的系統方法。
軟件工程方法學包括3個要素:方法,工具和過程。方法是指完成軟件開發各項任務的技術方法;工具是指為運用方法而提供的軟件工程支撐環境;過程是指為獲得高質量的軟件所需要完成的一系列任務的框架。
目前使用最廣泛的軟件工程方法學是結構化方法學和面向對象的方法學。
軟件生命周期
1970年,Boehm提出了軟件生命周期的瀑布模型(waterfall model),它典型地刻畫了軟件生命周期的階段劃分。瀑布模型將軟件生命周期劃分為八個階段:問題定義,可行×××,需求分析,總體設計,詳細設計,編碼,測試,維護。八個階段歸納為三個時期,計劃
期,開發期和運行期。其中問題定義和可行×××屬計劃期,維護屬運行期,其余為開發期。
結構化方法學概述
1977年以后出現的結構化方法學也稱為生命周期方法學,它采用結構化技術(結構化分析,結構化設計和結構化實現)來完成軟件開發的各項任務。這種方法學把軟件開發生命周期劃分為若干個階段,然后按順序完成第個階段的任務。
結構化方法學具有以下特點:
(1) 階段性;
(2) 推遲實施;
(3) 文檔管理。
結構化分析
結構化分析(structured analysis,SA)方法是一種面向數據流的需求分析方法,它的基本思想是自頂向下逐層分解。
數據流圖和數據字典是結構化分析的工具,軟件需求說明書是需求分析階段的最后成果。
1,數據流圖
數據流圖(data flow diagram,DFD)用來描述數據流從輸入到輸出的變換過程。
DFD的基本成分:數據流,加工,文件和源/宿。
2,數據字典
數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素定義的集合。
數據流圖和數據字典共同構成了系統的邏輯模型。
數據字典中有四種類型的條目:
(1) 數據項條目;
(2) 數據條目;
(3) 文件條目;
(4) 加工條目。
3,軟件需求說明書
軟件需求書把在軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述,詳細的功能說明,恰當的檢驗標準以及其他與要求有關的數據。
結構化設計
系統設計主要包括體系結構設計,接口設計,數據設計和過程設計。
結構化設計(structured design,SD)方法是一種面向數據流的設計方法,它是以結構化分析所產生文檔(數據流圖,數據字典和軟件需求說明書)為基礎,自頂向下,逐步求精和模塊化的過程。結構化分析通常可分為概要設計和詳細設計。概要設計的任務是確定軟件系統的結構,進行模塊的功能,接口經及模塊間的調用關系。詳細設計的任務是為每個模塊設計實現的細節。
1. 軟件設計的概念與原則
(1) 模塊化
模塊是指執行某一特定任務的數據和可執行語句等程序元素的集合,通常是指可通過名字來訪問的過程,函數,子程序或宏調用。
模塊化就是將一個待開發的軟件劃分成若干個可完成某一子功能的模塊,每個模塊可以獨立地開發,測試,最后組裝成完整的程序。
定義模塊大小的標準:
可分解性;
可組裝性;
可理解性;
連續性;
保護性。
(2) 內聚
內聚是指一個模塊內各個元素彼此結合的緊密程序。內聚有以下幾種,由弱到強排列:
偶然內聚;
邏輯內聚;
瞬時內聚;
過程內聚;
通信內聚;
順序內聚;
功能內聚。
(3) 耦合
耦合是對一個軟件結構內不同模塊之間互連程序的度量。耦合強弱取決于模塊接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數據。
模塊間的耦合程度強烈影響系統的可理解性,可修改性,可測試性和可靠性。
耦合可以分為以下幾種,強度由主到低:
內容耦合;
公共耦合;
外部耦合;
控制耦合;
標記耦合;
數據耦合;
非直接耦合。
模塊的高內聚,低耦合原則稱為模塊獨立性原則。
(4) 深度,寬度,扇入和扇出。
深度表示軟件結構中控制的層數;
寬度是軟件結構中同一個層次上的模塊總數的最大值;
扇出是指該模塊直接調用的下級模塊的個數;
扇出是指直接調用該模塊的上級模塊的個數。
(5)作用域和控制域
模塊的作用域是指受該模塊內一個判定影響的所有模塊的集合。模塊的控制域的指該模塊本身以信該模塊直接或間接調用的所有模塊的集合。
(6)功能的可預測性
功能的或預測性是指對相同的輸入數據能產生相同的輸出。
2.概要設計
概要設計的重要任務是設計軟件的結構,也就是要確定系統是由哪些模塊組成的,以信這些模塊相互間的關系。
SD方法采用結構圖(structure chart)來描述程序的結構。構成程序結構圖的主要成分有模塊,調用和數據。
(1) 概要設計的具體步驟
第一步:復查基本系統模型;
第二步:復查并精化數據流圖;
第三步:確定數據流圖的信息類型;
第四步:根據流的類型分別實施變換分析或事務分析。
第五步:根據軟件設計原則對得到的軟件結構圖進一步優化。
(2) 概要設計說明書
是概要設計的最后成果。
詳細設計
詳細設計階段的根本目標就是確定應該怎樣具體地實現所要求的系統,得出對目標系統的精確描述。
(1) 結構化程序設計
(structured programming,SP)采用自頂向下逐步求精的設計方法和單入口單出口的控制結構。
三種基本控制結構:順序結構,IF_THEN_ELSE 型分支結構(選擇結構)和DO_WHILE型循環結構。
(2) 過程設計工具
描述程序處理過程的工具稱為設計工具,主要包括程序流程圖,盒圖(N-S圖),PAD圖和偽碼(PDL)。
(3) 人機界面設計
主要包括系統響應時間,用戶幫助設計,出錯信息處理和命令交互設計等。
(4) 詳細設計說明書。
面向對象方法學概述
面向對象=對象(objects)
+類(classes)
+繼承(inheritance)
+消息通信(communication with message)
(1) 對象與封裝
對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。
對象的三要素:對象標識,屬性和服務。
封裝是對象的一個重要原則。它有兩層含義:第一,對象是其全部屬性和全部服務緊密結合而形成的一個不可分割的整體;第二,對象是一個不透明的黑盒子,表示對象狀態的數據和實現操作的代碼都被封裝在黑盒子子里面。
(2)類
類是對具有相同屬性和服務的一個或一組對象的抽象定義。
類和對象是抽象描述與具體實例的關系,一個具體的對象被稱為類的一個實例。
(3) 繼承和多態性
繼承(inheritance)的定義為:特殊類的對象擁有其一般類的全部或部分屬性。
多態性(polymorphism)是指在一般類中定義的屬性或服務被特殊類繼承之后,可以具有不同的數據類型或表現出不同的行為。
(4)消息通信
消息就是向對象發出的服務請求,它應該包含下述信息:提供服務的對象標識,消息名,輸入信息和回答信息。
消息通信也是面向對象方法中的一條重要原則,它與封裝密不可分。消息通信為它們提供了惟一僉的動態聯系途徑,使它們的行為能夠互相配合,構成一個有機的系統。
只有同時使用對象,類,繼承和消息通信,才是真正面向對象的方法。
面向對象方法學的優點
(1) 與人類習慣的思維方式一致;
(2) 穩定性好;
(3) 可重用性好;
(4) 較易開發大型軟件產品;
(5) 可維護性好。
面向對象的分析
1, OMT方法簡介
OMT(Object Modeling Technique)方法的OOA(Object-Oriented Analysis,OOA)模型包括對象模型,動態模型和功能模型。
對象模型表示靜態的,結構化的系統的數據“數據”的性質。通常用類圖表示。
動態模型表示瞬時的,行為化的系統的“控制”性質,它規定了對象模型中的對象的合法變化序列。通常用狀態圖表示。
功能模型表示變化的系統的“功能”性質,它指明系統應該“做什么”,因此更直接地反映了用戶對目標系統的需求。通常用數據流圖表示。
2, 建立對象模型
復雜系統的對象模型通常有以下五個層次組成:類及對象層,結構層,主題層,屬性層和服務層。分別對應建立對象模型的五項主要活動:確定類與對象,確定結構與關聯,劃分主題,定義屬性和定義服務。
3. 建立動態模型
第一步:編寫典型交互行為的腳本。
第二步:從腳本中提取出事件,確定觸發第個事件的動作對象以及接受事件的目標對象。
第三步:排列事件發生的次序,確定第個對象可能有的狀態及狀態間的軟件關系。
4. 建立功能模型
OMT方法中的功能模型實際上就是結構化方法中的數據流圖。
面向對象的設計
1. OOA與OOD的關系
2. 設計問題域部件;
3. 設計人機交互部件;
4. 設計任務管理部件;
5. 設計數據管理部件。
二、開發環境
軟件工具
軟件工具是指用于輔助軟件開發,運行,維護,管理,支持等過程中的活動的軟件,通常也稱為CASE(computer aided software engineering,計算機輔助軟件工程)工具。通常可將軟件工具分為軟件開發工具,軟件維護工具和軟件管理工具。
1, 軟件開發工具
(1) 需求分析工具;
(2) 設計工具;
(3) 編程工具;
(4) 測試工具。
2, 軟件維護工具
(1) 版本控制工具;
(2) 文檔分析工具
(3) 開發信息庫工具;
(4) 逆向工程工具;
(5) 再工程工具。
3, 軟件管理工具
(1) 項目管理工具;
(2) 配置管理工具;
(3) 軟件評估工具。
集成開發環境
軟件開發環境是指支持軟件產品開發的軟件系統。
集成軟件開發環境是一種把支持多種軟件開發方法和開發模型,支持軟件開發全過程的軟件工具集成在一起的軟件開發環境。
集成型開發環境通常可由工具集和環境集成機制兩部分組成。環境集成機制主要有數據集成機制,控制集成機制和界面集成機制。
三、軟件測試與軟件評審
1, 軟件測試的目的
軟件測試的目的就是在軟件投入生產運行之前,盡可能多地發現軟件產品中的錯誤和缺陷。
2, 測試分類
軟件測試通過可分為單元測試,集成測試和系統測試。
(1) 單元測試
單元測試(unit testing),也稱模塊測試,通常可放在編程階段,由程序員對自己編寫的模塊自行測試,檢查模塊是否實現了詳細設計說明書中規定的功能和算法。單元測試主要發現編程和詳細設計中產生的錯誤,單元計劃應該在詳細設計階段制定。
單元測試著重從以下幾個方面對模塊進行測試:模塊接口,局部數據結構,重要的執行通路,出錯處理和邊界條件。
(2) 集成測試
集成測試(integration testing),也稱組裝測試,它是對由各模塊組裝而成的程序進行測試,主要目標是發現模塊間的接口和通信問題。
(3) 系統測試
系統測試是軟件測試中的最后的,最完整的測試,它是在單元測試,集成測試的基礎上進行的,它從全局來考察系統的功能和性能要求。系統測試計劃應該在需求分析階段制定。
通常,系統測試包括確認測試(validation testing)和驗收測試(acceptance testing).
3,測試方法
(1)白盒測試
又稱結構測試,主要用于單元測試階段。
(2)黑盒測試
又稱功能測試,主要用于集成測試和確認測試階段。
(3)灰盒測試
介于前兩者之間。主要用于集成測試階段。
軟件評審
狹義的“軟件評審”通常指軟件文檔和源程序的評審。廣義的“軟件評審”還包括與軟件測試相結合的評審有及管理評審。軟件評審包括軟件需求評審,概要評審,詳細評審,軟件驗證和確認評審,功能檢查,物理檢查,綜合檢查和管理評審。
測試設計和管理
1, 白盒測試的測試用例設計
白盒測試根據軟件的內部邏輯設計測試用例,常用的技術是邏輯覆蓋,即考查用測試數據運行被測程序時對程序邏輯的覆蓋程度,主要的覆蓋標準有六種:語句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,條件組合覆蓋和路徑覆蓋。
2, 黑盒測試的測試用例設計
黑盒測試根據軟件需求說明書所規定的功能來設計測試用例,它不考慮軟件的內部結構和處
理算法。
常用的黑盒測試技術包括等價類劃分,邊值分析,錯誤推測和因果圖等。
3, 錯誤曲線圖與收斂性;
4, 錯誤注入法
5, 排錯;
6, 軟件測試管理準則;
7, 測試計劃與測試分析報告。
四、項目管理
制定項目計劃
制定項目計劃的過程叫做規劃,項目規劃是預測未來,確定任務,估計可能碰到的問題并提出完成任務和解決問題的有效方案,方針,措施和手段以及所必需的各種活動和工作成果的過程。
質量管理與質量評估
軟件質量是軟件與明確敘述的功能和性能需求,文檔中明確描述的開發標準以及任何專業開發的軟件產品都應該具有的隱含特征相一致的程度。
質量管理
(1) 質量需要分析;
(2) 質量計劃;
(3) 質量保證;
(4) 質量控制;
(5) 質量改進。
質量評估
(1) 功能性;
(2) 可靠性;
(3) 可用性;
(4) 效率;
(5) 可維護性;
(6) 可移植性。
過程管理
過程管理是為確保項目按時完成所需要的種活動。過程管理主要包括項目工作分解。項目進度制訂和項目進度控制等。
過程管理的技術與方法
(1) Gantt圖;
(2) PERT圖與關鍵路徑;
(3) 持續時間的壓縮;
(4) 資源均衡;
(5) 時差的應用。
配置管理
軟件配置管理的基本概念。
(1) 軟件配置項
軟件配置項是指在軟件開發過程中產生的全部信息,主要包括:源程序和可執行程序;軟件文檔;數據。
(2) 基線
基線是指已通過正式復審的軟件配置項。IEEE對基線的定義為:已通過正式復審的軟件中
間產品或軟件文檔,它可以作為進一步開發的基礎,并且只有通過正式的變化控制過程才能改變它。
1. 軟件配置管理的主要任務
主要有五項任務:任務標識,版本控制,變化控制,配置審計和配置報告。
人員計劃和管理
人員計劃和管理是指有效地使用涉及項目的人員所需要的一組活動。
人員計劃和管理的主要內容
(1) 組織和人力資源規劃;
(2) 人員獲取;
(3) 管理項目成員的工作;
(4) 團隊建設。
人員計劃和管理的技術與方法
(1) 用網絡計劃技術和系統工程模型實現人力資源均衡優化;
(2) 組織結構圖;
(3) 責任分派表;
(4) 沖突管理;
(5) 培訓。
文檔管理
國家標準局于1988年1月批準并發布的《GB8567—1988計算機軟件產品開發文件編制指南》規定在一項軟件開發過程中應該產生14種文件。
A, 可行×××報告;
B,項目開發計劃;
C,軟件需求說明書;
D, 數據要求說明書;
E,概要設計說明書;
F, 詳細設計說明書;
G, 數據庫設計說明書;
H, 用戶手冊;
I, 操作手冊;
J, 模塊開發卷宗;
K, 測試計劃;
L,測試分析報告;
M,開發進度月報;
N, 項目開發總結報告。
高質量的文檔就體現:針對性;精確性;清晰性;完整性;靈活性。
在軟件開發過程中,軟件文檔的變更手續為:提議—評議—審核—批準—實施。
開發和組織的作用
1. 民主制;
2. 技術權威制;
3. 項目經理制。
成本組織
成本組織包括項目的資源規劃、費用估算,費用規劃和控制等各項活動。成本組織的目的是預測計劃項目費用,控制項目費用并確保項目在預算的約束條件下完成。
成本組織的主要內容
(1) 資源規劃;
(2) 費用估算;
(3) 制訂費用計劃;
(4) 費用控制;
(5) 財務決算。
成本組織的技術與方法
(1) 費用分解結構(CBS)
(2) 掙得值分析;
(3) 類比估算法;
(4) 參數模型法;
(5) 自下而上的估算;
(6) 計算機估算軟件;
(7) 費用變更標識和變更控制系統。
風險管理
主要活動有風險識別,風險估算,風險評價和風險控制。
五、系統的可審計性
系統審計是獨立于系統開發者,系統使用者的第三方——系統審計師彩客觀的標準對系統的策劃,開發,使用維護等相關活動和產物進行完整的,有效的檢查和評估。
系統審計涉及整個系統的生命周期,審計對象涵蓋整個系統所有活動和中間產物,并包括與系統實施有關的外部環境。
審計方法
系統審計按照系統的生命周期可以分為計劃審計,開發審計,執行審計,維護審計以信覆蓋整個系統周期的管理審計。
審計跟蹤
審計跟蹤是系統活動的流水線。
六、系統運行和維護知識
系統運行
系統運行環境管理
系統運行環境管理包括硬件環境,軟件環境,網絡環境和數據庫環境。
系統成本管理
7個環節:成本預測,成本決策,成本計劃,成本控制,成本核算,成本分析,成本考核,其中的兩大核心內容是成本控制與成本核算。
系統運行
作業調度
作業調度為實現工作量管理的完全自動化提供全方位的功能,完成作業的定置,安排,監視以及執行結果的檢測。
數據I/O管理
有并行I/O方式和串行I/O方式。
用戶管理
用戶管理的主要任務是對網絡用戶的基本信息及賬號及賬號信息等進行分類管理。
用戶所注冊的ID號是用戶在網絡中的惟一標識。
設備和設施管理
1. 電源
2. 空調設備;
3. 設備管理;
4. 設施安全管理。
系統故障管理
故障管理過程包括三個步驟:發現故障,分離故障,修復故障。
安全管理
性能管理
系統運行工具
1. 自動化操作工具;
2. 監控工具;
3. 診斷工具。
系統轉換
1, 轉入運行階段;
2, 運行測試;
3, 版本控制
版本控制包括版本管理,系統發行,版本標識和發行管理。
系統運行服務標準
計算機系統運行服務執行的主體包括:(1)系統使用單位;(2)系統開發單位;(3)系統經銷單位;(4)專業的技術服務單位。
系統運行服務標準就明確服務內容,服務方式,服務收費標準和違約等條款。
七、系統維護
系統維護是在系統交付使用之后直至系統被淘汰的整修時期內為了改正錯誤或滿足新的要求而修改系統的活動。
維護的類型
(1) 改正性維護;
(2) 適應性維護;
(3) 完美性維護;
(4) 預防性維護;
維護的實施
1. 日常檢查
2. 定期維護
(1) 病毒防治;
(2) 數據備份;
(3) 數據整理;
(4) 故障排除;
(5) 硬件清洗;
(6) 維修計算機硬件,恢復計算機系統,計算機網絡維護,調試等。
3, 事前維護和事后維護
4, 遠程維護
硬件維護
硬件維護是指硬件交付用戶使用之后,為了保證硬件的繼續使用或滿足新的需要而對系統所做的修理,完善,調試,測試等過程。
硬件維護也分改正性維護,適應性維護,完善性維護和預防性維護。
軟件維護
影響軟件的可維護性的因素有:可理解性,可測試性,可修改性。
面向對象方法的的對象封閉機制,消息通信機制,繼承機制和多態機制從根本上提高了軟件
的可維護性。
結構化方法學中的模塊化,信息隱蔽,高內聚,低耦合原則也提高了可維護性。
軟件維護管理是指為保證維護質量,提高維護效率,控制維護成本而進行的維護過程管理,它要求對軟件的第次“修改”均需要經過申請,評估,批準,實施,驗證等步驟。
軟件維護管理的核心是維護評估和維護驗證。維護評估的主要工作包括:判定維護申請的合理性與輕重緩急,確定維護的可行性與時間及費用,制定維護策略與維護計劃等。維護驗證主要審查修改后的軟件是否實現了維護目標,軟件文檔是否也做了相應的修改。
維護合同
計算機系統的維護通常有四種方式:(1)由系統使用單位自選維護;(2)由系統開發單位負責維護;(3)由系統經銷單位負責維護;(4)委托專業的技術服務公司進行維護。后三種情況均需要簽訂維護合同。
維護合同應明確維護內容,維護方式,維護職責,收費標準和違約責任等條款。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。