日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件工程学习笔记概要

發布時間:2024/3/26 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程学习笔记概要 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、軟件工程的框架
?? 目標、過程、原則

?

1.目標:正確性、可用性、開銷合宜

??????? 軟件工程活動:

需求->設計->實現->確認->支持等活動

需求:問題分析:需求定義

需求分析:功能規約

設計:概要設計:整個軟件體系結構

詳細設計:程序員可用的模塊說明

實現:得到可執行的程序代碼

確認:貫穿于整個開發過程

支持:包括修改和完善

還有管理過程、支持過程、培訓過程等

?

2.軟件工程過程:

生產一個最終能滿足需求 且 達到工程目標 的軟件產品所需要的步驟。

開發過程、運作過程、維護過程

覆蓋需求、設計、實現、確認、支持及維護等活動

?

3.軟件工程的原則

圍繞工程設計、工程支持、工程管理在軟件開發過程中必須遵守的原則

1.選取適宜的開發范型

2.選取合適的設計方法

3.提供高質量的工程支持

4.重視開發過程的管理

?

二、開發模型

1.V模型:快速應用開發模型(RAD),開發和測試同時進行

?

需求分析:需求規格說明書

概要設計:搭建架構、表述各模塊功能、模塊接口、數據傳遞的實現等事務

詳細設計:達到偽代碼級別,包含數據庫設計說明

軟件編碼

單元測試:主要測試程序代碼,確保各個模塊正確編譯(具體到模塊、類、函數)

集成測試:主要測試各模塊間組合后功能實現情況,模塊接口連接是否成功、數據傳遞是否正確,主要目的是檢查軟件單元之間的接口是否正確

系統測試:按照軟件規格說明書中要求,測試功能性能是否符合需求,系統是否存在漏洞

驗收測試:用戶拿到軟件時,在使用現場按規格說明書做相應測試確定軟件達到效果

?

缺陷:

僅把測試過程當做編碼之后的一個階段,忽視了對需求分析、系統設計的驗證,需求的滿足情況到后期驗收測試才被驗證

解決思路:測試在軟件做需求分析時就有測試用例的跟蹤

?

適用范圍:

適用于一些傳統信息系統應用的開發,

而高風險高性能的系統、互聯網軟件或者難以具體模塊化的系統不適用,需要更強調迭代的開發模型或敏捷開發模型

?

2.瀑布模型:

?

階段間具有順序性和依賴性:

前一階段完成后一階段才能開始

前一階段輸出文本為后一階段的輸入文本

推遲實現的觀點

質量保證:每個階段必須交付合格的文檔;對文檔進行審核

?

缺點:開始時必須把需求做到最全,懼怕用戶測試中的反饋和需求變更

?

三、軟件生命周期(SDLC)

軟件的產生直到報廢的生命周期

1.瀑布型生命周期:

包括可行性分析與開發項計劃、需求分析、設計(概要和詳細)、編碼、測試、維護等階段

典型六階段:

1.問題的定義及規劃:主要確定軟件的開發目標及其可行性

2.需求分析:在確定軟件開發可行的情況下,對軟件需要實現的各個功能進行詳細分析。必須制定需求變更計劃來應對變化

3.軟件設計:主要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計、數據庫設計等

4.程序編碼:將軟件設計的結果轉換成計算機可運行的程序代碼。

5.軟件測試:整個測試過程分為單元測試、組裝測試、系統測試三階段;測試方法有白盒測試、黑盒測試兩種;應建立詳細測試計劃并按計劃進行測試

6.運行維護:持續時間最長的階段,包括糾錯性維護和改進型維護兩個方面

?

四、敏捷開發

以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發。軟件項目在構建初期被切分為多個子項目,并分別完成。此過程中軟件一直處于可使用狀態

宣言原則:

1.最重要,盡早、不斷交付有價值的軟件滿足客戶需求

2.能過駕馭變化,保持客戶競爭優勢

3.經常交付可以工作的軟件

4.業務人員與開發者朝夕相處

5.給開發者提供適宜的環境滿足他們的需要

6.相信開發者能夠完成任務

7.開發小組最有效率的信息傳達方式是面對面交流

8.可以工作的軟件是主要度量尺度

9.提倡可持續開發,各方應維持不變的節奏

10.對卓越技術與良好設計的不斷追求有助于提高敏捷性

11.盡可能減少工作量的藝術至關重要

12.最好的架構、需求和設計都源自于自我組織的團隊

13.每隔一段時間都要進行總結

?

五、高內聚低耦合

1.定義

內聚:描述模塊內的功能聯系,一個好的內聚模塊應當恰好做一件事

耦合:描述軟件結構中各模塊之間相互聯系的關系,耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數據

2.概念

耦合性(塊間聯系):模塊間的聯系越緊密,其耦合性越強,模塊間相互獨立性越差。模塊間相互獨立性取決于模塊間接口的復雜性、調用的方式及傳遞的信息

內聚性(塊內聯系):模塊功能強度的度量,模塊內部各個元素彼此結合的緊密程度。模塊內各元素聯系越緊密,內聚性越高。

高內聚:單一責任原則,一個模塊由相關性很強的代碼組成,只負責一項任務

低耦合:一個完整的系統,模塊與模塊之間盡可能的獨立存在

3.分類:

a.內容耦合:一個模塊直接訪問另個模塊的內容

b.公共耦合:一組模塊都訪問同一個全局數據結構

較松散的:模塊只是向公共數據環境輸入或取出數據

較緊密的:既輸入,又取出

c.外部耦合:一組模塊都訪問同一全局簡單變量,而不通過參數列表傳遞

d.控制耦合:模塊之間傳遞的不是數據信息而是控制信息,如標志、開關量等

e.標記耦合:調用模塊和被調用模塊之間傳遞數據結構而不是簡單數據,又稱特征耦合。參數名為標記,實際傳遞的地址

f.數據耦合:調用模塊和被調用模塊之間只傳遞簡單的數據項參數。相當于高級語言中的值傳遞

g.非直接耦合:兩個模塊之間沒有直接關系,他們之間的聯系完全是通過主模塊的控制和調用實現。耦合度最低

*設計原則:若模塊間必須存在耦合,應盡量使用數據耦合,少用控制耦合,慎用公共耦合并限制公共耦合的范圍,盡量避免內容耦合

?

內聚度由弱到強:

a.偶然內聚:一個模塊間各處理元素之間沒有任何聯系,只是偶然被湊到一起,又稱巧合內聚

b.邏輯內聚:把幾種相關的功能組合在一起,每次被調用時,由參數決定該模塊完成哪種功能

c.時間內聚:需要同時執行的動作組合到一起形成的模塊

d.過程內聚:模塊內處理元素是相關的,且必須按特定次序執行

e.通信內聚:模塊內各個組成部分都是用相同的數據結構或者產生相同的數據結構

f.順序內聚:模塊內前一個處理元素的輸出是后一個處理元素的輸入

g.功能內聚:模塊內各個組成部分全部都為完成同一個功能而存在,共同完成一個單一的功能,模塊不可再分。

*模塊劃分原則:一個模塊一個功能

總結

以上是生活随笔為你收集整理的软件工程学习笔记概要的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。