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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

哈工大软件构造期末复习(根据老师复习提纲整理)

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 哈工大软件构造期末复习(根据老师复习提纲整理) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

軟構(gòu)期末復(fù)習(xí)1-3章

1.軟件構(gòu)造的多維度視圖及其劃分

大體上分為build-time和run-time兩大類,分別對應(yīng)視圖中的兩排。

在build-time中,又按照時(shí)刻和時(shí)期、代碼層面和成員層面區(qū)分開,總共分為上圖中9塊。需要記住此圖。畫紅色的地方是重點(diǎn)。

2.內(nèi)部/外部的質(zhì)量指標(biāo)

外部的質(zhì)量指標(biāo)有:正確性、健壯性、可擴(kuò)展性、可復(fù)用性等

  • 正確性:軟件產(chǎn)品執(zhí)行其規(guī)約定義的確切任務(wù)的能力
  • 健壯性:軟件系統(tǒng)對異常情況做出適當(dāng)反應(yīng)的能力
  • 可擴(kuò)展性:使軟件產(chǎn)品易于適應(yīng)規(guī)約的變化的能力
  • 可復(fù)用性:軟件中的各部分構(gòu)建其他不同應(yīng)用程序服務(wù)的能力

內(nèi)部的質(zhì)量指標(biāo)有:代碼行數(shù)、低耦合、可讀性、可理解性、清潔度等

3.軟件配置管理SCM與版本控制系統(tǒng)VCS

3.1 軟件配置管理(Software Configuration Management)

SCM是一種監(jiān)視軟件中更新操作的系統(tǒng),軟件的任何組成部分(源代碼、數(shù)據(jù)、文檔、硬件、各種環(huán)境)都可以隨軟件生命周期的時(shí)間而更新,因此可以被記錄下來。

其核心是對于版本控制和基線的確立。其中,基線是指軟件持續(xù)變化過程中的“穩(wěn)定時(shí)刻”,如對外發(fā)行版本。

3.2 版本控制系統(tǒng)(Version Control System )

版本是為軟件的任一特定時(shí)刻(Moment)的形態(tài)指派一個(gè)唯一的編號(hào),作為在在整個(gè)開發(fā)過程中的“身份標(biāo)識(shí)”,而版本控制就是對每次更改的不同版本進(jìn)行記錄,保留備用。

版本控制系統(tǒng)分為本地版本控制系統(tǒng)、集中式版本控制系統(tǒng)、分布式版本控制系統(tǒng)三種。本地的只能用于本地機(jī)器,集中式的可以支持多臺(tái)機(jī)器之間進(jìn)行協(xié)作,分布式是上述兩者的統(tǒng)一。

傳統(tǒng)的版本控制軟件是記錄每次更改的內(nèi)容,需要的時(shí)候再根據(jù)記錄進(jìn)行更改;而現(xiàn)在最流行的版本控制工具git則是記錄每一本完整的版本,需要的時(shí)候直接提取即可,極大地提高了軟件的效率。

3.3 git

git是一種分布式版本控制工具。

3.3.1 git的結(jié)構(gòu)和原理

一個(gè)git倉庫有3個(gè)部分:

  • .git倉庫(配置管理數(shù)據(jù)庫,存儲(chǔ)軟件的各配置項(xiàng)隨時(shí)間發(fā)生變化的信息和基線)
  • 工作目錄:本地文件系統(tǒng)
  • 暫存區(qū):用來隔離工作目錄和git倉庫

文件在git倉庫的3個(gè)狀態(tài):

  • 已修改:剛在工作區(qū)改完,還沒有放到暫存區(qū)
  • 已暫存:將在工作區(qū)改完的版本add到暫存區(qū)
  • 已提交:將在暫存區(qū)的版本commit到.git倉庫,此時(shí)工作目錄的版本與git倉庫的版本保持一致

除此之外,git還有遠(yuǎn)程倉庫,支持多人協(xié)作功能,如果想要將本地倉庫的內(nèi)容提交到遠(yuǎn)程倉庫以供別人使用,則還需要push到遠(yuǎn)程倉庫。當(dāng)然,如果你想使用別人的遠(yuǎn)程倉庫的內(nèi)容,也需要先從遠(yuǎn)程倉庫pull下來。

git的所有操作都是在一個(gè)圖數(shù)據(jù)結(jié)構(gòu)上進(jìn)行的,git對象圖存儲(chǔ)在存儲(chǔ)庫的.git目錄中。從另一臺(tái)機(jī)器/服務(wù)器復(fù)制git項(xiàng)目意味著復(fù)制整個(gè)對象圖。

對象圖是一個(gè)有向的無環(huán)圖,一條邊A→BA\rightarrow BAB表示“在版本B的基礎(chǔ)上做出變化,形成了版本A”;每個(gè)$ \rightarrow$指向一個(gè)父親,如果有多個(gè)commit指向同一個(gè)父親,則為一個(gè)父親產(chǎn)生了多個(gè)子節(jié)點(diǎn),即為branch;如果是一個(gè)commit指向多個(gè)父親,則表示多個(gè)父親節(jié)點(diǎn)合并形成了子節(jié)點(diǎn),即為merge

每次commit都會(huì)在git倉庫中形成一個(gè)新的節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)包含所有文件的完整快照。每個(gè)節(jié)點(diǎn)中包含以下信息:根節(jié)點(diǎn)、作者、提交者、備注信息等

3.3.2常用git命令:

git init//初始化git倉庫 git add//將工作目錄下的版本提交到暫存區(qū) git add readme.md//將文件添加到暫存區(qū),開始對這些文件進(jìn)行跟蹤 git commit//將暫存區(qū)文件提交到本地倉庫 git push//將本地倉庫的文件提交到遠(yuǎn)程倉庫(服務(wù)器) git status//查看當(dāng)前文件狀態(tài) git diff//查看工作區(qū)和暫存區(qū)快照之間的差異,即修改后未add的內(nèi)容 git commit -a//跳過git add步驟,直接將所有修改過的文件暫存起來并提交 git rm//從git中移除某個(gè)文件,不再跟蹤,也將原文件刪除 git fetch//從遠(yuǎn)程倉庫抓取文件到本地,但不與本地的合并 git pull//與fetch類似,但是還會(huì)與本地合并 git branch//查看本地分支 git branch phase//創(chuàng)建本地分支phase git checkout phase//切換到分支phase git checkout -b phase1//創(chuàng)建分支phase1并切換到phase1分支 git merge phase//將分支phase合并到main分支上,需要在主分支(main)上進(jìn)行操作 git branch -D b1//強(qiáng)制刪除分支

總結(jié)

以上是生活随笔為你收集整理的哈工大软件构造期末复习(根据老师复习提纲整理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。