天天看點

系統內建項目管理工程師備考資料(口袋應試第二版)6

軟體、架構、設計

口袋應試:因教程第二版第三章内容較多,為了友善複習,将第三章中的“3.2資訊系統設計,3.3軟體工程,3.4面向對象系統分析與設計,3.5軟體架構”單獨放在本節内容中。如果大家時間和精力有限,可以在微信中搜尋“內建中級口袋應試”小程式,利用瑣碎的時間進行複習,小程式中可以在分類測試中進行對應章節的試題練習。

3.2資訊系統設計

3.2.1方案設計

系統方案設計包括總體設計和各部分的詳細設計(實體設計)兩個方面。

(1)系統總體設計:包括系統的總體架構方案設計、軟體系統的總體架構設計、資料存儲的總體設計、計算機和網絡系統的方案設計等。

(2)系統詳細設計:包括代碼設計、資料庫設計、人 /機界面設計、處理過程設計等。

第二版[email protected]

出題機率:★★

180313、190113

3.2.2系統架構

系統架構是将系統整體分解為更小的子系統群組件,進而形成不同的邏輯層或服務。之後,進一步确定各層的接口,層與層互相之間的關系。對整個系統的分解,既需要進行“縱向”分解,也需要對同一邏輯層分塊,進行“橫向”分解。系統的分解可參考“架構模式”進行。

通過對系統的一系列分解,昀終形成系統的整體架構。系統的選型主要取決于系統架構。

第二版[email protected]

出題機率:★

180113

3.3軟體工程

3.3.2軟體設計、測試與維護

(2)軟體測試

測試是為評價和改進産品品質、識别産品的缺陷和問題而進行的活動。軟體測試是針對一個程式的行為,在有限測試用例集合上,動态驗證是否達到預 期的行為。

測試不再隻是一種僅在編碼階段完成後才開始的活動。現在的軟體測試被認為是一種應該包括在整個開發和維護過程中的活動,它本身是實際産品構造的一個重要部分。

軟體測試伴随開發和維護過程,通常可以在概念上劃分為單元測試、內建測試和系 統測試三個階段。

第二版[email protected]

出題機率:★

140310

(3)軟體維護

将軟體維護定義為需要提供軟體支援的全部活動。這些活動包括在 傳遞前完成的活動,以及傳遞後完成的活動。傳遞前要完成的活動包括傳遞後的運作計 劃和維護計劃等。傳遞後的活動包括軟體修改、教育訓練、幫助資料等。

軟體維護有如下類型:

①更正性維護:

更正傳遞後發現的錯誤;

②适應性維護:

使軟體産品能夠在變化後或變化中的環境中繼續使用;

③完善性維護:

改進交 付後産品的性能和可維護性;

④預防性維護:

在軟體産品中的潛在錯誤成為實際錯 誤前,檢測并更正它們。

第二版[email protected]

出題機率:★★★★

150315、160111、170316、190112

3.3.3軟體品質保證及品質評價

軟體品質指的是軟體特性的總和,是軟體滿足使用者需求的能力,即遵從使用者需求,達到使用者滿意。軟體品質包括“内部品質”“外部品質”和“使用品質”三部分。軟體需求定義了軟體品質特性,及确認這些特性的方法和原則。

軟體品質管理過程由許多活動組成,一些活動可以直接發現缺陷,另一些活動則檢查活動的價值。其中包括品質保證過程、驗證過程、确認過程、評審過程、審計過程等。

(1)軟體品質保證:通過制訂計劃、實施和完成等活動保證項目生命周期中的軟體産品和過程符合其規定的要求。

(2)驗證與确認:确定某一活動的産品是否符合活動的需求,昀終的軟體産品是否達到其意圖并滿足使用者需求。

驗證過程試圖確定活動的輸出産品已經被正确構造,即活動的輸出産品滿足活動的規範說明;确認過程則試圖確定構造了正确的産品,即産品滿足其特定的目的。

(3)評審與審計:包括管理評審、技術評審、檢查、走查、審計等。管理評審的目的是監控進展,決定計劃和進度的狀态,或評價用于達到目标所用管理方法的有效性。技術評審的目的是評價軟體産品,以确定其對使用意圖的适合性。

軟體審計的目的是提供軟體産品和過程對于可應用的規則、标準、指南、計劃和流程的遵從性的獨立評價。審計是正式組織的活動,識别違例情況,并要生成審計報告,采取更正性行動。

第二版[email protected]

出題機率:★★

180114、190311

3.3.6軟體開發工具

軟體開發工具是用于輔助軟體生命周期過程的基于計算機的工具。通常使用這些工具來支援特定的軟體工程方法,減少手工方式管理的負擔。工具的種類包括支援單個任務的工具及涵蓋整個生命周期的工具。

  • 軟體需求工具包括需求模組化工具和需求追蹤工具。
  • 軟體設計工具包括軟體設計建立和檢查工具。
  • 軟體構造工具包括程式編輯器、編譯器、代碼生成器、解釋器、調試器等。
  • 軟體測試工具包括測試生成器、測試執行架構、測試評價工具、測試管理工具、性能分析工具。
  • 軟體維護工具包括了解工具(如可視化工具)和再造工具(如重構工具)。
  • 軟體配置管理工具包括追蹤工具、版本管理工具和釋出工具。
  • 軟體工程管理工具包括項目計劃與追蹤工具、風險管理工具和度量工具。
  • 軟體工程過程工具包括模組化工具、管理工具、軟體開發環境。軟體品質工具包括檢查工具和分析工具。

第二版[email protected]

出題機率:★

190114

3.4面向對象系統分析與設計

3.4.1面向對象的基本概念

1. 對象:

由資料及操作所構成的封裝體,是系統中用來描述客觀事物的一個子產品,是構成系統的基本機關。用計算機語言來描述,對象是由一組屬性和對這組屬性進 行的操作構成的。

對象包含三個基本要素,分别是對象辨別、對象狀态和對象行為。例如,對于姓名 (辨別)為Joe的教師而言,其包含性别、年齡、職位等個人狀态資訊,同時還具有授課 等行為特征》Joe就是封裝後的一個典型對象。

2. 類:

現實世界中實體的形式化描述,類将該實體的屬性(資料)和操作(函數) 封裝在一起。

類和對象的關系:對象是類的執行個體

3. 抽象:

通過特定的執行個體抽取共同特征以後形成概念的 過程。抽象是一種單一化的描述,強調給出與應用相關的特性,抛棄不相關的特性。對象是現實世界中某個實體的抽象,類是一組對象的抽象。

4. 封裝:

将相關的概念組成一個單元子產品,并通過一個 名稱來引用它。面向對象封裝是将資料和基于資料的操作封裝成一個整體對象,對資料 的通路或修改隻能通過對象對外提供的接口進行。

5.繼承

表示類之間的層次關系(父類與子類),這種關系使得某類對象可以繼承另外一類對象的特征,繼承又可分為單繼承和多繼承。

(6)多态:

使得在多個類中可以定義同一個操作或屬性名,并在每個類中可以有不 同的實作。多态使得某個屬性或操作在不同的時期可以表示不同類的對象特性。

(7)接口:

描述對操作規範的說明,其隻說明操作應該做什麼,并沒有定義操作如 何做。可以将接口了解成為類的一個特例,它規定了實作此接口的類的操作方法,把真正的實作細節交由實作該接口的類去完成。

(8) 消息。

展現對象間的互動,通過它向目标對象發送操作請求。

(9) 元件:

表示軟體系統可替換的、實體的組成部分,封裝了子產品功能的實作。組 件應當是内聚的,并具有相對穩定的公開接口。

(10) 複用:

指将己有的軟體及其有效成分用于構造新的軟體或系統。元件技術是 軟體複用實作的關鍵。

(11) 模式:

描述了一個不斷重複發生的問題,以及該問題的解決方案。其包括特定 環境、問題和解決方案三個組成部分。應用設計模式可以更加簡單和友善地去複用成功 的軟體設計和架構,進而幫助設計者更快更好地完成系統設計。

第二版[email protected]

出題機率:★★★★★

160315、170116、170315、180115、180315、190115、190312

3.5軟體架構

3.5.2軟體架構模式

常見的典型架構模式如下。

1.管道/過濾器模式

此模式中,每個元件(過濾器)都有一組輸入/輸出,元件 讀取輸入的資料流,經過内部處理後,産生輸出的資料流,該過程主要完成輸入流的變 換及增量計算。其典型應用包括批處理系統。

管道/過濾器模式展現了各功能子產品高内聚、低耦合的“黑盒”特性,支援軟體功能 子產品的重用,便于系統維護;同時,每個過濾器自己完成資料解析和合成工作(如加密 和解密),易導緻系統性能下降,并增加了過濾器具體實作的複雜性。如圖3-4所示。

系統內建項目管理工程師備考資料(口袋應試第二版)6

2.面向對象模式

模式:在面向對象的基礎上,将子產品資料的表示方法及其相應操作封 裝在更高抽象層次的資料類型或對象中。其典型應用是基于元件的軟體開發(Component-Based Development,CBD)。

3.事件驅動模式

其基本原理是元件并不直接調用操作,而是觸發一個或多個事件。系統中的其他元件可以注冊相關的事件,觸發一個事件時,系統會自動調用注冊了 該事件的元件,即觸發事件會導緻另一元件中操作的調用。其典型應用包括各種圖形界面應用。

4.分層模式

采用階層化的組織方式,每一層都為上一層提供服務,并使用下一 層提供的功能。該模式允許将一個複雜問題逐漸分層實作。其中的每一層最多隻影響相 鄰兩層,隻要給相鄰層提供相同的接口,就允許每層用不同的方法實作,可以充分支援 軟體複用。其典型應用是分層通信協定,如ISO/OSI的七層網絡模型。此模式也是通用 應用架構的基礎模式

5.客戶機/伺服器模式(Client/Server, C/S):

基于資源不對等,為實作共享而提出 的模式。C/S模式将應用一分為二,伺服器(背景)負責資料操作和事務處理,客戶(前 台)完成與使用者的互動任務。

第二版[email protected]

出題機率:★★★★

140312、160316、180116、190313

3.5.4軟體中間件

口袋應試:“中間件的分類及特點”

中間件(Middleware)是位于硬體、作業系統等平台和應用之間的通用服務。借由 中間件,解決了分布系統的異構問題。

中間件服務具有标準的程式接口和協定。不同的應用、硬體及作業系統平台,可以提供符合接口和協定規範的多種實作,其主要目的是實作應用與平台的 無關性。借助中間件,屏蔽作業系統和網絡協定的差異,為應用程式提供多種通訊機制, 滿足不同領域的應用需要。

中間件包括的範圍十分廣泛,針對不同的應用需求有各種不同的中間件産品。從不 同角度對中間件的分類也會有所不同。通常将中間件分為資料庫通路中間件、遠端過程 調用中間件、面向消息中間件、事務中間件、分布式對象中間件等。

(1)資料庫通路中間件:

通過一個抽象層通路資料庫,進而允許使用相同或相似的代碼通路不同的資料庫資源。典型技術如 Windows平台的 ODBC和 Java平台的 JDBC等。

(2)遠端過程調用中間件(Remote Procedure Call,RPC):

是一種分布式應用程式的處理方法。一個應用程式可以使用 RPC來“遠端”執行一個位于不同位址空間内的過程,從效果上看和執行本地調用相同。

一個 RPC應用分為伺服器和客戶兩個部分。伺服器提供一個或多個遠端操作過程;客戶向伺服器發出遠端調用。伺服器和客戶可以位于同一台計算機,也可以位于不同的計算機,甚至可以運作在不同的作業系統之上。客戶和伺服器之間的網絡通訊和資料轉換通過代理程式(Stub與 Skeleton)完成,進而屏蔽了不同的作業系統和網絡協定。

(3)面向消息中間件( Message-Oriented Middleware,MOM):

利用高效可靠的消息傳遞機制進行平台無關的資料傳遞,并可基于資料通信進行分布系統的內建。通過提供消息傳遞和消息隊列模型,可在分布環境下擴充程序間的通信,并支援多種通訊協定、語言、應用程式、硬體和軟體平台。典型産品如 IBM的 MQSeries。

(4)分布式對象中間件:

是建立對象之間客戶 /伺服器關系的中間件,結合了對象技術與分布式計算技術。該技術提供了一個通信架構,可以在異構分布計算環境中透明地傳遞對象請求。典型産品如 OMG的 CORBA、Java的 RMI/EJB、Microsoft的 DCOM等。

(5)事務中間件:

也稱事務處理監控器( Transaction Processing Monitor,TPM),提供支援大規模事務處理的可靠運作環境。TPM位于客戶和伺服器之間,完成事務管理與協調、負載平衡、失效恢複等任務,以提高系統的整體性能。典型産品如 IBM/BEA的 Tuxedo。結合對象技術的對象事務監控器( Object Transaction Monitor,OTM)如支援 EJB的 JavaEE應用伺服器等。 

第二版[email protected]

出題機率:★★★★

180316、190116、190315

●其它專業的備考複習資料,可以在檢視我的部落格:跬步郎的部落格  。已釋出的專業有“資訊系統項目管理師”“網絡規劃師”“系統架構設計師”

以下為第一版内容,僅供參考

軟體需求的3 個層次

業務需求( Business requirement ) 表示組織或客戶高層次的目标。

使用者需求( user requirement ) 描述的是使用者的目标,或使用者要求系統必須能完成的任務。

功能需求( functional requirement ) 規定開發人員必須在産品中實作的軟體功能,使用者利用這些功能來完成任務,滿足業務需求。功能需求有時也被稱作行為需求( behavioral requirement )

出題機率:★

160115

結構化分析方法

結構化分析方法(Structured Method)是強調開發方法的結構合理性以及所開發軟體的結構合理性的軟體開發方法。結構是指系統内各個組成要素之間的互相聯系、互相作用的架構。

結構化分析方法給出一組幫助系統分析人員産生功能規約的原理與技術。它一般利用圖形表達使用者需求,使用的手段主要有資料流圖、資料字典、結構化語言、判定表以及判定樹等。

出題機率:★

160114

結構化分析基本思想

結構化分析方法的基本思想是自頂向下逐層分解。分解和抽象是人們控制問題複雜性的兩種基本手段。

出題機率:★

160127

結構化分析的常用工具

1、資料流圖(DFD-Data Flow Diagram)

資料流圖是描述資料處理過程的工具,是需求了解的邏輯模型的圖形表示,它直接支援系統的功能模組化。

2、資料字典(DD-Data Dictionary)

資料字典是結構化分析方法的核心。資料字典是對所有與系統相關的資料元素的一個有組織的清單,以及精确嚴格的定義,使使用者和系統分析員對輸入、輸出、存儲和中間結果有共同的了解。

資料字典的作用是對資料流圖(DFD)中出現的被命名的圖形元素的确切解釋,通常資料詞典包含的資訊有:名稱、别名、何處使用/如何使用、内容描述、補充資訊等。

3、判定樹

使用判定樹進行描述時,應先從問題定義的文字描述中厘清哪些是判定條件,哪些是判定結論,根據描述材料中的連接配接詞找出判定條件之間的從屬關系、并列關系、選擇關系,根據它們構造判定樹。

4、判定表

判定表和判定樹似是而非,當資料流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合而引發的,使用判定表描述比較适宜。

判定由四部分組成:(1)基本條件;(2)條件項;(3)基本動作;(4)動作項

出題機率:★

170114

軟體需求分析與定義

軟體需求是一個為解決特定問題而必須由披開發或被修改的軟體展示的特性。這個問題可能是使用軟體的某人的任務中的一個自動化部分,或是支援委托開發軟體的組織的業務流程,或修正目前軟體的缺點,或是控制一個裝置等。使用者、業務流程和裝置的功能通常根複雜,是以,特定軟體的需求在外延上通常是來自一個組織不同層次的不同人員的需求和來自軟體将要在其中運作的環境的需求的複雜組合。

所有軟體需求的一個基本特性就是可驗證性。驗證某些軟體需求可能很困難或者成本很高。軟體需求和軟體質保人員都必須保證,在現有的資源限制下,需求可以被驗證。

除了其表達的行為特性外,需求還有其他特性,如優先級,以便在資源有限時進行權衡。通常,要唯一地辨別軟體需求,才能在整個軟體生命周期中,進行軟體配置控制和管理。

需求分析涉及分析需求的過程,其目的如下。

(1)檢測和解決需求之間的沖突。

(2)發現軟體的邊界,以及軟體與其環境如何互動。

(3)較長的描述系統需求,以導出軟體需求。

描述需求時必須仔細,應該精确到能确認需求,驗證需求的實作,估算需求的成本。

[email protected]

出題機率:★★

140113、150314

繼續閱讀