天天看點

資訊系統項目管理師考點二之系統開發基礎知識點歸納軟體開發方法軟體開發模型需求工程軟體設計軟體測試軟體維護軟體品質管理軟體過程改進面向對象方法構件與軟體複用軟體體系結構

資訊系統項目管理師考點二之系統開發基礎

  • 知識點歸納
  • 軟體開發方法
  • 軟體開發模型
  • 需求工程
  • 軟體設計
  • 軟體測試
  • 軟體維護
  • 軟體品質管理
  • 軟體過程改進
  • 面向對象方法
  • 構件與軟體複用
  • 軟體體系結構

知識點歸納

  • 軟體工程知識

    軟體需求分析與定義、軟體設計、測試與維護、軟體複用、軟體品質保證及品質評價、軟體配置管理、軟體開發環境、軟體過程管理

  • 軟體構件技術知識

    構件及其在資訊系統項目中的重要性、常用構件标準(COM/DCOM/COM+、CORBA和EJB)

  • 軟體體系結構

    軟體體系結構定義、典型體系結構、軟體體系結構設計方法、軟體體系結構分析與評估、軟體中間件

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

    面向對象的基本概念、統一模組化語言UML、可視化模組化、面向對象系統分析、面向對象系統設計

  • 軟體工具

    模組化工具、軟體開發工具、軟體測試工具、項目管理工具

軟體開發方法

軟體開發方法是以軟體開發方法為研究對象的學科。從不同角度可以把軟體方法學做如下分類:
  1. 開發風範上看:分為自頂向下、自底向上開發方法
  2. 性質上看:分為形式化、非形式化方法
  3. 适用範圍上看:分為整體性、局部性方法
  • 淨室方法

    淨室軟體工程方法是一種形式化方法,它可以生産高品質的軟體。

    淨室方法是一種嚴格的軟體工程方法,它是一種強調正确性的資料驗證和軟體可靠性的認證的軟體過程模型,其目标和結果都有非常低的出錯率,這是使用非形式化方法難于或不可能達到的。

    主要使用三種盒模型:黑盒、狀态盒、清晰盒

    淨室軟體工程并不強調單元測試或內建測試,而是通過定義一組使用場景、确定對每個場景的使用機率及定義符合機率的随機測試來進行軟體測試(這種活動稱為正确性驗證)

  • 結構化方法

    結構化方法屬于自頂向下的開發方法,強調開發方法的結構合理性及所開發軟體的結構合理性。包括:

    結構化分析(Structured Analysis,SA)

    結構化設計(Structured Design,SD)

    結構化程式設計(Structured Programming,SP)等方法

  • 面向對象方法
    1. 統一稱為UML(United Model Language,統一模組化語言):

      OMT(Object Model Technology,對象模組化技術)方法

      OOSE(Object-Oriented Software Engineering,面向對象的軟體工程方法)

      Booch方法

    2. 其他

      Coad/Yourdon方法

  • 原型法

    原型法适合于使用者需求不明确的場合。它是先根據已知的和分析的需求,建立一個原始模型,這是一個可以修改的模型。在軟體開發的各個階段都把有關資訊互相回報,直至模型的修改,使模型漸趨完善。在這個過程中,使用者的參與和決策加強了,縮短了開發周期,降低了開發風險,最終的結果是更适合使用者的要求。原型法成敗的關鍵及效率的高低,在于模型的建立及模組化的速度。

  • 逆向工程

    軟體再工程(Reengineering)是對現有軟體系統的重新開發過程,包括:逆向工程(Reverse Engineering,反向工程)、新需求的考慮(軟體重構)和正向工程三個步驟

軟體開發模型

要掌握軟體生命周期的概念、各種開發模型的特點和應用場合。
  • 瀑布模型

    瀑布模型也稱為生命周期法,适用于需求明确或很少變更的項目,它把軟體開發的過程分為6個階段:需求分析、軟體計劃、程式編碼、軟體測試、運作維護。

    簡記:需計承測維

  • 其他經典模型

    包括:演化模型、螺旋模型、噴泉模型、智能模型、增量模型、疊代模型、構件組裝模型。

  • V模型
    從左到右
    使用者需求 -> 需求分析 -> 概要設計 -> 詳細設計 -> 編碼階段
    從右到左

    驗收測試 <- 系統測試 <- 內建測試 <- 單元測試

    簡記:用需概詳編,單集系統驗

  • 快速應用開發

    快速應用開發(Rapid Application Development,RAD)模型是一個增量型的軟體開發過程模型,強調極短的開發周期。RAD模型是瀑布模型的一個高速變種,通過大量使用可複用構件,采用基于構件的建造方法赢得快速開發。

  • 靈活方法

    靈活方法的發展過程中出現了不同的流派,如:極限程式設計(Extreme Programming,XP)、自适應軟體開發、水晶方法、特性驅動開發等。

    從開發者角度,主要關注點:

    1. 短平快會議(Stand Up)
    2. 小版本釋出(Frequent Release)
    3. 較少的文檔(Minimal Document)
    4. 合作為重(Collaborative Focus)
    5. 客戶直接參與(Customer Engagement)
    6. 自動化測試(Automated Testing)
    7. 适應性計劃調整(Adaptive Planning)
    8. 結對程式設計(Pair Programming)
    從管理者的角度,主要關注點:
    1. 測試驅動開發(Test-Driven Development)
    2. 持續內建(Continuous Integration)
    3. 重構(Refactoring)
  • 統一過程

    統計過程(Unified Process,UP)是一個通用過程架構,在為軟體系統模組化時,UP使用的是UML。UP的三個特點:用例驅動、以基本架構為中心、疊代和增量。

    UP中的軟體過程在時間上被分解為4個順序的階段:初始階段、細化階段、建構階段和傳遞階段。

需求工程

内容介紹
需求工程是包括建立和維護系統需求文檔所必須的一切活動的過程,可分為需求開發和需求管理兩大工作。
           
  1. 需求開發包括:需求擷取、需求分析、編寫規格說明書(需求定義)、需求驗證
  2. 需求管理包括:定義需求基線、處理需求變更及需求跟蹤等方面的工作。
  • 需求開發概述

    需求開發的工作可以分為:問題識别、分析與綜合、編制需求分析的文檔、需求分析與評審。

    需求的分類:軟體需求包括功能需求、非功能需求、設計限制3個方面。

    需求的另一分類:業務需求、使用者需求、系統需求

  • 需求擷取

    需求擷取技術:使用者訪談、使用者調查、現場觀摩、閱讀曆史文檔、聯合讨論會。

    需求擷取、需求分析、需求定義、需求驗證這4個需求過程階段不是瀑布式的發展,而應該是疊代式的演化過程。

  • 需求分析

    需求分析方法種類:結構化分析方法、面向對象分析方法、面向問題域的分析方法(Problem Domain Oriented Analysis,PDOA)。PDOA方法現在還在研究階段,并未廣泛使用。

    資料流程圖(DFD)和資料字典共同構成系統的邏輯模型。

  • 需求定義

    需求定義的過程就是形成需求規格說明書的過程,有兩種需求定義方法;嚴格需求定義方法和原型方法。

  • 需求管理

軟體設計

内容介紹
從工程管理角度,軟體設計可分為概要設計和詳細設計兩個階段。
           
  1. 概要設計

    也稱為高層設計,即将軟體需求轉化為資料結構和軟體的系統結構。

  2. 詳細設計

    為低層設計,即對結構圖進行細化,得到詳細的資料結構與算法。

  • 軟體設計活動

    軟體設計包括4個獨立又互相聯系的活動,即資料設計、體系結構設計、接口設計(界面設計)和過程設計。這4個活動完成以後就得到了全面的軟體設計模型。

  • 結構化設計

    結構化設計是一種面向資料流的設計方法,是以結構化分析階段所産生的成果為基礎,進一步自頂向下、逐漸求精和子產品化的過程。

軟體測試

内容介紹
軟體測試的目的是在軟體投入生産性運作之前,盡可能多地發現軟體産品中的錯誤和缺陷。軟體測試隻是軟體品質保證的手段之一。
           
  • 測試的類型

    分為動态測試和靜态測試兩大類

    1. 動态測試:通過運作程式發現錯誤。

      測試方法有:黑盒測試法、白盒測試法、灰盒測試法

    2. 靜态測試:不運作程式,采用人工檢測和計算機輔助靜态分析的手段進行測試。

      測試方法有:桌前檢查(Desk Checking)、代碼審查、代碼走查

  • 測試的階段

    可以分為:單元測試、內建測試、确認測試(包括内部确認測試、Alpha測試、Beta測試、驗收測試)和系統測試等。

  • 性能測試

    性能測試是通過自動化的測試工具模型模拟多種正常、峰值及異常負載條件來對系統的各項性能名額進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行,統一稱為負載壓力測試。

    通過負載測試,确定在各種工作負載下系統的性能,目标是測試當負載逐漸增加時,系統各項性能名額的變化情況。

    壓力測試是通過确定一個系統的瓶頸或不能接受的性能點,來獲得系統能提供的最大服務級别的測試。

  • 驗收測試

    驗收測試的目的是確定軟體準備就緒,并且可以讓最終使用者将其用于執行軟體的既定功能和任務。

  • 第三方測試

    第三方測試是指獨立于軟體開發方和使用者方的測試,也稱為"獨立測試"。

軟體維護

  • 内容介紹

    軟體維護占整個軟體生命周期的60%~80%,維護的類型主要有3種:改正性維護、适應性維護、完善性維護。

    還有一類叫:預防性維護,可以定義為"把今天的方法學用于昨天的系統以滿足明天的需要"。

    簡記:該si晚育

軟體品質管理

  • 軟體品質

    是指軟體特性的綜合,即軟體滿足規定或潛在使用者需求的能力。

  • 軟體品質保證

    是指為保證軟體系統或的軟體産品充分滿足要求的品質而進行的有計劃、有組織的活動,這些活動貫穿與軟體生産的各個階段即整個生命周期。

    軟體品質特性度量有兩類:預測型和驗收型。

  • 軟體品質模型

    常用的國際通用軟體品質模型ISO/IEC9126和Mc Call模型。

    ISO/IEC9126軟體品質模型已被我國的國家标準《GB/T 16260————2002 資訊技術 軟體産品評價 品質特性及其使用指南》。

軟體過程改進

  • 軟體過程能力成熟度模型(Capability Maturity Model,CMM)

    分為:初始級、可重複級、已定義級、已管理級、優化級

  • 能力成熟度模型內建(Capability Maturity Model Integration,CMMI)

    與CMM相比CMMI涉及面不限于軟體,專業領域覆寫軟體工程、系統工程、內建産品開發和系統采購。

    CMMI可以看作把各種CMM內建到一個系列的模型中,CMMI的基礎源模型包括軟體CMM、系統過程CMM、內建化産品和過程開發CMM等。

    每一種CMMI模型都有兩種表示法,即階段式和連續式。

面向對象方法

主要考查面向對象的基本概念、資料隐藏、UML和構件
  • 基本概念

    面向對象方法包括面向對象的分析、面向對象的設計、面向對象的程式設計。

    1. 對象

      對象是指一組屬性及這組屬性上的專用操作的封裝體。一個對象通常可由三部分組成:對象名、屬性和操作方法。

    2. 類是具有相同屬性和相同操作的對象的集合。每一個類一般都有執行個體,沒有執行個體的類是抽象類

    3. 繼承

      繼承時指某個類的層次關聯中不同的類共享屬性和操作的一種機制。對于兩個類A和B,如果A類是B類的子類,則B類是A類的泛化。繼承時面向對象方法差別與其他方法的一個核心思想。

    4. 封裝

      面向對象系統中的封裝機關是對象,對象之間隻能通過接口進行資訊交流。

    5. 消息

      消息是對象間通信的手段、一個對象通過向另一個對象發送消息來請求其服務。

    6. 多态性

      多态性是指同一個操作作用于不同的對象時可以有不同的解釋,并産生不同的執行結果。

  • 統一模組化語言

    統一模組化語言(UML)是一種定義良好、易于表達、功能強大且普遍适用的模組化語言。它的作用域不限于支援面向對象的分析與設計,還支援從需求分析開始的軟體開發全過程。

    UML的結構:UML的結構包括基本構造塊、支配這些構造塊如何放在一起的規則(體系架構)和一些運用于整個UML的機制。

    1. UML有三種基本的構造塊、分别是事物(thing)、關系(relationship)和圖(diagram)。
    2. 公共機制是指達到特定目标的公共UML方法,主要包括規格說明(詳細說明)、修飾、公共分類(通用劃分)和擴充機制四種。
    3. 規則,UML用于描述事物的語義規則分别為事物、關系和圖命名。5個系統視圖:邏輯視圖、程序視圖、實作視圖、部署視圖、用例視圖。

構件與軟體複用

内容介紹

構件(Component,元件) 是一個功能相對獨立的具有可重用價值的軟體單元。在面向對象方法中,一個構件由一組對象構成,包含了一些協作的類的集合,它們共同工作來提供一種系統功能。

  • 軟體複用

    可重用性是指系統和(或)其組成部分在其他系統中重複使用的程度。

    系統的軟體重用由可重用的資産(構件)的開發、管理、支援和重用4個過程。

  • 構件技術

    構件是軟體系統可替換的、實體的組成部分,它封裝了實作體(實作某個職能),并提供一組接口的實作方法。

    為了将不同軟體生産商在不同軟硬體平台上開發的構件組裝成一個應用系統,必須解決異構平台的各構件間的互操作問題,目前已出現一些支援互操作的構件标準,3個主要流派為:

    1. OMG 的 CORBA(Common Object Request Broker Architecture,公共對象請求代理);
    2. Microsoft 的 COM(Component Object Model,構件對象模型)和DCOM(Distributed Component Object Model,分布式構件對象模型);
    3. Sun 的 EJB(Enterprise JavaBean,企業JavaBean)

軟體體系結構

内容介紹

軟體體系結構(Software architecture,軟體架構)為軟體系統提供了一個結構、行為和屬性的進階抽象,有構成系統的元素的描述、這些元素的互相作用、指導元素內建的模式以及這些模式的限制組成。

軟體體系結構圖在軟體需求與軟體設計之間架起一座橋梁,着重解決軟體系統的結構和需求向實作平坦地度過的問題。

  • 軟體體系結構模組化

    軟體體系結構模組化的首要問題是如何表示軟體體系結構,即如何對軟體體系結構模組化。根據模組化的側重點不同,可以将軟體體系結構的模型分為5種,分别是結構模型、架構模型、動态模型、過程模型、功能模型。其中最常用的是結構模型和動态模型。

  • 軟體體系結構風格

    典型的軟體體系結構風格有:分層結構、客戶/伺服器

  • 設計模型

    MVC(Model-View-Controller,模型-視圖-控制器)架構包括3個抽象類:View抽象類、Controller抽象類、Model抽象類。

繼續閱讀