1、問題
(1)與軟體學院相比,電腦科學更偏向理論研究,本系開設軟體工程課程的意圖是否是為了平衡理論與應用的比重?
(2)bug的定義根據開發者與使用者的分析角度不同,有著很大的區別,如何使開發者能夠有效的感受使用者的角度,使軟體更具人性化?
(3)coder和hacker之間原則性的區別是什麼?
(4)面對**量比較大的工程,如何做到有效的管理和控制?
(5)在開發流程中,如何從「寫了再改的模式」的模式中脫離出來?
(6)p171頁的算數題,團隊用一半的速度完成了一般的總工作量,已經沒有額外時間來提公升平均工作效率了,除非群求額外時間?
(7)在構建軟體工程的過程中,從何時開始考慮使用者體驗的問題?
2、「software」:這個單詞最早出現在出版物中是由richard r. carhart 於2023年8月出版的書籍。2023年,耶魯法學院的圖書管理員fred shapiro發表了一封信,這封信揭露了其在對jstor的電子檔案的搜尋中,發現在由美國數學家tukey於2023年發布的**"the teaching of concrete mathematics"中,提到了對於單詞「software」的用法。1995,paul niquette聲稱他在2023年十月最初創造了這個詞,雖然他沒能找到任何資料支援他的說法。
「software engineering」:是由 margaret hamilton 發明的, hamilton是乙個自學程式設計,並且當上 mit 軟體工程測試實驗室主任(也就是為美國太空總署 nasa 開發電腦系統的單位)的女性。它在阿波羅計畫期間發明了「software engineering」一次,她在採訪中說到:「軟體在這個計畫的初期還被當作初初學步的孩子一般對待,完全不像其他工程學科;例如像硬體工程那樣的受到重視,而且在大家的眼光中他就像是藝術、魔術一般,而不是一門科學。我一直以來堅信這項發明流著藝術與科學的血液,雖然當時很少人是這麼想。因此,我致力於為軟體以及那些發明者爭取應有的正統性與尊重,所以我開始使用「軟體工程」這樣的字眼來將之與硬體還有其他工程學類做出區別。當我第一次使用這樣的語詞時,大家都覺得有些好笑,甚至有很長一段時間被當作笑話。他們常笑我極端的想法。但最終,軟體學科確實得到了應有的尊重!」
3、git是一款免費、開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案,可以有效、高速的處理從很小到非常大的專案版本管理。[2] git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。
git的功能特性:
從一般開發者的角度來看,git有以下功能:
1、從伺服器上轉殖完整的git倉庫(包括**和版本資訊)到單機上。
2、在自己的機器上根據不同的開發目的,建立分支,修改**。
3、在單機上自己建立的分支上提交**。
4、在單機上合併分支。
5、把伺服器上最新版的**fetch下來,然後跟自己的主分支合併。
6、生成補丁(patch),把補丁傳送給主開發者。
7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中乙個人提交。如果主開發者可以自己解決,或者沒有衝突,就通過。
8、一般開發者之間解決衝突的方法,開發者之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發者提交補丁。
從主開發者的角度(假設主開發者不用開發**)看,git有以下功能:
1、檢視郵件或者通過其它方式檢視一般開發者的提交狀態。
2、打上補丁,解決衝突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源專案,還要決定哪些補丁有用,哪些不用)。
3、向公共伺服器提交結果,然後通知所有開發人員。
優點:適合分布式開發,強調個體。
公共伺服器壓力和資料量都不會太大。
速度快、靈活。
任意兩個開發者之間可以很容易的解決衝突。
離線工作。
缺點:資料少(起碼中文資料很少)。
學習週期相對而言比較長。
不符合常規思維。
**保密性差,一旦開發者把整個庫轉殖下來就可以完全公開所有**和版本資訊。
microsoft tfs:
優點:1.任務版上能將需求、專案進度一覽無餘,對於小團隊而言,比甘特圖更有用
2.整合了專案管理、版本控制、bug 跟蹤,能有效實現 scrum
3.能與 vs 無縫接合
缺點:1.整個系統是用 asp 實現的,用瀏覽器訪問相當慢(不知道是不是伺服器效能太低還是我個人用的電腦配置太低)
2.從 ie 上訪問、填寫各種開發、測試記錄,也是很慢,感覺不如 mantis bt 這樣基於 php 的那麼方便、迅速
3.xp 系統無法訪問,還得是64位的。所以把電腦的整體效能拖下來了
個人作業 Week1
在超大的軟體工程中如何在測試和成本中找到平衡點?軟體工程師在入職後大概擁有多少的學習時間進行自我提公升?如何克服 複審 文件撰寫這類工作的枯燥?專案經理與程式設計師之間的矛盾如何處理,該如何看待這種關係?團隊中技術差距與思路不同如何進行磨合?軟體 software 最早出現在出版物中是由richar...
個人作業 Week1
問題1 程式設計師的優劣是否在軟體開發中已經不重要了?使用者實際關心的 外形,使用的樂趣和效率,自我形象,個人滿足感,回憶,這麼多條中,僅有效率與 有關,而實際上使用者比起效率卻更在意其他這些 么蛾子 qq,支付寶等諸多流行的 功能,複雜度並不高但卻十分成功。3.軟體開發更重要的管理與分工,是否超出...
個人部落格作業Week1
一.1.敏捷開發中有哪些常用的方法?2.瀑布模型是否已經不適應現在的軟體開發模式?3.乙個軟體開發團隊裡程式設計能力參差不齊如何合理地給他們分配角色和任務?4.開發 測試由不同的人擔任真的合適嘛?開發的人被指出bug後產生怨氣影響關係怎麼辦?5.pm是不是乙個團隊裡要求能力最強的角色?二.軟體和軟體...