ps做網(wǎng)站首頁的尺寸渠道策略的四種方式
本博客地址:https://security.blog.csdn.net/article/details/136446772
一. 軟件工程
1、軟件危機(jī)。具體表現(xiàn)為:軟件開發(fā)進(jìn)度難以預(yù)測(cè)
、軟件開發(fā)成本難以控制
、軟件功能難以滿足用戶期望
、軟件質(zhì)量無法保證
、軟件難以維護(hù)
和軟件缺少適當(dāng)?shù)奈臋n資料
。
2、常見的軟件過程模型主要包括:瀑布模型
、原型模型
、螺旋模型
、敏捷模型
、軟件統(tǒng)一過程(RUP)模型
、軟件能力成熟度模型(CMM)
、軟件能力成熟度模型集成(CMMI)
3、瀑布模型是結(jié)構(gòu)化開發(fā)方法使用的軟件過程模型。其包括:需求分析
、系統(tǒng)設(shè)計(jì)
、程序設(shè)計(jì)
、編碼實(shí)現(xiàn)
、單元測(cè)試
、集成測(cè)試
、系統(tǒng)測(cè)試
、運(yùn)行維護(hù)
。瀑布模型的特點(diǎn)是:因果關(guān)系緊密相連,前一個(gè)階段工作的輸出結(jié)果是后一個(gè)階段工作的輸入
。缺點(diǎn)是:需求難以一次確定、變更的代價(jià)高、結(jié)果難以預(yù)見、各階段工作不能并行。
4、原型模型又稱快速原型
,是原型方法使用的生命周期模型。原型模型解決了瀑布模型需求難以一次確定、結(jié)果難以預(yù)見的缺點(diǎn)。原型模型有原型開發(fā)
和目標(biāo)軟件開發(fā)
兩個(gè)階段。
5、拋棄型原型
將原型作為需求確認(rèn)的手段,在需求確認(rèn)結(jié)束后就被拋棄不用,繼續(xù)用瀑布模型。演化性原型
在需求確認(rèn)結(jié)束后,不斷補(bǔ)充和完善原型,直至形成一個(gè)完整的產(chǎn)品。
6、螺旋模型
是在快速原型
的基礎(chǔ)上結(jié)合瀑布模型
擴(kuò)展而成。其將整個(gè)軟件開發(fā)流程分成多個(gè)階段,每一個(gè)階段都由目標(biāo)設(shè)定
、風(fēng)險(xiǎn)分析
、開發(fā)和有效性驗(yàn)證
、評(píng)審
4 部分組成。支持大型軟件開發(fā),適用于面向規(guī)格說明
、面向過程
和面向?qū)ο?/code>的軟件開發(fā)方法,強(qiáng)調(diào)其他模型忽視的
風(fēng)險(xiǎn)分析
。
7、敏捷模型
屬于敏捷方法使用的模型。主要有:極限編程(XP)
、水晶系列方法
、并列爭球法
、特征驅(qū)動(dòng)開發(fā)方法(FDD)
等。這些方法的特征如下:
● 極限編程(XP)
:高效、低風(fēng)險(xiǎn)、測(cè)試先行(先寫測(cè)試代碼,再編寫程序)。
● 水晶系列方法
:不同的項(xiàng)目,采用不同的策略。
● 并列爭球法
:該方法側(cè)重于項(xiàng)目管理。
● 特征驅(qū)動(dòng)開發(fā)方法
:該方法會(huì)將開發(fā)人員分類,分為指揮者(首席程序員)、類程序員等。
8、軟件統(tǒng)一過程(RUP)模型
中有 9 個(gè)核心工作流:業(yè)務(wù)建模
、需求
、分析與設(shè)計(jì)
、實(shí)現(xiàn)
、測(cè)試
、部署
、配置與變更管理
、項(xiàng)目管理
、環(huán)境
。RUP 的特點(diǎn)是:用例驅(qū)動(dòng)的
、以架構(gòu)為中心的
、迭代和增量的
軟件開發(fā)過程。
9、軟件統(tǒng)一過程(RUP)模型
用4+1
視圖模型來描述架構(gòu),4包括:邏輯視圖
、實(shí)現(xiàn)視圖
、進(jìn)程視圖
、部署視圖
。1包括:用例視圖
。
● 邏輯視圖:對(duì)應(yīng)最終用戶,常用類圖
、對(duì)象圖
、狀態(tài)圖
、協(xié)作圖
表示。
● 實(shí)現(xiàn)視圖:又稱為開發(fā)視圖,對(duì)應(yīng)程序員,通常包含包圖
和組件圖
。
● 進(jìn)程視圖:又叫過程視圖,對(duì)應(yīng)系統(tǒng)集成人員,常用活動(dòng)圖
表示。
● 部署視圖:又叫物理視圖,對(duì)應(yīng)系統(tǒng)工程師,常用部署圖
表示。
● 用例視圖:所有其他視圖都依靠用例視圖(場景)來指導(dǎo)它們,這就是將模型稱為4+1的原因。
10、軟件能力成熟度模型(CMM)是一個(gè)概念模型,模型框架和表示是剛性的,不能隨意改變,但模型的解釋和實(shí)現(xiàn)有一定彈性。
11、軟件能力成熟度模型集成(CMMI)是在 CMM 的基礎(chǔ)上發(fā)展而來的。它將軟件過程改進(jìn)的步驟組織成 5 個(gè)成熟度等級(jí):初始級(jí)
、已管理級(jí)
、已定義級(jí)
、量化管理級(jí)
、優(yōu)化級(jí)
。量化管理級(jí)
與已定義級(jí)
的區(qū)別是對(duì)過程性能的可預(yù)測(cè)
。
二. 需求工程
1、軟件需求包括 3 個(gè)不同的層次:業(yè)務(wù)需求、用戶需求、功能需求
2.需求工程(RE)是指應(yīng)用已證實(shí)有效的原理、方法,通過合適的工具和記號(hào),系統(tǒng)地描述待開發(fā)系統(tǒng)及其行為特征和相關(guān)約束。需求工程由需求獲取
、需求分析
、形成需求規(guī)格(或稱為需求文檔化)
、需求確認(rèn)與驗(yàn)證
、需求管理
5 個(gè)階段組成。
3、軟件需求規(guī)格說明書(SRS)具體包括功能需求
、非功能需求
和約束
。約束包括設(shè)計(jì)約束
和過程約束
。批準(zhǔn)的 SRS 是需求開發(fā)
和需求管理
之間的橋梁。
4、需求管理是一個(gè)對(duì)系統(tǒng)需求變更、了解和控制的過程,包括變更控制
、版本控制
、需求跟蹤
等活動(dòng)。
5、需求獲取是獲得系統(tǒng)必要的特征,或者是獲得用戶能接受的、系統(tǒng)必須滿足的約束。需求獲取的方法包括用戶面談
、需求專題討論會(huì)
、問卷調(diào)查
、現(xiàn)場觀察
、原型化方法
和頭腦風(fēng)暴法
等。需求獲取的基本步驟:
● 開發(fā)高層的業(yè)務(wù)模型。
● 定義項(xiàng)目范圍和高層需求。
● 識(shí)別用戶角色和用戶代表。
● 獲取具體的需求。
● 確定目標(biāo)系統(tǒng)的業(yè)務(wù)工作流。
● 需求整理與總結(jié)。
6、需求變更管理過程為:識(shí)別出問題
、問題分析和變更描述
、變更分析和成本計(jì)算
、變更實(shí)現(xiàn)
、修改后的需求
。
7、變更控制委員會(huì)(Change Control Board,CCB)
CCB 是決策機(jī)構(gòu),不是作業(yè)機(jī)構(gòu),通常 CCB 的工作是通過評(píng)審手段來決定項(xiàng)目是否能變更,但不提出變更方案。過程及操作步驟為:制定決策
、交流情況
、重新協(xié)商約定
。
8、需求跟蹤的目的是建立與維護(hù)需求-設(shè)計(jì)-編程-測(cè)試
之間的一致性,確保所有的工作成果符合用戶需求。需求跟蹤有正向跟蹤
和逆向跟蹤
兩種方式,合稱為雙向跟蹤
。不論采用何種跟蹤方式,都要建立與維護(hù)需求跟蹤矩陣
。
三. 系統(tǒng)分析與設(shè)計(jì)
1、結(jié)構(gòu)化方法又稱為面向功能的軟件開發(fā)方法
或面向數(shù)據(jù)流的軟件開發(fā)方法
。針對(duì)軟件生存周期各個(gè)不同的階段,有結(jié)構(gòu)化分析
、結(jié)構(gòu)化設(shè)計(jì)
和結(jié)構(gòu)化編程
等方法。
2、結(jié)構(gòu)化分析(SA)是利用圖形表達(dá)用戶需求中的功能需求,使用的手段主要有數(shù)據(jù)流圖(DFD)
、數(shù)據(jù)字典
、結(jié)構(gòu)化語言
、判定表
和判定樹
等。
● 數(shù)據(jù)流圖(DFD)由 4 種基本元素組成:數(shù)據(jù)流
、處理/加工
、數(shù)據(jù)存儲(chǔ)
和外部項(xiàng)
。
● 數(shù)據(jù)字典是一種標(biāo)記用戶可以訪問的數(shù)據(jù)項(xiàng)和元數(shù)據(jù)的目錄,是對(duì)系統(tǒng)中使用的所有數(shù)據(jù)元素定義的集合,包括數(shù)據(jù)項(xiàng)
、數(shù)據(jù)結(jié)構(gòu)
、數(shù)據(jù)流
、數(shù)據(jù)存儲(chǔ)
和處理過程
。
● 結(jié)構(gòu)化分析具體的建模過程及步驟為:明確目標(biāo)
、確定系統(tǒng)范圍
、建立頂層 DFD 圖
、構(gòu)建第一層 DFD 分解圖
、開發(fā) DFD 層次結(jié)構(gòu)圖
、檢查確認(rèn) DFD 圖
。DFD 圖需要滿足規(guī)則:父圖數(shù)據(jù)流必須在子圖中出現(xiàn)
;一個(gè)處理至少有一個(gè)輸入流和一個(gè)輸出流
;一個(gè)存儲(chǔ)必定有流入和流出
;一個(gè)數(shù)據(jù)流至少有一端是處理端
;模型表達(dá)的信息是全面的、完整的、正確的和一致的
。
3、結(jié)構(gòu)化設(shè)計(jì)(SD)是一種面向數(shù)據(jù)流的設(shè)計(jì)方法,SD 分為概要設(shè)計(jì)
和詳細(xì)設(shè)計(jì)
兩個(gè)階段,其中概要設(shè)計(jì)的主要任務(wù)是:確定軟件系統(tǒng)的結(jié)構(gòu),對(duì)系統(tǒng)進(jìn)行模塊劃分,確定每個(gè)模塊的功能、接口和模塊之間的調(diào)用關(guān)系
;詳細(xì)設(shè)計(jì)的主要任務(wù)是:為每個(gè)模塊設(shè)計(jì)實(shí)現(xiàn)的細(xì)節(jié)
。在 SD 中,模塊是實(shí)現(xiàn)功能的基本單位,一般具有功能
、邏輯
和狀態(tài)
3 個(gè)基本屬性。
4、耦合度從低到高:
耦合類型 | 描述 |
---|---|
非直接耦合 | 兩個(gè)模塊之間沒有直接關(guān)系,互相不依賴對(duì)方 |
數(shù)據(jù)耦合 | 一組模塊借助參數(shù)表傳遞簡單數(shù)據(jù) |
標(biāo)記耦合 | 一組模塊通過參數(shù)表傳遞記錄等復(fù)雜信息(數(shù)據(jù)結(jié)構(gòu)) |
控制耦合 | 模塊之間傳遞的信息中包含用于直接控制模塊內(nèi)部邏輯的信息 |
通信耦合 | 一組模塊共享了輸入或輸出 |
公共耦合 | 多個(gè)模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等 |
內(nèi)容耦合 | 一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù)、一個(gè)模塊不通過正常入口跳轉(zhuǎn)到另一個(gè)模塊的內(nèi)部、兩個(gè)模塊有一部分程序代碼重疊、一個(gè)模塊有多個(gè)入口等 |
5、內(nèi)聚度從高到低:
內(nèi)聚類型 | 描述 |
---|---|
功能內(nèi)聚 | 各個(gè)部分協(xié)同完成一個(gè)單一功能,缺一不可 |
順序內(nèi)聚 | 處理元素相關(guān),而且必須順序執(zhí)行,通常前一任務(wù)的輸出是后一任務(wù)的輸入 |
通信內(nèi)聚 | 所有處理元素集中在一個(gè)數(shù)據(jù)結(jié)構(gòu)的區(qū)域上 |
過程內(nèi)聚 | 處理元素相關(guān),而且必須按特定的次序執(zhí)行 |
時(shí)間內(nèi)聚 | 所包含的任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行 |
邏輯內(nèi)聚 | 完成邏輯上相關(guān)的一組任務(wù),互相存在調(diào)用關(guān)系 |
偶然內(nèi)聚 | 完成一組沒有關(guān)系或松散關(guān)系的任務(wù),或者僅僅代碼相似 |
6、概要設(shè)計(jì)使用系統(tǒng)結(jié)構(gòu)圖(SC)又稱為模塊結(jié)構(gòu)圖,反映了系統(tǒng)的總體結(jié)構(gòu)。詳細(xì)設(shè)計(jì)的主要任務(wù)是:設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)算法
、所需的局部數(shù)據(jù)結(jié)構(gòu)
。詳細(xì)設(shè)計(jì)的表示工具有:圖形工具
、表格工具
和語言工具
。圖形有:業(yè)務(wù)流圖
、程序流程圖
、問題分析圖(PAD)
、NS 流程圖
等。
7、結(jié)構(gòu)化編程(SP)通過順序
、分支
和循環(huán)
三種基本的控制結(jié)構(gòu)可以構(gòu)造出任何單入口單出口的程序。SP 強(qiáng)調(diào):自頂向下,逐步細(xì)化
;清晰第一,效率第二
;書寫規(guī)范,縮進(jìn)格式
;基本結(jié)構(gòu),組合而成
。P 原則:程序=(算法)+(數(shù)據(jù)結(jié)構(gòu))
。兩者分開設(shè)計(jì),以算法(函數(shù)或過程)為主。
8、數(shù)據(jù)庫設(shè)計(jì)(概念結(jié)構(gòu)設(shè)計(jì)部分)建立抽象的概念數(shù)據(jù)模型,通常采用實(shí)體-聯(lián)系圖(E-R 圖)
來表示。
9、面向?qū)ο蟮姆椒梢苑譃?#xff1a;面向?qū)ο蟮姆治龇椒?#xff08;OOA)
、面向?qū)ο笤O(shè)計(jì)方法(OOD)
、面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)
、數(shù)據(jù)持久化與數(shù)據(jù)庫
。
10、面向?qū)ο蟮姆治龇椒?#xff08;OOA)模型由 5 個(gè)層次(主題層、對(duì)象類層、結(jié)構(gòu)層、屬性層和服務(wù)層
)和 5 個(gè)活動(dòng)(標(biāo)識(shí)對(duì)象類、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù)
)組成。OOA 的基本原則有:抽象、封裝、繼承、分類、聚合、關(guān)聯(lián)、消息通信、粒度控制和行為分析
。OOA 的 5 個(gè)基本步驟:確定對(duì)象和類、確定結(jié)構(gòu)、確定主題、確定屬性、確定方法
。
11、面向?qū)ο笤O(shè)計(jì)方法(OOD)中,數(shù)據(jù)結(jié)構(gòu)
和在數(shù)據(jù)結(jié)構(gòu)上定義的操作算法
封裝在一個(gè)對(duì)象之中。類封裝了信息和行為,是具有相同屬性、方法和關(guān)系的對(duì)象集合的總稱。類可以分為 3 種類型:實(shí)體類
、控制類
、邊界類
12、面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)以對(duì)象為核心,該方法認(rèn)為程序由一系列對(duì)象組成。OOP 的基本特點(diǎn)有封裝
、繼承
和多態(tài)
。
13、在多層軟件設(shè)計(jì)和開發(fā)中采用持久層
專注于實(shí)現(xiàn)數(shù)據(jù)持久化,將對(duì)象持久化到關(guān)系數(shù)據(jù)庫中,需要進(jìn)行對(duì)象/關(guān)系的映射(ORM)
,目前主流的持久化技術(shù)框架包括Mybatis等
14、軟件重用是使用已有軟件產(chǎn)品來開發(fā)新的軟件系統(tǒng)的過程,分為水平式重用
和垂直式重用
兩種類型
15、逆向工程。抽象級(jí)別與逆向難度遞增:
級(jí)別 | 內(nèi)容 |
---|---|
實(shí)現(xiàn)級(jí) | 語法樹、符號(hào)表 |
結(jié)構(gòu)級(jí) | 程序分量間的關(guān)系,如調(diào)用圖 |
功能級(jí) | 功能和程序段之間的關(guān)系 |
領(lǐng)域級(jí) | 實(shí)體與應(yīng)用域之間的關(guān)系 |
四. 軟件測(cè)試分類
1、根據(jù)程序執(zhí)行狀態(tài)可分為:靜態(tài)測(cè)試(ST)
和動(dòng)態(tài)測(cè)試(DT)
。
2、根據(jù)是否關(guān)注具體實(shí)現(xiàn)和內(nèi)部結(jié)構(gòu)可分為:黑盒測(cè)試
、白盒測(cè)試
和灰盒測(cè)試
。
3、根據(jù)程序執(zhí)行的方式來分類可分為:人工測(cè)試(MT)
和自動(dòng)化測(cè)試(AT)
。
4、從階段上劃分,軟件測(cè)試可以分為:單元測(cè)試
、集成測(cè)試
、系統(tǒng)測(cè)試
和驗(yàn)收測(cè)試
。
5、其他測(cè)試還有AB 測(cè)試
、Web 測(cè)試
、鏈接測(cè)試
和表單測(cè)試
等。
五. 基于構(gòu)件的軟件工程
1、基于構(gòu)件的軟件工程(CBSE)是一種基于分布對(duì)象技術(shù)、強(qiáng)調(diào)通過可復(fù)用構(gòu)件設(shè)計(jì)與構(gòu)造軟件系統(tǒng)的軟件復(fù)用途徑。用于 CBSE 的構(gòu)件應(yīng)該具備以下特征:
● 可組裝型:所有外部交互必須通過公開定義的接口進(jìn)行。
● 可部署性:必須能作為一個(gè)獨(dú)立實(shí)體在提供其構(gòu)件模型實(shí)現(xiàn)的構(gòu)件平臺(tái)上運(yùn)行。
● 文檔化:構(gòu)件必須是完全文檔化的。
● 獨(dú)立性:構(gòu)件應(yīng)該是獨(dú)立的,如確實(shí)需要其他構(gòu)件提供服務(wù),則應(yīng)顯示聲明。
● 標(biāo)準(zhǔn)化:必須符合某種標(biāo)準(zhǔn)化的構(gòu)件模型。
2、構(gòu)件模型定義了構(gòu)件實(shí)現(xiàn)
、文檔化
以及開發(fā)標(biāo)準(zhǔn)
。目前主流的構(gòu)件模型是 Web Services 模型
、Sun 公司的 EJB 模型
和微軟的.NET 模型
。構(gòu)件模型包含了一些模型要素如接口
、使用信息
和部署信息
。構(gòu)件模型提供了一組被構(gòu)件使用的通用服務(wù),包括平臺(tái)服務(wù)
和支持服務(wù)
。
3、支持基于構(gòu)件組裝的軟件開發(fā)過程主要包括:
● 系統(tǒng)需求概覽。
● 識(shí)別候選構(gòu)件。
● 根據(jù)發(fā)現(xiàn)的構(gòu)件修改需求。
● 體系結(jié)構(gòu)設(shè)計(jì)。
● 構(gòu)件定制與適配。
● 組裝構(gòu)件,創(chuàng)建系統(tǒng)。
4、CBSE 過程與傳統(tǒng)的軟件開發(fā)過程的不同點(diǎn):
● 早期需要完整的需求,以便盡可能多地識(shí)別出可復(fù)用的構(gòu)件。
● 早期階段根據(jù)可利用的構(gòu)件來細(xì)化和修改需求以匹配 CBSE。
● 架構(gòu)設(shè)計(jì)完成后,可能需要修改構(gòu)件以適合功能和架構(gòu)的需求。
● 開發(fā)過程就是組裝構(gòu)件的過程,有時(shí)需要開發(fā)適配器。
● CBSE 中的架構(gòu)設(shè)計(jì)階段特別重要,決定和限制了可選構(gòu)件的范圍。
5、常見的構(gòu)件組裝有順序組裝
、層次組裝
和疊加組裝
3 種組裝方式。構(gòu)件組裝可能面臨接口不兼容的問題,常見的有參數(shù)不兼容
、操作不兼容
和操作不完備
3 種。這時(shí)需要編寫適配器構(gòu)件來解決不兼容的問題。
六、軟件項(xiàng)目管理
1、軟件進(jìn)度管理一般包括活動(dòng)定義
、活動(dòng)排序
、活動(dòng)資源估計(jì)
、活動(dòng)歷時(shí)估計(jì)
、制定進(jìn)度計(jì)劃
和進(jìn)度控制
6 個(gè)過程。
2、工作分解結(jié)構(gòu)(WBS)是把一個(gè)項(xiàng)目,按一定的原則分解成任務(wù),任務(wù)再分解成一項(xiàng)項(xiàng)工作,再把一項(xiàng)項(xiàng)工作分配到每個(gè)人的活動(dòng)中,直到分解不下去為止。
3、活動(dòng)定義是指確定完成項(xiàng)目的各個(gè)可交付成果所必須進(jìn)行的各項(xiàng)具體活動(dòng),還需要明確每個(gè)活動(dòng)的前驅(qū)、持續(xù)時(shí)間、必須完成日期、里程碑或可交付成果
。
4、任務(wù)活動(dòng)圖是項(xiàng)目進(jìn)度管理、項(xiàng)目成本管理等一系列項(xiàng)目管理活動(dòng)的基礎(chǔ),通常采用甘特圖等方式來展示和管理項(xiàng)目活動(dòng)。
5、軟件配置管理(SCM)是一種標(biāo)識(shí)、組織和控制修改的技術(shù)。SCM 的目的是:使錯(cuò)誤降為最小并最有效地提高生產(chǎn)效率
。SCM 的核心內(nèi)容包括版本控制
和變更控制
。
6、軟件質(zhì)量保證(SQA)的目的是:使軟件過程對(duì)于管理人員來說是可見的
。SQA 的主要任務(wù)是:
● SQA 審計(jì)與評(píng)審,包括對(duì)軟件工作產(chǎn)品、軟件工具和設(shè)備的審計(jì),評(píng)審開發(fā)組的行為符合預(yù)定的過程。
● SQA 報(bào)告。
● 處理不符合問題。
7、軟件質(zhì)量認(rèn)證,國內(nèi)軟件企業(yè)主要采用的是 ISO 9001
和 CMM
。
8、軟件風(fēng)險(xiǎn)管理的主要目標(biāo)是預(yù)防風(fēng)險(xiǎn)
和應(yīng)對(duì)發(fā)生的風(fēng)險(xiǎn)
。風(fēng)險(xiǎn)管理活動(dòng)可以分為:
● Bochm 把風(fēng)險(xiǎn)管理活動(dòng)分成風(fēng)險(xiǎn)估計(jì)
(風(fēng)險(xiǎn)辨識(shí)、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)排序)和風(fēng)險(xiǎn)控制
(風(fēng)險(xiǎn)管理計(jì)劃、風(fēng)險(xiǎn)處理、風(fēng)險(xiǎn)監(jiān)督)兩大階段。
● Charette 把風(fēng)險(xiǎn)分成分析
(辨識(shí)、估計(jì)、評(píng)價(jià))和管理
(計(jì)劃、控制、監(jiān)督)兩大階段。