哈工大软件过程与工具
12.23 快考試了,要開始復習了。這學期學分績還是比較重要的。加油,奧力給 一給洛!!
大綱:
1. 軟件過程核心思想
- 軟件工程的兩個映射
- 軟件工程所關注的對象
-
軟件工程所關注的目標
-
軟件工程的核心思想:
分治,復用,折中,演化
軟件過程模型
1. 瀑布模型
2. 增量模型
3.演化模型
快速原型法:
包括拋棄式原型和演化式原型
螺旋式模型
敏捷方法
極限編程:一種應用最廣泛的敏捷開發模型
敏捷模型與其它模型的分析
軟件項目管理
軟件開發團隊的組織方式
一窩蜂模式:沒有明確分工,存活的時間一般都不長
**主治醫生模式:**一個人帶著其它人干
明星模式:
社區模式:linux操作系統的社區
交響樂團模式:門類齊全,各司其職
爵士樂模式::
功能團隊模式:
官僚模式:
產品結構分解:
項目管理里通常使用產品結構分解作為產品分解的工具
產出物:項目結束時需要提交的最終產品,在項目之初就可以準確預計
項目關注的四方面:
范圍,時間,成本,質量
項目管理的主要任務:
可行性分析,進度安排,分線管理,質量管理,項目跟蹤與控制
可行性分析與估算:
在項目開始之前,至少i要預估:
需要多少工作量
需要多少時間
需要多少人員
從而得出該項目是否可行
確定范圍:
要交付給最終用戶的功能和特性,輸入輸出數據,用戶界面,系統的性能,約束條件,接口和可靠性,期望的時間,目標成本。
可行性分析:
技術可行性,經濟可行性,時間可行性,資源可行性
項目進度計劃與監控:
軟件演化與配置管理
軟件演化的處理策略:
軟件維護:為了修改軟件缺陷或新增功能而對整個軟件進行的變更
軟件再工程:為了避免軟件退化而對軟件的一部分進行重新設計,編碼和測試
前者的力度比后者更小
軟件維護的類型:
糾錯性維護
適應性維護
完善性維護
預防性維護
完善性維護的比重最大,大部分是加強軟件,而不是糾錯
軟件維護的內容:
程序維護
數據維護
硬件維護
軟件配置管理SCM:
軟件配置項SCI:
計算機程序
描述計算機程序的文檔
數據
基線:軟件開發過程中的里程碑
配置管理數據庫:用于保存軟件相關的所有配置項的信息以及配置項之間關系的數據庫
持續集成:
敏捷開發的一項重要實踐,自動化地構建,不是等到最后再做集成測試,而是每天都做
減少重復過程:使用自動化來完成
git與GitHub:
本地版本控制系統:采用簡單的數據庫或文件系統來記錄本地文件的歷次更新差異
集中化的版本控制系統:
有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的開發者通過客戶端連到這臺服務器,取出最新的文件或者提交更新
缺陷:單點故障,可靠性問題
分布式版本控制系統:
客戶端并不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來
每一次的提取操作,實際上都是一次對代碼倉庫的完整備份
git的基本思想:
git中文件的三種狀態:已提交,已修改,已暫存
git中管理項目的三個工作區域:
倉庫:git目錄
工作目錄:本地目錄
暫存區域:本質上就是一個文件,保存了下次將要提交的文件列表信息
git基本工作流程:
1.在工作目錄中修改某些文件
2.對修改后的文件進行快照,然后保存在暫存區域
3.提交更新,將保存在暫存區域的文件快照永久轉儲到git目錄中
基本git指令:
git+
addaddadd:告訴git對這些文件進行跟蹤,然后提交
commitcommitcommit
mergemergemerge
statusstatusstatus:文件狀態
diffdiffdiff:修改了哪些地方
rmrmrm:刪除某個文件
resetresetreset:回滾
logloglog:git查詢工具
commit?amendcommit -amendcommit?amend:撤銷上一次修改,形成新的提交,本質上合并暫存區的修改和最近依次的修改
git供一個使用暫存區域的方式,只要在提交的時候,給git commit加上-a選項。git就會自動把所有已經跟蹤過的文件暫存起來一并提交,從而跳過git add
git checkout head將最后一次提交的結果復制到工作目錄和暫存區,丟棄本地修改
git遠程倉庫指令
git+
clonecloneclone:克隆
remoteremoteremote:獲取當前配置的所有遠程倉庫
remote+rm+pbremote +rm+pbremote+rm+pb:從本地移除遠程倉庫
rename+pb+pb1rename+pb+pb1rename+pb+pb1:將遠程倉庫重命名
fetchfetchfetch:將遠程倉庫同步到本地
pull=fetch+mergepull=fetch+mergepull=fetch+merge慎用
pushpushpush:推送
git分支命令:
git -branch:列出當前所有分支
git branch(name)在當前commit對象上新建一個分支指針
git使用一個叫做head的指針來獲知你當前在哪個分支上工作
要切換到其它分支,使用git checkout
git branch -b創建一個新的分支并立即切換過去
git branch -d:刪除一個分支
git log -decorate:查看當前各個分支所指的commit對象
git merge (name):將該分支合并到當前分支
合并分支的本質:
分支的衍合/變基
git rebase
merge和rebase的區別:
merge把兩個父分支合并進行一次提交,提交歷史不是線性的
rebase在當前分支上重演另一個分支的歷史,提交歷史是線性的
利用分支進行開發的流程:
1.長期分支:
2.特性分支:
創建特性分支,在提交了若干更新之后,把他們合并到主干分支,然后刪除,從而支持迅速且完全的進行語境切換
遠程分支:
遠程倉庫中分支的索引
遠程分支只能看,不能修改
本地分支<–>遠程分支:
push:推送本地分支至遠程
git push [remote] [branch]
fetch:將遠程分支同步到本地
git fetch [remote] [branch]
跟蹤遠程分支:
刪除遠程分支:
UML及其建模工具
模型及其介紹:
模型就是現實的簡單化
軟件系統用對象(類)作為其構造單元
視圖是表達系統某一方面特征的UML建模元素的子集,分為:
用例視圖
邏輯視圖
進程視圖
實現視圖
部署視圖
UML中的模型圖:
類圖
對象圖
用例圖
時序圖
協作圖
狀態圖
活動圖
組件圖
部署圖
包圖
事物:
結構事物:類,接口,協作,用例,活動類,組件,節點
行為事物:
分組事物
注釋事物
UML中的關系
關聯
依賴
泛化
實現
聚合
用例圖:
用例圖主要包含下面六個元素:
參與者
用例
關聯關系:
表示參與者與用例之間的關系
包含關系
一個用例可以簡單的包含其它用例具有的行為
包含用例執行,則被包含用例必須執行
include的箭頭是包含的指向被包含的
擴展關系
基礎用例被這姓時,一般不會涉及到擴展用例,只有當特定的條件發生,擴展用例才可能執行
extend用例是擴展用例指向原用例
泛化關系
一般與特殊的關系
示例:
要根據不同的系統確定系統的邊界:
用例的粒度:
活動圖:
活動圖元素:
動作狀態:
動作狀態是指原子的,不可中斷的動作
活動狀態:
用于表達狀態機中的非原子 的運行
可以分解成其它子活動或者動作狀態
內部狀態可以用另一個活動圖來表示
開始點:
結束點:
整個活動的結束
子流程的結束:
分支:
分叉:
泳道:
實例:
圖書館館員活動圖:
類圖/對象圖:
描述類。接口及他們之間關系的圖
屬性的可見性:
公有public:+
私有private:-
protected:#
package:~
類之間的關系:
依賴關系:表示兩個或多個模型元素之間語義上的關系
泛化關系
存在于一般元素和特殊元素之間的分類關系
關聯關系
指明事物的對象之間的聯系
聚合關系:
組合關系:
實現關系
實例
pornhub
軟件需求與需求獲取
軟件需求:
一種清晰簡潔無二義性的方式,描述用戶對目標軟件需求的期望,是在開發過程中對系統的約束
需求的分類:
業務需求:
客戶對于系統的高層次目標要求,定義了項目的遠景和范疇
用戶需求:
從用戶角度描述系統的功能型需求和非功能性需求,只涉及系統的外部行為而不涉及內部特性
功能需求:
系統應該提供的功能或服務,通常涉及用戶或外部系統與該系統之間的交互,不考慮系統內部的實現細節
非功能性需求:
從各個角度對系統的約束和限制,反應了對軟件系統質量和性能的額外要求
約束條件:系統設計和實現時必須滿足的限制條件:
業務規則:對某些功能的可執行性或內部執行邏輯的一些限定條件:
外部接口需求:
好的需求應具備的特征:
完整性:描述清楚
正確性
可行性
必要性
劃分優先級
無二義性
可驗證性
需求工程:應用技術確定客戶需求,幫助分析人員理解問題定義目標
需求開發所包含的活動
1)需求獲取
對用戶進行分類
聆聽用戶需求
分析整理用戶需求
形成文檔化描述
簽字確認
2)需求分析
定義邊界
建立原型
分析可行性
確定優先級
建立模型
創建數據字典
3)需求規格說明
4)需求驗證
5)需求管理
需求獲取方法:
收集現有書面資料
面對面訪談
需求研討會
現場觀察/體驗
頭腦風暴:自由暢談,禁止批評,追求數量,有一名主持人,2名記錄員
會后:修建,分組,排序
適用場合:產品型系統,需要具有創新性特征,尚投放市場,無明確的用戶
面向對象的分析
分析類的類型:
實體類:表示系統存儲和管理的持久性信息
必須存儲的信息及其相關行為
邊界類:表示參與者與系統之間的交互
用戶界面,系統接口,設備接口
控制類:表示系統在運行過程中的業務控制邏輯
調度其他類來完成具體的任務
總結
以上是生活随笔為你收集整理的哈工大软件过程与工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指定服务器不存在或访问被拒绝访问,SQL
- 下一篇: [转]文本相似性算法:simhash/m