代码大全2笔记一

目录

第二章:用隐喻充分理解软件开发:

第三章:三思而后行:前期准备

第四章:软件构建


软件构件主要包括:详细设计、编码、调试、集成、开发者测试

第二章:用隐喻充分理解软件开发:

在开发前我们首先需要理解这个软件,对这个软件与实际的事物联系在一起;

1、当将软件的构建过程比作房屋的构建过程时,可以发现,仔细的准备是必要的,发生变动时最贵的成本是人的时间,而大型项目和小型项目之间也有差异。

2、软件开发实践中,每位工程师都有许多工具,但不存在任何一个能适用于所有工作的工具,因地制宜德尔选择正确工具是成为能有效编程的程序员的关机。

第三章:三思而后行:前期准备

1、核对表(细节可参考文中描述的原则核对)

        ①是否辨明了自己所从事的软件的类型,并对所用的开发方法做出相应的剪裁?(许多项目是高度迭代的,某些则应该是序列式的)

        ②是否充分明确定义了需求?而且需求足够稳定,能够开始构建了?(详见需求核对表)

        ③是否充分明确的定义了架构,以便开始构建?(详见架构核对表)

        ④是否已经指出当前项目中独有的风险?(以避免构建活动面临不必要的风险)

2、在项目初期关注质量、发现问题,远比后期发现解决成本更低。

我们在项目的初期就要强调质量,

前期准备工作的中心目标就是降低风险:一个好的项目规划则能够尽可能的将前期的风险清除掉。不要有尽快快发编码的欲望,一定要准备好,软件开发不仅仅是写代码,在项目开始之前需要先制定项目计划,

迭代、增量的开发模式 是如何进行的?
迭代开发模式会将项目周期分为多个迭代来完成,每一个迭代只实现一小部分功能, 完成一次迭代时就将系统给到用户进行演示或测试,进而及早得到用户的反馈来改进需求和设计,每一次迭代也需要经历需求分析、设计和编码和测试等多个活动, 但通常是轻量级的,项目的整个周期可能要进行十多次或更多这样的迭代。 
那么,迭代和增量开发模式又是如何进行的呢?下面作一下简述:
1)项目初期和我们现用的方法一样,会定义好产品设想以及功能列表,并对产品功能排好优先级,但与传统的开发模式不同的是,这个阶段不会去细化所有需求。
2)根据优先级,挑选一小部分需求进行细化,项目初始阶段通常挑选高风险的、决定核心架构的、业务性质重要的功能需求来细化。
3)针对细化的一部分需求进行设计和编码,得到可运行的软件然后交付给用户,或给用户演示并收集反馈。
4)根据用户的反馈修改需求,并提交新版本的软件给用户,直到用户满意。
5)重复2~4,直到完成所有的功能。2~4被称为一次迭代,每次迭代大约需要数周,不宜太长,越短越好,每个项目可能要经历十多次迭代。

6)其它活动略

什么时候使用顺序开发:

  1. 需求相对稳定;
  2. 对需求的设计以及理解透彻;
  3. 开发团队对整个领域非常熟悉,
  4. 项目的风险小
  5. 后期改变需求、设计、编码的代价比较高

什么时候使用迭代开发:

  1. 需求理解的不够透彻、或者需求本身就不稳定;
  2. 设计比较复杂挑战性大;
  3. 开发团队对这一领域不熟悉;
  4. 后期改变需求、设计、编码的代价较低

 

第四章:软件构建

1、软件构建中的设计:设计指的是编写具体的代码之前先用伪代码写出一个类的接口,也可能就是在编码之前画出几个类之间的关系图,还可能就是询问另一位程序员用那个设计模式会更好。无论是以何种方式进行设计,小型项目也能和大型项目一样从精心的设计之中获益,

猜你喜欢

转载自blog.csdn.net/qq_38234594/article/details/89421698