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()。资源