軟件工程(上)

目錄

軟件過程模型(軟件開發模型)

瀑布模型

原型模型

V模型

構件組裝模型

螺旋模型(原型+瀑布)

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

快速應用開發模型(RAD)

統一過程(UP)/統一開發方法

敏捷開發方法

敏捷方法-xp

敏捷方法-SCRUM

極限編程 -xp

水晶方法

SCRUM

特征驅動開發方法(FDD)

開放式源碼

ASD方法

動態系統開發方法(DSDM)

逆向工程

凈室軟件工程


軟件過程模型(軟件開發模型)

????????軟件過程模型也叫軟件開發模型,是我們進行軟件開發的時候需要遵循的一些思想和規范

瀑布模型

特點:嚴格區分階段,每個階段因果關系緊密相連,但是只適合需求明確的項目

缺點:

軟件需求完整性、正確性很難確定

嚴格串行化、很長時間才能看到結果

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

原型模型

原型的思想就是構造一個簡易系統,由他來獲取需求。原型模式我們一般用在需求分析階段

V模型

這個模式是強調測試貫穿始終的開發模型。

構件組裝模型

優點:

容易擴展、重用、降低成本、安排任務更靈活

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

螺旋模型(原型+瀑布)

以快速原型為基礎+瀑布模型,這個模型考慮了風險問題。

四個關鍵字:目標設定、風險分析、評審、開發和有效性驗證

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

它該具備的特征:

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

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

文檔化:用戶根據文檔來判斷構件是否滿足需求

獨立性:可以在沒有其他特殊構件的情況下進行組裝和部署

標準化:符合某種標準化的構件模型

構件的組裝:

順序組裝:按照順序調用已經存在的構件、可用兩個已經有的構件來創造一個新的構件

層次組裝:被調用構件的接口和調用構件的請求接口必須兼容

疊加組裝:多個構件合并形成新構件、新構件整合原構件的功能、對外提供新的接口

快速應用開發模型(RAD)

多個模型拼裝成的新的模型,瀑布模型有標準的開發流程、CBSD有構件的支撐。

統一過程(UP)/統一開發方法

主要用在大型軟件開發應用里面

核心特點:用例驅動、以架構為中心、迭代和增量

四大階段

初始:定義產品的業務模型、確定系統的范圍

細化:設計及確定系統架構、制定工作計劃以及資源要求

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

移交:確保軟件對最終客戶是可用的,進行測試、制作產品的發布版本.

九大核心工作流

  • 業務建模
  • 需求
  • 分析和設計
  • 編碼實現
  • 測試
  • 部署
  • 配置和變更管理
  • 項目管理
  • 環境

敏捷開發方法

是通過迭代而來的

最開始是沒有開發方法的,沒有順序、不可空

到了一定的時間出現了傳統軟件開發方法:預設姓的、以開發過程為本、整體分階段

最后才出現了敏捷方法:適應性的,以人為本、增量迭代、小不快跑、適合小型項目

敏捷宣言

  • 個體和交互勝過過程和工具,強調了人的重要性
  • 可工作的軟件勝過大量的文檔
  • 客戶合作勝過合同談判
  • 響應變化勝過遵循計劃
敏捷方法-xp

四大價值觀:溝通、簡單、反饋、勇氣

12條過程實踐規則

敏捷方法-SCRUM

極限編程 -xp

價值觀【交流、樸素、反饋、勇氣】、近螺旋式的開發方法

水晶方法

提倡機動性的方法,擁有對不同類型項目非常有效的敏捷過程

SCRUM

側重于項目管理

特征驅動開發方法(FDD)

這個方法認為有效的軟件開發需要3要素【人、過程、技術】定義了6種關鍵的項目角色:項目經理、首席架構設計師、開發經理、主程序員、程序員和領域專家

開放式源碼

程序開發人員在地域上分部很廣

ASD方法

核心就是三個非線性的、重疊的開發階段:猜測、合作和學習

動態系統開發方法(DSDM)

倡導以業務為核心

逆向工程

實現級:包括程序的抽象語法樹、符號表、過程的設計表示,這個是最接近代碼層面的

結構級:包括反映程序分量之間相互依賴關系的信息、例如:調用圖、結構圖、程序和數據結構

功能級:包括反映程序段功能及程序段之間的關系的信息,例如數據和控制流模型

領域級:包括反映程序分量或程序諸實體與應用領域概念之間對應的關系的信息,例如實體關系模型

與逆向工程相關的概念是:重構、設計恢復、再工程、正向工程

重構:在同一抽象級別上轉換系統描述形式

設計恢復:借助工具從已有程序中抽象出有關數據設計、總計結構設計和過程設計等方面的信息

再工程:對現有系統的重新開發、包括逆向工程、新需求的考慮過程和正向過程的三個步驟

正向工程:不僅從現有的系統中恢復設計信息、而且使用該信息去改變或重構現有系統、以改善他的整體質量。

凈室軟件工程

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

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

使用統計的測試來獲取認證被交付的軟件的可靠性所必需的出錯率信息。

技術手段主要四個方面

  • 統計過程控制下的增量式開發:控制迭代
  • 基于函數的規范和設計:盒子結構:定義三種抽象層次:行為視圖(黑盒)——>有限狀態機視圖(狀態盒)——>過程視圖(明盒
  • 正確性驗證:凈室工程的核心
  • 統計測試和軟件認證使用統計學原理、總體太大時必須采用抽樣方法

缺點:

  • 太理論化,正確性驗證的步驟比較困難和耗時間
  • 開發小組不進行傳統的模塊測試。這是不現實的
  • 脫胎于傳統軟件工程、不可避免帶有傳統軟件工程的一些弊端

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43116.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux學習看這一篇就夠了,超超超牛的Linux基礎入門

引言 小伙伴們,不管是學習c還是學習其他語言在我們學的路上都繞不過操作系統,而且,老生常談的Linux更是每個計算機人的必修,那么我們對Linux的了解可能只是從別人那聽到的簡單的這個系統很牛,巴拉巴拉的,但…

大模型日報 2024-07-08

大模型日報 2024-07-08 大模型資訊 Anthropic CEO:大模型訓練成本暴漲,2027年將達1000億美元! Anthropic首席執行官表示,當前AI模型訓練成本是10億美元,未來三年,這個數字可能會上升到100億美元甚至1000億美…

GitLab管理員常用配置及設置匯總

? 之前在 虛擬機Ubuntu 22.04上搭建GitLab操作步驟 上介紹了在Ubuntu 22.04上如何搭建社區版的GitLab,這里整理下作為GitLab管理員時在搭建完GitLab CE后,如何對其進行配置或設置 更改倉庫存儲位置:切換到root用戶下操作 默認存放位置&…

SSL 證書

自動獲取 Lets Encrypt 免費證書 (適用于 Linux 系統) 安裝 Certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx # Nginx 服務器 sudo apt-get install certbot python3-certbot-apache # Apache 服務器 獲取和安裝證…

小米rdemi紅米ax3000t刷機 20240707最新配套完整程序整理合集

小米rdemi紅米ax3000t刷機程序地址: https://www.123pan.com/s/LA1bVv-EOzVv.html 小米路由器SSH密碼計算器 https://www.1234f.com/fuwu/ax3000t/ 最新更新地址:https://www.1234f.com/fuwu/openwrt/ 依次輸入如下命令: curl -X POST h…

Leetcode 295.數據流的中位數

295.數據流的中位數 問題描述 中位數是有序整數列表中的中間值。如果列表的大小是偶數,則沒有中間值,中位數是兩個中間值的平均值。 例如 arr [2,3,4] 的中位數是 3 。例如 arr [2,3] 的中位數是 (2 3) / 2 2.5 。 實現 MedianFinder 類: Media…

算法013:水果成籃

水果成籃. - 備戰技術面試?力扣提供海量技術面試資源,幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/fruit-into-baskets/ 這道題題目很長,仔細閱讀過后,我們其實可以簡化成&#xff…

MySQL 9.0新特性:向量存儲

MySQL 9.0 正式版已經發布,其中一個亮點就是向量(VECTOR)數據類型的支持,本文給大家詳細介紹一下這個新功能。 向量類型 MySQL 9.0 增加了一個新的向量數據類型:VECTOR。它是一種可以存儲 N 個數據項的數據結構&…

Redis Stream:實時數據流的處理與存儲

Redis Stream:實時數據流的處理與存儲 引言 在當今數據驅動的世界中,實時數據處理和存儲成為了許多應用的核心需求。Redis Stream作為一種新興的數據結構,為Redis帶來了強大的流處理能力。本文將深入探討Redis Stream的特點、使用場景以及如何高效地利用它來處理實時數據流…

聚焦數字創新,定義影像未來

國際數字影像產業園在明確產業定位與發展方向時,應聚焦于數字影像、文創、媒體等新興產業領域,以技術創新為核心動力、產業升級為保障、市場拓展為途徑、國際化發展為方向,推動園區的持續健康發展。 作為園區的核心產業,數字影像產…

python socks5代理的使用

需要安裝依賴 1、解決方法1 In order to make requests use socks proxy, you need to install it with it’s dependency. pip install requests[socks]2、解決方法2 pip install PySocks

第二證券股市知識:股票填權是怎么回事?利好還是利空?

1、股票填權的含義 股票填權是指在除權除息之后的一段時刻內,假設多數投資者看好該個股,股票的價格超過除權除息的基準價就叫做填權。上市公司假設能持續分紅,就會向市場傳遞積極信號,招引更多投資者買入,越來越多的投…

使用Livox-Mid360激光雷達,復現FAST_LIO(保姆級教程)

前面我已經完成了mid360激光雷達的驅動安裝,octomap的復現,昨天我去把這倆在正式環境中實測了一下,效果不好,走廊轉角沒建出來,我查了一下,應該是TF的原因,但這部分我還不太懂,看到有…

云計算【第一階段(28)】DNS域名解析服務

一、DNS解析的定義與作用 1.1、DNS解析的定義 DNS解析(Domain Name System Resolution)是互聯網服務中的一個核心環節,它負責將用戶容易記住的域名轉換成網絡設備能夠識別和使用的IP地址。一般來講域名比 IP 地址更加的有含義、也更容易記住…

2024世界人工智能大會:deepin引領AI與操作系統融合新時代

內容來源:deepin(深度)社區 7月4日,WAIC 2024在上海拉開帷幕。大會圍繞核心技術、智能終端、應用賦能三大板塊,聚焦大模型、算力、機器人、自動駕駛等重點領域,集中展示一批“人工智能”創新應用最新成果。…

【web前端HTML+CSS+JS】--- JS學習筆記03

一、JS介紹 可以在前端頁面上進行邏輯處理,來解決表單的驗證等問題,提升效率,直接在前端提示問題,減少服務器壓力 應用1:可以做靜態驗證和動態驗證(進行異步請求) 應用2:可以解析后…

monad理解

每個學習monad的人都要寫一份自己理解的monad。然后還是包括自己沒人能看到自己在寫啥,而且大部分寫的還是錯誤的。 距離學習monad有接近2周了,已經挺模糊了。 monad我理解有兩個基本作用: 1. 能夠對全部的返回值做鏈式調用。只能封裝成mona…

學習數據庫2

在數據庫中創建一個表student,用于存儲學生信息 查看建表結果 向student表中添加一條新記錄 記錄中id字段的值為1,name字段的值為"monkey",grade字段的值為98.5 并查看結果 向student表中添加多條新記錄 2,"bob"…

鴻蒙開發小案例(名片管理))

鴻蒙開發小案例(名片管理) 1、頁面效果1.1 初始頁面1.2 點擊名片展開1.3 點擊收藏1.4 點擊編輯按鈕 2、實現代碼2.1 DataModel.ets2.2 RandomUtil.ets2.3 ContactList.ets 1、頁面效果 1.1 初始頁面 1.2 點擊名片展開 1.3 點擊收藏 1.4 點擊編輯按鈕 2、…

百度、谷歌、必應收錄個人博客網站

主要是給各個搜索引擎提交你的sitemap文件,讓別人能搜到你博客的內容。 主題使用的Butterfly。 生成sitemap 安裝自動生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站點配置文件_config.yml…