<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • 一、軟件過程模型??????

    ? ? ? ? (1)瀑布模型、(2)V模型【瀑布變種】、(3)原型模型、

    ????????(4)螺旋模型【原型+瀑布】、(5)構件組裝模型/基于構件的開發方法、

    ????????(6)快速應用開發RAD【瀑布+構件組裝】、(7)統一過程/統一開發方法、

    ????????(8)敏捷開發方法

    ? ? ? ? 1、瀑布模型

    ????????????????

    ? ? ? ? ? ? ? ? 【特點】:

    ? ? ? ? ? ? ? ? ? ? ? ? (1)嚴格區分階段,每個階段因果關系緊密相連

    ? ? ? ? ? ? ? ? ? ? ? ? (2)只適合需求明確的項目

    ? ? ? ? ? ? ? ? 【缺點】:

    ? ? ? ? ? ? ? ? ? ? ? ? (1)軟件需求完整性、正確性難確定

    ? ? ? ? ? ? ? ? ? ? ? ? (2)嚴格串行化,很長時間才能看到結果

    ? ? ? ? ? ? ? ? ? ? ? ? (3)瀑布模型要求每個階段一次性完全解決該階段工作,這不現實

    ? ? ? ? 2、V模型【瀑布變種】

    ? ? ? ? ? ? ? ? 瀑布的改進,測試貫穿于始終,測試分階段,測試計劃提前。

    ????????????????

    ? ? ? ? 3、原型模型

    ? ? ? ? ? ? ? ?
    設計一個簡易系統,了解用戶的需求,客戶可以看到他們想要改變的,有利于提高用戶界面的接受程度,適合需求不明確的項目,原型主要用在需求階段。

    ? ? ? ? ? ? ? ? 原型模型兩個階段:

    ? ? ? ? ? ? ? ? (1)原型開發階段:通過做一個簡易原型,向客戶了解具體需求。
    ? ? ? ? ? ? ? ? (2)目標軟件開發階段:通過獲取到的具體需求,完成目標軟件的開發。

    ? ? ? ? ? ? ? ? 原型相關模型:

    ????????????????

    ????????????????(1)螺旋模型

    ? ? ? ? ? ? ? ? (2)拋棄型原型(也叫快速原型模型):用戶需求確定之后即不再繼續開發此原型。

    ? ? ? ? ? ? ? ? (3)演化型原型:逐步改進和細化原型,將原型進化為最終系統。

    ? ? ? ? ? ? ? ? (4)增量模型:在建立軟件總體設計基礎上,采用增量開發方法,使原型成為最終系統。

    ? ? ? ? ? ? ? ????????? 迭代與增量模型區別:

    ?????????????????

    ?????????????????????????????????

    ? ? ? ? 4、螺旋模型【原型+瀑布】

    ? ? ? ? ? ? ? ? 兼顧了快速原型的迭代的特征以及瀑布模型的系統化與嚴格監控。螺旋模型最大的特點在于引入了其他模型不具備的風險分析
    ,使軟件在無法排除重大風險時有機會停止,以減小損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑。螺旋模型更適合大型的昂貴的系統級的軟件應用。

    ?????????????????

    ????????????????

    (1)制定計劃:確定目標,選定實施方案,弄清項目開發的限制條件;

    (2)風險分析:分析評估所選方案,考慮如何識別和消除風險;

    (3)實施工程:實施軟件開發和驗證;

    (4)客戶評估:評價開發工作,提出修正建議,制定下一步計劃。

    ? ? ? ? 5、構件組裝模型/基于構件的開發方法

    ? ? ? ? ? ? ? ? 【優點】易擴展、易重用、降低成本、安排任務更靈活。

    ? ? ? ? ? ? ? ? 【缺點】構件設計要求經驗豐富的架構師、設計不好的構件難重用、強調重用可能犧牲其他指標(如性能)、第三方構件質量難控制。

    ? ? ? ? ? ? ? ? 【示例】方艙醫院、樂高積木

    ????????????????構件 --> 服務 --> 微服務(一種標準化程度很高的構件)

    ????????????????

    ? ? ? ? ? ? ? ? 基于構件的軟件工程(CBSE):

    ? ? ? ? ? ? ? ? ? ? ? ? CBSE體現了【購買而不是重新構造】的哲學。

    ? ? ? ? ? ? ? ? ? ? ? ? 【CBSE構件應該具備的特征】:

    ? ? ? ? ? ? ? ? ? ? ? ? (1)可組裝性:所有外部交互必須通過公開定義的接口進行。

    ? ? ? ? ? ? ? ? ? ? ? ? (2)可部署性:構件總是二進制形式的,能作為一個獨立實體在平臺上運行。

    ? ? ? ? ? ? ? ? ? ? ? ? (3)文檔化:用戶根據文檔來判斷構件是否滿足要求。

    ? ? ? ? ? ? ? ? ? ? ? ? (4)獨立性:可以在無其他特殊構件的情況下進行組裝和部署。

    ? ? ? ? ? ? ? ? ? ? ? ? (5)標準化:符合某種標準化的構件模型。

    ? ? ? ? ? ? ? ? ? ? ? ? 【構件的組裝】:

    ? ? ? ? ? ? ? ? ? ? ? ? (1)順序組裝:按順序調用已經存在的構件,可以用兩個已經存在的構件來創造一個新的構件。

    ? ? ? ? ? ? ? ? ? ? ? ? (2)層次組裝:被調用構件的 ”提供“ 接口必須和調用構件的 ”請求“ 接口兼容。

    ? ? ? ? ? ? ? ? ? ? ? ? (3)疊加組裝:多個構件合并成新構件,新構件整合原構件的功能,對外提供新的接口。

    ? ? ? ? 6、快速應用開發RAD【瀑布+構件組裝】????????????????

    ? ? ?

    ? ? ? ? 7、統一過程/統一開發方法

    ????????????????

    ? ? ? ? ? ? ? ? 初始:(1)定義最終產品視圖和業務模型(2)確定系統范圍

    ? ? ? ? ? ? ? ? 細化:(1)設計及確定系統架構(2)制定工作計劃及資源要求

    ? ? ? ? ? ? ? ? 構造:(1)開發剩余構件和應用程序功能,把這些構件集成為產品,并進行詳細測試

    ? ? ? ? ? ? ? ? 移交:(1)確保軟件對最終用戶是可用的,進行β3測試,制作產品發布版本

    ?

    ? ? ? ? 8、敏捷開發方法

    ? ? ? ? ? ? ? ? 1、極限編程(XP):價值觀【交流、樸素、反饋、勇氣】、近螺旋式的開發方法。

    ? ? ? ? ? ? ? ? 2、水晶方法:提倡 “機動性” 的方法,擁有對不用類型項目非常有效的敏捷過程。

    ? ? ? ? ? ? ? ? 3、迭代式增量軟件開發過程(SCRUM):側重于項目管理。

    ? ? ? ? ? ? ? ? 4、特征驅動開發方法(FDD):認為有效的軟件開發需要3要素【人、過程、技術】。定義了6種關鍵的項目角色:
    項目經理、首席架構師、開發經理、主程序員、程序員和領域專家。

    ? ? ? ? ? ? ? ? 5、開放式源碼:程序開發人員在地域上分布很廣【其他方法強調集中辦公】。

    ? ? ? ? ? ? ? ? 6、自適應軟件開發(ASD):其核心是三個非線性的、重疊的開發階段:猜測、合作與學習。

    ? ? ? ? ? ? ? ? 7、動態系統開發方法(DSDM):倡導以業務為核心。

    ? ? ? ? ? ? ? ? 敏捷宣言:

    ? ? ? ? ? ? ? ? ? ? ? ? (1)個體和交互勝過過程和工具(2)可工作的軟件勝過大量的文檔

    ? ? ? ? ? ? ? ? ? ? ? ? (3)客戶合作勝過合同談判(4)響應變化勝過遵循計劃

    ? ? ? ? ? ? ? ? 敏捷方法 - XP?(極限編程):

    ? ? ? ? ? ? ? ? ? ? ? ? 4大價值觀:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)溝通【加強面對面溝通】(2)簡單【不過度設計】

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)反饋【及時反饋】(4)勇氣【接受變更的勇氣】

    ? ? ? ? ? ? ? ? ? ? ? ? 12條過程實踐規則:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)簡單設計(2)測試驅動(3)代碼重構(4)結對編程

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)持續集成(6)現場客戶(7)發行版本小型化(8)系統隱喻

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (9)代碼集體所有制(10)規劃策略(11)規劃代碼(12)40小時工作制

    ? ? ? ? ? ? ? ? 敏捷方法 - SCRUM(迭代式增量軟件開發過程):

    ????????????????Scrum的工作流程包括以下幾個步驟:????????????
    ????????????????????????1、產品負責人確定產品需求和優先級,將它們整理成一個產品待辦列表。
    ????????????????????????2、Scrum Master和開發團隊一起參加迭代計劃會議,確定下一個迭代的目標和計劃。
    ????????????????????????3、在迭代周期內,開發團隊每日進行短暫的站立會議,交流進展和遇到的問題。
    ????????????????????????4、在迭代開發結束時,開發團隊進行回顧會議,評估完成的工作和改進方法。
    ????????????????????????5、根據產品待辦列表,確定下一個迭代的目標和計劃,開始新的迭代周期。

    ????????????????Scrum的優勢,
    ????????????????????????1、更快的交付:通過迭代和增量的方法,團隊可以更快地交付高質量的成果。
    ? ? ? ? ? ? ? ? ? ? ? ? 2、更好的合作:Scrum鼓勵團隊成員之間的互動和交流,促進了更好的合作和協作。
    ? ? ? ? ? ? ? ? ? ? ? ? 3、更好的控制:Scrum的固定時間和可視化進度可以幫助團隊更好地控制項目進度。
    ? ? ? ? ? ? ? ? ? ? ? ? 4、更好的風險管理:Scrum的迭代式方法可以幫助團隊更好地管理風險和問題。?

    二、逆向工程? ? ???

    ? ? ? ? ?與逆向工程相關的概念有重構、設計恢復、再工程和正向工程。

    ? ? ? ? (1)重構/重組(Restructuring):重構是指在【同一抽象級別】
    上【轉換系統描述形式】。是對源代碼、數據進行修改,使其易于修改和維護,以適應將來的變更。

    ? ? ? ? (2)設計恢復(Design Recovery):設計恢復是指借助工具從已有程序中抽象出有關數據設計、總體結構設計和過程設計等方面信息。

    ? ? ? ? (3)逆向工程(Reverse Engineering):逆向工程是分析程序,力圖在比源代碼更高抽象層次上建立程序的表示過程,
    逆向工程是設計的恢復過程。

    ? ? ? ? (4)正向工程(Forward Engineering):正向工程是指不僅從現有系統中恢復設計信息,
    而且使用該信息去改變或重構現有系統,以改善其整體質量。

    ? ? ? ? (5)再工程/重構工程(Re-engineering):再工程是對現有系統的重新開發過程,包括逆向工程、新需求的考慮過程和正向工程三個步驟。

    三、凈室軟件工程

    ? ? ? ? 屬于形式化方法,數學理論為基礎,以驗證為導向,而不是測試。

    ? ? ? ? 1、凈室即無塵室、潔凈室。也就是一個受控污染級別的環境。

    ? ? ? ? 2、使用盒結構規約(或形式化方法)進行分析和設計建模,并且強調將正確性驗證,而不是測試,作為發現和消除錯誤的主要機制。

    ? ? ? ? 3、使用統計的測試來獲取認證被交付的軟件的可開行所必需的出錯率信息。

    ? ? ? 【技術手段】

    ? ? ? ? ? ? ? ? 1、統計過程控制下的增量開發:控制迭代

    ? ? ? ? ? ? ? ? 2、基于函數的規范和設計:盒子結構

    ????????????????????????定義三種抽象層次:行為視圖(黑盒)-> 有限狀態機視圖(狀態盒) -> 過程視圖(明盒)

    ? ? ? ? ? ? ? ? 3、正確性驗證:凈室工程核心。

    ? ? ? ? ? ? ? ? 4、統計測試和軟件認證:使用統計學原理,總體太大時必須采用抽樣方法。

    ? ? ? ? ?【缺點】

    ? ? ? ? ? ? ? ? 1、太理論化,正確性驗證的步驟比較困難且耗時。

    ? ? ? ? ? ? ? ? 2、開發小組不進行傳統的模塊測試,這是不現實的。

    ? ? ? ? ? ? ? ? 3、脫胎于傳統軟件工程。不可避免帶有傳統軟件工程的一些弊端。

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频