一、软件开发的时间安排
开篇文章说“软件 = 程序 + 软件工程”,自己也写过C/C+的一些小程序,最多也就是考虑一下数据结构的知识,时间多半花在具体的编程中,此书给了两种不同类型的开发者,“大神在需求分析和测试所用时间比较长,具体编程时间相对于“菜鸟”来说时间较短,对比图如下 。
二、初级软件工程师的成长包括以下几种:
(1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。例如:对JAVA、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动程序、内核调试器的掌握,对于某一开发平台的掌握(2)积累问题领域的知识和经验(例如对医疗或金融行业的了解)(3)对通用的软件设计思想和软件工程思想的理解(4)提升职业技能(区别于技术技能),包括:自我管理的能力、表达交流的能力、与人合作的能力、按质按量完成任务的执行力(5)实际成果——最重要的评价标准。
三、代码风格规范
缩进:4个空格,而不是TAB
行宽:限定为100字符
分行:不要把多条语句放在一行上
注释是为了解释程序做什么( What) , 为什么这样做( Why) , 以及要特别注意的地方
四、软件需求步骤
1 . 获取和引 导需求 2. 分析和定义需求 3. 验证需求
4. 在软件产品的生命周期中管理需求
五、图形建模和分析方法
思维导图、实体关系图、Use Case Diagram
六、用户体验的要素
用户的第一印象
从用户的角度考虑问题
软件服务始终都要记住用户的选择(长期的使用只会使软件更好用)
短期刺激 长期影响
不让用户犯简单的错误
注重用户体验和质量
情感设计
七、软件测试设计
黑箱:指的是设计测试的过程中,把软件系统当做一个“黑箱”,无法了解或使用系统的内部结构及知识。一个更准确的说法是行为测试设计,即从软件的行为,而不是从内部结构出发来设计测试
白箱子:指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构及知识来选择测试数据及具体的测试方法。
八、软件工程师的职业道德
原则1 公众
软件工程师的行为应与公众利益一致。
原则2 客户与雇主
软件工程师应以其客户和雇主利益最大化的方式做事, 与公众利益保持一致。
原则3 产品
软件工程师应当确保自 己的产品以及相关的修改满足最高的专业标准。