1.在軟件開發的過程當中,怎樣的合做互動才能使軟件開發流程不由於意見不一致而拖延進度,須要怎樣合理的安排分工?老師上課說全部人有一個共同的目標,就能很好的開發軟件,可是人總會有各類各樣的想法,各類各樣的意見,咱們不能無視這些意見,而應該汲取其中優秀的意見改進咱們的軟件,可是怎麼能平衡這些意見?
2.在需求分析階段,如何能明確的肯定咱們所分析的需求就是人們所須要的,怎樣識別人們所提出的意見是否有效,而且怎樣平衡需求和咱們的能力還有時間之間的差距?
3.成爲軟件工程師的第一步是什麼?是很好的編寫代碼的能力或是很高的組織管理能力等等?安全
軟件工程是把系統的,有序的,可量化的方法應用到軟件的開發,運營和維護的過程。函數
--引用自《構建之法》性能
-軟件需求分析
-軟件設計
-軟件構建
-軟件測試
-軟件維護測試
-功能性
一組功能及其指定的性質有關的一組屬性。適合性、準確性、互用性/互操做性、依從性、安全性。
-可靠性
在規定的一段時間和條件下,軟件維持其性能水平有關的一組軟件屬性。成熟性、容錯性、易恢復性。
-可用性
與使用的難易程度及規定或隱含用戶對使用方式所作的評價有關的軟件屬性。易理解性、易學性、易操做性。
-效率
在規定條件下,軟件的性能水平和全部資源之間的關係有關的一組軟件屬性。時間特性、資源特性。
-可維護性
與進行指定的修改所需的努力有關的一組軟件熟悉。易分析性、可修改性、穩定性、可測試性。
-可移植性
與軟件可從某一環境轉移到另外一環境的能力有關的一組軟件屬性。適應性、易安裝性、一致性(遵循性)、可替換性。設計
計算機科學 | 軟件工程 |
---|---|
發現和研究長期的客觀真理 | 短時間的實際結果(具體的軟件會過期) |
理想化的 | 對各類因素的折衷 |
肯定性、完美、通用性 | 對不肯定和風險的管理、足夠好、具體的應用 |
各個學科獨立深刻研究,作出成果 | 關注和應用各個學科的知識,解決問題 |
理論的統一 | 百花齊放的實踐方法 |
強調原則性 | 最好的、成熟的實踐方法 |
形式化、追求簡明的公式 | 在實踐中創建起來的靈感和直覺 |
正確性 | 可靠性 |
-文件名所有小寫,能夠加下劃線_,但不可使用橫線-。代碼規範
-類型名稱的每一個單詞的首字母大寫,不包含下劃線。code
// 類和結構體 class Sudoku {...}; class Input {..}; struct SonNode {..}; // 類型定義 typedef hash_map<char *, string> NameMap; // using 別名 using NameMap = hash_map<char *, string>; // 枚舉 enum Today {..};
-變量(包括函數參數)和數據成員名一概小寫,單詞之間用下劃線鏈接。類的成員變量如下劃線結尾,但結構體的就不用。blog
int num_table; // 好 - 用下劃線 int numtable; // 中 - 全小寫 int numTable; // 差 - 混合大小寫
-聲明爲constexpr或const的變量, 或在程序運行期間其值始終保持不變的, 命名時以 「k」 開頭, 大小寫混合.ci
const int kDaysInAWeek = 7;
常規函數使用大小寫混合, 成員函數首字母小寫: MyExcitingFunction(),MyExcitingMethod(),myExcitingMethod()。資源