首页 > 代码库 > 关于 《构建之法》

关于 《构建之法》

1.关于《构建之法》:

   看了第一章,关于《构建之法》的概述,通过一定的软件流程,在预计的时间内发布好的软件,软件工程对于开发一个好的软件很重要,在开发中,程序很重要,软件开发流程也很重要。  

   软件具有:复杂性,不可见性,易变性,服从性,非连续性。还有其他特性。

   软件工程的目标:创造“足够好”的软件。

  构建之法的目标:

   研发出符合用户需求的软件;

   通过一定的软件流程,在预计的时间内发布“足够好”的软件;

   能证明所开发的软件是可以维护和继续发展的。

   可行性分析->项目立项->需求分析->概要设计->详细设计->编码->单元测试->系统测试->集成测试->验收测试->项目上线。

在每个流程尽量减少错误,就会在预计的时间完成足够好的软件。

   单元测试:让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的,量化的保证。

   创建单元测试函数的主要步骤:

   1.设置数据;

   2.使用被测试类型的功能;

   3.比较实际结果和预期的结果

   回归测试的目的:

   1. 验证新的代码的确改正了缺陷;

   2.同时要验证新的代码有没有破坏模块的现有功能,有没有Regression。

    回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽快发现问题。单元测试是回归测试的基础。

    个人软件开发流程(PSP):

    1.不局限于某一种软件技术,而是着眼于软件开发的流程,这样,开发不同应用的软件工程师可以相互比较。

    2.不依赖于考试,而主要靠工程师自己收集数据,然后分析,提高。

    3.在小型,初创的团队中,很难找到高质量的项目需求,这意味着给程序员的输入质量不高。在这种情况下,程序员的输出往往质量也不高,然而这个并不能全部

由程序员负责;

    4.psp依赖于与数据;

    5.psp的目的是记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度。

    软件工程包括了开发,运营,维护软件的过程中的很多技术,做法,习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫做软件开发流程;软件开发流程的目的是:提高软件开发,运营,维护的效率,以及提升用户的满意度,软件的可靠性和可维护性。

    初级软件工程师的成长:

    1.积累软件开发相关的知识,提升技术技能;

    2.积累问题领域的知识和经验;

    3.对通用的软件设计思想和软件工程思想的理解;

    4.提升职业技能;

    5.实际成果。

    工程师必须要做到以下几点:

    1.阅读:4-6 篇经典文献的深入分析和阅读;

    2.工作经验:要参与并完成6个具体的项目;

    3.课程:要参加3个专门的课程。

   从瀑布模型开始的各种模型都有有一个共同点:重计划,重事先设计,重文档表达。

   敏捷开发的原则是:

   1.尽早并持续地交付有价值的软件以满足顾客需求;

   2.敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势;

   3.经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;

   4.业务人员和开发人员在项目开发过程中应该每天共同工作;

   5.以有进取心的人为项目核心,充分支持信任他们;

   6.无论团队内外,面对面的交流始终是最有效的沟通方式;

   7.可用的软件是衡量项目进展的主要指标;

   8.敏捷流程应能保持可持续性的发展。领导,团队和用户应该能按照目前的步调持续合作下去;

   9.只有不断关注技术和设计,才能越来越敏捷;

   10.保持简明--尽可能简化工作量的技艺——极为重要;

   11.只有自我管理的团队才能创造优秀的架构,需求和设计;

   12.时时总结如何提高团队效率,并付诸行动。

   MSF(微软解决方案框架)基本准则:

   1.推动信息共享和沟通;

   2.为共同的远景而工作;

   3.充分授权和信任;

   4.各司其职,对项目共同负责;

   5.交付增量的价值;

   6.保持敏捷,预期和适应变化;

   7.投资质量;

   8.学习所有的经验;

   9.与顾客合作。

   MFS团队模型:测试,项目管理,用户经验,测试,发布管理,开发,交流。

   MFS过程模型:构思->远景/范围认可->计划->项目计划认可->开发->开发完成->稳定->发布就绪认可->部署->部署完成。

   软件需求:

   1.获取和引导需求;

   2.分析和定义需求;

   3.验证需求;

   4.对软件产品的生命周期中管理需求。

   PM(项目经理)的能力要求和任务:

   1.观察,理解和快速学习能力;

   2.分析管理能力;

   3.一定的专业能力;

   4.自省的能力。

   用户体验要素:

  1.用户的第一印象;

  2.从用户的角度考虑问题;

  3.软件服务始终都要记住用户的选择;

  4.短期刺激和长期影响;

  5.不让用户犯简单的错误;

  6.用户体验和质量;

  7.情感设计。

  Bug:软件的缺陷;

  Test Case:测试用例;

  Test Suite:测试用例集;

  软件测试分为:黑箱和白箱。

  也可分为功能测试和非功能测试。

  程序的质量体现在软件外在功能的质量。

  问题:

  1.如何才能创新,怎样才能锻炼自己的创新意识?

  2.软件工程怎样才能学好?

  3.每个软件都需要完整的开发流程吗?如果没有会怎么样?

  4.关于《构建之法》怎样读才能抓住核心?

  5.在自身没有多少编程能力时怎样将书中的知识运用到实践中?

      

关于 《构建之法》